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

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
গো
Go's mascot is a ছুচো, designed by Renée French.[১]
প্যারাডাইমcompiled, concurrent, imperative, বস্তু-ভিত্তিক
নকশাকারসুইজারল্যান্ড রবার্ট গ্রিসেমার
কানাডা রব পাইক
মার্কিন যুক্তরাষ্ট্র কেন টম্পসন
বিকাশকারীGoogle Inc.
প্রথম প্রদর্শিত১০ নভেম্বর ২০০৯; ১৪ বছর আগে (2009-11-10)
স্থিতিশীল সংস্করণ
1.22.2[২] উইকিউপাত্তে এটি সম্পাদনা করুন / ৩ এপ্রিল ২০২৪; ১ দিন আগে (3 April 2024)
টাইপিং পদ্ধতিstrong, static, inferred, structural[৩][৪]
বাস্তবায়ন ভাষাGo, assembly language, previously C (gc); C++ (gccgo)
ওএসLinux, macOS, FreeBSD, NetBSD, OpenBSD,[৫] Windows, Plan 9,[৬] DragonFly BSD, Solaris
লাইসেন্সBSD-style[৭] + patent grant[৮]
ফাইলনেম এক্সটেনশন.go
ওয়েবসাইটgo.dev উইকিউপাত্তে এটি সম্পাদনা করুন
মুখ্য বাস্তবায়নসমূহ
gc, gccgo
যার দ্বারা প্রভাবিত
Alef, APL,[৯] BCPL,[৯] C, CSP, Limbo, Modula, Newsqueak, Oberon, occam, Pascal,[১০] Python, Smalltalk[১১]
যাকে প্রভাবিত করেছে
Crystal

গো একটি প্রোগ্রামিং ভাষা যেটি ২০০৭ সালে গুগলে ডেভেলপ করা হয়। এটি স্ট্যাটিক টাইপড ল্যাঙ্গুয়েজ যার সিনট্যাক্স সি প্রোগ্রামিং এর মত । এটিতে গ্যারবেজ কালেকশন, টাইপ সেফটি, ডাইন্যামিক টাইপিং ক্যাপাবিলিটি, সিএসপি ধরনের কনকারেন্সি, বড় লাইব্রেরী রয়েছে । গুগলের তিনজন কর্মকর্তা রবার্ট গ্রিসেমার, রব পাইক এবং কেন থম্পসন একত্রে এই ভাষাটি নির্মাণ করেন। এর সোর্স কোড ২০০৯ সালে উন্মুক্ত করে দেওয়া হয় । জাভা এবং সি এর মত প্রতিষ্ঠিত ল্যাংগুয়েজ এর তুলনায় এর সোর্স কোড সহজবোধগম্য এবং দ্রুত কার্যকারী ॥[১১][১২] এটিকে এমনভাবে বানানো হয় যাতে এই প্রোগ্রামিং ল্যাঙ্গুয়েজটি 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 কিওয়ার্ডটি ব্যবহার করে আমরা এক বা একাধিক ভ্যারিয়েবল ডিফাইন করতে পারি । এই কিওয়ার্ডটির পর ভ্যারিয়েবল এর নাম এবং তারপর টাইপ নির্দেশ করতে হয় ।

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

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

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

ব্যাবহারিক প্রয়োগ[সম্পাদনা]

Go এর শক্তিশালী স্ট্যান্ডার্ড লাইব্রেরি এবং ব্যবহারের সহজতার কারণে বিভিন্ন ডোমেনে ব্যাপক গ্রহণযোগ্যতা পেয়েছে।

জনপ্রিয় অ্যাপ্লিকেশনগুলির মধ্যে রয়েছে: ক্যাডি , একটি ওয়েব সার্ভার যা HTTPS সেট আপ করার প্রক্রিয়াটিকে স্বয়ংক্রিয় করে,  ডকার , যা সফ্টওয়্যার বিকাশ এবং স্থাপনার জটিলতাগুলিকে সহজ করার লক্ষ্যে কনটেইনারাইজেশনের জন্য একটি প্ল্যাটফর্ম প্রদান করে,  কুবারনেটস , যা স্থাপনা স্বয়ংক্রিয় করে , স্কেলিং, এবং কন্টেইনারাইজড অ্যাপ্লিকেশনের ব্যবস্থাপনা,  ককরোচডিবি , স্কেলেবিলিটি এবং শক্তিশালী সামঞ্জস্যের জন্য প্রকৌশলী একটি বিতরণ করা SQL ডাটাবেস,  এবং হুগো , একটি স্ট্যাটিক সাইট জেনারেটর যা গতি এবং নমনীয়তাকে অগ্রাধিকার দেয়, যা বিকাশকারীদের দক্ষতার সাথে ওয়েবসাইট তৈরি করতে দেয়।

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

  1. "FAQ — The Go Programming Language"। Golang.org। সংগ্রহের তারিখ ২০১৩-০৬-২৫ 
  2. "Release History" 
  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. Pike, Rob (২০১৪-০৪-২৪)। "Hello Gophers"। সংগ্রহের তারিখ ২০১৬-০৩-১১ 
  10. উদ্ধৃতি ত্রুটি: <ref> ট্যাগ বৈধ নয়; langfaq নামের সূত্রটির জন্য কোন লেখা প্রদান করা হয়নি
  11. "The Evolution of Go"। সংগ্রহের তারিখ ২০১৫-০৯-২৬ 
  12. "Hello Gophers" 
  13. "সংরক্ষণাগারভুক্ত অনুলিপি"। ২৮ নভেম্বর ২০১৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৩ ডিসেম্বর ২০১৬