Как стать автором
Обновить

Комментарии 343

Я прочитал «Как перестать программировать на Delphi и начать пить»
Бросайте пить :).
Пробовали перестать и таким методом, не помогает =(
а я прочитал «Как переспать, программировать на Delphi и начать жить» ))
Вас что-то беспокоит? :-)
Хватит писать «QT». Не «QT», а «Qt». Это совершенно разные продукты, давайте хотя бы различать их (понятно что контекст понятен, но все гайды Nokia / Trolltech используют исключительно «Qt»).

О чем статья то была? Как поменять язык разработки с одного на другой?
>> Qt
Согласен, исправил

>> О чем статья то была?
Как поменять язык разработки с Delphi на другой
Зачем? Поймите меня правильно, с одной стороны я понимаю зачем, с другой отдаю себе отчет, что эта ниша жива и будет жить по всем фронтам еще долгое время.
Я, конечно, глупости пишу. Вы делитесь своим опытом и не более того. Просто я запутался на кого сориентирован контент (ну кроме петросянов в первом десятке комментариев, которые «закопают» дельфю, выстебут название топика и т.д.) и что вы хотели донести. Да, можно поменять язык / среду. Без проблем и вариантов тут очень много. Да, при такой миграции возникает множество проблем, прежде всего с идеологией (а это отсутствие привычного коммунити, наличие 100500k готовых решений в виде компонентов и множество иных забавностей).

И, да, вы абсолютно правы, .Net / Qt и еще пара крупных фреймворков могут позволить себя хотя бы чуть-чуть почувствовать себя в своей тарелке (VCL & etc). Любой дельфист, думаю, отдает себе отчет в этом.
Безусловно жива. Более того, с завидной регулярностью появляются вакансии Delphi+MSSQL, Delphi+Oracle за достаточно приличные деньги.
Но, согласитесь, это не значит, что Delphi-программистам нужно сидеть исключительно в своей уютненькой IDE всю жизнь.
Давайте возьмем среднестатистического программиста на Delphi. Перед ним стоит задача написать приложение в кратчайшие сроки, сделать все симпатично и быстро. Ну как обычно. Классическая схема работы дельфиста: декомпозиция задачи и решение каждой подзадачи с помощью готовых компонент / решений. И это нормально, это одна из основ RAD'a. Используя миллион готовых компонент на все случаи жизни, которые тем или иным образом покрывают практически все ниши — мы погружаемся в идеологию, покупаем готовые решения, берем бесплатные, модифицируем компоненты под себя (если позволяет лицензия / возможности / средства), делимся своими.

Вы говорите про Qt. Черт побери, отличный фреймворк! Местами он оставляет .Net просто далеко после себя, а кроссплатформа [архитектура] сделана просто на высоте. Но оцените рынок готовых «кирпичей» (пускай даже платных) в рамках Qt? Среднестатистический дельфист скажет, бляха-муха, на хрена я сюда полез? И более того, реализовав что-то свое с грехом пополам, крайне сомнительно поделится с окружающими. Коммунити уже не то. Дай бог тут все сложится позитивно и толпы переквалифицировавшихся дельфистов наполнял эту чашу стоящим пойлом.

Вы говорите про C#. Черт побери, отличный фреймворк — .Net, местами он просто рвет Qt в клочья, правда, нервно курит в сторонке, когда речь заходит о нормальной работе / разработке под Windows / Linux / Mac OS X одновременно. Тут ситуация интереснее. Толпа различных девелоперов, в том числе дельфистов смогли создать адекватное коммунити (вне microsoft'a), адекватный рынок готовых решений (в том числе бесплатных), чье число близко (возможно уже перешагнуло отметку) к наработкам вокруг Delphi. Но… Это не то чтобы минусы, это чуток иная вселенная — managed code. В любом случае, имея дело с C#, крайне желательно знать C++ / WinAPI & etc, иначе будет классика жанра — шарпист, генерирующий код, который работает медленно и при этом уровень абстракции просто зашкаливает. В общем простой миграции тоже не выйдет :)

В целом я согласен с вами. Но полноценной альтернативы на сегодняшний день нет. Уходя от Delphi вы должны быть готовы погрузиться во тьму, либо переломать себя и изменить подход к разработке в целом.
>> Но оцените рынок готовых «кирпичей» (пускай даже платных) в рамках Qt
Я думаю это вопрос времени

>>Классическая схема работы дельфиста… покупаем готовые решения, берем бесплатные

полностью согласен, но сам работал несколько иначе. Политика компании была такова, что сторонние компоненты использовались только в случае крайней нужды. FastReport например. Остальное всё сами. IBX даже вдоль-поперек переписали, не хуже FIBPlus вышло :)

Кстати буквально сегодня, изучая QtSql был неприятно удивлен отсутствием внятного управления транзакциями. Придется допиливать видимо, дело привычное.
Уточните, чего не хватило вам в QtSql?
Настройки уровня изоляции транзакций, хотя бы.
А используя SQL это разве уже не кошерно делать?
Типа такого:
handle->query('SET TRANSACTION ISOLATION LEVEL REPEATABLE READ');

Ведь все эти плюшки свойвств компонентов, если копать глубже выливаются в фундаментальные вещи, которые реализуются гольным SQL.
Была такая идея, но не уверен что это прокатит на том же Firebird. Попробую, отпишусь. Может даже пост на эту тему будет
Не знаю как вам, но я пишу и на дельфи, и на php+mysql+js+xhtml, причем последнее для меня приоритетней.
Дельфи, как бы странно ни было, я начал изучать с С++. В молодости не знал что еще нужно дополнительно переносить, и почему у меня не запускались мои С++ программы. Вот так я и перелез на дельфи.
Сейчас я изучаю С#. Почти, в принципе, закончил. Сложность была еще когда изучал пхп: понять, что не надо ассоциировать языки — тогда будет проще…
Теперь когда пишу на одном из них: как переключатель — думаю только на том языке.

Я однажды сумел соеденить Delphi и PHP в одном проекте. Проблем не возникло.
А последнее время начинаю просто отказываться от Delphi за ненадобностью — многие задачи я успеваю решать и на PHP, и на том же .Net, однако, я никогда не упускаю вариант решения проблемы на дельфи. Порой на дельфе проще несколько раз тыкнуть, плюнуть и нажать CTRL+F9, чем писать «многа букаф».
НЛО прилетело и опубликовало эту надпись здесь
На самом деле я на дельфи сейчас и SOCK и HTTP сервер забабахать смогу, cgi написать… Все это не сложно, главное знать как.
Самое глубокое чем я занимался — решение p2pStreaming на нем. В принципе, я результат достиг. Немного криво, но работало =)
Indy?
можно и на них, можно на самих сокетах, но надо знать спецификацию протокола. (Я на сокетах писал ftp)
Подскажите пожалуйста Что лучше начать изучать для веба?
(начинающему, желающему создать что-то типа на подобе выборки товаров как на auto.ru или яндекс.маркете).
...html + javascript или java, php, mysql.
если с веб никогда не работали — то смело начинайте с ХТМЛ. Если есть небольшой опыт — переходите в ПХП. В последствии SQL и Javascript Вам все равно пригодится.
Для начала разобраться в Web-программировании и понять, что клиентские технологии HTML+JS нельзя противопоставлять серверным — Java, PHP, MySQL. Они должны быть в паре. Далее MySQL — это СУБД, его в один ряд с Java и PHP ставить ну никак не получится. Обычно сайт представляет из себя:
Клиентская часть HTML+CSS+JS — без этого никак, можно только свести JS к минимуму в случае того же интернет-магазина.
Серверная часть — язык PHP, Perl, Java, ASP.NET, Ruby и т.д. — выбор достаточно широк.
Данные хранить в базе — MySQL, PostgreSQL, MS SQL Server, Oracle, etc.

Можно усилить клиентскую часть при помощи AJAX.

Если говорим о начинающем, то я бы советовал изучить HTML+CSS — всё равно придётся. JS — постольку-поскольку, в задаче инет-магазина это не сверхнужная вещь. Серверную платформу лучше PHP+MySQL — проще найти мануалы, хостинг.

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

Qt Creator же :)
А ещё можно python изучить, кстати с тем же Qt для десктопа
Видимо руки мышка у меня не той системы, но обработчик нажатия кнопки по дабл-клику автоматически не генерится.
По нажатию кнопки генерируется сигнал, а не вызывается обработчик. Какой сигнал генерировать можно выбрать мышкой :)
… а обработчик оно потом выберет автоматически в зависимости от имён
Сигнал всегда есть, нужно лишь его со слотами соединить, которых может быть и много, в отличии от дельфийских обработчиков.
Неправильно выразился, имелось в виду какой сигнал кнопки с каким слотом других объектов соединить мышкой выбрать можно. Особенно нравится возможность менять состояние одних виджетов в зависимости от действий других без программирования. В Delphi, насколько я помню, для, например, запрета/разрешения 10 элементов управления, если поставлена галочка на 11-м, нужно писать 10 строк кода типа TextField1.enable := false
Необязательно писать 10 строк такого типа.
В Delphi эти необходимые компоненты можно типа сгруппировать. Есть один, стандартный (не визуальный), компонент для этих целей, который управляет группой визуальных компонентов.
Всё равно не дает указательному пальцу прирасти к курсору мыши
Оно и к лучшему, а то как в носу ковыряться пока компилится :)
Почему Delphi vs C++
может Pascal vs C++?
Borland во всех документах использовал словосочетание Delphi language, поэтому так. IDE и язык, два-в-одном
Язык, используемый в IDE Delphi, начиная c 7-й версии называется Delphi, а не Pascal
Вас, дефистов, видно сразу
А почему не ObjectPascal?

