বিষয়বস্তুতে চলুন

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

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
(Go (programming language) থেকে পুনর্নির্দেশিত)
গো
Go's mascot is a ছুচো, designed by Renée French.[]
প্যারাডাইমcompiled, concurrent, imperative, বস্তু-ভিত্তিক
নকশাকারসুইজারল্যান্ড রবার্ট গ্রিসেমার
কানাডা রব পাইক
মার্কিন যুক্তরাষ্ট্র কেন টম্পসন
বিকাশকারীGoogle Inc.
প্রথম প্রদর্শিত১০ নভেম্বর ২০০৯; ১৫ বছর আগে (2009-11-10)
স্থিতিশীল সংস্করণ
1.12.7[] উইকিউপাত্তে এটি সম্পাদনা করুন / ৮ জুলাই ২০১৯; ৩ সেপ্টেম্বর ২০১৯; ২৬ ফেব্রুয়ারি ২০২০; ১৬ জুলাই ২০২০; ১১ আগস্ট ২০২০; ১২ নভেম্বর ২০২০; ৩ ডিসেম্বর ২০২০; ১৯ জানুয়ারি ২০২১; ৪ ফেব্রুয়ারি ২০২১; ১৬ ফেব্রুয়ারি ২০২১; ১০ মার্চ ২০২১; ১১ মার্চ ২০২১; ১ এপ্রিল ২০২১; ৬ মে ২০২১; ৩ জুন ২০২১; ১২ জুলাই ২০২১; ৫ আগস্ট ২০২১; ১৬ আগস্ট ২০২১; ৯ সেপ্টেম্বর ২০২১; ৭ অক্টোবর ২০২১; ৪ নভেম্বর ২০২১; ২ ডিসেম্বর ২০২১; ৯ ডিসেম্বর ২০২১; ৬ জানুয়ারি ২০২২; ১০ ফেব্রুয়ারি ২০২২; ৩ মার্চ ২০২২; ১৫ মার্চ ২০২২; ১২ এপ্রিল ২০২২; ১০ মে ২০২২; ১ জুন ২০২২; ১২ জুলাই ২০২২; ২ আগস্ট ২০২২; ৬ সেপ্টেম্বর ২০২২; ৪ অক্টোবর ২০২২; ১ নভেম্বর ২০২২; ৬ ডিসেম্বর ২০২২; ১০ জানুয়ারি ২০২৩; ১ ফেব্রুয়ারি ২০২৩; ১৪ ফেব্রুয়ারি ২০২৩; ৭ মার্চ ২০২৩; ৪ এপ্রিল ২০২৩; ২ মে ২০২৩; ৬ জুন ২০২৩; ১১ জুলাই ২০২৩; ১ আগস্ট ২০২৩; ৮ আগস্ট ২০২৩; ৬ সেপ্টেম্বর ২০২৩; ৫ অক্টোবর ২০২৩; ১০ অক্টোবর ২০২৩; ৭ নভেম্বর ২০২৩; ৫ ডিসেম্বর ২০২৩; ৯ জানুয়ারি ২০২৪; ৬ ফেব্রুয়ারি ২০২৪; ৫ মার্চ ২০২৪; ৩ এপ্রিল ২০২৪; ত্রুটি: প্রথম প্যারামিটার একটি তারিখ বা সময় হিসেবে পার্স করা যাবে না। (8 July 2019; 3 September 2019; 26 February 2020; 16 July 2020; 11 August 2020; 12 November 2020; 3 December 2020; 19 January 2021; 4 February 2021; 16 February 2021; 10 March 2021; 11 March 2021; 1 April 2021; 6 May 2021; 3 June 2021; 12 July 2021; 5 August 2021; 16 August 2021; 9 September 2021; 7 October 2021; 4 November 2021; 2 December 2021; 9 December 2021; 6 January 2022; 10 February 2022; 3 March 2022; 15 March 2022; 12 April 2022; 10 May 2022; 1 June 2022; 12 July 2022; 2 August 2022; 6 September 2022; 4 October 2022; 1 November 2022; 6 December 2022; 10 January 2023; 1 February 2023; 14 February 2023; 7 March 2023; 4 April 2023; 2 May 2023; 6 June 2023; 11 July 2023; 1 August 2023; 8 August 2023; 6 September 2023; 5 October 2023; 10 October 2023; 7 November 2023; 5 December 2023; 9 January 2024; 6 February 2024; 5 March 2024; 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 - The Go Programming Language" (ইংরেজি ভাষা ভাষায়)। সংগ্রহের তারিখ ২২ জুলাই ২০১৯ 
  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. "সংরক্ষণাগারভুক্ত অনুলিপি"। ২৮ নভেম্বর ২০১৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৩ ডিসেম্বর ২০১৬