Uploaded avatar of iHiD

এলো জুরাসিক জুলাই!

@iHiD
প্রায় 3 বছর আগে
ভিডিও

ভূমিকা

হ্যালো। স্বাগতম। আশা করি আপনারা সবাই ভালো আছেন। প্রিমিয়াম চালু হওয়া আর আমাদের ১০ বছরের বার্ষিকী নিয়ে Exercism-এ জুন মাসটা বড় একটা মাস ছিল। আর সামার অফ সেক্সপস চলাকালীন Lisp নিয়ে খেলতে আপনার মজা লেগেছে বলে আশা করি। এবার আসি ২০২৩ সালের ৭ নম্বর মাসে, এবং আমাদের ষষ্ঠ থিমভিত্তিক মাস, জুরাসিক জুলাই।

জুরাসিক বলতে আমরা কী বোঝাচ্ছি? আসলে এর মানে এই নয় যে এই ভাষাগুলো বিলুপ্ত, যদিও আজকাল আপনি COBOL-এ নতুন সফটওয়্যার লিখবেন এমন সম্ভাবনা কম। বরং এগুলো সবচেয়ে পুরনো ভাষাগুলোর কয়েকটি, কোনোটার বয়স ৬০ বছরেরও বেশি। এগুলোতে অবিশ্বাস্য পরিমাণ সফটওয়্যার (বিশেষত এন্টারপ্রাইজ সফটওয়্যার) লেখা হয়েছে। এগুলো সবই অবিশ্বাস্য রকমের সফল ভাষা।

তাহলে ভাষাগুলো কী কী? আমরা দেখব C, C++, COBOL, Fortran আর Visual Basic। এই ভিডিওতে আমরা C আর C++ নিয়ে আলোচনা করব না, কারণ মেকানিক্যাল মার্চে সেগুলো আমরা আগেই কভার করেছি, তাই ওই ভাষাগুলো নিয়ে আগ্রহ থাকলে সেই ভিডিওটা দেখে নিন। তবে একটু পরে আমরা COBOL, Fortran আর Visual Basic দেখব!

ব্যাজ

এই মাসে ওই ভাষাগুলোর একটিতে ৫টি অনুশীলনী সম্পন্ন করে ব্যাজটি পান। আর বছরব্যাপী ব্যাজের জন্য আপনাকে সম্পন্ন করতে হবে:

  • বব: স্ট্রিং আর শর্তাধীন লজিক নিয়ে কাজ করা
  • অ্যালার্জি: স্ট্রিং, সংখ্যা আর বিটওয়াইজ অপারেশন নিয়ে কাজ করা
  • রিভার্স স্ট্রিং: একটি স্ট্রিংয়ের ক্যারেক্টারগুলোর উপর ইটারেশন করা
  • হাই স্কোরস: সংখ্যার অ্যারের উপর ইটারেশন করা
  • আর্মস্ট্রং নাম্বারস: সংখ্যা আর লুপ/ইটারেশন নিয়ে কাজ করা

ওভারভিউ

Fortran

  • ১৯৫০-এর দশকে IBM-এ John Backus এটি শুরু করেন, যাতে IBM 704 মেইনফ্রেম কম্পিউটারে প্রোগ্রামিংয়ের জন্য অ্যাসেম্বলি ভাষার আরও ব্যবহারিক বিকল্প তৈরি করা যায়

  • বৈজ্ঞানিক ও ইঞ্জিনিয়ারিং অ্যাপ্লিকেশন তৈরিতে দক্ষ হওয়ার জন্য ডিজাইন করা (নামটি Formula Translating System-এর সংক্ষিপ্ত রূপ)

  • প্রথম হাই-লেভেল প্রোগ্রামিং ভাষা (কোডের লাইন প্রায় ২০ গুণ কমিয়ে দেয়)

  • এছাড়া প্রথম অপটিমাইজিং কম্পাইলার (এর কম্পাইলার হাতে লেখা অ্যাসেম্বলি ভাষার কাছাকাছি পারফরম্যান্সের কোড তৈরি করতে না পারলে গ্রাহকরা হাই-লেভেল প্রোগ্রামিং ভাষা ব্যবহার করতে অনিচ্ছুক ছিলেন)

  • স্ট্যাটিকালি এবং স্ট্রংলি টাইপড ভাষা

  • শুরুতে শুধু ইম্পারেটিভ প্রোগ্রামিং সমর্থন করত, কিন্তু এর কিছুদিন পরেই প্রসিডিউরাল প্রোগ্রামিং যুক্ত হয়। পরবর্তী এক্সটেনশনগুলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং আর অ্যারে প্রোগ্রামিংয়ের মতো অন্য প্যারাডাইমের সমর্থন যোগ করে

  • স্ট্যান্ডার্ডাইজ করা হয়েছে, প্রথমে ১৯৬৬ সালে Fortran 66-এর মাধ্যমে, আর সর্বশেষ হালনাগাদ ২০১৮ সালে!

  • অত্যন্ত প্রভাবশালী, Basic থেকে ALGOL পর্যন্ত, অনেক ভাষার অনুপ্রেরণা। প্রোগ্রামিং ভাষা নিয়ে শুরুর দিকের অনেক গবেষণার লক্ষ্যই ছিল Fortran-কে উন্নত করতে সাহায্য করা

  • এখনও সক্রিয়ভাবে ডেভেলপ করা হচ্ছে, নতুন ফিচার যোগ হচ্ছে, একইসঙ্গে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জোরালো নিশ্চয়তা বজায় আছে (পুরনো কোড সাধারণত এখনও কম্পাইল ও রান হয়)

  • coarray ব্যবহার করে বিল্ট-ইন প্যারালেলিজম, প্যারালেলিজম প্রকাশের একটি নিরাপদ ও দক্ষ পদ্ধতি। ফাংশনকে pure হিসেবে চিহ্নিত করা যায়, যা কম্পাইলারকে প্যারালাল কম্পিউটিংয়ের জন্য অপটিমাইজ করতে সাহায্য করে

  • allocatable ভ্যারিয়েবল ব্যবহার করে নিরাপদ মেমরি হ্যান্ডলিং, যেখানে মেমরি মুক্ত করার দায়িত্ব কম্পাইলের।

  • C-এর সঙ্গে বিল্ট-ইন ইন্টারঅপারেবিলিটি