Вообще-то язык реализован не в одной только среде Delphi. Прямая ассоциация только с этой средой — некорректна (в политическом смысле). Я имею ввиду FPC и Lazarus.
С чего вы взяли, что я дельфист? С потолка? Я как раз приверженец C++, C# и PHP. Официально язык там называется именно Delphi. Чтобы это знать, необязательно быть дельфистом, достаточно иногда смотреть по сторонам.
И все-же разработан он Borland'ом, ведь так?
в FPC есть лишь режим совместимости.
Если уж на то пошло, то то, что используется в Qt — это не совсем C++. Там есть новые ключевые слова (например, emit) и пара новых конструкций. Они «разворачиваются» препроцессором Qt до передачи в цепочку «препроцессор-компилятор-компоновщик».
Это настоящий С++ просто с небольшим подмножеством своих фич и с собственным RTTI
Т.е. С++ он не совместим на уровне синтаксиса? :)
С чего вы взяли? Кстати собственное RTTI и все плюшки moc'а распространяются только на QObject'ы, вся остальная часть Qt — это чистейший и незамутнённейший С++
Для Qt вы можете писать на чистом C++, только муторно это, не многим проще чем писать в байт-кодах для JVM :)
НЛО прилетело и опубликовало эту надпись здесь
Ничего личного, но, кажется, статья запоздала лет на 5 :)
С учетом того, что Delphi запаздывает уже лет на 10, вполне актуально :)
Как перестать программировать вообще и начать жить с семьей нормально.

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

Дело в том что у меня есть убеждение насчет возраста креативности для программиста. И по моим расчетам у меня он подходит к концу. Это лично мое убеждение, аргументировать не смогу.
Понятно.

Тут кстати где-то был топик недавно, в котором обсуждали возрастной порог креативности программиста.
Скажите пожалуйста, а сколько Вам сейчас лет?
27
НЛО прилетело и опубликовало эту надпись здесь
Да ладно, к 30 годам только только осваиваешься настолько хорошо, что можешь создавать что-то действительно новое.
вы вселили в меня надежду
хорошо если так. А вот мой бывший начальник очень неодобрительно относился к моим, не побоюсь сказать, изящным ООП-решениям. Зато он мог запросто за полдня написать простыню на 3 экрана квадратно-гнездового процедурного кода с уровнем вложенности over9000, и что самое интересное — оно работало почти идеально! Было ему на тот момент в районе 35.
А разве в бизнесе креативность не нужна? Или бизнес уровня купил-продал?
наверное, это другая креативность. Еще года три-четыре назад у меня не было жизнеспособных идей как заработать бабла. Зато была масса идей и проектов разнообразных игрушек, искусственных интеллектов и чатиков в разной стадии запущенности. Сейчас все наоборот.
По моему скромному опыту, одно другому не мешает. Команда престарелых зубров, в которую вхожу и я, в возрасте 35-55 вполне креативно и успешно и кодит и деловАрит. Не в пику вашему мнению, а в некоторое дополнение к нему.

Просто у стариков все происходит несколько обстоятельнее, чем у молодежи. Опять же из личного опыта. Если ИБ, так чтобы тараканы дохли на подступах к серверной, если сервер-сайд, так чтоб клиента можно было прикрутить хоть из коммандлайна MSDOS и т.д. Если налоговая проверка, так чтобы ушла без начисления штрафов и конверта в лапе, если таможня, транспорт… Проблема только в сопоставлении калибра микроскопов и гвоздей.

С полгода как для простейшей системы синхронизации двух учетных систем наши перфекционисты выпилили лобзиком отдельный вебсервис, вместо того, чтобы файлик выгрузить, файлик загрузить. Надо было видеть глаза клиента. Они стали очень ближневосточными: круглыми и слегка на выкате.
Архитектором был дядечка, который полжизни банковским операционным днем занимался, ну и на надежности и безопасности легкий сдвиг поимел (ему кстати 62, программировать начал в 36, архитектуры пуленепробиваемых систем разрабатывает — залюбуешься, но кодеры на него почему-то ругаются иногда :) ).

да, программисту тяжело жить с семьей нормально. Моя девушка к моему ноуту относиться как к порождению Дьявола :\
У меня наоборот.
Большую часть времени он с ней.
Хочу теперь второй.
Хотя покупал для себя — для линукса и руби.
А пришлось ставить еще и винду с лингво и офисом (

В семье без компромиссов далеко не заедешь.
для нее, слава б-гу, есть десктоп)
а у моей сестры, например, дома вообще даже телевизора нет, так что не все девушки такие, к счастью)
Ну да. Это сейчас модно.
Не иметь телевизора.
А у меня есть. Удобно. хдми кинул — смотришь фильм на плазме.
Два клиента чего-то завел — раскидал — юзаешь. Удобно.
Путь первый и второй довольно часто пересекаются (dllImport и не только), а вот третий — может быть продолжением первого (ASP.NET). Кстати, java очень похожа на шарп или наоборот, зная один из языков — второй учить/понимать гораздо легче.
Судя по возрасту всё же шарп похож, где-то читал что шарп пытался взять лучшее от джавы, но не перегибать
вопрос к автору простой — сколько бы времени потребовалось на переписывание той отлаженной, запатчено-пропатченную программу со старой работы на C++ с той же Qt?!
вопрос этот пускай и риторический, но ответ хотелось бы узнать… ведь прогресс тоже не стоит на месте;)

а жить можно начать только бросив программинг!… ведь от появления «обилия «звездочек», «анперсандов», символов „==“» вы только больше отвлекаетесь от жизни!
>> сколько бы времени потребовалось
очень много. Продукт живет уже 8-9 лет, потрачено приблизительно 25 человеко-лет только программистов. Продукт отлично продается и приносит стабильный профит компании. Переписывать его в планах не значится, будет жить и дальше.
Удивительно, но я нахожусь в той же ситуации, в которой, когда-то находился автор. Изучал Delphi c 9 класса, в универе(СПбГПУ, ФТК) его почти не использовали, но диплом писал опять же на нем. Получив диплом осознал, что по хорошему ничего не знаю\не умею, кроме как немного писать на Delphi. К этому моменту работал разработчиком в небольшой конторе из своего родного города, и наверное догадаетесь на чем писал). В итоге осознал, что это путь в никуда, взял вещи, девушку подмышку и уехали в Питер. Пошел в аспирантуру, преподаю Си для первокурсников, дома изучаю Qt, пытаюсь зацепиться за начальную позицию в какой-нибудь более-менее солидной IT конторе, но уже НЕ Delphi-программистом.

PS:
Как говорит мой хороший друг, для сравнения посмотри сколько вакансий на hh по Питеру для C#, С++ разработчиков и сколько для Delphi. Просто нужно расширять горизонты.
Чтобы «зацепиться» на мой взгляд любые средства хороши. Кстати, недавно еще висел ряд вакансий самой Embarcadero и именно в Питере.
Все вакансии эмбаркадеро в России, которые я видел, были НЕ программерскими. Там всякие евангелисты требовались.
Посмотри сколько вакансий для 1С, и что?
Это просто модный тренд.
Ничего не понял. Точки стрелочки… Есть тип Стринг или только указатель на чар…
Неужели Вы искренне думаете что перейдя с Дельфей на С или С++ что-то изменится в вашем мировосприятии как программиста? Сильно сомневаюсь.
На Дельфи можно писать замечательные программы а на плюсах делать полный ацтой. Вопрос не в языке и даже не в парадигме. Вопрос лишь в том кто вы, программист на Дельфи ну или на С++ это уж как угодно, или просто программист. Ну а вообще тут правильно отметили что жить надо с семьёй, а вот программировать надо на том что нравится или что лучше подходит для решения конкретной задачи.
предпоследний абзац, видимо, не осилили
Ужимая мысль: никакой проблемы нет, если ты _программист_, а не делфист (паскалист, пэхапист, онанист...), ибо не язык /среда определяет человека как программиста, а способность/желание человека управлять машиной и решать задачи.
Тоже сейчас перехожу с Delphi на C#. Единственным мотивом было количество вакансий.
Абсолютно та же причина. Жаль только контакты с разработчиками компонентов на дельфе.
Перестаньте программировать вообще, посмотрите на Oberon, Blackbox, Bluebottle, A2OS. Я уже лет 5 как бросил этим заниматься.
От высказывания некоторых товарищей складывается ощущение, что дельфи это какая-то чума 20 века, уйдя от которой ты очистишься от скверны и обретешь вселенскую гармонию. ))
Напоминает проповедников, которые пытаются перетянуть в свою веру, считая всех кто мыслит не так заблудшими овцами. )
Да оставьте вы людей в покое. Нравится кому-то писать на дельфи, да пожалуйста. Кто дал вам право клеймить их чудаками и т.д.?
… и лишь только забыв дельфи ты будешь зарабатывать больше… — бред сивой кобылы. Если был дилетантом на дельфи, им останешься и на Qt, С#… язык руки не выпрямит.
Другое дело, что будучи всесторонне развитым больше шансов попасть на высокооплачиваемую работу, это да. Развиваться безусловно нужно в разных отраслях.
И дело тут не в языке. ИТ сфера требует знаний во многих областях, инструменты же нужно подбирать исходя из поставленной задачи, а не из идеологических соображений навеянных чужими мнениями.
В данном же случае очередной спор о том что лучше, совковая лопата или штыковая.
Полностью согласен, все зависит от задачи.
Но инструментами надо владеть, так ведь? С++ это не штыковая лопата и даже не совковая. Чтобы достичь хотя бы среднего уровня, нужно потратить немало времени, которое ни один работодатель не будет оплачивать.

