Re[4]: Чем вам всем не угодил Delphi?
От: swame  
Дата: 30.04.08 07:49
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Здравствуйте, _d_m_, Вы писали:


_>>>>Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно?

SB>>>Не знаю как другим, но мне не нравится:
SB>>>1.
SB>>>
SB>>>:=
SB>>>


___>>А по моему, так все правильно. По идее семантика оператора сравнения должна отличаться от оператора присваивания.


kuj>Наверно речь о том, что не удобно печатать := каждый раз. Все-таки оператор присваивания встречается на много чаще, чем оператор сравнения.


write-only код ?
Re[7]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.04.08 07:53
Оценка:
Здравствуйте, kuj, Вы писали:

G>>Знаю, но некоторые выражения на С++ с использованием автоинкремента очень громоздко выразить без него.

kuj>Ну это скорее камень в огород C++

С одной стороны да, с другой стороны показывает мощьность этих операторов.
В любом случае возможность есть, а использовать её неикто не заствляет.
Re[8]: Чем вам всем не угодил Delphi?
От: Lloyd Россия  
Дата: 30.04.08 07:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

L>>С тем же успехом можно сказать, что и в C++ нельзя позвращать ссылку, т.к. ее нужно будет освобождать.

G>В C++ можно вернуть объект (не ссылку), в делфяф такое нельзя сделать в принципе

а я не про объект, я про ссылку.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[4]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 07:54
Оценка: +1
Здравствуйте, kuj, Вы писали:

kuj>Здравствуйте, DOOM, Вы писали:


DR>>>Не нравится Дельфи из за типично чрезвычайно низкого качества написанных на ней программ. Троечники собирают на этом небезопасном языке свои компоненты из компонентов написанных другими троечники, а конечные программы являются результатом нескольких итераций этого процесса.


DOO>>Что-то мне подсказывает, что еще пара лет и так же начнут хаять .Net с C#...


kuj>Сомневаюсь сильно. Java вон куда старше .NET и ничего — живет и здравствует.


Вопрос распространенности — когда Java появится на парах по информатике в вузах с непрограммистскими специальностями, тогда и ее начнут хаять.
У связки .Net и C# есть все шансы там появится (сейчас, наверное, там все еще дельфи живет).
Re[5]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.04.08 08:01
Оценка: +3
Здравствуйте, swame, Вы писали:

S>Здравствуйте, kuj, Вы писали:


kuj>>Здравствуйте, _d_m_, Вы писали:


_>>>>>Постоянно читая RSDN имел возможность неоднократно убедиться что большинство участников сильно не любят Delphi. Уж очень стало интересно, а за что собственно?

SB>>>>Не знаю как другим, но мне не нравится:
SB>>>>1.
SB>>>>
SB>>>>:=
SB>>>>


___>>>А по моему, так все правильно. По идее семантика оператора сравнения должна отличаться от оператора присваивания.


kuj>>Наверно речь о том, что не удобно печатать := каждый раз. Все-таки оператор присваивания встречается на много чаще, чем оператор сравнения.


S>write-only код ?


Ну что вы как дети. := и =, а также = и == имеют значение только для обучения. Причем ооочень начального (школьного). Человек на первом курсе вуза вполне может понять различия.
У учитывая то что все современные компиляторы C++ выдают варнинг на выражение if(a = 1) совершать такие ошибки гораздо сложнее.

Короче := и = — исключительно дело вкуса.
Re[5]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:02
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>И неконтролируемая... Из-за которой, порой, возникают прелесные фризы на ровном месте.

G>>За год работы на .NET ни одного случая не видел, вам видимо везет.

H>Видимо. И не только мне. На форумах обсуждалось неоднократно с последующими советами понавставлять по коду GC.Collect


Ссылки в студию.

G>>Ну смотри пример выше. сылочная объектная модель без GC вносит ограничения, которые невозможно обойти.

