برنامه نویس
معرفی زبان Go
زبان go که با نام golang نیز شناخته میشود، یک زبان برنامهنویسی رویهای (procedural) متنباز (open source) است. این زبان جزو زبانهای کامپایل شونده (compiled) و تایپ شده (statically typed) محسوب میشود. این زبان در سال ۲۰۰۷ توسط سه فرد (Robert Griesemer, Rob Pike, and Ken Thompson) خلق شد. اما بعدا در سال ۲۰۰۹ توسط گوگل به عنوان یک زبان متنباز توسعه و ارائه شد.
در واقع go یک زبان برنامهنویسی همهمنظوره با املایی ساده است که توسط یک کتابخانه استاندارد قوی پشتیبانی میشود. Go در موضوعات زیادی استفاده میشود، اما نام این زبان زیبا معمولا با برنامههای وب با دسترسی و مقیاسپذیری بالا (highly available and scalable) زیاد دیده میشود. همچنین از Go برای برنامههای خط فرمان (command-line) استفاده میکنند.
ویژگیهای Golang
چرا Go را به عنوان زبان برنامهنویسی سمت سرور انتخاب میکنند، در حالی که زبانهای دیگر مانند nodejs، python و ruby وجود دارند که کار مشابهی را انجام میدهند؟
خب، در اینجا برخی از ویژگیهای golang رو بررسی میکنیم:
املای ساده این زبان (Syntax)
املای این زبان ساده و مختصر و بدون ویژگیهای غیر معمول و غیرضروری است، که باعث نوشتن کدی تمیز و قابل خواندن و نگهداری میشود.
همزمانی (Concurrency)
همزمانی بخش ذاتی Golang است. در نتیجه کار با thread ها و نوشتن برنامههای چند thread مثل آب خوردن میشود. این امکان در golang با استفاده از goroutine ها و channel ها قابل استفاده است که بعدا در مورد آن توضیح خواهم داد.
زبان کامپایل شده (Compiled Language)
go یک زبان کامپایل شونده است. به این معنا که کد شما به یک باینری بومی تبدیل میشود. همچنین کامپایلر golang بسیار سریع است.
این مورد در زبانهای تفسیر شده مانند nodejs یا python وجود ندارد.
ابزاریهای golang
یکی از ویژگیهای مورد علاقه من ابزارهای قدرتمندی هستند که golang برای برنامهنویسان آماده دارد، که مفصل در مورد آن خواهم نوشت. نام بردن بعضی از آنها خالی از لطف نیست :)
- gofmt - این ابزار برای قالب بندی (format) کد شما استفاده میشود. بطور کلی تمامی کدهای این زبان قالب یکسانی دارند که باعث خوانایی بهتر کد میشود.
- vet - این ابزار کد شما را تجزیه و تحلیل کرده و کدهای مشکوک را گزارش میدهد. البته همه گزارشات vet مشکل واقعی نیستند، اما خطاهای احتمالی را که توسط کامپایلر گزارش نمیشوند را تشخصی میدهد.
- golint - این ابزار برای شناسایی مسائل ظاهری استفاده میشود
البته استفاده این ابزارها با برنامههایی چون vscode بسیار دلچسبتر خواهد بود و قدرت و راحتی استفاده از آنها را بیشتر میکند.
Garbage collection
زبان برنامهنویسی golang از garbage collection استفاده میکند. بنابراین مدیریت حافظه تقریبا بطور خودکار انجام میشود و توسعه دهنده نیازی به نگرانی در مورد آن ندارد. این مورد برای نوشتن برنامههای همزمانی (cuncurrent) بسیار کاربردی است.
برنامههایی که با Go نوشته شدهاند
برخی از برنامههایی که با Go نوشته شدهاند:
مطلبی دیگر از این انتشارات
از DefaultServeMux استفاده نکنیم
مطلبی دیگر از این انتشارات
آشنایی با Gitea
مطلبی دیگر از این انتشارات
چطور تمام پوشههای node_modules سیستم رو پاک کنیم؟