Когда меня спрашивают: "Кем ты работаешь?", я никогда не отвечаю: "Программистом". Я начинаю на ходу придумывать названия вроде "Software Developper" :) А знаете, почему? Потому что услышав слово "Программист", люди обычно понимающе снисходительно кивают головой и теряют интерес к дальнейшему развитию этой темы. Ну разумеется, ведь у каждого человека найдется пару родственников и десять тысяч знакомых "программистов", которые трудолюбиво набирают html шаблоны для сайтов заказчиков, изредка разбавляя его хорошо всем известными , где "..." обозначают не код, а древний ужас, от которого волосы белеют и встают дыбом.
Я так особо и не понял, откуда взялось такое бесчисленное множество этих товарищей. Но как факт, они востребованы, они получают хорошие деньги (сравнимо, например, с моей зарплатой), следовательно они есть и их много. Ну а что, закон рынка. Из недавних примеров можно вспомнить небывалый спрос на бухгалтеров в середине девяностых, когда 90% населения России засела за самоучители :)
Собственно, к чему это я. Ничего особенного я, ни против быдлокодеров, ни против vb.net, ни, тем более, против php я не имею. Пес с ними, я себе на свой кусок хлеба всегда заработаю. Единственная претензия -- это постоянное увеличение в мире одноразового и неподдерживаемого быдлокода, решения на котором масштабируются только индусами путем переписывания всего проекта с нуля.
Но, возрадуйтесь же, эпоха быдлокодеров близится к своему закату! Warning, пророчество detected
Нет, мессией здесь будет не Ruby на своих рельсах. Это гениальная штуковина, которая позволяет клепать сайты со сверзвуковой скоростью, но она еще нескоро раскачает инертное IT-общество. Как минимум, сам Ruby как ЯП надо учить (хотя это несложно), и плюс он еще в постоянном апгрейде, как питон.
Я расскажу о java-клоне RoR, который народ, не мучая особо себе мозг, назвал TRAILS :)
Итак, что же такое Trails? Это веб-фреймворк / визард, который позволяет делать качественные J2EE веб-проекты с использованием БД. Если вкрадце, то
Trails =
Spring +
Hibernate +
Tapestry + Introspection
Страшно звучит? =) Да, если вы не пузатый j2ee-developper с зарплатой за 2,5 куска, то у наверняка вы уже инстинктивно отшатнулись от монитора. Вот вам еще один плюс: Trails позволяет даже самым маленьким почувствовать себя важным enterprise разработчиком =)
Давайте рассмотрим на примере, чем же так замечателен Trails и каким образом он может улучшить ситуацию с быдлокодом. А те, кто хорошо знают RoR, могут опустить этот участок текста. Итак, допустим, перед нами простейшая задача: сделать динамический сайт для коллекционирования и управления своими любимыми ссылками на всяческие интересные странички.
Вот как начинает планировать эту проблему матерый веб-программист:
- Надо создать в mysql базе табличку links с полями id, href, description
- Надо написать list.php, где будет отображацца список всех ссылок
- Надо написать add.php, где можно будет добавить новую ссылку
- Надо написать edit.php, где юзер может подредактировать ссылку
- Надо написать search.php, где юзер может поискать какую-нибудь ссылку
- Ну и, конечно, delete.php, где юзер может удалить ссылку
С небольшими вариациями (можно все запихнуть в index.php), работы для такой простой задачки не так уж и мало. А что, если выяснится, что надо использовать не mysql, а postrgresql? Плохой программер будет делать s/mysql_/pgsql_/g по всему коду (или как там), хороший сделает велосипедную библиотечку, такую же, как у миллиарда своих соотечественников.
Теперь давайте посмотрим, что нужно сделать для решения этой же задачи используя Trails:
- Написать класс Link: Link.java
- Указать в hibernate.conf.xml параметры коннекта к базе
Чувствуете разницу? Все. На выходе получаем полноценный J2EE (Spring/Hibernate/Tapestry/Log4J/bla-bla-bla...) проект, который масштабируется, легко поддерживается и работает быстрее, чем предыдущий. Качественный код, который после тебя могут легко доработать другие программеры. А ты сиди и раскрашивай себе css и html-шаблончики :)
А теперь, допустим, надо сделать, чтобы юзеры еще могли оставлять комментарии о каждой ссылке. В Trails мы добавляем Comments.class. А в верхнем проекте? ;)
Товарищи веб-программеры, попробуйте Trails прямо сейчас. Для этого на машине нужно иметь только JDK и установленный
maven2. Не нужен даже NetBeans, Eclipse, TomCat или MySQL. Просто воспользуйтесь
инструкцией, все зависимости (~50m) скачаются сами, и на
http://localhost:8080 уже сразу можно попробовать свой первый проект. Все вместе займет ~20 минут, но заставит по-другому посмотреть на мир :)
Время RoR еще придет. А Trails можно уже широко использовать сейчас, сокращая тем самым штат php/vb.net кодеров и уменьшая количество быдлокода на планете.