Да и боже упаси клеймить Делфи позором. Я сам безмерно уважаю этот продукт.
НЛО прилетело и опубликовало эту надпись здесь
Про веб как то маловато=)

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

Ну да это лирические воспоминания — я теперь веб-разработчик. Так что про переход с Delphi на php рассказать могу.
на самом деле я и на PHP теперь разрабатываю. Для себя, не для компании. Не скажу что это осознанный выбор, скорее гребля по течению.
Python :), Java, C# по-моему были бы лучшим выбором для веба, т. к. они изначально универсальные языки, годятся и для веба, и для десктопов и ещё много для чего, меняются только библиотеки/фреймворки, но сам язык остаётся тот же. По крайней мере не надо путаться, приходя с работы домой, где ставить точку, а где ->, где ставить $ перед переменной, где нет :)
Подскажите пожалуйста Что лучше начать изучать для веба?
(начинающему, желающему создать что-то типа на подобе выборки товаров как на auto.ru или яндекс.маркете).
...html + javascript или java, php, mysql.
троль?
нет. реально совета прошу.
Идите лучше на физика
или кого-то другого
уже поздно куда либо идти, так сложилось что пошел по маминым стопам — экономическое и бухгалтерское образование, хотя всегда хотелось стать как отец — инженером.

а кодить люблю со времен спектрума, на любимом storm turbo asembler.

НЛО прилетело и опубликовало эту надпись здесь
А почему тут?
Это форум или q&a?
а я под веб пишу на Tcl (ну и JS в браузере, естественно).
Если хотите создавать веб-приложения в одиночку, то html+css+javascript обязательно, серверный язык может быть практически любой, но сейчас я бы не советовал php для начинающих, слишком легко плохому научиться, лучше посмотрите на python/jango и ruby/rails. Если MS не пугает, то и C#/ASP .NET можно глянуть. Java, имхо, не для начинающих. БД для таких задач я бы посоветовал вообще NoSQL (mongo/couch например) прежде всего из-за отсутствия жёсткой схемы, т. к. у разных продавцов разные форматы товаров.
Интересно, вы позиционируете пхп как вариант ухода от дельфи?)
;-) вызов методов через -> как бы намекает
боже упаси :)
А что есть альтернатива?
Есть язык/среда, которые позволяют быстро писать самодостаточные GUI-приложения?
Что вы понимаете под самодостаточными?
standalone?
Один исполняемый файл или всё же разделяемые библиотеки допустимы?
Я сам не до конца понял о чем речь идет в плане самодостаточности. Вероятно, Sap_ru все-таки имел в виду отсутствие prerequiments'ов при дефолтной сборке. Как-то так.
Да — standalone. Я имел в виду, что не нужно соединение с интернетом для установки приложения и не нужно тягать 300М библиотек. Разделяемые библиотеки это прекрасно, но достаточно вспомнить бардак с msvcrt и нынешний цирк с MS V++ redistributable, когда нужно тащить отдельное и молиться, чтобы у пользователя ничего нигде не конфиликтовало.
Qt? Как вариант PyQt?
Ну, Qt это действительно единственная альтернатива. Но!
1) Время компиляции. О ужас ужас.
2) Среда разработки. Трудно отлаживать код, т.к. используются нестандартные расширения и промежуточная компиляция. Отсюда ростут грабли со всякими анализаторами кода и т.п.
3) C++ сам по себе несколько устарел.
3.1) объём кода, который нужно написать для решения задачи у него сильно больше, чем у других языков (хотя и возможности тоже большие). Правда, к самой QT это не относится — там всё доведено до абсолюта.
3.2) Код C++ громоздок и труден для восприятия. Слишком гибкий синтаксис и множество похожих конструкций.
3.3) Вызов динамических методов, вариантные типы и т.п. Этого или нет или сделано на костылях и подпорках.
3.4) Ещё раз время компиляции — даже без Qt оно непомерно большое.

PyQT ещё молод и сыр. Он медленный и жадный до памяти — в десятки раз медленнее Java, что сильно ограничивает область применения. Опять же сложности с оболочкой — она сильно уступает другим языкам. В общем молод и сыр и для долгосрочный проектов не подходит :) И ещё не понятно, что из него вырастет.
PySide может спасет, но боюсь, что нет, так, что пишите на QML и не трахайте себе мозг!
Время компиляции лечится покупкой нормального компа и прикручиванием ccache'а. Проблема уходит на второй план постепенно ;)
Насчет среди разработки, так есть QtCreator и KDevelop, где эти штуки учтены.
Динамические методы и вариантные типы есть в Qt, может синтаксис не слишком удобный? Ну ежели так, то юзайте QML, там уже динамическая типизация и динамические же методы. Не хватает его возможностей? Ну напишите модуль на C++, от вас особо не убудет.
QML? А вижуальность где? А отлажеваться как? В наш прогрессивный век видет в отладчике, не то, что пишешь несколько странно.
Ага, покупать «нормальный» комп для Hello World это круто. Для сколько-либо серьёзных проектов никакого кмпа не хватит.
А самое главное все эти решения, это подпорки и костыли к C++ и решение достаточно простых задач (GUI это по-определению простая задача!) сводится к использованию каких-то странных решению и выливается в сильно непонятный код.
>QML? А вижуальность где? А отлажеваться как? В наш прогрессивный век видет в отладчике, не то, что пишешь несколько странно.

В QtCreator'е ясно дело. Есть там и отладчик и визуальный редактор и много других плюшек. Но ежели не хочется жопу от стула поднимать и разбираться, то я умываю руки.
Не знаю для кого он там непонятный, но я лично весь этот гуевый код прекрасно понимаю и пишу уже на автомате, может быть разруха в головах? Хотя да, на QML конечно же лаконичнее получается, но он специально и делался для описания GUI.
Но ежели надо чуть-чуть сэкономить на памяти и времени запуска (скорость исполнения остается такой-же), то можно воспользоваться MeeGo Touch Framework'ом.
С QML и Qt всё прекрасно, кроме само C++. Отладочная информация в любом случае получается не для того, что я пишу, а дял того что Designer генерирует. На каком языке я пишу? На C++? Ни чего подобного, ибо, в отладчике я вижу не тот, язык, на котором пишу. На нестандартном расширении C++? Тогда всё прекрасно. но для этого расширения есть одна единственная среда и она заметно уступает средам для чистого C++.
Осильте уже DebugHelper в Creator'е собрать, там кнопочка есть.
Designer только ui файлы генерит, что за вопиющая безграмотность?
>В наш прогрессивный век видет в отладчике, не то, что пишешь несколько странно.

Потому, что прогрессивные люди собирают Debug Helper'ы и видят именно то, что хотят.
НЛО прилетело и опубликовало эту надпись здесь
На самом деле цирк (допустим в Qt) решается грамотным манифестом + двумя библиотеками (msvcp/msvcr) в большинстве случаев. Есть возможность вообще отказаться от цирка, находил интересные статьи, когда от CRT-зависимости избавлялись хитрым способом (можно автоматизировать при желании).
Про Qt я написал выше. Да, это единственная альтернатива. Но и она болеет суровыми наследственными болезнями, произрастающими от самого C++.
НЛО прилетело и опубликовало эту надпись здесь
Думаю нет, не вижу проблем с dll или какой-либо боязнью оных в delphi-лагере :)
Вау! Ух ты! А что делать если клиент на XP захотел поставить? А если ещё и SP2? А если ещё и инета нет? А если машина «боевая» и рулит каким-нибудь техпроцессом? А если Vista, но захотела .Net обновить — где взать ТЕКУЩИЙ .Net одним файлом? А сколько ещё .Net 1.x поддерживаться будет? А 2.0? В Windows 8 они будут?
Боязнь не DLL, а крайнее нежелание в трём-пяти метрам программы класть двести метров обновлений и при этом не имет уверенности, что оно заработает.
Абсолютно верно. Бардак с версиями .Net фреймворка это вообще чудо.
НЛО прилетело и опубликовало эту надпись здесь
PureBasic?
«Быстро», это чтобы мышкой поводить и готово? :)
Быстро, это с минимальными трудозатратами. Чтобы можно было сразу прототип накидать. Чтобы среда была с отладкой. Чтобы профайлинг был. Чтобы не собирался проект 30 минут на хорошем железе.
И зачем минусовать? Спросил, потому что действительно хотел узнать, что именно Вы хотите, когда пишите «быстро».
Потому что связка «C++ и wxWidgets» мне кажется очень удобной, но я понимаю, что в визуальном редакторе форм можно быстрее сделать прототип.

