গো (প্রোগ্রামিং ভাষা)
প্যারাডাইম | compiled, concurrent, imperative, বস্তু-ভিত্তিক |
---|---|
নকশাকার | রবার্ট গ্রিসেমার রব পাইক কেন টম্পসন |
বিকাশকারী | Google Inc. |
প্রথম প্রদর্শিত | ১০ নভেম্বর ২০০৯ |
স্থিতিশীল সংস্করণ | 1.12.7[২]
/ ৮ জুলাই ২০১৯; ৩ সেপ্টেম্বর ২০১৯; ২৬ ফেব্রুয়ারি ২০২০; ১৬ জুলাই ২০২০; ১১ আগস্ট ২০২০; ১২ নভেম্বর ২০২০; ৩ ডিসেম্বর ২০২০; ১৯ জানুয়ারি ২০২১; ৪ ফেব্রুয়ারি ২০২১; ১৬ ফেব্রুয়ারি ২০২১; ১০ মার্চ ২০২১; ১১ মার্চ ২০২১; ১ এপ্রিল ২০২১; ৬ মে ২০২১; ৩ জুন ২০২১; ১২ জুলাই ২০২১; ৫ আগস্ট ২০২১; ১৬ আগস্ট ২০২১; ৯ সেপ্টেম্বর ২০২১; ৭ অক্টোবর ২০২১; ৪ নভেম্বর ২০২১; ২ ডিসেম্বর ২০২১; ৯ ডিসেম্বর ২০২১; ৬ জানুয়ারি ২০২২; ১০ ফেব্রুয়ারি ২০২২; ৩ মার্চ ২০২২; ১৫ মার্চ ২০২২; ১২ এপ্রিল ২০২২; ১০ মে ২০২২; ১ জুন ২০২২; ১২ জুলাই ২০২২; ২ আগস্ট ২০২২; ৬ সেপ্টেম্বর ২০২২; ৪ অক্টোবর ২০২২; ১ নভেম্বর ২০২২; ৬ ডিসেম্বর ২০২২; ১০ জানুয়ারি ২০২৩; ১ ফেব্রুয়ারি ২০২৩; ১৪ ফেব্রুয়ারি ২০২৩; ৭ মার্চ ২০২৩; ৪ এপ্রিল ২০২৩; ২ মে ২০২৩; ৬ জুন ২০২৩; ১১ জুলাই ২০২৩; ১ আগস্ট ২০২৩; ৮ আগস্ট ২০২৩; ৬ সেপ্টেম্বর ২০২৩; ৫ অক্টোবর ২০২৩; ১০ অক্টোবর ২০২৩; ৭ নভেম্বর ২০২৩; ৫ ডিসেম্বর ২০২৩; ৯ জানুয়ারি ২০২৪; ৬ ফেব্রুয়ারি ২০২৪; ৫ মার্চ ২০২৪; ৩ এপ্রিল ২০২৪ |
টাইপিং পদ্ধতি | 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 |
মুখ্য বাস্তবায়নসমূহ | |
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 ডাটাবেস, এবং হুগো , একটি স্ট্যাটিক সাইট জেনারেটর যা গতি এবং নমনীয়তাকে অগ্রাধিকার দেয়, যা বিকাশকারীদের দক্ষতার সাথে ওয়েবসাইট তৈরি করতে দেয়।
তথ্যসূত্র
[সম্পাদনা]- ↑ "FAQ — The Go Programming Language"। Golang.org। সংগ্রহের তারিখ ২০১৩-০৬-২৫।
- ↑ "Release History - The Go Programming Language" (ইংরেজি ভাষা ভাষায়)। সংগ্রহের তারিখ ২২ জুলাই ২০১৯।
- ↑ "Why doesn't Go have "implements" declarations?"। golang.org। সংগ্রহের তারিখ ১ অক্টোবর ২০১৫।
- ↑ Pike, Rob (২০১৪-১২-২২)। "Rob Pike on Twitter"। সংগ্রহের তারিখ ২০১৬-০৩-১৩।
Go has structural typing, not duck typing. Full interface satisfaction is checked and required.
- ↑ "lang/go: go-1.4 – Go programming language"। OpenBSD ports। ২০১৪-১২-২৩। সংগ্রহের তারিখ ২০১৫-০১-১৯।
- ↑ "Go Porting Efforts"। Go Language Resources। cat-v। ১২ জানুয়ারি ২০১০। সংগ্রহের তারিখ ১৮ জানুয়ারি ২০১০।
- ↑ "Text file LICENSE"। The Go Programming Language। Google। সংগ্রহের তারিখ ৫ অক্টোবর ২০১২।
- ↑ "Additional IP Rights Grant"। The Go Programming Language। Google। সংগ্রহের তারিখ ৫ অক্টোবর ২০১২।
- ↑ ক খ Pike, Rob (২০১৪-০৪-২৪)। "Hello Gophers"। সংগ্রহের তারিখ ২০১৬-০৩-১১।
- ↑ উদ্ধৃতি ত্রুটি:
<ref>
ট্যাগ বৈধ নয়;langfaq
নামের সূত্রটির জন্য কোন লেখা প্রদান করা হয়নি - ↑ ক খ "The Evolution of Go"। সংগ্রহের তারিখ ২০১৫-০৯-২৬।
- ↑ "Hello Gophers"।
- ↑ "সংরক্ষণাগারভুক্ত অনুলিপি"। ২৮ নভেম্বর ২০১৬ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৩ ডিসেম্বর ২০১৬।