আরেকটি দিক:
জাভা একটি কঠোর বৈশিষ্ট্য সহ একটি অচল ভাষা। এর অর্থ হ'ল অন্যান্য ভাষাগুলিতে (সি / এফ রুবি, লিস্প ইত্যাদি) বেশ খোলা বা গতিশীল এমন অনেকগুলি বিষয় কঠোরভাবে নির্ধারিত।
এটি একটি সাধারণ নকশার সিদ্ধান্ত। "কেন" উত্তর দেওয়া কঠিন (ভাল, কারণ ভাষার ডিজাইনাররা ভেবেছিলেন এটি ভাল হবে!)। "কীসের জন্য" এটি বেশ পরিষ্কার: এটি কম্পাইলারকে প্রচুর ত্রুটি সনাক্ত করতে দেয় যা সাধারণত কোনও ভাষার জন্য বেশ ভাল বৈশিষ্ট্য। দ্বিতীয়ত, এটি ভাষা সম্পর্কে তুলনামূলক সহজ যুক্তিযুক্ত করে তোলে। উদাহরণস্বরূপ, জাভা ভাষায় (উপগ্রহ) প্রথাগত যথার্থতা প্রমাণ করা তুলনামূলকভাবে সহজ; তুলনা হিসাবে, এটি রুবি এট আল এর মতো গতিময় ভাষায় কার্যত অসম্ভব।
এই চিন্তাভাবনাটি ভাষায় অনুভূত হয়, উদাহরণস্বরূপ, কোনও পদ্ধতি ফেলতে পারে এমন সম্ভাব্য ব্যতিক্রমগুলির বলবত ঘোষণা, অস্পষ্ট একাধিক উত্তরাধিকার এড়ানোর জন্য পৃথক প্রকারের interface
বনাম class
ইত্যাদি। এটি কীসের জন্য (সংকলনের সময় ত্রুটি পরিচালনার ক্ষেত্রে দৃ focus় ফোকাসযুক্ত একটি স্থিতিশীল অপরিহার্য ওওপি বাস্তব-ভাষা) সেই জিনিসগুলি আসলে বেশ মার্জিত এবং শক্তিশালী powerful এগুলি তাত্ত্বিক (বিজ্ঞান) ভাষাগুলির নিকটবর্তী হয় যা উদ্দেশ্যমূলকভাবে কেবলমাত্র অন্য কোনও বাস্তব-ভাষার ভাষার চেয়ে আগে এই বিষয়গুলি অন্বেষণ করার জন্য তৈরি করা হয়েছিল (সেই সময়, মনে রাখবেন)।
So. একটি কঠোর void
প্রকার থাকা একটি স্পষ্ট বার্তা: এই পদ্ধতিটি কোনও সময়ের, পিছু ফেরত দেয় না। এটা কি হয়। সর্বদা কিছু ফিরিয়ে দেওয়ার জন্য প্রয়োগকারী কর্তৃক এটিকে প্রতিস্থাপন করা হয় আরও অনেক গতিশীল আচরণের দিকে নিয়ে যায় (যেমন রুবি যেখানে প্রতিটি ডিফের একটি স্পষ্ট বা অন্তর্নিহিত রিটার্ন মান থাকে, সর্বদা), যা সম্ভাব্যতা এবং যুক্তির পক্ষে খারাপ হবে; বা এখানে অন্য কিছু প্রক্রিয়া ব্যবহার করে ব্যাপক ফোলাতে।
(এবং এনবি, রুবি (উদাহরণস্বরূপ)) এটি অন্যরকমভাবে পরিচালনা করে এবং এর সমাধানটি এখনও জাভার মতো ঠিক গ্রহণযোগ্য , কারণ এটির সম্পূর্ণ ভিন্ন দর্শন রয়েছে example উদাহরণস্বরূপ এটি একটি বিশাল ফোকাস দেওয়ার সময় উইন্ডো থেকে পুরোপুরি সম্ভাব্যতা এবং যুক্তিবাদকে ছুঁড়ে ফেলে while ভাষার অত্যন্ত উচ্চতর প্রকাশ্যতা ive)