Хотя wxFormBuilder или что-то такое никто не отменял. Тоже быстро получится, если нужен именно прототип.

*можно линковать статически, получать самодостаточное приложение, никаких зависимостей
*нативные контролы
*лучшая среда разработки, нежели Дельфи(я про упомянутую вами отладку)
*собирается очень быстро, есть precompiled headers, и использование компилятором нескольких процессоров
Дык, я вроде не минусовал.
С каких пор wxWidgets обзавёлся удобный вижуальным GUI-редактором интегрированным в среду? Да, и сам по себе C++ вносит слишком много накладных расходов.
Бррр… Это кто кроме MSVC++ вдруг научился множественные precompiled headers использовать, да ещё так, чтобы автоматом обновлялись? И у меня вообще претензии к c++ — слишком много лишних нажатий кнопок, слишком много лишнего текста, отвартительно долгая компиляция :)
gcc ;)
так там только один прекомпилированный заголовок может быть и тот с таким количеством ограничений, что не знаешь где применить. А наборы инклюдов-то в каждом исходнике разные! А как это к Qt прикрутить? К Qt-designer, например. Последняя попытка использовать сие чудо с Qt вылилась в недельное трахание с весьма сомнительным результатом.
К дизайнеру pch? Оо Вы точно в своем уме? Оо
И вообще почему-то сама Qt собирается имеено с pch даже с gcc. В cmake'е прикручивается макросом на 10 строк, но мне лично оно не надо, ccache дает более ощутимые результаты при меньших телодвижениях.
И запомните наконец исходники обычно собираются make'ом, а он заточен на то, что есть быстрый fork(), который в винде заменяется тормознутым createProcess. Поэтому если хотите быстрой компиляции, то добро пожаловать в Unix'ы
И как я буду в Unix писать для Windows?
Компиляция под Windows настолько медленная, что просто кошмар.
Про pch не знал. Вы уверены? Для gcc ясно написано про ограничения pch и получается, что использовать с Qt практически невозможно.
А я как пишу? Оо Кросскомпилятор в зубы и вперед, на винде вообще неудобно программировать ни в каком виде!

pch, сложно что-ли?
doc.qt.nokia.com/latest/qmake-precompiledheaders.html
В винде? Не удобно, говорите? :)
Delphi, мир его праху, и .Net
Есть хоть какие-то аналоги .Net с его шикарными библиотеками и средой?
Или GCC приблизился к MSVC++ по скорости и качеству компиляции?
Или KDevelop уже можно сравнивать с MSVS?
>Или GCC приблизился к MSVC++ по скорости и качеству компиляции?

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

В студии вообще С++ очень плохо поддерживается, некорректное сравнение.
Ээээ… C++ плохо поддерживается? А где-же тогда хорошо-то?!
Что касается качества генерируемого кода, то тут 50/50 где-то студия выигрывает, где-то gcc. Но вообще сейчас подрастает clang+llvm, которые их обоих обойдут ;)
50/50?! Я даже боюсь спросить где именно GCC выигрывает. Вот когда, clang подрастёт, я на него первым перейду. Но это уже много раз было и в большинстве своём хорошие проекты загибались :(
Количество текста от вас зависит, можно и весьма лаконично решать задачи.
От языка оно не меньше зависит.
От рук куда больше
Проблема в том, что при бесконечно прямых руках, всё равно приходится выполнять много обезьяньей работы.
Жизнь она сложна, хнык хнык.
И тут… Delphi!
GUI, полный набор всего что можно — быстрая сборка, возможность консольной сборки, сплошные pch (ибо каждый юнит компилируется лишь при изменении), ОО, интерфейсы, динамические вызовы, standalone приложения, вызов нативных DLL, возможность писать свои DLL, документация и т.п.
К сожалению — просрали все полимеры.
О да, я ждал этого поста! Конечно же великий и ужасный Дельфийский Оракул нас всех спасет!!! Давайте помолимся ему!!!
Увы, но инкрементарную сборку не отменяли в плюсах, а любители копаться в my_header_global.h ССЗБ.
Увы, но всё это же есть и в С++, но в плюсах есть шаблоны, которых нету и никогда не будет в Delphi, без них он не полноценный, увы. Теряется просто львиная доля возможностей.
Ну да. 99% предназначены для решения 1% задач. Я так тоже думал, когда начинал. А потом понял, что платят мне не за повседневных героизм и не тупое набивание текста, а за результат. И чем быстрее я его получу, тем больше времени у меня останется для себя. И намного проще и эффективнее один раз из стан напрячься и обойти ограничения языка, чем 99 раз набивать горы синтаксического, утешая себя мыслью, что зато в сотый раз мне будет и комфортно.
Вам не кажется, что Qt сам по себе доказательство устаревания C++ и несостоятельности, как современного языка. Посмотрите на Qt — это от начала и до конца костыли с целью обойти ограничения языка. Фактически это уже другой язык с какой-то непонятной прослойкой из C++.
И это я слышу от человека, который даже pch не смог прикрутить по очевиднейшему туториалу. Жопу от стула поднимать иногда надо.
>> Qt — это от начала и до конца костыли с целью обойти ограничения языка.
кстати тоже такая мысль проскочила, когда увидел в мануале как связывать сигналы со слотами.
wxWidgets тормозной просто до нельзя.
Ну вот сколько еще можно эту заежженую тему обсуждать? И самое главное, зачем: все, кто хотел уже всё давно для себя решили.
Дык, альтернативы нет :(
.Net — с одной стороны безбрежно круто, но с другой — не кросплатформенный и несвободный, слишком часто меняется, а mono ещё расти и расти до практического применения.
Java застряла на одном месте, устарела и тоже страдает от отсутствия нормальной визуальной библиотеки и редактора.
Qt — крут, но его ограничивает тяжёлое наследство C++ и убогость GCC под Windows.
Множество молодых модных языков — они ещё слишком сырые, страдают несовместимостью со старыми версиями, сказочно тормозят и не имеют удобной среды разработки и тоже имеют проблемы с визуальностью.
Как-то так.
>.Net — с одной стороны безбрежно круто, но с другой — не кросплатформенный и несвободный, слишком часто меняется, а mono ещё расти и расти до практического применения.

Прямо вот про Дельфи сказано. Мне тут рассказывали про то, как у них в один прекрасный день все char стали вдруг wchar
Не в один прекрасный день, а года за три с переходными версиями с возможностью выбора. А возможность перехода на Wchar появилась вообще лет семь назад и работать со строками не-unicode, мягко говоря странно. И нужно весьма кривыми руками обладать, чтобы это сильно повлияло. char — символьный тип, кого интересует его разрядность? Для 8-битных значений был Byte.
> и работать со строками не-unicode, мягко говоря странно.

Вот нифига, когда точно знаешь, что будешь работать лишь с latin1 строками, ну например, если это xml теги в протоколе xmpp, которые по RFCхе обязаны быть latin1, то зачем лишний оверхед на юникодные строки?
Постойте, там тоже не все так просто. По дефолту в том же Qt класс QString, если мне память не изменяет, внутри себя держит Unicode (4b) по умолчанию. И там и там никто не мешает работать с тем уровнем «оптимизации», который необходим.
Но там есть одна хитрость, называется QLatin1String ;) А для любителей недокументированных фич есть ещё класс QStringBuilder и QLatin1Literal
Ну собственно я к этому и склонял. В дельфе тоже все на так просто, за пределам стандартного типа string, есть еще куча всего интересного, что позволяет оптимизировать под свои нужды ;)
Кстати, с совместимостью там все хорошо было. До сих пор старые проекты (15-летней давности) с минимальными изменения собрать можно. У дельфей была сказочно низкая цена. Кросс-платформенность была и не плохая, но просрали (большей частью из-за уродца C++ Builder).
Та же кроссплатформа жила только за счет биндингов к Qt. Почему отказались — не знаю. Дикость, могли спокойно продолжать.
> Откуда берутся Delphi-программисты
Они берутся из университетов где кроме как делфи если и учат, то только для отмазки
Ни хрена подобного.
вот именно, что нихрена подобного — легче всего списать собственные кривые руки и недоразвитый мозг на университет.
Я на дельфи начал учиться программировать в 14 лет.
Не рано ли для универа?!)
Ага, а неудачники берутся — из государства которое дает плохую работу
Государство работу почти не дает. Надо самому искать.
Я об этом же. Что нечего на декана пенять, коли сам идиот. Просто очень много людей, которые стонут что нет нормальной работы. Мол за бугром — куча рабочих мест, хорошие з/п. Если приглядеться, то те кто это говорит, хочет сидячую работу в офисе, где им будут платить кучу бабла за косынку и вконтакте (но при этом, даже не пытается получить образование)
Чем выбирать между по сути одинаковыми языками — стоит разобраться и как можно глубже понять классику типа Лиспа, или выносящий мозг Хаскелл. Ну и математику тоже учит стоит — прекрасно ставит мозги на место, и многие вещи, которые раньше просто принимал на веру, особо не вникая, становятся понятнее до очевидности.
НЛО прилетело и опубликовало эту надпись здесь
Ага. Точно. Особенно JavaScript :)
в каком он месте функциональный?
Он вполне легко позволяет в функциональной манере программировать.
ну C# тоже позволяет местами, и все-таки я его функциональным не назову. впрочем это конечно вопрос отношения.
Функциональщина и в С++ может присутсвовать, в особенности в шаблонах
Вообще-то, в каком не посмотришь, во всех местах он функциональный :)
К Перлу это тоже относится.
Ага, ненужно. В итоге видим кучу лапшеобразного ужасного кода, на который без отвращения смотреть не возможно, про поддержку вообще молчу.

