গো একটি প্রোগ্রামিং ভাষা যেটি ২০০৭ সালে গুগলে ডেভেলপ করা হয়। এটি স্ট্যাটিক টাইপড ল্যাঙ্গুয়েজ যার সিনট্যাক্স সি প্রোগ্রামিং এর মত । এটিতে গ্যারবেজ কালেকশন, টাইপ সেফটি, ডাইন্যামিক টাইপিং ক্যাপাবিলিটি, সিএসপি ধরনের কনকারেন্সি, বড় লাইব্রেরী রয়েছে । গুগলের তিনজন কর্মকর্তা রবার্ট গ্রিসেমার, রব পাইক এবং কেন থম্পসন একত্রে এই ভাষাটি নির্মাণ করেন। এর সোর্স কোড ২০০৯ সালে উন্মুক্ত করে দেওয়া হয় । জাভা এবং সি এর মত প্রতিষ্ঠিত ল্যাংগুয়েজ এর তুলনায় এর সোর্স কোড সহজবোধগম্য এবং দ্রুত কার্যকারী ॥ এটিকে এমনভাবে বানানো হয় যাতে এই প্রোগ্রামিং ল্যাঙ্গুয়েজটি Linux, OS X, Windows, এছাড়াও BSD এবং Unix এর কিছু ভার্শন এ চলতে পারে । এমনকি ২০১৫ সাল থেকে এটি স্মার্টফোন এও ব্যবহারযোগ্য হয় । বিবিসি , সাউন্ড ক্লাউড , ফেসবুক এর মত বড় বড় ওয়েবসাইটে গুগল গো এর ব্যবহার দেখা যায় ।

ইতিহাস
------

ভাষাটি নভেম্বর,2009 সালে ঘোষণা করা হয় । এটি সাধারনত গুগলের বিভিন্ন পন্যে ব্যবহার করা হয় । তাছাড়াও অন্য কোম্পানি দ্বারা এটি ব্যবহার করা হয় ।

ভাষার ডিজাইন
------------

গো (প্রোগ্রামিং ভাষা)' একটি ওপেন সোর্স সফটওয়্যার এবং এটি তৈরির সময় সকল প্লাটফরম যেমন লিনাক্স,ম্যাক ওএস,মাইক্রোসফট উইন্ডোজ এর কথা মাথায় রাখা হয় ।

গো তে হ্যালো ওয়ার্লড এর প্রোগ্রামের ধরন নিচের মতন ।

`package main
import "fmt"
func main() {
fmt.Printf("Hello, world")
}`

প্রোগ্রাম রান করানো
-------------------

গো এর অফিশিয়াল সাইট থেকে ঘুরে আসতে পারেন। উইন্ডোজ লিনাক্স ম্যাক এর জন্য ১.৭ রিলিজ রয়েছে , ওয়েব ও কোড রান করাতে পারবেন । চাইলে আমাদের লোকাল মেশিনেও এই ট্যুর রান করতে পারি । সেক্ষেত্রে আমাদের ইন্টারনেটে কানেক্টেড না থাকলেও চলবে । লোকাল মেশিনে রান করায়, আমাদের কোডও দ্রুত কম্পাইল হবে এবং আমরা দ্রুত রেসপন্স পাবো । অফলাইনে এই ট্যুর রান করার দুটো উপায় আছে - 

* আপনি যদি গো এর অফিশিয়াল কোন বাইনারী ইনস্টল করে থাকেন, তাহলে এই কমান্ডটি রান করলেই হবে - $ go tool tour
* তবে আপনি যদি কোন প্যাকেজ ম্যানেজার বা অন্য কোন সোর্স থেকে ইনস্টল করে থাকেন তবে বাই ডিফল্ট ট্যুর ইন্সটল করা নাও থাকতে পারে । এক্ষেত্রে আমরা ভার্সন কন্ট্রোল থেকে খুব সহজেই ইন্সটল করে নিতে পারি - $ go get golang.org/x/tour/gotour এরপর এই ট্যুর রান করার জন্য এই কমান্ডটি রান করলেই চলবে - $ gotour (আলাদা ভাবে ইন্সটল করলে $ go tool tour কমান্ড কাজ করবে না আর অবশ্যই আপনার গো পাথ এর bin ডিরেক্টরী সিস্টেম পাথে ইনক্লুডেড থাকতে হবে)

ভেরিয়েবল
---------

গো তে ভ্যারিয়েবল গুলো এক্সপ্লিসিটলি ডিফাইন করে দিতে হয় । `var` কিওয়ার্ডটি ব্যবহার করে আমরা এক বা একাধিক ভ্যারিয়েবল ডিফাইন করতে পারি । এই কিওয়ার্ডটির পর ভ্যারিয়েবল এর নাম এবং তারপর টাইপ নির্দেশ করতে হয় ।

ধরন
---

নতুন একটি প্রোগ্রামিং ভাষা কেন?
-------------------------------

