Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно?
Сам я от большого программинга уже отошел, хотя по прежнему могу считать себя профессионалом Delphi и ASM. И у меня приактически никогда не возникало проблем из-за каких-то ограничений языка. Я с уверенностью могу сказать, что могу написать на нем абсолютно все что угодно в рамках имеющихся API и математических моделей. При этом практически никогда не приходится изобретать велосипедов и извращаться чтобы обойти ограничения языка или стандартных библиотек. В чем по вашему мнению я заблуждаюсь? Что такого рулезного есть в новомоюдых сишарпах и иже с ними кроме монстровидных, а часто еще и тормозных RTE/виртуальных машин?
Во время пика своей популярности Delphi занимал ту нишу, которыю ныне занимают управляемые языки программирования. Выходит что позиционирование у него верное, неужели всм оказалась так нужна эта управляемость кода? Кстати, сборка мусора для некоторых типов данных (строки и динамические массивы) у Delphi была уже тогда.
Или может вам не нравиься Pascal? Но из других ваших сообщений явно следует что синтаксис -- это вторичное, да и наездов на него я вроде как не видел...
Просветите плиз вашу точку зрения, только объективно. Сетования на многомилионную армию малограмотных формоклепальщиков не принимаются, это не есть свойство языка или среды разработки.
Здравствуйте, misha_irpen, Вы писали:
_>Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно?
_>Сам я от большого программинга уже отошел, хотя по прежнему могу считать себя профессионалом Delphi и ASM. И у меня приактически никогда не возникало проблем из-за каких-то ограничений языка. Я с уверенностью могу сказать, что могу написать на нем абсолютно все что угодно в рамках имеющихся API и математических моделей. При этом практически никогда не приходится изобретать велосипедов и извращаться чтобы обойти ограничения языка или стандартных библиотек. В чем по вашему мнению я заблуждаюсь? Что такого рулезного есть в новомоюдых сишарпах и иже с ними кроме монстровидных, а часто еще и тормозных RTE/виртуальных машин?
_>Во время пика своей популярности Delphi занимал ту нишу, которыю ныне занимают управляемые языки программирования. Выходит что позиционирование у него верное, неужели всм оказалась так нужна эта управляемость кода? Кстати, сборка мусора для некоторых типов данных (строки и динамические массивы) у Delphi была уже тогда.
_>Или может вам не нравиься Pascal? Но из других ваших сообщений явно следует что синтаксис -- это вторичное, да и наездов на него я вроде как не видел...
_>Просветите плиз вашу точку зрения, только объективно. Сетования на многомилионную армию малограмотных формоклепальщиков не принимаются, это не есть свойство языка или среды разработки.
Ну лично мне не нравится глючность IDE. 5-я вроде как самая стабильная была...
Здравствуйте, misha_irpen, Вы писали:
_>Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно?
Не знаю как другим, но мне не нравится:
1.
Здравствуйте, misha_irpen, Вы писали:
_>Сам я от большого программинга уже отошел, хотя по прежнему могу считать себя профессионалом Delphi и ASM. И у меня приактически никогда не возникало проблем из-за каких-то ограничений языка. Я с уверенностью могу сказать, что могу написать на нем абсолютно все что угодно в рамках имеющихся API и математических моделей. При этом практически никогда не приходится изобретать велосипедов и извращаться чтобы обойти ограничения языка или стандартных библиотек.
На делфи, как и на асме можно сделать все. Ибо и тот и другой полны по тьюрингу. Остальные языки также полны по тьюрингу.
_>В чем по вашему мнению я заблуждаюсь? Что такого рулезного есть в новомоюдых сишарпах и иже с ними кроме монстровидных, а часто еще и тормозных RTE/виртуальных машин?
Автоматическая сборка мусора.
_>Во время пика своей популярности Delphi занимал ту нишу, которыю ныне занимают управляемые языки программирования. Выходит что позиционирование у него верное, неужели всм оказалась так нужна эта управляемость кода?
Просто Delphi был единственным инструментом ПРОСТОЙ визуальной разработки. То есть не требовались знания C\C++ и WinAPI, чтобы сделать более-менее рабочее приложение.
_>Кстати, сборка мусора для некоторых типов данных (строки и динамические массивы) у Delphi была уже тогда.
Это не преимущество, а попытка скрыть недостатки.
_>Или может вам не нравиься Pascal? Но из других ваших сообщений явно следует что синтаксис -- это вторичное, да и наездов на него я вроде как не видел...
Да, синтаксис паскаля многословный очень. Особенно бесило Procedure и Function. Это все при том, что почти не было поддержки со cтороны IDE.
_>Просветите плиз вашу точку зрения, только объективно. Сетования на многомилионную армию малограмотных формоклепальщиков не принимаются, это не есть свойство языка или среды разработки.
Недостатки
1)ссылочная обьектная модель в отсутствии сборщика мусора. надо явно вызывать Free для каждого объекта, что многие забывают. В С++ с этим проще, визуально несложно проверить парность new и delete. В деляфх гораздо сложнее из-за синтаксиса вызова конструктора. В С# вообще такой проблемы нет.
2)Отсутствие интерфейсов и множественного наследования. (наследие паскаля)
3)Отсутствие Generic типов или шаблонов любого вида. (наследие паскаля)
4)Отсутствие перегрузки функций (в ранних версиях) и операторов (вплоть до поздних). (тоже наследие паскаля)
5)Ужасная работа с указателями. (наследие паскаля)
6)Невнятная библиотека ввода-вывода (на самом деле несколько возможностей осуществлять IO, несовместимых междц собой).
7)Практически полное отсутствие контейнерной библиотеки
8)Большенство классов являются неочень качественными обертками над WinAPI.
9)Исполняемые файлы получаются очень тяжеловесными.
1. Автоматического вызова деструктров. Обязательности вызовов конструкторов.
2. Шаблонов. И после них весь хвост в виде контейнеров, алгоритмов...
3. Давно не писал на дельфи, но оптимизатор у ранних версий был несравним с intel c++. Не знаю как сейчас.
Что хотелось бы иметь:
1. Объявление переменных в месте использования. Не критично, но ползти в var неприятно.
2. Переопределяемых операторов. Часто сложная математика выглядит с ними привычнее.
3. Вынесу отдельно — возможности построения типов с поведением, как у стандартных.
4. Препроцессор. Да его ругают, но лучше иметь возможность его использовать.
_>Во время пика своей популярности Delphi занимал ту нишу, которыю ныне занимают управляемые языки программирования. Выходит что позиционирование у него верное, неужели всм оказалась так нужна эта управляемость кода? Кстати, сборка мусора для некоторых типов данных (строки и динамические массивы) у Delphi была уже тогда.
Во время пика Дельфи был и правда на высоте. Просто потом он сильно протормозил и выскочили Microsoft с .NET (в нише виндовых приложений). Ну а про веб я вообще молчу...
...Ei incumbit probatio, qui dicit, non qui negat...
Здравствуйте, vitaly_spb, Вы писали:
_>Во время пика Дельфи был и правда на высоте. Просто потом он сильно протормозил и выскочили Microsoft с .NET (в нише виндовых приложений). Ну а про веб я вообще молчу...
Ну если учесть что Delphi и C# создал один человек, то закат делфи — вещь совсем неудивительная
Здравствуйте, misha_irpen, Вы писали:
_>Во время пика своей популярности Delphi занимал ту нишу, которыю ныне занимают управляемые языки программирования.
Это далеко не так. Точнее только от части так.
_>Выходит что позиционирование у него верное, неужели всм оказалась так нужна эта управляемость кода? Кстати, сборка мусора для некоторых типов данных (строки и динамические массивы) у Delphi была уже тогда.
Делфи — низкоуровневый довольно примитивный императивный язык. Это не значит, что были задачи в его нише, которые нельзя было решить, но их решение было куда более сложным.
Нелюбовь к Делфи в первую очередь была обусловлена низким порогом вхождения. Я имею в виду, что было написано очень много низкокачественного кода. Масса любителей покидать компонентики на формочку, прописать пару обработчиков событий и гордо выпятить грудь мол — вот смотри какой я классный БЛОКНОТ написал!
Про ляпы и опусы типа возможности создать абстрактный тип данных я лучше вообще промолчу.
Здравствуйте, gandjustas, Вы писали:
G>Недостатки G>1)ссылочная обьектная модель в отсутствии сборщика мусора. надо явно вызывать Free для каждого объекта, что многие забывают. В С++ с этим проще, визуально несложно проверить парность new и delete. В деляфх гораздо сложнее из-за синтаксиса вызова конструктора. В С# вообще такой проблемы нет.
В C++ проще/лучше благодаря повсеместному использованию smart pointer`ов.
Здравствуйте, kuj, Вы писали:
kuj>Здравствуйте, gandjustas, Вы писали:
G>>Недостатки G>>1)ссылочная обьектная модель в отсутствии сборщика мусора. надо явно вызывать Free для каждого объекта, что многие забывают. В С++ с этим проще, визуально несложно проверить парность new и delete. В деляфх гораздо сложнее из-за синтаксиса вызова конструктора. В С# вообще такой проблемы нет.
kuj>В C++ проще/лучше благодаря повсеместному использованию smart pointer`ов.
Да даже не в этом дело. В C++ можно вернуть из метода экземпляр класса. В делфи нельзя. Ибо экземпляр — это ссылка, для которой явно надо вызвать Free.
kuj>Нелюбовь к Делфи в первую очередь была обусловлена низким порогом вхождения. Я имею в виду, что было написано очень много низкокачественного кода. Масса любителей покидать компонентики на формочку, прописать пару обработчиков событий и гордо выпятить грудь мол — вот смотри какой я классный БЛОКНОТ написал!
Это правда, кода много, а качества мало. MS Framework в этом смысле отличное решение, но на написание такого монстра очень много ресурсов надо было выложить, на что Борланд не хватило бы просто...
...Ei incumbit probatio, qui dicit, non qui negat...
Здравствуйте, kuj, Вы писали:
kuj>Нелюбовь к Делфи в первую очередь была обусловлена низким порогом вхождения. Я имею в виду, что было написано очень много низкокачественного кода. Масса любителей покидать компонентики на формочку, прописать пару обработчиков событий и гордо выпятить грудь мол — вот смотри какой я классный БЛОКНОТ написал!
По своему опыту скажу, что низкокачественного кода было написано дохрена и больше, чем высококачественного, не зависимо от платформы.
Здравствуйте, int64, Вы писали:
I>По своему опыту скажу, что низкокачественного кода было написано дохрена и больше, чем высококачественного, не зависимо от платформы.
Во всех программах на делфи, которые я видел, были утечки памяти. Для Java и .NET такого быть не может
Здравствуйте, gandjustas, Вы писали:
G>Да даже не в этом дело. В C++ можно вернуть из метода экземпляр класса. В делфи нельзя. Ибо экземпляр — это ссылка, для которой явно надо вызвать Free.
Почему нельзя, можно конечно.
function TSameObject.CreateStringList: TStringList;
begin
Result := TStringList.Create;
end;
Здравствуйте, gandjustas, Вы писали:
G>Недостатки G>1)ссылочная обьектная модель в отсутствии сборщика мусора. надо явно вызывать Free для каждого объекта, что многие забывают. В С++ с этим проще, визуально несложно проверить парность new и delete. В деляфх гораздо сложнее из-за синтаксиса вызова конструктора. В С# вообще такой проблемы нет.
знаешь, нормальный дельфист сразу видет парные Create/Free. Приемущество c++ в том, что в нем объекты на стеке могут распологаться..
G>2)Отсутствие интерфейсов и множественного наследования. (наследие паскаля)
интерфейсы есть уже лет 10, наверно...
G>3)Отсутствие Generic типов или шаблонов любого вида. (наследие паскаля) G>4)Отсутствие перегрузки функций (в ранних версиях) и операторов (вплоть до поздних). (тоже наследие паскаля)
хм. ранние — это какие?? такое ощущение, что ты знаешь только о delphi1
G>5)Ужасная работа с указателями. (наследие паскаля)
Что значит "ужасная" ??? Или строгая типизация тя не устраивает???
G>6)Невнятная библиотека ввода-вывода (на самом деле несколько возможностей осуществлять IO, несовместимых междц собой).
то есть в с++ — только один способ ввода/вывода??
G>7)Практически полное отсутствие контейнерной библиотеки G>8)Большенство классов являются неочень качественными обертками над WinAPI.
в чем конкретно некачественность?? ТОка не надо описывать конкретные глюки отдельных компонентов, такие вещи есть в любой библиотреке классов. В чем некачественность на уровне Classes.pas/Controls.pas/Forms.pas ??
G>9)Исполняемые файлы получаются очень тяжеловесными.
Хм. Ну давай я статически слинкую mfc exe'шник и сбилжу пустую форму на дельфи с ран-тайм пакетамм — и скажу MSVC — генериит очень тяжеловесные экзешники.
G>Я могу продолжить, но думаю этого хватит.
В принципе этого хватит. Уже видно, что все твои знания о дельфи почерпнуты из холли-варов на рсдн..
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, int64, Вы писали:
I>>По своему опыту скажу, что низкокачественного кода было написано дохрена и больше, чем высококачественного, не зависимо от платформы.
G>Во всех программах на делфи, которые я видел, были утечки памяти. Для Java и .NET такого быть не может
хм. прочем тут дельфи? Утечки памяти были, есть и будут во всех языках без GC
G>>Во всех программах на делфи, которые я видел, были утечки памяти. Для Java и .NET такого быть не может
J>хм. прочем тут дельфи? Утечки памяти были, есть и будут во всех языках без GC
Если в программе вместо буков вопросительные знаки — значит она написана на Дельфи.
Не нравится Дельфи из за типично чрезвычайно низкого качества написанных на ней программ. Троечники собирают на этом небезопасном языке свои компоненты из компонентов написанных другими троечники, а конечные программы являются результатом нескольких итераций этого процесса.
Здравствуйте, serg baburin, Вы писали:
SB>Здравствуйте, misha_irpen, Вы писали:
_>>Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно? SB>Не знаю как другим, но мне не нравится: SB>1. SB>
SB>:=
SB>
А по моему, так все правильно. По идее семантика оператора сравнения должна отличаться от оператора присваивания.
SB>2. SB>
SB>begin
SB>end
SB>
Ну да, несколько громоздко. Особено для тех, кто избалован С-подобным синтаксисом.