এর প্রচুর কারণ রয়েছে। এরিক লিপার্ট অনেকবার বলে গেছেন যে কারণটি feature X
সি # তে নেই কারণ এটি তাদের বাজেটে নয়। ভাষা ডিজাইনারদের জিনিসগুলি বাস্তবায়নের জন্য অসীম সময় বা অর্থের পরিমাণ থাকে না এবং প্রতিটি নতুন বৈশিষ্ট্যের সাথে এটির রক্ষণাবেক্ষণের ব্যয় থাকে। ভাষা ডিজাইনারদের পক্ষে ভাষা যতটা সম্ভব ছোট রাখা কেবল সহজ নয় - বিকল্প বাস্তবায়ন এবং সরঞ্জামগুলি (যেমন আইডিই) লেখার পক্ষে কারও পক্ষে এটি আরও সহজতর হয়, যখন কোনও অংশের পরিবর্তে ভাষার শর্তে কিছু প্রয়োগ করা হয়, আপনি পান বিনামূল্যে বহনযোগ্যতা। ইউনিট টেস্টিং যদি একটি গ্রন্থাগার হিসাবে প্রয়োগ করা হয় তবে আপনাকে কেবল এটি একবার লিখতে হবে এবং এটি ভাষার যে কোনও মানানসই বাস্তবায়নে কাজ করবে।
এটি লক্ষণীয় যে ডি ইউনিট পরীক্ষার জন্য সিনট্যাক্স-স্তর সমর্থন করে । আমি জানি না কেন তারা কেন এটি ফেলে দেওয়ার সিদ্ধান্ত নিয়েছে, তবে এটি লক্ষ্য করার মতো যে ডি বলতে বোঝায় একটি "উচ্চ স্তরের সিস্টেম-প্রোগ্রামিং ভাষা"। ডিজাইনাররা চাইছিল যে এটি অনিরাপদ জাতীয় ধরণের জন্য কার্যকর হবে, নিম্ন স্তরের কোড সি ++ traditionতিহ্যগতভাবে ব্যবহার করা হয়েছে এবং অনিরাপদ কোডে একটি ভুল অবিশ্বাস্য ব্যয়বহুল - অপরিজ্ঞাত আচরণ। সুতরাং আমি মনে করি যে কোনও কিছু অনিরাপদ কোড কাজ করে তা যাচাই করতে আপনাকে সহায়তা করে এমন কোনও বিষয়ে অতিরিক্ত প্রচেষ্টা ব্যয় করা তাদের বোধগম্য হয়েছে। উদাহরণস্বরূপ, আপনি প্রয়োগ করতে পারেন যে কেবলমাত্র কয়েকটি বিশ্বস্ত মডিউলগুলি চেক করা অ্যারে অ্যাক্সেস বা পয়েন্টার পাটিগণিতের মতো অনিরাপদ ক্রিয়াকলাপ সম্পাদন করতে পারে।
দ্রুত বিকাশও তাদের জন্য একটি অগ্রাধিকার ছিল, তাই তারা এটিকে একটি ডিজাইনের লক্ষ্য তৈরি করেছিল যাতে স্ক্রিপ্টিং ভাষা হিসাবে এটি ব্যবহারযোগ্য করে তোলার জন্য ডি কোডটি যথেষ্ট দ্রুত সংকলন করে। বেকিং ইউনিট সরাসরি ভাষায় পরীক্ষা করে যাতে আপনি কেবল সংস্থাপকটিতে একটি অতিরিক্ত পতাকা উত্তোলন করে আপনার পরীক্ষাগুলি চালাতে পারেন with
যাইহোক, আমি মনে করি একটি দুর্দান্ত ইউনিট পরীক্ষার লাইব্রেরি কিছু পদ্ধতি আবিষ্কার এবং সেগুলি চালানোর চেয়ে আরও অনেক কিছু করে। উদাহরণস্বরূপ হাস্কেলের দ্রুতচেক নিন , যা আপনাকে "সমস্ত এক্স এবং ওয়াইয়ের জন্য" এর মতো বিষয়গুলি পরীক্ষা করতে দেয় f (x, y) == f (y, x)
। কুইকচেককে ইউনিট পরীক্ষা জেনারেটর হিসাবে আরও ভালভাবে বর্ণনা করা হয়েছে এবং আপনাকে "এই ইনপুটটির জন্য, আমি এই আউটপুটটি আশা করছি" এর চেয়ে উচ্চতর স্তরে জিনিসগুলি পরীক্ষা করার অনুমতি দেয়। কুইকচেক এবং লিনক সমস্ত আলাদা নয় - এগুলি উভয়ই ডোমেন-নির্দিষ্ট-ভাষা। সুতরাং কোনও ভাষাতে ইউনিট পরীক্ষার সহায়তার উপর চাপ দেওয়ার পরিবর্তে, ডিএসএলকে ব্যবহারিক করার জন্য প্রয়োজনীয় বৈশিষ্ট্যগুলি কেন যুক্ত করবেন না? আপনি কেবল ইউনিট টেস্টিং নয়, ফলস্বরূপ আরও ভাল ভাষা দিয়ে শেষ করবেন।