প্রোগ্রামিং ল্যাঙ্গুয়েজ এর ইতিকথা (সি এবং পাইথন)

946

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

প্রোগ্রামিং ল্যাঙ্গুয়েজ "সি" ঃ

"সি" একটি স্ট্রাকচারড প্রোগ্রামিং ল্যাঙ্গুয়েজ। স্ট্রাকচারড প্রোগ্রামিং ল্যাঙ্গুয়েজ এর বৈশিষ্ট্য হল এখানে বড় একটি প্রোগ্রাম কে ছোট ছোট অংশ বা মডিউলে ভাগ করা যায়। ১৯৬৯ সাল থেকে ১৯৭৩ এর মাঝে “Dennis Ritchie” বেল ল্যাবে এটি তৈরি করেন । তবে জনসাধারণের ব্যবহারের জন্য এটি উন্মুক্ত করা হয় ১৯৭২ সালে। "সি"এর আগে ১৯৬০ এর দশকে আরো কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি হয়েছিল। যেমন, ALGOL, COBOL, APL, SNOBOL ইত্যাদি। তবে এই সবগুলো ল্যাঙ্গুয়েজ ই ছিল এক একটা নির্দিষ্ট কাজের জন্য। এর ফলে একটা সময় সবাই অনুভব করল প্রতিটা কাজের জন্য যদি এরকম আলাদা আলাদা একটা ল্যাঙ্গুয়েজ ব্যবহার করতে হয় এটা সুবিধাজনক হয়না।

এই সমস্যা সমাধানের লক্ষ্যে ১৯৬৩ সালে CPL(Combined Programming Language) নামে আরেকটি ল্যাঙ্গুয়েজ ডেভেলপ করা হয় যেটার উদ্দেশ্য ছিল যেন একই সাথে অনেক কাজ করা যায়। এটি বর্তমান সি ল্যাঙ্গুয়েজ এর প্রথম ধাপ ছিল বলা যায়। কিন্তু এরপর ও সমস্যা আসলে থেকেই গিয়েছিল। এটি আগের অনেকগুলো ল্যাঙ্গুয়েজ এর কিছুটা সম্মিলিত ভার্সন হওয়ার কারণে এটি অনেক জটিল হয়ে গিয়েছিল যেটি শিখে কাজে লাগানো অনেক সময়সাপেক্ষ ব্যাপার ছিল।

এরপর ১৯৬৭ সালে ক্যামব্রিজ বিশ্ববিদ্যালয়ের "Martin Richards" CPL কে ঘষেমেজে আবারো তৈরি করেন BCPL(Basic Combined Programming Language) নামের আরেক ল্যাঙ্গুয়েজ যেটা CPL  থেকে কিছুটা কম জটিল ছিল। কিন্তু সমস্যা বাঁধল অন্য জায়গায়, এটি দিয়েও নির্দিষ্ট অল্প কিছু কাজ ই করা যেত।

এর দুই বছর পর ১৯৬৯ সালে বেল ল্যাব এর “Dennis Ritchie” এই ল্যাঙ্গুয়েজ কিভাবে আরো কার্যকরী করা যায় এই গবেষণা শুরু করেন। এর মাঝে ১৯৭০ সালে বেল ল্যাব এর "Ken Thompson" BCPL এর কিছু সমস্যা সমাধান করে এরই একটা আপডেট ভার্সন তৈরি করেন এবং এর নাম দেন "B"। এটি আগের থেকে কিছুটা কার্যকরী হলেও কিছু সীমাবদ্ধতা ছিল।

Ken Thompson

১৯৭২ সালে “Dennis Ritchie” BCPL এবং B কে এক করে এবং এর সমস্যাগুলো সমাধান করে সাথে আরো কিছু সংযোজন নিয়ে যেটা তৈরি করলেন সেটা পরিচিতি লাভ করে "সি" নামে। যেমন, BCPL এবং B তে কোনো ডাটা টাইপ ছিলনা। "সি " তে ডাটা টাইপ সংযোজন করা হয়। যেটা পরবর্তীতে কম্পিউটিং বিশ্বে বিপ্লব নিয়ে আসে বলা যায়।

Dennis Ritchie

তবে প্রথমদিকে সি ডেভেলপ করা হয়েছিল "UNIX" অপারেটিং সিস্টেমের কথা মাথায় রেখেই। এবং এখনও "UNIX" এর বেশিরভাগ প্রোগ্রাম  "সি" তেই লিখা।