গুগল মনে করে বর্তমানে প্রচলিত প্রোগ্রামিং ভাষাগুলো তাদের উপযোগিতার সীমা প্রায় পূর্ণ করে এনেছে। সোজা কথা হল, এদের আর নতুন কিছু দেয়ার নেই। বর্তমানে সবচেয়ে জনপ্রিয় ও বিখ্যাত যে ভাষাগুলো প্রচলিত আছে (যেমন সি, সি++, জাভা, সি#) সেগুলো প্রায় একই ধরনের সিনট্যাক্স কাঠামোকে ভিত্তি করে প্রতিষ্ঠিত। এসব প্রোগ্রামিং ভাষাকে হালনাগাদ করা বা এগুলোতে নতুন বৈশিষ্ট্য যোগ করার মানে হল, এদের লাইব্রেরিকেই শক্তিশালী ও বিস্তৃত করা, মূল ল্যাংগুয়েজের কাঠামোতে কিন্তু কোনো মৌলিক পরিবর্তন আনা হচ্ছে না। এ কারণে এ জায়গাটাতে গুরুত্ব দিতে চায় গুগল। কেবল নতুন একটি লাইব্রেরি অ্যাড করাই নয়, তার চাইতেও বেশি কিছু দিতে চায় গুগল। সি থেকে আজ পর্যন্ত কম্পিউটিং-এর ভুবনটি কিন্তু নানাভাবে পরিবর্তিত হয়েছে। গুগল-এর পক্ষ থেকেও তাই বলা হচ্ছে: ‘বর্তমানে কম্পিউটারের শক্তি প্রচন্ডভাবে বেড়ে গেছে, কিন্তু তার সঙ্গে তাল মিলিয়ে সফটঅয়্যার ডেভেলপমেন্ট ততটা শক্তি সঞ্চয় করতে পারছে না।’ প্যারালাল প্রসেসিং বা গারবেজ কালেকশন-এর মত কনসেপ্টকে সমর্থন বা ধারণ করতে গেলে প্রোগ্রামিং ভাষাগুলোর নিজেদের পাল্টে ফেলতে হবে অনেকটাই। এ কারণেই গুগল ‘গো’ প্রোগ্রামিং ভাষাকে ডিজাইন করেছে একেবারে শুরু থেকে, দ্রতগতির কম্পাইলেশনের সুবিধাসহ একটি সমসাময়িক, গারবেজ-কালেক্টেড ভাষা হিসেবে।

| * দে
* স
প্রোগ্রামিং ভাষা |
| --- |
| 
* তুলনা
* সময়রেখা
* ইতিহাস

 |
| 
* অবজেক্টিভ সি
* আর
* অ্যাডা
* অ্যালগল
* অ্যাসেম্বলি
* এপিএল
* এসকিউএল
* এরল্যাং
* কোবোল
* কোটলিন
* গো
* বেসিক
* সি
* সি++
* সি শার্প
* ফোর্থ
* ফোরট্রান
* হ্যাসকেল
* জাভা
* জাভাস্ক্রিপ্ট
* জুলিয়া
* লিস্প
* লুয়া
* প্যাসকেল
* পার্ল
* পিএইচপি
* পাইথন
* আর (R)
* রুবি
* রাস্ট
* শেল
* সিমুলা
* স্মলটক
* সুইফট
* ভিজুয়াল বেসিক ডট নেট (VB.NET)
* *আরও...*

 |
| 
* বিষয়শ্রেণী **বিষয়শ্রেণী**
* তালিকা-শ্রেণীর নিবন্ধ **তালিকা**
	+ বর্ণানুক্রমিক
	+ শ্রেণিবদ্ধ
	+ প্রজন্ম
	+ ইংরেজি নয়

 |

তথ্যসূত্র
---------

1. ↑  "FAQ — The Go Programming Language"। Golang.org। সংগ্রহের তারিখ ২০১৩-০৬-২৫।
2. ↑  "Release History"। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
3. ↑  "Why doesn't Go have "implements" declarations?"। *golang.org*। সংগ্রহের তারিখ ১ অক্টোবর ২০১৫।
4. ↑  Pike, Rob (২০১৪-১২-২২)। "Rob Pike on Twitter"। সংগ্রহের তারিখ ২০১৬-০৩-১৩। Go has structural typing, not duck typing. Full interface satisfaction is checked and required.
5. ↑  "lang/go: go-1.4 – Go programming language"। *OpenBSD ports*। ২০১৪-১২-২৩। সংগ্রহের তারিখ ২০১৫-০১-১৯।
6. ↑  "Go Porting Efforts"। *Go Language Resources*। cat-v। ১২ জানুয়ারি ২০১০। সংগ্রহের তারিখ ১৮ জানুয়ারি ২০১০।
7. ↑  "Text file LICENSE"। *The Go Programming Language*। Google। সংগ্রহের তারিখ ৫ অক্টোবর ২০১২।
8. ↑  "Additional IP Rights Grant"। *The Go Programming Language*। Google। সংগ্রহের তারিখ ৫ অক্টোবর ২০১২।
9. 1 2  Pike, Rob (২০১৪-০৪-২৪)। "Hello Gophers"। সংগ্রহের তারিখ ২০১৬-০৩-১১।
10. ↑
11. 1 2  "The Evolution of Go"। সংগ্রহের তারিখ ২০১৫-০৯-২৬।
12. ↑  "Hello Gophers"।
13. ↑  "সংরক্ষণাগারভুক্ত অনুলিপি"। ২৮ নভেম্বর ২০১৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৩ ডিসেম্বর ২০১৬।