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

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
সরাসরি যাও: পরিভ্রমণ, অনুসন্ধান
গো
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/