воскресенье, 12 октября 2008 г.

Warfare 1917

Прикольная игрушка про первую мировую:

Дизайнеры поработали на славу! Выглядит очень симпатично. Чем больше типов солдат, тем больше надо думать, кого выпускать, особенно, когда пойдут танки. Главный ресурс не деньги, а время. Суть игры: захват вражеской территории или подавление морали.

Совместимость

Радостное известие: мы не обязаны поддерживать обратную совместимость в JavaFX! С одной стороны может показаться, что это - минус, так как старые приложения работать не будут. Но с другой стороны - это огромный плюс, так как язык может быстро развиваться, изживая плохо спроектированные API. Посмотрите на flash! Отсутствие backward compatibility помогло побороть апплеты и захватить рекламную нишу. И большое распространение flash-игр и flash-анимации тому причина.

Каталоги и пакеты

Вот чего я не понимаю, так это оператора package, декларирующего к какому пакету относятся классы из файла. Да! Мы обязаны поддерживать обратную совместимость в Java, но ведь в JavaFX это не так! 10 лет разработки на Java показали, что хранить в одном каталоге классы из разных пакетов неудобно, особенно для maintainer'а. Компилятор языка ищет исходные файлы для неоткомпилированных классов, используя каталоги. Во всех IDE считается, что пакет однозначно должен соответствовать каталогу. Так почему же для JavaFX приходится писать package blah.blah.blah; в каждом скрипте? Это же скриптовый язык! Надо минимизировать код и генерить имя пакета в зависимости от каталога, в котором находится класс. Естественно, я имею в виду не абсолютный путь к файлу, а относительный к source root проекта.

Гибкость vs портируемость

Несмотря на кажущуюся мощь JavaFX всегда чего-то будет нехватать. Но тут у нас большой плюс - поддержка Java. Очень легко использовать уже готовые наработки, да и писать логику на Java проще и привычнее. И всё это доступно из JavaFX. Мне кажется, что на JavaFX будут писаться смешанные MVC-приложения, где модель и контроллер пишутся на Java, а View - на JavaFX. Хотя, тут мы можем и потерять, так как декларируется, что JavaFX приложения будут работать везде, включая мобильные устройства. Как известно, на них Java (пока) отличается от desktop-версии, поэтому смешанные приложения могут на КПК неработать...

Реанимация

Язык Java пытаются оживить c помощью JavaFX. Под это дело наши питерские коллеги из AWT заточили JDK 6, чтобы поддержать прозрачные окна. Братья славяне добавили в NetBeans поддержку JavaFX. Другие перцы доделали plug-in для браузеров, чтобы он стягивать апплеты со web-страниц и показывать их в отдельных окнах, что легко позволяет делать widgets, как в Vista. Этот проект, кстати, делался под эгидой Google. Другой важный компонент JavaFX, который разрабатывался под эгидой Sun, - это SceneGraph. Наши ребята из Java2D приложили свою руку к созданию различных эффектов, которые воздействуют на отрисовку элементов сцены. На скриптовый язык F3, разработанный в Sun, скопом навалились все архитекторы языка Java и теперь он сам на себя не похож: он теперь компилируемый, хотя и остался декларативным. До выпуска остался месяц, так что скоро посмотрим, что получилось...
Когда напишут документацию - не знаю...

Joshua Bloch уехал

Вчера прошла встреча JUG с Джошуа Блохом, на которую я зарегистрировался, но придти так и не смог, так как Юля сейчас по субботам учится. Стал искать, кому бы Мишку часика на 3 оставить, но так и не нашёл. Таня уехала в деревню к маме, Че просто не смог, Ру в больнице сейчас, а у Серёги ребёнок болеет да и проблемы в семье...
Надо будет послушать его выступление в записи:
- More Effective Java (слайды и запись)
- How to Design a Good API and Why it Matters (слайды и запись)