প্রতিটি npm Install-এর লুকানো খরচ
আমরা জাভাস্ক্রিপ্টকে ঠিক করার জন্য লাইব্রেরি ডাউনলোড করতে দশ বছর ব্যয় করেছি।
আমরা তারিখের জন্য moment.js ব্যবহার করেছি। ইউটিলিটির জন্য lodash ব্যবহার করেছি। রিকোয়েস্টের জন্য node-fetch ব্যবহার করেছি। এগুলো ছিল এমন সব সমস্যার সমাধান যা প্ল্যাটফর্ম নিজে করতে পারত না।
সেগুলো তখন দরকারী ছিল। এখন সেগুলো বোঝা মাত্র।
২০২৬ সালে, সবচেয়ে গুরুত্বপূর্ণ পরিবর্তনগুলো TC39 এবং W3C-এর মতো স্ট্যান্ডার্ড বডিগুলো থেকে আসছে। প্ল্যাটফর্ম অবশেষে লাইব্রেরিগুলোর সমপর্যায়ে পৌঁছে যাচ্ছে।
একজন সিনিয়র ইঞ্জিনিয়ারের পরিচয় এখন আর কোন লাইব্রেরি বেছে নিতে হবে তা জানা নয়। বরং কখন কোনো লাইব্রেরিরই প্রয়োজন নেই তা জানা।
প্রতিটি ডিপেন্ডেন্সি একটি খরচ বহন করে: • বান্ডেল ওজন (Bundle weight) যা পেজ লোড হতে দেরি করে। • আপনার টিমের জন্য অতিরিক্ত মানসিক চাপ (Cognitive overhead)। • আপনার সাপ্লাই চেইনে নিরাপত্তার ঝুঁকি।
তিনটি নতুন প্ল্যাটফর্ম ফিচার পুরনো ডিপেন্ডেন্সিগুলোকে অপ্রয়োজনীয় করে তুলছে:
১. Temporal
পুরানো Date অবজেক্টটি ত্রুটিপূর্ণ। এটি টাইমজোন বাগ তৈরি করে এবং গণিত সঠিকভাবে করতে পারে না। Temporal এটি প্রতিস্থাপন করছে। এটি ক্যালেন্ডার টাইম থেকে অ্যাবসোলিউট টাইমকে আলাদা করে। এটি ভুলভাবে কোড লেখা কঠিন করে তোলে। আপনি যদি নতুন কোনো প্রজেক্ট শুরু করেন, তবে Date ব্যবহার করা বন্ধ করুন। Temporal ব্যবহার করুন।
২. Iterator Helpers
.map() এবং .filter()-এর মতো স্ট্যান্ডার্ড অ্যারে মেথডগুলো প্রতিটি ধাপে নতুন অ্যারে তৈরি করে। এটি বড় ডেটাসেটের ক্ষেত্রে মেমরি অপচয় করে। Iterator Helpers 'লেজি ইভালুয়েশন' (lazy evaluation)-এর সুবিধা দেয়। এগুলো আইটেমগুলোকে একে একে প্রসেস করে। যা প্রয়োজন তা পাওয়া মাত্রই এগুলো থেমে যায়। এটি আপনার অ্যাপকে দ্রুত রাখে এবং ফ্রেম রেট উচ্চ বজায় রাখে।
৩. Web Streams API ফাইল প্রসেস করার আগে পুরো ফাইলটি ডাউনলোড হওয়ার জন্য অপেক্ষা করা বন্ধ করুন। প্রচলিত ফেচিং (fetching) পুরো রেসপন্সকে মেমরিতে বাফার করে রাখে। এর ফলে মেমরিতে হঠাৎ চাপ (memory spikes) তৈরি হয়। Web Streams আপনাকে ডেটা আসার সাথে সাথে ছোট ছোট অংশে (chunk by chunk) প্রসেস করার সুযোগ দেয়। AI রেসপন্স এবং বড় ফাইল হ্যান্ডলিংয়ের জন্য এটি অত্যন্ত জরুরি।
Vanilla JavaScript এখন আর কোনো বিশেষ বা সীমিত পছন্দের বিষয় নয়। এটি প্রোডাকশন অ্যাপ তৈরির সবচেয়ে পারফরম্যান্ট এবং নিরাপদ উপায়। প্ল্যাটফর্ম এখন সেই সমস্যাগুলো সমাধান করে ফেলেছে যার জন্য লাইব্রেরি প্রয়োজন হতো।
ভাষাকে প্যাচ করা বন্ধ করুন। প্ল্যাটফর্ম ব্যবহার করা শুরু করুন।
আপনার প্রোডাকশন বান্ডেলে এমন কী চলছে যা ব্রাউজার ইতিমধ্যেই সামলাতে পারে?
