Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 432 433 [434] 435 436 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6496
,
|
|
|
|
Но богаче, чем в Дельфях
|
|
Сообщ.
#6497
,
|
|
|
|
Я не в курсе синтасиса дельфей. В чём синтасис джавы богаче его?
|
|
Сообщ.
#6498
,
|
|
|
|
Нормальная поддержка дженериков. Например я не могу создать в дельфях дженерик-дерево, вроде
![]() ![]() TMyDictionary = class(TDictionary<String, TMyDictionary>); В Джаве легко. В джаве энамы реализованы в виде классов, в отличие от дельфи где это примитивный нерасширяемый тип. Добавлено После перехода с Дельфей на Джаву я не ощутил недостатка в чем-либо Наоборот, все гораздо удобнее и продуманнее.Я уже не говорю про 7-ю Джаву, в которой есть switch-case по строкам |
|
Сообщ.
#6499
,
|
|
|
|
Цитата [S]mike @ Нормальная поддержка дженериков. Не такая уж и нормальная, хотя и лучше, чем в Делфи. Это заметно в сравнении с C#, например. Type erasure. Да еще и с примитивными типами не работает. Тут подробней. |
|
Сообщ.
#6500
,
|
|
|
|
Цитата [S]mike @ В Джаве легко. А можно пример этого "дерева" на джаве? |
|
Сообщ.
#6501
,
|
|
|
|
Цитата korvin @ Да еще и с примитивными типами не работает. Для примитивных типов есть классы-обертки Integer, Double... |
|
Сообщ.
#6502
,
|
|
|
|
Цитата MyNameIsIgor @ А можно пример этого "дерева" на джаве? ![]() ![]() import java.util.HashMap; public class MyHashMap extends HashMap<String, MyHashMap> { } Добавлено Цитата Мяут-Настоящий @ Цитата korvin @ Да еще и с примитивными типами не работает. Для примитивных типов есть классы-обертки Integer, Double... И постоянно боксить/анбоксить? По ссылке выше: Цитата Java не позволяет специализировать обобщённые типы примитивными (это можно сделать только заворачивая примитивные типы в классы), в то время как C# обеспечивает обобщение как для ссылочных типов, так и для типов-значений, включая примитивные. Вместо этого Java предлагает использование завёрнутых примитивных типов в качестве параметров (напр., List<Integer> вместо List<int>), но это даётся ценой дополнительного выделения динамической памяти. Как в Java, так и в C# специализации обобщённого типа на разных ссылочных типах дают одинаковый код [4], но для C# среда выполнения динамически генерирует оптимизированный код при специализации на типах-значениях (например, List<int>), что позволяет их хранить и извлекать из контейнеров без операций за- и разворачивания. |
|
Сообщ.
#6503
,
|
|
|
|
Цитата [S]mike @ Например я не могу создать в дельфях дженерик-дерево, вроде можешь |
|
Сообщ.
#6504
,
|
|
|
|
Цитата [S]mike @ Нормальная поддержка дженериков. Например я не могу создать в дельфях дженерик-дерево, вроде ![]() ![]() TMyDictionary = class(TDictionary<String, TMyDictionary>); В Джаве легко. Кстати, D_KEY, сообрази-ка на плюсцах |
|
Сообщ.
#6505
,
|
|
|
|
Перегруженность деталями. Преобладание знаков пунктуации, которое затрудняет восприятие программы. Человек думает словами, а не знаками.
Под излишками runtime я понимаю механизмы обслуживания всех тонкостей языка. Как следствие того, что язык С++ очень сложен (в понимании нюансов), эти механизмы тоже весьма сложны, что ведёт к дополнительным накладным расходам. Опасный момент. Пожалуй, я лучше не буду вдаваться в подробности.![]() Цитата korvin @ Про модульность: Особенности поддержки концепции модуля в языках Delphi (Object Pascal), Modula-2 и ОберонВ чем лучшесть модульности ОиКП по сравнению с Д и что такое «герметичность типизации»? Герметичность типов - это комплекс мер статической и динамической типизации, гарантирующий предотвращение порчи памяти, среди которых: ограничения в преобразовании типов, проверка выхода за границы массива. |
|
Сообщ.
#6506
,
|
|
|
|
Цитата Romtek @ Преобладание знаков пунктуации, которое затрудняет восприятие программы. Человек думает словами, а не знаками. Вы просто слишком сильно зациклины на паскале. Какие именно знаки вам мешают? Цитата Под излишками runtime я понимаю механизмы обслуживания всех тонкостей языка. Как следствие того, что язык С++ очень сложен (в понимании нюансов), эти механизмы тоже весьма сложны, что ведёт к дополнительным накладным расходам. Так вы можете привести пример такого механизма и накладных расходов? Цитата Герметичность типов - это комплекс мер статической и динамической типизации, гарантирующий предотвращение порчи памяти, среди которых: ограничения в преобразовании типов, проверка выхода за границы массива. Это, мягко скажем, не уникальная особенность. |
|
Сообщ.
#6507
,
|
|
|
|
Romtek, у C и C++ нет ничего, за что пришлось бы платить, если в программе это не используется.
|
|
Сообщ.
#6508
,
|
|
|
|
Цитата Romtek @ Перегруженность деталями. Согласен... Цитата Romtek @ Преобладание знаков пунктуации, которое затрудняет восприятие программы. Человек думает словами, а не знаками. Вот не знаю, на самом деле... Или лучше сказать - смотря по ситуации. IMHO, "значки" могут быть как и нагляднее ключевых слов, так и ухудшать читабельность. Цитата Romtek @ Под излишками runtime я понимаю механизмы обслуживания всех тонкостей языка. Как следствие того, что язык С++ очень сложен (в понимании нюансов), эти механизмы тоже весьма сложны, что ведёт к дополнительным накладным расходам. Цитата Romtek @ Опасный момент. Пожалуй, я лучше не буду вдаваться в подробности. Странно на самом деле... Основа идеологии C++ - так называемый "принцип нулевой стоимости": я не плачу за то, чего не использую. И как-то весьма странно слышать о сложном run-time для плюсов. По любому он значительно проще, чем у джава/шарп/делфи. Добавлено Цитата Romtek @ Герметичность типов - это комплекс мер статической и динамической типизации, гарантирующий предотвращение порчи памяти, среди которых: ограничения в преобразовании типов, проверка выхода за границы массива. Впервые встречаю такой термин... ЕМНИП, это называется безопасной системой типов. |
|
Сообщ.
#6509
,
|
|
|
|
Цитата Qraizer @ Romtek, у C и C++ нет ничего, за что пришлось бы платить, если в программе это не используется. Такое странное преимущество, которое явно говорит о низкоуровневости языка. Еще одно тому подтверждение - это мои личные наблюдения какие задачи решают плюсовики - разработка всяких там смарт-поинтеров, пропертей, мультиметодов и проч. и у каждого свой велосипед, но вот как-то нечасто встречаю решение каких-либо прикладных задач Добавлено Цитата MyNameIsIgor @ Основа идеологии C++ - так называемый... ...принцип мультипарадигменности, что и продемонстрировано на картинке. Напихать в язык как можно больше всего, что вместе едва ли уживается, авось кому-то пригодится |
|
Сообщ.
#6510
,
|
|
|
|
Цитата --Ins-- @ Такое странное преимущество, которое явно говорит о низкоуровневости языка. Нет это говорит о том, что разработчики задались целью сделать высокоуровневый язык, который не медленнее Си. Цитата --Ins-- @ разработка всяких там смарт-поинтеров, пропертей, мультиметодов и проч. и у каждого свой велосипед, но вот как-то нечасто встречаю решение каких-либо прикладных задач Ну это джаст фо фан в этой теме. Померятся так сказать. А все велосипеды уже собраны в бусте |