О Java
13.03.2007 21:41:45Saying that Java is nice because it is multiplatform is like saying that anal sex is nice because it works on all genders.
Кто придумал не знаю, говорят даже, что старо, но смеялся.
Saying that Java is nice because it is multiplatform is like saying that anal sex is nice because it works on all genders.
Кто придумал не знаю, говорят даже, что старо, но смеялся.
Выяснилось страшное — джава джаве рознь. В прошлый раз я притаривал Джаву Боенги, а в последний Джаву Блаван. Причем, первая, чисто технически, джавой и не является. Про блаван все как-то больше интересного написано, причем, он у меня слабой обжарки, а боенги был вроде как посильнее маленько.
Еще раз осознал, что в кофе я нифига не понимаю. Пытаюсь распробовать блаван, вроде бы есть в нем интересное, но все же я как-то больше привык к тому, что кофе должно быть жестким, крепким и черным. Круто прожареным. А блаван не такой, вкус у него есть, а жесткости вроде как не наблюдается. К такому кофе я не привык.
Но джаву точно надо распробовать, блаван так блаван. А ну как действительно станет свободной Java? К этому же надо быть готовым.
В самом прямом смысле! Сегодня получил первый зачет на эту сессию по «Проектированию программных систем». Сдавали последние две работы, но неспортивно, аж обидно. Когда у преподавателя болит голова, сдавать неинтересно. А то я так старался на Форте, так старался с шести часов утра… Что даже самому понравилось.
На Форте (Википедия, Wikipedia) последняя лаба была, там мы еще раз реализовывали замечательный конечный автомат, который делали еще на самой первой лабе на C или Java какой-нибудь (хи-хи, а кто-то на Ragel :)). Естественно, попутно изучали этого зверя (до этого я с ним общался года три назад, наверное, когда ковырялся с nncron). Извиняюсь, но зарулил Форт Ragel по полной программе, разница между препроцессором для C/C++/Java/т.д. и простым до безобразия, но чудовищно эффективным по сути понятием словаря с виртуальной машиной, видна сразу.
Калашникова реализовывал вот по такой простой методике. Скажите мне, в каком еще языке это вообще возможно? По сути, я начертил табличку переходов в ASCII графике, да воспользовался парой определений из указанной статьи. И все работает. Без тонны if, then, else, case, switch, goto и прочей шелухи. Очень это радостно.
Ну и зачёт, конечно. Как-никак, а ведь если призадуматься, то это последняя сессия. Дальше уже такого цирка не будет. Эх.
Цитата с сайта Михаэля Франца:
Verification also ensures control-flow safety, but this is a comparatively trivial task. Conversely, verifying that the data flow is well-typed is rather complex. The JVM bytecode verifier uses an iterative data-flow analysis algorithm for this task, and unfortunately, this algorithm has an execution complexity that rises quadratically with program length. This gives rise to my prediction that we will soon witness denial-of-service attacks on mobile-code systems that will exploit the algorithmic complexity of the verifier itself: By sending a legal, but difficult-to-verify program to a server virtual machine, one can keep that server occupied for an inordinate amount of time, effectively making it unavailable for useful work. In my experiments, a 4kByte JAR file containing Java code with worst-case verification complexity required more than 15 minutes of verification time on a 2.4 Gigahertz Pentium IV processor.
Только что дочитал сабж. Очень жалею, что не завершил ранее, текста немного, но реально еще раз показывает, насколько в глубокой заднице находится наша замечательная IT-индустрия. Год публикации, чисто для справки, 1997.
Хотя еще больше это показывает то, какие технологии были разработаны в рамках семейства Oberon и когда. Динамическая реоптимизация всей системы — в каком-то уголку сознания у меня давно такие мыслишки шатаются, а тут на тебе — уже сделано. Эх.
Наткнулся на интересное исследование по сабжу.
Кто такой Java man? У вас возникли ассоциации с J2SE? Забудьте про них и просвещайтесь:
Java man
сущ.
первобытный яванский человек, питекантроп
Спасибо Стасу. 🙂