آنچه در این مقاله میخوانید
معرفی زبان برنامهنویسی Go
۱ مرداد ۱۳۹۹
زبان برنامهنویسی Go (که گاهی با نام GoLang نیز شناخته میشود)، یک زبان ساده، قدرتمند و مقیاسپذیر است که توسط گوگل طراحی شده و از ساختار procedural و static typing پشتیبانی میکند. سینتکس آن شباهت زیادی به زبان C دارد و در عین حال امکانات مدرنی مانند کتابخانه استاندارد گسترده، جمعآوری خودکار زباله (Garbage Collection) و پشتیبانی از ساختارهای داخلی مانند map و array را در اختیار توسعهدهندگان قرار میدهد.
Go بهویژه برای توسعهی برنامههای تحت وب، وبسرویسها، میکروسرویسها و سیستمهای توزیعشده طراحی شده و در سالهای اخیر بهسرعت در بازار جهانی و بهویژه آمریکا رشد کرده است؛ بهطوری که اکنون جزو زبانهای محبوب و پردرآمد محسوب میشود.
در ادامه خواهید خواند:
- سیر تکامل Golang
- چرا Golang؟
- ویژگیهای Golang
- شروع برنامهنویسی با Golang
- مزایای استفاده از زبان Golang
- معایب زبان Golang
- جمع بندی

سیر تکامل 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ها کارایی چندانی ندارند.
با هاست ابری Django لیارا، اپلیکیشنهای جنگوی خود را سریع، امن و بدون دردسر اجرا کنید.
✅ استقرار آسان با یک کلیک✅ پشتیبانی از پایگاههای داده مختلف✅ منابع اختصاصی، امنیت بالا
خرید و راهانداری هاست جنگو
ویژگیهای 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!")
}
جنگو (Django) چیست؟
جنگو (Django)
توضیحهایی در رابطه با برنامه بالا:
- خط اول: این پکیج اصلی برنامه است که محتوای اصلی برنامه در آن قرار دارد و نوشتن آن اجباری است زیرا شروع اجرای برنامه از این قسمت انجام میشود.
- خط دوم: در این خط “fmt” را وارد برنامه میکنیم که یک دستور preprocessor محسوب میشود و به کامپایلر میگوید که فایلهای موجود در پکیج را در برنامه وارد کند.
- خط سوم:
main function
، آغاز اجرای برنامه محسوب میشود. - خط چهار:
fmt.Println()
، یک تابع از کتابخانههای استاندارد Go است که میتواند به عنوان خروجی، چیزی را روی صفحه چاپ کند. در پکیج fmt، متد Println برای نمایش خروجی بر روی صفحه استفاده میشود. - کامنت: کامنت برای توضیح بخشی از کد، مورد استفاده قرار میگیرد و در زبانهای
Java, C, C++
به طور یکسانی مورد استفاده قرار میگیرد. . کامپایلرها کامنت را نادیده میگیرند و آنها را اجرا نمیکنند. کامنتها میتوانند از یک خط یا چند خط تشکیل شده باشند.
کامنت یک خطی:
// کامنت کردن یک خط در برنامه
کامنت چند خطی:
/* کامنت کردن چند خط از برنامه */
مزایای استفاده از زبان Golang
- سرعت بالا: زبان Go از ماشین مجازی استفاده نمیکند و میتواند مستقیما به کدهای ماشین تبدیل شود و با کدهای assembly بسیار سریع میشود.
- یادگیری آسان: تغییرهای جزئی در سینتکس آن وجود دارد و بهطور کلی شبیه به سایرین است.
- همزمانی (Concurrency): این قابلیت اجازه میدهد چندین فرایند بهطور همزمان و موثر اجرا شود.
- متنباز: این زبان رایگان و متنباز است. همچنین جامعهای وجود دارد که برای کمک به شما آماده هستند.
- قابلیت Garbage collection: این یکی از قابلیتهای کلیدی این زبان است. به کمک این قابلیت میتوانید مدیریت بهتری بر روی تخصیص حافظه (memory allocation) داشته باشید و بهصورت وحشتناکی latency برنامه را کاهش میدهد.
- ابزار تست داخلی: Golang دارای یک ابزار تست داخلی است که به آسانتر شدن خطایابی، کمک میکند.
معایب زبان Golang
- پشتیبانی برای موارد عمومی ندارد، حتی اگر خیلی از افراد روی آن مسئله بحث کرده باشند.
- پکیجهای توزیع شده این زبان کاملا مفید هستند ولی بهصورت کلی شیگرا نیست.
- عدم وجود برخی از کتابخانهها، مثلا UI toolkit
معرفی هاست رایگان Django
هاست رایگان Django
جمع بندی
زبان برنامهنویسی Go، ترکیبی از سادگی، کارایی و مقیاسپذیری را ارائه میدهد. طراحی این زبان با هدف برطرف کردن پیچیدگیهای موجود در زبانهایی مانند Python، Java و C/C++ صورت گرفته و ابزارهایی مانند garbage collection، پشتیبانی از همزمانی (concurrency) و کتابخانههای استاندارد قدرتمند را بهصورت داخلی ارائه میدهد. با وجود ساختار ساده و سرعت بالا، Go به گزینهای مناسب برای توسعه وبسرویسها، میکروسرویسها و نرمافزارهای توزیعشده تبدیل شده و بهسرعت جایگاه خود را در میان زبانهای پردرآمد و محبوب بازار پیدا کرده است.
منبع: https://www.geeksforgeeks.org/introduction-to-go-programming