Функциональные языки это песня. Это мощнейшие инструменты современности. Ты можешь не программировать на Lisp или Haskell, но знание этих языков сделает твои программы намного лучше.
(цэ) Кто-то из классиков.

Функциональные языки и математика — это ФУНДАМЕНТАЛЬНЫЕ вещи для программиста. Человек который не владеет не первым не вторым, не имеет права называться программистом. Кодером еще возможно, но не программистом уж точно.
И как это поможет в повседневной работе — GUI, базы, данных, сети, железо?
«базы, данных, сети» — erlang ;) вполне себе и с базами данных, и с сетями справляется, c web-gui тоже неплохо (используя какой-то, название не помню, фреймворк можно буквально одной строчкой менять обработку событий интерфейса — кнопку нажали, например — с клиентской на серверную).
Как минимум научит правильному кодированию.
То что функциональные языки не будут универсальными как С++ — это да, но мейнстрима вполне хватает, например, erlang прочно сидит в своей нише и никуда от туда уходить не хочет.
функциональный язык стоит выучить и понять, хотя бы для того, чтобы научиться лучше писать на родном нефункциональном. имхо.
А что вы подразумеваете под мейнстримными языками? Языки вроде Delphi, с которых каждые 5 лет нужно переучиваться на что-то другое потому что остаешься «не в струе»?
НЛО прилетело и опубликовало эту надпись здесь
Сами функциональные языки может и не станут, но функциональные паттерны и фишки в императивные языки активно проникают. Так что насчет «не нужно» — большой вопрос. В любом случае, знать больше, чем «среднестатистический программист» — вреда не будет.
НЛО прилетело и опубликовало эту надпись здесь
Что-то последнее время зачастили антидельфевые заметки… Конспиролог бы предположил здесь некую материальную заинтересованность сочинителей, но лично я полагаю, что виной всему рано начавшееся обострение у некоторых персонажей.
Эх, всё таки кто-бы что не говорил, но Delphi была идеальной средой разработки.
Я мог за пару часов сделать приложение работающе с БД на куче готовых компонент, при этом я мог писать на нём же вирусы в несколько kb которые потом можно было ещё укоротить. Я мог спокойно спускаться с уровня VCL на чистый Win API. Я мог пользоваться ООП и при этом вставлять код на ассемблере для оптимизации. В Delphi был нереально быстрый компилятор и офигенный отладчик. Можно было смотреть почти все её исходники. Т.е. ты в ней было всё.

Возможно .Net сейчас очень крут, я не знаю. Когда в 2005 (по-моему) я понял, что с Delphi пора завязывать так как наступает будущее, C# был далёк от того совершенства к которому я привык. В итоге я мигрировал в Web…
Эх, все таки кто-бы что не говорил, но Delphi была ужасной средой разработки.
Я мог за пару часов намешать кучу кода, при этом не понимая как половина из него работает, не мог написать вирусы, которые были бы эффективны. Я вынужден спускаться до уровня WinAPI каждый раз когда натыкался на ограничение возможностей Delphi. Я мог абсолютно не понимая парадигмы ООП работать с ней, и думать что оптимизировать с помощью ассемблера могу лучше компилятора.

Наверно ты хотел все таки это написать? :) Я тоже начинал с Delphi как средой разработки GUI под Windows на тот момент я думал что понимаю все. Однако же когда у меня начали появляться задачи чуть отличные по интерфейсу, по методу доступа к данным приходилось изворачиваться уже не скучна, отдельная любовь это работа с иконками системным треем(имеется ввиду без сторонник компонент).

Я с Делфи завязал в 2003 году, ибо уже тогда было понятно что она не может объективно удовлетворять нужды вменяемого программиста. Ушел тоже в веб. Но после «веб-бума», так же вернулся к написанию GUI, перебрал много чего, взгляд остановил на Qt. Не могу сказать что у Qt нет не достатков, но типовые задачи на нем реализуються в разы быстрее чем на Deplhi. И я больше не вспоминаю про WinAPI я просто пишу приложение которое будет работать везде.
«намешать кучу кода, при этом не понимая как половина из него работает» — ужас

«не мог написать вирусы» — почитайте ms-rem'a, царство ему небесное

«думать что оптимизировать можно лучше компилятора» — можно было и дело не столько в компиляторе (см. FastCode Library)

«спускаться до уровня WinAPI» — в остальных средах (desktop) вы из него толком и не поднимаетесь, разве что кроссплатформенные фреймворки
А layout manager'ы в вашей Делфи были? Или для вашей идеальной среды они не нужны?
Были.
>В Delphi был нереально быстрый компилятор и офигенный отладчик

И он генерил быстрый код? Что-то не помню такого за ним.
Быстрее только С/C++ и то, если работы со строками активной нет :)
Активная работа со строками решалась через FastCode Project. Получалось еще быстрее, чем в C++
И он генерил быстрый код. Действительно, он проигрывал чуток C++, но бывало и наоборот.
НЛО прилетело и опубликовало эту надпись здесь
Ага, я благодаря нему выучил англ. язык :)
До 7 версии включительно был идеальнейший хелп. Потом пошла майкрософтовская возня.
А как же Qt Creator? (В плане «Программировать мышкой»)
Давно уже не работал с ним, но из того, что мне ощутимо мешало, когда писал на Дельфи:
* С указателями работать неудобно :)
* Нельзя писать 64разрядные приложения
* Необходимость писать юниты или враперы для c'шных библиотек
В остальном жить можно было :)
В чем проблема с указателями?
Относительно x86_64 полностью согласен!
Относительно врапперов — мелочи жизни, согласитесь :)
Ой, а давайте я не буду рассказывать, чем работа с указателями в Дельфи отличается от работы с ними в C++? Неудобно и всё :)
Да удобно всё, за var — параметры отдельный респект борландовцам, в Сях такого нет и близко.
var? Ничего личного, почему-то сразу кажется, что Вы — тролль :) Я понимаю, когда про вложенные функции говорят, но чтобы var-секция это удобно и нужно? :]
я имею ввиду параметры функций, объявленные как var. Это же по-сути означает передачу указателя. Только работаешь с ним как с обычной переменной. Удобно же черт возьми :)
Мсье не слышал про ссылки и константные ссылки?
Печалька…
ладно, насчет с++ поспешил, но чем они лучше тех же var и const?
В C99 разве этого нету?
Они вообще ничем не отличаются с системной точки зрения — это всё те же указатели, но разве в дельфе можно передать const var?
Вы ушли за границу моих знаних С++ :))

Можно передать const, объясните на пальцах что вы имеете в виду под const var?
Программисты дельфей такие программисты…

