প্রশ্ন: আমি প্রায়শই দাবিটি শুনেছি যে স্ট্যাটিকালি টাইপ করা ভাষার চেয়ে গতিশীল টাইপ করা ভাষাগুলি বেশি উত্পাদনশীল। এই দাবির কারণ কী? "
এর historicalতিহাসিক কারণ রয়েছে। যদি আপনি কয়েক দশক পিছিয়ে যান, গতিশীল ভাষা স্থির ভাষাগুলির তুলনায় নির্বিচারে আরও বেশি উত্পাদনশীল ছিল (পাশাপাশি উল্লেখযোগ্যভাবে ধীরে ধীরে)। পার্ল সি এর তুলনায় স্পষ্টতই অনেক বেশি উত্পাদনশীল যদি আপনি উভয়কেই জানেন এবং হাতের কাজটিও অনুমতি দেয়। তবে সময়ের সাথে সাথে ভাষা একে অপরের কাছ থেকে প্রচুর orrowণ নিয়েছে এবং নতুন ভাষাগুলি ব্যবধানটি সংকীর্ণ করছে (উত্পাদনশীলতা এবং কার্য সম্পাদন উভয় ক্ষেত্রে)।
এখানে কিছু বিষয় বিবেচনা করতে হবে:
আবর্জনা সংগ্রহ : আবর্জনা সংগ্রহ একটি বিশাল উত্পাদনশীলতা বৃদ্ধি। আমি বিশ্বাস করি যে জাসা হ'ল জিসির সাথে প্রথম মূলধারার স্থির ভাষা ছিল। এর আগে, স্ট্যাটিক মূলত ম্যানুয়াল মেমরি পরিচালনা। (দ্রষ্টব্য: এখানে এবং নিম্নলিখিতগুলিতে আমি কেবল মূলধারার ভাষাগুলি বিবেচনা করছি L প্রচুর পরীক্ষামূলক এবং কুলুঙ্গিক ভাষা বিদ্যমান যা আমার যে কোনও বিন্দুতে জবাবদিহি দেবে))
স্মৃতি সুরক্ষা : এটি একটি উত্পাদনশীলতার উন্নতি যা আপনাকে নিজেকে পায়ে গুলি করার বিষয়ে চিন্তা করতে হবে না। জাভা যেমন "পরিচালিত" স্থির ভাষাগুলির আগে, স্ট্যাটিকের অর্থ সাধারণত সরাসরি মেমরি অ্যাক্সেস। ডিবাগিংও উত্পাদনশীলতার একটি অংশ এবং অনিরাপদ মেমরির অ্যাক্সেস সত্যই অস্পষ্ট বাগগুলিতে নিয়ে যেতে পারে।
জটিল টাইপ সিস্টেম। স্ট্যাটিক ভাষায় প্যারামিটারাইজড ধরণের (টেমপ্লেট বা জেনেরিকের মতো) প্রবর্তন করার আগে, স্ট্যাটিক ধরণের সিস্টেমগুলির সীমাবদ্ধতা প্রায়শই বোঝা হত। জাভাতে উদাহরণস্বরূপ আপনি যখন কোনও সংগ্রহ থেকে কোনও আইটেমটি বেছে নিলেন তখন আপনাকে স্পষ্টতই ডাউনকাস্ট করতে হয়েছিল। সুতরাং আপনি একটি castালাইয়ের সিনট্যাকটিক ওভারহেড পেয়েছেন এবং কোনও ধরণের সুরক্ষা নেই। প্রোগ্রামিংয়ে সর্বব্যাপী সংগ্রহগুলি কীভাবে বিবেচনা করা হচ্ছে, এটি ছিল একটি বড় অসুবিধা।
সমস্ত কিছুর ধরণটি ঘোষণা করা প্রচুর রিন্ডন্ড্যান্ট টাইপিং, তবে আধুনিক ধরণের অনুক্রমের সাথে এটি উল্লেখযোগ্যভাবে হ্রাস করা যায়।
বড় স্ট্যান্ডার্ড লাইব্রেরি। বড় স্ট্যান্ডার্ড লাইব্রেরির কারণে পাইথনকে "ব্যাটারি অন্তর্ভুক্ত" হিসাবে বিখ্যাত হিসাবে বিজ্ঞাপন দেওয়া হয়েছিল। এটি সি এর সাথে তুলনামূলকভাবে যা খুব কম সংখ্যক মানক গ্রন্থাগার রয়েছে। তবে জাভা এবং। নেট এর মতো প্ল্যাটফর্মগুলির সাথে একটি বিস্তৃত স্ট্যান্ডার্ড লাইব্রেরি স্ট্যান্ডার্ড হয়ে উঠছে এবং স্কালা এবং এফ # এর মতো নতুন ভাষা এটিকে "নিখরচায়" উত্তরাধিকার সূত্রে পেয়েছে।
প্রথম শ্রেণীর ডেটা স্ট্রাকচার। পার্ল এবং পাইথনের মতো গতিময় ভাষাতে সাধারণ ক্রিয়াকলাপের জন্য সুবিধাজনক সিনট্যাক্টিক শর্টকাট সহ তালিকাগুলি এবং মানচিত্রের মতো অন্তর্নির্মিত প্রথম শ্রেণির ডেটা স্ট্রাকচার রয়েছে। এর তুলনায় সি-র স্থির আকারের অ্যারেগুলি ব্যতীত অন্তর্নির্মিত সংগ্রহ নেই।
বন্ধ এবং ল্যাম্বদা সিনট্যাক্স - গতিশীল ভাষাগুলি সাধারণত শুরু থেকেই এটি ছিল, তবে স্থির ভাষাগুলি এটি সম্প্রতি গ্রহণ করেছে Java
ইন্টারফেসিভিত্তিক কোড স্নিপেটগুলি দ্রুত পরীক্ষা করার ক্ষমতা রিপল করুন একটি বিশাল वरदान। তবে আইডিই সরঞ্জামগুলি, ভিজ্যুয়াল স্টুডিওতে "তাত্ক্ষণিক" উইন্ডোর মতো, স্থির ভাষাগুলি কিছুটা হলেও এটি অনুকরণ করতে পারে।
উন্নত সরঞ্জামাদি - উপরোক্ত বিষয়গুলি ছাড়াও যেখানে স্থির ভাষাগুলি গতিশীল ভাষার সুবিধার কাছে আসে, আধুনিক সম্পাদকরা স্থির বিশ্লেষণের এমন উপায়ে গ্রহণ করছেন যে ডায়নামিক ভাষাগুলি একটি কঠিন সময়ের সাথে মিলে যায়। উদাহরণস্বরূপ সম্পাদকগণ নিরাপদ স্বয়ংক্রিয় রিফ্যাক্টরিংগুলি সরবরাহ করতে পারেন, এমন একটি বিষয় যা গতিশীল ভাষায় কঠোরভাবে অসম্ভব বলছে।
নীচের লাইন: icallyতিহাসিকভাবে এটি সত্য ছিল, তবে আজ উত্তরটি কম পরিষ্কার হয়েছে।
প্রশ্ন: সুতরাং: ডায়নামিক টাইপিং সহ উত্পাদনশীলতার জন্য কী বলা যায় যা টাইপ মডেলের নিজেই একটি সুবিধা?
ডায়নামিক ভাষা থেকে ডায়নামিক টাইপিং মডেলকে আলাদা করা কিছুটা শক্ত, তবে উদাহরণ হিসাবে সি # একটি স্থিরীকৃত ভাষা হলেও এটি সময়ের সাথে সাথে আরও বেশি গতিশীল বৈশিষ্ট্য গ্রহণ করেছে। এটি সত্যিই গতিশীল টাইপ মডেলের সুবিধার প্রমাণ। উদাহরণ:
প্রতিবিম্ব
প্রতিফলন মূলত একটি গতিশীল টাইপিং বৈশিষ্ট্য। আপনি কম্পাইল সময়ের চেয়ে রানটাইম রেটারে অবজেক্টের ধরণগুলি পরিদর্শন করেন। এটি চালু করার সময় এটি এক ধরণের উদ্ভাসিত ছিল, তবে সি # তে প্রতিবিম্বের ব্যবহার আরও বেশি বেশি সর্বব্যাপী হয়, উদাহরণস্বরূপ এএসপি। নেট এমভিসি প্রতিবিম্বটি ভারীভাবে ব্যবহার করে।
বৈশিষ্ট্য
বৈশিষ্ট্য গতিশীল টাইপিংয়ের একটি উদাহরণ। সংকলনের সময় আপনি কোনও শ্রেণিতে স্বেচ্ছাচারিত গুণাবলী যুক্ত করতে পারেন এবং তারপরে আপনি রানটাইম পরিদর্শন করেন (প্রতিবিম্বের মাধ্যমে) এবং এর উপর ভিত্তি করে অবজেক্টগুলি ম্যানিপুলেট করেন। এমইপি এর মতো কিছু হ'ল মূলত একটি গতিশীল টাইপ মডেলের উপর ভিত্তি করে একটি এক্সটেনশন ফ্রেমওয়ার্ক।
লিঙ্ক থেকে এসকিউএল, ইএফ এমভি।
বিভিন্ন লিনক ট্রান্সফর্মারগুলি রানটাইম অবজেক্ট হিসাবে অনুসন্ধানগুলি পরিদর্শন করে এবং ফ্লাইতে স্কোয়েল তৈরি করে। এটি রানটাইম সময়ে পরিদর্শন কোডের চেয়ে বেশি গতিশীল হয় না। কোডডম মুদ্রার অন্য দিক, যেখানে রানটাইম সময়ে কোড তৈরি করা যায়
রোজলিন
রোজলিন মূলত প্রয়োগ করে eval
, যা একসময় সত্যিকারের গতিশীল ভাষার সংজ্ঞা বৈশিষ্ট্য হিসাবে বিবেচিত হত।
ডায়নামিকdynamic
টাইপ C # এর মধ্যে সবচেয়ে স্পষ্টভাবে গতিশীল বৈশিষ্ট্য, এবং বহিরাগত বস্তু এবং সহজ এবং আরো উত্পাদনশীল ভাষার সঙ্গে মিথষ্ক্রিয়া উপার্জন এ বিজ্ঞাপনে করা হয়। তবে এটি সুবিধার্থে এএসপিএনভি এমভিসিতেও ব্যবহৃত হয়।
সর্বোপরি বৈশিষ্ট্য সুবিধার দেখায় যে গতিশীল মডেল নির্দিষ্ট সুবিধা আছে এমনকি স্থিতিমাপ ধরনের, কাঠামোগত ধরনের এবং টাইপ অনুমান সঙ্গে একটি স্ট্যাটিক ভাষায়।