এই লেখাটি লিখেছেন একজন কন্ট্রিবিউটর।চাইলে আপনিও লিখতে পারেন আমাদের কন্ট্রিবিউটর প্ল্যাটফর্মে।

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

সেকালের ইতিহাস

১৮২২ সালে চার্লস ব্যাবেজের ডিফারেন্স ইঞ্জিন আবিষ্কারের পর থেকে ধারণায় আসে যে, কম্পিউটারকে সঠিকভাবে চালানর জন্য কিছু নির্দেশনা প্রয়োজন। এই নির্দেশনাগুলোই হচ্ছে প্রোগ্রামিংয়ের ভাষা। অর্থাৎ কিছু নির্দেশনা তৈরি করে সেগুলোকে হার্ডওয়্যারে প্রসেস করে কাজ সম্পন্ন করাই হচ্ছে প্রোগ্রামিং।

শুরুর দিকে চার্লস ব্যাবেজের এই ডিফারেন্স ইঞ্জিনকে শুধু সুইচ ও গিয়ার পরিবর্তন করে কাজ সম্পন্ন করা যেত। প্রোগ্রাম লিখে কাজ করানোর মতো কোনো ব্যাবস্থা তখনও তৈরি হয়নি। প্রথম প্রোগ্রামিং অ্যালগরিদম তৈরি করেন একজন নারী; অ্যাডা লাভলেস ১৮৮৩ সালে চার্লস ব্যাবেজের অ্যানালিটিক্যাল ইঞ্জিনের জন্য। যার উদ্দেশ্য ছিল বারনালি নাম্বার হিসেব করা। এটিই সর্বপ্রথম লিখিত প্রোগ্রামিং ভাষা হিসেবে ধরা হয়। তবে সর্বপ্রথম ১৯৩৬ সালে অলনজো চার্চ ও অ্যালান টুরিং প্রোগ্রামিং ভাষাকে একটি গোছানো রুপ দেন, ল্যামডা ক্যালকুলাসকে তারা এর সাহায্যে ফর্মুলা আকারে উপস্থাপন করেন।

ENIAC: প্রথম ডিজিটাল ইলেকট্রনিক কম্পিউটার; Image Source: Getty images

প্রথম আধুনিক কম্পিউটার আবিষ্কৃত হয় ১৯৪০ এর দশকে। ENIAC নামের কম্পিউটারটি ১৯৪২ সালে মার্কিন সরকারের নেতৃত্বে তৈরি হয়। কিন্তু গতি এবং ধারণ ক্ষমতার দিক দিয়ে এই কম্পিউটারগুলোর সীমাবদ্ধতা ছিল। এর কারণে প্রোগ্রামারদের অনেকটা জোর করেই অ্যাসেম্বলি ভাষায় প্রোগ্রাম লিখতে হতো। অ্যাসেম্বলি ভাষাকে মেশিনের ভাষাও বলা হয়, কারণ এটি শুধু ০ ও ১ এর সমন্বয়ে তৈরি। এই ভাষা দিয়ে সরাসরি হার্ডওয়্যারের সাথে যোগাযোগ স্থাপন করা হয়। এই ভাষায় প্রোগ্রাম লেখা এবং চালানো অনেক সময়সাপেক্ষ ও পরিশ্রমের ব্যাপার। এজন্য প্রোগ্রামাররা পরবর্তীতে উচ্চতর প্রোগ্রামিং ভাষার প্রয়োজন অনুভব করেন।

এর ধারাবাহিকতায় গবেষকরা এরপর নিত্যনতুন ধারণার জন্ম করতে থাকেন। জার্মান বিজ্ঞানী কনরাড জিউস ১৯৪৫ সালে প্রথম আধুনিক প্রোগ্রাম ভাষার মতামত প্রদান করেন। তিনি Plankalkül নামে নিজের কম্পিউটিং সিস্টেমও তৈরি করেছিলেন। কিন্তু কোনো কারণে তার এই আবিষ্কার সাড়া  জাগাতে পারেনি তখন।

