LINUX.ORG.RU

Java для драйверов устройств


0

0

Говорят, что Java не подходит для написания драйверов устройств. Говорят...

На основе виртуальной машины Squawk создана экспериментальная реализация Java-машины, работающая в ядре OS Solaris. Цель эксперимента - позволить использовать для написания драйверов устройств язык и платформу Java. Один драйвер уже успешно переписан с C на Java.

>>> Подробности

anonymous

Проверено: anonymous_incognito ()
Ответ на: комментарий от r

> От таких как ты защищаться придется - потому что выкидывают из последовательных нотификаций листенеров исключения, когда порядок листенеров неизвестен, да и вообще этот весь процесс может происхоить в EventQueue.

Проблема не в листенерах. Проблема в том, что я не могу кинуть исключение из переопределяемого метода, если до этого такого низя было сделать. Листенер - всего лишь пример.

Если уж собрался отвечать, то читай ветку целиком, а не выдерай фразы из середины.

anonymous
()
Ответ на: комментарий от anonymous

>Проблема в том, что я не могу кинуть исключение из переопределяемого метода, если до этого такого низя было сделать.

Это называется не проблема, а Manifest Static Typing. В C++ ты тоже будешь ругаться, что не можешь сделать метод виртуальным, если он виртуальным не объявлен? Если не хватает RuntimeException, сдизайнь код так, чтобы соответсвующее исключение было продекларировано и бросай. Если код чужой - подумай, возможно автор совсем не хотел, чтобы оттуда вылетало что-попало.

r ★★★★★
()
Ответ на: комментарий от r

> Это называется не проблема, а Manifest Static Typing. В C++ ты тоже будешь ругаться, что не можешь сделать метод виртуальным, если он виртуальным не объявлен?

Фига себе аналогия. В случае эксепшенов - это один из примеров реализации, в случае с плюсами - как бы это сказать.. вообще принцип применения виртуальных функций.

> Если код чужой - подумай, возможно автор совсем не хотел, чтобы оттуда вылетало что-попало.

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

Поясню. Тебе не кажется странным повышать качество кода программиста ограничениями языка (с определенным снижением гибкости), а не объяснением почему и что делать плохо?

Хотя ладно. Ты прав, я - нет, на том и остановимся.

anonymous
()
Ответ на: комментарий от anonymous

Можно выбросить рантаймовское исключение откуда угодно без проблем.

MS
()
Ответ на: комментарий от anonymous

>В случае эксепшенов - это один из примеров реализации, в случае с плюсами - как бы это сказать.. вообще принцип применения виртуальных функций.

Где? Нет никакой разницы. Это декларация, сигнатура метода, манифест, который в статически типизированных языках ограничивает область применения этого метода. virtual в плюсах показывает, что метод может иметь модифицированное поведение. abstract что должен. Декларированный Exception что может бросать исключения определенных типов. Отсутсвие - что не должен - этого никто не ждет. Все это (статическая типизация, Design-by-Contract, Liskov Substitution Principle, Covariance/Contravariance, etc) имеет близкие цели. То что ты говоришь - это прямой случай из LSP (смотри про исключения): http://en.wikipedia.org/wiki/Liskov_substitution_principle

r ★★★★★
()
Ответ на: комментарий от anonymous

>Тебе не кажется странным повышать качество кода программиста ограничениями языка (с определенным снижением гибкости), а не объяснением почему и что делать плохо?

В теории - кажется. На практике нет. Я учавствствую в проектах на ~500 KLOC которые делаются годами, люди меняются. Я сам уже не помню, что я написал 3 года назад. Опыт показывает что прицип "просто не передавай сюда неправильных значений" - не работает в жизни.

r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.