COBOL

  • ১৯৫৯ সালে CODASYL কনসোর্টিয়াম (Department of Defense-এর পৃষ্ঠপোষকতায়!) বিজনেস অ্যাপ্লিকেশন তৈরির খরচ কমানোর উদ্যোগে এটি ডিজাইন করে (নামের পূর্ণ রূপ Common Business-Oriented Language)

  • ১৯৬৮ সালে একটি স্ট্যান্ডার্ড হয়ে ওঠে, সর্বশেষ সংশোধনী ২০১৪ সালের

  • বিভিন্ন ইমপ্লিমেন্টেশন, যেমন IBM COBOL, GnuCOBOL (যা C-তে কম্পাইল হয়) আর Micro Focus™ Visual COBOL, যা JVM আর .NET রানটাইম দুটোতেই চলে

  • স্ট্যাটিকালি টাইপড ভাষা

  • মাল্টি-প্যারাডাইম, ইম্পারেটিভ আর অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং সমর্থন করে

  • ভার্বোস (অনেক কিওয়ার্ড) কিন্তু খুবই মানুষের পড়ার উপযোগী সিনট্যাক্স। পাঠযোগ্যতা আর মেইনটেন্যান্সে সুবিধা দেয়

  • ভালো ব্যাকওয়ার্ড কম্প্যাটিবিলিটি, স্থিতিশীল স্পেসিফিকেশনসহ। বাস্তবে বহুবার পরীক্ষিত

  • ভালো পারফরম্যান্স (ফাইন্যান্সে ব্যবহৃত)

Visual Basic

  • Microsoft .NET রানটাইমে চলার জন্য Visual Basic-এর উত্তরসূরি হিসেবে এটি তৈরি করে (.NET প্রত্যয়টি Visual Basic 2003-এর পরে বাদ দেওয়া হয়)

  • প্রথম সংস্করণ প্রকাশিত হয় ২০০২ সালে, আর ২০২৩ সালে ভাষাটিকে "স্টেবল" হিসেবে চিহ্নিত করা হয়। এর মানে হলো ভাষাটিতে আর নতুন সিনট্যাক্স যোগ করা হবে না, তবে এটি এখনও সমর্থিত একটি ভাষা

  • বেশিরভাগ সিনট্যাক্স Visual Basic-এর সঙ্গে একই, তবে কিছু পরিবর্তন করা হয়েছে

  • স্ট্যাটিকালি টাইপড ভাষা, যা স্ট্রং আর উইক টাইপিং দুটোই সমর্থন করে

  • মাল্টি-প্যারাডাইম ভাষা: প্রধানত অবজেক্ট-ওরিয়েন্টেড, তবে ইম্পারেটিভ আর ইভেন্ট-ড্রিভেন প্রোগ্রামিংও

  • শেখা সহজ (Visual Basic শেখা সহজ হওয়ার জন্যই ডিজাইন করা হয়েছিল)

  • অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের জন্য চমৎকার সমর্থন

  • বহু পরীক্ষিত .NET রানটাইমে চলে, সব .NET লাইব্রেরিতে অ্যাক্সেসসহ

  • ClickOnce ডিপ্লয়মেন্ট দিয়ে সহজ ডিপ্লয়মেন্ট

ব্যবহারের ক্ষেত্র

Fortran

উচ্চ-পারফরম্যান্স কম্পিউটিং পরিস্থিতিতে (সুপারকম্পিউটার) ব্যবহৃত হয়, যেমন আবহাওয়ার পূর্বাভাস, জ্যোতির্বিজ্ঞান আর স্ট্রাকচারাল ইঞ্জিনিয়ারিং। এটি CAD সফটওয়্যারেও ব্যবহৃত হয়, আর FORTRAN-এর উপর গড়ে ওঠা অনেক অ্যাপ্লিকেশনেও, যেমন NumPy-এর বিভিন্ন মডিউল FORTRAN 77 লাইব্রেরি ব্যবহার করে