কনরাড জিউস ও জন ভন নিউম্যান; Image Source: Getty images

একই বছর আরেক গুরুত্বপূর্ণ গবেষক জন ভন নিউম্যান প্রোগ্রামিং নিয়ে দুটি ধারণা ব্যক্ত করেন, যা পরবর্তীতে প্রোগ্রামিংকে নতুন ধাপে নিয়ে যায়। যার একটিকে তিনি নাম দেন ‘Shared-Program-Technique’। এর দ্বারা তিনি বোঝান যে, প্রতিটি প্রোগ্রামকে কম্পিউটার হার্ডওয়্যারের জন্য না লিখে হার্ডওয়্যারকে চালানোর জন্য কিছু প্রোগ্রাম তৈরি করা হবে যেগুলো পরবর্তীতে নতুন প্রোগ্রাম ব্যবহার করতে পারবে। আর দ্বিতীয়টি হচ্ছে Conditional Control Transfer যেটি IF-ELSE এর মতো, অর্থাৎ একটি নির্দেশনা না মানলে প্রোগ্রামটি স্বয়ংক্রিয়ভাবে পরবর্তী নির্দেশনা পালন করবে।

আধুনিক কম্পিউটারের জন্য সর্বপ্রথম উচ্চতর প্রোগ্রামিং ভাষা তৈরি করা হয় ১৯৪৯ সালে। জন মকলি ‘শর্ট কোড’ নামে একটি প্রোগ্রামিং ভাষার প্রস্তাব দেন এবং উইলিয়াম স্মিডট এর বাস্তবায়ন করেন। শর্ট কোড সর্বপ্রথম ফাংশনাল প্রোগ্রামিং ভাষা। এই কোড সাধারণ মানুষ বুঝতে পারতো। কিন্ত এর একটি অসুবিধা ছিল। এই কোডে কোনো প্রোগ্রাম লিখলে সেটি প্রত্যেকবার মেশিন ভাষায় প্রোগ্রামটিকে রুপান্তর করতে হতো, যার ফলে একটি প্রোগ্রাম চালু করতে অনেক সময় লাগতো। এই সমস্যা দূর করার জন্য কম্পাইলার আবিষ্কৃত হয়। গ্রেস হপার এর আবিষ্কারক। কম্পাইলার কোনো প্রোগ্রামকে মেশিন ভাষায় রুপান্তরিত করে চালনা করে, যার ফলে সময় অনেক বেঁচে যায় এবং দ্রুত কাজ সম্পন্ন হয়।

কম্পাইলারের ধারণা; Image Source: Guru99

প্রথম কম্পাইলার যুক্ত প্রোগ্রামিং ভাষা হচ্ছে অটোকোড। কিন্তু এটি জনপ্রিয়তা অর্জন করতে ব্যর্থ হয়। প্রথম জনপ্রিয় প্রোগ্রামিং ভাষা হচ্ছে FORTRAN, যা আইবিএম কোম্পানি ১৯৫৪ সালে তৈরি করে।

জন মকলি; Image Source: Getty images

আধুনিক উচ্চতর প্রোগ্রামিং ভাষার যাত্রা

১৯৫৯ সালে COBOL প্রোগ্রামিং ভাষার উদ্ভাবন হয়, যা কার্ড প্রসেসিং, এটিএম ও কিছু ভিজুয়াল ডিসপ্লেতে ব্যবহৃত হয়। একই বছরে জন ম্যাকার্থি LISP উদ্ভাবন করেন যা কৃত্রিম বুদ্ধিমত্তায় ব্যবহৃত হয়ে আসছে। এরপরেও কিছু প্রোগ্রামিং ভাষা তৈরি হয়, কিন্তু সেগুলো কঠিন ছিল অনেকের কাছেই। জন জি. কেমেনি ও থমাস ই. কুর্টজ শিক্ষার্থী এবং যারা গণিতে খুব পারদর্শী নন তাদের জন্য BASIC নামে একটি প্রোগ্রামিং ভাষা তৈরি করেন, যা পরবর্তীতে বিল গেটস ও অ্যালেন পল কিছুটা পরিবর্তন করে VISUAL BASIC নামে প্রকাশ করেন।