В общем если мы обьявляем переменную как var, то в функцию передается указатель на неё вместо полного копирования аргумента, так? Полное копирования для данных, которые больше, чем размер указателя соответственно получается дольше. Но мы не хотим давать возможность изменять переменную внутри функции. Чтобы этой проблемы не возникало мы передаем константную ссылку.
То что вы описали, в Delphi определяется словом const перед параметром функции.
Т.е. const, как и var, технически является указателем
А… Не понял Вас, ага :) Ну как ниже уже отписались "&" интереснее :)
Из личного опыта: на Дельфи с 1997 года (с 1.0). Остановился в свое время и до сих пор разрабатываю на 7-й версии. Из ощутимых неудобств — приходится отказывать клиентам, которые хотят кроссплатформенные приложения. Таких — 1% от общего числа. Все сказки про несовместимость с Vista\7 — сказки и не более — компилирую под XP SP 3 и еще ни один клиент под 7-кой не пожаловался что не работает. Лучшего инструмента для RAD бизнес-разработки и представить себе не могу. Те кто программирует на Дельфи могут себе представить что можно сделать на нем за месяц, имея прямые руки и умение гуглить, не говоря уже об умении программировать. Что касается вакансий — то «жажда» работодателей на Java|Qt|Web разработчиков — это всего-лишь мода времени. Для индивидуальных разработчиков-фрилансеров или небольших компаний разрабатывающих софт для узкого сегмента рынка — не знаю, но лучше Дельфи и не придумаешь.
О как! Java Qt и Web это всего лишь «мода времени» а вот Делфи это да! Это классика!
Да, да. Я уже вижу аукцион какой-нибудь в 2100-ом году:
«Лот №5. Программа на Delphi 7 с оригинальными исходниками. Хорошо отреставрирована, включает оригинальные компоненты и библиотеки. Хранилась прошлым владельцем в надежном месте, практически не использовалась. На ходу! „
НЛО прилетело и опубликовало эту надпись здесь
Эта «мода времени» уже достала лопаты и активно копает…
7ка, честно говоря, уже морально устарела по удобству разработки.
Могу сравнивать, так как работаю сейчас на Delphi XE, а начинал с 5 ки (потом были 6-7-2006-2007-2009).
Недавно попросили «воскресить» один проект на 7ке… и тут я понял, что к хорошему очень быстро привыкаешь. 7ка показалась неудобной и непривычной после XE.

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

Вот так Web выглядит с точки зрения Delphi-программиста. А я ведь что-то такое подозревал.
Кстати, сервера на нем очень удобно и легко писать, те же cgi… Просто смысл был бы.
НЛО прилетело и опубликовало эту надпись здесь
> Синтаксис. Он же отвратителен, ей богу

И чем же он отвратителен, позвольте поинтересоваться? Паскаль — по полноте конструкций наиболее приближен к естественным языкам. Его синтаксис может быть непривычен если привык например к Си, но это потому что он другой

> Второй причиной ненавидеть дельфи для меня остается принцип «два раза кликнул на контрол — написал код

Похоже, ваше изучение Делфи ограничено исключительно чтением постов на каком-то форуме, где «гуру» сказали что это отстой. По клику на контрол код не пишется, а создается шаблон события, код для которого нужно писать ручками. Среда — автогенерит рутинные конструкции, которые одинаковы всегда. «Все что можно автоматизировать, должно быть автоматизировано» — если вы этого еще не поняли, то вы не программист, а мазохист. Впрочем, непонятно почему вы не включили режим «As Text» и не стали писать без автогенерации и перетаскивания контролов? Наверное потому что таки стоило хотя бы ознакомится с возможностями среды, прежде чем пороть чушь?
Много избыточного кода генерится, конечно круто, что его IDE генерить, но читать его всё равно приходится.
Дык, в современно с++ ещё больше (файлы заголовков если учитывать)! Из збыточного кода там только begin/end/then. Всё остальное вообще-то лаконичней.
справедливости ради отмечу, что ключевые слова procedure, function, overload тоже избыточны
Я начинал программировать на Pascal, потом подсказали Delphi. И писал я бы на нем очень долго, пока не выучил C++.

Потом во мне что-то сломалось :) Я подумал что C++ слишком сложный для моих задач, выучил Qt, потом Java.

Java2ee оказалась слишком неповоротливой и неудобной для веба, я перешел на PHP. Он оказался слишком простой и неэлегантный.

Перешел на Python с Django, чему был безмерно счастлив. А потом вообще сменил род деятельности.

К чему это я? Чтобы быть профессионалом и не топтаться на месте, стоит узучать хотя-бы по одному языку программирования в год. И сможете выбрать лучшее для своих задач.
Не согласен, ЯП — это инструмент. Чтобы быть профи в вождении авто — необязательно менять машины раз в год. Нужно изучать суть (то бишь программирование) а не языки (разные синтаксисы)
НЛО прилетело и опубликовало эту надпись здесь
Хороший программист — в состоянии понять интересные возможности другого языка и без погружения в его синтаксис. Автор выше дает перечисление кучи языков, которые он ежегодно меняет, полагая что сама смена и есть развитие. Я считаю это не так. И отдельные преимущества языка — это конечно интересно и зачастую даже необходимо для решения конкретной задачи. Именно поэтому, к языку надо относится как к инструменту, используя его там где нужно. А тупо решать задачу (которая элегантно решается на Делфи) непременно на С# (потому что год уже новый :) не есть развитие
Если автор действительно серьезно разобрался (не гуру, конечно, но и не джуниор) в перечисленных им языках, то у него будет куда более обоснованный выбор подходящего инструмента под новую задачу, чем у того, кто знаком с языком только в теории. Да и когда появится задача, которую на дельфи не решить (хотя бы элегантно, а то и в принципе), то решит он её на C# или Java быстрее (при прочих равных), чем ваш хороший программист, который начнёт решение задачи с погружение в синтаксис и особенности его конкретной реализации.
Смешно. Вот тут многие пишут что-то типа «пора заканчивать с Delphi», «как не быть программистом на Delphi» или «мне было стрёмно быть Delphi-программистом и я стал web-программистом». Будто в более «правильных» технологиях/платформах есть какое-то спасение для плохих программистов. Да нельзя быть «Delphi-программистом». Программист он или программист или нет. И выбирает он инструмент под задачу, а не зацикливается на том, что когда-то выучил по книжке. А если он «delphi-программист», то он и на c++ останется делфи-программистом.
Угу, замечаю за собой, когда читаю сишный код, "{" читаю как «begin» :)
>Все объекты, как и положено, являются указателями
Если я не ошибаюсь, то в C#, как и в java, это ссылки(все ограничено CLR), а не указатели, но в C# еще есть «небезопасный» режим для работы с указателями
В общем это опять битва священников с магами (Была такая статья про ПХП). Delphi это набор готовых рецептов. Если ты их знаешь ты — бог, не знаешь — ты говнокодер. Есть масса действительно хороших программ писаных на Delphi, но они тонут в потоке студенческих поделок и творчестве наших бюджетных кодеров. Бухгалтерские программы писаные в Delphi у меня вызывают злобное неприятие.

Так что проблема не в Delphi а в людях.

Т.е. к автору топика просьба. Пишете на Delphi хорошо — пишите, но если Вы чувствуете что гоните тюльку — бегите. И сами не будете развиваться и людей будете раздражать своими программами.
Да нормально я пишу на Делфи, по крайней мере коллеги носом не тыкают в говнокод. Но новый проект потребовал кроссплатформенности, причем не только Win/Linux а еще CE в обязательном порядке. Покрутились — а выбрать-то и нечего кроме Qt.

Вы поймите меня правильно, вот открываешь HH и думаешь, что написать: Delphi или Firebird? А ведь больше ничего нормально и не знаю. за 8 лет только на них и работал, стыдно же.
Такое ощущение, что каждый кто перешел с Дельфи — считает своим долгом написать оправдательную статью :) Народ! Интересно почитать «как я был хостером» или «мой опыт продажи софта». Такие статьи, даже если они очень похожи — будут интересны всегда, потому что там скрыт личный опыт из реальной ситуации. А что мы видим в этой и подобных статьях? Немного скулежа о том как все плохо в Дельфи, пару абзацев о том как же автор попал в это злое королевство, рассуждения о других делфи-разработчиках и… остальные 90% статьи — описание альтернативных путей разработчика. Да то что есть C# для которой существует SharpDevelop — наверное знает самый ленивый хабровчанин, даже не имеющий отношения к программированию. Личного опыта в этих статьях — ноль. Вместо опыта, описывается «почему я считаю Делфи отстоем». Но это же ваше личное мнение, нет? Напишите еще статью о том, почему вы предпочитаете кроссовки Nike и деревянные рамы, вместо пластиковых. Читающие здесь — нормально ориентируются в существующих технологиях и им интереснее опыт, а не личные предпочтения. Они у всех разные, и как заметили уже неоднократно — быть хреновым программистом можно на любом языке. А можно делать шедевры на Делфи. Язык здесь не причем
Минуточку, вы статью вообще читали? Где я написал про то как все плохо в Delphi?

Я на вскидку могу только 1 серьезный баг в VCL вспомнить (кривой IBX не в счет). + Некоторую неустойчивость IDE при работе с группой проектов и глючными компонентами. Всё! Делфи идеален для своих задач.

Так что не надо спешить с выводами
> Где я написал про то как все плохо в Delphi?

Достаточно прочитать заголовок. В нем противопоставление «жить» и «программировать на Делфи». Заголовок кстати неверен, потому что смена языка на другой язык не добавит жизни. Скорее добавит работы, потому что нужны будут дополнительные траты на обучение
То есть вы подтверждаете, что не читали статью и
пару абзацев о том как же автор попал в это злое королевств
описывается «почему я считаю Делфи отстоем»</i.
исключительно Ваши фантазии относительно ее содержания?
То что у вас заголовок подразумевает что Делфи отстой, никоим образом не говорит о том что я не читал статью. Я вам привел пример из заголовка. Хотите другой пример — пожалуйста, ваши слова: «у Delphi практически нет никаких преимуществ перед современными средствами разработки. Увы, но это факт». Мало того что вы пишете свое субъективное мнение о том как все плохо, вы еще и оформляете его в формате достоверного факта
Каюсь, заголовок — это своеобразный вброс, детектор для таких как вы, например.

