Почему Delphi «умирает» или «программист – не читатель, программист – писатель»

Здравствуйте, уважаемые хабражители! С наступившим Новым годом! Желаю вам удачного кодинга, безбажного кода, понимающих руководителей, понятливых подчиненных и терпения при разборе кода, написанного предшественником.

Хочу поделиться некоторыми мыслями по поводу уменьшения популярности горячо любимого мною языка программирования — Delphi. Итак, не будем тянуть кота за яйца, а возьмем быка за рога.

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

Значит, чтобы получить как можно больше профита, требуется уменьшить затраты на
  • железную составляющую
  • софтовую составляющую
  • обучение операторов
  • разработку информационной системы

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

Объектный Delphi, выросший из процедурного Pascal-я, имеет очень низкий порог вхождения, обеспечивает минимальную зависимость от сторонних библиотек и предоставляет доступ к данным, хранящихся в различных СУБД.

Если при проектировании системы взаимосвязь между железом и Delphi слабо прослеживается, то следующие три условия профита связаны с Delphi очень сильно.

Софтовая составляющая, иными словами операционная система. Delphi позволяет писать программы, работающие в MS Windows, которая набирала популярность бешеными темпами — поставить пиратскую Windows не проблема. Как оно там… J3QQ4…

Обучение операторов Если оператор знает основы работы в Windows, то можно обойтись простой инструкцией, на которой указано, какую кнопку для чего нажимать.

Разработка информационной системы Низкий порог вхождения действительно за полгода позволял студенту или группе студентов написать ИС, соответствующую скромным требованиям заказчика.

Именно низкий порог вхождения и сыграл роковую роль в судьбе Delphi. Мой вольный краткий пересказ того, как же это все произошло.
  1. Delphi становился все популярнее, внедряется поддержка новых СУБД
  2. количество проектов реализованных с помощью Delphi становится все больше
  3. количество Delphi-программистов увеличивается
  4. начинается глобальный (не только в СССР-России, но и в США) кризис обучения технических кадров
  5. требования к информационным системам усложняются в соответствии с развитием технологии
  6. разработчики Delphi ошибаются в направлении развитии технологии (dotnet был еще не актуален)
  7. заказчики не могут отличить хорошего Delphi-программиста от плохого — отсутствуют центры сертификации
  8. количество проектов, написанных недопрограммистами увеличивается
  9. увеличивается число проектов, требующих поддержку (изменения в коде/логике)
  10. заказчики все чаще и чаще слышат, что «проще переписать, чем исправить/доделать»
  11. причем это говорят как плохие программисты, не разобравшиеся в коде
  12. так хорошие, у которых волосы шевелятся от увиденного быдлокода
  13. разработчики Delphi не успевают за новыми технологиями, хотя это не критично, но...
  14. все больше и больше народу/заказчиков/руководителей начинают думать что «Delphi — это плохо»
  15. конкуренты Delphi не спят, а выкатывают все больше и больше «вкусных» тортов технологии
  16. хорошему программисту без разницы на чем писать, они «уходят» на другой язык, хороших Delphi-программистов становится все меньше и меньше
  17. Delphi застывает в развитии, приносит убытки, хозяева меняются один за другим
  18. появляются слухи о кончине закрытии разработки языка
  19. заказчики для новых проектов стараются выбрать другой язык, ибо надоело переписывать с нуля одно и тоже, без надежды что это все будет работать в будущем, и что у кода проекта будет поддержка
  20. ВУЗы прогибаются под рынок, Delphi начинают исключать из программ обучения студентов
  21. Delphi все реже упоминается в технических кругах, многие считают обзывают его «умершим»

Таким образом, основные причины временного заката Delphi:
  • низкий порог вхождения
  • отсутствие сертификационных центров
  • ошибки менеджмента
  • отсутствие «рекламы» в СМИ, вернее присутствие антирекламы
  • отсутствие поддержки крупных вендоров, в отличии от конкурентов

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

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

Конечно для Delphi все не так плохо. Сейчас у языка есть адекватный хозяин, язык не шатко, не валко развивается. Но вот доверие заказчиков/руководителей вернуть тяжело. Правде те, кто все же остался верен языку, более осторожны. Например, при наборе в команду более тщательно пытаются выявить уровень подготовки, не гонятся за новыми релизами языка. Delphi 7.0 многих устраивает (как и Windows XP :) Говорят, Гислер с Total Commander-ом до сих пор на второй версии сидит.

Для примера, попробую описать текущее состояние дел в моем городе. Небольшая кучка контор, которые знают о друг-друге если не всё, то давно. Все, без исключения, кормятся из бездонной государственной казны — тендеров для создания электронного правительства проводится множество. В рамках этого, проекты разрабатываются в основном на C# и Java. Зоопарк СУБД прилагается: IBM DB2, MS SQL, Oracle, FireBird. В команде: один-два гуру-работяги, 3-4 студента или свежеиспеченных выпускников, два-три мертвого груза. При чем это не всегда разные люди. Команда это от 2 до 10 человек на 2-4 проектах. В среднем из пяти проектов: один — новый, два — доработка старого, два непонятное что-то с чем-то, как правило делопроизводство (SAP, DocsVision) или пуско-наладочно-железячные работы.

Так вот, почти всегда новый проект пишется либо на C#, либо на Java. Доработка старого — это почти всегда мелкая доделка/переделка/ремонт написанного на Delphi.

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

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

Я же в свою очередь, призываю фанатов Delphi не сидеть сложа руки, а пробовать популяризовывать его в своих кругах. Поможем немного менеджерам Embarcadero исправить их ошибки и поддержим наш любимый язык.
Share post

