Вісім міфів про Java

February 28th, 2009


« Еволюція мов програмування   |   Мова JAVA розробка програмного забезпечення в середовищі Internet »

Дещо все-таки залишилося за бортом, зокрема перевірка умов правильності виконання програми, “програмування за контрактом”, шаблони і ін.

В Си++ існує засіб перевірки умов, зване asset. Ця функція перевіряє деяку умову, що задається програмістом, на “істину”. Якщо умова “помилкова”, asset зупиняє програму і указує, що допустимі умови роботи порушені, при цьому компілятор при створенні кінцевої версії програми виклики asset відкидає. У Java подібної можливості не існує.
Зрозуміло, можна використовувати перевірку умов і генерацію виключень на їх основі, але в результаті всі ці перевірки потраплять у виконуваний код програми.

Існує могутніша технологія, ніж asset. Це Design By Contract, “програмування за контрактом”, що дозволяє спростити створення великих додатків, які використовують раніше створений код. Java же не підтримує і “програмування за контрактом”.

Шаблони класів в Си++ - це можливість генерації коду “під” вказаний користувачем клас (насправді розробники Java цілком усвідомлено відмовилися від шаблонів, вважаючи, що від них більше проблем, чим користі. - Прим. ред.). Колекція об’єктів, реалізована за допомогою шаблону, компілюватиметься кожного разу для кожного типу об’єктів, що зберігається в цій колекції.
Типова колекція об’єктів в Java зберігає екземпляри класу Object, предка всіх Java-класів.

Програміст, витягуючи об’єкти з колекції, вимушений використовувати приведення типу, щоб скористатися своїм “робочим” класом. Такий додаток працює чудово до тих пір, поки інший програміст випадково не додасть в колекцію екземпляр абсолютно іншого класу.
Тоді на етапі компіляції помилки не виникає, але вона відбувається пізніше, при витяганні екземпляра і спробі приведення його до невірного типу.

В теперішній час Java продовжує розвиватися. Не виключено, що вже в найближчому майбутньому ми побачимо в ній деякі із згаданих вище можливостей.

Java коштує купу грошей


Tags: , , , , , ,

Загальна інформація


Схожі записи

Категория: Загальна інформація |

Комментарии