ডেনিস রিচি; Image Source: Medium

১৯৭২ সালে ডেনিস রিচি ‘সি’ প্রোগ্রামিং ভাষা তৈরি করেন যা সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটিতে পরিণত হয়। এই প্রোগ্রামিং ভাষাটি অন্যান্য জনপ্রিয় ভাষা, যেমন- সি++, জাভা, রুবি, পার্ল,  পাইথন তৈরিতেও প্রভাব বিস্তার করে। এটি প্রথম সিস্টেমস প্রোগ্রামিং ভাষা হিসেবে আখ্যায়িত। সেই বছরেই ডোনাল্ড ডি. চ্যাম্বারলিন এবং রেমন্ড এফ. বয়েস SQL তৈরি করেন, যার পূর্ণরূপ STRUCTURED QUERY LANGUAGE। এটি মূলত ডাটাবেজের কাজের জন্য তৈরি করা হয়েছিলো। এখনও এটি বহুলভাবে ব্যবহৃত হয়। এরপরের সময়ে কিছু গুরুত্বপূর্ণ প্রোগ্রামিং ভাষার উদ্ভাবন হয়। PROLOG-কে প্রথম লজিক প্রোগ্রামিং ভাষা বলা হয় এবং SIMULAR-কে বলা হয় প্রথম অবজেক্ট ওরিয়েন্টেড ভাষা।

প্রোগ্রামিং ভাষার বৈশিষ্ট্য বর্ধিতকরণ এবং উন্নয়ন

আশির দশকে নতুন প্রোগ্রামিং ভাষা তৈরি না করে আগেরগুলো উন্নতিতে মনোযোগ দেয়া হয়। ভাষার বৈশিষ্ট্য বাড়ানো হয়, যার একটি উদাহরণ হচ্ছে সি++। সি এর এই নতুন সংস্করণে একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যোগ করা হয়- অবজেক্ট অরিয়েন্টেশন। অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং বলতে বোঝায় প্রোগ্রামিং কোডগুলোকে ভাগ করে প্রত্যেকটিকে নির্দিষ্ট প্রকারে অন্তর্ভুক্ত করে রাখা। আজকের দিনে সি++ একটি বহুল ব্যবহৃত প্রোগ্রামিং ভাষা। গেম ইঞ্জিন, ওয়েব ডেভেলপমেন্ট এবং ফটোশপের মতো অনেক জনপ্রিয় প্রোগ্রাম তৈরিতে এর ব্যবহার রয়েছে।

অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং ও মডিউল এর ধারণা; Image Source: W3school, Medium

এছাড়া মডিউল এর ব্যবহার শুরু হয় এসময় থেকে। অর্থাৎ কিছু সাজানো প্রোগ্রামিং কোড যেগুলো ব্যবহারকারী প্রয়োজনমাফিক নিয়ে কাজ করতে পারবেন, যার ফলে তার সময় বাঁচবে অনেক।  

ইন্টারনেট যুগের শুরু এবং প্রোগ্রামিংয়ে এর প্রভাব

'৯০ এর দশকে ইন্টারনেটের বিস্তার অনেক বাড়তে থাকে। প্রোগ্রামিংয়ের দুনিয়ায় ইন্টারনেট বড় একটি প্রভাব ফেলে। অনেক গুরুত্বপূর্ণ এবং জনপ্রিয় প্রোগ্রামিং ভাষা JAVASCRIPT তৈরি হয় ১৯৯৫ সালে। ১০ দিনে এই ভাষা তৈরি করেন ব্রেন্ডান এইচ। তখনকার সময়ে কেউ একে খুব একটা গুরুত্ব দেননি। কেউ ভাবেওনি যে এটা এত বড় প্রভাব ফেলবে। আজকে প্রায় সব ওয়েবসাইট জাভাস্ক্রিপ্ট দিয়ে তৈরি হয়। ওয়ার্ল্ড ওয়াইড ওয়েবের অন্তঃস্থল বলা যায় একে। বাকি দুটি গুরুত্বপূর্ণ ভাষা হচ্ছে HTMLCSS