COBOL

ফাইন্যান্সে প্রচুর ব্যবহৃত হয়, অনেক আর্থিক সিস্টেম এখনও বড় অংশে COBOL সফটওয়্যারে চলছে (অনুমান অনুযায়ী প্রায় ৮০% আর্থিক লেনদেন COBOL-চালিত), যদিও আজকাল এটি বেশিরভাগই মেইনটেন্যান্স। অনেক বিজনেস অ্যাপ্লিকেশনেও ব্যবহৃত, এমনকি Walmart-এ ব্যবহৃত একটি কী/ভ্যালু স্টোরেও।

Visual Basic

GUI (যেমন ডেটাবেসের ইন্টারফেস) আর সার্ভার-জেনারেটেড ওয়েবসাইটের জন্য ব্যবহৃত হয়। কোম্পানিগুলোর মধ্যে রয়েছে Boeing, Wells Fargo আর General Electric

প্রোগ্রামিংয়ের দৃষ্টিকোণ থেকে এগুলো কীভাবে আলাদা?

Fortran

শুরুতে শুধু ইম্পারেটিভ প্রোগ্রামিং সমর্থন করত, কিন্তু এর কিছুদিন পরেই প্রসিডিউরাল প্রোগ্রামিং যুক্ত হয়। পরবর্তী এক্সটেনশনগুলো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং আর অ্যারে প্রোগ্রামিংয়ের মতো অন্য প্যারাডাইমের সমর্থন যোগ করে

COBOL

মাল্টি-প্যারাডাইম, ইম্পারেটিভ আর অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং সমর্থন করে

Visual Basic

মাল্টি-প্যারাডাইম ভাষা: প্রধানত অবজেক্ট-ওরিয়েন্টেড, তবে ইম্পারেটিভ আর ইভেন্ট-ড্রিভেন প্রোগ্রামিংও

বিশেষ বৈশিষ্ট্য

Fortran

  • পারফরম্যান্স। Fortran ভাষা আর এর ডেটা টাইপ/ডেটা স্ট্রাকচারগুলো দক্ষ হওয়ার জন্য, অর্থাৎ দুর্দান্ত পারফরম্যান্সের জন্য ডিজাইন করা। এজন্যই এটি সুপারকম্পিউটারে ব্যবহৃত হয়
  • ডিফল্টভাবে অনেক গাণিতিক ফাংশন সমর্থন করে
  • অ্যারে প্রোগ্রামিং হলো অ্যারে আর অ্যারের অংশে অপারেশন প্রয়োগের খুবই সুন্দর একটি উপায়, যেখানে হাতে কোনো ইটারেশন করতে হয় না বা অ্যারের সীমানা উল্লেখ করতে হয় না

COBOL

  • ফিক্সড-পয়েন্ট অ্যারিথমেটিকে রাউন্ডিং এরর হয় না, ফ্লোটিং পয়েন্ট সংখ্যার মতো নয়। এজন্যই এটি ফাইন্যান্সের জন্য দুর্দান্ত
  • ফাইল (রেকর্ড) থেকে পড়া আর ফাইলে লেখার জন্য দুর্দান্ত
  • রিপোর্ট তৈরি করার জন্য COBOL-এর বিল্ট-ইন সমর্থন (এটাই আরেকটি কারণ কেন এটি বিজনেস অ্যাপ্লিকেশনে জনপ্রিয় হয়েছে)

Visual Basic

  • Windows Forms ব্যবহার করে GUI অ্যাপ্লিকেশন তৈরির জন্য চমৎকার। ড্র্যাগ অ্যান্ড ড্রপ WYSIWYG এডিটর
  • দুর্দান্ত IDE সমর্থন, রিফ্যাক্টরিং, কোড কমপ্লিশন আরও অনেক কিছুসহ

কোনটা চেষ্টা করবেন?

  • বৈজ্ঞানিক কম্পিউটিং বা উচ্চ পারফরম্যান্সে আগ্রহ থাকলে Fortran একটি চমৎকার পছন্দ
  • পুরনো দিনে বিজনেস অ্যাপ্লিকেশন কীভাবে তৈরি হতো তার ধারণা পেতে চাইলে COBOL দুর্দান্ত
  • GUI অ্যাপ্লিকেশন তৈরি করতে আগ্রহী হলে বা আপনি ইতিমধ্যে .NET প্ল্যাটফর্মে থাকলে Visual Basic খুব ভালো কাজ করে
  • প্রোগ্রামিংয়ের ইতিহাসে আগ্রহ থাকলে COBOL আর Fortran, দুটোই ঘুরে দেখার মতো সুন্দর ট্র্যাক
1 জুলাই 2023 · কাজে লেগেছে?