Скорость и качество работы программиста
От: Michael7 Россия  
Дата: 30.03.07 18:18
Оценка: 85 (20) +2
Наткнулся на любопытный рассказ человека, про качество, скорость и производительность труда на разных платформах и языках (Delphi, VS, Qt, Java). Интересно, есть ли у кого схожий опыт или опровержения приведённых сведений. Ну и вообще комментарии.
Взято отсюда

Вставлю и я свое слово и расскажу как у меня сейчас дела обстоят...

Я разрабатывал и разрабатываю ПО как для Windows, так и для Linux. Для Linux сейчас стали действительно больше проектов заказывать, НО очень часто с оговорками типа "а можно сделать так чтобы оно работало и на Windows и на Linux?". А так как заказчик всегда прав приходится примеряться к сегодняшним реалиям...

1. Изначально разрабатывали проекты на Delphi, но со временем перешли на MS Visual Studio (использовали VB и немного C++), что дало более медленную разработку (примерно на 10-15%), но повысилось качество (примерно на 15-20%) и уменьшились наши затраты на поддержку уже написанного кода; 2. При появлении проектов под Linux и не только (были заказы под Solaris и совсем чуть чуть под Mac OS) пришлось переучиваться полностью на C++ и Qt (совсем редко Gtk). Для веба стали использовать python. Это позволяло разрабатывать кроссплатформенные решения, но затраты на кроссплатформенность составляли почти 30% от стоимости проекта и качество упало где то примерно на 10-15%; 3. Шло время и делались разные попытки уменьшить затраты на кроссплатформенность. Была попытка перевести все на python + qt, но провалилась из-за того, что python крайне неохотно масштабируется, да и скорость работы для некоторых задач оставляет желать лучшего. Далее пробовали mono, но первые тесты показали, что затраты на кроссплатформенность хоть и уменьшаются, но не на столько, чтобы оправдать переход. До анализа масштабируемости и производительности дело даже не дошло. Пробовали и другие в т.ч. и коммерческие решения... не пошло... Начали смотреть на Java... поначалу очень не понравилось... памяти ест много, GUI какой-то ущербный (по стилю), хоть полностью кроссплатформенный и разрабатывать на нем очень удобно, да и медлительная она какая то тогда показалась... впали как говориться в ступор... спас случай. Как то нужно что-то было скачать через Torrent, пришлось скачать Azureus. Удивило что он на Java и так быстро работал, а самое главное GUI приятное. Попробовали поставить на Windows и Linux... интерфейс одинаковый и что самое главное не ущербный (по стилю), работает быстро и там и там. Тут нас посетила мысля, что мы наверное Java не умеем готовить... начали анализировать из чего и как сделан этот Azureus и в скором времени обнаружилось, что он построен на платформе Eclipse RCP. Начали копать дальше и...; 4. Сейчас все проекты за самым малым исключением разрабатываются на Java с использованием Eclipse RCP как платформы и Eclipse IDE как средство разработки. Оказалось, что Eclipse RCP богат не только приятным интерфейсом — это действительно ПЛАТФОРМА для разработки клиентских приложений. Для веба используем JBoss Application Server + Liferay Portal. Затраты на кроссплатформенность уменьшились с 30% от стоимости проекта до 1%, т.е. до того, чтобы запустить приложение на Windows и Linux И проверить их корректное функционирование. За два года как мы используем Java проблем с кроссплатформенностью почти небыло, те что были можно пересчитать по пальцам и решались менее чем за 30 минут и обычно были связаны с тем что разработчики использовали \, в не /. Так же мы получили прирост скорости разработки (примерно на 20% по сравнению с MS VS) и прирост качества (примерно на 10% по сравнению с MS VS).

Сразу попытаюсь ответить на вопрос "А как меряли скорость разработки и качество?". Отвечу утрировано, так как полное описание всего потянет если не на книгу, то на толстую брошюру: 1. Скорость — самая сложная в оценке величина. Оценивалась по времени разработки примерно однотипного функционала (основной вклад в оценку), а так же еще нескольким субъективным показателям связанными с оценкой самих разработчиков; 2. Качество — оценивалось банально по трекеру. Т.е. количеству обращений с ошибками + корреляция этих ошибок с временем затраченным на их локализацию и исправление. Так же оценивалось количество обращений за разъяснениями по использованию решения;

Теперь мои мнения по вопросу платформ Windows и Linux: 1. Windows — хорошая и самое главная привычная платформа. Наработанные решения по пользовательскому интерфейсу и наличие мощных коммерческих средств разработки. Достаточно хорошая поддержка разработчиков и плохая поддержка самой операционной системы. Если не брать в рассмотрение Windows 9x, то Windows достаточно надежная ОС с достаточно посредственной локальной безопасностью и никакой сетевой безопасностью. Очень хорошая поддержка работы с различными устройствами отображения, начиная с монитора и заканчивая полотерами. При нахождении ошибок в ОС или библиотеках приходится вслепую искать обходные решения, потому как скорость их исправления очень часто оставляет желать лучшего, да и если на эти исправления ориентироваться, то требования к ОС Windows могут занять не одну страницу печатного текста. За Windows нужно платить деньги и не малые в расчете, например, на 100 машин при сравнимой с Linux стоимостью поддержки (стоимость поддержки была получена практическим способом, т.е. сравнивалось ВСЕ затраты на то чтобы одна компания функционировала на Windows, а другая на Linux). Очень не малые деньги за средства разработки и СУБД от MS, хотя использовать свободные никто не запрещает так же. И самое противное — это выкручивание рук с переходом на новые версии Windows с обязательной их оплатой;

2. Linux — хорошая хотя и не очень привычная пока платформа. Наработанные, но разномастные решения по пользовательскому интерфейсу. Отсутствие привычных для Windows средств разработки, пока мало качественных, даже коммерческих, средств разработки. Поддержка разработчиков никакая, точнее ее нет, но это почти полностью компенсируется желанием сообщества помогать друг другу и наличием большого количества форумов и wiki. Linux достаточно надежная ОС с хорошей локальной безопасностью и настраиваемой сетевой безопасностью. Очень посредственная поддержка устройств отображения, отсутствие эффективной системы цветовой коррекции (если не брать в рассмотрение закрытые драйвера от NVIDIA) и других фич необходимых для конструкторских и издательских систем. Так как почти для всего имеются исходные тексты то не приходится возиться с обходными решениями для ошибок в библиотеках. Мы просто их исправляем и отправляем патч разработчикам. Зависимость от разных версий библиотек прописываются при сборке пакета вашего приложения (такой подход обычно не вызывал проблем у наших заказчиков). За Linux desktop, если нет большого желания можно не платить. За linux server мы обычно убеждаем заказчиков заплатить за поддержку. За коммерческие средства разработки, если кому не хватает свободных, платить прийдется не более чем за такое же средство разработки для Windows. Богатый выбор СУБД как бесплатных, так и коммерческих. Стоимость поддержки сравнима с Windows, т.е. отличается не более чем на 2-3% (в стоимость поддержки не включена стоимость приобретения Windows или Linux).

PS: кол-во выполняемых проектов в год 7-10, такой стоимостью чтобы загрузить 30 разработчиков и получать прибыль в размере 30%. все остальное коммерческая тайна.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.