আরেকটি বৃহত্তর প্রোগ্রামিং ভাষার উদ্ভাবন হয় '৯০ এর দশকে। সেটি হলো JAVA। আধুনিক প্রোগ্রামিং জগতে জাভার ভূমিকা বিশাল। কেউ যদি সামান্যতম প্রোগ্রামিংও করতে চায় তাকে জাভা জানতে হয়। কোথায় নেই জাভা? কম্পিউটার, স্মার্টফোন থেকে শুরু করে ছোট ছোট ডিভাইসগুলোতে জাভা ব্যবহৃত হয়। জাভা যে বর্তমান যুগের সবচেয়ে জনপ্রিয় প্রোগ্রামিং ভাষার একটি এতে কোনো সন্দেহ নেই। 

ব্যবহার অনুযায়ী প্রোগ্রামিং ভাষার র‍্যাঙ্ক; Image Source: Statisticstime

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

পাইথন নামকরণের পেছনে একটি মজার ঘটনাও আছে। তিনি পাইথন নাম দেন কারণ তিনি ব্রিটিশ কমেডি গ্রুপ ‘মন্টি পাইথন’ এর বড় ফ্যান ছিলেন। এই সময়ে আরও কিছু প্রোগ্রামিং ভাষা তৈরি হয় যার মধ্যে উল্লেখযোগ্য হচ্ছে HASKELL (১৯৯১), VISUAL BASIC (১৯৯১), LUA (১৯৯৩), R (১৯৯৩), RUBY (১৯৯৫), ADA (১৯৯৫), PHP(১৯৯৫) এবং REBOL (১৯৯৭)। জটিল গাণিতিক সমস্যা সমাধানের জন্য হ্যাস্কেল খুবই জনপ্রিয়। মাইক্রোসফটের ভিজুয়াল বেসিকও অনেক জনপ্রিয় হয়ে ওঠে। তথ্য বিশ্লেষণের জন্য R এবং PHP ও RUBY ওয়েব ডেভেলপমেন্টে ব্যবহৃত হয়।

একুশ শতকের প্রোগ্রামিং ভাষা

নতুন শতকের শুরুর সাথে সাথে অনেক নতুন প্রোগ্রামিং ভাষারও সৃষ্টি হয়। মাইক্রোসফট ২০০১ সালে C# (সি শার্প) তৈরি করে। ভিজুয়াল বেসিক, জাভা ও সি++ এর সাথে এর মিল রয়েছে। মাইক্রোসফটের পণ্যে এই ভাষাটি অনেক ব্যবহৃত হয়। ২০০৩ সালে মার্টিন অরডেস্কি SCALA তৈরি করেন যা অ্যান্ড্রয়েড ডেভেলপমেন্টে ব্যবহার করা হয়েছিলো। গুগলের তৈরি GO দ্বারা বড় সফটওয়্যার সিস্টেমের সমস্যা সমাধান করা হতো। এরপর গুগল আরও একটি উপযোগী প্রোগ্রামিং ভাষা তৈরি করে। DART দ্বারা মোবাইল এপ্লিকেশন তৈরি করা হয়। ২০১৪ সালে অ্যাপল SWIFT নামের একটি প্রোগ্রামিং ভাষা তৈরি করে যা সি, সি শার্প ও সি++ এর প্রতিস্থাপক হিসেবে তারা বর্ণনা করে। বর্তমানে প্রোগ্রামিং ভাষার ভাণ্ডার অনেক বড়। তবে প্রায় সবগুলোর মাঝেই ভিত্তির মিল রয়েছে। তাই একটি ভালোভাবে শিখে নিলে বাকিগুলো শিখতে তেমন সময়ের প্রয়োজন পড়ে না।

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

This is a bengali article on the history of computer programming.

References:

1. A History of Computer Programming Languages

2. A History of Computer Programming Languages

3. A BRIEF HISTORY OF PROGRAMMING LANGUAGES