পরবর্তীতে ৭০ এবং ৮০ এর দশকে "সি" ব্যাপক জনপ্রিয়তা লাভ করে। এবং সাথে সাথে এরই মাঝে এর অনেকগুলো ভার্সন ও বাজারে চলে আসে। ১৯৮৩ সালে আন্তর্জাতিক মান নিয়ন্ত্রণ সংস্থা(ANSI) "সি" এর একটা আদর্শ ভার্সন তৈরির লক্ষ্যে একটি কমিটি গঠন করে। এবং এই আদর্শ ভার্সন তৈরিতে আবার প্রায় ৬ বছর লেগে যায়।  পরে ১৯৮৮ এর শেষের দিকে আন্তর্জাতিক মান নিয়ন্ত্রণ সংস্থা(ANSI) সেই আদর্শ ভার্সন টিকেই ব্যবহারের জন্য উন্মুক্ত করে যেটি আনসি সি(ANSI C) নামে পরিচিত।

"সি" ল্যাঙ্গুয়েজ এর প্রথম বই প্রকাশিত হয় ১৯৭৮ সালে যার নাম ছিল "The C Programming Language" ।

পাইথনঃ

ডাটা থেকে শুরু করে ওয়েব ডেভেলপমেন্ট সব জায়গায় বহুল ব্যবহৃত একটি গুরুত্বপূর্ণ ল্যাংগুয়েজ হল পাইথন। এটি একটি ওপেন সোর্স প্রোগ্রামিং ল্যাংগুয়েজ। পাইথন এর শুরু নিয়ে আলোচন করতে হলে ফিরে যেতে ১৯৮৯ সালের সময়টাতে। এটি ছিল Guido van Rossum এর একটি শখের প্রজেক্ট বলা যায়। Guido van Rossum একজন ডাচ প্রোগ্রামার, যিনি ১৯৫৬ সালে জন্মগ্রহণ করেন। তাকে পাইথন কমিউনিটির Benevolent Dictator For Life বলা হয়। এর মানে কিছুটা এমন যে, তিনি আজীবন এর জন্য পাইথনের পরিচালক হিসেবে থাকবেন এবং পাইথন নিয়ে যে কোনো যুক্তি, বিতর্কে তার কথাই শেষ কথা।

Guido Van Rossum

পাইথন তৈরিতে ABC ল্যাঙ্গুয়েজ এর প্রভাব আছে। তিনি তখন আমিবা ডিস্ট্রিবিউটেড অপারেটিং সিস্টেম গ্রুপের সাথে কাজ করছিলেন। তিনি সেখানে ABC ব্যবহার করতে চাইলেন না। বিকল্প হিসেবে তিনি নতুন  কিছু তৈরির কথা ভাবলেন। যার ফল হিসেবেই পাইথন এর জন্ম।

1991 সালে van Rossum প্রথম পাইথন প্রকাশ করেন। এবং এই পর্যায়েই ক্লাস ইনহেরিটেন্স, এক্সেপশন হ্যান্ডলিং, ফাংশন, ও প্রধান ডাটা টাইপ list, dict, str এসব সংযুক্ত ছিল।

১৯৯৪ সালের জানুয়ারি তে পাইথন ১.০ সংস্করণ বাজারে আসে। সাথে আসে আরো কিছু সংযোজন। যেমন, ফাংশনাল প্রোগ্রামিং টুলস lambdamapfilter ও reduce।

আর ভালো কথা, পাইথন নাম টাও কোনো সাপের নামে নামকরণ করা হয়নি। ইংল্যান্ডের এক রম্য অনুষ্ঠান "মন্টি পাইথন ফ্লায়িং সার্কাস" থেকে এর নামকরণ করা হয়েছিল "পাইথন"। Guido van Rossum এই অনুষ্ঠানের অনেক ভক্ত ছিলেন।

অনেক বড় বড় প্রকল্প পাইথনে ডেভেলপ করা। যেমন, Youtube, Disqus, Pinterest, Quora, Instagram । এছাড়া কিছু বড় প্রতিষ্ঠান ও তাদের বিভিন্ন কাজে পাইথন ব্যবহার করে। যেমন, Google, Nasa.

MIT সহ যুক্তরাষ্ট্রের বেশিরভাগ বিশ্ববিদ্যালয়ে পাইথন প্রথম ল্যাঙ্গুয়েজ হিসেবে শেখানো হয়।

পাইথনের নিজস্ব বহু মডিউল ও লাইব্রেরি আছে। এর পরেও বিশেষ ধরনের কাজের জন্য বিশেষভাবে তৈরি বিভিন্ন প্যাকেজ ও পাওয়া যায়। যেমনঃ বায়োইনফর্মেটিক্স বিষয়ক কাজের জন্য রয়েছে BioPython, গ্রাফিকাল ইন্টারফেস প্রোগ্রামিং এর জন্য PyGTK, ইমেজ প্রসেসিং এর জন্য OpenCV ইত্যাদি।

 

লিখাটি নিয়ে আপনার অভিমত কি?