نکات مثبت و منفی زبان برنامه‌نویسی Go

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 17 خرداد 1398
دسته بندی ها : برنامه نویسی

گوگل در هر زمانی سعی داشته تا چیزی بیشتر از تنها یک موتور جستجوگر باشد. در حال حاضر نیز این تلاش‌ها به خوبی جواب داده، تا جایی که ما گوگل را تقریبا در هر جایی مشاهده می‌کنیم. یوتیوب، آندروید، کروم و… همه آن‌ها ما را به فکر گوگل می‌اندازند.

فارغ از این موارد، گوگل مشارکت در دنیای برنامه‌نویسی را فراموش نکرده است. در سال ۲۰۰۷ گوگل پروژه GoLang را شروع کرد تا اثبات کند که می‌تواند یکی از بهترین زبان‌های برنامه‌نویسی در دنیا را نیز می‌تواند بسازد.

یک تاریخچه کوچک

ایده این زبان برنامه‌نویسی متن باز زبانی شروع شد که چند نفر از مهندسین گوگل تصمیم گرفتند تا یک زبان برنامه‌نویسی سیستمی جدید را ایجاد نمایند. تمرکز آن‌ها روی این موضوع بود که بتوانند زبانی را ایجاد کنند که سختی کار با دیگر زبان‌های سیستمی را نداشته باشد، اما باز هم بتواند ویژگی‌هایی که آن‌ها در اختیار توسعه‌دهنده قرار می‌دهند را قرار دهد.

چنین ایده‌هایی در کنار همدیگر GoLang را ایجاد کرد. زبانی که با وجود داشتن سینتکسی مشابه با زبان سی و سی‌پلاس‌پلاس اما قابلیت‌هایی از جمله مدیریت خودکار حافظه، Garbage Collection و خودکارسازی‌های متفاوت را در خود داشت. GoLang همچنین زبانی است که به صورت داخلی از قابلیت multi-threading پشتیبانی می‌کند. 

GoLang توانست در مدتی نه چندان طولانی در Tiobe Index ظاهر شود. جالب است بدانیم که تا به اکنون چند شرکت مهم مانند دراپ‌باکس، ساوندکلا و Cloud Foundry از آن استفاده می‌کنند.

اما سوال اینجاست که آیا واقعا GoLang ارزش یادگیری و کار را دارد؟ اگر قرار باشد که تنها از یک زبان شبیه به C استفاده کنیم، چرا سراغ دیگر زبان‌ها مانند جاوا نرویم؟ بیایید نکات مثبت و منفی این زبان را مشاهده کنیم.

سادگی و استفاده آسان

نکته مثبت: یکی از مزیت‌های بسیار مهم GoLang سادگی در برنامه‌نویسی است. یادگیری و کار با سینتکس گو به شدت ساده است. از آنجایی نیز که سینتکسی مشابه با C را ارائه می‌کند، برنامه‌نویسان حرفه‌ای می‌توانند به سرعت آن را فرا بگیرند و  از آن استفاده نمایند.

اگرچه گو نمی‌تواند به خوبی دیگر زبان‌ها کاربردهای‌ش را نشان دهد اما باز هم در حال پیشرفت است و نکته مهم ماجرا آنجاست که با پیشرفت‌های بسیاری که داشته باز هم سعی در ساده‌سازی سینتکس خود کرده است. برای افرادی که نمی‌توانند به خوبی با ویژگی‌های چند-نخی در دیگر زبان‌ها کار کنند، باید بگویم که زبان گو می‌تواند گزینه‌ای کامل برای کارشان باشد.

نکته منفی: اگرچه گو سینتکس ساده‌ای دارد اما پتانسیل بالایی برای ایجاد بی‌نظمی در کدنویسی را ایجاد می‌کند. نداشتن یک قاعده کلی برای کدنویسی در گو ممکن است برای تیم‌ها و افرادی که مشغول نوشتن یک پروژه بزرگ هستند مشکلاتی را ایجاد کند. باید گفت که دیباگینگ و بازبینی کدها در گو کمی مشکل است، مخصوصا اگر شخص دیگری آن را نوشته و به شما داده باشد.

ماشین مجازی

نکته مثبت: نگران مستقلات مربوط به ماشین مجازی نباشید. زمانی که یک برنامه را با زبان گو می‌نویسید و آن را اجرا می‌کنید، همه چیز به یک فایل باینری تبدیل می‌شود. برای اجرا کردن دیگر نیازی به ماشین مجازی ندارید تنها کافی‌ست نام فایل باینری را در یک محیط متنی وارد کنید. از این منظر باید گفت که برنامه منتشر شده دیگر نیازی به همراه داشتن فایل‌های مختلف و منابع مختلف نیست. این موضوعات در نهایت باعث می‌شود که سیکل یا دوره دیباگینگ زبان GoLang بسیار سریع تر شود.

