Вісім міфів про Java
February 28th, 2009
« Еволюція мов програмування | Мова JAVA розробка програмного забезпечення в середовищі Internet »
Дещо все-таки залишилося за бортом, зокрема перевірка умов правильності виконання програми, “програмування за контрактом”, шаблони і ін.
В Си++ існує засіб перевірки умов, зване asset. Ця функція перевіряє деяку умову, що задається програмістом, на “істину”. Якщо умова “помилкова”, asset зупиняє програму і указує, що допустимі умови роботи порушені, при цьому компілятор при створенні кінцевої версії програми виклики asset відкидає. У Java подібної можливості не існує.
Зрозуміло, можна використовувати перевірку умов і генерацію виключень на їх основі, але в результаті всі ці перевірки потраплять у виконуваний код програми.
Існує могутніша технологія, ніж asset. Це Design By Contract, “програмування за контрактом”, що дозволяє спростити створення великих додатків, які використовують раніше створений код. Java же не підтримує і “програмування за контрактом”.
Шаблони класів в Си++ - це можливість генерації коду “під” вказаний користувачем клас (насправді розробники Java цілком усвідомлено відмовилися від шаблонів, вважаючи, що від них більше проблем, чим користі. - Прим. ред.). Колекція об’єктів, реалізована за допомогою шаблону, компілюватиметься кожного разу для кожного типу об’єктів, що зберігається в цій колекції.
Типова колекція об’єктів в Java зберігає екземпляри класу Object, предка всіх Java-класів.
Програміст, витягуючи об’єкти з колекції, вимушений використовувати приведення типу, щоб скористатися своїм “робочим” класом. Такий додаток працює чудово до тих пір, поки інший програміст випадково не додасть в колекцію екземпляр абсолютно іншого класу.
Тоді на етапі компіляції помилки не виникає, але вона відбувається пізніше, при витяганні екземпляра і спробі приведення його до невірного типу.
В теперішній час Java продовжує розвиватися. Не виключено, що вже в найближчому майбутньому ми побачимо в ній деякі із згаданих вище можливостей.
Java коштує купу грошей
Tags: додаток, код, машина, мова, платформа, програма, програмування
Загальна інформація
Схожі записи
Категория: Загальна інформація |









