Go Programming Language
Golang چیست؟
Go یا همان Golang یک زبان برنامهنویسی است که توسط توسعهدهندگان Google ایجاد شدهاست. این زبان برنامهنویسی رایگان و متن باز است و در حال حاضر توسط Google پشتیبانی میشود. یکی از اعضای اصلی بنیانگذار این زبان کن تامپسون است که بیشتر بخاطر کار در زمینه توسعه سیستم عامل یونیکس فردی شناخته شدهاست.
به زبان ساده، Golang - یک نام مستعار محبوب برای زبان برنامه نویسی Go - یک زبان متن باز است که توسط تیمی در گوگل، همراه با مشارکت کنندگان خارجی از جامعه متن باز، توسعه یافته و در سال 2009 منتشر شده است. ایده ایجاد آن این بوده است که زبانی باشد که سرعت توسعه یک زبان پویا مانند پایتون را با عملکرد و ویژگیهای ایمنی یک زبان کامپایلری مانند C یا ++C ترکیب کند. کامپایلر Go در ابتدا به زبان C نوشته شده بود اما اکنون به خود زبان Go نوشته شدهاست.
انگیزه ایجاد Golang چه بوده است؟
امروزه هزاران زبان برنامهنویسی برای انتخاب و توسعه برنامه های شما وجود دارند. هر زبان مزایای خاص خود را دارد و برنامهنویسان مختلف زبان های مختلفی را برای کار انتخاب میکنند.
اما یک زبان باید به تمام معنا کامل باشد و کار با آن برای هر برنامهنویس آسان باشد. یک زبان برنامه نویسی میتواند در انجام فقط یک کار، مانند COBOL عالی باشد یا میتواند برای برنامهنویسی با اهداف عمومی مانند جاوا یا JavaScript استفاده شود. چهار مورد مهمی که یک زبان باید برای رسیدن به آن پیشرفت کند، سرعت / کارایی، قابلیت اطمینان، مقیاس و سادگی است.
اگر زبانهایی مانند C یا ++C را در نظر بگیریم، آنها از نظر سرعت، مقیاس و قابلیت اطمینان عالی هستند اما از نظر سادگی، چندان عالی نیستند. از طرف دیگر جاوا بسیار قابل اعتماد و مقیاسپذیر است، اما سینتکس آن نسبتاً ساده و در مقایسه با سایر زبانهای سطح پایین بسیار کارآمد نیست. پایتون یک زبان کاملاً پذیرفته شده و سینتکس آن بسیار ساده است اما چندان کارآمد و قابل اعتماد نیست.
گوگل در 2008–2010 به دنبال زبانی بود که بتواند در همه این 4 مورد عالی باشد. از این رو با کمک Ken Thompson ، Rob Pike و Robert Griesemer، یک زبان به نام Go ایجاد کردند که میتواند به شما توسعهدهندگان تجربه نوشتن در یک زبان برنامهنویسی (مفسری) مانند Python یا JavaScript را بدهد، اما در عین حال مثل انواع زبان های سطح پایین عمل کند.
تمرکز اصلی آنها بر روی سادگی، مقیاس، سرعت و قابلیت اطمینان بوده است. از آنجا که Go یک کلمه معمول انگلیسی است، جستجوی موارد مرتبط با برنامه نویسی Go در اینترنت چندان آسان نیست، بنابراین بسیاری از افراد به جای آن از GoLang استفاده میکنند.
چه ویژگی منحصر به فردی در Go وجود دارد؟
زبان Go در عمل تلاشی است برای تلفیق سهولت برنامهنویسی یک زبان پویا و کارایی و ایمنی یک زبان کامپایلری. همچنین هدف آن در مدرن بودن، با پشتیبانی از محاسبات شبکهای و چند هستهای است. از دلایل مهم دیگر میتوان به موارد زیر نیز اشاره کرد:
- Goیک زبان مینیمال مانند پایتون است. از آنجا که توسط گوگلی هایی که عاشق پایتون نیز هستند ساخته شده است، آنها زبانی را توسعه دادند که سینتکس آن مانند پایتون ساده اما مانند ++C کارآمد است. بنابراین Go چیزی مابین این دو نوع زبان است. بنابراین به افراد جدید کمک میکند تا برنامههای کارآمدی را در Google بنویسند.
- برخلاف Python / PHP، Go یک زبان کامپایلری است، کد شما در اصل کامپایل میشود و سپس برای اجرا در هر جایی درست مثل برنامه های C در دسترس است.
- Goویژگیهای بهتری برای نوشتن برنامههای Concurrent فراهم کرده است. در عصری که برنامههای چند هستهای در حال نوشته شدن هستند، Go به خوبی این نیاز را برطرف کرده است.
- Go یک زبان شی گرا نیست بنابراین همین امر میتواند دلیلی بر محبوبیت زیاد این زبان باشد.
- رشتهها در Goبه صورت پیش فرض UTF-8 رمزگذاری شدهاند.
- Go سینتکس سادهتری نسبت به سایر زبانهای برنامهنویسی کامپایلری دارد.
گوگل یکی از بزرگترین زیرساخت های ابری در جهان را دارد و به طور گستردهای مورد استفاده قرار گرفته شده است. Go توسط گوگل طراحی شده تا مشکلات مربوط به پشتیبانی از مقیاس پذیری و اثربخشی آنها را برطرف کند. اینها همان مسائلی هستند که هنگام پیکربندی سرویس های خود با آنها روبرو خواهید شد.
امروزه Go دیگر یک زبان ناشناخته نیست، برخی از پروژههای معروف و مشهور از آن در توسعه خود استفاده میکنند، به عنوان مثال Kubernetes و Ethereum Crypto Project بر اساس Golang ساخته شدهاند. یکی دیگر از نکات مورد علاقه در مورد Go سرعت بسیار زیادی است که میتواند بدست آورد.
مزایا و معایب زبان Go
مزایا:
- انعطاف پذیری: Golang خلاصه، ساده و بسیار خوانا میباشد.
- همزمانی: این امر اجازه می دهد تا چندین فرآیند همزمان و به طور موثر اجرا شوند.
- نتیجه سریع: Go بسیار سریع است.
- کتابخانه: Go کتابخانه استاندارد غنی را فراهم کرده است.
- زباله جمع کن ( Garbage Collection): این یک ویژگی کلیدی Go است. Go در کنترل زیاد تخصیص حافظه بسیار عالی عمل میکند و تأخیر در جدیدترین نسخههای جمع آوری زباله را به طرز چشمگیری کاهش میدهد.
معایب:
- عدم پشتیبانی از Genericها، حتي اگر بحث هاي زيادي در مورد آن باشد.
- بسته های توزیع شده با این زبان برنامه نویسی کاملاً مفیدهستند اما Go به معنای واقعی آنقدر شی گرا نیست.
- عدم وجود یک سری کتابخانه های کاربردی از جمله عدم وجود کیت ابزار UIمناسب.
برخی از برنامه های محبوب که به زبان Go توسعه یافتهاند عبارتند از :
- Docker: مجموعه ای از ابزارها برای استقرار کانتینرها.
- Openshift: یک PaaSرایانش ابری ارائه شده توسط Red Hat.
- Kubernetes: آینده استقرار خودکار فرآیندهای یکپارچه.
- Dropbox: برخی از اجزای مهم خود را از پایتون به Go منتقل کردند.
- Netflix: استفاده شده برای دو بخش از معماری سرور های آنها.
- InfluxDB: یک پایگاه داده منبع باز سری زمانی است که توسط InfluxData ساخته شده است.
- Golang: خود این زبان به زبان Go نوشته شده است.
نتیجهگیری:
اگرچه Go بسیار متفاوت از سایر زبانهای شیگرا است، اما همچنان همان هیولا است. Go عملکردی عالی مانند C++ / C، کارایی همزمان فوق العاده کارآمد مانند جاوا و سینتکسی مانند Python / Perl را برای شما فراهم میکند. Golang برای ایجاد تعادل مناسب بین ابزارهای قدرتمند و مقرون به صرفه برای توسعه طراحی شده است.
Go به مثالی تبدیل شده است که چگونه میتوان با ایجاد تعادل بین زبانهای پویا و ایستا، از هر دو جهان بهترین بهره را برد. با این حال، Go هنوز در مراحل اولیه توسعه است و هر روز به سرعت در حال پیشرفت است.