معرفی زبان برنامه‌نویسی Go


۱ مرداد ۱۳۹۹
معرفی  زبان برنامه‌نویسی golang

GO (همچنین به آن GoLang هم می‌گویند)، یک زبان برنامه‌نویسی procedural و statically-typed است که سینتکسی (syntax) مشابه زبان C دارد. این زبان قابلیت‌های standard library, garbage collection و dynamic-typing capability را در اختیار شما قرار می‌دهد.

همچنین این زبان ویژگی‌های key-value maps, length arrays را به صورت built-in همراه خود دارد. Go زبانی بسیار قدرت‌مند، کارآمد و مقیاس‌پذیر برای ساخت برنامه‌های تحت وب،web API، میکروسرویس‌ها و دیگر سرویس‌های توزیع شده است. این زبان در آمریکا به سرعت رشد کرده است و به عنوان زبان‌های پردرآمد شناخته می‌شود.

سیر تکامل Golang:

این زبان توسط Robert Griesemer, Rob Pike و Ken Thompson در سال ۲۰۰۷ در گوگل طراحی شده است که در November ۲۰۰۹ به عنوان یک زبان برنامه‌نویسی متن‌باز راه اندازی شد. هدف اصلی طراحی زبان Golang، حل مشکل‌های دیگر زبان‌های برنامه‌نویسی و حفظ ویژگی‌های مفید آن‌ها بود. نسخه 1.0 این زبان در March ۲۰۱۲ منتشر شد و دیگر نسخه این زبان در سال ۲۰۱۸ با نسخه 1.11.1 در دسترس عموم قرار گرفت، اما حالا این زبان با نسخه 1.14.6 در وبسایت رسمی قرار گرفته است.

چرا Golang؟

هدف اصلی از طراحی Golang از بین بردن مشکل‌های زبان‌های موجود بود. بنابراین بیایید مشکل‌هایی که در زبان‌های Python, Java, C/C++ وجود دارند را بررسی کنیم:

  • Python: استفاده از این زبان بسیار آسان است، اما عملکرد کندی دارد و دلیل آن هم مفسری بودن این زبان است.
  • Java: در نوع خود سیستم پیچیده‌ای دارد و با ویژگی‌های اضافی و ثانویه خود باعث پیچیدگی بیشتر و کند‌تر شدن می‌شود.
  • C/C++: این زبان‌ها هم پیچیدگی‌های خود را دارند و در کامپایل شدن، کند عمل می‌کنند. همچنین طراحی این زبان‌ها به گونه‌ای است که در فضای کم کامپیوتر هم کارا باشد و به همین دلیل توسعه‌دهنده آن تصمیم گرفت با استفاده از کم‌ترین فضا کامپایلر را بهینه کند و در نتیجه زمان کامپایل افزایش پیدا کرد.
  • در آخر باید بگوییم، همه این زبان‌ها زمانی توسعه یافتند که استفاده از قابلیت multi-threading در برنامه‌ها، بسیار مرسوم نبود. بنابراین نتیجه می‌گیریم این زبان‌ها برای برنامه‌ها highly scalable، concurrent و parallelها کارایی چندانی ندارند.

ویژگی‌های Golang:

  • زبانی از نوع Strong و Static: زبان Go از نوع زبان‌های Strong و Static است. Strong به این معنی که وقتی شما یک متغیر را با نوع داده‌ای مانند int تعریف کردید، این متغیر در تمام برنامه به همین صورت است و Static هم یعنی، تمام متغیرها در زمان کامپایل باید تعریف شده باشند.
  • جامعه کاربری عالی: Golang جامعه کاربری بسیار خوبی برای پیگیری و حل مشکل‌ها دارد.
  • Compilations سریع: این زبان فقط شامل پکیج‌هایی می‌شود که مستقیما به کد import شده باشند.
  • قابلیت Garbage collection: این زبان با دارا بودن قابلیت Garbage collection خودکار و سریع ارائه شده است.
  • همزمانی (Concurrency): زبان Go به‌صورت built-in، از قابلیت همزمانی پشتیبانی می‌کند. با استفاده از Routines و Chanellsهای زبان Go به آسانی و به‌طور مفید می‌توانید از قابلیت همزمانی در این زبان بهره ببرید.

شروع برنامه‌نویسی با Golang:

