пятница, 21 декабря 2007 г.

IT-гонки глазами программиста

«Поставил новую Visual Studio 2008 – супер... Автодополнение яваскрипта... Debugger ms ajax-скриптов... Наконец то это появилось... Дождались... А ещё релиз linq... О нем же все говорят... Надо срочно впихнуть в свой проект... А ещё на днях вышел ASP.NET MVP... Ну и что, что CTP? Оно же действительно облегчает разработку веб-сайтов...».
Сегодня, когда новые технологии появляются чуть ли не каждый день, необходимо вдвойне задумываться прежде чем их применять. Нам подсовывают workflow, presentation foundation, silverlight, asp.net mvc, все больше разговоров об Astoria, ходят слухи о .net 4.0. А нужно ли это всё? Для проекта, который начался 2-3 года назад, используется .net 1.1, написанно куча библиотек и сторонних плагинов. Перевести его на .net 2.0 практически невозможно. Скажете что это бло давно и надо начинать писать приложения с использованием технологий, которые сейчас актуальны? Вот вам другой пример: Microsoft Silverlight. Сначала он назывался WPF/E. Вышла первая версия, 1.0. В это же время разрабатывалась 1.1, которая обещала стать ещё лучше, легче, быстрее. А что теперь? Версией 1.0 из-за большого количества java script, хотя есть и другие проблемы, никто не пользуется, версия 1.1. так и не вышла и преобрела гордое имя Silverlight 2.0, пока что CTP.
В итоге не разобравшись с одной версией какого-либо продукта, нам приходится переходить на другую, новые фичи, новые баги, опять приходится всё учить если не с начала, то с середины всего выученного и освоенного.
Ч то выбрать для нового проекта? Ведь никто не гарантирует что завтра Microsoft не объявит о прекращении работы на .NET Framework и начале эпохи новой, не менее грандиозной и революционной технологии? А ведь тот же .NET Framework за последние версии остался без изменений: в версиях 3.0 и 3.5 добавились только новые технологии и осталась совместимость с 2.0. ASP.NET MVC – если посмотреть внимательно ¬– отличній инструмент в умелых руках, но ничего нового там нет, просто теперь не надо писать код, который уже написали до нас. Ведь раньше 100% кода писали руками, а теперь «умные» IDE генерируют нелалую часть исходников. Но... Но программы лучше от этого не становятся. От выхода нового инструмента уровень программиста не растёт. На любом форуме найдётся «гуру», которые считает себя таковым только потому, что у него заработала программа «hello, world» и он написал(а) свой первый калькулятор, конечно же с использованием уже готового шаблона «калькулятор», где остаётся только пожправить расположение кнопок.
Не стоит использовать какие-либо, только потому, что они новые и удобные. Не зря же многое отмирает ещё на этапе CTP. Да, стоять на месте тоже не надо, но прежде чем делать – оглянитесь, не стоит использоовать бензопилу вместо обычного кухонного ножа.
P.S. Автор всего вышесказанного никого этим обидеть не хотел. Все ситуации являются вымешленными, а совпадения – ссдучайными.

4 комментария:

Mamont комментирует...

Поддерживаю. Нужно определиться, какиме именно технологии будешь юзать, изучить их до тонкостей. Менять их следует только если есть что-то принципиально более эффективное и удобное.

Артур Ракицкий комментирует...

Не согласен с такой характеристикой новых технологий:
---
В итоге не разобравшись с одной версией какого-либо продукта, нам приходится переходить на другую, новые фичи, новые баги, опять приходится всё учить если не с начала, то с середины всего выученного и освоенного.
---
Это вопрос Configuration Management-а, а не предпочтений или "политических" предпочтений разработчика/архитектора (которые "разбираются" и "осваивают"). И любые проблемы с используемым в проекте технологиями - от неумения выполнять указанную роль. Ни больше - ни меньше. Точно также, любые проблемы с качеством фич продукта - вопрос тестирования (или QA). Надеюсь, это никто не ставит под сомнение? :)

e0ne комментирует...

2 Артур Ракицкий:
в своём посте я хотел скзать, что прежде чем что-либо использовать, на это "что-то" надо посмотреть более чем поверхностно.

Артур Ракицкий комментирует...

2 e0ne:
true