শ্রদ্ধেয় কিন্তু অলস C++ প্রতিস্থাপন করার প্রয়াসে, Google গবেষকরা কার্বন ডাব করা একটি একেবারে নতুন "পরীক্ষামূলক" ওপেন সোর্স প্রোগ্রামিং ভাষা চালু করেছেন।
কার্বন C++-এর উত্তরসূরি ভাষা হিসেবে কাজ করতে পারে, যেটি ডেভেলপারদের একটি নতুন ভাষার জন্য একটি সহজ সূচনা বিন্দু প্রদান করে যা মেমরি নিরাপত্তা এবং জেনেরিকের মতো সমসাময়িক বিকাশের ধারণাগুলিকে সম্বোধন করে।
এটি জাভাতে দুর্বলতাগুলিকে শক্তিশালী করার জন্য জাভাস্ক্রিপ্ট এবং কোটলিন আপডেট করার জন্য মাইক্রোসফ্ট কীভাবে টাইপস্ক্রিপ্ট তৈরি করেছিল তার অনুরূপ।
গুগল সারা বছর ধরে বেশ কয়েকটি প্রোগ্রামিং ভাষা তৈরি করেছে, যার মধ্যে কয়েকটি উল্লেখযোগ্য কুখ্যাতি এবং বিশিষ্টতা অর্জন করেছে।
উদাহরণস্বরূপ, গোলং (বা শুধু গো) সার্ভার এবং বিতরণ ব্যবস্থা তৈরির সুবিধার্থে তৈরি করা হয়েছিল এবং পরবর্তীতে সাধারণ জনগণের দ্বারা গ্রহণ করা হয়েছে।
ডার্ট প্রোগ্রাম ভাষা, যা একটি জাভাস্ক্রিপ্ট বিকল্প হিসাবে তৈরি করা হয়েছিল, Flutter চালু হওয়া পর্যন্ত সুপরিচিত হয়ে ওঠেনি।
চ্যান্ডলার ক্যারুথ, একজন গুগল কর্মচারী, কার্বন নামে একটি নতুন প্রোগ্রামিং ভাষার জন্য তার ধারণাটি 19 জুলাই, 2022-এ টরন্টোতে Cpp উত্তর সম্মেলনে উপস্থাপন করেছিলেন, Conor Hoekstra অনুযায়ী, যারা উপস্থিত ছিলেন এবং স্লাইডগুলি রেকর্ড করেছেন৷
দৃশ্যকল্প সেট করার জন্য, ক্যারুথ দেখিয়েছিলেন যে বর্তমান সময়ের বেশ কয়েকটি ভাল-পছন্দ করা প্রোগ্রামিং ভাষার বংশধর রয়েছে যা বিকাশকারীদের দ্রুত উত্পাদনশীল হতে এবং সমসাময়িক ভাষার নকশা থেকে উপকৃত হতে সক্ষম করে।
আসুন কার্বন প্রোগ্রামিং ভাষার একটি সাধারণ পরিচিতি দিয়ে শুরু করি, এর বৈশিষ্ট্যগুলি সহ, এটির গুগলের উদ্ভাবনের উদ্দেশ্য এবং আরও অনেক কিছু।
কার্বন প্রোগ্রামিং ভাষার ভূমিকা
19 জুলাই, 2022-এ, Google কার্বনকে তার তৈরি করা নতুন প্রোগ্রামিং ভাষা হিসাবে প্রকাশ করেছে। এটি পরীক্ষামূলকভাবে C++ প্রতিস্থাপনের উদ্দেশ্যে ছিল।
একটি ধন্যবাদ জেনেরিক সিস্টেম, যা প্রতিটি ইনস্ট্যান্টেশনের জন্য কোডটি দুবার চেক করার প্রয়োজনকে দূর করে, কার্বন আধুনিক প্রোগ্রামিং ধারণার ভিত্তির উপর নির্মিত হবে।
বছরের শেষ নাগাদ, নকশা একটি মৌলিক অপারেশনাল সংস্করণ (সংস্করণ 0.1) প্রদানের পরিকল্পনা করেছে।
মেমরি অখণ্ডতা একটি গুরুত্বপূর্ণ উপাদান যা C++ অনুপস্থিত। নিরাপত্তা ত্রুটির প্রাথমিক উত্সগুলির মধ্যে একটি হল মেমরি অ্যাক্সেস সমস্যা।
ডায়নামিক বাউন্ড চেকের বিকাশ, অপ্রচলিত রাজ্যগুলির বৃহত্তর ট্র্যাকিং এবং একটি পুঙ্খানুপুঙ্খ ডিফল্ট ডিবাগ বিল্ড মোড কার্বন দলের সমস্ত লক্ষ্য। নির্মাতারা সময়ের সাথে সাথে একটি নিরাপদ কার্বন উপসেট তৈরি করতে চান।
যাইহোক, নিম্নলিখিত নতুন প্রোগ্রামিং ভাষার কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য রয়েছে:
- প্রকারের নাম দিতে, এক্সপ্রেশন ব্যবহার করুন।
- সংজ্ঞা চেক সহ শক্তিশালী জেনেরিক
- প্রকারগুলি বিশেষভাবে ইন্টারফেসগুলি বহন করে
- ভূমিকা বাক্যাংশ এবং মৌলিক ব্যাকরণ
- পয়েন্টারগুলি সীমাহীন অ্যাক্সেস এবং মিউটেশনের অনুমতি দেয়।
- ফাংশন ইনপুট প্যারামিটারের মানগুলি শুধুমাত্র পঠনযোগ্য।
- রুট নেমস্পেস হল প্যাকেজ।
- API তাদের প্যাকেজের নাম ব্যবহার করে আমদানি করা যেতে পারে।
- একটি পদ্ধতি একটি সুস্পষ্ট বস্তু পরামিতি মাধ্যমে ঘোষণা করা হয়.
- ক্লাস ডিফল্টরূপে চূড়ান্ত; শুধুমাত্র একটি উত্তরাধিকার আছে
কার্বনের বৈশিষ্ট্য
আধুনিক এবং উন্নয়নশীল
- কার্বন সংস্করণগুলির মধ্যে আপগ্রেডগুলি সহজ এবং টুল-ভিত্তিক।
- শক্তিশালী ভাষার ভিত্তি, বিশেষ করে যদি আপনি C++ ব্যবহার করেন এবং শিখতে সহজ
- নিরাপদ ভিত্তি এবং মেমরি-নিরাপদ উপসেটের জন্য ধাপে ধাপে পদ্ধতি
ওপেন সোর্স সম্প্রদায়কে স্বাগত জানাই
- একটি সম্প্রদায় যা উষ্ণ, গ্রহণযোগ্য এবং আমন্ত্রণ জানানোর চেষ্টা করে
- এর লক্ষ্য এবং অগ্রাধিকার হল স্বতন্ত্র এবং শক্তিশালী শাসন
- একটি কম্পাইলার, লাইব্রেরি, ডকুমেন্টেশন, টুলস, প্যাকেজ ম্যানেজমেন্ট এবং আরও অনেক কিছু সহ একটি অল-ইন-ওয়ান কৌশল
দ্রুত এবং C++ এর সাথে সামঞ্জস্যপূর্ণ
- সঙ্গে কাজ সি ++ কোড উত্তরাধিকার এবং টেমপ্লেট সহ আপনার কাছে ইতিমধ্যেই আছে
- LLVM এর সাথে, C++ এর সাথে তুলনীয় পারফরম্যান্স এবং বিট এবং ঠিকানাগুলিতে নিম্ন-স্তরের অ্যাক্সেস
- আপনার বিদ্যমান C++ বিল্ড সিস্টেমের সাথে দ্রুত এবং মাপযোগ্য এবং সামঞ্জস্যপূর্ণ বিল্ড
গুগল কেন কার্বন প্রোগ্রামিং ভাষা তৈরি করেছে?
পারফরম্যান্স-সমালোচনামূলক সফ্টওয়্যারগুলি বেশিরভাগই C++ তে লেখা হয়, যার বিশাল এবং প্রসারিত কোডবেস এবং বিনিয়োগ রয়েছে।
যাইহোক, এটিকে অগ্রসর হতে এবং উপরে উল্লিখিত ডেভেলপারদের চাহিদা মেটাতে সমস্যা হচ্ছে, মূলত বছরের পর বছর ধরে প্রযুক্তিগত ঋণের পরিমাণ বৃদ্ধির কারণে।
এটি ক্রমান্বয়ে C++ উন্নত করা অত্যন্ত কঠিন কারণ এটি যে কারিগরি ঋণ জমা করেছে এবং সেইসাথে এর বিবর্তন প্রক্রিয়ার অসুবিধার কারণে।
এই সমস্যাগুলি সমাধানের আদর্শ পদ্ধতি হল একটি শক্তিশালী ভাষা ভিত্তি দিয়ে শুরু করা, যেমন একটি সমসাময়িক জেনেরিক্স সিস্টেম, মডুলার কোড স্ট্রাকচার, এবং ধারাবাহিক, সোজা বাক্য গঠন, সরাসরি C বা C++ এর ঐতিহ্যের উত্তরাধিকারী হওয়ার পরিবর্তে।
Go, Swift, Kotlin, Rust, এবং আরও অনেক সমসাময়িক ভাষা ইতিমধ্যেই একটি অসামান্য উন্নয়ন অভিজ্ঞতা প্রদান করে। বিকাশকারী যারা এই বর্তমান ভাষাগুলির একটি ব্যবহার করতে সক্ষম তাদের উচিত।
দুর্ভাগ্যবশত, সি++ থেকে গ্রহণ এবং স্থানান্তর এই ভাষাগুলির নকশা দ্বারা মারাত্মকভাবে বাধাগ্রস্ত হয়। এই বাধাগুলির মধ্যে রয়েছে পারফরম্যান্স ওভারহেড এবং সফ্টওয়্যারটির বাহাদুরি নকশার পরিবর্তন।
কার্বন ধীরে ধীরে C++ উন্নত করার চেষ্টা নয়; বরং, এটি একটি উত্তরসূরী ভাষা কৌশল। এটির ফোকাস হল C++ আন্তঃকার্যযোগ্যতা, সেইসাথে বর্তমানে C++ ব্যবহারকারী ডেভেলপার এবং কোডবেসগুলির জন্য ব্যাপক গ্রহণযোগ্যতা এবং স্থানান্তর।
একটি C++ প্রতিস্থাপনের ভাষা থাকতে হবে:
- C++ এর সাথে তুলনীয় পারফরম্যান্স ডেভেলপারদের জন্য একটি গুরুত্বপূর্ণ বৈশিষ্ট্য।
- C++ প্রোগ্রামারদের জন্য একটি পরিচালনাযোগ্য শেখার বক্ররেখা এবং পরিচিতির স্তর
- মাইগ্রেশন যা পরিমাপযোগ্য এবং এতে কিছু উৎস থেকে উৎস বাহাদুরী C++ কোড অনুবাদ অন্তর্ভুক্ত রয়েছে।
- বর্তমান সফ্টওয়্যারের আর্কিটেকচার এবং ডিজাইনের জন্য অনুরূপ অভিব্যক্তি এবং সমর্থন।
- C++ এর সাথে আন্তঃঅপারেবিলিটি যা নির্বিঘ্ন এবং দ্বিমুখী, যে কোনো লাইব্রেরীকে স্ট্যাকের বাকি অংশ পোর্ট না করেই কার্বন গ্রহণ করতে দেয়।
এই কৌশলের সাহায্যে, Google সেই ইকোসিস্টেমে যোগ করে যা ইতিমধ্যেই C++ এর জন্য বিদ্যমান এবং বর্তমান বিনিয়োগ, কোডবেস এবং উন্নয়ন সম্প্রদায়গুলিকে অন্তর্ভুক্ত করে।
কয়েকটি ভাষা বিভিন্ন বাস্তুতন্ত্রের জন্য এই পদ্ধতি গ্রহণ করেছে, এবং কার্বন এই পরিস্থিতিতে C++ এর অনুরূপ ফাংশন চালাতে চায়:
- জাভা - কোটলিন
- জাভাস্ক্রিপ্ট - টাইপস্ক্রিপ্ট
- C++ – কার্বন
C++ VS কার্বন কোড
আপনি যদি ইতিমধ্যেই একজন C++ ডেভেলপার হন তাহলে কার্বনের কম শেখার বক্ররেখা থাকা উচিত। এটি ব্যাকরণগত নির্মাণের একটি নির্দিষ্ট সেটের সমন্বয়ে গঠিত যা স্বাভাবিক শোনাতে হবে এবং পড়তে এবং বুঝতে সহজ হতে হবে।
C++ কোডের একটি উদাহরণ:
এই কার্বন কোড এর সাথে মিলে যায়:
কার্বন বনাম মরিচা
মেমরি-নিরাপদ পারফরম্যান্স অ্যাপ্লিকেশনগুলির প্রয়োজনীয়তা মেটাতে স্পষ্টভাবে ডিজাইন করা আরেকটি সমসাময়িক ভাষাকে বলা হয় মরিচা।
তাহলে কেন শুধু মরিচা ব্যবহার করবেন না?
যদিও কেউ কেউ যুক্তি দেন যে মরিচা, যা একটি মোজিলা প্রকল্প হিসাবে শুরু হয়েছিল এবং পরবর্তীকালে এটি একটি বিশাল জনসাধারণের অনুসরণে পরিণত হয়েছে, এটি C++ এর উত্তরসূরি, ক্যাররুথ সন্দেহ করে যে সমান্তরালটি এখনও বৈধ কিনা।
মরিচা নিঃসন্দেহে একটি চমত্কার ভাষা যা দিয়ে একটি নতুন প্রকল্প শুরু করা যায়, কিন্তু এতে জাভা এবং কোটলিনের মতো ভাষার "দ্বিমুখী আন্তঃকার্যযোগ্যতা" না থাকায় ধীরে ধীরে এটিতে রূপান্তর করা চ্যালেঞ্জিং।
Carruth CPP উত্তরে একটি বক্তৃতা দিয়েছিলেন এবং যারা ইতিমধ্যেই মরিচা ব্যবহার করছেন তারা এটি চালিয়ে যেতে উত্সাহিত করেছিলেন। যে ডেভেলপারদের ইতিমধ্যেই বড় আকারের C++ কোডবেস রয়েছে যেগুলিকে মরিচা-এ রূপান্তর করা কঠিন তাদের কার্বন ব্যবহার করা উচিত।
বিশেষ করে, কার্বন যাকে Carruth একটি "উত্তরাধিকারী ভাষা" হিসাবে উল্লেখ করেছে, যা একটি বিদ্যমান বাস্তুতন্ত্রের উপরে নির্মিত হয়, এই উদাহরণে C++।
সেই উদ্দেশ্যে, কার্বনকে বর্তমান C++ কোডের সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ বোঝানো হয়েছে, এমনকি যদি এটির অনেকগুলি উদ্দেশ্য থাকে, যেমন "কর্মক্ষমতা-সমালোচনামূলক অ্যাপ্লিকেশন" তৈরিতে প্রোগ্রামারদের সহায়তা করা।
উপরন্তু, এটি C++ থেকে কার্বনে যাওয়াকে যতটা সম্ভব সহজ করার উদ্দেশ্যে করা হয়েছে।
উপসংহার
অবশেষে, কার্বন ভাষার স্রষ্টারা সৃষ্টি প্রক্রিয়ার দিকে মনোযোগ দেওয়ার চেষ্টা করেছিলেন। প্রকল্পের কোড অনুরোধের জন্য উপলব্ধ এবং খোলামেলা সংরক্ষণ করা হয় গিটহাব, এবং এর সংস্কৃতিকে অন্তর্ভুক্ত করা হয়েছে এবং ব্যক্তিগত নাগরিক এবং আইটি সেক্টর উভয়ের জন্যই উন্মুক্ত।
কার্বন টিম ভেবেছিল যে কার্বনকে সম্প্রদায় দ্বারা চালিত একটি স্বায়ত্তশাসিত প্রকল্প হতে হবে এবং ভবিষ্যতে বিকাশের জন্য Google দ্বারা চালিত একটি প্রকল্প নয়৷
ক্যারুথ যোগ করেছেন যে বেশ কয়েকটি আইটি ব্যবসার আগ্রহ থাকা সত্ত্বেও, এই ধারণাটি এখনও পরীক্ষামূলক পর্যায়ে রয়েছে।
নির্দেশিকা সমন্ধে মতামত দিন