چرا Golang زبان مورد علاقه‌ی من برای آینده است!

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

اینکه سالها به زبانی کدنویسی کنید و بهش تسلط پیدا کنید و پروژه های اصلی را هم با اون پیاده کنید مسلما مانع از یادگیری یه سری زبان جدید نمیشه اما اینکه بخواید مهاجرت کنید خب مساله و بحثی کاملا مجزاست.

مدتها در PHP کد زدم و فریمورک‌های مختلف را امتحان کردم و چند سال آخر رو از Phalconphp استفاده کردم، هم به خاطر پرفرمنس بسیار بالاش و هم اینکه زیاد در مدل کدنویسی آدم دخالت نمی‌کنه و به نظرم جذابترین فریمورک PHP هست خصوصا به خاطر ماهیتش و این‌که با C نوشته شده. (کسی به آرامی در گوشش زمزمه میکند: تو بیماری پرفرمنس داری پسر!)

در به در دنبال یک زبان برنامه‌نویسی جدید بودم که هم سبک جدیدی را تجربه کنم و هم اینکه بتونم خودمو برای تغییرات بزرگ آینده آماده کنم. گزینه‌های مختلفی جلوی روم بود اما بالاخره بعد از کش و قوس‌های فراوان شروع کردم به یادگیری Golang.

دلایلی که میارم عموما نظرات شخصی من هستند بدین معنا که ممکنه شما این دلایل را قبول نداشته باشید.

  • جالترین ویژگی Golang اینه که زبانی کامپایل شدنی و کراس پلتفرم هست. یعنی به سادگی هر کدی که بنویسید میتونید در هر پلتفرمی کامپایل کنید. در مورد کامپایل صحبت میکنم، شما مثل جاوا نیاز به VM ندارید و مثل PHP و پایتون نیاز به مفسر ندارید. ما کدهای باینری داریم لعنتی! و از این سریعتر و ساده تر جایی نمیتونید پیدا کنید...
  • این زبان به شدت ساده شده و خبری از روال های پیچیده زبان‌های دیگه داخلش نیست. برای مثال شما صرفا یک مدل حلقه دارید و اون هم for هست. به چیز دیگه‌ای نیاز ندارید. سازندگان این زبان ترجیح دادند برنامه‌نویس ها تمرکزشون را روی انجام کار بذارن و نه چگونگی انجامش و دردسری که خیلی از زبان‌ها با syntax و کارای عجیب غریبشون به وجود میارن را در Golang تجربه نمیکنید. (در همین حال یاد perl لرزه بر اندامش می‌اندازد)
  • ابزارهایی فوق العاده نظیر gofmt داره که به برنامه‌نویس ها کمک میکنه فرمت یکسانی از کدنویسی را داشته باشند و خوانایی کدها افزایش پیدا میکنه.
  • این چند وقت اخیر یک IDE مدرن و خوب از JetBrains به اسم Goglang منتشر شده که برای کدنویسی Golang واقعا گزینه‌ی ایده‌آلی محسوب میشه.
  • کتابخانه‌ی غنی و مدرن Golang شما را تقریبا از فریمورک ها بی نیاز میکنه. هر کاری که نیاز دارید انجام بدید پکیج‌های Golang در اختیارتون هستند.
  • این زبان شی‌گرا نیست اما پکیج‌ها در Golang ویژگی‌های مهم شی‌گرایی را در اختیارتون قرار میدن. نبود شی‌گرایی به آن معنا که تو جاوا یا PHP تجربه کردید رو با کمی کدنویسی در Golang یک موهبت در نظر خواهید گرفت.
  • مدیریت خطا در Golang بسیار سادست.
  • از پردازنده‌های چند هسته‌ای پشتیبانی میکنه و Goroutine ها پرفرمنس شگفت انگیزی دارند. این زبان برای Concurrency عالیه و برای همین کار بهینه شده و البته کار با روتین ها بسیار ساده است.
  • یه مورد دیگه که شاید بعنوان مزیت نشه درنظر گرفت اما Golang توسط گوگل پشتیبانی می‌شه.
  • آخرین موردی هم که الان در ذهن دارم پرفرمنسی نزدیک به C و C++ هست که برای پروژه های بزرگ مزیت محسوب میشه.


به نظرم سبک و سیاق کدنویسی Golang بسیار جذابه و زبان کارآمدی هست. چنتا پروژه‌ی کوچکی که با این زبان نوشتم حس و حال خوبی بهم داده و برای آینده قطعا زمان زیادتری را با Golang خواهم گذروند.

البته این زبان خالی از اشکال نیست و مشکلات خاص خودشو داره که تو مقایسه هایی که در اینترنت شده میتونید پیدا کنید. در عین حال خوندن این مقاله هم خالی از لطف نیست.

https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65