А теперь напишите, пожалуйста, 3 преимущества Делфи, выделяющуюю ее перед всеми современными IDE и языками. Только очень кратко, если можно.
Преимущества для кого? Для меня? Это будет выражением моего мнения. То что я считаю преимуществом (например, синтаксис Паскаля) для других будет недостатком. Именно про это я вам и написал: ваша статья — на 10% сбор субъективного мнения, которое вы пытаетесь (непонятно зачем) представить как аксиому и на 90% описание общеизвестных фактов, типа что существует SharpDevelop (по ссылке можно убедится сколько о нем только на хабре написано). Ваша статья в корне ни о чем, потому что дело не в языке, а в голове
>> Преимущества для кого? Для меня?
нет, я имею ввиду объективные преимущества.

>>Ваша статья в корне ни о чем
сотня с лишним хабровчан считает иначе

>>потому что дело не в языке, а в голове
я об это и написал в предпоследнем абзаце, все же видимо не читали.

Скажите, а веб-приложение вы тоже стали бы на Делфи писать? Или кроссплатформенное Win32/Linux/WinCE?

Что ж вы все-таки до меня донести пытаетесь?
> Что ж вы все-таки до меня донести пытаетесь?

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

Смысл статьи не в том чтобы плюнуть в сторну Delphi, а чтобы дать совет, как изучить ЧТО-НИБУДЬ ЕЩЕ, если вы уже знаете DELPHI.
То что меня не интересует холивары (о которых вы аж статьи пишите) не означает что мне нечего сказать. На эту тему сказано не мало, если вам интересны достоинства Делфи — вы без труда их найдете. Если вас интересует холивары на эту тему — в сети их полно. Я бы вам ответил насчет советов, которые как вы думаете ваша статья дает, но у меня нет желания продолжать эту дискуссию ни о чем.
к чему тогда эти ваши комментарии если вас не интересуют холивары и вы не пытаетесь ничего мне доказать? меньше слов — дешевле телеграмма.

Моя статья оказалась по нраву читателям, это было главной задачей ее создания
"[У C# и Delphi] редактор форм принципиально ничем не отличается." — Конечно. В основе стоит один и тот же человек Андерс Хейлсберг.
Я думаю Андерс, являющийся архитектором языков Object Pascal (Delphi) в прошлом и C# в настоящем к редактору форм отношения не имеет вообще никакого. Просто это удобный инструмент, который сложно сделать по-другому.
Object Pascal — Язык программирования, разработанный в фирме Apple Computer в 1986 году группой Ларри Теслера, который консультировался с Никлаусом Виртом. пруф вики
ОК. Поспешил. Но вы ведь не будете спорить, что среда разработки Delphi, над которой он работал в Borland и язык C#, над которым он работает в Microsoft — это все таки совершенно разные категории продуктов? И приплетать к похожести редактора форм Хейлсберга по меньшей мере странно.
И там и там «визуальное программирование» важная составляющая, не думаю что это совпадение.
> Главное, не забывайте, оператор сравнения на равенство это двойное равно "==". Понять это невозможно, надо просто запомнить.
А что тут понимать.
В C# оператор присваивания "=". Значит "=" уже не может быть оператором равенства, поэтому этим оператором является "=="
В отличии от Delphi в котором оператором присваивания является ":="…
НЛО прилетело и опубликовало эту надпись здесь
Кстати Delphi, в этом плане допускает некую двойственность: константы и дефолтные значения параметров используют одинарное равно как и оператор сравнения
Между прочим, многие фирмы еще зарабатывают нормальные деньги написанием продуктов на Delphi 7 и тут нету ничего плохого для фирмы. Конечно же c# уже намого опередил Delphi. Между прочим на нем и под веб можно писать очень удачно.
в точку. Продукт с которого я ушел продается по 200-700 долларов за коробочку в зависимости от функциональности. В месяц бывает что и 500 штук уходит. Delphi7, Firebird.
2016 год, пишем на 7ке, изменений ближайшие 2-3 года не предвидится.
Да что уж там говорить, например ядро Яндекс.Денег изначально было написано на дельфи. И охренительно работало надо сказать, да и разошлось неплохо )
Дельфи похож на капкан, в который попадаешь по молодости, привлеченный простотой, скоростью компиляции и обилием компонентов и потом трудно уже выбраться.
Различие в операторах — это мелочи, по сравнению с отсутсвием других возможностей, template<class ...> и т.п…
А что плохого в простоте и скорости? ;) Делфи не капкан, это трамплин для быстрого вхождения в профессию. Ограничиваться только Делфи не следует, конечно. Но вся прелесть Делфи как раз состоит в том, что он идеален для начинающих и дает представления не только о программировании, но и о концепциях
Вот как раз начинать с делфи и всякого такого — плохо. И «быстрое вхождение в профессию» — тоже плохо в данном контексте, имхо. Начинать надо с изучения алгоритмизации, сортировок массивов и прочих скучных вещей. Ничего плохого в простоте и скорости нет, иногда это необходимый критерий, да и на делфи можно писать (и пишутся) профессиональные вещи, однако RAD-инструментарии коварны в том плане, что на них можно писать совершенно ничего не понимая, это чревато многими плохими вещами, примеров куча кругом, оглянитесь, если сами в этой профессии. Именно это и есть капкан. Кроме того, именно потому к делфи и к «делфи-программистам» относятся (в том числе и тут) многие с усмешкой. Не потому, что они плохие, а потому, что хорошее теряется в кучах г от тех, кто быстро вошёл в профессию.
Аналогично могу сказать про PHP :)
Начинать надо с изучения алгоритмизации, сортировок массивов и прочих скучных вещей.

А как это связано с выбором ЯП? Помню, когда мы в ВУЗе в 2006 изучали алгоритмизацию на первом курсе, параллельно для практики изучали Паскаль, но вся теория шла вообще на бумаге, в блок-схемах или словесном описании алгоритма (подобие алг. языка).
Можно кончено и на гуслях научиться играть и использовать их в качестве «трамплина», но тогда есть риск до конца своих дней проиграть в оркестрах аутентичной музыки…
Раз уж вы привели пример из мира музыки, отвечу так же. Вот этот музыкант — скорее всего тоже слышал постоянно о том, что его инструмент отстой и дальше фольклорных ансамблей расти некуда. Но он играет на нем до сих пор и как видите, не ограничился народными застольными. Дело не в инструменте, дело в исполнителе
Дык я же не говорю ни в коем случае, что отстой, я говорю ТОЛЬКО о том, что владея этим инструментом даже в совершенстве, трудно (невозможно) будет попасть в большинство серьезных контор. Какая разница с чего начинать, по большому счету? Вопрос в том, что потом будет написано в резюме и как с этим резюме найти интересную перспективную работу. Так не лучше ли начинать с того, что реально требуется? О чем можно написать в резюме и разослать с ходу в кучу фирм и, по крайней мере, получить приглашение на собеседование… чем выискивать в куче предложений работы заветные строчки Delphi\BDE\SQL?
> Какая разница с чего начинать, по большому счету?

Я думаю разница все же есть, потому что для начинающего важна простота, чтоб не пасть духом. Это первое. Второе — я считаю Паскаль идеальным для обучения, потому что его синтаксис строг и лаконичен

> Вопрос в том, что потом будет написано в резюме

Это отличный и практичный взгляд на предмет. Я считаю нужно начинать с того, что нравится и вообще на первый год не думать о коммерческой стороне. Иначе велик шанс стать неплохим ремеслеником, но не программистом
Представление о программировании дает Паскаль. Делфи извращает понимание кодинга для новичка конкретно. Так же как и продукты мелкомягких.
Блин, да это все равно что говорить «он рос в плохом районе, поэтому стал бандитом». Это от программиста зависит — вырастет из него быдлокодер или профи. Про МС я промолчу, это какой-то тупой троллинг напоминает
А что не так с дженериками в Дельфи?
А когда они появились? 2007,2009? что так поздно?

Там были тяжелые годы. Генерики, конечно, жизнь упрощают, но ведь жили без них? Возможности ООП позволяли выстраивать адекватные схемы с минимумом кода. Но, в целом, да, конечно, «чуток» опоздали.
И делать приходилось контейнеры в сишном стиле, ага.
Когда встает ребром вопрос переноса проекта на другие платформы, например на мак — тогда вообще абзац наступает :)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
>(Пояснение для танкистов — программы, написанные на интерпретируемых языках компилируются непосредственно при выполнении)

Вот неправда!!! Вопиющая причем!!! Между компиляцией и интерпретацией лежит пропасть в подходе. Интерпретация это не есть компиляция на лету.
НЛО прилетело и опубликовало эту надпись здесь
А очень просто: интерпретация всегда однопроходна, компиляция же многопроходна (за редчайшим исключением)
Это редчайшее исключение — компилятор Delphi. Он однопроходен, потому так быстро и работает.
Я всегда считал, что основное отличие компиляции от интерпретации — невозможность использовать данные времени выполнения при переводе инструкции в машинный код. А какое формальное отличие?
Это только следствие

