среда, 4 февраля 2009 г.

Delphi - мертвый/вымирающий язык?

Очень часто встречаю в форумах и блогах записи с текстом "Delphi мертвый язык", или "Delphi вымирает". И не навящево советуют переходить на другие языки. Причем такие фразы кидают люди, которые, как они говорят, когда то давно программировали на нем. Так не ужели Delphi мёртвый язык?

У каждого языка есть географическая карта его использования. Исторически сложилось, что для Delphi большая часть пользователей находятся в восточной Европе и России. Одна из причин - преподавание языка в университетах. Т.е. студента научили, он пришел на производство и там продвигает то, чему его научили.
Но вернемся к нашим "баранам", т.е. к тем "кто пользовался и советует переходить" на языки типо Java, C++, C#. Основной аргумент, что это все "тупо", на яве (сишарпе) мне стало проще писать, да вы нифига не развиваетесь, да вы.... Ну ёлы-палы, если уж вы программировали на Delphi, то должны были понять для каких задач он и где нужно применять. Вы перешли на решение других задач, а для них делфи не подходил. Вот поставим задачу - написать складскую программу для магазина. Программа состоит из базы данных и клиентской части. А клиентская часть это окна , таблички, рюшечки. И что? Вы будите писать это на яве? или на c#, ищя библиотеки для работы с базами данных, нужные вам классы для отрисовки не стандартных компонент, или будите сами их вырисовывать, сидеть ночами. Проще взять Delphi, накидать в редакторе окон, компонент, которых в сети очень много. Немного логики и все работает. И не надо вам изобретать велосипедов, практически все, о чем  вы мечтали есть уже для Delphi. Многие ведь кричат - " используйте framework`и, в них все есть". Так delphi с не одной сотней компонент тоже можно считать framework`ом.
Применение Delphi - это программы для простых "чайников", с вменяемым интерфесом, писать которые можно быстро. Я не спорю, сервисы или какие то критичные вещи лучше писать на других языках. Кроссплатформеность это удел Java и QT. А обычная пользовательская программа - это делфи.

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

К аргументу "язык плохо развит/развивается". А чего вам в нем не хватает ? Ну да, до выхода Delphi 2009 всем не хватало юникода.  Другие жалуются на не достаточную поддержку ООП, в сравнении с тем же С++. Третьим не хватает поддержки 64-битных процессоров.
А какое вам ООП нужно для "офисных"  задач ? Зачем делать монстра, не понятного для других. На с++ можно такое написать на классах, что знающему человеку придется долго разбираться.  За 7 лет использования Delphi, янаписал 2-3 класса: два в университете, один не так давно. Не надо так сильно на них заморачиваться. Классы не есть "наше все" .
64 бита не держит - да, есть такое. Под 64-битные операционки не оптимизировать. Но работают ведь программы и там. Только очень хитро замудренные вещи не работают. Опять же оно вам надо?
Язык развивается, но медлено. Обещают в будущем году сделать  и поддержку 64битности.

Наиболее распространенные программы, написанные на Delphi, это The Bat! и Total Commander. Им уже сколько лет, и ничего. Делфи им не особо мешает. Для тотала правда есть небольшие минусы - юникод и 64 бита. Но все равно, программы отличные.

Суть всего выше изложенного сумбура - каждому языку своё место. Т.е. не забивайте микроскопом гвозди.

12 комментариев:

  1. Наиболее существенный минус у Delphi - это, на мой взгляд, цена=(. И в России он так распространён, только потому, что многие из тех кто его используют, лицензий не покупают.;)

    ОтветитьУдалить
  2. Как бы он не был хорош... без поддержки он долго не выживет (Borland отказался от поддержки, скинул финансово подконтрольной компании, короче лажа...).
    Да и в область open-source надо было переходить, хотя бы частично. Часто работодатель думает что проще нанять побольше спецов по бесплатной технологии чем закупать лицензии.

    BTW, "Найти человека, который знает Delphi гораздо проще, чем знающего яву" ??? Половина дельфистов перебрались в Яву и Дот-нет. (Не согласен что студентов можно рассматривать как нормальную рабочую силу) Проще найти среди Явистов и Нетчиков:) это да.

    И вообще сейчас идет активный процесс миграции из десктопа в веб, те же корпоративные системы которые работают с БД уже делают на вебе. А в вебе Дельфи бесполезен.

    Так что ребята которые хоронят Дельфи правы, к сожалению.

    ОтветитьУдалить
  3. Касательно "А в вебе Дельфи бесполезен."
    С этим можно поспорить.. :]

    ОтветитьУдалить
  4. >Вы будите писать это на яве? или на c#, ищя библиотеки для работы с базами данных

    Автор писал на C# приложения для работы с БД? Для C# достаточно встроенных компонент, чтобы написать приложение, типа складского учета. Рющечки, которые есть в инете для делфи, по большому счету на фиг не нужны, так клиентов интересует функциональность приложения, а не "пузыри".

    ОтветитьУдалить
  5. Нет, не писал. С c# знаком поверхностно. На пути изучения его у меня стоит тот факт, что для запуска программы нужно тащить с собой фреймвок. Очень раздражает. даже кушать не могу (С)

    ОтветитьУдалить
  6. Фреймворк... это который идет в XP SP2, Vista и W7?
    Не вижу в этом препятствий. Причина надуманная.

    ОтветитьУдалить
  7. в хп он идет как опциональный пакет. в старших версиях он уже вроде как встроеный. Другой момент - разные версии. т.е. если я напишу на 3.5 то в хп точно надо ставить, или прилагать к дистрибутиву 300 с лишним мегов.

    ОтветитьУдалить
  8. Если Ваше приложение под 3.5 стоящее, то 300Мб для клиента не помеха.

    ОтветитьУдалить
  9. Автор, ты реально "2-3 класса написал" ? )))

    ОтветитьУдалить
  10. да, большая часть была написана еще в универе на этапе изучения ООП. в delphi написал только один класс, обертку над TExcel . просто ставятся такие задачи, где классам делать нечего или какой то пользы не несут. Опять же я не учитываю за класс новый экземпляр TForm получаемый при создании нового окна

    сейчас, перейдя на C++, дорабатывая colorer, по крайней мере стал дорабатывать существующие классы. на примере этой библиотеки видно, что классы это удобно.

    ОтветитьУдалить
  11. Дима Зачётный31 октября 2010 г., 7:18

    >Вы будите писать это на яве?
    Будим, будим :-) ибо, Дельфи - это швейцарский нож, а ява - сундук с инструментами. С помощью швейцарского ножа дом не построишь, разве что скворечник.

    ОтветитьУдалить