G>>Хотя я не сомневаюсь что старому паскалисту делфи гораздо легче чем С++.

H>Это с возвратом созданного объекта чтоль? Ну и в чем проблема? Вот GetMem/VirtualAlloc тоже сырую память отдают и ее возвращать нужно. Не смущает? На самом деле ни какой проблемы в этом нет, объекты, как правило создаются для хранения в каких-либо коллекциях/списках и прочих. И уж точно нет ни какого напряга дернуть Free. Придирки, и не более того.


Ты забываешь о человеческом факторе.

G>>Мда... Это на фоне того, что появилось в C# 3.0 в 2007 году. Делфи тут оооочень сильно отстает.


H>Уж не про LINQ ли ты говоришь Ну в 2008 или 2009 обещают анонимные методы добавить еще.


Lambda, linq, implicitly typed variables (я, правда, несколько негативно к идеи применения var отношусь, но это тема для отдельного разговора), extension methods, annonymous types, auto properties, type inference, object и collection initializers...

H>Ну я код постить не собираюсь, в гугле найдешь если интересно. Я наводку дам. В паскале есть чудесная функция Write/WriteLn реализовать которую средствами самого языка невозможно (не прибегая к константным массивам, что все равно не является полноценным решением), но использовать которую очень удобно. Можно легким движением руки превратить ее в приличный логгер перенаправив вывод (да не просто перенаправить, а целый обвяз создать) куда угодно. Делается это именно благодаря библиотечному устройству и без каких либо низкоуровневых API.


H>>>Списки (различные), стеки, очереди, бит-контейнеры, ассоциативные массивы. Мало?

