ভূমিকা
হ্যালো। স্বাগতম। আশা করি আপনারা সবাই ভালো আছেন। আশা করি Jurasic July মাসে পুরনো ও প্রভাবশালী কিছু ভাষা ঘেঁটে দেখতে আপনার মজা লেগেছে। এবার ২০২৩ সালের ৮ নম্বর মাস, আর আমাদের ৭ম থিম-মাস, Appy August।
অ্যাপ বলতে আমরা কী বোঝাই?
আসলে এটা একাধিক জিনিস বোঝাতে পারে:
- ওয়েব অ্যাপ্লিকেশন, যা এখন আমাদের অনেকের দিনের প্রধান কাজ
- নেটিভ অ্যাপ, যেমন আপনার ফোন বা ট্যাবলেটে চলে
- ডেস্কটপ অ্যাপ, যা সরাসরি আপনার Windows, Mac বা Linux অপারেটিং সিস্টেমে চলে
- নির্দিষ্ট ক্ষেত্রভিত্তিক অ্যাপ্লিকেশন
- ব্যবসায়িক অ্যাপ্লিকেশন
- আরও অনেক কিছু!
তাহলে ভাষাগুলো কী কী?
আমরা দেখছি ১৪টি ভাষা: ABAP, CoffeeScript, Dart, Delphi, Elm, Java, JavaScript, Kotlin, Objective-C, PHP, PureScript, ReasonML, Swift এবং TypeScript।
ব্যাজ
এই মাসে ওই ভাষাগুলোর যেকোনো একটি দিয়ে ৫টি অনুশীলনী সম্পন্ন করে ব্যাজটি নিন। আর বছরব্যাপী ব্যাজের জন্য আপনাকে সম্পন্ন করতে হবে:
- Anagram: একটি শব্দ ও সম্ভাব্য অ্যানাগ্রামের একটি তালিকা দেওয়া হলে তার অ্যানাগ্রামগুলো খুঁজে বের করুন
- Phone Number: একটি ফোন নম্বর পরিষ্কার করুন
- Triangle: একটি ত্রিভুজ শ্রেণিবদ্ধ করুন
- RNA Transcription: একটি DNA সিকোয়েন্সকে তার RNA কমপ্লিমেন্টে রূপান্তর করুন
- Scrabble Score: একটি শব্দ দেওয়া হলে তার স্ক্র্যাবল স্কোর নির্ণয় করুন
সংক্ষিপ্ত পরিচিতি
ABAP
- ১৯৮০-এর দশকে SAP SE এটি তৈরি করে। এর নামের আদ্যক্ষরগুলো কী বোঝায় সেদিকে তাকালেই এর ডিজাইনের লক্ষ্য স্পষ্ট হয়ে যায়: Allgemeiner Berichts-Aufbereitungs-Prozessor, জার্মান ভাষায় যার অর্থ "সাধারণ রিপোর্ট প্রস্তুতির প্রসেসর"। পরে ABAP আরও সাধারণভাবে ব্যবহারযোগ্য হয়ে ওঠে এবং সেটি বোঝাতে আদ্যক্ষরগুলোকে Advanced Business Application Programming-এ বদলানো হয়
- শক্তিশালী ও স্ট্যাটিক টাইপের ভাষা
- মাল্টি-প্যারাডাইম: ইম্পারেটিভ ও অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং সমর্থন করে
- বাইটকোডে কম্পাইল হয়। মজার ব্যাপার হলো, সোর্স কোড ডেটাবেসের ভেতরেই সংরক্ষিত থাকে
- সব কোড একটি SAP সিস্টেমের প্রেক্ষাপটে চলে, যা একটি রিলেশনাল ডেটাবেস ও এক বা একাধিক অ্যাপ্লিকেশন সার্ভার নিয়ে গঠিত
- প্রোপ্রাইটারি প্রযুক্তি ও ক্লোজড-সোর্স। যদিও আমাদের একজন মেইনটেইনার একটি দারুণ ওপেন-সোর্স পুনর্বাস্তবায়ন তৈরি করেছেন
- ফিন্যান্স, মেটেরিয়ালস ম্যানেজমেন্ট, অ্যাকাউন্টিং ও ম্যানেজমেন্টের মতো ব্যবসায়িক অ্যাপ্লিকেশনে ব্যবহৃত হয়। সারা বিশ্বে এর গ্রাহক ছড়িয়ে আছে, Apple, Amazon ও Walmart-এর মতো বহু বড় নাম আছে
কেন এটি দারুণ
- ক্রমাগত বিকশিত হচ্ছে, নিয়মিত নতুন ফিচার যুক্ত হচ্ছে
- নির্ভরযোগ্য: পেছনে কয়েক দশকের অভিজ্ঞতা নিয়ে স্থিতিশীল কার্যকারিতা
- বড় স্ট্যান্ডার্ড লাইব্রেরি
বিশেষ বৈশিষ্ট্য
- SAP সিস্টেম ও ডেটাবেসের সাথে নিরবচ্ছিন্ন ইন্টিগ্রেশন, পাশাপাশি আরও অনেক সিস্টেমের সাথেও
- ABAP Dictionary-তে SAP সিস্টেমের ডেটার সব মেটাডেটা থাকে, যার মধ্যে টেবিল, ভিউ ও স্ট্রাকচার আছে। এই Dictionary-র টাইপগুলো দিয়ে ভ্যারিয়েবলকে স্ট্যাটিকভাবে টাইপ করা যায়, এমনকি টাইপটি যখন একটি টেবিল হয় তখনও
- ABAP Workbench হলো ABAP সিস্টেমের অংশ, যেখানে প্রোগ্রাম সম্পাদনার জন্য একগুচ্ছ টুল আছে। এর মধ্যে স্ক্রিন ডিজাইন করাও আছে
CoffeeScript
- ২০০৯ সালে Jeremy Ashkenas এই ভাষার প্রথম কমিটগুলো করেন; প্রথম কমিট বার্তায় লেখা ছিল "রহস্যময় ভাষার প্রাথমিক কমিট"।
- ডাইনামিক টাইপড ও মাল্টি-প্যারাডাইম (অবজেক্ট-ওরিয়েন্টেড, ইম্পারেটিভ, ফাংশনাল, প্রোটোটাইপাল)
- JavaScript-এ কম্পাইল হয় (যাকে ট্রান্সপাইলিং বলা হয়)। CoffeeScript-এর সোনালি নিয়ম হলো: "এটা আসলে শুধুই JavaScript।" প্রথম সফল "JS-এ ট্রান্সপাইল" করা ভাষাগুলোর একটি
- জনপ্রিয় হয়ে ওঠে কারণ সেই সময়ে JS নিয়ে কাজ করা মানুষেরা যে সমস্যাগুলোতে ভুগতেন, সেগুলোর কিছু CoffeeScript-এ ছিল না (যেমন "this" বাইন্ডিং ভিন্নভাবে কাজ করা, বা ক্লাস সমর্থিত না থাকা)। Ruby on Rails-এ 3.1 সংস্করণ থেকে এটি অন্তর্ভুক্ত ছিল।
- ২০১৭ সালে ভাষাটি 2.0 সংস্করণ পায়, যার লক্ষ্য ছিল এটিকে সর্বশেষ JavaScript স্ট্যান্ডার্ডের সমকক্ষে আনা। ভাষাটি বছরে প্রায় একবার আপডেট পায়।
- ভাষার কম্পাইলারটি প্রথমে Ruby-তে লেখা হয়, কিন্তু ২০১০ সালে তা CoffeeScript-এ লেখা একটি সেলফ-হোস্টিং কম্পাইলার দিয়ে প্রতিস্থাপিত হয় (কম্পাইলারটি NodeJS-এর উপর নির্ভর করে না এবং সরাসরি ব্রাউজারে চলতে পারে)
- CoffeeScript প্রভাবশালী ছিল, কারণ এটি JavaScript-কে কিছু ফিচার গ্রহণে অনুপ্রাণিত করে (ল্যাম্বডা অ্যারো সিনট্যাক্স, ক্লাস)
- একসময় Dropbox ও Rails-এ ব্যবহৃত হতো
কেন এটি দারুণ
- Python, Ruby ও Haskell থেকে অনুপ্রাণিত পরিচ্ছন্ন, সংক্ষিপ্ত সিনট্যাক্স। JavaScript-এর চেয়ে কম ভার্বোস, অনেক প্রথম বন্ধনী ও দ্বিতীয় বন্ধনী বাদ দেয়, আংশিকভাবে গুরুত্বপূর্ণ ইনডেন্টেশন ব্যবহারের কারণে (হোয়াইটস্পেস গুরুত্বপূর্ণ)
- সরলীকৃত সেমান্টিক্স, যেমন let, var, const নিয়ে কোনো বিভ্রান্তি নেই কারণ এগুলো নেই, আর == ট্রান্সপাইল হয়ে === (strict equality) হয় এবং ফাংশন বাইন্ডিং সাধারণ "this" ভুলগুলো প্রতিরোধ করে
- এক্সপ্রেশন-ভিত্তিক, যার মানে আপনি একটি if এক্সপ্রেশনের ফলাফল একটি ভ্যারিয়েবলে অ্যাসাইন করতে পারেন
- অনেক সিনট্যাক্টিক শুগার, যেমন this-এর বদলে @ ব্যবহার করা যায়, true-র বদলে yes/on ব্যবহার করা যায়, ফ্লোর ডিভিশনের জন্য //, this-এর বদলে @ এবং আরও অনেক কিছু
বিশেষ বৈশিষ্ট্য
- পরিচ্ছন্ন, মানুষ-পাঠ্য JavaScript-এ কম্পাইল হয়, যেখানে সোর্স ও জেনারেট করা কোডের মধ্যে এক-এক সম্পর্ক থাকে।
- JavaScript-এর সাথে দারুণ ইন্টারঅপ: JS-এ লেখা কোড CoffeeScript থেকে সহজেই ব্যবহার করা যায় (এবং উল্টোটাও)। যেকোনো লেখা JS লাইব্রেরি ব্যবহার করুন
- JavaScript-এ যেসব ফিচার নেই বা ছিল না সেগুলো যোগ করে: লিস্ট কম্প্রিহেনশন, স্ট্রিং ইন্টারপোলেশন, এক্সিস্টেনশিয়াল অপারেটর (?), চেইনড তুলনা
- ছোট ভাষা, কম্পাইলার প্রায় 500 kb (জিপ করলে 100kb)
Dart
- Google-এ Lars Bak ও Kasper Lund ডিজাইন করেন
- প্রথম রিলিজ ২০১১ সালে
- লক্ষ্য ছিল দ্রুত ও উৎপাদনশীল একটি ভাষা তৈরি করা, যা বিশেষভাবে UI তৈরির জন্য উপযুক্ত
- স্ট্যাটিক টাইপড
- মাল্টি-প্যারাডাইম: প্রধানত অবজেক্ট-ওরিয়েন্টেড, তবে ফাংশনাল ও ইম্পারেটিভও
- ইন্টারপ্রেট করা যায় এবং জাস্ট-ইন-টাইম কম্পাইলও করা যায়
- প্রধানত অ্যাপ তৈরিতে ব্যবহৃত হয়, তবে ব্যাকএন্ড তৈরিতেও ব্যবহার করা যায়
কেন এটি দারুণ
- পরিচিত সিনট্যাক্স হওয়ায় শেখা সহজ
- আধুনিক টাইপ সিস্টেম: টাইপ ইনফারেন্স, প্যাটার্ন ম্যাচিং, async/await
- দুর্দান্ত ডকুমেন্টেশন
- সাউন্ড নাল-সেফটি সিস্টেমের মাধ্যমে নিরাপত্তা: আর null pointer exception নেই
- ভালো টুলিং, বিভিন্ন IDE-তে সমর্থন। দ্রুত ফিডব্যাক লুপের জন্য অপ্টিমাইজড, যেমন দ্রুত হট রিলোডের মাধ্যমে
- বহু লাইব্রেরিসহ বর্ধমান ইকোসিস্টেম
বিশেষ বৈশিষ্ট্য
- JS, নেটিভ, এমনকি Swift ও Kotlin-এও কম্পাইল করা যায়, মোবাইল অ্যাপের জন্য দারুণ।
- Flutter লাইব্রেরি দিয়ে দ্রুত মোবাইল, ওয়েব, ডেস্কটপ বা এমবেডেড অ্যাপ তৈরি করা যায়। একবার লিখুন, বিভিন্ন প্ল্যাটফর্মে চালান
- async/await, isolate (হালকা ওজনের কনকারেন্সি চালানোর কনস্ট্রাক্ট), future ইত্যাদিসহ দুর্দান্ত কনকারেন্সি সমর্থন
Delphi
- Delphi তৈরি করে Borland, মুক্তি পায় ১৯৯৫ সালে।
- এটি একটি Object Pascal প্রোগ্রামিং ভাষা, যা তৈরি করেন Anders Hejlsberg, C#-এর অন্যতম প্রধান আর্কিটেক্ট
- স্ট্রং ও স্ট্যাটিক টাইপড
- নেটিভ কোডে কম্পাইল হয়
- মাল্টি-প্যারাডাইম: বেশিরভাগই অবজেক্ট-ওরিয়েন্টেড, তবে ইম্পারেটিভ, ডিক্লারেটিভ ও ইভেন্ট-ড্রিভেনও
- ব্যবসায়িক অ্যাপ্লিকেশন, GUI এবং স্কুলে (প্রোগ্রামিং শেখাতে) ব্যবহৃত হয়
কেন এটি দারুণ
- শেখা সহজ। Object Pascal, Pascal-এর সরলতা ও স্পষ্টতার সাথে অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ফিচার মিলিয়ে দেয়, ফলে কোড লেখা ও রক্ষণাবেক্ষণ সহজ হয়
- ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE): Delphi IDE একটি ব্যবহারবান্ধব ও ফিচারসমৃদ্ধ পরিবেশ দেয় যা ডেভেলপমেন্ট প্রক্রিয়াকে সহজ করে। এতে কোড নেভিগেশন, ডিবাগিং টুল, কোড কমপ্লিশন ও অন্যান্য উৎপাদনশীলতা-বাড়ানো ফিচার আছে যা ডেভেলপমেন্টকে আরও দক্ষ করে তোলে।
- স্থিতিশীলতা: ১৯৯০-এর দশকের গোড়া থেকেই আছে, নির্ভরযোগ্য ও স্থিতিশীল ডেভেলপমেন্ট টুল ও ভাষা হিসেবে এর ইতিহাস আছে, যার মধ্যে শক্তিশালী ব্যাকওয়ার্ড কম্প্যাটিবিলিটিও রয়েছে। Delphi-র আগের সংস্করণে লেখা কোড সামান্য সমন্বয়েই নতুন সংস্করণে কম্পাইল ও রান করা যায়।
- ক্রস-প্ল্যাটফর্ম সমর্থন: Delphi Windows-এর বাইরেও তার সামর্থ্য বাড়িয়েছে এবং ক্রস-প্ল্যাটফর্ম ডেভেলপমেন্ট সমর্থন দেয়, যার ফলে ডেভেলপাররা macOS, iOS, Android ইত্যাদি একাধিক অপারেটিং সিস্টেমকে টার্গেট করতে পারেন। এতে আরও বিস্তৃত শ্রোতার জন্য অ্যাপ্লিকেশন তৈরি করা সম্ভব হয় এবং প্রজেক্টের পরিধি বাড়ে।
- শক্তিশালী কমিউনিটি ও সহায়তা: Delphi-র একটি নিবেদিত ও সক্রিয় ডেভেলপার কমিউনিটি আছে, যারা ইকোসিস্টেমে লাইব্রেরি, টুল ও রিসোর্স যোগ করেন।
বিশেষ বৈশিষ্ট্য
- উচ্চ-ক্ষমতাসম্পন্ন এক্সিকিউটেবল: Delphi অ্যাপ্লিকেশন তাদের গতি ও পারফরম্যান্সের জন্য পরিচিত। Delphi কম্পাইলার অত্যন্ত অপ্টিমাইজড নেটিভ এক্সিকিউটেবল তৈরি করে, যা নির্দিষ্ট কিছু অ্যাপ্লিকেশনের জন্য জরুরি হতে পারে, যেমন যেগুলোর রিয়েল-টাইম প্রসেসিং বা ভারী গণনার কাজ প্রয়োজন হয়।
- র্যাপিড অ্যাপ্লিকেশন ডেভেলপমেন্ট (RAD) এনভায়রনমেন্ট: ভিজ্যুয়াল ড্র্যাগ-অ্যান্ড-ড্রপ ডিজাইন টুল ডেভেলপারদের সামান্য পরিশ্রমেই ইউজার ইন্টারফেস তৈরি করে সেগুলোকে কার্যকারিতার সাথে যুক্ত করতে দেয়, ফলে ডেভেলপমেন্ট প্রক্রিয়া দ্রুত হয়।
- কম্পোনেন্ট-ভিত্তিক আর্কিটেকচার: এটি কম্পোনেন্ট-ভিত্তিক আর্কিটেকচারের উপর নির্ভর করে, যেখানে অ্যাপ্লিকেশন তৈরির জন্য পুনঃব্যবহারযোগ্য কম্পোনেন্ট তৈরি করা হয়। এতে কোড পুনঃব্যবহার সহজ হয় ও ডেভেলপমেন্টের সময় কমে।
- ইভেন্ট হ্যান্ডলিং: Delphi বিল্ট-ইন ইভেন্ট মডেল ব্যবহার করে, যার ফলে ডেভেলপাররা সহজেই ব্যবহারকারীর কাজ ও অন্যান্য ইভেন্টে সাড়া দিতে পারেন। ইভেন্ট হ্যান্ডলিং ব্যবহারকারীর ইনপুট বা সিস্টেম ইভেন্ট ধরে সঠিকভাবে সাড়া দেওয়ার প্রক্রিয়া সহজ করে।
- ডেটাবেস কানেক্টিভিটি: Delphi নেটিভ ডেটাবেস অ্যাক্সেস কম্পোনেন্ট দেয়, যা বিভিন্ন ডেটাবেস সিস্টেমের সাথে নিরবচ্ছিন্ন ইন্টিগ্রেশন সম্ভব করে। এই বিল্ট-ইন সমর্থন ডেটাবেস-নির্ভর অ্যাপ্লিকেশন ডেভেলপমেন্ট সহজ করে।
Elm
- Evan Czaplicki তাঁর সিনিয়র থিসিসের জন্য এই ভাষা তৈরি করেন এবং এটি ২০১২ সালে মুক্তি পায়
- শুরুতে GUI-র জন্য ফাংশনাল রিঅ্যাক্টিভ প্রোগ্রামিং (FRP)-এর বিষয় নিয়ে কাজ করেছিল (সিগন্যালসহ FRP), কিন্তু ২০১৭ সালে TEA (The Elm Architecture)-র পক্ষে FRP বাদ দেওয়া হয়
- স্ট্যাটিক ও স্ট্রংলি টাইপড, ফাংশনাল ভাষা
- Haskell থেকে অনুপ্রাণিত সিনট্যাক্স
- ওপেন-সোর্স ভাষা, তবে খুবই opinionated, আর এর ডেভেলপমেন্টের ধরন হলো Evan অনেক দিন ধরে গভীর কাজ করেন, তারপর সেটি সবার সামনে আনেন। তাই PR অনেক দিন পর্যন্ত merge না-ও হতে পারে, আর প্রজেক্টটি নিষ্ক্রিয় মনে হতে পারে, কিন্তু এটা আসলে Evan-এর কাজের ধরন।
- ওয়েবসাইটে ব্যবহৃত হয়, যেমন NoRedInk, Vendr, Rakuten, Brilliant
কেন এটি দারুণ
- এটি খুবই ছোট একটি ভাষা, স্ট্যাটিকভাবে টাইপড ফাংশনাল ভাষার ML পরিবারে সবচেয়ে সহজে শেখার যোগ্য একটি। এ কারণেই ফাংশনাল প্রোগ্রামিং শেখানোর জন্য এটি প্রায় আদর্শ।
- কম্পাইলার এররগুলোর মধ্যে সবচেয়ে সুন্দর ও সহায়ক এরর আপনি এখানেই পাবেন।
- স্থিতিশীল ভাষা: সর্বশেষ রিলিজ ২০১৯ সালের
- ইকোসিস্টেমের প্যাকেজ কম, কিন্তু উচ্চ মানের।
- elm-review সহ শক্তিশালী লিন্টিং ইকোসিস্টেম (এটিই Exercism Elm ট্র্যাকের অ্যানালাইজার চালায়)।
বিশেষ বৈশিষ্ট্য
- The Elm Architecture (TEA) সব Elm অ্যাপের ভিত্তি, তাই অপরিচিত Elm অ্যাপ্লিকেশন পর্যালোচনা করা খুবই সহজ।
- কোনো রানটাইম এক্সসেপশন নেই! মাত্র দু-একটি বিষয় ছাড়া।
- ডিপেন্ডেন্সি আপডেট করার সময় কিছু ভাঙে না, সেমান্টিক ভার্সনিং কম্পাইলার নিজেই প্রয়োগ করে।
- যখন কম্পাইল হয়, তখন কাজ করে (লজিক এরর ছাড়া)। আর একবার অভ্যস্ত হয়ে গেলে অন্য ভাষায় ফিরে যাওয়া খুব কঠিন।
- Matthew Griffith-এর "elm-ui" স্টাইল ও লেআউটের জন্য "কম্পাইল হলেই কাজ করে" নিশ্চিত করে, আপনার CSS লাগে না।
- ফুল-স্ট্যাক ওয়েব-অ্যাপ: Lamdera একটি স্পিন-অফ, যা Elm ব্যবহার করে ফুল-স্ট্যাক ওয়েব অ্যাপ বানায়, যেখানে ফ্রন্টএন্ড ও ব্যাকএন্ডের মধ্যে কোনো glue কোড ছাড়াই কাজ হয়।
Java
- Sun Microsystems-এ James Gosling এটি তৈরি করেন এবং ১৯৯৫ সালে মুক্তি পায়।
- প্রাথমিক পাঁচটি লক্ষ্য:
- সরল, অবজেক্ট-ওরিয়েন্টেড ও পরিচিত।
- মজবুত ও নিরাপদ।
- আর্কিটেকচার-নিরপেক্ষ ও পোর্টেবল।
- উচ্চ পারফরম্যান্স।
- ইন্টারপ্রেটেড, থ্রেডেড ও ডাইনামিক।
- স্ট্রং ও স্ট্যাটিক টাইপড
- বাইটকোডে কম্পাইল হয় (নেটিভ কোড নিয়ে কাজ চলছে)
- মাল্টি-প্যারাডাইম: ইম্পারেটিভ, অবজেক্ট-ওরিয়েন্টেড ও ফাংশনাল
- ভাষা ও ভার্চুয়াল মেশিনের অফিশিয়াল স্পেসিফিকেশন আছে, তাই এর একাধিক ইমপ্লিমেন্টেশনও আছে (যেমন OpenJDK JVM ও Oracle-এর Hotspot VM)
- বিপুল পরিমাণ সফটওয়্যারে ব্যবহৃত হয়, ওয়েবসাইট থেকে এমবেডেড সিস্টেম, আর অ্যাপ থেকে ডেটাবেস পর্যন্ত
কেন এটি দারুণ
- (প্রায়) সব জায়গায় চলে (Java আপডেটার যেমনটা খুশি মনে আপনাকে মনে করিয়ে দেবে ;))
- জেনারেল পারপাস: প্রায় যেকোনো কাজে ব্যবহার করা যায়, অ্যাপ, ওয়েবসাইট ও এমবেডেড সিস্টেমসহ
- Kotlin, Groovy, Scala ও Clojure-এর মতো অন্য JVM ভাষার সাথে ইন্টারঅপারেবিলিটি
- দুর্দান্ত টুলিং, IDE-র জন্য যেমন, তেমনি বিল্ড সিস্টেমের মতো অন্য টুলের জন্যও
বিশেষ বৈশিষ্ট্য
- JVM একটি পরিপক্ব, স্থিতিশীল ও উচ্চ-ক্ষমতাসম্পন্ন ভার্চুয়াল মেশিন, যা ক্রমাগত উন্নত হচ্ছে
- বিশাল ইকোসিস্টেম, বিপুল সংখ্যক লাইব্রেরি পাওয়া যায়। এসব লাইব্রেরি Java-র মতোই পরিপক্ব, স্থিতিশীল ও পূর্ণাঙ্গ ফিচারসমৃদ্ধ
- ক্রমবিকাশমান: ভাষা ও রানটাইম এখনও বিকশিত হচ্ছে, ভাষায় নিয়মিত আপডেট আসছে যাতে এটিকে আরও আধুনিক করা যায় এবং মানুষের অভিযোগগুলোর সমাধান হয় (যেমন বয়লারপ্লেট ও ভার্বোসিটি কমানো)। রানটাইমের জন্য নিয়মিত নতুন প্রজেক্ট শুরু হয় যাতে রানটাইমকে আরও এগিয়ে নেওয়া যায় (যেমন হালকা কনকারেন্সি কনস্ট্রাক্টের জন্য project loom এবং GraalVM-এর মাধ্যমে নেটিভ কম্পাইলেশন)
JavaScript
- ১৯৯৫ সালে Netscape Brendan Eich-কে নিয়োগ করে, ওয়েব পেজকে ডাইনামিক করতে একটি ভাষা দেওয়ার জন্য। প্রথম প্রোটোটাইপ বিখ্যাতভাবে ১০ দিনে তৈরি হয়
- ১৯৯৭ সালে ECMAScript হিসেবে স্ট্যান্ডার্ডাইজড হয়
- ডাইনামিক ও উইকলি টাইপড
- একসময় শুধুই ইন্টারপ্রেট করা হতো, কিন্তু আজ প্রায়ই জাস্ট-ইন-টাইম কম্পাইল করা হয়
- মাল্টি-প্যারাডাইম: প্রোটোটাইপাল (বেশ বিরল), তবে অবজেক্ট-ওরিয়েন্টেড, ইম্পারেটিভ ও ফাংশনালও
- আজকের সফল ওয়েব গড়ে তোলায় এর বিশাল ভূমিকা। যেমন AJAX ইন্টারঅ্যাক্টিভিটি যোগ করতে খুব সহায়ক ছিল। ওয়েব ডেভেলপমেন্টের ডি-ফ্যাক্টো স্ট্যান্ডার্ড, কারণ ব্রাউজারে সমর্থন বিল্ট-ইন থাকা এটিই একমাত্র প্রোগ্রামিং ভাষা
- সম্ভবত আজকাল সবচেয়ে বেশি ব্যবহৃত ভাষা
- ব্যাকএন্ড, ফ্রন্টএন্ড, স্ক্রিপ্ট ও কমান্ড লাইন টুলে ব্যবহৃত হয়
কেন এটি দারুণ
- জেনারেল পারপাস: বহু কাজে ব্যবহার করা যায়: ব্যাকএন্ড, ফ্রন্টএন্ড, স্ক্রিপ্ট, কমান্ড লাইন টুল। ওয়েবের জন্য ব্যবহৃত অনেক টুল JavaScript-এ লেখা (এবং nodejs-এ চলে)
- রানটাইমগুলো (যেমন V8) অত্যন্ত অপ্টিমাইজড এবং খুব দক্ষ হতে পারে, যদিও ভাষাটি অত্যন্ত ডাইনামিক
- তুলনামূলক ছোট ভাষা, যা শেখা তুলনামূলক সহজ করে। ব্রাউজারে চালাতে পারা এটিকে বিশেষভাবে দারুণ করে তোলে, কারণ শেখার সময় আপনি ভিজ্যুয়াল ফিডব্যাক পেতে পারেন
- নতুন ফিচার আনতে স্পেক ঘন ঘন আপডেট হয়, যেমন async/await, স্ট্রিং ইন্টারপোলেশন। টুলিং নিয়েও অনেক উদ্ভাবন হচ্ছে, deno, esbuild আর bun.js-এর মতো নতুন টুল তৈরি হচ্ছে যা JavaScript কোডবেস নিয়ে কাজ করতে সাহায্য করে
- JSON সাপোর্ট অত্যন্ত ভালো, তার প্রমাণ হলো JSON-এর পূর্ণরূপ JavaScript Object Notation
- ইভেন্ট-ড্রিভেন, নন-ব্লকিং কোডের জন্য উপযোগী করে ডিজাইন করা
বিশেষ বৈশিষ্ট্য
- বিশাল ইকোসিস্টেম। বিপুল সংখ্যক লাইব্রেরি পাওয়া যায় (২০২২ সালের সেপ্টেম্বরে ২১ লক্ষ প্যাকেজ), পাশাপাশি JavaScript-কে টার্গেট করা আরও অনেক ভাষাও আছে
- বেশিরভাগ প্ল্যাটফর্ম ও হার্ডওয়্যারে চলে, Windows থেকে Apple, Raspberry Pi থেকে ফোন, ওয়েব সার্ভার থেকে সার্ভারলেস প্ল্যাটফর্ম পর্যন্ত। ওয়েব ব্রাউজারে নেটিভ সাপোর্ট বিল্ট-ইন, তাই রানটাইম ইনস্টল করার দরকার নেই।
- ওয়েব ডেভেলপমেন্টের জন্য আদর্শ, বেছে নেওয়ার জন্য অনেক ফ্রেমওয়ার্ক (React, Vue, Angular) এবং ওয়েব অ্যাপ তৈরি করতে সাহায্য করার অনেক টুল (যেমন eslint, parcel)
- আইসোমরফিকভাবে ব্যবহার করা যায়, অর্থাৎ একই ভাষা (এবং কোডবেস) ব্যাকএন্ড ও ফ্রন্টএন্ড দুই জায়গাতেই ব্যবহার করা যায়। এতে রক্ষণাবেক্ষণ সহজ হয় এবং ফ্রন্টএন্ড ও ব্যাকএন্ডের মধ্যে কোড পুনঃব্যবহার সম্ভব হয়
- বিশাল জনপ্রিয়তার মানে: শেখার জন্য অনেক রিসোর্স (ভিডিও, ব্লগ, কোর্স), যোগাযোগের জন্য বিশাল কমিউনিটি
Kotlin
- ২০১০ সালে JetBrains এটি তৈরি করে, যারা তাদের IDE-র জন্য বিখ্যাত (যেমন IntelliJ, CLion, GoLand ও Rider)
- JetBrains-এর বেশিরভাগ পণ্য Java-তে লেখা ছিল, কিন্তু তারা এমন একটি JVM ভাষা চেয়েছিল যা বয়লারপ্লেট কোড কমাবে, ডেভেলপমেন্ট দ্রুত করবে এবং তাদের যে ফিচারগুলো দরকার ছিল সেগুলো সমর্থন করবে। Scala-তে এই ফিচারগুলো ছিল, কিন্তু কম্পাইল হতে খুব ধীর বলে মনে হয়েছিল। তাই Project Kotlin শুরু হয়।
- স্ট্রং ও স্ট্যাটিক টাইপড
- মাল্টি-প্যারাডাইম: ইম্পারেটিভ, অবজেক্ট-ওরিয়েন্টেড, ফাংশনাল, ডিক্লারেটিভ
- ডিফল্টভাবে JVM বাইটকোডে কম্পাইল হয়, তবে JS ও নেটিভেও কম্পাইল করা যায় (এমন প্ল্যাটফর্মের জন্য উপযোগী যেখানে ভার্চুয়াল মেশিন সম্ভব বা কাঙ্ক্ষিত নয়, যেমন iOS ডিভাইস)
- ২০১৯ সালে Google এটিকে Android অ্যাপ লেখার জন্য পছন্দের ভাষা হিসেবে চিহ্নিত করে
- ওয়েবসাইট, অ্যাপ (বেশিরভাগই Android) এমনকি সম্পূর্ণ IDE (উপরে উল্লেখিত IDEগুলো) তৈরিতে ব্যবহৃত হয়
কেন এটি দারুণ
- জেনারেল পারপাস: অ্যাপ ও ওয়েবসাইটসহ প্রায় যেকোনো কাজে ব্যবহার করা যায়। ২০১৯ সালে Google Kotlin-কে Android অ্যাপ ডেভেলপ করার পছন্দের ভাষা ঘোষণা করে
- JVM-এ চলার কারণে এর সব সুবিধা প্রযোজ্য: পরিপক্ব, অত্যন্ত দক্ষ VM এবং বিপুল সংখ্যক লাইব্রেরি
- Java-তে মানুষের যে সমস্যাগুলো হতে পারে, সেগুলোর অনেকগুলো লাঘব করে, যেমন চেকড এক্সসেপশন, null safety ও ভার্বোসিটি
- আধুনিক ভাষা: উন্নত টাইপ ইনফারেন্স, এক্সপ্রেশন-ভিত্তিক, ইমিউটেবিলিটি, প্যাটার্ন ম্যাচিং, কোরুটিন, চ্যানেল
- দুর্দান্ত টুলিং (IDE নিজেই যখন এই ভাষায় লেখা, তখন এটাই প্রত্যাশিত :) )
বিশেষ বৈশিষ্ট্য
- উৎপাদনশীল: Kotlin অন্য ভাষার সেরা অংশগুলো গ্রহণ করে সেগুলোকে একটি সুসংগত, উৎপাদনশীল ভাষায় গড়ে তোলে, আর কিছু ক্ষেত্রে মূলটির চেয়েও আরও উন্নতি করে (যেমন লোকাল এক্সটেনশন মেথড)
- কোরুটিন: অনেক ভাষায় async/await ভাষার ভেতরেই বেক করা থাকে, কিন্তু Kotlin-এ তা ভাষার কোরুটিন ফিচার ব্যবহার করে একটি লাইব্রেরি হিসেবে ইমপ্লিমেন্ট করা। কোরুটিন হলো suspending ফাংশন সামলানোর একটি উপায়, যা future ও promise-এর চেয়ে অ্যাসিনক্রোনাস অপারেশনের জন্য নিরাপদ ও কম ভুলপ্রবণ অ্যাবস্ট্রাকশন দেয়।
- দুর্দান্ত কনকারেন্সি: async/await, চ্যানেল, ইমিউটেবিলিটি সবই দুর্দান্ত কনকারেন্সি পেতে সাহায্য করে
- Compose multiplatform ডিক্লারেটিভ সিনট্যাক্স ব্যবহার করে একই কোডবেস থেকে শেয়ারড UI তৈরি করতে দেয়
Objective-C
- প্রথমে ১৯৮০-এর দশকের গোড়ায় Brad Cox ও Tom Love এটি তৈরি করেন; NeXT তাদের NeXTSTEP অপারেটিং সিস্টেমের জন্য এটিকে বেছে নেয়। Apple macOS সরাসরি NeXTSTEP থেকে এসেছে বলে এটি Apple সফটওয়্যারের পছন্দের ভাষা হয়ে ওঠে
- SmallTalk-এর অবজেক্ট-ওরিয়েন্টেড ধারণাকে C-এর সাথে মেলাতে ডিজাইন করা, যেখানে মূল অবজেক্ট-ওরিয়েন্টেড কনস্ট্রাক্ট হিসেবে মেসেজ পাসিং ব্যবহার করা হয়
- C-এর সুপারসেট, তাই যেকোনো C কোড বৈধ Objective-C কোড এবং দুটোই একই কোডবেসে মেলানো যায়
- স্ট্যাটিক ও ডাইনামিক টাইপিং
- কম্পাইলড
- ২০১৪ সালে Swift আসার আগে macOS ও iOS অ্যাপ্লিকেশন লেখার স্ট্যান্ডার্ড ভাষা
- macOS ও iOS অ্যাপে ব্যবহৃত হয়
কেন এটি দারুণ
- C-এর সাথে অবজেক্ট-ওরিয়েন্টেড ফিচারের মিশ্রণ সত্যিই শক্তিশালী হতে পারে
- হালকা রানটাইম, ফলে রিসোর্স-সাশ্রয়ী
- হালকা ওজনের ক্লাস সিনট্যাক্স
- ফাস্ট এনুমারেশন C-এর চেয়ে সহজে for লুপ করতে দেয়
- শক্তিশালী ব্যাকওয়ার্ড কম্প্যাটিবিলিটি
বিশেষ বৈশিষ্ট্য
- অটোমেটিক রেফারেন্স কাউন্টিং (ARC) সমর্থন করে, যা কোনো অবজেক্ট আর রেফারেন্স না হলে স্বয়ংক্রিয়ভাবে মেমরি ছেড়ে দেয়, ফলে মেমরি ম্যানেজমেন্ট সহজ হয়
- ডাইনামিক রানটাইম মেথড swizzling (একটি সেলেক্টরের আচরণ ডাইনামিকভাবে বদলানো, যেমন monkey patching), রিফ্লেকশন ও মেসেজ ফরওয়ার্ডিং (observer বা proxy প্যাটার্নের জন্য দারুণ) করতে দেয়
- প্রোটোকল ও ইন্টারফেস C-তে ইন্টারফেস ফিচার নিয়ে আসে, এমনকি ক্যাটেগরি ইন্টারফেস দিয়ে বিদ্যমান টাইপ বাড়ানোও যায়
PHP
- ১৯৯৩ সালে Rasmus Lerdorf এটি তৈরি ও ইমপ্লিমেন্ট করেন এবং ১৯৯৫ সালে প্রথম মুক্তি পায়
- নামটি একটি রিকার্সিভ আদ্যক্ষর, PHP: Hypertext Preprocessor
- ডাইনামিক ও উইকলি টাইপড, ধীরে ধীরে রানটাইমে স্ট্রং টাইপ অ্যাসারশন যোগ করার সুযোগসহ
- মাল্টি-প্যারাডাইম: ইম্পারেটিভ, ফাংশনাল, অবজেক্ট-ওরিয়েন্টেড, প্রোসিডিউরাল, রিফ্লেক্টিভ
- ইন্টারপ্রেটেড বা জাস্ট-ইন-টাইম কম্পাইলড
- মূল সার্ভার-সাইড রেন্ডারিং প্ল্যাটফর্ম
- ওয়েবসাইটে (Facebook, Wikipedia ও আরও অনেক) এবং অনেক কন্টেন্ট ম্যানেজমেন্ট সিস্টেমেও (Wordpress, JOOMLA) ব্যবহৃত হয়।
কেন এটি দারুণ
- এটি সর্বব্যাপী: নির্দিষ্ট কোনো প্ল্যাটফর্ম নির্বিশেষে সব ওয়েবসাইটের ৭৭.৪%-এ PHP ব্যবহৃত হয়^1
- সরল সিনট্যাক্স, অন্য প্রতিষ্ঠিত প্রোগ্রামিং ভাষার মতো, যেমন java, javascript, c, যা এটিকে শেখা সহজ করে
- জেনারেল পারপাস। বহু কাজে ব্যবহার করুন, ছোট ওয়েব স্ক্রিপ্ট বানানো থেকে শুরু করে প্রতিষ্ঠানের চালানো বড় সার্ভার-সাইড অ্যাপ্লিকেশন তৈরি পর্যন্ত।
- বহুল প্রচলিত ও ব্যাপকভাবে গৃহীত। শেখার অনেক রিসোর্স, ফ্রেমওয়ার্ক ও লাইব্রেরি আছে।
- শক্তিশালী ডেটাবেস সমর্থন
- এখনও সক্রিয় ডেভেলপমেন্টে, আধুনিক ফিচার প্রকাশ করছে
- ক্রস প্ল্যাটফর্ম। সবকিছুতে চলে, Windows, Mac, Linux, Unix
- ওপেন সোর্স ও ফ্রি
বিশেষ বৈশিষ্ট্য
- চালানো ও ডিপ্লয় করা সহজ। কোনো বিল্ড চেইন নেই। কোনো কম্পাইলার নেই।
- গ্র্যাজুয়াল টাইপ সিস্টেম। যেখানে দরকার সেখানে টাইপ যোগ করুন, ডেভেলপমেন্টের কিছু অংশ সহজ করতে ডাইনামিক টাইপিং ব্যবহার করুন।
- দ্রুত প্রোটোটাইপিং। আপনার আইডিয়া পরীক্ষা করতে একটি ওয়েবপেজ বানান আর নিজের মেশিনেই চালান।
PureScript
- Phil Freeman এটি ডিজাইন করেন এবং প্রথম সংস্করণ মুক্তি পায় ২০১৩ সালে
- Haskell-কে JavaScript-এ ট্রান্সপাইল করার অন্য চেষ্টাগুলোতে তিনি সন্তুষ্ট না হওয়ায় PureScript নিয়ে কাজ শুরু করেন
- স্ট্রং ও স্ট্যাটিক টাইপড
- JS-এ কম্পাইল হয়
- বিশুদ্ধ ফাংশনাল ভাষা
- Haskell থেকে অনুপ্রাণিত সিনট্যাক্স ও ফিচার
- ওয়েব অ্যাপ্লিকেশন তৈরিতে ব্যবহৃত হয়, তবে Electron-এর মাধ্যমে সার্ভার-সাইড অ্যাপ বা ডেস্কটপ অ্যাপ্লিকেশন তৈরিতেও ব্যবহার করা যায়
কেন এটি দারুণ
- Haskell-কে যা দারুণ করে তোলে তার অনেকটাই এতে আছে:
- শক্তিশালী ও ক্ষমতাধর টাইপ সিস্টেম: অ্যালজেব্রাইক ডেটা টাইপ, টাইপ ক্লাস, হায়ার-কাইন্ডেড টাইপ
- এক্সপ্রেসিভ: প্যাটার্ন ম্যাচিং, টাইপ ইনফারেন্স
- নিরাপত্তা: null নেই, ইমিউটেবল টাইপ
- বিশুদ্ধ ফাংশনাল: সাইড-এফেক্ট টাইপ সিস্টেমে এনকোড করা থাকে
- JSON থেকে টাইপে সহজ, টাইপ-সেফ ডিকোডিং/এনকোডিং
- মানুষ-পাঠ্য JavaScript-এ কম্পাইল হয়
- ভালো টুলিং
বিশেষ বৈশিষ্ট্য
- ফাংশনাল কোর রানটাইম এরর ছাড়া টাইপ-সেফ ওয়েব অ্যাপ্লিকেশনের জন্য আদর্শ
- দুর্দান্ত JS ইন্টারঅপ
- দক্ষ JS-এ কম্পাইল হয়
ReasonML
- Facebook-এ Jordan Walke এটি তৈরি করেন এবং প্রথম সংস্করণ মুক্তি পায় ২০১৬ সালে
- OCaml-এর উপর ভিত্তি করে, তবে অদ্ভুত বৈশিষ্ট্যগুলো বাদ দিয়ে JS ইন্টারঅপের জন্য ডিজাইন করা
- স্ট্যাটিক টাইপড ও ফাংশনাল ভাষা
- কম্পাইলড
- ওয়েবসাইট তৈরি করতে ব্যবহৃত হয় (যেমন Facebook-এ)
কেন এটি দারুণ
- OCaml-এর সব ভালো দিক, তবে ওয়েব পরিবেশে:
- ক্ষমতাধর টাইপ সিস্টেম: সব মান সহজ টাইপ দিয়ে টাইপ করা (যেমন রেকর্ড, ভ্যারিয়েন্ট ও অপশন), জটিল টাইপের চেয়ে এগুলো অগ্রাধিকার পায়। আর undefined এরর নেই, যা নির্ভরযোগ্যতা বাড়ায়
- এক্সপ্রেসিভ: প্যাটার্ন ম্যাচিং, টাইপ ইনফারেন্স, ডিস্ট্রাকচারিং
- নিরাপত্তা: null নেই, ডিফল্টভাবে ইমিউটেবিলিটি
- মানুষ-পাঠ্য JavaScript-এ কম্পাইল হয়
- OCaml-এ কম্পাইল করা যায় (এবং উল্টোটাও), অর্থাৎ এটি সম্পূর্ণ OCaml ইকোসিস্টেম ব্যবহার করতে পারে (যেমন নেটিভ বাইনারিতে কম্পাইল করতে)
বিশেষ বৈশিষ্ট্য
- ReasonML-এর কম্পাইলেশন সময় অত্যন্ত দ্রুত, যার মানে দ্রুত ইটারেশন চক্র।
- দুর্দান্ত JS ইন্টারঅপ, ReasonML কোড থেকে JS ব্যবহার করা যেমন, তেমনি ReasonML-কে JS-এ এক্সপোর্ট করাও। এটি TS টাইপও জেনারেট করতে পারে। C-এর সাথেও ইন্টারঅপ করা যায়। এমনকি JSX-এর মতো সিনট্যাক্সও সমর্থন করে
Swift
- ২০১০ সালে Chris Lattner Swift-এর ডেভেলপমেন্ট শুরু করেন এবং ২০১৪ সালে WWDC ইভেন্টে সারা বিশ্বে ঘোষণা করা হয়।
- লক্ষ্য ছিল Apple-এর পুরনো প্রোগ্রামিং ভাষা Objective-C-কে, যা ৮০-এর দশকের গোড়ার পর থেকে কোনো বড় পরিবর্তন পায়নি, একটি নতুন আধুনিক ভাষা দিয়ে প্রতিস্থাপন করা। Objective-C-র বড় অংশের সাথে ইন্টারঅপ করার জন্য ডিজাইন করা।
- স্ট্রং ও স্ট্যাটিক টাইপড
- কম্পাইলড, মেশিন কোডে কম্পাইলেশন সামলাতে LLVM ব্যবহার করে (যেমন Rust)
- মাল্টি-প্যারাডাইম: ফাংশনাল, অবজেক্ট-ওরিয়েন্টেড, ইম্পারেটিভ, ডিক্লারেটিভ
- প্রথমে প্রোপ্রাইটারি সফটওয়্যার ছিল, কিন্তু ২০১৫ সালে ওপেন-সোর্স করা হয়
- প্রধানত মোবাইল ও ডেস্কটপ অ্যাপে ব্যবহৃত হয়, তবে ব্যাকএন্ড ও সার্ভারলেস পরিস্থিতিতেও ব্যবহৃত হয়
কেন এটি দারুণ
- আধুনিক ভাষা: টাইপ ইনফারেন্স, প্যাটার্ন ম্যাচিং, অ্যালজেব্রাইক ডেটা টাইপ, ইউনিকোড স্ট্রিং
- উৎপাদনশীল: Swift অন্য ভাষার সেরা অংশগুলো (যেমন Rust, Python, C# ও Ruby) গ্রহণ করে সেগুলোকে একটি সুসংগত, উৎপাদনশীল ভাষায় গড়ে তোলে
- নিরাপদ: পয়েন্টার প্রকাশ করা হয় না, একটি optional টাইপ যা null-pointer exception রোধ করে, স্পষ্ট এরর হ্যান্ডলিং এবং ARC (Automatic Reference Counting)-র মাধ্যমে স্বয়ংক্রিয় মেমরি ম্যানেজমেন্ট
- নিয়মিত আপডেট হয়। শুরুতে, যেসব জিনিস ভালো কাজ করে না প্রমাণিত হয়েছে সেগুলোর জন্য Apple ব্রেকিং চেঞ্জ আনতে ভয় পায়নি। এতে "বোঝা" জমতে বাধা পড়ে। কোড মাইগ্রেট করতে সাহায্য করার জন্য সাধারণত একটি টুল দেওয়া হয়। Swift 5 থেকে Application Binary Interface (ABI) স্থিতিশীল
- Objective-C-র বিপরীতে, Swift সব প্রধান প্ল্যাটফর্মে চলে: macOS, Windows ও Linux
বিশেষ বৈশিষ্ট্য
- দ্রুত। দক্ষ মেশিন কোডে কম্পাইল হয়, ফলে দ্রুত চলে
- Objective-C-র সাথে নিরবচ্ছিন্ন ইন্টারঅপ, পাশাপাশি C ও C++-এর সাথেও ভালো ইন্টারঅপ করে
- বড় কমিউনিটি, অনেক দুর্দান্ত রিসোর্স পাওয়া যায়
TypeScript
- JS-এ বড় মাপের অ্যাপ্লিকেশন ডেভেলপ করতে হতাশার জবাবে Microsoft-এ এটি তৈরি করা হয়। ডিজাইনারদের একজন ছিলেন Anders Hejlsberg, C#-এর প্রধান আর্কিটেক্ট এবং Delphi ও Turbo Pascal-এর স্রষ্টা
- প্রথম সংস্করণ মুক্তি পায় ২০১২ সালে
- মাল্টি-প্যারাডাইম: ফাংশনাল, প্রোটোটাইপাল, ইম্পারেটিভ, অবজেক্ট-ওরিয়েন্টেড ও জেনেরিক
- গ্র্যাজুয়াল ও ডাক টাইপিং ব্যবহার করে
- কম্পাইলড (JS-এ)
- ওয়েবসাইটে ব্যবহৃত হয়, ফ্রন্টএন্ড ও ব্যাকএন্ড দুই জায়গাতেই, পাশাপাশি স্ক্রিপ্ট ও কমান্ড লাইন টুলে
কেন এটি দারুণ
- ক্ষমতাধর ও নমনীয় টাইপ সিস্টেম: ইউনিয়ন টাইপ, লিটারাল টাইপ, টিউপল। মূলত JS কোডে ব্যবহার করা যেকোনো প্যাটার্ন TS-এ টাইপ-সেফ উপায়ে বর্ণনা করা যায়। টাইপ সিস্টেম এতই শক্তিশালী যে এটি টুরিং কমপ্লিটও
- JS-এর সুপারসেট হওয়ায় JS কোডবেসে ধীরে ধীরে চালু করা যায়
- দুই জগতের সেরাটাই মেলায়: ডাইনামিক ও স্ট্যাটিক টাইপিং
- জনপ্রিয়তায় দ্রুত বাড়ছে, অনেক টুল হয় typescript টাইপ দিচ্ছে, নয়তো typescript-এ রূপান্তরিত হচ্ছে। অনেক রিসোর্সও পাওয়া যায়
- ভাষা নিয়মিত আপডেট হয়, আসন্ন ECMAScript ফিচার আগেভাগে গ্রহণ করে
বিশেষ বৈশিষ্ট্য
- উন্নত নিরাপত্তা ও নির্ভুলতা: স্ট্যাটিক টাইপিং JS-এ সাধারণত যেসব শ্রেণির ভুল হয়, তার অনেকগুলো দূর করতে পারে
- JS-এর সাথে নিরবচ্ছিন্ন ইন্টারঅপ। টাইপ-সেফ উপায়ে JS কোড নিয়ে কাজ করতে কাস্টম টাইপ ডেফিনিশন যোগ করা যায়। বিপুল সংখ্যক লাইব্রেরির জন্যই কাস্টম টাইপ ডেফিনিশন পাওয়া যায়
- দুর্দান্ত টুলিং/IDE সাপোর্ট। টাইপ অ্যানোটেশন, কোড কমপ্লিশন এমনকি নিরাপদ, বড় মাপের রিফ্যাক্টরিংও অনেক IDE-তে পাওয়া যায়
- JS ইকোসিস্টেমে চলার সব সুবিধা পান: বিপুল সংখ্যক প্যাকেজ, অনেক টুলিং, বড় কমিউনিটি ইত্যাদি।
কোনটি চেষ্টা করবেন?
- আপনি যদি নেটিভ অ্যাপ বানাতে চান, Dart, Delphi, Java, Kotlin ও Swift দারুণ পছন্দ। তা বলতে গেলে, JS-এ কম্পাইল হওয়া অন্য যেকোনো ভাষাও নেটিভ অ্যাপ বানাতে ব্যবহার করা যায়। লক্ষণীয়, iOS/macOS অ্যাপ বানানোর অফিশিয়াল ভাষা Swift, আর Android অ্যাপের জন্য Kotlin
- আপনি যদি ওয়েব অ্যাপ বানাতে চান, CoffeeScript, Dart, Elm, Java, JavaScript, Kotlin, PHP, PureScript, ReasonML ও TypeScript দারুণ
- আপনি যদি ফাংশনাল প্রোগ্রামিংয়ে আগ্রহী হন, Elm, PureScript ও ReasonML স্বাভাবিক পছন্দ, আর CoffeeScript, Dart, Java, JavaScript, Kotlin, Swift ও TypeScript-ও ফাংশনাল প্রোগ্রামিং সমর্থন করে
- অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের জন্য ABAP, Dart, Delphi, Java, Kotlin, Objective-C, PHP ও Swift যুক্তিসঙ্গত প্রার্থী, আর CoffeeScript, JavaScript ও TypeScript-ও এই প্যারাডাইম সমর্থন করে
- আপনি যদি ব্যবসায়িক অ্যাপ্লিকেশন লিখতে আগ্রহী হন, ABAP ও Delphi তার জন্য একদম উপযুক্ত
Translation missing: bn.number.nth.ordinalized Aug 2023
·
কাজে লেগেছে?
প্রকাশক
Erik Schierboom