টাইপস্ক্রিপ্ট ৭ এখন ১০ গুন ফাস্ট, আপগ্রেড করবেন নাকি অপেক্ষা?

টাইপস্ক্রিপ্ট ৭ এখন ১০ গুন ফাস্ট, আপগ্রেড করবেন নাকি অপেক্ষা?

টাইপস্ক্রিপ্ট ৭ এর কম্পাইলার এখন Go তে লেখা, বিল্ড প্রায় ১০ গুন ফাস্ট। কি বদলালো, কি বাদ গেলো, আর এখনই আপগ্রেড করবেন কি না।

টাইপস্ক্রিপ্ট দিয়ে বড় প্রজেক্টে কাজ করেছেন, অথচ টাইপ চেকের অপেক্ষায় বসে বসে এক কাপ কফি শেষ করেন নি, এমন মানুষ কম আছে।

সেই অপেক্ষার দিন শেষ হওয়ার পথে। গত জুলাইয়ে টাইপস্ক্রিপ্ট ৭ রিলিজ হয়েছে, আর এবার পুরো কম্পাইলার টাই নতুন করে লেখা হয়েছে Go ল্যাঙ্গুয়েজে।

আজকের ব্লগে দেখবো কি বদলালো, কতটা ফাস্ট, আর আপনার এখনই আপগ্রেড করা উচিৎ কি না।

কি বদলালো?

এতোদিন টাইপস্ক্রিপ্টের কম্পাইলার নিজেই লেখা ছিলো টাইপস্ক্রিপ্টে, চলতো Node.js এর উপর। জাভাস্ক্রিপ্ট দিয়ে জাভাস্ক্রিপ্ট চেক করা, স্পিডের একটা লিমিট তো থাকবেই।

Microsoft তাই পুরো কম্পাইলার টা Go তে পোর্ট করেছে। Go সরাসরি মেশিন কোডে কম্পাইল হয়, আর একসাথে অনেক কাজ প্যারালালি করতে পারে।

সহজ কথায় বললে, ইঞ্জিন বদলে গেছে, গাড়ি একই আছে। আপনার কোড, সিনট্যাক্স, টাইপ সব আগের মতোই।

কতটা ফাস্ট?

  • VS Code এর কোডবেসঃ প্রায় ১৫ লাখ লাইনের প্রজেক্ট। আগে বিল্ড হতে লাগতো প্রায় ৭৮ সেকেন্ড, এখন ৭.৫ সেকেন্ড।
  • Sentryঃ ১৩৩ সেকেন্ড থেকে নেমে এসেছে ১৬ সেকেন্ডে।
  • মেমোরিঃ বড় প্রজেক্টে প্রায় অর্ধেক মেমোরি লাগছে বলে জানা গেছে।

তবে মনে রাখবেন, এগুলো বড় প্রজেক্টের বেঞ্চমার্ক। আপনার ছোট প্রজেক্টে পার্থক্য এতোটা চোখে পরবে না। আসল মজা টা পাবেন এডিটরে। অটোকমপ্লিট আর এরর দেখানো অনেক দ্রুত হবে।

কি কি বাদ দেওয়া হয়েছে?

নতুন ইঞ্জিনের সাথে কিছু পুরনো জিনিস বিদায় নিয়েছে।

  • স্ট্রিক্ট মোড ডিফল্ট অনঃ এখন থেকে strict নিজে থেকেই চালু থাকবে।
  • ES5 টার্গেট বাদঃ সর্বনিম্ন ES2015।
  • পুরনো মডিউল ফরম্যাট বাদঃ AMD, UMD, SystemJS আর নাই।
  • moduleResolution node10 বাদঃ এটাও আর চলবে না।

এগুলোর ওয়ার্নিং টাইপস্ক্রিপ্ট ৬ এ আগে থেকেই দেখানো হচ্ছিলো।

সবচেয়ে বড় ড্রব্যাকঃ

টাইপস্ক্রিপ্ট ৭.০ তে প্রোগ্রামেটিক Compiler API এখনও নাই। এটা আসবে ৭.১ এ।

মানে যেসব টুল ভিতরে ভিতরে টাইপস্ক্রিপ্টের API কল করে, সেগুলো এখনই নতুন কম্পাইলারে চলবে না। যেমন ts-morph, tsup দিয়ে .d.ts জেনারেট করা, কিছু ts-jest সেটাপ।