G>>Это оно когда появилось? Случаем не в Delphi.NET ?
H>В нативной 2006 точно есть. Может и в 2005 было, я не помню.
Только без generic`ов ОЙ как плохо.

H>>>И вправду можешь не продолжать... Ты явно не в теме (ну, или сильно субъективен, что аж перекашивает).

G>>Я на Delphi писал большую часть моей программистской жизни.
G>>А вы на C# попробуйте пописать, сразу поймете.

H>Я скорее на Ada пересяду, чем на C#


Re[3]: Чем вам всем не угодил Delphi?
От: goto Россия  
Дата: 30.04.08 08:03
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, goto, Вы писали:


G>>Паскаль был придуман как учебный язык для изучения основ программирования. Прежде всего из-за этого он приобрел популярность, и его уже потом Борланд (собственно и выросший, насколько помню, на Турбо Паскале) стал его развивать как промышленный. На Дельфи не работал, но в свое время мне Турбо Паскаль не нравился своей эклектичностью: на язык, изначально придуманный только для обучения, не для разработки, стали искуственно навешивать необходимую функциональность и модные фичи. Но это все эмоции. Понятно, что на Паскале можно писать.


DOO>Ну, во-первых, тот же питон тоже был придуман для обучения, как и scheme — но это им не мешает занимать свою нишу (в случае с питоном очень даже неплохую).


И шо? И у Дельфи есть ниша. Я не эксперт, но пока понимаю так. Если у Питона, ниша "смысловая" — получился объективно хороший язык для скриптов, то популярность Дельфи проистекает из других вещей, прежде всего из низкого порога вхождения при разработке UI-приложений + из того, что Дельфям просто обильно и безальтернативно учат в ВУЗах и техникумах.

DOO>Во-вторых, одного взгляда на C++ должно хватать, чтобы понимать какими агли хаками шел переход от C до C++ (есть где-то в недрах gcc C++ препроцессор — т.е. преобразование программы на C++ в программу на C — все конструкции С++ раскрываются как макросы).


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

Насчет данного агли хака не в курсе. На писюках, насколько помню, С++ появился в реализации Борланд. Компилятор требовал аж 2 мега памяти (много по тем временам). Так что с новым языком было трудно "побаловаться", плавного перехода не было.

G>>Раньше на Паскаль смотрели без уважения и нехорошо из-за нестандартности, отсутствия кроссплатформенности и вообще минимальной переносимости.

DOO>Тут о сих пор народ мало волнует переносимость, а уж лет 10 назад (в России в крайнем случае).

Раньше это было как раз актуальней, т.к. существовал большой парк мэйнфреймов со своими ОС, более разнообразных рабочих станция (не только под Юниксами), на писюках попадались другие системы, например, OS/2. По-моему, это сейчас проблема переносимости не так остра. Прежле всего, разнообразие систем уменьшилось, + какая-никакая стандартизация со временем принесла плоды.

G>>И ведь среда по подходу не хакерская ни разу. Формочки там всякие, драг-н-дропы. Несерьезно .

DOO>Ну как раз всяких примеров сниферов и тому подобных шутк на дельфях хватало. Опять же — make в комплекте шел — пиши все в шелле, никто не мешает.

Я тоже шутил . Все это немного на грани СВ
Re[5]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:04
Оценка:
Здравствуйте, swame, Вы писали:

kuj>>Наверно речь о том, что не удобно печатать := каждый раз. Все-таки оператор присваивания встречается на много чаще, чем оператор сравнения.


S>write-only код ?


С какой стати?

= :=
== =
Re[6]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 08:07
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Короче := и = — исключительно дело вкуса.


А если еще учесть, что за 10 лет школы человек привыкает, что "=" означает сравнение, то для оператора присваивания ему логично увидеть новое обозначение, а для сравнения оставить прежнее
Тут можно возразить, что есть еще кое-где оператор тождественного сравнения: "===" — и в таком случае логичнее обозначать просто сравнение "==" (ну чтобы они похожи были), но такого оператора нет в C++
А вообще даешь привычные математические обозначения:
← — присвоение
≡ — тождественное равенство
≠ — не равно
≈ — сравнение чисел с плавающей точкой
Re[3]: Чем вам всем не угодил Delphi?
От: Lloyd Россия  
Дата: 30.04.08 08:08
Оценка:
Здравствуйте, hattab, Вы писали:

K>>6. Несовместимость разных версий IDE


H>А зачем мне совместимость IDE? Чего там совмещать?


Видимо имелось в виду то, что формат dfm-а время от времени перестает пониматься более новой версией IDE.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[6]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:11
Оценка: 1 (1)
Здравствуйте, gandjustas, Вы писали:

H>>Это с возвратом созданного объекта чтоль? Ну и в чем проблема? Вот GetMem/VirtualAlloc тоже сырую память отдают и ее возвращать нужно. Не смущает? На самом деле ни какой проблемы в этом нет, объекты, как правило создаются для хранения в каких-либо коллекциях/списках и прочих. И уж точно нет ни какого напряга дернуть Free. Придирки, и не более того.

G>Я ловил сотни ошибоки из-затого что люди забывали/не_знали_что_надо вызывать Free. В Управляемых средах вообще таких проблем нет. Придирки вполе по делу. Вы просто не понимаете, потому что не работали с этим.

В управляемых средах забывают делать Dispose. GC не всесилен — такие ресурсы как File или DbConnection, например, приходится высвобождать явно, реализуя IDisposable.

К счастью есть FxCop, который ткнет носом.
Re[4]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 08:15
Оценка: -1
Здравствуйте, goto, Вы писали:

G>Здравствуйте, DOOM, Вы писали:


DOO>>Здравствуйте, goto, Вы писали:


G>>>Паскаль был придуман как учебный язык для изучения основ программирования. Прежде всего из-за этого он приобрел популярность, и его уже потом Борланд (собственно и выросший, насколько помню, на Турбо Паскале) стал его развивать как промышленный. На Дельфи не работал, но в свое время мне Турбо Паскаль не нравился своей эклектичностью: на язык, изначально придуманный только для обучения, не для разработки, стали искуственно навешивать необходимую функциональность и модные фичи. Но это все эмоции. Понятно, что на Паскале можно писать.


DOO>>Ну, во-первых, тот же питон тоже был придуман для обучения, как и scheme — но это им не мешает занимать свою нишу (в случае с питоном очень даже неплохую).


G>Если у Питона, ниша "смысловая" — получился объективно хороший язык для скриптов

Я думаю, тут куча народу бы стала спорить — кто там и для каких скриптов хорош (по-любому, нашлись бы противники питоновской фичи по смешиванию оформления кода и задания границ синтаксических конструкций)
Можно ведь сказать, что "Delphi — объективно хороший язык/IDE для создания настольных приложений" Вот только ни фига это не будет объективно



DOO>>Во-вторых, одного взгляда на C++ должно хватать, чтобы понимать какими агли хаками шел переход от C до C++ (есть где-то в недрах gcc C++ препроцессор — т.е. преобразование программы на C++ в программу на C — все конструкции С++ раскрываются как макросы).


G>Язык и реализация его компилятора — разные вещи.

Бесспорно, просто это демонстрация — C++ разрабатывался именно, как надстройка над C, который, по-любому, когда-то был не более, чем набор удачных макросов для какого-нибудь ассемблера (вон я в универе делал из NASM'а эдакий Basic ). Вот все это и тянется в финальном языке.


G>>>Раньше на Паскаль смотрели без уважения и нехорошо из-за нестандартности, отсутствия кроссплатформенности и вообще минимальной переносимости.

DOO>>Тут о сих пор народ мало волнует переносимость, а уж лет 10 назад (в России в крайнем случае).

G>Раньше это было как раз актуальней, т.к. существовал большой парк мэйнфреймов со своими ОС, более разнообразных рабочих станция (не только под Юниксами), на писюках попадались другие системы, например, OS/2. По-моему, это сейчас проблема переносимости не так остра. Прежле всего, разнообразие систем уменьшилось, + какая-никакая стандартизация со временем принесла плоды.

Ну сколько процентов программистов 10 лет назад в России писали программы для мэйнфреймов? Еще лучше вопрос — сколько мэйнфреймов было в России 10 лет назад
Re[5]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:16
Оценка:
Здравствуйте, wallaby, Вы писали:

W>Какие проблемы и как делать инкремент\декремент без объявления типа указателя (фактически задавая размер памяти, адресуемой указателем)?

W>В Delphi нет пост/прекрементов, но это не напрягает и имхо это вообще наследие архитектуры PDP-11, где пост/прекременты поддерживались на уровне системы команд процессора.


int x = 3;

x += x++;


Вопрос: чему равен x?
Re[3]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:19
Оценка:
Здравствуйте, DOOM, Вы писали:


G>>2)Отсутствие интерфейсов и множественного наследования. (наследие паскаля)


DOO>Зато были делегаты (нет необходимости в интерфейсах), виртуальные конструкторы (вроде, сам уже плохо помню) и еще много чего.


С какой радости делегаты отменяют необходимость в интерфейсах???

G>>3)Отсутствие Generic типов или шаблонов любого вида. (наследие паскаля)

DOO>Шаблон — это скорее развитый препроцессор. Препроцессор отношения к языку не имеет (что мне мешает взять и мои исходники на дельфях обработать препроцессором того же gcc?).

Ой ли?
Re[5]: Чем вам всем не угодил Delphi?
От: Lloyd Россия  
Дата: 30.04.08 08:21
Оценка:
Здравствуйте, DOOM, Вы писали:

C>>Это неверно. GCC транслирует программу на С++ в общее представление (в GIMPLE, а потом в RTL). Чистый С идёт точно по такому же пути.

DOO>Я имел ввиду, что не сам gcc — как компилятор C++ так делает, а была какая-то отдельная программка (я ее ни разу не смотрел в работе), которая именно переводила C++ в С путем препроцессинга. Вроде она до сих пор имеется в пакете gcc — надо бы поискать.

cfront?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[6]: Чем вам всем не угодил Delphi?
От: DOOM Россия  
Дата: 30.04.08 08:21
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Здравствуйте, wallaby, Вы писали:


W>>Какие проблемы и как делать инкремент\декремент без объявления типа указателя (фактически задавая размер памяти, адресуемой указателем)?

W>>В Delphi нет пост/прекрементов, но это не напрягает и имхо это вообще наследие архитектуры PDP-11, где пост/прекременты поддерживались на уровне системы команд процессора.

kuj>

kuj>int x = 3;

kuj>x += x++;

kuj>


kuj>Вопрос: чему равен x?


Еще хороший вопрос:
$a[$i++]=$i


Ну или даже круче:
$a[$i++]=$i  VS  $a[$i++]=$i+0


Ой, сейчас разойдусь... Perl cо своим криптосинтаксисом тут всех уделает
Re[5]: Чем вам всем не угодил Delphi?
От: Cyberax Марс  
Дата: 30.04.08 08:24
Оценка:
Здравствуйте, DOOM, Вы писали:

C>>Это неверно. GCC транслирует программу на С++ в общее представление (в GIMPLE, а потом в RTL). Чистый С идёт точно по такому же пути.

DOO>Я имел ввиду, что не сам gcc — как компилятор C++ так делает, а была какая-то отдельная программка (я ее ни разу не смотрел в работе), которая именно переводила C++ в С путем препроцессинга. Вроде она до сих пор имеется в пакете gcc — надо бы поискать.
Да, была — сfront (на ней ещё куча компиляторов было основано). Но С++98 уже не осиливала.
Sapienti sat!
Re[2]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:26
Оценка: -1
Здравствуйте, goto, Вы писали:

G>Не знаю как сейчас, но на Дельфи еще недавно учили толпы студентов и школьников (а какая альтернатива? Бэйсик?). Учили очень часто низкокачественно. Одно время действительно гуляло большое количество "крутых программистов на Дельфи", которые веселили искушенную публику разными штуками, и кодом. По личным ощущениям массово стали нормально учить программированию только последние несколько лет, и в серьезных местах преподают уже не Дельфи (если что, поправьте, пож-та, кто ближе к образованию).


Делфи все еще даже в ВУЗах на программистских специальностях преподают.

Программы в ВУЗах очень инертны — они никак не поспевают за стремительным развитием IT.

Вместо Delphi пора преподавать .NET технологии.
Вместо Prolog — Erlang.
и т.д.
Re[7]: Чем вам всем не угодил Delphi?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 30.04.08 08:29
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, gandjustas, Вы писали:


G>>Короче := и = — исключительно дело вкуса.


DOO>А если еще учесть, что за 10 лет школы человек привыкает, что "=" означает сравнение, то для оператора присваивания ему логично увидеть новое обозначение, а для сравнения оставить прежнее

DOO>Тут можно возразить, что есть еще кое-где оператор тождественного сравнения: "===" — и в таком случае логичнее обозначать просто сравнение "==" (ну чтобы они похожи были), но такого оператора нет в C++
DOO>А вообще даешь привычные математические обозначения:
DOO>← — присвоение
DOO>≡ — тождественное равенство
DOO>≠ — не равно
DOO>≈ — сравнение чисел с плавающей точкой
DOO>

А зачем вообще приносить в программирование математическую запись? Бредовая изначально идея.
Re[4]: Чем вам всем не угодил Delphi?
От: kuj  
Дата: 30.04.08 08:30
Оценка:
Здравствуйте, goto, Вы писали:

DOO>>Ну, во-первых, тот же питон тоже был придуман для обучения, как и scheme — но это им не мешает занимать свою нишу (в случае с питоном очень даже неплохую).


G>И шо? И у Дельфи есть ниша.


Была. Уже нету. Занята .Net

Legacy-код остался конечно — с этим ничего не поделаешь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.