হয়তো সবার পছন্দ হবে না, কিন্তু আমার মত হলো: বাস্তব সফটওয়্যার ডেলিভারির ক্ষেত্রে Codex-এর জন্য TypeScript-ই সেরা ভাষা, শুধু ডেমো দেখানোর মতো কোডের জন্য নয়।
এর মানে এই নয় যে TypeScript কোনো জাদুকরী ভাষা। আসল কারণ হলো, AI coding tools সাধারণত তখনই ভালো কাজ করে যখন কোডবেসে শক্ত কাঠামো, পরিষ্কার সংকেত এবং স্পষ্ট সীমাবদ্ধতা থাকে। প্রজেক্ট যত বেশি নিজেকে ব্যাখ্যা করে, মডেলকে তত কম অনুমান করতে হয়। আর তখন তার আউটপুটকে প্রোডাকশন-যোগ্য দিকে নিয়ে যাওয়াও সহজ হয়।
কেন TypeScript AI coding tools-এর সঙ্গে এত ভালো কাজ করে
খুব ঢিলেঢালা JavaScript কোডবেসে মডেল এমন কোড লিখতে পারে যা দেখতে যথেষ্ট ভালো, কিন্তু ভেতরে ভেতরে গুরুত্বপূর্ণ অনুমান ভেঙে দেয়। কোড রান করলেই যে সেটি আর্কিটেকচারের সঙ্গে মানানসই, ডেটা শেপ ঠিকমতো অনুসরণ করছে, বা সূক্ষ্ম বাগ তৈরি করছে না—তা নয়। অনেক সময় এখান থেকেই সেই “দেখতে স্মার্ট” কিন্তু পরে ব্যয়বহুল কোডের জন্ম হয়।
TypeScript এই অস্পষ্টতা কমায়। টাইপগুলো কনট্রাক্টের মতো কাজ করে। ইন্টারফেস ডিজাইনের উদ্দেশ্য বোঝায়। কম্পাইলার সঙ্গে সঙ্গে ফিডব্যাক দেয়। বড় refactor-ও কম অন্ধভাবে করতে হয়। Codex-এর জন্য এর মানে হলো কম improvise করা, বেশি guided iteration।
- স্পষ্ট কনট্রাক্ট: function, object এবং API আরও পরিষ্কারভাবে সংজ্ঞায়িত হয়।
- তাৎক্ষণিক typecheck feedback: সিস্টেম সরাসরি ভুল ধরলে মডেল দ্রুত ঠিক পথে আসে।
- নিরাপদ বড় refactor: বড় পরিবর্তনও বাস্তব কোডবেসে সহজে যাচাই করা যায়।
- আরও পরিষ্কার architectural signal: টাইপ অনেক গোপন সম্পর্ক সামনে এনে দেয়।
আসল সুবিধা হলো feedback loop
AI দিয়ে কোডিংয়ের সবচেয়ে শক্তিশালী workflow এখনো খুবই সহজ: edit, typecheck, lint, test, fix। প্রোডাকশন মানের সফটওয়্যার চাইলে চতুর prompt-এর চেয়ে এই loop অনেক বেশি গুরুত্বপূর্ণ। শক্ত feedback system সাধারণত অস্পষ্ট সৃজনশীলতার চেয়ে বেশি কার্যকর।
এই কারণেই JavaScript অনেক সময় AI-কে অতিরিক্ত স্বাধীনতা দিয়ে ফেলে। সীমাবদ্ধতা কম থাকলে মডেল আত্মবিশ্বাসের সঙ্গে ফাঁকগুলো অনুমানে পূরণ করে। কখনো তা কাজে লাগে, কিন্তু অনেক সময় পরে গিয়ে নীরব ভাঙন তৈরি করে, যখন তা ঠিক করার খরচ আরও বেশি হয়।
TypeScript ভুল পুরোপুরি বন্ধ করে না, কিন্তু search space ছোট করে দেয়। এটি মডেলকে সীমানা দেয়, দ্রুত সংশোধনের সুযোগ দেয়, আর যে সিস্টেমে সে কাজ করছে সেটার একটি অনেক বেশি পাঠযোগ্য মানচিত্র দেয়।
ডেমোর চেয়ে শিপিং বেশি গুরুত্বপূর্ণ
যদি লক্ষ্য শুধু দ্রুত একটি prototype বানানো হয়, তাহলে প্রায় যেকোনো ভাষাই চলতে পারে। কিন্তু যদি লক্ষ্য হয় ধারাবাহিক ডেলিভারি, পরিষ্কার refactor, আর কম hidden failure, তাহলে শক্ত formal constraint সত্যিকারের একটি সুবিধা হয়ে দাঁড়ায়।
এই কারণেই AI-assisted development-এ আমি বারবার TypeScript-এ ফিরে আসি। এটা ভাষা-ভক্তির বিষয় নয়। এটা controllability-এর বিষয়। কম অনুমান। কম নীরব breakage। বেশি নির্ভরযোগ্য engineering speed।