তবে এডিটরের প্লাগিনগুলো মোটামুটি ঠিকঠাক কাজ করার কথা।

আপগ্রেড করবেন কিভাবে?

তাড়াহুড়া না করে ধাপে ধাপে আগান।

১. আগে টাইপস্ক্রিপ্ট ৬ এ আপগ্রেড করুন।

২. ৬ যে ডেপ্রিকেশন ওয়ার্নিং দেখায়, সবগুলো ঠিক করুন।

৩. কিছুদিন CI তে পুরনো আর নতুন কম্পাইলার পাশাপাশি চালান। আউটপুটে কোন পার্থক্য না থাকলে তারপর পুরোপুরি সুইচ করুন।

কারা এখনই আপগ্রেড করবেন?

  • এখনই করুনঃ যারা শুধু tsc আর এডিটর ইউজ করেন। বিশেষ করে বড় প্রজেক্ট বা মনোরিপো, যেখানে CI তে টাইপ চেকেই অনেক সময় চলে যায়।
  • একটু অপেক্ষা করুনঃ যাদের প্রজেক্টে কোড জেনারেশন, কাস্টম ট্রান্সফরমার বা টাইপস্ক্রিপ্ট API এর উপর নির্ভর করা টুল আছে। ৭.১ পর্যন্ত অপেক্ষা করাই বেটার।

আর হ্যা, esbuild বা swc বাদ দেওয়ার দরকার নাই। বান্ডলিং আর মিনিফাই এর কাজ ওরাই করবে।

উপসংহারঃ

টাইপস্ক্রিপ্টের ইতিহাসে এটা মনে হয় সবচেয়ে বড় আপডেট। কোড একই, কিন্তু অপেক্ষা ১০ ভাগের ১ ভাগ।

আমি সাজেস্ট করবো, নিজের প্রজেক্টে অন্তত একবার ট্রাই করে দেখুন। পার্থক্য টা নিজের চোখে দেখলে আর পুরনো টায় ফিরতে ইচ্ছা করবে না।

পোস্টটি ভালো লাগলে বন্ধুদের সাথে শেয়ার করুন

    এখনও কোনো মন্তব্য নেই। প্রথম মন্তব্যটি আপনার হোক!

    আরও পড়ুন

    জাভাস্ক্রিপ্ট এর সব পোস্ট

    ডেনো (Deno) এর দিন শেষ? পুরো টিম চলে গেলো Cloudflare এ

    ৩ মিনিট

    Deno এর পুরো টিম Cloudflare এ চলে গেলো, রানটাইমের অফিশিয়াল ডেভেলপমেন্ট শেষ হবে এক বছর পর। Deno কেনো হারলো, আর এখন কি করবেন?

    ডেনো (Deno) এর দিন শেষ? পুরো টিম চলে গেলো Cloudflare এ

    ফ্রন্ট-এন্ড ডেভেলপার রোডম্যাপ: কি শিখবেন এবং কিভাবে শিখবেন?

    ৮ মিনিট

    ফ্রন্ট-এন্ড ডেভেলপমেন্ট, ওয়েব ডেভেলপমেন্টের একটি অত্যন্ত সৃজনশীল এবং আকর্ষণীয় পার্ট। ফ্রন্ট-এন্ড ডেভেলপাররা সাধারণত ওয়েবসাইটের ইউজার ইন্টারফেস (UI) তৈরি…

    ফ্রন্ট-এন্ড ডেভেলপার রোডম্যাপ: কি শিখবেন এবং কিভাবে শিখবেন?

    জাভাস্ক্রিপ্ট: মডার্ন ইন্টারনেট এবং ওয়েব ডেভেলপমেন্টের বিপ্লব

    ৩ মিনিট

    জাভাস্ক্রিপ্ট (JavaScript) হলো একটি স্ক্রিপ্টিং ভাষা যা ওয়েব ডেভেলপমেন্ট এবং মর্ডান ইন্টারনেটকে সম্পূর্ণ নতুন এক স্তরে নিয়ে গেছে। ১৯৯৫ সালে ব্রেন্ডান আইক…

    জাভাস্ক্রিপ্ট: মডার্ন ইন্টারনেট এবং ওয়েব ডেভেলপমেন্টের বিপ্লব

    ট্যাগ