مروری بر دلایل محبوبیت بالای زبان برنامه‌نویسی Go

مروری بر دلایل محبوبیت بالای زبان برنامه‌نویسی Go

تنها در طی دو سال، محبوبیت زبان برنامه‌نویسی Go از رتبهٔ 65ام به ۱۴ام سایت TIOBE ارتقاء یافت (این آمار مربوط به سال ۲۰۱۷ است). این ارتقاء جایگاه به نوعی با محبوبت بیش از پیش این زبان رابطهٔ مستقیم دارد. به عبارت دیگر، برخی فیچرهای خاص این زبان از یک سو و همچنین بازتر شدن دست دولوپرهایی که از این زبان در پروژه‌های خود استفاده می‌کنند از سوی دیگر، منجر به افزایش محبوبت این زبان شده است. آنچه در ادامه قصد داریم مورد بررسی قرار دهیم، مد نظر قرار دادن دلایلی است که منجر به این محبوبیت فزاینده شده است.

زبان برنامه‌نویسی Go، که بعضاً به آن Golang نیز گفته می‌شود، در حال به دست آوردن محبوبیت بالایی است. گرچه زبان‌هایی مانند C و Java بر دنیای برنامه‌نویسی تسلط دارند، اما زبان‌های نوظهوری مثل گو ثابت کرده‌اند که می‌توانند در زمینۀ محاسبات مدرن -مخصوصاً پردازش ابری- عملکرد به مراتب بهتری داشته باشند.

از عمده دلایل موفقیت این زبان می‌توان به کم‌حجم بودن، اپن‌سورس بودن و مناسب بودن آن برای معماری میکروسرویس‌ها اشاره نمود (برای آشنایی بیشتر با میکروسرویس‌ها، به مقالهٔ میکروسرویس (Microservice) چیست؟ مراجعه نمایید). بخش‌هایی از کانتینر Docker و کانتینر اختصاصی گوگل یعنی Kubernets نیز با این زبان نوشته شده‌اند (برای آشنایی بیشتر با مفهوم کانتینر، به مقالهٔ Container (کانتینر) چیست و چه تفاوت‌هایی با Virtual Machine (ماشین مجازی) دارد؟ مراجعه نمایید). همچنین این زبان به دلیل برطرف کردن نیاز دیتاساینتیست‌ها از داشتن سخت‌افزار قدرتمند، در حال مطرح شدن در زمینۀ دیتاساینس نیز می‌باشد.

زبان برنامه‌نویسی Go برخلاف زبان‌های دیگر که در طول زمان تکامل یافته‌اند، از ابتدا مهندسی‌ساز بوده است و می‌تواند از جنبه‌های گوناگون به نفع دولوپرها باشد، مانند Garbage Collection ،Native Concurrency و چند قابلیت دیگر. ویژگی‌های ذکر شده نیاز دولوپرها برای کدنویسی‌های مربوط به کمبود رَم و همچنین تعداد خطوط کد در وب‌اپلیکیشن‌ها را کاهش می‌دهد. 

به دلایل ذکر شده، این زبان توسط بسیاری از شرکت‌ها در پروژه‌های‌شان مورد استفاده قرار گرفته است و اخیراً یک API برای TensorFlow اضافه شده و پروژه‌های بزرگی مانند pachyderm -که نسل بعدی پردازش اطلاعات و ذخیره‌سازی می‌باشد- نیز از Go استفاده می‌کنند. Heroku -پروژهٔ سایت force.com- و بخشی از Cloud Foundry نیز با این زبان نوشته شده‌ است. در همین راستا، می‌توان انتظار داشت که نام‌های بیشتری دائما به این لیست اضافه شوند.

افزایش محبوبیت و استفاده از زبان Go
در گزارش سپتامبر 2017 وب‌سایت TIOBE در خصوص زبان برنامه‌نویسی Go، می‌توان به وضوح افزایش محبوبیت این زبان از سال 2016 را دید؛ به‌ علاوه اینکه باتوجه به داشتن بیشترین پیشرفت در سال 2016، لقب محبوب‌ترین زبان این سال را نیز به خود اختصاص داد. لازم به ذکر است که این زبان در سال 2015 رتبۀ 65ام، در سال 2016 رتبۀ 19ام و در سال ۲۰۱۷ هم رتبۀ 14ام را دارا بوده است.

نظرسنجی سال 2017 استک اورفلو نیز نشان از افزایش محبوبیت این زبان دارد. در این نظرسنجی معتبر که از 64000 دولوپر نظرخواهی شده، سعی بر این است که محبوب‌ترین و بهترین زبان برنامه‌نویسی انتخاب شود (برای آگاهی بیشتر از نتایج این نظرسنجی، به مقالهٔ نتایج نظرسنجی توسعه‌دهندگان Stack Overflow در سال ۲۰۱۷ مراجعه نمایید). این لیست از زبان‌های جدیدی مانند Rust شرکت موزیلا، Smaltalk ،Typescript ،Swift و Go از شرکت گوگل تشکیل شده است اما برای سومین سالِ پیاپی زبان‌های سوئیفت، راست و گو جزو 5 زبان برتر و محبوب بوده‌اند.