از آن‌جایی که زبان Go، بسیار شبیه زبان‌های برنامه‌نویسی متداول است، یادگیری این زبان راحت و آسان است. برای نوشتن برنامه‌هایی با زبان Go می‌توانید از ویرایشگر‌های متنی مانند Notepad++، gedit و … استفاده کنید و سپس فایل برنامه خود را با پسوند .go یا .GO ذخیره کنید. همچنین IDEهای آنلاینی هم مانند repl.it، Go Playground در این راه می‌توانند به کمک شما بیایند که بدون نصب GO، برنامه‌های نوشته شده به این زبان را اجرا کنید. برای نصب Go در رایانه‌های شخصی و یا لپ‌تاپ، به دو نرم‌افزار ویرایشگر متن نیاز هست، که در یکی برنامه‌ خود را بنویسید و در دیگری آن را کامپایل کنید. ویرایشگر متنی شما می‌تواند: Brief, vm, vi, notepad, notepad++ و یا هر ویرایشگر متنی دیگر باشد.

برای مثال: یک برنامه که Hello, World! را بر روی صفحه چاپ کند به شکل زیر است.

package main 
 
import "fmt"

func main() { 

 // prints Hello, World! 
 fmt.Println("Hello, World!")
} 

توضیح‌هایی در رابطه با برنامه بالا:

  • خط اول: این پکیج اصلی برنامه است که محتوای اصلی برنامه در آن قرار دارد و نوشتن آن اجباری است زیرا شروع اجرای برنامه از این قسمت انجام می‌شود.
  • خط دوم: در این خط “fmt” را وارد برنامه می‌کنیم که یک دستور preprocessor محسوب می‌شود و به کامپایلر می‌گوید که فایل‌های موجود در پکیج را در برنامه وارد کند.
  • خط سوم: main function، آغاز اجرای برنامه محسوب می‌شود.
  • خط چهار: fmt.Println()، یک تابع از کتاب‌خانه‌های استاندارد Go است که می‌تواند به عنوان خروجی، چیزی را روی صفحه چاپ کند. در پکیج fmt، متد Println برای نمایش خروجی بر روی صفحه استفاده می‌شود.
  • کامنت: کامنت برای توضیح بخشی از کد، مورد استفاده قرار می‌گیرد و در زبان‌های Java, C, C++ به طور یکسانی مورد استفاده قرار می‌گیرد. . کامپایلرها کامنت را نادیده می‌گیرند و آن‌ها را اجرا نمی‌کنند. کامنت‌ها می‌توانند از یک خط یا چند خط تشکیل شده باشند.

کامنت یک خطی:

// کامنت کردن یک خط در برنامه

کامنت چند خطی:

/* کامنت کردن چند خط از برنامه */

مزایای استفاده از زبان Golang:

  1. سرعت بالا: زبان Go از ماشین مجازی استفاده نمی‌کند و می‌تواند مستقیما به کدهای ماشین تبدیل شود و با کدهای assembly بسیار سریع می‌شود.
  2. یادگیری آسان: تغییرهای جزئی در سینتکس آن وجود دارد و به‌طور کلی شبیه به سایرین است.
  3. همزمانی (Concurrency): این قابلیت اجازه می‌دهد چندین فرایند به‌طور همزمان و موثر اجرا شود.
  4. متن‌باز: این زبان رایگان و متن‌باز است. همچنین جامعه‌ای وجود دارد که برای کمک به شما آماده هستند.
  5. قابلیت Garbage collection: این یکی از قابلیت‌های کلیدی این زبان است. به کمک این قابلیت می‌توانید مدیریت بهتری بر روی تخصیص حافظه (memory allocation) داشته باشید و به‌صورت وحشتناکی latency برنامه را کاهش می‌دهد.
  6. ابزار تست داخلی: Golang دارای یک ابزار تست داخلی است که به آسان‌تر شدن خطایابی، کمک می‌کند.

معایب زبان Golang:

  • پشتیبانی برای موارد عمومی ندارد، حتی اگر خیلی از افراد روی آن مسئله بحث کرده باشند.
  • پکیج‌های توزیع شده این زبان کاملا مفید هستند ولی به‌صورت کلی شی‌گرا نیست.
  • عدم وجود برخی از کتاب‌خانه‌ها، مثلا UI toolkit

منبع: https://www.geeksforgeeks.org/introduction-to-go-programming

همچنین بخوانید: معرفی هاست رایگان Golang

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi