| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Форум группы: delphi > Delphi vs. C# |
| Автор: Keeper89 24.12.2009, 22:44 |
| Сабж. Давайте обсудим плюсы, минусы, сходства и различия. |
| Автор: Akella 24.12.2009, 23:58 |
| Наверное, основной минус сишарпа в том, что нужно таскать с собой инсталляху дотнета, при чём той версии, для которой скомпилирована программа. Второй минус в том, что по-человечески нельзя защитить программу. Я сишарп не знаю, поэтому по нормальному сравнить не могу. Код у сишарпа по сравнению с дельфи тяжело читаем. Основной плюс, наверное в том, что IDE есть бесплатные или сравнительно с Delphi дешёвые. Добавлено через 1 минуту и 33 секунды Я пытался начать писать на сишарпе, но попался проект, который нужно было быстро реализовать, так я и забросил сишарп. По моему мнению, лучше изучать джаву, нежели сишарп. А сишарп потом легко дастся, т.к. синтаксис весьма похож. Добавлено через 3 минуты и 42 секунды Не знаю, как для сишарпа, а вот на данный момент для дельфи ну просто нереальное количество компонентов самых разных. И программисту уже можно тратить больше времени на реализацию бизнес-логики приложения, нежели на дописывание, например, всяких фич для репортинга или отображения/фильтрации/сортировки данных в DBGrid`е. Добавлено через 4 минуты и 35 секунд Минус дельфи ещё в том, что нет встроенных регулярок и нормальной системы для построения отчётов. |
| Автор: Akella 26.12.2009, 16:28 |
не рулит, старьё Добавлено через 35 секунд Но компонентвми RAVE Report почему-то мало кто пользуется. |
| Автор: Keeper89 26.12.2009, 18:35 |
+1 Уже на 2009 столько ворнингов, что мама не горюй. Новые обсуждаются в http://forum.vingrad.ru/forum/topic-258533.html. |
| Автор: DarkProg 26.12.2009, 22:37 |
Ну в принципе если разрабатываешь полноценную БД для конкретной фирмы и известно что там есть MS Office, то можно отчёты создавать через это чудо, а потом пользователь пусть чего хочет с ними делает, если нету тогда хуже... Причём отчёт кидай хоть в Excel хоть в Word |
| Автор: Keeper89 26.12.2009, 23:04 |
| DarkProg, Во-первых, за Офис тоже нужно платить; Во-вторых, отчеты позволяют делать некоторые специфические и гибкие вещи. З.Ы. С отчетами ясно, давайте о чем-нибудь еще |
| Автор: cemick 27.12.2009, 09:45 |
| А че тут обсуждать главный плюс C# это платформа .net: Linh, WPF, тесная интеграция с SQL Server, потенциальная кроссплатформенность, SilverLight, все большая ориентированность на WEB и т.д. |
| Автор: bems 27.12.2009, 18:36 |
Ну это условный плюс. Веб-девелоперам конечно приятно думать что через пять лет кругом будет одно сплошное телевидение один сплошной веб, но эти слухи несколько преувеличены. Я бы сказал импотенциальная. Нету её |
| Автор: DarkProg 28.12.2009, 00:18 |
| Я считаю, что у Delphi более интуитивно понятные компоненты нежели чем у С# |
| Автор: profesiachuvak 30.12.2009, 00:40 | ||
DarkProg, Это Вы про VCL ? Помню пришлось с Borland Delphi на С++ Builder перейти, так собственно чувствовал себя как рыба в воде. |
| Автор: rodnover 30.12.2009, 08:47 |
| А чем компоненты билдера от компонентов Делфи кардинально отличаются? Из-за чего пришлось перейти? Вот я, лично, радовался, когда увидела в VS делфиподобные компоненты для .NET и сходные методы и свойства. Если сравнивать Delphi для .NET и C# я бы выбрал C#, а если не обязательно под .NET - без разговора Delphi (ну или CppBuilder) |
| Автор: Akella 30.12.2009, 11:03 |
| Я, конечно, не пользуюсь асмом, но в дельфи можно использовать асм. В дельфи можно использовать dll. Ну в сишарпе нормальные длл использовать можно, конечно, но не так просто. |
| Автор: profesiachuvak 1.1.2010, 23:33 | ||
Точно! асм это большой плюс |
| Автор: kemiisto 1.1.2010, 23:44 | ||||||
Ну это как посмотреть. Основной минус в наличии нескольких версий. А сам по себе мощный рантайм со сборкой мусора и рефлексией - это тема. За всё надо платить. Это смотря кто пишет и кто читает. Если нужна кросс-платформенность (точнее кросс-ОСность) "здесь и сейчас", то да.
Ты имел ввиду исходный код? Есть обфускаторы.
О нет. Тут ирония в том, что относительно нормальные dll есть только на платформе .NET. Классические Windows dll - костыли. Лучше бы их вовсе не было. Добавлено через 49 секунд |
| Автор: bems 2.1.2010, 02:41 |
| При всех их недостатках - я бы посмотрел на тебя без них |
| Автор: profesiachuvak 2.1.2010, 15:36 |
| Автор: Akella 2.1.2010, 17:31 | ||||
В глазах не рябит от -> и { } Добавлено через 1 минуту
Я не спец, но обфускаторы легко обходят |
| Автор: kemiisto 2.1.2010, 21:04 |
И ведь это не единственное преимущество. Вот к примеру разберём ещё одно: .NET говорит на многих языках. Речь не об интернационализации (тьфу, еле написал Никто не говорит, что ФП или юнит-тестирование есть 100% благо, но индустрия идёт этим путём. Это уже мейнстрим. Через 2-3 года найти молодого Delphi программиста на место Junior Developer'а будет также легко как, прости, девственницу-старшекланицу. Та "школота", которой вы с таким упоением, рассказывали, что, всё фигня, кроме пчёл Delphi, учила C#. И они подросли. А дальше будет только хуже. Они начнут учить F# и создадут SkyNet. Нас? Ну и самомнение у Вас. Я боюсь, что немногие настоящие профессионалы способны написать более быстрый код по сравнению с продуктом работы современных компиляторов. И что-то мне подсказывает, что Вы в их число не входите... Да противно. Первое время аж до Легко? Тебя ввели в заблуждение. Тут у меня такие мысли. Да, обфускация - только преграда. Обойти можно. Но
|
| Автор: Keeper89 20.1.2010, 14:13 |
| Эх, как людей 1 и 2 января штырит kemiisto, ну скажи нам по порядку, в чем плюсы, а в чем минусы каждого. А мы в отместку про Оберон почитаем |
| Автор: CodeMonkey 20.1.2010, 15:24 |
| Простите мою ламотность, но как в .NET с глобальными хуками (внедрение DLL) и службами (сервисами)? |
| Автор: Akella 20.1.2010, 17:50 |
| Думаю, что проще чем в дельфи. |
| Автор: bems 20.1.2010, 18:02 |
| Akella, а в дельфи с этим есть какие-то сложности? |
| Автор: Rohoss 20.1.2010, 21:19 |
WCF ? .net НЕ предназначен для системного программирования. Но если вам это так необходимо, то вы можете использовать неуправляемый код. Так же вы не напишете плагин к тотал командеру или например фаер фоксу. Что же касается системного программирования под Windows, то его востребованность не большая. Если думаете, что изучив винапи и асм будете получать миллионы денег в розовых мешках, то сильно ошибаетесь. По поводу, что лучше. Делфи имеет некоторые преимущества при разработки системного ПО. Но, что касается решений для бизнеса, то делфи вообще не вариант. Возможности, по работе с БД в делфи ничтожны, по сравнению с .NET. Давайте представим ситуацию. Есть фирма, которая имеет много филиалов. У фирмы есть внешний(ASP.NET VB.NET) и внутренний(Silverlight C#) сайт, есть несколько приложений(WinForm C#) для сотрудников фирмы, некоторым из которых нужна сильная обработка данных (dll F#), есть несколько сервисов(WCF) для других фирм, симпатичное приложение(WPF C#) для клиентов, программа для менеджеров на коммуникаторе(.NETCF C#) и этот список можно продолжать. Так вот, написав очередную библиотеку, её можно будет с лёгкостью использовать в каждом из выше перечисленных проектов. При всём этом, мы имеем безопасный и управляемый код. А что делфи? В мире уже давно определено что лучше... Поищите в гугле форумы по программированию, и обратите внимания, в скольких есть разделы по делфи, а в скольких по шарпу. Никого не хотел обидеть, но факт остаётся фактом. А любителям асма, и высокопроизводительный код предлагаю внимательно почитать http://forum.vingrad.ru/forum/topic-283805.html , и поучаствовать в соревновании Что то хотел написать больше, но чёт настроения нет |
| Автор: Keeper89 21.1.2010, 00:43 | ||
Вот за это низачтод |
| Автор: kemiisto 21.1.2010, 20:16 | ||||
Щас, да. Мне заняццо нечем? И тут надо понять, с какой позиции смотреть на вещи. Дай конкретную ситуацию - и я тебе скажу, что лучше. А так - только ресурс клавиш изводить.
Гугл, вроде, работает. Или в Твери уже нет? |
| Автор: Keeper89 21.1.2010, 21:44 |
Ну а попусту возникать - зачем клавиши изводить? Гугл не работает только в Кинешме и Осло. Ибо зачем гугл там, где есть kemiisto |
| Автор: Akella 22.1.2010, 18:07 | ||
|
| Автор: Rohoss 22.1.2010, 18:42 |
Вы чего? |
| Автор: Keeper89 22.1.2010, 19:37 | ||||
Я о том же.
Если в смысле только дописывания - возможно, хотя у меня нет точной информации кто что использует (и, думаю, она есть только в Embarcadero). Но Delphi - изначально позиционировался как RAD-инструмент для работы с БД и это до сих пор так. Если говорить совсем грубо, .NET - это такой же фреймворк, как и VCL. Все знают http://russian.joelonsoftware.com/Articles/HowMicrosoftLosttheWaronA.html по этому поводу. Не всем нужно это:
У VCL&Delphi свои преимущества, у .NET - свои. И вообще, давайте без холиваров. Изначально топик был о возможностях самого языка: сходства, различия, где что хуже и что лучше. |
| Автор: kemiisto 23.1.2010, 20:38 |
А я что предложил? Очерти круг задач, ситуацию и будем думать. А так - сферический холивар в вакууме. Ты веришь, что здесь моя скорость и сила зависят от моих мускул? Я даже воздухом не дышу! (с) Возможности языка ровным счётом нечего не значать. Тем более в этом случае. |
| Автор: Keeper89 24.1.2010, 02:37 | ||
Окей, возьмем такие:
|
| Автор: kemiisto 24.1.2010, 12:50 |
Слишком размыто. Если как часть какой-то программы (теже вот глобальные хуки), то нет никакой разницы - небезопасный код на C# писать не сложнее, чем код на Delphi. Если приложение полностью завязано на работу с системой - оно пишеться на том языке, на котором написана система. Delphi + WinAPI - для тех, кому нечем заняться. Опять же слишком размыто. И надо не только круг задач, но и ситуацию обрисовать. Кто пишет? Контора? Фрилансер? Для кого? И т.д. Если ты фрилансер и пишешь для какой-нить конторки - C#. Во-первых, можно вообще не платить за среду разработки - берём Express-редакцию или ближаюшую Beta. И если у первой будут ограничения на работу (там идёт MS SQL в Express-редакции, более куцый рефакторинг и локальный MSDN), то у второго варианта нет никаких ограничений. И поверь мне: VS Beta в разы стабильнее Embarcadero'вских "финальных" релизов. Можно вообще писать в каком-нить SharpDevelop. Если речь о компании - всё-равно C#. Для C# есть управляемый Direct X + всякие там XNA Game Studio. А вообще - С++. |
| Автор: Keeper89 24.1.2010, 16:14 | ||
| kemiisto, все чодко, сенкс. Получается, что С# рулит. Но должны же быть у Delphi преимущества?
По поводу бизнес-приложений. Как с поддержкой всевозможных БД, созданием простеньких ИС? И для фриланса, и для компаний. Да, и кроме того: что если сравнивать VCL с .NET учитывая только разработку под Windows? |
| Автор: kemiisto 24.1.2010, 16:36 | ||
Естественно!
Если сравнивать VCL c FCL (Framework Class Library), то:
|
| Автор: Keeper89 25.1.2010, 14:06 | ||
|
| Автор: Akella 26.1.2010, 13:37 |
| kemiisto, |
| Автор: kemiisto 26.1.2010, 14:05 | ||
Ничего сказать про удобство работы с БД и доступность провайдеров БД не могу. В лучшем для Delphi случае должен быть паритет. Ведь по сути и C# и Delphi продают компании, которые до кучи ещё и свои СУБД производят. Стоит думать, что лучше всего продукты разработки интегрированы с "родными" же СУБД. А поддержка сторонних СУБД зависить от комьюнити, рыночных перспектив. Для C# сейчас должно быть больше решений. Теоретически. Вот ещё что. Десктоп бизнес-приложения доживают свой век. Этот рынок уже ушёл в веб. |
| Автор: cemick 1.2.2010, 11:23 | ||
Вы про это главное не забудте напомнить разработчикам Аксапты, Сапа, Навижена и прочим, а то они вроде не в курсе. |
| Автор: de_Nis 2.2.2010, 11:09 |
| Цитата(Akella @ 25.12.2009, 00:58) "Наверное, основной минус сишарпа в том, что нужно таскать с собой инсталляху дотнета, при чём той версии, для которой скомпилирована программа." Уточните, кому "...нужно таскать с собой инсталляху дотнета, при чём той версии, для которой скомпилирована программа..." - разработчику программы или пользователю программы? Разве программа, разработанная в Студии 2005 (дотнет 2.0) не будет работать на компе, где установлен только дотнет 3.0 или 3.5? |
| Автор: Akella 2.2.2010, 14:04 | ||||
Кому нужно - тот пусть и таскает. Добавлено через 13 минут и 42 секунды
нет, нужна конкретная версия дотнета |
| Автор: de_Nis 2.2.2010, 14:55 |
| "нет, нужна конкретная версия дотнета " Akella, а как же быть со следующими высказываниями в теме http://forum.vingrad.ru/forum/topic-229082.html на форуме .NET -> .NET для новичков: "...понятно что приложение написанное на 1.1 будет запускаться и на 2.0..." "...если приложение скомпилировано под 2.0, то оно может также запускаться на компах, где установлен .NET Framework 3.5 ..."? При обсуждении ребята ссылались на http://msdn.microsoft.com/: "The version of the .NET Framework that an application runs on is determined as follows: * If the version of the .NET Framework that the application was built against is present on the computer, the application runs on that version. * If the version of the .NET Framework that the application was built against is not present and a configuration file does not specify a version in a <supportedRuntime> Element, the application runs on the latest version of the .NET Framework that is present on the computer. * If the version of the .NET Framework that the application was built against is not present and the configuration file specifies a version in a <supportedRuntime> Element, the application runs on the latest version that is specified in the application configuration file and is present on the computer. " Или я не понял, о чем они говорили? P.S. По некоторым причинам для меня очень важен это вопрос. |
| Автор: kemiisto 2.2.2010, 17:35 |
| de_Nis, там речь шла, вот про что. Дело в том, что .NET Framework 3.5 (как и .NET Framework 3.0) - расширение .NET Framework 2.0, с сохранением всех библиотек и добавлением новых компонентов (WPF, WCF, ...). Но CLR там по-прежнему 2.0. К тому же установка .NET Framework 3.5 тянет ещё .NET Framework 2.0 SP1, (или .NET Framework 2.0 SP2 если ставить 3.5 SP1) и .NET Framework 3.0 SP1 (или .NET Framework 3.0 SP2 если ставить 3.5 SP1). Добавлено через 51 секунду Неверно. Будет. Объяснение выше. |
| Автор: Akella 2.2.2010, 21:50 | ||
| Ну фиг знает. Когда я читал книгу, то там было написано о "версионности". Что это круто. И если программа написана для такой-то версии дотнета, то именно такая версия дотнета должна быть быть установлена и у пользователя. Добавлено через 1 минуту и 53 секунды
ааааахххаааа Добавлено через 2 минуты и 34 секунды Это ж сколько нужно с собой таскать и знать, что ставить/не ставить на комп клиента, чтобы твоя прога заработала Добавлено через 4 минуты и 47 секунд То ли дело прога, написанная на дельфи!! Я всегда уверен, что моя прога запустится от вынь98 и до вынь7 и даже на линуксе под вайном. И всё в одном инсталляторе вместе с сервером баз данных и самой базой |
| Автор: kemiisto 2.2.2010, 22:18 | ||||
Хм... Ну, если делать *.msi инсталляху Wix'ом или в том же Visual Stuido (Setup Project), то всё очень даже по-людски. По Wix - инфа http://wix.sourceforge.net/manual-wix3/check_for_dotnet.htm. Можно проверить, усатновлен ли нужный Framework и вывести сообщение. Или установить прямо во время инсталляции своей софтины. http://wix.sourceforge.net/manual-wix3/install_dotnet.htm. Для InnoSetup тоже есть решение. http://www.codeproject.com/KB/install/dotnetfx_innosetup_instal.aspx.
Это враньё. Скажем, будет у тебя тот же GDI+ заюзан. И 98 может пойти лесом. Про Wine - вообще отказываюсь комментировать. Фантаст, млин. |
| Автор: bems 2.2.2010, 22:28 |
| Конкретно вот эта комбинация - ничуть не хуже варианта С + WinAPI |
| Автор: Rohoss 2.2.2010, 22:51 | ||
А что насчёт TCHAR? Я не в курсе, просто спросил Добавлено через 2 минуты и 29 секунд
Отличное решение для написания трояна... |
| Автор: bems 3.2.2010, 15:43 |
| С ним все хорошо, вместо него есть Char |
| Автор: Akella 3.2.2010, 22:04 | ||
заюзан, и одна dll-ка кладётся рядом программой, она ведь небольшая. Добавлено через 24 секунды Но работает же. Добавлено через 1 минуту и 7 секунд
Один из покупателей моей программы работает на МакОС Добавлено через 5 минут и 36 секунд И другая программа неплохо под вайном работает за исключением того, что какие-то самописные компоненты для отображения деревьев кривовато работали. Сам пробовал ещё когда версия вина было меньше 1. |
| Автор: bems 3.2.2010, 22:42 |
| Ну про вынь98 - это делфя древние нужны. А под вайном идут, проверено. |
| Автор: Akella 4.2.2010, 00:11 |
не понял |
| Автор: de_Nis 4.2.2010, 10:22 |
| Цитата(kemiisto @ 2.2.2010, 17:35) " Дело в том, что .NET Framework 3.5 (как и .NET Framework 3.0) - расширение .NET Framework 2.0, с сохранением всех библиотек и добавлением новых компонентов (WPF, WCF, ...). Но CLR там по-прежнему 2.0. К тому же установка .NET Framework 3.5 тянет ещё .NET Framework 2.0 SP1, (или .NET Framework 2.0 SP2 если ставить 3.5 SP1) и .NET Framework 3.0 SP1 (или .NET Framework 3.0 SP2 если ставить 3.5 SP1)." Более того. Так случилось, что вчера на комп инсталлировали программу, которая для своей работы требует NET Framework 3.0. До инсталляции на компе не было ни одной версии NET Framework. После инсталляции программы в окне "Установка и удаление программ" можно было увидеть, что установлены NET Framework 3.0, 2.0 и даже 1.1. |
| Автор: roschinspb 4.2.2010, 18:44 |
| Кто-нить упоминал про визуальное наследование форм, динамические курсоры, тормознутость? |
| Автор: bems 4.2.2010, 18:55 |
Это в достоинства или в недостатки? Это что таке? также см. предыдущий вопрос чью? |
| Автор: k0rvin 10.3.2010, 23:02 | ||||
угу, открыл я проект 2006-й делфи в 2010-й (юзаетя DBF-база через BDE (STANDARD/DBASE)) ошибка при выполнении запросов -- ругается на ORDER BY -- с чего бы вдруг?
весьма сомнительное преимущество учитывая общую примитивность языка... Вы каждые пять минут перекомпилируете проект? |