অ্যান্ডার্স হেজলসবার্গের কাজ লক্ষ লক্ষ বিকাশকারীদের কোডকে আকার দিয়েছে। আপনি তার নাম চিনুন বা না চিনুন, আপনি সম্ভবত তার কাজ স্পর্শ করেছেন: তিনি টার্বো প্যাসকেল এবং ডেলফির স্রষ্টা, C# এর প্রধান স্থপতি এবং টাইপস্ক্রিপ্টের ডিজাইনার।
আমরা হেজলসবার্গের সাথে তার বর্ণাঢ্য ক্যারিয়ার নিয়ে আলোচনা করতে বসেছিলাম এবং তার উদ্ভাবনগুলি বাস্তব-বিশ্বের চাপের সাথে দাঁড়াতে দেখতে কেমন লাগে। একটি বিস্তৃত কথোপকথনে, Hejlberg প্রাথমিক উদ্যম কমে গেলে, কখন কর্মক্ষমতার সীমাবদ্ধতা দেখা দেয়, কখন ওপেন সোর্স অনিবার্য হয়ে ওঠে এবং AI কীভাবে একটি টুলের মূল কাজকে প্রভাবিত করতে পারে সে বিষয়ে প্রতিফলিত করেছেন ভাষার নকশা কেমন হয়।
যা আবির্ভূত হয় তা হল বিল্ডিং সিস্টেমগুলির জন্য নিদর্শনগুলির একটি সেট যা স্কেলের সাথে যোগাযোগ রাখে। এই আমরা কি শিখেছি.
উপরে সম্পূর্ণ সাক্ষাৎকার দেখুন.
দ্রুত প্রতিক্রিয়া প্রায় অন্য কিছুর চেয়ে বেশি গুরুত্বপূর্ণ
হেজলবার্গের প্রাথমিক প্রবৃত্তি চরম সীমাবদ্ধতার দ্বারা গঠিত হয়েছিল। 64KB মেশিনের বয়সে, বিমূর্তকরণের জন্য কোন জায়গা ছিল না যা এর ওজন টানত না।
“আপনি এটি আপনার মনে রাখতে পারেন,” তিনি স্মরণ করেন।
আপনি যখন আপনার কোড টাইপ করেন, আপনি চান যে এটি অবিলম্বে চালানো হোক।
অ্যান্ডার্স হেজলসবার্গ
Turbo Pascal এর প্রভাব প্যাসকেল ভাষা থেকে আসেনি। এই প্রতিক্রিয়া লুপ সংক্ষিপ্ত থেকে আসে. সম্পাদনা করুন, কম্পাইল করুন, চালান, ব্যর্থ করুন, ডিস্ক স্পর্শ না করে বা হাতিয়ার ধরার জন্য অপেক্ষা না করে পুনরাবৃত্তি করুন। এই টাইট লুপ ডেভেলপারদের সময় এবং মনোযোগ সম্মান.
একই ধারণা কয়েক দশক পরে টাইপস্ক্রিপ্টে প্রদর্শিত হয়, যদিও ভিন্ন আকারে। ভাষা নিজেই গল্পের অংশ মাত্র। TypeScript এর বেশিরভাগ মান এর টুলিং থেকে আসে: ক্রমবর্ধমান চেকিং, দ্রুত আংশিক ফলাফল, এবং ভাষা পরিষেবা যা বড় কোডবেসগুলিতেও দ্রুত সাড়া দেয়।
এখানে পাঠটি বিমূর্ত নয়। বিকাশকারীরা কীভাবে সরঞ্জামগুলিকে মূল্যায়ন করে এবং নির্বাচন করে তা সরাসরি প্রয়োগ করতে পারে৷ দ্রুত প্রতিক্রিয়া আচরণ পরিবর্তন করে। যখন ত্রুটিগুলি দ্রুত প্রকাশ পায়, তখন বিকাশকারীরা আরও পরীক্ষা করে, আরও আত্মবিশ্বাসের সাথে রিফ্যাক্টর করে এবং সমস্যাগুলি দেখা দেওয়ার সাথে সাথে ধরা দেয়। যখন প্রতিক্রিয়া ধীর বা বিলম্বিত হয়, তখন দলগুলি সম্মেলন, সমাধান এবং প্রক্রিয়া ওভারহেড দিয়ে ক্ষতিপূরণ দেয়।
আপনি একটি ভাষা, ফ্রেমওয়ার্ক বা অভ্যন্তরীণ টুলিং নির্বাচন করছেন কিনা, প্রতিক্রিয়া গুরুত্বপূর্ণ। যে টুলগুলি কোড লেখা এবং এর ফলাফল বোঝার মধ্যে ব্যবধান পূরণ করে সেগুলি বিশ্বাস অর্জন করে৷ যে ডিভাইসগুলি লেটেন্সি প্রবর্তন করে, সেগুলি শক্তিশালী হলেও, প্রায়শই সাইডলাইন করা হয়৷
সফ্টওয়্যার স্কেলিং মানে ব্যক্তিগত পছন্দ ত্যাগ করা
হেলবার্গ যেহেতু প্রধান দলে একা কাজ করা থেকে সরে এসেছেন, বিশেষ করে ডেলফি বছরগুলিতে, সবচেয়ে কঠিন সমন্বয় প্রযুক্তিগত ছিল না।
এটি ব্যক্তিগত পছন্দগুলি ছেড়ে দেওয়া শিখছিল।
আপনাকে মেনে নিতে হবে যে জিনিসগুলি আপনার প্রত্যাশার চেয়ে ভিন্নভাবে করা হয়েছে। এটি ঠিক করা আসলে যাইহোক আচরণ পরিবর্তন করবে না।
অ্যান্ডার্স হেজলসবার্গ
এই মানসিকতা ভাষার নকশার বাইরেও প্রযোজ্য। দলগুলি জুড়ে যে কোনও সিস্টেমকে স্কেল করার জন্য ব্যক্তিগত আগ্রহ থেকে ভাগ করা ফলাফলগুলিতে পরিবর্তন প্রয়োজন। লক্ষ্যটি এমন কোড হওয়া বন্ধ করে যা আপনি এটি লিখার সাথে সাথে দেখায় এবং কোড হতে শুরু করে যা একাধিক ব্যক্তি একসাথে বুঝতে, বজায় রাখতে এবং বিকাশ করতে পারে। C# একটি ক্লিন-স্লেট আদর্শ থেকে উদ্ভূত হয়নি। এটি পরস্পরবিরোধী দাবি থেকে উদ্ভূত হয়েছে। ভিজ্যুয়াল বেসিক ডেভেলপাররা অ্যাক্সেসিবিলিটি চেয়েছিল, সি++ ডেভেলপাররা পাওয়ার চেয়েছিল এবং উইন্ডোজ ব্যবহারিকতার দাবি করেছিল।
ফলাফল তাত্ত্বিক সঠিকতা ছিল না. এটি এমন একটি ভাষা ছিল যা যথেষ্ট লোক কার্যকরভাবে ব্যবহার করতে পারে।
ভাষা সফল হয় না কারণ তারা নিখুঁতভাবে ডিজাইন করা হয়েছে। তারা সফল হয় কারণ তারা দলগুলি যেভাবে কাজ করে তা ঠিক করে।
টাইপস্ক্রিপ্ট কেন জাভাস্ক্রিপ্ট প্রতিস্থাপনের পরিবর্তে প্রসারিত করেছে?
টাইপস্ক্রিপ্ট বিদ্যমান কারণ জাভাস্ক্রিপ্ট এমন একটি স্কেলে সফল হয়েছে যেখানে খুব কম ভাষা পৌঁছাতে সক্ষম হয়েছে। ব্রাউজারগুলি কার্যত ক্রস-প্ল্যাটফর্ম রানটাইম হয়ে উঠলে, দলগুলি গতিশীল টাইপিংয়ের সুবিধার দ্বারা সমর্থিত অ্যাপ্লিকেশনগুলির চেয়ে অনেক বড় অ্যাপ্লিকেশন তৈরি করতে শুরু করে৷
মোকাবেলা করার প্রাথমিক প্রচেষ্টা প্রায়ই চরম ছিল। কিছু দল স্ট্যাটিক বিশ্লেষণ এবং রিফ্যাক্টরিং সরঞ্জামগুলিতে অ্যাক্সেস পেতে জাভাস্ক্রিপ্টে অন্যান্য ভাষা সংকলন করেছে।
এই পদ্ধতিটি কখনই হেজলসবার্গের সাথে ভাল হয়নি।
ডেভেলপারদের আগে থেকেই বিদ্যমান ইকোসিস্টেম পরিত্যাগ করতে বলা বাস্তবসম্মত ছিল না। 2012 সালে একটি একেবারে নতুন ভাষা তৈরি করার জন্য শুধুমাত্র একটি কম্পাইলার নয়, সম্পাদক, ডিবাগার, রিফ্যাক্টরিং সরঞ্জাম এবং সম্প্রদায় গ্রহণে বছরের পর বছর বিনিয়োগের প্রয়োজন হবে।
পরিবর্তে, টাইপস্ক্রিপ্ট একটি ভিন্ন পথ নিয়েছে। এটি জাভাস্ক্রিপ্টকে প্রসারিত করেছে এবং এর ত্রুটিগুলি উত্তরাধিকারসূত্রে পেয়েছে, বড় আকারের উন্নয়নকে আরও সুগম করেছে।
এই সিদ্ধান্তটি আদর্শিক নয়, বাস্তবসম্মত ছিল। TypeScript সফল হয়েছে কারণ এটি ডেভেলপারদের বিদ্যমান টুল, লাইব্রেরি এবং মানসিক মডেল পরিত্যাগ করতে বলার পরিবর্তে পূর্ব-বিদ্যমান সীমাবদ্ধতার সাথে কাজ করেছে।
বৃহত্তর পাঠ্যটি চুক্তি সম্পর্কে। বিদ্যমান কর্মপ্রবাহকে সম্মান করে এমন উন্নতিগুলি ছড়িয়ে পড়ে যখন পাইকারি প্রতিস্থাপনের প্রয়োজন হয় এমন উন্নতিগুলি খুব কমই ছড়িয়ে পড়ে। অনুশীলনে, অর্থপূর্ণ অগ্রগতি প্রায়শই সেগুলিকে পুনরায় উদ্ভাবনের চেষ্টা করার পরিবর্তে আপনি ইতিমধ্যে যে সিস্টেমগুলির উপর নির্ভর করেন সেগুলিকে আরও দক্ষ করে তোলার মাধ্যমে আসে।
দৃশ্যমানতা হল ওপেন সোর্স কাজ করার অংশ
TypeScript অবিলম্বে শুরু হয়নি. প্রাথমিক প্রকাশগুলি নামমাত্র ওপেন সোর্স ছিল, তবে বিকাশ এখনও বন্ধ দরজার পিছনেই ঘটেছিল।
এটি 2014 সালে পরিবর্তিত হয় যখন প্রকল্পটি গিটহাবে চলে যায় এবং একটি সম্পূর্ণ জনসাধারণের উন্নয়ন প্রক্রিয়া গ্রহণ করে। বৈশিষ্ট্যগুলি পুল অনুরোধের মাধ্যমে প্রস্তাব করা হয়েছিল, ট্রেডঅফগুলি খোলাখুলিভাবে আলোচনা করা হয়েছিল এবং সম্প্রদায়ের প্রতিক্রিয়ার ভিত্তিতে সমস্যাগুলিকে অগ্রাধিকার দেওয়া হয়েছিল।
এই পরিবর্তন সিদ্ধান্ত গ্রহণ দৃশ্যমান করেছে. বিকাশকারীরা কেবল কী পাঠানো হয়েছিল তা দেখতে পারে না, তবে কেন কিছু বিকল্প বেছে নেওয়া হয়েছিল এবং অন্যগুলি ছিল না তাও দেখতে পারে৷ দলের জন্য, এটি কাজের অগ্রাধিকারের পদ্ধতিতেও পরিবর্তন করেছে। কোনটি সবচেয়ে গুরুত্বপূর্ণ তা অনুমান করার পরিবর্তে, তারা বিকাশকারীরা যে বিষয়গুলি সম্পর্কে যত্নশীল তা সরাসরি দেখতে পারে৷
সবচেয়ে কার্যকর ওপেন সোর্স প্রকল্পগুলি শেয়ার কোডের চেয়ে অনেক বেশি করে। তারা সিদ্ধান্ত গ্রহণের প্রক্রিয়াটিকে দৃশ্যমান করে তোলে যাতে অবদানকারী এবং ব্যবহারকারীরা বুঝতে পারে কীভাবে অগ্রাধিকার নির্ধারণ করা হয় এবং কেন আপস করা হয়।
একটি বাস্তবায়ন ভাষা হিসাবে জাভাস্ক্রিপ্ট বাদ দেওয়া একটি প্রয়োজনীয় বিরতি ছিল
অনেক বছর ধরে, TypeScript স্ব-হোস্টেড ছিল। কম্পাইলারটি টাইপস্ক্রিপ্টে লেখা হয়েছিল এবং জাভাস্ক্রিপ্ট হিসাবে চালানো হয়েছিল। এটি শক্তিশালী ব্রাউজার-ভিত্তিক টুলিং সক্ষম করেছে এবং এটি ব্যবহার করা আরও সহজ করেছে।
যাইহোক, সময়ের সাথে সাথে সীমাবদ্ধতাগুলি স্পষ্ট হয়ে ওঠে। জাভাস্ক্রিপ্ট একক-থ্রেডেড, কোন শেয়ার্ড-মেমরি কনকারেন্সি নেই এবং এর অবজেক্ট মডেল নমনীয় (কিন্তু ব্যয়বহুল)। টাইপস্ক্রিপ্ট প্রজেক্ট বাড়ার সাথে সাথে কম্পাইলারটি প্রচুর পরিমাণে উপলব্ধ গণনা অব্যবহৃত রেখে যাচ্ছিল।
দলটি এমন এক পর্যায়ে পৌঁছেছে যেখানে আরও অপ্টিমাইজেশান যথেষ্ট হবে না। তাদের একটি ভিন্ন মৃত্যুদন্ডের মডেল প্রয়োজন ছিল।
বিতর্কিত সিদ্ধান্তটি ছিল কম্পাইলারটিকে গোতে পোর্ট করার।
এটি একটি পুনর্লিখন ছিল না. লক্ষ্য ছিল শব্দার্থিক বিশ্বস্ততা। নতুন কম্পাইলারকে হুবহু পুরানো কম্পাইলারের মতো আচরণ করতে হবে, quirks এবং এজ কেস সহ। এর জনপ্রিয়তা সত্ত্বেও, মালিকানার সীমাবদ্ধতা এবং ব্যাপক চক্রীয় ডেটা স্ট্রাকচারের কারণে মরিচাকে উল্লেখযোগ্যভাবে পুনরায় ডিজাইনের প্রয়োজন হবে। Go-এর আবর্জনা সংগ্রহ এবং কাঠামোগত সমান্তরালতা কর্মক্ষমতা এবং সঙ্গতি আনলক করার সময় আচরণ সংরক্ষণ করা সম্ভব করেছে।
ফলাফলটি ছিল একটি উল্লেখযোগ্য কর্মক্ষমতা লাভ, নেটিভ এক্সিকিউশন এবং সমান্তরালতার মধ্যে একটি বিভাজন। আরও গুরুত্বপূর্ণ, সম্প্রদায়কে কম্পাইলারের আচরণ পুনরায় শিখতে হবে না।
কখনও কখনও সবচেয়ে দায়িত্বশীল পছন্দটি সবচেয়ে উচ্চাভিলাষী নয়, তবে এমন একটি যা আচরণকে রক্ষা করে, ব্যাঘাত কমিয়ে দেয় এবং একটি কঠিন সীমা সরিয়ে দেয় যা কোন পরিমাণে ক্রমবর্ধমান অপ্টিমাইজেশান অতিক্রম করতে পারে না।
এআই-চালিত ওয়ার্কফ্লোতে, গ্রাউন্ডিং প্রজন্মের চেয়ে বেশি গুরুত্বপূর্ণ
হেজলবার্গ এআই-প্রথম প্রোগ্রামিং ভাষার ধারণা নিয়ে সন্দিহান। মডেলগুলি ইতিমধ্যেই স্কেলে দেখেছে এমন ভাষাগুলিতে সেরা, যা স্বাভাবিকভাবেই জাভাস্ক্রিপ্ট, পাইথন এবং টাইপস্ক্রিপ্টের মতো মূলধারার ইকোসিস্টেমের পক্ষে।
কিন্তু টুলিংয়ের ক্ষেত্রে এআই কিছু পরিবর্তন করে।
প্রথাগত IDE মডেলে একজন ডেভেলপার কোড লেখা এবং তাকে পথ চলায় সহায়তা করার জন্য টুল ব্যবহার করে। ক্রমশ, সেই সম্পর্ক উল্টে যাচ্ছে। এআই সিস্টেম কোড তৈরি করে। বিকাশকারীরা তত্ত্বাবধান করে এবং সংশোধন করে। টাইপ চেকার এবং রিফ্যাক্টরিং ইঞ্জিনের মতো নির্ধারক সরঞ্জামগুলি গার্ডেল সরবরাহ করে যা সূক্ষ্ম ত্রুটিগুলি প্রতিরোধ করে।
সেই জগতে টুলিংয়ের মূল্য সৃজনশীলতা নয়। এটি নির্ভুলতা এবং বাধা। সরঞ্জামগুলিকে সঠিক শব্দার্থিক তথ্য প্রকাশ করতে হবে যাতে এআই সিস্টেমগুলি অর্থপূর্ণ প্রশ্ন জিজ্ঞাসা করতে পারে এবং নির্ভরযোগ্য উত্তর পেতে পারে।
ঝুঁকি এমন নয় যে AI সিস্টেম খারাপ কোড তৈরি করবে। বরং, এটি হল যে তারা প্রশংসনীয়, নির্ভরযোগ্য কোড তৈরি করবে যার কোডবেসের বাস্তবতায় পর্যাপ্ত ভিত্তি নেই।
বিকাশকারীদের জন্য, এটি মনোযোগ যেখানে যেতে হবে সেখানে স্থানান্তরিত হয়। এআই-সহায়ক ওয়ার্কফ্লোতে সবচেয়ে মূল্যবান টুলগুলি সেইগুলি নয় যেগুলি সবচেয়ে বেশি কোড তৈরি করে, কিন্তু যারা এটিকে সঠিকভাবে আটকায়৷ শক্তিশালী টাইপ সিস্টেম, নির্ভরযোগ্য রিফ্যাক্টরিং টুল, এবং সঠিক শব্দার্থিক মডেলগুলি অপরিহার্য পাহারায় পরিণত হয়। তারা একটি কাঠামো প্রদান করে যা AI আউটপুটগুলিকে অন্ধভাবে বিশ্বাস করার পরিবর্তে পর্যালোচনা, যাচাই এবং দক্ষতার সাথে সংশোধন করার অনুমতি দেয়।
কেন খোলা সহযোগিতা গুরুত্বপূর্ণ?
তহবিল এবং রক্ষণাবেক্ষণের চ্যালেঞ্জ সত্ত্বেও, হেজলবার্গ খোলা সহযোগিতার বিষয়ে আশাবাদী। একটি কারণ প্রাতিষ্ঠানিক স্মৃতি। বছরের পর বছর আলোচনা, সিদ্ধান্ত এবং চুক্তিগুলি অনুসন্ধানযোগ্য এবং দৃশ্যমান থাকে।
সেই ইতিহাস ব্যক্তিগত ইমেল থ্রেড বা অভ্যন্তরীণ সিস্টেমে অদৃশ্য হয়ে যায় না। এটি যে কেউ উপলব্ধি করতে চায় যে কীভাবে এবং কেন একটি সিস্টেম বিকশিত হয়েছিল।
তহবিল এবং রক্ষণাবেক্ষণের চ্যালেঞ্জ সত্ত্বেও, হেজলবার্গ খোলা সহযোগিতার বিষয়ে আশাবাদী। আর একটা বড় কারণ হল প্রাতিষ্ঠানিক স্মৃতি।
“আমাদের প্রকল্পটি 12 বছরের ইতিহাস কভার করে,” তিনি ব্যাখ্যা করেন। “যদি কেউ মনে রাখে একটি আলোচনা হয়েছে, আমরা সাধারণত এটি খুঁজে পেতে পারি। প্রসঙ্গটি ইমেল বা ব্যক্তিগত সিস্টেমে অদৃশ্য হয় না।”
সেই দৃশ্যমানতা পরিবর্তন করে কিভাবে সিস্টেম বিকশিত হয়। ডিজাইন বিতর্ক, প্রত্যাখ্যান করা ধারণা এবং আপস ব্যক্তিগত সিদ্ধান্ত নেওয়ার অনেক পরে অ্যাক্সেসযোগ্য থাকে। বিকাশকারীরা পরে একটি প্রকল্পে যোগদানের জন্য, সেই ভাগ করা প্রসঙ্গটি প্রায়শই কোডের মতোই গুরুত্বপূর্ণ।
একটি প্যাটার্ন যা কয়েক দশক ধরে পুনরাবৃত্তি হয়
ভাষার নকশার চার দশক জুড়ে, একই থিম পুনরাবৃত্তি হয়:
- দ্রুত প্রতিক্রিয়া লুপ সৌন্দর্যের চেয়ে বেশি গুরুত্বপূর্ণ
- সিস্টেমে একাধিক ব্যক্তির দ্বারা লিখিত অসম্পূর্ণ কোড মিটমাট করা প্রয়োজন
- ব্যবহারিক সামঞ্জস্য প্রায়ই স্থাপত্য সঠিকতার চেয়ে বেশি গুরুত্বপূর্ণ
- দৃশ্যমান ট্রেডঅফ বিশ্বাস তৈরি করে
এগুলি গৌণ উদ্বেগ নয়। সেগুলি হল মৌলিক সিদ্ধান্ত যা নির্ধারণ করে যে একটি টুল তার শ্রোতা বাড়ার সাথে সাথে মানিয়ে নিতে পারে কিনা। তদ্ব্যতীত, তারা নিশ্চিত করে যে নতুন ধারণাগুলি ইতিমধ্যে কাজ করছে তা ভেঙে না দিয়ে শিকড় নিতে পারে তা নিশ্চিত করে উদ্ভাবনকে আন্ডারপিন করে।
যেকোন নির্মাণ সরঞ্জামের জন্য তারা রক্ষণাবেক্ষণ দেখতে চায়, সেই মৌলিক বিষয়গুলি যে কোনও গুরুত্বপূর্ণ বৈশিষ্ট্যের মতোই গুরুত্বপূর্ণ। এবং এটি সবচেয়ে গুরুত্বপূর্ণ পাঠ হতে পারে।
আপনি কি জানেন যে TypeScript 2025 সালে ব্যবহৃত শীর্ষ ভাষা ছিল? অক্টোভার্স রিপোর্টে আরও পড়ুন >
দ্বারা লিখিত