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


تاریخچه گولنگ

گو یک زبان برنامه نویسی است که در سال ۲۰۰۷ توسط سه تن از معروفترین‌های علوم کامپیوتر یعنی رابرت گریزمر، راب پایک و کن تامپسون ساخته شد. در حقیقت برای اولین بار این زبان به عنوان یک تست برای ساخت جایگزینی برای زبان‌هایی که در آن زمان در گوگل حکمفرما بودند ( یعنی سی ++، پایتون و جاوا) بود. کن تامپسون و راب پایک از طراحان باسابقه ی سیستم های کامپیوتری هستند و در پرونده‌ی خود ساخت یونیکس، طراحی utf-8 و زبان سی و بسیاری از مسائل اساسی حوزه علوم کامپیوتر را دارند. حوزه ای که به نظر آنها با ایده‌های آشغالی همچون مدل شی گرایی جاوا و بسیاری از نا هماهنگی های دیگر به سمت نادرستی در حال پیش رفتن است.
آنها انتظار داشتند زبان جدید ویژگی‌های زیر را داشته باشد :
  • استاتیک تایپ باشد
  • خوانایی و بهره وری بالایی در کدهای زبان باشد
  • به ابزارهای زیادی وابسته نباشد، اما با سایر ابزارها خوب کار کند
  • از برنامه‌نویسی شبکه و چندپردازه ای پشتیبانی کند
در همه‌ی این مراحل هرسه طراح زبان گو به اتفاق مخالف پیچیدگی‌های زبان سی++ بودند و این یک دلیل پیش برنده برای توسعه زبان جدید بود.

ویژگی‌های منحصر به فرد زبان برنامه‌نویسی گو


سادگی و سرعت یادگیری

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


کتابخانه‌ی قدرتمند زبان

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

استاتیک تایپ

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

ابزارهای خط فرمان

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

مدیریت پکیج‌ها

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

توسعه مداوم

تیم توسعه‌ی گو متشکل از جمعی از بهترین برنامه‌نویسان حال و حاضر دنیاست و بصورت روزانه تغییرات، بهبودها و بحث‌های زیادی در مورد مشکلات و انتشار نسخه‌های آتی زبان صورت میگیرد.

سرعت کامپایل بالا

یکی از ویژگی‌های برتر گو نسبت به بسیاری از زبان‌های کامپایلری از جمله سی و سی++، سرعت بسیار بالای کامپایل کدهای آن است. این تفاوت آنقدر نسبت به زبان‌های بیان شده زیاد است که میتوان کدهای زبان گو را با دستور go run کامپایل اجرا کرد و در عمل طوری دیده میشود که گویی یک اسکریپت از یک زبان اسکریپتی را اجرا کرده اید.
 

ابزار تست درونی

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

مدل برنامه‌نویسی همرند

تکمیل نشده.

گولنگ کجا استفاده میشود


برنامه نویسی شبکه

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

ساخت وب اپلیکیشن ها

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

'ساخت برنامه‌های خط فرمان

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


ساخت اپلیکیشن‌ها دسکتاپ

ابزارهایی چون tk و gtk و qt و سایرین در همان ابتدای معرفی زبان گو توسط توسعه‌دهندگان برای استفاده در گو پورت شدند و واسط‌هایی برای گو برای استفاده ازین ابزارها ساخته شد.

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

تکمیل نشده.

نسخه‌های گولنگ

در سال ۲۰۱۲ نسخه‌ی ۱.۰ گو منتشر شد. نسخه‌ای که از آن به بعد استفاده از این زبان در بین برنامه‌نویسان سرعت بسیار زیادی گرفت و همزمان با معرفی go tools و ساخت کتابخانه‌های فراوان توسط برنامه‌نویسان و انتشار مداوم نسخه‌ها و بهبودهای جدید روی زبان، گو به زبانی با رشد بسیار بالا تبدیل شد، رشدی که در تاریخ علوم رایانه برای یک زبان برنامه‌نویسی نوپا کم نظیر است.

نصب گو

نصب روی ویندوز

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

نصب روی لینوکس

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

نصب روی مک

برای نصب گو روی مک میتوانید به صفحه‌ی دانلود گو رفته و نسخه‌ی dmg ( مخصوص سیستم عامل مک) را دانلود و نصب کنید.

مقدمات گولنگ

در حال تکمیل.

دستورات

درحال تکمیل.

کتابخانه ها

درحال تکمیل.