مزایای زبان برنامه‌نویسی Go
برخی از زبان‌های برنامه‌نویسی در گذر زمان به انسجام لازم رسیده‌اند و برخی دیگر از ابتدا به صورت آکادمیک ساخته شده‌اند. به هر حال، هر زبان در زمان‌ خود و وابسته به نیازهای دوران خود ساخته شده است. پیش از این گفتیم که زبان Go یک زبان مهندسی‌ساز است که برای حل مشکلات زبان‌های قدیمی‌تر در استفاده از معماری‌های سخت‌افزاری مدرن طراحی شده است. 

در دنیای IT، نرم‌افزارهای مقیاس‌بزرگ و پیچیده توسط تیم‌های بزرگی از دولوپرها نوشته می‌شوند و به طور معمول این دولوپرها سطوح مختلفی از دانش برنامه‌نویسی دارند؛ از مبتدی تا حرفه‌ای. هستۀ این زبان عملیاتی می‌باشد؛ به عبارت دیگر، زبان برنامه‌نویسی Go به گونه‌ای طراحی شده است که می‌تواند به سادگی به زبانی کاربردی برای دولوپرهای مبتدی نیز تبدیل گردد.

همچنین یادگیری یک زبان که خوانایی بالایی داشته باشد می‌تواند بسیار مفید باشد. تلفیق Duck Typing و ویژگی‌های دولوپرپسندی همانند =: برای کوتاه کردن روند تعریف کردن متغیرها، باعث می‌شود که Go به یک زبان پویا و در عین حال قوی تبدیل شود.

قابلیت Garbage Collection زبان Go نیاز دولوپرها به پاکسازی دستی رَم را مرتفع می‌سازد که باعث حل دو مشکل معمول در برنامه‌نویسی می‌شود:
- اول اینکه برخی از برنامه‌نویس‌ها به حل خودبه‌خودی مشکل عادت کرده‌اند.
- دوم اینکه مراحل گوناگونی برای مدیریت حافظه در هسته‌های مختلف پردازشی‌ وجود دارد که دستیابی به صورت دستی به پیکربندی رَم می‌تواند نقص حافظه را به میزان قابل‌توجهی افزایش دهد.

Go زبانی مناسب برای دیتاساینس است
قابلیت تجاری‌سازی دیتاست‌های بزرگ به سرعت در حال تبدیل شدن به یک مزیت رقابتی برای شرکت‌ها و یک نقطهٔ بسیار جذاب در زمینۀ برنامه‌نویسی می‌شود که شامل برخی تخصص‌ها مانند هوش‌ مصنوعی و یادگیری‌ ماشینی و ... می‌باشد. Go در این زمینه‌ها قدرت بسیار بالایی دارد که همین‌ها باعث افزایش محبوبیت و استفاده از آن می‌شوند. در واقع برخی از مهم‌ترین فیچرهای زبان گو در این حوزه عبارتند از:
- سیستم دیباگینگ عالی این زبان به غلبه کردن بر زبان‌هایی مانند R و Python که دو زبان پراستفاده در یادگیری‌ ماشینی می‌باشند کمک می‌کند.
- به ‌طور معمول دیتاساینتیست‌ها برنامه‌نویس نیستند. مفید بودن Go در هر دو فرآیند نمونه‌سازی و تولید، آن را تبدیل به یک زبان قوی‌ برای به کار بردن دیتاساینس‌ در فرآیند تولید نرم‌افزار می‌کند.
- این زبان نیازی ندارد که برای بهینه‌سازی عملکرد خود با C یا ++C ادغام شود، اما به دولوپر امکان چنین کاری را می‌دهد.

افق توسعهٔ زبان Go
تحویل و توسعۀ نرم‌افزار به طور چشمگیری نسبت با سال‌های گذشته تغییر کرده است به طوری که امروزه معماری میکروسرویس‌ها رمز سریع شدن اپلیکیشن‌ها است. در واقع، برنامه‌های مدرن امروزی برای اجرا بر روی سیستم‌های کلود نوشته می‌شوند و گو زبانی است که این فرایند را نسبت به سایر زبان‌ها ساده‌تر ساخته است.

همان‌طور که اشاره شد، Go یک زبان برنامه‌نویسی مهندسی‌ساز است که منحصراً با در نظر گرفتن این‌گونه نیازهای جدید طراحی شده است. این زبان به دلیل طراحی خاص متناسب با پردازش ابری (کلود)، تسلط بر عملیات کانکارنت (هم‌زمان) و زیبایی ساخت اپلیکیشن، محبوبیت فراوانی یافته است.

نه تنها گوگل، بلکه شرکت‌های دیگر نیز در گسترش بازار Go نقش دارند. به عنوان مثال، Go توسط توزیع‌های سازمانی مانند ActiveState's ActiveGo پشتیبانی و توزیع می‌شود. به عنوان یک جنبش اپن‌سورس، سایت GoLang و کنفرانس‌های سالانهٔ GopherCon یک جامعۀ اپن‌سورس مدرن را پایه‌گذاری کرده‌اند که به ایده‌های جدید اجازۀ ورود به فرآیند توسعه Go را می‌دهند.

منبع


کیان فلاحی