نکته منفی: باینری‌های GoLang با وجود آنکه نیازی به ماشین مجازی ندارند، اما حجم بسیار بالایی دارند. برای مثال یک برنامه Hello World ساده ممکن است تا ۲ مگابایت حجم داشته باشد. البته می‌شود از راه‌هایی این برنامه‌ها را فشرده‌سازی کرد. اما باز هم ممکن است حافظه در جاهایی با مشکل همراه شود. 

یک نکته منفی دیگر این ماجرا زمانی است که شما بخواهید برای یک باینری از dependenceهای متفاوتی استفاده کنید. در چنین حالتی نمی‌توانید این کار را انجام دهید چرا که تمام آن  dependenceها در همان فایل باینری قرار دارند.

خودکارسازی

نکته مثبت: همانطور که پیشتر بحث شد، گو قابلیت‌های خودکارسازی‌ مختلفی دارد. مدیریت دستی حافظه در این زبان مطرح نیست، به همین دلیل در روال توسعه نرم‌افزار زمان زیادی را برای توسعه‌دهندگان ذخیره می‌کند.

نکته منفی: اگر از هر برنامه‌نویسی در ارتباط با خودکارسازی بپرسید به شما می‌گویند که گاهی اوقات ممکن است نتیجه خوبی نداشته باشد. تصور کنید تنها در یک زمان فرایند خودکاری یک زبان نتواند با درخواست‌های سرور مطابقت داشته باشد. در نهایت تنها چیزی که خروجی کار خواهد بود خطا است. البته چنین موضوعی برای هر زبانی که از فرایند‌های خودکار بهره می‌برد به همین صورت است.

سینتکس کلاسیک C:

نکته مثبت: علاقه‌مندان به زبان C زبان GoLang را نسخه جدیدی از زبان C می‌دانند. فارغ از ویژگی‌های مدرنی که گو دارد همه ویژگی‌های دیگرش توسعه دهندگان را به فکر زبان C می‌اندازند.

نکته منفی: نسبت دادن گو تا به این حد به زبان C کاری نیست که خیلی منطقی به نظر برسد. چرا که زبان‌های دیگری نیز وجود دارند که از نظر سینتکس به زبان C نزدیک هستند. البته باید این موضوع را در نظر گرفت که دیگر زبان‌ها مانند زبان GoLang در رده زبان‌های سیستمی قرار نمی‌گیرند.

کتابخانه

نکته مثبت‌: Golang کتابخانه‌های استانداردی نسبتا زیادی دارد که به برنامه‌نویس این امکان را می‌دهد تا با سرعت بیشتری کدنویسی کند. این کتابخانه‌ها به خوبی مدیریت و بروزرسانی می‌شوند.

نکته منفی: فارغ از کتابخانه‌های تازه، GoLang در زمینه تعداد این کتابخانه‌ها در مقایسه با دیگر زبان‌ها پایین است. به نظر می‌رسد تا زمانی که کتابخانه‌های بهتر و بیشتری در زبان‌های دیگر وجود دارد گو نمی‌تواند انتخاب مناسبی برای بسیاری از افراد باشد.

در پایان

نکات مثبت در ارتباط با GoLang:

  • GoLang ساده است و به سرعت کامپایل می‌شود.
  • GoLang بدون نیاز به ابزار اضافی به شما قابلیت توسعه وب اپلیکیشن‌ها را می‌دهد.
  • مدیریت حافظه و کارهای سطح پایین به صورت خودکار انجام می‌شوند.
  • GoLang توسط گوگل پشتیبانی می‌شود و همین باعث کم شدن نگرانی در ارتباط با ناسازگاری‌ها می‌شود.

نکات منفی در ارتباط با GoLang:

  • از آنجایی که جدید است، در مقایسه با دیگر زبان‌ها کتابخانه و منابع آموزشی کمتری دارد.
  • با وجود ساده بودن، ناسازگاری در کدنویسی وجود دارد، این موضوع از نبود یک قاعده کلی برای کدنویسی نشئت می‌گیرد.
  • کارهای خودکار شده در این زبان ممکن است با خطا مواجه شود.

منبع

مقالات پیشنهادی

  • سخت‌ترین زبان‌های برنامه‌نویسی

    تا به حال با زبان برنامه‌نویسی که خواندن و درک کردن آن بسیار دشوار باشد روبرو شده‌اید؟ تعدادی زبان برنامه‌نویسی در جهان وجود دارند که آن‌ها را esoteri...

    ارسطو عباسی