গো (প্রোগ্রামিং ভাষা)

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
সরাসরি যাও: পরিভ্রমণ, অনুসন্ধান
the agent-based language released in 2003, Go! (programming language) দেখুন।
"Google Go" এখানে পুননির্দেশ করা হয়েছে। the computer program by Google to play the board game Go জন্য, দেখুন AlphaGo
গো
File:golang.png
প্যারাডাইম compiled, concurrent, imperative, structured
আবির্ভাব নভেম্বর ১০, ২০০৯; ৭ বছর আগে (২০০৯-১১-১০)
ডিজাইন করেছেন Robert Griesemer
Rob Pike
Ken Thompson
ডেভেলপার Google Inc.
সর্বশেষ প্রকাশ 1.7.4/ ডিসেম্বর ১, ২০১৬; ৯ মাস আগে (২০১৬-১২-০১)[১]
টাইপিং ডিসিপ্লিন strong, static, inferred, structural[২][৩]
প্রধান বাস্তবায়ন gc, gccgo
যার দ্বারা প্রভাবিত Alef, APL,[৪] BCPL,[৪] C, CSP, Limbo, Modula, Newsqueak, Oberon, occam, Pascal,[৫] Python, Smalltalk[৬]
যাকে প্রভাবিত করেছে Crystal
ওএস Linux, macOS, FreeBSD, NetBSD, OpenBSD,[৭] Windows, Plan 9,[৮] DragonFly BSD, Solaris
বৈধপত্র BSD-style[৯] + patent grant[১০]
ওয়েবসাইট golang.org

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

ইতিহাস[সম্পাদনা]

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

ভাষার ডিজাইন[সম্পাদনা]

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

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

package main
import “fmt”
func main() {
fmt.Printf(“Hello, ??n”)
}

প্রোগ্রাম রান করানো[সম্পাদনা]

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

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

ভেরিয়েবল[সম্পাদনা]

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

ধরন[সম্পাদনা]

নতুন একটি প্রোগ্রামিং ভাষা কেন?[সম্পাদনা]

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

তথ্যসূত্র[সম্পাদনা]

  1. "Release History - The Go Programming Language"golang.org। সংগৃহীত ১৯ অক্টোবর ২০১৬ 
  2. "Why doesn't Go have "implements" declarations?"golang.org। সংগৃহীত ১ অক্টোবর ২০১৫ 
  3. Pike, Rob (২০১৪-১২-২২)। "Rob Pike on Twitter"। সংগৃহীত ২০১৬-০৩-১৩। "Go has structural typing, not duck typing. Full interface satisfaction is checked and required." 
  4. Pike, Rob (২০১৪-০৪-২৪)। "Hello Gophers"। সংগৃহীত ২০১৬-০৩-১১ 
  5. উদ্ধৃতি ত্রুটি: অবৈধ <ref> ট্যাগ; langfaq নামের সূত্রের জন্য কোন লেখা প্রদান করা হয়নি
  6. "The Evolution of Go"। সংগৃহীত ২০১৫-০৯-২৬ 
  7. "lang/go: go-1.4 – Go programming language"OpenBSD ports। ২০১৪-১২-২৩। সংগৃহীত ২০১৫-০১-১৯ 
  8. "Go Porting Efforts"Go Language Resources। cat-v। ১২ জানুয়ারি ২০১০। সংগৃহীত ১৮ জানুয়ারি ২০১০ 
  9. "Text file LICENSE"The Go Programming Language। Google। সংগৃহীত ৫ অক্টোবর ২০১২ 
  10. "Additional IP Rights Grant"The Go Programming Language। Google। সংগৃহীত ৫ অক্টোবর ২০১২ 
  11. "Hello Gophers" 
  12. http://www.codingdojo.com/blog/new-programming-languages-to-learn-2016/