প্রশ্নটি বিভ্রান্তিকর, কারণ সি এবং সি ++ ভাষা , অন্যদিকে জেভিএম ভার্চুয়াল মেশিন এবং। নেট একটি প্ল্যাটফর্ম । স্কালা সি বা সি ++ এ প্রয়োগ করা যেতে পারে এবং এটি ভার্চুয়াল মেশিনের বাইটকোডের পরিবর্তে মেশিন কোড তৈরি করতে পারে।
জিজ্ঞাসা করা প্রশ্নের উত্তর:
স্ক্যালাকে সি বা সি ++ তে প্রয়োগ করা হয়নি কারণ স্কেলা, এটি যে ভাষাতে বাস্তবে প্রয়োগ করা হয়, এটি অনেক ভাল ভাষা।
কেন এটা ভাল? ঠিক আছে, স্কেলা ভাষার জন্য ওডারস্কির লক্ষ্যগুলি সম্পর্কে পড়ুন ।
উদ্দেশ্যে করা হতে পারে এমন প্রশ্নের উত্তর:
স্কালা প্রাথমিকভাবে জেভিএম বাইটকোড উত্পন্ন করে কারণ এটি দুর্দান্ত বহনযোগ্যতার পাশাপাশি জেভিএম দ্বারা নির্ভরযোগ্য এবং দক্ষ আবর্জনা সংগ্রহকারী, রান-টাইম অপ্টিমাইজেশান এবং ইন-টাইম সংকলনের মতো বৈশিষ্ট্য সরবরাহ করে ।
আমাকে সেই শেষ জিনিসটি পুনরাবৃত্তি করতে দিন: JVM যে কোডটি চলছে তাতে মেশিন কোড হট স্পটগুলিতে সংকলন করবে । এটি সি এবং সি ++ সংকলকগুলির মতোই সংকলন করে।
অন্যান্য ভার্চুয়াল মেশিনগুলি উপলভ্য রয়েছে তবে স্কেলার স্রষ্টা ওডারস্কি ইতিমধ্যে জেভিএমের সাথে খুব পরিচিত ছিলেন। তিনি বিকল্প হিসাবে সিএলআর রাখার ইচ্ছা করেছিলেন, কিন্তু তা পাওয়ার চেষ্টা এখনও সফল হয়নি।
যে প্রশ্নটি / জিজ্ঞাসা করা উচিত ছিল তার উত্তর:
মেশিন কোডে সংকলন জেভিএম বাইকোডে সংকলনের চেয়ে পর্যাপ্ত সুবিধা সরবরাহ করে না।
সিভি বা সি ++ এ জাইভিএম-সমতুলকে পরাজিত করে অবশ্যই মাইক্রোব্যাঙ্কমার্কগুলি তৈরি করা সম্ভব। এটিও সত্য যে সি বা সি ++ এর মধ্যে অত্যন্ত অপ্টিমাইজড কোড জাভা বা স্কালায় অত্যন্ত অনুকূলিত কোডকে পরাজিত করবে। পার্থক্যটি এত দীর্ঘ নয়, দীর্ঘকালীন প্রোগ্রামের জন্য।
নোট করুন যে স্কালাল স্পষ্টভাবে একটি ভাল স্ক্রিপ্টিং ভাষা নয় কারণ স্বল্প-চলমান প্রোগ্রামগুলির জন্য ওভারহেড খুব বড়।
তবে, অধিকাংশ ক্ষেত্রেই গতি উন্নয়ন এবং রক্ষণাবেক্ষণ কর্মের গতি চেয়ে আরও বেশি গুরুত্বপূর্ণ মৃত্যুদন্ড । এই ক্ষেত্রে, লোকেরা খুব উচ্চ স্তরের কোড লেখার ক্ষেত্রে আরও বেশি উদ্বিগ্ন যেগুলি সহজেই বুঝতে এবং পরিবর্তন করতে পারে, জেভিএম সরবরাহিত রান-টাইম অপ্টিমাইজেশনগুলি সহজেই সি বা সি ++ সংকলকগুলির দ্বারা তৈরি কমপ্লাই-টাইম অপ্টিমাইজেশানগুলি জেভিএম তৈরি করতে পারে (এবং সিএলআর) ) লক্ষ্য যা আসলে দ্রুত কার্যকর হয় exec
সুতরাং, প্রশ্নটি স্কেলার সংকলকটি একটি মেশিন কোড এক্সিকিউটেবল হওয়া বা স্কালার প্রোগ্রামগুলি মেশিন কোড হওয়ার বিষয়ে কিনা , সম্ভাব্য গতি লাভগুলি অগত্যা সত্যিকারের গতি লাভে অনুবাদ করে না ।
এবং উপায় দ্বারা,
আমি আপনাকে একটি পাল্টা উদাহরণ দেব: হাস্কেল। হাস্কেল মেশিন কোড উত্পন্ন করে এবং তবুও, হাস্কেল প্রোগ্রামগুলি স্কালার চেয়ে ডেবিয়ানের শ্যুটআউটে আরও খারাপ। এটি দেওয়া, যে কেউ নিশ্চিত হতে পারে যে সরাসরি মেশিন কোডে সংকলন করা হলে স্কালার প্রোগ্রামগুলি আরও দ্রুত হবে?