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

زبان برنامه نویسی GO

GO یا Golang یک زبان برنامه نویسی statically typed و کامپایلری است که توسط Google طراحی شده است. GO از نظر syntax بسیار شبیه به C بوده اما با قابلیت های memory safety، garbage collection، structural typing ، ‍CSP-style concurrency و غیره می باشد .Go یک زبان برنامه نویسی منبع باز است که ساخت نرم افزار ساده ، قابل اعتماد و کارآمد را آسان می کند.

این زبان از 2007 در گوگل توسعه یافته، در نوامبر 2009 معرفی شده و نسخه یک از این زبان در مارس 2012 ارائه شد. در حال حاضر به صورت گسترده ای از این زبان در سازمان ها و پروژه های متن باز استفاده میشود.

شاید برای شما این سوال مطرح شده باشد که چرا وقتی زبان های برنامه نویسی دیگری وجود دارند که می توانند اهداف ما را برآورده کنند باید وارد یک زبان جدید شویم. مسئله اصلی مزایا و معایب هر زبان می باشد. در این قسمت برخی از مزایا و معایب GO را بررسی میکنیم.

مزایا GO

۱. یادگیری راحت

در مقایسه با زبان های دیگر syntax این زبان ساده و مختصر است و شامل ویژگی های غیر ضروری نمی باشد. این باعث میشود تا نوشتن کدهایی خوانا و قابل نگهداری راحت تر باشد. شما میتوانید آن را به راحتی یاد بگیرید و حفظ کنید. در نتیجه زمان شما در کد نویسی حفظ خواهد شد و نیاز به جستجو موارد این چنینی ندارید.برنامه نویسانی که به زبان GO تسلط ندارند می توانند برنامه های نوشته شده به این زبان را بخوانند و به صورتی کلی آن را درک کنند.

۲. راحت بودن نوشتن برنامه های همروند concurrency

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

۳. سریع

GO واقعا یک زبان سریع است. علت این امر تبدیل مستقیم به کد ماشین می باشد البته زمان کامپایل نیز به یک چشم بهم زدن میباشد.

۴. ابزارهای تحلیل استاتیک

GO ابزارها مختلفی برای آنالیز و تحلیل کد در اختیار شما قرار میدهد برای مثال godoc برای مستندات، glint برای سبک کد نویسی و gofmt برای قالب بندی کد میباشد. این ابزار ها به راحتی در محیط های توسعه متفاوت قابل استفاده میباشند و با استفاده از این ابزار ها شما میتوانید با خیال راحت بر روی عملکرد کد خود تمرکز کنید.

۵. کتابخانه های استاندارد

GO شامل یک مجموعه کتابخانه استاندارد نسبتا قوی می باشد شامل : موارد مربوط به شبکه ، توسعه API، رمزنگاری، فشرده سازی و غیره می باشد که شما را از دست کتابخانه های ثانویه پیچیده نجات میدهد. کتابخانه های استاندارد معمولا کیفیت بالایی دارند و از کدهای بهینه شده با استفاده از کارآمد ترین الگوریتم ها تولید شده اند.

معایب GO

۱. زبانی نسبتا جدید و در حال توسعه

این زبان در حاضر به عنوان یک زبان جدید و نوظهور شناخته میشود در نتیجه در رقابت با دیگر رقبا خود ممکن است معایبی داشته باشد که در آینده احتمالا رفع شود. البته باید این مورد را در نظر گرفت که با رقبای بزرگتر و قوی مانند JAVA این مسئله وجود داشته و در رقابت با زبان های هم دوره خود امکان برتری بیشتری ممکن است داشته باشد.

۲. مدیریت خطا

نحوه مدیریت خطا در نسخه های جدید این زبان تا حد مطلوبی بهبود یافته ولی همواره توسط توسعه دهندگان مورد انتقاد قرار می گیرد. شما نیاز دارید تا هر کدام از خطاهای تولید شده در برنامه را بررسی کنید. در واقع در نقطه ای که انتظار دارید خطا رخ دهد باید آن را بررسی کنید و به عبارت بهتر Exceptions در این زبان وجود ندارد.

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