Re: Сравнение по производительности Рефала с другими языками


Subject: Re: Сравнение по производительности Рефала с другими языками
From: Mikhail Kovtun (mkovtun@cds.duke.edu)
Date: Thu Feb 26 2004 - 20:42:57 MSK


Добрый день всем!

Мне кажется, что в этой дискуссии упущен один важный момент: обсуждается
абстрактное общечеловеческое понятие удобства языков программирования, а
примеры приводятся из индустриального программирования. А в
индустриальном программировании "удобство" означает совсем другой набор
качеств. В частности, индустриальное удобство включает (а) развитые
библиотеки и (б) наличие большого количества людей, умеющих пользоваться
языком и библиотеками.

Можно сколько угодно спорить о том, удобнее ли GUI писать на Рефале или
на Яве, но пока в Рефале нет библиотеки, эквивалентной по возможностям
явскому swing'у, выбор из этих двух возможностей будет в пользу Явы.

Вряд ли кто назовет Visual Basic удобным языком (если вообще назовет
языком), но с индустриальной точки зрения он являлся (и пока еще
является) удобным. Потому что имеется куча готовых решений для всяких
мелких задач, потому что не составляет труда найти программиста,
умеющего всем этим пользоваться, потому что этого программиста можно
будет заменить на полпути.

Индустриально программирование -- это работа коллектива из деятков,
сотен и даже тысяч программистов над одним программным продуктом. И тут
именно менеджер выбирает средство разработки. И один из первых вопросов
-- сможет ли он найти тысячу спещиалистов, и когда из этой тысячи
несколько сотен сбегут в соседнюю компанию -- как быстро сможет он их
заменить. Если нет положительного ответа на эти вопросы, никто не станет
вкладывать деньги в разработку.

Второй вопрос -- это "time to market". Как быстро вложенные средства
начнут приносить отдачу? Пусть есть стопроцентная уверенность, что для
задачи Рефал в десять раз лучше, чем C++, но нужно потратить год, чтобы
создать инфраструктуру (адекватные библиотеки) -- все равно будет выбран
C++, потому что иначе конкурент за полгода сляпает что-то на C++, и
поезд уйдет.

Кстати, там, где давление таких соображений не очень сильно, могут
приниматься и более "разумные с общечеловеческой точки зрения" решения.
Пример -- эриксоновский Эрланг (очень похожий на Рефал). В
программировании для телефонов конкуренция устроена по-другому, и люди
все равно должны быть переучены (крупные фирмы имеют свои учебные
центры, и вновь пришедшие программисты переучиваются в обязательном
порядке). Так что иногда возникает возможность попробовать
нетрадиционные решения. И оказалось, что обраотка сообытий (а телефонная
программа только и состоит из обработки событий) на функциональном языке
описывается ничуть не хуже (а по мнению авторов Эрланга -- намного
лучше), чем на объектно-ориентированном языке.

Так что пока Sun поддерживает Яву, Microsoft (не к ночи будь помянут)
поддерживает C#, и все они вместе -- C++, эти языки и будут
"индустриально удобными", что бы там ни говорили поклонники ML'я или
Haskell'я. Но если, скажем, IBM решит поддерживать Haskell и создаст
инфраструктуру (среду программирования, центры по обучению, систему
сертификации, и т.д. и т.п.) -- то окажется, что Haskell -- это то, о
чем человечество всю жизнь мечтало, и удобнее ничего не придумать.

-- 
Best regards,

Mikhail



This archive was generated by hypermail 2b25 : Mon Oct 25 2004 - 21:24:59 MSD