Здравствуйте, kuj, Вы писали:
L>>Видимо имелось в виду то, что формат dfm-а время от времени перестает пониматься более новой версией IDE.
kuj>Microsoft движется (хоть и медленно) в правильном направлении со своим Visual Studio — начиная с VS 2005 все файлы проектов C# и VB это не что иное, как xml-скрипт msbuild. Солюшен VS 2005 можно собрать без самого VS 2005 — просто вызвав msbuild <name>.sln, где msbuild идет в поставке с .NET Framework, начиная с .NET 2.0. kuj>Msbuild сам по себе фактически полный аналог (функционально) nAnt`у. Позволяет писать фактически какой угодно сложности сценарии по сборке, тестированию и deploying`у.
Я очень рад, что ты это знаешь, но при чем тут это?
Здравствуйте, hattab, Вы писали:
H>Ну во прикинь на каких машинках захочет работать .Net FW 3.0, а 4.0? А потом захочет Висту. Ну дальше развивать не буду пожалуй
.NET Framework бесплатен, кто мешает положить вместе с дистрибутевом фреймворк?
H>SOAP-сервис Delphi чем-то хуже SOAP-сервиса на .Net/Java?
Хуже. В WCF можно параметры сервиса (протоколы и пр.) поменять в конфиге, не трогая код.
Здравствуйте, hattab, Вы писали:
H>>>Давай не будем углубляться в эту тему. В вопросе о цене владения перевес будет явно не на стороне .Net (но мне эту тему развивать не сильно интересно)
kuj>>Это с какой это радости-то?
H>Ну во прикинь на каких машинках захочет работать .Net FW 3.0, а 4.0? А потом захочет Висту. Ну дальше развивать не буду пожалуй
Ну захочет Висту и что? К тому времени XP давно уже не будет продаваться и скорее всего уже будет Windows 7...
.NET 2.0 работает себе на древней Windows 98, которой уже ОЙ как много лет...
К тому же все это копейки на фоне стоимости разработки и сопровождения.
Как в Delphi обстоят дела с unit test`ами? О каком scalability приложения может вообще идти речь, когда нет ни unit test`ов, ни DI/IoC?...
H>>>Ты знаешь, для меня веб-разработка, где-то очень далеко за горизонтом В демосах есть примеры реализации интернет магазинов/каталогов. Посмотри, если интересно. У Борланда QualityCentral работает на этом.
kuj>>Только все это прошлый век на фоне современных web-приложений .net и java.
H>SOAP-сервис Delphi чем-то хуже SOAP-сервиса на .Net/Java?
Web-приложения это далеко не только SOAP и таки да — хуже, так как сложнее в разработке и сопровождении. По вышеозначенным причинам.
Здравствуйте, lifrsdn, Вы писали:
L>Здравствуйте, DOOM, Вы писали:
L>>>1. Объявление переменных в месте использования. Не критично, но ползти в var неприятно. DOO>>На вкус и цвет — когда в одном месте, оно читабельнее.
L>Чем читабельнее? Особенно, когда временных много.
Тем и читабельнее. Почему-то в исходники самбы, написанной на C я могу въехать за пару тройку часов, а в среднестатистическую C++'ную программу и за пару дней не въеду.
Временные переменные при этом есть везде — но вот возможность на каждый блок объявить свою, как ни странно, сильно захламляет код.
L>>>2. Переопределяемых операторов. Часто сложная математика выглядит с ними привычнее. DOO>> Читать потом тяжко... L>
DOO>>CString str;
DOO>>...
DOO>>(char *)str //вот и пойми, что это перегруженный оператор на самом деле :xz:
L>
L>Во-вторых — оно в каких случаях нужно-то?
Что конкретно? Понять, что это перегруженный оператор? Это нужно когда читаешь/модифицируешь чужой код.
L>>>3. Вынесу отдельно — возможности построения типов с поведением, как у стандартных. DOO>>А подробнее? Вроде все строилось как надо... L>С большими числами, с особоточными числами, с тензорами формулы записывать не пробовали?
А все понял, что имелось ввиду...
L>>>4. Препроцессор. Да его ругают, но лучше иметь возможность его использовать. DOO>>Используй внешний (и отлаживаться проще). L>Так тут вопрос в том, что есть выбор.
Дак тут замечание о том, что препроцессор к языку отношения не имеет (хотя к IDE имеет, не спорю).
L>Ну это, кстати, всё мелочи. По основным пунктам возражений что лучше нет?
А каким основным?
Про деструкторы? Что-то есть — я просто сейчас уже точно не смогу грамотно на эту тему поспорить.
Про обязательность вызова конструктора как-то не понял, что имелось ввиду.
Шаблоны — на вкус и цвет. Мне они как-то не нравились в свое время.
Про оптимизатор на уровне Intel C++ — ну и сколько процентов народу используют этот компилятор? А у остальных тоже не такие уж выдающиеся результаты по сравнению с ним.
Здравствуйте, DOOM, Вы писали:
TEO>>Кто-нибудь может то же самое написать для Delphi?
DOO>Еще раз: криптосинтаксис лучше всего развит в перле. Приведенное выше — детский лепет, по сравнению хотя бы с этим:
Здравствуйте, Mr.Cat, Вы писали:
MC>Не знал . А пример можно?
На всякий случай напомню, что автор Delphi (точнее, Object Pascal) перешел из инпрайз в майкрософт и последние много лет занимается разработкой языка C# и оказывает влияние на всю .Net платформу.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, goto, Вы писали:
G>Сей ужас был в основном пораньше, > 10 лет назад. Из-за этого, в частности, многие вещи, совершенно не вычислительные, когда-то даже писали на FORTRAN IV, это был едва ли не единственный общий знаменатель. Потом им стал С.
Там где я начинал трудовую деятельность мейнфрейм (IBM/360) сдали на металлолом около 15 лет назад. Кстати, в нём была куча драгметаллов, вырученных денег хватило на несколько самых современных по тем временам персоналок. А cофт (в основном Кобол, меньше — Фортрана и PL) переводили на FoxPro, когда я оттуда уволился.
---
The optimist proclaims that we live in the best of all possible worlds; and the pessimist fears this is true
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, hattab, Вы писали:
H>>Пример использования: H>>
H>> <skip>
H>>
MC>Ага, пасиб. А можно, например, зная имя класса, получить экземпляр этого класса? Как Class.forName() плюс Class.newInstance() в Java?
Можно. Для потомков TPersistent даже RTTI не требуется, это штатное поведение. Через RTTI тоже можно, с условием, что у класса будет виртуальный конструктор. Но даже и без этого условия можно, только будет сильно сложнее.
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, hattab, Вы писали: H>>SOAP-сервис Delphi чем-то хуже SOAP-сервиса на .Net/Java?
MC>Речь не о SOAP-сервисах, а о создании веб-морд. Т.е. упрощенно — когда есть HTML-шаблоны и java/.net код, который на их основе хитро генерит динамические страницы. Ну, короче, как в php.
WebSnap. Ребята, оно было еще в 6 версии. Intraweb еще круче
Здравствуйте, DOOM, Вы писали:
DOO>Здравствуйте, TheEvilOne, Вы писали:
TEO>>Кто-нибудь может то же самое написать для Delphi?
DOO>Еще раз: криптосинтаксис лучше всего развит в перле. Приведенное выше — детский лепет, по сравнению хотя бы с этим:
<skip>
Я против перла ничего не имею и не говорил. Только вот Вы забыли, откуда что взялось.
По поводу детского лепета — то же самое можно сказать и о приведенной Вами программе.
Здравствуйте, hattab, Вы писали:
kuj>>>>Не может быть никаких фризов. Сборщик муссора ведь не в главном потоке приложения выполняется.
H>>>Суслика видишь? Нет. А он есть (c) ДМБ. А сборщику не нужно лочить кучу, чтоб дефрагментацию делать? А процы уже у всех поголовно двух/четырех головые?
kuj>>То, чего пользователь не видит для него не существует. Это только то, что имеет значение.
H>Я в WindowsLiveWriter наблюдаю периодические фризы. Не стану утверждать, что это GC или JIT. Но они есть.
Я тебе как разработчик .Net с 99% вероятностью скажу, что фризы эти, если они и имеют место, не имеют отношения к GC.
kuj>>В том, что GC один на всех. Если один процесс пнет его — очисти кучу в то время, как другой процесс нагружает его alloc`ами, то что произойдет? GC сам должен регулировать этот процесс, чтоб для пользователя он был абсолютно незаметным.
H>Мы точно о Delphi говорим?
Конечно нет. В Delphi (не .NET) нет GC.
H>Какие там разные процессы? Или ты про разные Delphi-процессы? Там же нет такого отдельного понятия, как GC в .Net/Java. Просто есть типы с управляемым временем жизни. Вышла переменная из области видимости -- компилер ее тут же зафиналил. Все просто и эффективно.
Ты не путай GC и недо- smart pointers.
В C++, например, есть реализация smart pointers (в boost), базирующаяся на подсчете ссылок. Это куда эффективнее области видимости.
kuj>>>>Без полноценного DI в Delphi толку от интерфейсов куда как меньше.
H>>>Чего-то не улавливаю связи...
kuj>>Я писал где-то в этом топике. Вся сила интерфейсов раскрывается при наличии полноценного DI/IoC контейнера.
H>Все это сильно зависит от способа применения и изобретательности
Здравствуйте, TheEvilOne, Вы писали:
TEO>Здравствуйте, DOOM, Вы писали:
DOO>>Здравствуйте, TheEvilOne, Вы писали:
TEO>>>Кто-нибудь может то же самое написать для Delphi?
DOO>>Еще раз: криптосинтаксис лучше всего развит в перле. Приведенное выше — детский лепет, по сравнению хотя бы с этим: TEO><skip> TEO>Я против перла ничего не имею и не говорил. Только вот Вы забыли, откуда что взялось.
Откуда? Ларри Волл вообще-то лингвист, скорее всего именно поэтому перл такой "не такой".
TEO>По поводу детского лепета — то же самое можно сказать и о приведенной Вами программе.
Ну дак это был самый древний пример
Вот уже более прикольная штука:
L>>>>1. Объявление переменных в месте использования. Не критично, но ползти в var неприятно. DOO>>>На вкус и цвет — когда в одном месте, оно читабельнее.
L>>Чем читабельнее? Особенно, когда временных много. DOO>Тем и читабельнее. Почему-то в исходники самбы, написанной на C я могу въехать за пару тройку часов, а в среднестатистическую C++'ную программу и за пару дней не въеду.
Тогда уж сравнивай среднестатистическую C со среднестатистической C++... Хотя это из разряда сферических коней...
DOO>Временные переменные при этом есть везде — но вот возможность на каждый блок объявить свою, как ни странно, сильно захламляет код.
Не согласен.
DOO>Шаблоны — на вкус и цвет. Мне они как-то не нравились в свое время.
Здравствуйте, hattab, Вы писали:
MC>>Речь не о SOAP-сервисах, а о создании веб-морд. Т.е. упрощенно — когда есть HTML-шаблоны и java/.net код, который на их основе хитро генерит динамические страницы. Ну, короче, как в php.
H>WebSnap. Ребята, оно было еще в 6 версии. Intraweb еще круче
Хочу полноценный MVC с unit test`ами и расширяемым view-engine по типу Brail (из Castle Monorail)! Где?
Здравствуйте, Lloyd, Вы писали:
L>>>Видимо имелось в виду то, что формат dfm-а время от времени перестает пониматься более новой версией IDE.
kuj>>Microsoft движется (хоть и медленно) в правильном направлении со своим Visual Studio — начиная с VS 2005 все файлы проектов C# и VB это не что иное, как xml-скрипт msbuild. Солюшен VS 2005 можно собрать без самого VS 2005 — просто вызвав msbuild <name>.sln, где msbuild идет в поставке с .NET Framework, начиная с .NET 2.0. kuj>>Msbuild сам по себе фактически полный аналог (функционально) nAnt`у. Позволяет писать фактически какой угодно сложности сценарии по сборке, тестированию и deploying`у.
L>Я очень рад, что ты это знаешь, но при чем тут это?
Здравствуйте, kuj, Вы писали:
kuj>>>Называется: слышал звон, да не знаю где он?
H>>А ты думал я сейчас побегу на хобот искать Я же не пытаюсь тебе чего-то доказать.
kuj>Хотя это и повсеместная практика на КСВ, но все-таки это не хорошо кидаться безосновательными утверждениями...
Прикольная практика это ссылки просить по всякому поводу. Где же мне их помнить, истории уж полгода если не больше...
kuj>>>Человеческий фактор это не отмазка, а основной мотивирующий момент при разработке языков программирования.
H>>Сильно спорный тезис.
kuj>Ты это серьезно?
Я же упомянул о сигналящем менеджере. Что еще фактору нужно? Нужно в смирительную рубашку погрузить тело бренное, чтоб не дай бог глаз вилкой не выколол... Есть инструмент контроля. О чем тут спорить еще?
kuj>>>Все познается в сравнении.
H>>И чего теперь, роадмапами меряться?
kuj>При чем тут роадмапы? kuj>В OP речь шла о сравнении Delphi с современными управляемыми средами типа Java и .Net
Так ты перечислил что будет в C# 4.0. Вот когда оно будет, и когда в Delphi будет то о чем я тут говорил, тогда и можно мечами побряцать.
kuj>>>>>Только без generic`ов ОЙ как плохо.
H>>>>Не сильно, если честно kuj>>> H>>Ну, по личным ощущениям. Хотя мне идея дженериков нравится. Но есть идею которые нравятся больше
kuj>При чем тут идеи? Generics это вполне конкретный механизм, значительно повышающий читабельность и эффективность (производительность, качество) кода.
Есть другие идеи улыбающиеся мне сильнее чем дженерики и дающие не меньше пользы. Ну вот честно скажу, дженерики это хорошо и привлекательно. Но! Но, встроенный параллелизм мне улыбается больше. Параметрические итераторы мне улыбаются больше. Да много чего еще. Дженерики это не то из-за чего я бы ушел с языка.
kuj>Поясняю: препроцессорная реализация это костыль. Имея generics на языковом уровне я получаю все плюшки статически типизированной среды разработки: intellisense, refactoring и прочее.
Все это понятно и никто не оспаривает собственно идеи дженериков Чего на этом так заостряться? Будут они у нативных дельфистов во второй половине этого года
Здравствуйте, misha_irpen, Вы писали:
_>Все-таки я смотрю на синтаксис тоже много наездов. Но тут мои взгляды крайне противоположные. Мне очень не нравится write-only код всех сиподобнх языков, пусть он и дает большую гибкость, но цель не ИМХО оправдывеет средства.
_>Хоть ныне я уже не програмлю так много как раньше, тем не менее нахожусь в глухой оппозиции ко всему C-подомному и когда меня заставляют (люди или обстоятельства) писать на таком языке (чаще всего это PHP, JS и т.п. скрипты), то я становлюсь очень злой и использую все сишные синтаксические штучки-дрючки везде где это хоть малость оправдвно. Если конструкция типа a[i]+=(j=++i) сэкономит мне хоть одну строчку кода, то я использую ее без зазрений совести. Ибо нефиг. И пусть потом тот сишник, который будет этот код читать, прочувствует на собственной шкуре смысл поговорки "за что боролся, на то и напоролся".
Здравствуйте, DOOM, Вы писали:
DOO>Здравствуйте, goto, Вы писали:
G>>Да вроде как С++ придумывался как отдельный язык по подходу. Видимо синтаксис C хорошо ложится на большинство программистских мозгов, вот и был взят. DOO>Да при чем тут конкретно синтаксис — libc осталась. Появились char * vs std::string. Много еще таких несоответствий — если уж придумывали как отдельный язык, то и надо было делать отдельным языком, а поддержку C вынести в опциональную библиотеку, например.
Кризис мозга у обоих в чистом виде. Читайте оба — Википедиа — C++, особенно раздел "История". А вот потом уже делайте различные умозаключения, только, пожалуйста, исторически и логически правильные.