Comments 295

    +20
    Сразу оговорюсь что люблю Делфи и регулярно на нём пишу всякго рода програмульки для себя. В посте
    Таким образом, основные причины временного заката Delphi:
    низкий порог вхождения

    Низкий порог вхождения разве когда-то был минусом?
    Вы имхо не описали главную беду из за которой делфи отстал из жизни лет на пять, и из за которой многие кто пишут на этом замечательном языке по прежнему сидят в седьмой версии… А именно бажность последующих выпусков в купе с невнятными нововведениями
      +5
      В свое время (лето 2009-го года), причину падения популярности Delphi мне назвал человек, до сих пор преподающий Delphi и периодически общающийся с разработчиками CodeGear, которые сейчас вошли в компанию Embarcadero.
      Когда у компании Borland были финансовые трудности, они выпустили акции, которые разошлись по большой цене. Компания Microsoft, желая лидировать в области разработки сред и языков программирования, скупила через подставные фирмы около 40% акций, получив право блокировать принимаемые советом директоров решения.
      А далее все просто. Delphi целенаправленно не давали развиваться, параллельно переманивая разработчиков с компании Borland в команду C#.
      Все остальное сделало время. Поскольку никто и ничто в нашем мире не развиваясь не может оставаться на лидирующих позициях долго.
      А низкий порог вхождения сейчас есть и в других языках. И это не так сильно им мешает развиваться.
        0
        Везде заговор!
        Delphi целенаправленно не давали развиваться, параллельно переманивая разработчиков с компании Borland в команду C#.

        А хоть маленькие-то пруфы есть? Хотя бы того, что разработчики из Borland перешли в Microsoft?
        Вот что есть в Википедии:
        В конце 2002 года появились слухи о возможной покупке Borland Microsoft-ом. Эти слухи не подтвердились, но, по неподтверждённым данным, в какой-то момент около 5 % уставного капитала Borland всё-таки принадлежало Microsoft.
          +3
          > Хотя бы того, что разработчики из Borland перешли в Microsoft?

          Ну насчет главного идеолога Delphi вроде бы известно, но он ведь из C# не стал делать MS Delphi и слава богу.
            +1
            Делать Delphi не стал, но приличное количество идей позаимствовал.
              +2
              Может всё же повторно реализовал свои же идеи? :)
            0
            Обычная практика — перекупать звезд.
            Перекупить Хайльстберга — это зло, а Аршавина — обычное дело :)
              0
              Мне тоже слабо верится, но если предположить что это правда, то не удивительн очто нету пруфов. Были бы пруфы — было бы судебное дело против MS.
              –8
              Поломались они гораздо раньше. Более того, они изначально были мертворожденными, это как солома, которая горит ярко, но недолго.
                +1
                Бред какой-то говорите, для своего времени это была революция в разработке, MS был дааалеко позади…
                  0
                  У MS уже был Visual Basic
                    +4
                    Революция — это VCL. Это тогда было действительно инновацией.
                –1
                Мне кажется, что у Microsoft нет цели убить другие средства разработки. Даже наоборот: чем больше сред разработки, тем больше рынок, больше программистов. Если бы они хотели убить всех и вся, начали раздавать Visual Stuido бесплатно (так они убили Netscape Navigator, выпустив бесплатный IE).
                  +6
                  Visual Studio Express
              +6
              По моему только на Хабре таких разборов полетов делфи было не один, и не два…

              Ну а то что в противовес языку часто приводится C#, так Delphi тут конкурировать проблематично. У C# за спиной поддержка Microsoft, да и прочие плюшки вроде WPF. Тут Delphi малесь не на своём поле играет, MS с собственным языком под собственную систему по технологиям часто опережать будет. ИМХО
                +13
                Все плюшки Delphi утекли в C# после ухода Хейлсберга из Borland в Microsoft.
                  +4
                  Хейльсберг пришел в Майкрософт в 96-ом. .NET зарелизили в 2002-ом что мешало Борланду выпустить за всё это время революционный продукт.
                  Что это за компания такая что уход одного человека так всё ламает. Ведь уже были тогда и Java, Java SWT, Java Beans, Visual J++ идеи лежали на поверхности, но Борланд своими неурядицами в конце 90-х и бездарным менеджментом просто проспала своих клиентов и рынок. Им было мало денег они хотели на ALM-рынок, а на дойную корову средства разработки времени, денег, людей не осталось.
                    +2
                    Вы недооцениваете влияние одного человека на будущее всей компании и продукта, пока есть «вдохновитель» все живет, когда за дело берутся «голые» менеджеры все идет…
              • UFO just landed and posted this here
                  +22
                  Что-то в последнее время повыползали как бы попытки проанализировать причины непопулярностисмерти Delphi. Господа, давайте прекратим пинать мертвую лошадь и пойдем дальше.

                  В конце концов, Римская империя умерла, СССР распался…
                    +3
                    Вот именно «ВУЗы прогибаются под рынок» в таком мелком масштабе и есть проблема нашего ИТ. В буржуйских вузах учат ML и хаскел, а у нас мечатся между паскалем, дельфи и джавой.
                      +1
                      У нас на первом курсе ассемблер и С++. Мне кажется вполне логичная программа.
                        +6
                        На разных специальностях разная программа обучения, но в любой из них делфи лишний.
                          +4
                          Ага, ага. И ни капли функционального программирования. В этом и проблема советской школы — она застряла в 60ых, когда только-только появились «программирующие программы».
                            –2
                            Давать параллельно с ООП функциональное программирование — многовато для одного года, не думаете?
                              0
                              Я думаю, что маловато. Потому что есть ещё пролог, который было бы тоже неплохо преподавать.
                                +8
                                Люди теорию вероятности 5 курсов понять не могут, а вы их за 8 месяцев хотите научить четырем разным идеологиям программирования (процедурное, функциональное, логическое, объектно-ориентированное).
                                Проблема даже не изучить синтаксис (что за 8 месяцев зубрёжки вполне реально), а освоить и переварить каждую из идеологий. А это — очень сложно.
                                  +2
                                  Проблема даже не в 8 месяцах зубрёжки разных идеологий, а в том что первые курса три забиты под чистую абсолютно ненужными предметами для будущих Программистов.
                                    +2
                                    С этим у нас, кстати, всё хорошо. Из явно лишнего — история (её проходили и в школе) и история университета. Остальное полезно и нужно, хотя бы в ознакомительном порядке (по 1 семестру).
                                      +6
                                      Ознакамливать должны в школе. В университете должны наполнять голову концентратом из профессиональных знаний и навыков.
                                      В соседней с Россией стране историю среднестатистический студент сдаёт 3 раза. Один раз в 9м, один раз в 11м, и один раз в универе. И 1 из 1000 что-то помнит после экзамена.
                                      Не та политика образования, учиться должно быть интересно, так чтобы обучаемый сам хотел учиться, а не что бы его заставляли.
                                        +1
                                        Зря минусуете, человек дело говорит. Я сейчас на первом курсе, учусь по достаточно далёкой от IT технической специальности, однако в первом семестре у нас была история (кстати, завтра её сдаю), которая технарю на работе до лампочки (а для общего развития была выдана в полном объёме в школе).

                                        НИЧЕГО глубже, чем в школе пройдено не было. А дальше меня ждут «Психология и педагогика», «Экономика», «Экология», «Политология», «Философия» и куча других прекрасных дисциплин, а уже только потом (по сути, начиная с третьего курса) я буду изучать дисциплины, нужные мне как специалисту — «Средства электроавтоматики в гидро- и пневмосистемах», «Надежность и диагностика гидромашин, гидро- и пневмоприводов» и тому подобные.
                                          0
                                          Когда учился я тоже так думал. Сейчас я уверен, что человек, а особенно работник умственного труда, должен быть развит всесторонне.
                                            0
                                            Я не против преподавания той же истории технарям, я говорю, что это абсолютно не имеет смысла, если заново проходить в универе школьную программу.
                                              +1
                                              скажу вам как кандидат в кандидаты технических наук: история и философия науки — самый полезный предмет, изученный мной за последние 10 лет.
                                                0
                                                Для меня, как для аспиранта технической специальности и абсолютного НЕгумманитария это самый отвратительный и бесполезный предмет, на который придется потратить кучу ценного времени…
                                                  +3
                                                  между тем, кандидат любых наук, пусть даже филологических, опираясь на данный предмет, может утверждать, что торсионные поля — чушь и ересь.
                                                  напротив, незнакомый с данным предметом технический специалист может этими самыми полями увлечься настолько, что потеряет не одну кучу ценного времени.
                                                  +1
                                                  Очень хорошо показывает, на сколько качественно развито образование. Тематические дисциплины, которые предполагается применять в работе менее полезны левого предмета. А потом в менеджеры по продажам или преподы, ага…
                                                    +1
                                                    Тем не менее, аналог кандидата наук «там» — Ph. D.
                                                    Что в переводе означает «доктор философии».
                                                      +2
                                                      Ну так это название должности такое просто.
                                                      В идеале выпускник ВУЗа должен иметь способность работать по специальности. Или заниматься научной деятельностью опять-же, по специальности.
                                                      И если левые предметы вроде истории (для тех. специальности) оказываются наиболее полезными в обучении, то обучение пошло не в ту сторону.
                                                +2
                                                >Сейчас я уверен, что человек, а особенно работник умственного труда, должен быть развит всесторонне.

                                                Для всестороннего развития есть 11 классов полного среднего образования. В высшем учебном заведении человек должен получать выбранную им специальность, а не тратить время на «школьные» дисциплины.
                                                  0
                                                  Вот это я и имел в виду, впрочем, тема не об этом
                                                  +2
                                                  Изучать «все стороны» кроме одной (действительно нужной) целых 2 года — это не всестороннее образование, а «многобокое» :) Нельзя ведь сказать, что однобокое, но главного направления явно не хватает.

                                                  Специализация практически всегда лучше универсальности. И не зря люди поступают не просто в универ, а на вполне определённый факультет. Иначе было бы только один факультет — всесторонний.

                                                  Я только со своей колокольни могу судить. Принимаем студентов со специальностью «программист» (разные названия в разных вузах). Продолжать наверное не стоит. Об уровне качества образования выпускников уже писалось не раз. Причём практически без разницы, что за человек — бывает, что это отличник по жизни, золотая медаль в школе, красный диплом в вузе, победитель олимпиад… Но к работе человек не готов. И долго ещё не будет готов. 5 лет коту под… всестороннее образование.

                                                  Всесторонне человек должен развиваться сам. Образование во все стороны из под палки только отбивает любознательность и тягу к новому (да и времени на расширение кругозора после такой учёбы уже нет — нужно спешно подтягивать ту сторону, которой не уделялось должного внимания). В универе должны учить тому, за что человек платит, тому, чему обещали научить (см. название специальности при поступлении). Любые отмазки про «всестороннее» — это оправдание ненужных дополнений, которые втюхивают до кучи. Поди проверь качество всестороннего образования! Нет критериев. А вот по специальности — легко. Почти ноль. Но отмазка «ну мы же дали вам фундаментальное, всестороннее» — действует. Пока. Надеюсь дожить до лучших времён. Когда дополнения будут именно дополнениями. После главного. Когда средний бал будет вычисляться так: 90% по основному предмету, и 10% на все оставшиеся стороны. Мне не нужен выпускник с пятёрками по философии и экологии — мне нужен полноценный член команды после двух месяцев испытательного срока. У нас на бесплатных курсах за пару месяцев изучают программирование глубже, чем в вузе. И пользы больше. Сорри за нытьё. У кого что болит, тот о том и… ноет :)

                                                  Кстати, я не всю жизнь был программистом. Работал несколько лет кабельщиком-спайщиком, связистом-телефонистом. Учился на это дело. Та же ситуация. Только я познавал её с другой стороны баррикады. Быстро понял, что мог сэкономить несколько лет жизни (себе и преподавателям :) ), если бы сразу на курсы пошёл. Даже интересно — а бывает по другому? :)
                                                    0
                                                    Специализация практически всегда лучше универсальности
                                                    Ну это кому как :)
                                                    Меня лично, люди-универсалы впечатляют намного больше, чем полуроботы-узкоспециалисты, как в истории, так и в личном опыте :)
                                                    Ну да это философский вопрос :)
                                                    Мне не нужен выпускник с пятёрками по философии и экологии — мне нужен полноценный член команды после двух месяцев испытательного срока. У нас на бесплатных курсах за пару месяцев изучают программирование глубже, чем в вузе. И пользы больше.
                                                    Вам просто не нужен выпускник университета — вам достаточно того же выпускника курсов/пту/техникума :)
                                                    Поэтому ваши претензии к программе вузов, имхо, слишком необоснованны. Предъявлять же претензии к качеству обучения, которое несомненно в очем плачевном состоянии, имхо, бесполезно, пока государство не заинтересовано в его качестве, а само наличие этого самого высшего образования сейчас больше мода, чем необходимость :)
                                                      0
                                                      Могу лишь повторить, что я не против всестороннего образования. Просто этим человек должен заниматься сам. Меня и программистом-то взяли «за кругозор и эрудицию», как мне потом признались через какое-то время после собеседования. Точнее, взяли тестером, а потом я уже доказал на деле, что могу работать программистом.

                                                      У нас многие руководители отделов выпускники «курсов/пту/техникумов». Это показательно, на фирме 250 человек работает (в русских филиалах). Отшибают у человека волю и тягу к саморазвитию напрочь в наших вузах. Ну это я так интерпретирую, у вас может быть другое объяснение найдётся. Я не замкнут на своём опыте, чужой мне тоже интересен.
                                                +3
                                                Ознакамливать должны в школе. В университете должны наполнять голову концентратом из профессиональных знаний и навыков.

                                                В школе должна быть база. Профессиональный концентрат — в пту. А в университете должны давать _высшее_ образование и готовить интеллигентного интеллектуала со стойкой сформированной жизненной позицией и умеющего при этом что-то делать более-менее профессионально :)
                                                  0
                                                  Скорее не ПТУ (они же лицеи), а техникум (они же колледжи) должен давать профессиональный концентрат.
                                                    +1
                                                    Беда только в том, что преподавать у нас за частую идут люди которые не смогли себя реализовать профессионально… Это было и советское время, но сейчас это особенно актуально, так как зарплата преподавателя в основном в несколько раз ниже чем специалиста в какой-то области…
                                                      –2
                                                      У нас полстраны уже этих интеллигентных интеллектуалов. Давайте лучше чему-нибудь полезному будем учить, а не молиться на Всесторонне Развивающее Высшее Образование.
                                                        0
                                                        >готовить интеллигентного интеллектуала

                                                        В последнее время слово «интеллигентный» и его однокоренные сородичи вызывают у меня стойкое отвращение. Так что лучше просто «интеллектуал».
                                                          0
                                                          читайте как «культурного» (ну или хотя бы воспитанного) интеллектуала :)
                                                    +4
                                                    Предметы «Риторика» и «История права», ага. Но отменить их и заменить программированием смысла нету, имхо. Программистом нужно созреть, за неделю с нуля выучится практически нереально, дополнительные пары выше нормы только отобъют желание, а те, кому интересно и вне вуза сами выучатся.
                                                      +2
                                                      Те кому интересно и без вуза сами выучаться, примеров множество даже среди моих знакомых. А вот вуз не из каждого закончившего сделает программиста(есть у нас несколько особ с «высшим» образованием, одна из которых на свою специальность пошла потому что название понравилось и теперь при любой проблеме хочет переустанавливать винду, а второй искал слоты на материнке под видеопамять при этом заявляя что он скорее железячник чем программист) — тут либо есть задатки и будешь программистом, либо никакие вузы не помогут.
                                                    +2
                                                    Имхо, нормальная теория вероятности даст фору по сложности всем четырем идеологиям, вместе взятым. Особенно если пытаться ее применять на практике (стохастическое моделирование, скрытые марковские модели, и тп). Хотя за год их, конечно, не выучить.
                                                      +4
                                                      Имхо нормальный матан даст фору любому терверу, да и идеологии просты и понятны(хотя их далеко не 4) любому кто способен логически мыслить.
                                                      Тут скорее должно быть разбиение на специальности программистов. Добавлять НУЖНЫЕ им предметы, например Линейную алгебру тем кто будет работать с 3d, некоторые разделы физики для тех кому интересно написание физических моделей, и так далее и тому подобное.
                                                      В идеале, студент на первом-втором курсе осваивает основы программирвоания(идеологии, языки, стили, методы, etc), а дальше выбирает нужные ему предметы которые идут не голыми(биохимические процессы программисту не настолько интересны как их реализация), а в контексте программирования.
                                                      Но это всё утопия, и будут наши дети учить всё подряд становясь узкими специалистами широкого профиля, если, конечно, трактор не доедет до ближайших соседей)
                                                        0
                                                        (хотя их далеко не 4)

                                                        Конечно. Просто в сообщении речь шла про 4.

                                                        Добавлять НУЖНЫЕ им предметы, например Линейную алгебру тем кто будет работать с 3d

                                                        Я, конечно, учился на экономиста, но если бы учился на программиста, например веб-девелопера, был бы очень огорчён, если бы меня обделили курсом 3д. =)
                                                          0
                                                          что то все про сопромат молчат — видимо даже вспоминать страшно :)
                                                            +3
                                                            видимо, все сдавшие уже женаты и тут не сидят :))
                                                        +2
                                                        Извините, а что эти оболдуи на дневном отделении тогда делают?
                                                          +2
                                                          Будьте снисходительнее. Таких — 90%. И нету смысла навязывать. В институте даже те, кто хорошо учится делают это ради оценок. И это — не плохо. Не надо грузить институтом. Те, кто чего-то стоит и чего-то хочет добится сделают это вне стен института. Но для этого их не надо перегружать ненужным «Домашним заданием», тупыми рефератами и принципами некоторых тупоголовых преподавателей, которые неправильно преподают.
                                                            +3
                                                            Вот поэтому я и считаю, что совковые и постсовковые ВУЗы нихрена ИТ не учат. Потому что тем, кому интересно, приходится учить вне стен, а тем, кому не интересно — достаточно тупых рефератов. А если ИТ учить вне стен, то нафига эти стены? Корочки клеить? Да нафиг мне эти корочки сдались.
                                                              0
                                                              >Корочки клеить?
                                                              А Вы как думали?
                                                              >Да нафиг мне эти корочки сдались.
                                                              Вам не сдались, а многие хотят их иметь.
                                                              >В институте даже те, кто хорошо учится делают это ради оценок.
                                                              Ну не все, конечно. Но большинство «отличников» просто умеют хорошо крутиться-вертеться. Получить будущему «программисту» за чужую курсовую «отлично» – это реально. Многие так и делают.
                                                              >А если ИТ учить вне стен
                                                              Ну нелиповые IT-шники и делают… Университет, это так, для «общего развития ума».
                                                                0
                                                                Поправочка:
                                                                >Получить будущему «программисту» за чужую курсовую «отлично» – это реально (при том что он ничего не понимает)
                                                                  0
                                                                  Многие не хотят ах иметь, а хотят чтобы их сотрудники их имели, более того, для некоторых вещей (лицензирование, например) закон требует, чтобы сотрудники корочки имели, да и в тендерах-конкурсах встречаются требования об образовании сотрудников.
                                                          0
                                                          У нас в УПИ преподавали пролог, ничего в нем не понял) Магистрам преподавали гораздо более полезный лисп (они правда тоже, по рассказам, ничего не поняли). Но это все было мельком и как-то несерьезно, основа — все равно C++ и ассемблер, т.к. готовили из нас системных программистов.

                                                          А насчет западных универов и обильной функциональщины — это иллюзия, там тоже лисп и т.д. вытесняется явой, самый банальный пример — даже в MIT о scheme больше не рассказывают.
                                                          +1
                                                          Ну у меня например был 1 семетр лиспа и 1 семестр пролога; помимо остальных дисциплин по специальности.
                                                          По работе с ними так и не сталкивался, но кругозор расширил, общее представление имею, выяснил круг задач да этих парадигм.
                                                          В случае появления реальной задачи, буду знать с чего начать и куда копать, а это имхо самое главное.
                                                        0
                                                        Ассемблер на первом курсе имхо слишком. У нас на втором давали, так больше половина сдать не могла, а потом еще повтор на четвертом, но уже с большим уклоном в железо — опять у народа были проблемы серьезные. А тут на первом курсе…
                                                          0
                                                          На втором в смысле после основательных курсов по высокоуровневым ЯП и ООП.
                                                        +1
                                                        >В буржуйских вузах учат ML и хаскел
                                                        О Б-же, я был о них лучшего мнения.
                                                        +11
                                                        количество проектов, написанных недопрограммистами увеличивается

                                                        Оно достигло высшей точки и делфи завалили экскрементами, здесь сиграли свою роль и вузы с туповатыми быдлокодерами вместо преподавателей, и тормознутость да бажность самого делфи, и низкий порог вхождения(каждый студент мог сваять в редакторе красивенький интерфейс с кнопками на пол экрана и огромными надписями неизвестными шрифтами) что в отличае от того же VB пошло языку только во вред, но что делать — таково наследие паскаля.

                                                        заказчики все чаще и чаще слышат, что «проще переписать, чем исправить/доделать»

                                                        Я сопровождаю одну бухгалтерскую программку написаную на делфи, одну утилиту для подписи электронных документов(право, она почти так и называется), и поверьте, чем это, простите, говно, дорабатывать проще новое сделать.

                                                        ВУЗы прогибаются под рынок, Delphi начинают исключать из программ обучения студентов


                                                        ВУЗы взялись за ум, и перестали готовить вместо программистов чёрт знает кого. Молодцы.

                                                        все больше и больше народу/заказчиков/руководителей начинают думать что «Delphi — это плохо»

                                                        Делфи, в его существующем варианте, это не плохо — это очень плохо. Если бы из него вкинуть весь мусор, убрать этот дурацкий редактор форм плодящий гавноприложения, выкинуть избыточный синтаксис паскаля и переписать компилятор на что нибудь нормальное, то может быть и вышло что, а так — мёртвый язык.
                                                        И да, как писали выше, он не просто так умер, он умер от неконкурентоспособности, ведь от того что Вы с детства любили Вашего старенького жигулёнка, Вы же не бежите покупать новую Ладу Калину?
                                                          +16
                                                          Если бы из него вкинуть весь мусор, убрать этот дурацкий редактор форм плодящий гавноприложения, выкинуть избыточный синтаксис паскаля и переписать компилятор на что нибудь нормальное, то ...

                                                          Извините, но Питон уже есть
                                                            0
                                                            Именно об этом и речь) Уже есть отличные языки, зачем ковырять чей то труп для того чтобы сделать ещё один(и не факт что что-то выйдет)
                                                            PS а кроме питона есть ещё много других отличных языков
                                                              +1
                                                              Питон в данном случае имя нарицательное =)
                                                              0
                                                              MFC?
                                                                0
                                                                Не, MFC — это жуткая смесь ОО и процедурного стилей. Совсем не пример хорошей технологии.
                                                                  0
                                                                  MFC — тонкая обёрка над WinAPI (классическая фраза). В меру удобная, потому что обёртка, в меру неудобная, потому что тонкая :)
                                                                  Очень удобна для изучения WinAPI, потому что не мешает до него добираться, и помогает не повешаться/застрелиться/выпить яду (нужное подчеркнуть) в процессе изучения.

                                                                  После слияния в экстазе с более молодой и продвинутой ATL, старенькая MFC существенно похорошела. Новый набор контролов (давно ожидаемый, заменивший кучу сторонних расширений) добавил старушке привлекательности. Интерфейс а'ля MS Office, риббоны и прочая…

                                                                  Чем MFC лучше WPF, например? (Ещё раз, я не говорю «лучше», я говорю «чем лучше», для кого-то минусы перевесят плюсы, но это же не значит, что плюсов совсем нет). Например, визард сгенерит кучу вариантов заготовки вашего приложения за секунды, нужно лишь выбрать нужные опции. А мой коллега, агитирующий за WPF, лишь за неделю сделал маленькую часть всего одной такой заготовки, к тому же глючную. И без таких давно стандартных фич, как горячие клавиши, хинты в статусбаре и т.п. Оно может и не надо сейчас кому-то, но в корпоративной среде… Там всё стабильно, если не сказать старомодно. WPF ещё долго нарабатывать ту базу кода, что давно отлажена в MFC.

                                                                  Впрочем, сам я смотрел в сторону WPF давненько. На тот момент там ещё не определились даже с таким важным механизмом, как маршрутизация команд, народ делал свои альтернативные реализации. Называть настолько недоделанные вещи фреймворком… обман, имхо. Это так, набор классов, конструктор лего, комплект «сделай сам». WPF скорее сама новое API, нуждающееся в обёртке, чем библиотека над каким-то API.

                                                                  Вот… А MFC вещь завершённая, зрелая, чем и хороша. От чего и помрёт. После зрелости не избежать старости. Но она прожила долгую славную жизнь. Хоть и не вся слава была доброй :) О её смене пока нельзя этого сказать, и долго ещё нельзя будет. (Я пока присматриваюсь к Qt, тоже долгожительница, к тому же ей всё равно где жить.)
                                                                    0
                                                                    MFC это бесчеловечное надругательство над Си и Си++ с кучей костылей, проблем и просто ну совершенно угребищным синтаксисом, названиями макросов и тому подобным ужасом. WPF в этом плане просто ну на порядки лучше даже чисто архитектурно. Сегодня начинать проект на MFC — это самоубийство! Раньше то конечно необходимость во многих этих костылях была нужна, но сегодня?
                                                                    Qt хоть и немногим моложе MFC, но её в 2005 году фактически переделали с нуля! И код, написанный на Qt, выглядит в сто раз лаконичнее и понятнее, чем на MFC. Да и ногу себе прострелить куда сложнее.
                                                                      0
                                                                      Я сразу сказал, почему MFC неудобная — потому что это хоть и обёртка, но тонкая. Большинство её проблем — прямое следствие проблем WinAPI, с его синтаксисом и отсутствием лаконичности с понятностью.

                                                                      Опять же, нежелание Microsoft переписать MFC с нуля тоже вполне объяснимо. Не их стиль. Их фишка — совместимость. Я качал древние проекты на MFC с codeproject.com, компилил в Visual Studio, которая старше на несколько поколений — и всё работало. Правки очень редки и минимальны, типа заменить UINT на UINT_PTR в одном месте.

                                                                      Проблемы же от стрельбы в ногу — ну, это уже проблемы самого программиста. Просто не давайте чужому коду оружия: я всегда пишу отдельную DLL, где располагается реализованный мною функционал, а GUI в EXE отдельно стоит и не вмешивается, там никакой стрельбы и других рискованных занятий, всё работает как часы, баги редки до ужаса, вот в чём весь ужас. Поэтому если я в DLL стреляю себе в ногу, я точно знаю, что виноват сам, и не на кого валить свой промах. Ну или попадание. В ногу :)
                                                                        0
                                                                        Переписывать MFC просто без толку, её нужно пометить как deprecated и выпилить вообще из новых студий, что кажется и было сделано.
                                                                        WinAPI тоже уж очень страшным вышел: мусора там over 9000, да и синтаксис страшен.

                                                                        >Проблемы же от стрельбы в ногу — ну, это уже проблемы самого программиста. Просто не давайте чужому коду оружия: я всегда пишу отдельную DLL, где располагается реализованный мною функционал, а GUI в EXE отдельно стоит и не вмешивается, там никакой стрельбы и других рискованных занятий, всё работает как часы, баги редки до ужаса, вот в чём весь ужас. Поэтому если я в DLL стреляю себе в ногу, я точно знаю, что виноват сам, и не на кого валить свой промах. Ну или попадание. В ногу :)

                                                                        Хм… вот поэтому те фреймворки, которые всякую низкоуровневую хрень инкапсулируют от конкретного программиста лучше, поэтому Qt в разы лучше MFC спроектирована. Поэтому она столь кроссплатформенная, поэтому там и по ногам сложнее стрелять, ибо стрелять во все в обычных случаях даже не требуется.
                                                                          0
                                                                          MFC в Visual Studio 2010 есть, в ней и пишу.

                                                                          Огорчает, что Microsoft вообще сокращает поддержку C++. Встроенное тестирование, Calculate Code Metrics, и т.п. — всё это доступно лишь для C#, Visual Basic, на крайняк в C++/CLI. Наличие поддержки последнего говорит о том, что это чистый маркетинг, а не технические сложности.

                                                                          Т.е. MS весь C++ пометила уже как deprecated.
                                                                            0
                                                                            Они и C99 отказались поддерживать, и вообще двигают только свою платформу .NET.
                                                                            C++ сейчас активно Intel+Nokia продвигают, а также частично Apple способствует. Поэтому ничего с плюсами не случится от того, что MS выкинут их поддержку.
                                                                              0
                                                                              Со мной что-то случится :) Плюсам-то да, ничего не будет. Хуже того, что уже есть. Отток молодых имею ввиду. Или скорее отсутствие притока.

                                                                              И мне придётся перепрыгивать с Visual Studio. Не помру, справлюсь, иногда юзаю Eclipse, в чём-то он лучше, но там в основном на Java пишу, некорректное сравнение. В «детстве» юзал Borland C++. Кое-что вообще без IDE пишется прекрасно, в Notepad++. Но вообще подсел я на эту студию, давно вне конкуренции для меня лично.

                                                                              Впрочем, переход на .NET, C#, WPF совершенно не исключаю. Когда (и если) дозреют. Тонкие ценители перечисленного — не ругайтесь. У каждого свои критерии для оценки. О причинах «недооценки» WPF, к примеру, я писал. Это совершенно не означает, что мне не нравится технология. Наоборот, для графики я собираюсь опробовать WPF в С++ обёртке или как внешний процесс.
                                                                                0
                                                                                >Со мной что-то случится :) Плюсам-то да, ничего не будет. Хуже того, что уже есть. Отток молодых имею ввиду. Или скорее отсутствие притока.

                                                                                На форумах кучу вопросов по Qt задают, все хорошо идет.

                                                                                >Наоборот, для графики я собираюсь опробовать WPF в С++ обёртке или как внешний процесс.

                                                                                Тогда уж лучше qml попробовать, там как раз С++ родной язык для оберток
                                                                                  0
                                                                                  Начал читать про qml с вашей подачи. Ваше же, Первые шаги с QML.

                                                                                  Забавно, не так давно приходила в голову мысль «эх, было бы что-нибудь типа XUL или XAML, но на основе YAML. И вот оно :)

                                                                                  Кстати, в комментах там многие недовольны, типа что за JSON, надо всё на XML. Предлагаю вам такой аргумент в подобных спорах: „JSON — подмножество YAML, языка не на много моложе XML, живёт с 2001 года, RFC 2822 (который основан на знаменитом RFC 822 от 1982 года). Просто менее популяризированный, но гораздо более человекочитаемый, и, главное, человекописательный“ :)

                                                                                  Я сам про YAML узнал недавно. Проект, которым сейчас занят, использует RDF и OWL, в основе тут XML обычно. Но есть и более простые формы записи (Turtle), в основе которых как раз YAML. Это просто спасение. Разумеется, есть конверторы туда-сюда-обратно. И поддержка самого YAML (и JSON) в куче языков. Мода на XML — это мода, и ничего более. Да, иногда это посредник между человеком и машиной (хотя сделан скорее для обмена между машинами разных платформ), и он чуть ближе к человеку, чем форматы до него. Но это далеко не идеал, пусть лучше машина за меня пишет/читает, чем я за неё :)
                                                                      0
                                                                      Советую присмотреться к Qt. Действительно хорошая вещь (возможно, для C++ — лучшая). Но после MFC мозги надо немного повернуть. Иначе получится плохой код. WPF — для C++ оно вообще слабоюзабельно, для C# — ничего так, очень симпатично, радует ориентация на вектор, а не растр. Но соглашусь, что в данный момент это база, не имеющая готовых решений. Точнее они есть, но в основном «левые» — каждый изобретает свои. Взять хотя бы PropertyGrid — его аналога под WPF нет (опять же есть куча незнамо каких реализаций, wpg.codeplex.com/ наверное лучший вариант, что представляет на данный момент не знаю, но года 2 назад, многого не хватало, впрочем это было только начало)
                                                                        0
                                                                        Да, Qt — вещь. Я сказал тут чуть выше, что уже присматриваюсь, но я обычно смотрю руками :) Я писал немного на Qt. Порог вхождения низок. При том, что дело осложняло переход с Windows на Linux, с Visual Studio на KDevelop, я написал требуемое за пару недель не напрягаясь, скорее получая удовольствие. Слегка переделать мозги понадобилось лишь для понимания сигналов и слотов, непривычна была концепция moc.

                                                                        WPF юзал конечно же на C#. Я не такой уж «полиглот», но считаю, что глупо соваться в чужой монастырь со своим уставом. Сейчас пишу проект, где ядро «IDE» на C++, основной функционал вынесен в отдельные процессы на Java (из-за готовых библиотек в предметной области), работа с текстом и HTML/CSS — на Perl. И в «IDE» ещё встроил Lua scripting ради гибкости без перекомпиляции и кастомизации юзерами. И есть ещё .cmd-батники. В общем, где что больше подходит, на том стараюсь и писать. При этом не забывая использовать имеющийся опыт и наработки.
                                                                          0
                                                                          >Да, Qt — вещь.

                                                                          Тут как посмотреть. Из Qt проги можно юзать любую С++ либу, но вот юзать Qt либу в обычной С++ проге это да… больно короче: придется обертки писать и много.
                                                                            0
                                                                            Жаль. MFC я в юнит-тестах спокойно запускаю несколько раз (т.е. GUI запускаю в консоли, WinMain в main), и это работает. В нескольких файлах тестов у меня несколько «микро-приложений» — с наследованием от CWinApp, CWindow. Кто-то говорит, что GUI очень сложно тестить автоматически. Хм. Если целиком всю махину — то конечно. Но тогда это уже не юнит тестирование. А если писать так, что целое легко разобрать на запчасти — то вполне легко и тестить.
                                                                              0
                                                                              В Qt есть целый модуль QTest и там очень много полезных плюшек для написания unit тестов GUI приложений
                                                                                0
                                                                                Там много что есть. Свой браузер, например, Webkit вроде. Свой движок ECMAScript и т.п.
                                                                                Но не тем путём идут товарищи вот именно в этом вопросе. Закрытость платформы ведёт к её коллапсу, ака Дельфи.

                                                                                С той же MFC я могу CppUnit юзать, а могу и Boost.Test. И ещё полдюжины всяких разных.
                                                                                Впрочем, я надеюсь, что и с Qt многое стороннее вполне можно использовать.
                                                                                  0
                                                                                  Qt же наоборот открытая платформа. Единственная проблема, что если нужно Qt либы юзать, то и твоя прога начинает от Qt утилит зависеть, но это имхо не так уж и страшно.
                                                                                  webkit это немного не только Qt это вообще универсальный opensource браузерный движок.
                                                                                    0
                                                                                    Не так немного выразился… Браузер на основе Webkit, компонент, родной для Qt, для простоты встраивания. Не смотрел, так только, слышал. QtWebKit, кажется.

                                                                                    Это ведь не отдельная вещь в себе, враппер, удобный для встраивания куда угодно. Это лишь для одной библиотеки заточка. Вот это как бы и не совсем кошерно. Впрочем, вся индустрия этим занимается.

                                                                                    От такой открытости толку мало. Нет, опять не так. Много, очень много, но могло бы быть на порядки больше, если бы был какой-то общий стандарт компонентов. Вот поглядим на PC — я могу взять плату от Intel, видяху от nVidia, могу выбрать AMD с ATI, а могу взять и переставить. В разумных пределах, конечно, но смысл понятен, думаю.

                                                                                    Я надеюсь дожить до тех времён, когда работая в разных IDE, на разных платформах, буду брать какие-то компоненты, и лепить их в любом сочетании друг на друга. А пока даже на одной платформе разные технологии очень плохо уживаются.

                                                                                    Сейчас в софтостроении масса готовых кросплатформенных вещей. Но нет клея. Клей все варят сами, долго и трудно.
                                                                                      0
                                                                                      Для наглядности… Просто представьте, что для сборки PC нужно купить паяльник, переходники, радиодетали, протравить свою плату, изучив схемотехнику… Сколько бы длилась сборка каждого PC? :)
                                                                                        0
                                                                                        Дак в случае Qt существует выбор, или самому всё собрать, а заодно поизучать внутренности, или воспользоваться готовой сборкой где всё уже есть. Я самостоятельно собираю только в тех случаях, когда нету готового билда: или для разрабатываемых версий или же например если мне нужна Qt под win-x86-64
                                                                                          0
                                                                                          Дак и MFC можно собрать, собирал как-то, пофиксив баг. Правда, я не в курсе правовых вопросов в этом деле…

                                                                                          Я немножко не про то, про другое. Про слабость стандартизации в программировании. Возьмём те же Qt и MFC. В одной QString, в другой CString. В Яндексе, как недавно писали на Хабре, вообще класс строки называется Stroka.

                                                                                          А в STL есть стандартный std::string, и почему было его не использовать? Не нравится стандарт, хочется оптимизации? Так участвуйте в стандартизации, оптимизируйте стандарт! Я понимаю, раз это не делается, то в этом есть свои трудности. Но такие трудности надо преодолевать, а не обходить.

                                                                                          К тому же, зачастую дело не в том, что стандарт плох, а в том, что хочется создать свой стандарт ради разных выгод. Если бы вместо этого развивали STL и POSIX, добавляли бы подобные новые стандарты, то жилось бы нам сейчас намного легче. Не клей бы варили нудно и упорно, а собирали бы готовое на готовых шурупах, а всё оставшееся время тратили на новые вещи. Которые бы снова стандартизировали.

                                                                                          Вы только представьте: кросплатформенная стандартная библиотека, типа STL, но GUI. Если бы это в своё время появилось, то никаким Java и C# долго было бы не потревожить C++ монополию де факто. Просрали момент.
                                                                                            0
                                                                                            >А в STL есть стандартный std::string, и почему было его не использовать? Не нравится стандарт, хочется оптимизации?

                                                                                            Строки там появились еще даже до появления STL. Потом на std::string они не перешли по очень даже веской причине. Дело тут в дизайне Qtшной библиотеки контейнеров: он принципиально отличается от stl! И работать с QString'ами можно и нужно по другому! Все контейнеры в Qt — неявно разделяемые! Этим они принципиально отличаются от stl контейнеров, например если передать в функцию строку по значению, то не произойдет глубокого копирования, в отличии от std:string, которые обычно как const std::string & передают. В случае с Qt активно используется QSharedData и технология Copy on write — это позволяет сократить потребление памяти в большинстве случаев. Для GUI это очень важно.

                                                                                            >Вы только представьте: кросплатформенная стандартная библиотека, типа STL, но GUI. Если бы это в своё время появилось, то никаким Java и C# долго было бы не потревожить C++ монополию де факто. Просрали момент.

                                                                                            ИМХО проще тогда Qt как стандарт прописать. Да и кстати с бинарной совместимостью у них местами даже лучше, чем у некоторых реализацией libstd++.
                                                                                              0
                                                                                              В MFC тоже copy on write для CString, тоже свои контейнеры (хотя с ними другая история — они намеренно упрощённые по сравнению с STL реализацией)…

                                                                                              Это же как раз то, о чём я говорю :) По крайней мере двух игроков на рынке не устраивал стандарт. Думаю, недовольных было гораздо больше (кстати, тот же Yandex свою Stroka ровно по той же причине написал). Но вместо того, чтобы внести в стандарт изменение, или на крайняк сделать новый стандарт, но общий, каждый игрок предпочитает играть на своём поле. А остальные вынуждены выбирать, чьё поле им больше нравится.

                                                                                              Qt была бы хорошей точкой отсчёта для стандарта, но у них идеологически неправильный moc. Мне-то всё равно, но борцы за чистоту языка не допустят. Хотя я бы даже на расширение стандарта языка согласился. В него не раз вносили спорные правки.

                                                                                              И про экономию… экономить на строках можно где угодно, только не в GUI. Сравните объём текста с объёмом картинки (звука, видео) и всё станет ясно. Экономия была оправдана в те времена, когда берегли каждый бит. Сейчас это устарело. Лучше беречь не чипы, а нас, разработчиков, не процессорное время, а наше. Чипы дешевеют, а мы дорожаем :)
                                                                                                0
                                                                                                >Qt была бы хорошей точкой отсчёта для стандарта, но у них идеологически неправильный moc

                                                                                                И там есть страница, где написано четко и по пунктам почему он нужен. Те же сигналы и слоты можно на шаблонах сделать, но потеряется их очень важное свойство — динамичность, что для GUI может быть неприемлемо.

                                                                                                Блин если бы Тролли тянули все свои идеи в стандартную либу, то возникла бы огромная бюрократическая волокита, которая бы серьезно замедлила развитие. Мне кажется основная причина именно в этом: не хочется зависеть от сотен непонятных людей.
                                                                                                  0
                                                                                                  Я читал эту страницу, но согласен был ещё и до этого. Программирование не чистая наука, здесь идеологии не место. Чистой наукой программирование ещё долго не будет, поскольку огромная часть программирования — человеческий фактор. А человек сам себя не скоро ещё на уравнения не разложит. Хотя постоянно пытается :)

                                                                                                  Не «волокита бы замедлила», а бюрократия замедляет. Тем и замедляет, что все её обходят. С ней и надо бороться.

                                                                                                  На самом деле всё ведь просто — есть популярная технология, проверенная временем. Всё, стандарт де факто должен стать задокументированным стандартом. Что тут думать и спорить? :) Бюрократия, идеология, маркетинг и «политические» игры — это и мешает. Обойти можно. Но нужно ли?
                                                                                                    0
                                                                                                    Просто когда ты стандарт, ты вынужден оглядываться на огромное количество людей, а когда нет, то у тебя есть свобода действий, которая например позволила полностью переделать Qt в своё время. Не в пример С++, где ради обратной совместимости тянутся весьма страшные костыли из тьмы веков
                                                                                                      0
                                                                                                      Кто-то должен брать на себя эту роль, гаранта совместимости. И бремя ответственности за стабильность. За это Microsoft даже враги уважают (вменяемые). Пускай MS не из лучших побуждений этим занимается, но справляется в основном неплохо, в этом им не откажешь. Но поддерживать старое — это не значит не добавлять нового. Старое можно вычеркнуть из C++ добровольно принятыми самоограничениями, как Google.

                                                                                                      С++ упускает многие не такие уж и новомодные вещи, связанные с GUI, с web. Стареет. Принимать стандарт раз в 10 лет — медленное самоубийство в наше динамичное время. Если идти с такой скоростью, то обгонят как стоячего.

                                                                                                      Я знаю, что многим на работе запрещают применять boost. Боятся патентных исков. Был бы стандартизирован — не было бы страхов. Тысячи разработчиков не писали бы своих велосипедов.
                                                                  +1
                                                                  Ну и при чем тут Делфи? Все что тут так красивенько понаписано с цитатками, это беда не языка или среды, а недопрограммистов которые выпускаются из вуза даже не понимая что такое ООП, я уже не говорю применение этого в коде. Я лично не считаю студентов освоивших метод Form1.Button1OnClick программистами. А если брать количество людей работающих в сфере рабзработки с непрофильным образованием и не особо желающих развиваться (тот же Form1.Button1OnClick) то все вроде становится на свои места. Надо не язык со средой хоронить, а быдлокодеров.
                                                                    +1
                                                                    Так и проблема то в том что в вузах их так учили, а потом они так и писали. Если бы большинство писало на делфи не гавнокод а нормальные и рабочие программы, то все бы любили делфи.
                                                                    Или почему думаете сейчас так не любят флеш? Отличная среда, отличный скриптовый язык с множеством возможностей и толпы быдлокодеров которые делают банеры из 2х меняющихся картинок и жрущие 100% процессорного времени.
                                                                    Вот только одна разница всё же есть — флеш нашёл свою нишу, и это другим приходистя его пододвигать, а делфи пытался пододвинуть китов уже занявших свои места в мире.
                                                                      +3
                                                                      Делфи, в его существующем варианте, это не плохо — это очень плохо. Если бы из него вкинуть весь мусор, убрать этот дурацкий редактор форм плодящий гавноприложения, выкинуть избыточный синтаксис паскаля и переписать компилятор на что нибудь нормальное, то может быть и вышло что, а так — мёртвый язык.

                                                                      Тут вроде бы написано о среде, а не о программистах. Делфи — отличная среда для разработки приложений. А вот из-за таких высказываний как раз и создается впечатление об убогости IDE и складывается прочная ассоциация: продукт написанный на Delphi = плохой продукт. И толпы руководителей различный отделов автоматизаций, отлично знающих бизнес процессы, но особо не погружающихся в разработку, а так же толпы студентов, начитавшихся такого в интернетах, упорно считают Delphi говном. Ну, чтож поделать… Нормальным delphi-программистам больше платить будут ;)
                                                                        –3
                                                                        IDE у делфи клон студии, что в нём хорошего? Вернее не так, у студии отличный ide, но что в ide delphi такого что может пишущих под винду заставить перейти на delphi?
                                                                          +7
                                                                          Оу, оу! У Delphi и студии совершенно разное IDE. То что ты об оэтом пишешь означает что ты не работал в delphi. Кстати, delphi появилось пораньше студии. Схожести в интерфейсов IDE у языков программирования можно объяснить тем же, чем и схожести интерфейсов у браузеров. Не стоит путать интерфейс и IDE.
                                                                            –2
                                                                            Во первых, при сравнении с MSVS имелась в виду то что они назвали RAD Studio, во вторых MSVC++ появился задолго до delphi.
                                                                            И да, первой попыткой мелкомягких создать общее ide для всех языков была Visual Studio 97, когда делфи ещё пешгком под стол ходил.
                                                                            И ещё раз да, я не работал в делфи, я его изучал как новомодный язык 2000х годов, а работал я в те времена в Visual Studio и прекрасно видел разницу в подходе к пользователю борландов и мелкомягких. Если бы и дальше писал под винду — студией бы и пользовался, ведь цена на vc++ очень даже вменяемая(если конечно не брать к нему мсдн)
                                                                              +6
                                                                              при сравнении с MSVS имелась в виду то что они назвали RAD Studio


                                                                              Более смешного аргумента я и представить не мог =) IDE Delphi похоже на IDE Visual Studio потому что в Visual Studio и в RAD Studio есть слово Studio. Оригинально-то блин =)))
                                                                                +4
                                                                                Да о чем вы говорите, в 97 году уже была третья версия дельфи, более чем зрелый продукт, при этом ее историю нужно в действительности смотреть начиная с Turbo (Borland) Pascal под DOS, ведь там был Turbo Vision (привет быстрой разработки оконных интерфейсов на чистом ООП) и Object Pascal, вся разница с Delphi только в том, что от dos перешли к windows. Туже библиотеку Turbo Vision потом адаптировали под Watcom C++, который очень долго был основой разработки на с++ под windows.

                                                                                До 2005 версии VS по сравнению с «дельфи студией» была по сути никакая и не выдерживала никакого сравнения, при этом после 2002 года Delphi во всех смыслах фактически перестала развиваться.
                                                                            –2
                                                                            PS И да, в теме написано про язык, и о ide в моём коментарии напоминает лишь упоминание редактора форм.
                                                                          +3
                                                                          Согласен.

                                                                          У меня приятные воспоминания о Дельфи. Суперский RTTI, красивая компонентная модель. Все было очень здорово.

                                                                          Да, действительно простота использованяи сыграла зулую шутку. Кто видел в коде вот такое: (Unit29, Form36, Button24 — поймут.

                                                                          Но. Не вижу почему вот точно также не писать на .NET. Ничего не мешает.

                                                                            0
                                                                            Школа дельфистов очень сильно портит программистов. И для того, чтобы стать настоящим хорошим(!) .NET-программистом, то нужно очень сильно и серьёзно переучиваться. Подходы к программированию совершенно разные.
                                                                            А если кодить на .NET методами Delphi, то это уже называется быдлокод. Да, работать будет. Но качество кода будет значительно низкое.
                                                                              0
                                                                              Чушь собачья.

                                                                              Если человек начал программировать с того, что начал рисовать формjчки в C# и писать всякий код в Button1_OnClink — результат ровно то же что с Delphi и Visual Basic

                                                                              Все зависит от программиста. И на bat можно писать хорошо и правильно.
                                                                                0
                                                                                К нам приходили такие на собеседование, да. Бросил кнопку на форму — всё, я программист. А как спросишь его про синглтон, модель MVC или абстрактные классы, делает выпученные глаза и непонимающе мотает головой «А про XPath я не слышал, да и зачем — я же вручную могу XML парсить». Можешь. Но это глупо, и вообще, как программист он остался в начале 2000-х.
                                                                                С вашим подходом спокойно можно кодить программки «для себя». Но в серьёзной команде такой фокус не пройдёт. Если тольо в команде не такие же как вы сидят. По крайней мере, большой код поддерживать будет невыносимо трудно. Проще с нуля переписать. Знакомо?
                                                                                  0
                                                                                  Чё та вы текст почитали, но не осмыслили.

                                                                                  Делаю выжимку: если человек уже умеет писать нормальный код, ему пофиг на чем Дельфи, С# или еще что.
                                                                        • UFO just landed and posted this here
                                                                            –1
                                                                            30 минут?
                                                                            Я рад что я не делаю такие перегруженные формы.
                                                                            30 часов?
                                                                            На кодинг обработки информации этой формой — может быть.
                                                                            На создание?
                                                                            Видимо я не знаю каких то аспектов создания божественных форм;)

                                                                            Я о том что упрощения отупляют разработчика, те «старики» с которыми я работал иногда, которые писали приложения на асме, думают в разы эффективнее чем я. Я асм учил уже после С, о чём сожалею теперь, а в вузах его иногда просто пропускают.
                                                                            • UFO just landed and posted this here
                                                                              –11
                                                                              >Что плохого в том, что бы интерфейс сделать за 30 минут, а не за 30 часов?

                                                                              Что интерфейс будет говном и на его доработку потребуется 300 часов, а не 30.
                                                                              • UFO just landed and posted this here
                                                                                  –4
                                                                                  Формошлепство ведет к тому, что логика работы самого приложения тесно переплетается с логикой работы интерфейса, что в общем случае недопустимо. Поэтому любое изменение в интерфейсе приводит к тому, что нужно менять логику работы основного приложения.
                                                                                  • UFO just landed and posted this here
                                                                                      –6
                                                                                      Мда… ООП прошло мимо вас.
                                                                                      • UFO just landed and posted this here
                                                                                          –8
                                                                                          Слив засчитан
                                                                                          • UFO just landed and posted this here
                                                                                              –3
                                                                                              Да ладно. Это как раз подход к построению архитектуры системы.
                                                                                              • UFO just landed and posted this here
                                                                                                  –6
                                                                                                  Это всё части ООП, или у нас MVC и MVP возможны без ООП?
                                                                                                  • UFO just landed and posted this here
                                                                                                      –6
                                                                                                      Пруф
                                                                                                      • UFO just landed and posted this here
                                                                                                          –4
                                                                                                          Ну если у вас ООП ассоциируется со словом class то и разговаривать больше не о чем.
                                                                                                          • UFO just landed and posted this here
                                                                                                      +1
                                                                                                      С каких пор тот же MVC завязан на MVC? У вас, сударь, каша в голове…
                                                                                                      • UFO just landed and posted this here
                                                                                                          0
                                                                                                          Да, конечно… Сорри.
                                                                                                          –2
                                                                                                          >С каких пор тот же MVC завязан на MVC?

                                                                                                          Кто бы говорил ^_^
                                                                                                          0
                                                                                                          Взять к примеру MVC и процедурное программирование. Представление на ООП вообще не особо завязано. Контроллер можно реализовать, поместив код контроллера в отдельный файл (для скриптового языка), фронт-контроллер соответственно как и в обычном случае, подгружает нужный файл. С моделью посложнее, но можно в использовать структуру или массив для хранения состояния, а для обработки описать ряд функций.

                                                                                                          Другое дело, что MVC все же намного удобнее реализовывать в рамках ООП, поскольку паттерн изначально задумывался именно в рамках данной парадигмы.
                                                                                                            –1
                                                                                                            Ну ООП между прочим и на процедурных языках реализовывается и между прочим все равно неявно используются ООП подходы при реализации MVC, разве нет?
                                                                                                              0
                                                                                                              Весь мир одно большое ООП если расширять Ваши утверждения… вопрос только в восприятии :)
                                                                                                                +1
                                                                                                                Какие из трёх основных китов ООП (инкапсуляция, наследование и полиморфизм) неявно используются?
                                                                                                                  0
                                                                                                                  Инкапсуляция
                                                                                                                    0
                                                                                                                    Я реализовывал MVC без неё, если не считать под ней mysql_fetch_array()
                                                                                                                      0
                                                                                                                      А это разве не есть инкапсуляция? Принцип черного ящика.
                                                                                                                  0
                                                                                                                  Разве? Я что-то пропустил в жизни… Покажите plz, как реализовать объекты на процедурах. Именно объекты (с наследованием и, желательно, private/public методами).

                                                                                                                  >между прочим все равно неявно используются ООП подходы при реализации MVC, разве нет?

                                                                                                                  Нет. Вот простейший пример mvc:

                                                                                                                  index.php:

                                                                                                                  $result = include 'model.php';
                                                                                                                  include 'template.php';

                                                                                                                  model.php:

                                                                                                                  return array('1', '2', '3');

                                                                                                                  template.php:

                                                                                                                  var_dump($result);

                                                                                                                  Где тут «ООП подходы»?
                                                                                                                    0
                                                                                                                    >Разве? Я что-то пропустил в жизни… Покажите plz, как реализовать объекты на процедурах. Именно объекты (с наследованием и, желательно, private/public методами).

                                                                                                                    Про GObject не слышали? Вот почитайте, сделано всё на голых сях.
                                                                                                                      0
                                                                                                                      Если имеется в виду ru.wikipedia.org/wiki/GObject, то это немного не то… Доки не читал, но на вскидку не нашел упоминаний о приват/паблик метода в GType, о наследовании и пр. Возможно, это что-то близкое, но точно не чистое ООП.

                                                                                                                      И кстати, не важно на чем сделано — по итогу все в маш.кодах работает. Важнее, как это предоставлено для разработчиков. Про «ООП подходы» не ответил — есть они в моем примере или нет?
                                                                                                0
                                                                                                Слишком толсто, как мне кажется.

                                                                                                Всегда логику работы приложения можно уместить в одном методе обработчика событий, особенно при создании интерфейса из кода.

                                                                                                Что мешает вынести всю логику в отдельный класс, или может проект, а в обработчиках кнопок вызывать функции класса?
                                                                                                Если делать так, то скорее всего не будете прокляты тем, кто это будет поддерживать.
                                                                                                  0
                                                                                                  >Формошлепство ведет к тому, что логика работы самого приложения
                                                                                                  >тесно переплетается с логикой работы интерфейса

                                                                                                  Не надо свои проблемы проецировать на всех остальных.
                                                                                                    0
                                                                                                    Да, когда-то давно я через подобные дебри прошел, но когда перешёл на C++ и некоторое количество интерфейсов заимплементил руками, то понял насколько же я был далек в понимании того, что происходит внутри в те годы, когда просто рисовал кнопочки и по дабл клику писал обработчики. Итого я могу сказать, что IDE Delphi навязывает неправильный подход.
                                                                                                      +1
                                                                                                      Что плохого в том, чтобы нашлепать быстро интерфейс? И если человек ясно понимает, что происходит внутри, то всё должно быть замечательно. Все зависит исключительно от кривизны рук кодописателя.
                                                                                                        0
                                                                                                        В том, что этот инструмент дают новичкам и они сразу учатся делать НЕПРАВИЛЬНО, а потом привыкают. IDE просто толкает их на неправильные действия.
                                                                                                          0
                                                                                                          Ну так опять же, это проблема исключительно новичков и их учителей, не показывающих, как делать правильно. Я писал в Delphi некоторое время. Это был ужасающий говнокод (теперь я это понимаю). Могу с уверенностью сказать, что теперь, поняв хоть немного принципы ООП, я никогда в жизни больше такого не напишу. Но разве язык виноват во всем этом?

                                                                                                          P. S. По правде говоря, мне не особо нравится Delphi. Но я не могу сказать, что «ненавижу» его, или что это «плохой» язык.
                                                                                                            0
                                                                                                            >Но разве язык виноват во всем этом?

                                                                                                            Не язык, а IDE. Те же плюсы или чистые Си ошибок не прощают и гораздо быстрее на своих же шишках учишься их недопускать, а в Дельфях получается, что «пока гром не грянет мужик не перекрестится».
                                                                                                              0
                                                                                                              О каких ошибках вы говорите, которые оказались бы некритичными в Делфи, но C/C++ их не прощают? Тем более, как вы сказали, мы говорим об IDE…
                                                                                                                –2
                                                                                                                Из того, что я помню, Дельфи весьма странно относилось к работе с памятью. Точно помню всякие окошки типа access violation, после чего прога продолжала работать! В С/С++ это сразу приводит к падению.
                                                                                                                  0
                                                                                                                  Ммм, да припоминаю что-то… Это всё?
                                                                                                        0
                                                                                                        Вы так и не пояснили, в чем подход неправилен.
                                                                                                          0
                                                                                                          Нарушает принцип чёрного ящика и делает разные части системы сильно зависимыми друг от друга. В идеале чем меньше зависимостей, тем лучше. Формошлепство же их только плодит
                                                                                                            0
                                                                                                            Вас куда-то не туда уводит.
                                                                                                            Каким образом язык или иде в данном случае «делают» части зависимыми друг от друга?
                                                                                                            «Формошлепство» — лишь инструмент для быстрого и достаточно удобного создания гуя, ничего более. Если вы гаечным ключом не гайки вертите, а в зубах ковыряетесь, со всеми вытекающими(и выпадающими) — то виноват, конечно же, ключ, да?
                                                                                                              0
                                                                                                              Этот самый ключ нельзя давать в руки новичкам! А его сплошь и рядом давали…
                                                                                                                0
                                                                                                                Я вам из личного опыта скажу — написанного на C++ говнокода я видел не меньше, чем на делфях.
                                                                                                                Ну и сам, если быть до конца честным, понаписал всякого в свое время и на том, и на другом.
                                                                                                                И вот что могу сказать — не вижу ни одного фактора, который бы провоцировал появление на делфях б0льшего количества говна, чем на других языках и платформах.
                                                                                                                На том же PHP, который с си-образным синтаксисом, и при этом без всякого формошлепства — такое довелось повидать, что бизнес логика внутри Button1.ButtonClick() — цветочки.
                                                                                                      0
                                                                                                      Как-то у меня под qt получается не переплетать тесно логику интерфейса и логику модели. Более того, не могу даже представить как их можно переплести :)
                                                                                                        0
                                                                                                        Потому, что там низя вот так взять даблкликнуть на кнопку и сразу написать код обработчика.
                                                                                                          0
                                                                                                          Даблкликаю и пишу такому-то сигналу соотвествует такой-то слот… Это не то?
                                                                                                            0
                                                                                                            Обычно там просто выбираешь слот из списка и обычно это уже заранее реализованые слоты. Хотя я помню там можно делать по аналогии с дельфями, помню, что если слот правильно обозвать он автоматом подцепится, но не помню, чтобы сами Qtшники рекомендовали этот подход и где-либо в своем софте ему следовали. Сам я такое никогда не делаю.
                                                                                                    +5
                                                                                                    правильно, а код пусть с перфокарт вводят. пока набивают их, заодно получше подумают
                                                                                                  +4
                                                                                                  редактор форм плодящий гавноприложения


                                                                                                  в полночь запускается сам и начинает плодить?
                                                                                                    +4
                                                                                                    Никогда, никогда редактор форм, или кода, не будет делать говноприложения.
                                                                                                    Их пора бы взять ответственность на себя, а не обвинять инструменты.
                                                                                                  0
                                                                                                  Хорошая среда и язык, но для меня дороговато. Хорошо, если лицензии для вас покупает работодатель, но для фрилансеров и просто энтузиастов цена существенна.
                                                                                                    0
                                                                                                    Раньше выпускали бесплатную Turbo Delphi, неужели снова лавочку прикрыли?
                                                                                                      0
                                                                                                      Прикрыли бесплатную Turbo Delphi Explorer.
                                                                                                    +8
                                                                                                    Мне кажется все намного проще. Delphi приобрел такую популярность за счет VCL, который в свое время на порядок превосходил другие решения для разработки гуя по Windows. Закат начался как раз в период, когда платформа .NET стала набирать популярность. C# во многом превосходит Delphi, поэтому даже Delphi.NET не смог исправить ситуацию, тем более учитывая глючность первых версий Delphi.NET.
                                                                                                      +2
                                                                                                      Думаю основная причина в том, что язык сам по себе, без своей среды, победить не может. А среда в случае Delphi была (и есть) проприетарной, покрытым лицензиями, и не имела широкого спектра как коммерческих, так и свободных альтернативных реализаций. Это такой огромный минус для распространения языка программирования, который можно перебить только чем-то мега-существенным. Например, доминирующим положением на широчайшем спектре рынков, как в случае с Microsoft и ее “проприетарными” языками типа C#. Да и то, как далеко им до распространенности C или C++…
                                                                                                        +2
                                                                                                        Сейчас есть Free Pascal, Lazarus IDE, так что в этом плане все не так плохо.
                                                                                                          0
                                                                                                          Lazarus есть, но он сырой до ужаса, увы…
                                                                                                            –6
                                                                                                            Lasarus это наколеночная быдлоподелка в сравнении с свободными IDE для С/С++ да и FreePascal тоже совершенно не блещет.
                                                                                                              +1
                                                                                                              К слову, во FreePascal реализация типа Generic (аналог шаблонов C++) появилась раньше, чем в Delphi. Да и вообще, диалект FreePascal мне как-то больше нравится, чем Delphi. А еще радует, что он не только для Windows, так что консольные утилиты, которые должны работать на разных платформах, писать на FreePascal'е одно удовольствие. Так что я бы сказал наоборот, FreePascal «блещет».

                                                                                                              Кстати, еще одно упущение Delphi — он только для Windows. Да, были попытки реализации под другие платформы, тот же Kylix, но во-первых, это изначально был не тот же Delphi, а нечто иное, а во-вторых, от проекта быстро отказались.

                                                                                                              Ну и закрытость, а вдобавок еще платность и дороговизна Delphi тоже не добавляло языку популярности. Все же, как уже было замечено, фрилансерам нет особого резона покупать Delphi, когда можно воспользоваться чем-нибудь, что не хуже и бесплатно.
                                                                                                                –4
                                                                                                                Помню срачи на тему поддержки 64 бит во FreePascal'е. Разрабы вместо юзания glibc свой лисапед сделали, мотивируя это тем, что в glibc проблемы с обратной совместимостью!(где они их там нашли?) и этот самый лисапед безбожно тормозил на 64 битах.
                                                                                                          –3
                                                                                                          Вот когда это поделие от Embarcadero научится хотя бы 64 битам, не говоря уже о других платформах, в том числе мобильных, тогда и можно сказать, что оно развивается. Пока же это ходячий труп.
                                                                                                          • UFO just landed and posted this here
                                                                                                              +2
                                                                                                              Неужели 64бита — это краеугольный камень? Те же продукты МС не все 64-битные. И живем же
                                                                                                                +1
                                                                                                                Это лишь показатель отсталости и не портабельности. Вот винду под ARM презентовали, сколько туда быдлокодеры из Embarcadero будут Дельфи портировать? Лет 8 не меньше при таких темпах развития.
                                                                                                                  +2
                                                                                                                  В принципе для некоторых приложений весьма существенный. Я бы не начинал крупный проект на языке, для которого компилятора под х64.
                                                                                                                    +2
                                                                                                                    Да. По этой причине, например, до сих пор нет 64-х битного Total Commander. А вообще, Delphi потерял mainstream. Поздно вспомнил о Unicode, до сих пор не вспомнил о платформах, отличных от Windows+IA-32. Не смогу полно и объективно судить, но уже эти 2 факта символизируют.
                                                                                                                      0
                                                                                                                      Делфи уже вспомнил. Сейчас они вроде бы копают к кросплатформенному VCL+.
                                                                                                                        0
                                                                                                                        Копают — это слишком туманно. Вот когда можно будет написать и откомпилировать приложение, хотя бы, под x86_64, тогда и можно будет говорить вспомнил.
                                                                                                                          0
                                                                                                                          Где-то промелькивал билд с возможностью компиляции консольных приложений под MacOS, правда найти картинки сейчас не могу. А обещали они помоему в 2012 или 2013 доделать это дело.
                                                                                                                  0
                                                                                                                  Меня в дельфи убивает неинформативность ошибок.
                                                                                                                    0
                                                                                                                    Можно пример? :) Желательно в сравнении с другими средами/компиляторами
                                                                                                                      –6
                                                                                                                      Для примера: компилится проект, синтаксических ошибок нет, но при выполнении кого-то действия вываливается ошибка в которой кроме адреса памяти нифига нет, ни описания, ни вида ошибки, нифига кроме адреса памяти, в сравнении с питоном допустим, тот хотя бы выдает тип ошибки/вид эксепшена+код и операцию на которой она появилась( понимаю конечно интерпретируемый язык, но всетаки)
                                                                                                                        +4
                                                                                                                        Ну, вы наверное не так его готовите. Если у Вас появляется адрес памяти и больше ничего вразумительного, то это либо уничтоженный/неинициализированный объект либо попортилась память. Но даже в этом случае Вас безусловно спасет Call Stack. В общем, Вы не так используете инструмент.
                                                                                                                          0
                                                                                                                          А может инструмент такой кривой что при наличии развитых RTTI механизмов оно ничего как упасть с открытием дизассемблера в дебагере не может.
                                                                                                                          VC++6.0 инструмент 1998-го года, может открыть отладчик в исходном коде COM-компонента который вызывается JScript-ом из встроенного Internet Explorer в Windows Forms, а Delphi при попытке вызвать неинициализированную форму из под отладчика валится без каких-либо объяснений.
                                                                                                                            0
                                                                                                                            Вы можете привести какие-то доказательства?
                                                                                                                              0
                                                                                                                              Какие вам доказательства нужны? я привёл пример когда мне запустится голый отладчик. Добавляем в проэкт форму, а потом пытаемся её же динимически уничтожить. Отладчик свалится в непонятном месте с выводом регистров.
                                                                                                                              Чёрт это наверное супер сложная задача развернуть стэк.
                                                                                                                                0
                                                                                                                                Отладчик не валится, а открывает асм, думая что Вы — Бог, и Вам позарез нужно знать, а что же там с регистрами. Если Вы закроете это окно, то попадете на точку, где произошла ошибка. А если откроете окно Call Stack, то увидите развернутые стек. В общем, не кажется ли Вам, что Вы не компетентны в этом вопросе и дальнейшая дискуссия может привести лишь к эскалации конфликта?

                                                                                                                                А чтобы окончательно зарыть топор войны, приглашаю Вас отведать водочки, благо Вы из Украины. :)
                                                                                                                          +3
                                                                                                                          Скорее всего, дело в руках…
                                                                                                                    • UFO just landed and posted this here
                                                                                                                        0
                                                                                                                        Юникод прекрасно существовал и до Delphi 2009. Смотреть TNTUnicode.
                                                                                                                        +4
                                                                                                                        О выбравших Делфи людях сложились следующие впечатления:

                                                                                                                        -Они испугались синтаксиса другого языка (CPP, к примеру), в школе учили Паскаль. Выбрали Делфи.
                                                                                                                        -Им сказали, что VB это зло, но где же еще есть таки красивые формочки? Выбрали Делфи.
                                                                                                                        -Научили Делфи. Программировать не научили. Выбрали Делфи.
                                                                                                                        -Связали, приставили нож к горлу, пригрозили смертью, если не выберут Делфи. Выбрали Делфи.

                                                                                                                        Иначе как в здравом уме человек может выбрать Делфи? Субъективно избыточный монструозный синтаксис, IDE поощряющий создания тонн говнокода и топтание на месте и разрастание вширь, вместо добавления необходимых элементов (того же юникода в свое время) для нормальной работы. И обиженное на всех и вся комьюнити, в большинстве своем даже не пытающееся посмотреть и поюзать другие языки, ибо синтаксис ведь не похож на Паскаль. Печаль, печаль. Смерть унылому Делфи. Хотя с другой стороны — какая разница. Все равно большинство существующих так называемых программ лучше переписать с нуля. И если есть хоть капля здравомыслия — делать это уже лучше не на Делфи.
                                                                                                                        • UFO just landed and posted this here
                                                                                                                            +1
                                                                                                                            С быстро и просто не спорю. Не спорю также что на Дельфи (подозреваю минусы в карму из за опущенного мягкого знака до этого, или это кто-то из теплых чувств к Дельфи) МОЖНО писать грамотно. Не использовать глобальные переменные, думать о том, что кто-то эту программу будет потом поддерживать. Но почему, черт возьми, так мало людей это делает? От моих изысков у человека, что пришел после меня не один день болела голова, потому как некоторое время я был тот самый плодящий говнкод человек, именующий себя почему-то программистом. Ну и собственно много чего хорошего в C# пришло именно с Дельфи. Из личного — один из «пунктиков» программиста, а именно чат, тоже был сделан на нем.

                                                                                                                            Тем не менее осадок от него горький и противный. Выбирали знакомые мне люди (если уж без сарказма) по причине того, что либо «знакомый дядя посоветовал», либо по причине похожести синтаксиса на паскаль, либо потому что так требовали на работе. Большинство ушли с сисадмины, часть ушла в веб, снова выбрав путь простоты, скорости, и говнокода. Верно говорят — некоторых только могила исправит. (И это я про PHP, чувствую теперь словлю минусы и от Вас, та же ситуация, вот только зверек на этот раз живуч, настолько что хочешь — не хочешь, а и самому вступать по колено приходится. Снова. И не так редко, как хотелось бы.). Это язык в себе, с него сложно перейти на что-то другое. Застоявщийся на месте, не имеющий вектора развития язык, на данный момент тот самый C# по мере возможности копирующий. Его смерть — приятное и греющее душу событие. Но пока не состоявшееся. Но в скором (надеюсь) времени — о покойниках только хорошо, буду лелеять воспоминания о чатике, и ненавидеть трупика дальше. Но молча, а то родственники и друзья уж больно обидчивые.
                                                                                                                              0
                                                                                                                              Много есть в жизни вещей, которые заставляют и меня выделять слюну. Например, тот же 1С, не к ночи помянутый. Но желать ему смерти… И в каждом треде ломать мечи… Зачем? :)
                                                                                                                                +3
                                                                                                                                Затем, что адепты, они… Они заполоняют всю планету. И многим приходится следовать по неверному пути. Особенно яркий пример с упомянутым вами 1С и упомянутым мной PHP — Bitrix. Мало того, что написано лебедем, раком и щукой (создается впечатление что делала стая разработчиков, которых командой даже близко назвать нельзя, и каждый тянул в свою сторону, без контроля с чьей-либо стороны, ASP .NET версию не смотрел). Так еще и теперь приходиться использовать одну гадость, созданную при помощи другой гадости, потому что в некоторых случаях адепта просто не переубедить. Смерти желать тут ну очень хочется. С другой стороны денег не так много, чтобы их терять из какой-то там принципиальности посредством потери заказчика, вся принципиальность отступает на второй план, быть может поэтому и 1С (позволяет заработать за счет чужого раскрученного бренда) и PHP (позволяет написать черт знает что, но быстро, и получить за это денег) живее всех живых на данный момент.
                                                                                                                            +6
                                                                                                                            Пока не было C#, Delphi рулил неподецки на Windows-платформе.

                                                                                                                            Люди на C++ писали годами то, что на Delphi делалось за месяц.
                                                                                                                              0
                                                                                                                              На CPP время от времени пишу в паскалевсом стиле. Часто «перевожу» заголовочные файлы.
                                                                                                                              VB знаем. Ко всему еще VBA часто выручает. Ах да, начинал я с алгоритмического языка :)
                                                                                                                              Именно из-за него мне кажется, что в современных языках много лишнего.
                                                                                                                              Причем знания об этом «лишнем» 80% времени лежат в памяти мертвым грузом.
                                                                                                                              В остальных 20% все равно часто приходится смотреть справку.
                                                                                                                              Справедливости ради, замечу, с моей точки зрения, в Дельфи тоже есть «излишества».
                                                                                                                              CPP приучает к аккуратности — неловкое движение и вы прострелите голову вместо ноги.
                                                                                                                              Delphi расслабляет, и порой я его ненавижу за то, что он позволил какому-то быдлокодеру написать, то что мне приходится разгребать последние пять лет.
                                                                                                                              0
                                                                                                                              ВУЗы прогибаются под рынок, Delphi начинают исключать из программ обучения студентов


                                                                                                                              Далеко не все. В том же МГТУ в первом семестре почти на всех факультетах изучают Delphi и только потом си начинают. Слышал, что в некоторых вузах на первом курсе в учебной программе Ruby — аж завидно)
                                                                                                                                +1
                                                                                                                                Не поверите, ага. Сам добиваю 3 курс программиста местного колледжа (в ВУЗ испугался, да и опасался финансовой стороны вопроса). Теперь понимаю что зря. Удивительное рядом — за 4 года обучения мы проходим Pascal, Delphi ииии… А всё ^_^. ASM действительно давался, но по очень старым методичкам, и без какой либо практики (код в тетрадках писали). В остатке имеем более менее качественный курс математических дисциплин (в чем заслуга только преподавателя болеющего за свою дисциплину). За 3 года о языке почти ничего не узнал (всё что проходим — знал ещё в школе). Сами учителя (99% женщины) учили Delphi в конце 90-х, в глаза не видали версии выше 7-ой, а сейчас уже вполне состоявшиеся люди с семьями и детьми, им эти ваши высокие технологии не упали. Лично слышал разговор учителя со знакомой, в котором на фразу «А вот мой племянник проходит C#» был дан ответ «А что это такое?»

                                                                                                                                И вот как-то ответ почему Delphi плох напрашивается сам собой. После колледжа валю в ВУЗ.
                                                                                                                                  +2
                                                                                                                                  Что может дать Delphi в ВУЗе.
                                                                                                                                  Для обучения программированию алгоритмам лучше давать Python, код читабельнее, язык более высокоуровневый есть нужные типы данных уже в языке и язык принуждает писать хорошим стилем.
                                                                                                                                  Для обучения построения GUI приложений опять же лучше подойдёт хотя бы VS205-8-10 Express, технологии значительно чаще сейчас используются.
                                                                                                                                  Для разработки под web, есть много технологий и платформ, но Delphi там нет даже в двацатке.
                                                                                                                                  Если задача обучить низкоуровневому программированию то лучше связки C + ASM не найти, С как макроассемблер и большинство операторов языка транслируется в ассемблер один в один.
                                                                                                                                  Если задача обучить ООП, то Делфи тоже не лучший кандидат изза своеобразной его реализации в языке, здесь я бы вибирал из C#, Java, Python.

                                                                                                                                  Так чем ещё хорош Делфи в ВУЗах кроме старичков которые кроме Паскаля выученного 20 лет назад на большее не способны. Да и преподать предмет качественно они кроме алгоритмов уже не могут, потому что парадигм и подходов новых появилось со времён 5-7-го Делфи много, а Делфи их просто не поддерживает.

                                                                                                                                  А ещё я скажу чем очень плох Делфи в ВУЗах, потому что стоит он даже для учебных заведений недёшево. И за один оборудованный клас уже наступает криминальная ответственность. А VS Express, Python, Java безплатны при лучшем соответствии потребностям.
                                                                                                                                    +1
                                                                                                                                    Да, как не печально с точки зрения «тоски по былым временам», но вы правы на все 1000% Python + C + VS Express…
                                                                                                                                      0
                                                                                                                                      ООП в java ничем не отличается от Delphi
                                                                                                                                      0
                                                                                                                                      Это Вам просто не повезло, да и вообще ИМХО язык это дело 200 в программирование, главное в обучении программированию понимать «суть», а любому языку можно научиться за несколько недель, не в совершенстве конечно, но писать можно начать и за 1 день :) Если знаешь и понимаешь как это делать «вообще»…

                                                                                                                                      Конечно опыт лишним не бывает и практика дело хорошее, но поверьте мне как программисту с 8 лет и уже 22 летним стажем, что главное в этом деле «хотение» ;)

                                                                                                                                      А упор в преподавании ИМХО вообще надо делать на «методы программирования», на алгоритмы, на объяснения что и как вообще работает начиная с аппаратного уровня (в этом плане ASM просто обязателен) и заканчивая разным моделями высокого уровня, а уж язык/среда это дело наживное :)
                                                                                                                                        +1
                                                                                                                                        И еще Вам совет, лучше валите не в ВУЗ, а валите на работу, и работайте, набирайте реального опыта + читайте хорошие классические книжки типа:
                                                                                                                                        «Алгоритмы и структуры данных», «Алгоритмы. Построение и анализ», Dragon book и в конце концов просто теорию информации…

                                                                                                                                        Учитесь ДЛЯ СЕБЯ и получайте РЕАЛЬНЫЙ опыт, а не изучайте сферических коней в ВУЗе по программе составленной людьми, которые сами нихрена не умеют и поэтому пошли преподавать.
                                                                                                                                      +1
                                                                                                                                      Для меня основной причиной забросить дельфи было то что та версия которая под .net (не помню точное название) запускалась за время, за которое visual studio успевало запуститься, открыть проект, открыть msdn, скомпилить, запустить под дебагом.
                                                                                                                                        +1
                                                                                                                                        Даа, та версия, которая под.НЕТ — это отдельный фейл!
                                                                                                                                        +4
                                                                                                                                        Ну народ, ну сколько можно этот плач Ярославны поднимать, ну задолбали. Я сколько не спрашивал Делфи программистов на какую они нишу вообще ориентируются, так либо они ничего толком сказать не могут, либо говорят про десктопные приложения причём только под одну ОСь (отгадайте какую :) — про Киликс — вроде так называется — уже давно ничего не слышал). Тот же Java никто не пиарит, тот же C++ никто не пиарит, они также как Делфи (а было время его чрезмерной популярности) в своё время приобрели свою популярность, и почему-то не особо её теряют (хотя да, небольшое проседание всё же со временем наблюдается), хотя и там тоже есть свои проблемы, но однако популярность у них огого (и это именно из-за того, что они заняли определённые ниши, свои ниши, где оказались наиболее удобными инструментами)!

                                                                                                                                        Ну вот ответьте вы, автор статьи, ну какие преимущества несёт в себе Delphi? Я понимаю например, какие преимущества для меня даёт C++ (например достаточная для многих задач его низкоуровневость при наличии кроссплатформенности, плюс столько стандартизированных и проверенных временем библиотек, что просто дух захватывает), Java (та же ещё большая кросплатформенность, настоящая популярность в сегменте высоконагруженных систем, серверных решений и пр.), я понимаю, почему именно C# для Windows — это действительно круто (динамично развивается, что не год, то плюшки и новая версия, заметное развитие языка в очень многих направлениях — Web, интеграция с мобильными решениями, облака и пр., а не только для рисования интерфейса — поддержка непосредственно со стороны создателя ОСи, что скорее всего позволит переходить с одной версии самой популярной десктопной ОСи на другую в моём приложении довольно просто), но я никак не могу понять зачем нужен Делфи. Ну хороший язык, ну и что? Ну могу я где-то писать меньше скобок при преобразовании типов (это я вспоминаю статью про переход Delphi на C#). Он позволяет именно что-то сделать на начальном этапе, из-за низкого порога вхождения на это первом начальном этапе создаётся что-то, что работает, но у приложения ещё должно быть и такое качество, как расширяемость, поддержка, возможность дальнейшего развития… А получается, что на первом этапе что-то сделают, при этом не понимая истоков и вообще как это всё работает (на том же C++ приходится вникать побольше, хотя и там такое порой делают!), рисуют быстро кнопки, при этом при достаточной низкоуровневости языка не нужно толком вникать как работает ну хотя бы та же система обработки сообщений в Windows (т.е. уже не C++ с MFC, но и до C# не дотягивает), а как только что-то нестандартное нужно сделать — опа, не можем (это я НЕ ПРО ВСЕХ программистов на Delphi, а именно тех, кто вот быстро освоил рисование формочек, сделал что-то, а о поддержке и не подумал, короче люди, которые «легко вошли»), вот и начинаются костыли и прочее. Ну зачем это? Вот скажите, какую бы нишу сегодня мог бы Delphi занять? Я, честно, готов признать свою чрезмерную тупость, съесть шляпу, и посыпать себя пеплом весь год, если мне вкрадчиво и толково объяснят. Сразу скажу, что наличие меньшего количества скобок в выражении, какие-то ещё плюшки типа, а вот у нас тут оператор такой есть и прочие незначительные ухищрения — это не настолько большие преимущества, да и субъективно это всё, чтобы переходить на другой язык. Вот например я понимаю, почему мне нужно изучить функциональное программирование (например Lisp или Haskell): там вообще другая идеология, другой подход к постоению программ, который даёт определённые преимущества на определённых задачах. Вот что-то такого масштаба у Delphi есть?
                                                                                                                                          +2
                                                                                                                                          Delphi задумывался в первую очередь для разработки клиентских приложении для СУБД в высоко нагруженных информационных системах и бизнес-процессах.
                                                                                                                                          При этом позволяет получить высокую скорость разработки + меньше возможностей допустить ошибку + высокая скорость работы полученного приложения.
                                                                                                                                          Почему Win-платформа? Да потому что там где умеют считать время и деньги Linux только-только пробивается.
                                                                                                                                          Кстати, вы уверены, что клиентские приложения на Java всегда быстро работают?
                                                                                                                                          То что клиент Skype-а написан на Delphi для вас ничего не значит?
                                                                                                                                            0
                                                                                                                                            Хотя насчет Linux-а я пожалуй погорячился :)
                                                                                                                                              +2
                                                                                                                                              > Кстати, вы уверены, что клиентские приложения на Java всегда быстро работают?

                                                                                                                                              нет не уверен, но я вроде про клиентские приложения и не говорил. Когда я говорил про Java, то в первую очередь имел ввиду именно серверную часть, а уж там-то безраздельно правит Java (в том числе и из-за прекрасной переносимости, в том числе и в многопроцессорных/многопоточных и распределённых системах), а современные крупные бизнес использует системы, у которых процентов 80 минимум того что делается крутится на серверах и уж поверьте не столько под Windows (хотя и их доля там есть), сколько под альтернативные системы.

                                                                                                                                              > То что клиент Skype-а написан на Delphi для вас ничего не значит?

                                                                                                                                              А реализация протокола на чистом С вас не смущает. А под другие ОС клиент тоже на Delphi написан? И я не говорб про Linux, но про MacOS, iOS, Android, Symbian, Maemo, Bada? И именно рынок мобильных решений сейчас набирает обороты и очень серьёзно. Переписать тот же Windows клиент на другом языке — это не так уж и сложно сегодня для Скайпа и это вполне может произойти из-за вот такой разрозненности, используя какой-нибудь фреймворк например, который позволит с наименьшими потерями портировать приложение между платформами.

                                                                                                                                              > Delphi задумывался в первую очередь для разработки клиентских приложении для СУБД в высоко нагруженных информационных системах и бизнес-процессах.

                                                                                                                                              Про большие корпорации и наверное во многом средние фирмы я сказал, когда говорил про Java, а для мелких сегодня всячески популяризируются Облака. Это может нравиться, может не нравится, но эволюция систем коммуникаций привела к тому, что сегодня это стало реальностью и такая воодушевляющая поддержка этой идеи со стороны крупных корпораций со временем сделает своё дело (кстати, уже делает). Вот что перспективного тут может предложить Delphi? Опять старый подход когда всё внутри фирмы аккумулируется, нужно держать штат специалистов для обслуживания и пр. Да, это пока работает, но этот подход можно реализовать на других языках, которые ещё позволят в будущем перейти наименее безболезненно на новые облачные рельсы (это я например про C#). Вот и получается, что сейчас Delphi предлагает подход, реализовав который сейчас придётся в будущем всё равно выкинуть, сделав всё с нуля. В чём плюс?

                                                                                                                                              > При этом позволяет получить высокую скорость разработки + меньше возможностей допустить ошибку + высокая скорость работы полученного приложения.

                                                                                                                                              Сами же пишите, что вас задолбал быдлокод. В чём реально меньше ошибок? В том, что сейчас вот это работает? А расширяемость? Её-то и нет получается и приходится всё равно переписывать? Так опять же в чём плюс? Только в том, что вот сейчас ошибка не проявляется, но в ближайшей перспективе всё равно столкнёмся с трудностями? Не понимаю. Поверьте, отсутствие расширяемости для настоящего коммерческого продукта — это ещё та ошибка. И опять же на C# вроде тоже много сделано, чтобы ошибок было меньше по сравнению с тем же C++.
                                                                                                                                                –1
                                                                                                                                                Для Андроид Java, для iOS — objective c, для maemo — а какая разница, если этот бобик уже сдох? symbian, bada — c++, blackberry — java. Для каждой ОС свой язык и свой SDK.
                                                                                                                                                  0
                                                                                                                                                  ну раз уж для каждой платформы свой язык, то как быть с выбором языка для платформы, на которой этих языков много. Вот я сижу и думаю, а что бы мне выбрать: C# или Delphi на сегодняшней Wind'е… Может разьясните чем С# хуже, раз уж не получается сказать чем Delphi лучше…

                                                                                                                                                  P.S. А то, что под каждую платформу свой язык — это вы конечно правы, но не совсем. Все перечисленные платформы молодые, поэтому средств для них пока действительно не так много, но с развитием всё будет, не сомневайтесь. Вот уж не думаю, что среди будущего множества языков для всех этих платформ вдруг Delphi окажется: ему и на десктопах пока не удалось нормальной кросплатформенности достичь, что уж про мобильные решения говорить. А вот и ещё заброс: уже есть возможность программить на Питон под Symbian, какой-то фреймворк появляется на горизонте, который вроде как в будущем позволит на JavaScript писать именно кросплатформенные приложения (не помню как они называются, если честно, да и пока они больше на iOS ориентируются). А что Delphi? Дальше будем про то, что Skype и Qip были когда-то Delphi написаны, или посмотрим, что сегодня творится на рынке.
                                                                                                                                              0
                                                                                                                                              QIP тоже. И это совсем не плюс для Дельфи.
                                                                                                                                                0
                                                                                                                                                QIP вообще страшен аки ядерная война Оо Но там еще «дизигнеры» поработали.
                                                                                                                                                +1
                                                                                                                                                Можно прокомментировать Ваши тезисы?

                                                                                                                                                >Delphi задумывался в первую очередь для разработки клиентских приложении для СУБД в высоко нагруженных информационных системах и бизнес-процессах.

                                                                                                                                                И здесь себя Delphi вполне оправдал и продолжает оправдывать до сих пор.

                                                                                                                                                >При этом позволяет получить высокую скорость разработки + меньше возможностей допустить ошибку + высокая скорость работы полученного приложения.

                                                                                                                                                «Delphi» и «RAD» долгое время были синонимами. В середине 90-х Delphi очень быстро завоевал популярность и значительно потеснил другое популярное RAD-средство — Visual Basic, однако после выхода Visual Studio .Net довольно быстро сдал позиции. С трудом верится, что это результат исключительно маркетинговой компании Microsoft.

                                                                                                                                                Может быть, писать в коде "{", "}" все же удобнее чем «begin», «end»?

                                                                                                                                                Кстати, кроме .Net (и чуть позже Java) сильный ущерб Delphi-сообществу, по-видимому, нанесла компания 1С, предложившая еще более быстрый способ разработки корпоративных систем (а именно здесь в первую очередь возникает необходимость разработки сложных клиентских приложений для СУБД).

                                                                                                                                                У меня есть много знакомых программистов, которые перешли с Delphi не на С# или J2EE, а на 1С: Предприятие 7.7/8.x. И, как говорится, никто из них не вернулся обратно…

                                                                                                                                                >Почему Win-платформа? Да потому что там где умеют считать время и деньги Linux только-только пробивается.

                                                                                                                                                Не в этом дело, там где умеют считать деньги и Linux приживается хорошо, но на серверах, а не на десктопах (если только на них изначально не стоял Linux). А ниша Delphi — как Вы верно заметили — клиентское ПО.

                                                                                                                                                >Кстати, вы уверены, что клиентские приложения на Java всегда быстро работают?

                                                                                                                                                Неакадемические программы, как правило, безбожно тормозят. Особенно приложения, обслуживающие сложные бизнес-процессы.

                                                                                                                                                >То что клиент Skype-а написан на Delphi для вас ничего не значит?

                                                                                                                                                На Delphi написано немало хороших и качественных программ, посложнее чем клиенты QIP и Skype, и все же, сейчас найти хорошего программиста, знающего C# или Java проще, чем дельфиста. Такая ситуация наблюдается по крайней мере, в Саратове.
                                                                                                                                                  0
                                                                                                                                                  Может быть, писать в коде "{", "}" все же удобнее чем «begin», «end»?

                                                                                                                                                  Ну что Вы, право-дело? Да неужели Вы считаете, что это несет хоть малую долю важности? Ну, тогда "." вместо "->" намного удобней! Ибо "-" на цифровой клаве, а ">" внизу в разделительных. Как Вам такой тезис? :)

                                                                                                                                                  Плюс, если Вы вдруг не знаете, операторные скобки сейчас помогает расставлять среда. Да и вообще, на все конструкции есть «быстрые клавиши».