Принципиальное отличие в том, что между вашим кодом и процессором стоит интерпретатор
Интересно с это точки зрения посмотреть на JVM/CLI :) Программы на Java/C#/… компилируются в байт-код, который потом интерпретируется виртуальной машиной… Причём формально процесс в других языках тоже мало отличим (PHP, Python тоже сначала переводят в байт-код исходники, а потом его интерпретирует, даже примитивные BASIC'и использовали такой подход), но они считаются интерпретируемыми. Всё-таки наличие какой-то программы в рантайме между исходниками и процессором уже, по-моему, не является принципиальным отличием, скорее оно лежит как раз где-то в области взаимодействия времени выполнения и времени трансляции.
Перевод стенограммы и синхронный перевод :) Ещё 59 минут с секундами можете объяснять танкисту, что такое иностранные язык, перевод и синхронность :)

ЗЫ
Хотел посмотреть в вики, правильно ли употребил «синхронный перевод» (сомнения затесались) и вот что нашёл
Есть существенные различия между письменным переводом (англ. translation), который заключается в письменном переносе смысла из одного языка в другой, и устным переводом (англ. interpreting), состоящем в переносе смысла в устной форме или в форме жестов (в случае языка знаков) из одного языка в другой.
НЛО прилетело и опубликовало эту надпись здесь
ИМХО, двумя руками за Java SE. И мышкой попрограммировать можно. И не слишком сложно в плане перехода.
GUI?
А где же «переход на Java»?

PS
Не в обиду автору, но, судя по обильному использованию аиб-мемов в тексте, вы либо отчаянный читатель лурка, не сидящий на нормальных аиб, а то ивообще их не посещавший, либо попросту не в курсе, что использование мемов вне аиб — моветон :)
Жавы в десктопе (а у автора явно эта ниша) не сложилось. ЕЕ сегмент — вот ее ниша сегодня.
После того, как я несколько лет просидел на Delphi, переход с него на С++ показался поначалу мне очень сильным ударом. Нет всех тех удобных плюшек, дольше компилируется. Но потом я понял, что все встроенные библиотеки в С++ очень удобны — не надо тратить время, нервы на отладку того кода, который бы на Delphi принес дополнительный геморрой.

Хотя, конечно, начинать всяко проще с Delphi.
Будете смеяться, но я 2 года назад слово в слово прошел то, о чем Вы написали :)
На дельфи писал с 1996 года, все успешно, десяток высокобюджетных успешных проектов. Сам умышленно сломал это. Только начал с Qt.
Qt я забраковал. Точнее, ему оставил одну нишу — кроссплатформенность. «Пилить» софт с той скоростью, к которой привык, на нем никак не получается. Этому, в частности, мешает скорость компиляции :) Но он остался как одно из основных средств для разных утилит и для души.
Основным инструментом стал C#. Там, конечно, много вещей можно было спроектировать лучше, но это громадный шаг вперед, и писать на нем можно весьма быстро и качественно. Особенно что касается разной промышленной автоматизации, работы с аппаратурой и т.п., где надо в 50 потоков вести обработку — просто песня :)
А mono не пробовали для кроссплатформенности?
Пока что кроссплатформенность только в мечтах. В том сегменте, для которого я пилю, сугубо винды.
Здесь нет среды разработки, в которой можно было бы сделать весь проект.
Всплакнём над HomeSite 8-(
Кстати, как он сейчас называется?
HomeSite development ended effective May 26, 2009

After careful consideration, Adobe discontinued development of Macromedia® HomeSite® software effective May 26, 2009. Field and channel sales of the product ended on May 26 and sales across all channels, including the online Adobe Store, ended June 18, 2009. Existing customers are encouraged to consider the development environment of Adobe® Dreamweaver® CS4 software.

www.adobe.com/products/homesite/
RIP
А какая разница на чем писать и с чего на что переходить? Мне кажется, что главное понимать технологии и уметь правильно спроектировать архитектуру приложения, а реализовывать его нужно на том, что лучше всего подходит для конкретной задачи.
А почему нет «Путь четвертый. JAVA»? Я имею в виду JAVA как замена Делфи для десктоп-приложений. Сами же написали про зарплаты джавистов.
Вы жаву на десктопе кроме убогих программ для бесперебойников, видели?
Я — нет.
Жава ЕЕ в виде серверной части — вагоны, а вот в виде ГУЯ — не существует.
NetBeans, Eclipse — первое что приходит в голову, какой-то *Commander ещё помню, но не понравился, решил кроссплатформенность кроссплатформенностью, но удобство всё же важнее.
Вы жаву на десктопе кроме убогих программ для бесперебойников, видели?

Как минимум IDE — NetBeans, Eclipse, Aptana, RubyMine/IDEA, и еще с десяток. Игра «Майнкрафт», опять же :)
Я не придираюсь к словам, но Java на десктопе есть. Может, конечно, у нее своя ниша — но она есть.
Обратите внимание. Это все в основном девелопреские вещи. Прикладных не видно.
А, кстати говоря, почему? Язык мегаудобен, большинство необходимого разнообразного функционала (импорты) реализовано, JVM уже почти торт, так в чем дело? Порог вхождения и читабельность кода — по крайней мере, это меня привлекает в Java.
Сложность создания UI? Посмотрите, что заполонило рынок прикладного «наколеночного» десктопного софта уже больше десятка лет (даже до выхода Windows95) — программы, где интерфейсы создаются мышкой
Ну, не знаю. Вроде как сложности не замечал, по крайней мере, не для навороченных окошек. Ну да, чуть больше времени займет описать очередной LayoutManager, да и только :)
Я только предположил, GUI на Java не писал никогда и даже не читал как это делается, только CLI для общего развития и в процессе чтения разных умных книг :) Но судя по вашему ответу визуальных средств создания интерфейсов нет и всё надо описывать ручками в коде?
В нетбинсе есть редактор форм для swing. Вполне себе мышевозный.
Как сказали выше (не успел я ответить), NetBeans только для Swing есть редактор, а для устаревшего AWT я даже не знаю где можно откопать. Может быть, в Eclipse есть что-то. Но вообще де-факто — как вы сказали, ручками в коде. Да и не так там много кода для прописывания :)
Может причина в том, что:
Visual Studio — 1997 год (а до того Visual Basic — 1991, Visual C++ — 1992)
Delphi — 1995 год (а до того Turbo Pascal for Windows кажется тоже с визуальным проектированием был)
NetBeans — 1997 год (коммерческий версии, открыли в 2000)
Eclipse — 2001 год (до того, как я понял, был внутренним продуктом IBM)
IntelliJ IDEA — 2001 год

То есть к моменту выхода нормальных IDE для Java (что-то там с визуальным проектированием можно даже не затрагивать) и даже самой Java рынок десктопных GUI приложений под Windows был поделен Microsoft и Borland, явных преимуществ у Java в этом сегменте не было, тем более в 2002 году началась «эпоха Visual .NET».

А кода для контролов везде примерно одинаково прописывать по моему опыту, разве что напрямую Win32 API куда больше :)

Да, именно так, мне кажется. Но все равно смею поспорить, что Java весьма хороша и для десктопа, и для серверной части :) Еще бы подпилить виртуальную машину, дак то вообще счастье будет.
Не могу спорить, не владею темой, GUI серьезно давно не писал, а когда писал, во времена win2k, выбирал между VB 6.0 и Delphi каким-то (серверную часть писал на VC++ 6.0), основным критерием выбора было наличие литературы в книжных магазинах :) Про Java на десктопах кажется ничего на глаза не попадалось
Java весьма хороша и для десктопа

Начнем с очевидного. Многие темы GTK+ подхватываются Swing'ом криво и пестрят артефактами, да и сглаживание шрифтов под linux ужасно. Или вы рекоммендуете пользоваться SWT?
SWT не пробовал, а вообще, судя по описанию, можно и его. Если, конечно, это не сарказм был :)
Ну как бы уже ответили. По-моему Eclipse вполне достаточно.
Мы вот тоже в свое время писали на JAVA, ну не эклипс конечно, но вполне себе клиент-серверные приложения достаточно серьезные. Тогда никто особо не думал о кроссплатформенности, потому что в то время линукс на декстопах был большой редкостью. Просто язык хороший, потому и писали на нем. Но вот недавно понадобилось откопать проект один 5-летней давности, и так приятно было, что он запустился на Линуксе.
ИМХО JAVA очень даже годится как замена Делфи для написания тех программ, которые обычно пишут на Делфи. Я имею в виду всякие программы учета деятельности предприятия и т.п. Хотя сейчас наверное еще уместнее для этого будет веб.
Веб на яве прекрасно пишется
Вы совершенно правы. Я ждал когда мне напишут, что я забыл упомянуть Java. Мой опыт в этом языке довольно скромен, но я утвердился в мысли, что для десктопа Java малопривлекательна.