Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 347 348 [349] 350 351 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5221
,
|
|
|
|
Цитата korvin @ я привел пример, того, что требование дженериками реализовывать все свои методы не связано с динамикой Я не вижу, чтобы Ваш(мне казалось, мы с Вами были на ты, ну да ладно) пример это показывал. Цитата затем Вы же вспомнили опять про паттерн-матчинг. Я не вспоминал о соответствии специализации паттерн-матчингу, я объяснил как работают шаблоны на примере их гипотетической реализации через паттерн матчинг. Цитата это-то мне более-менее понятно, непонятно только при чем тут шаблоны, если это можно сделать и без них? Нельзя в обсуждаемых языках столь же гибко генерировать типы без применения шаблонов. Добавлено Кстати, как это делать в Haskell я тоже не знаю. |
|
Сообщ.
#5222
,
|
|
|
|
Цитата korvin @ щито? у хаскеллового (да и вообще функционального) map строго определенное поведение, заданное автором по мат.определению. Смотрите как его за живое то задели ![]() Цитата korvin @ нет, мне определенно нравится, когда С++-ники называют возможность сломать абстракцию(из-за невозможности эту абстракцию полноценно реализовать видимо?) "возможностью кастомизации", "фичей"... =) Мне определённо нравится такой korvin |
|
Сообщ.
#5223
,
|
|
|
|
Цитата D_KEY @ Я не вижу, чтобы Ваш(мне казалось, мы с Вами были на ты, ну да ладно) пример это показывал. ну как же? тайпклассы -- это дженерик-интерфейсы/абстрактные дженерик-классы, работающие в compile-time =) да я постоянно по-разному пишу, хз, как-то от контекста/настроения/тона беседы меняются местоимения =) Добавлено Цитата D_KEY @ Нельзя в обсуждаемых языках столь же гибко генерировать типы без применения шаблонов. да зачем их генерировать-то? =) ![]() ![]() interface SpecA { void aMethod1(); } interface SpecB { void bMethod1(); void bMethod2(); } class SpecAImpl1 implements SpecA { public void aMethod1() { } } class SpecBImpl1 implements SpecB { public void bMethod1() { } public void bMethod2() { } } class App { public void usage(SpecA spec) { spec.aMethod1(); } public void usage(SpecB spec) { spec.bMethod1(); spec.bMethod2(); } } public class Main { public static void main(String[] args) { App app = new App(); app.usage(new SpecAImpl1()); app.usage(new SpecBImpl1()); } } Добавлено Цитата D_KEY @ Кстати, как это делать в Haskell я тоже не знаю. Template Haskell тебе в помощь (емнип, с шаблонами C++ ничего общего, больше на макросы (не сишные) похоже) Добавлено Цитата MyNameIsIgor @ Смотрите как его за живое то задели ![]() Вы все придумываете, у меня там нет гневного смайлика в посте, даже ни одного восклицательного знака =) |
|
Сообщ.
#5224
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Нельзя в обсуждаемых языках столь же гибко генерировать типы без применения шаблонов. да зачем их генерировать-то? =) Чтобы получить именно новый тип и, соответсвенно, все преимущества статической типизации. А так, как ты показал - можно и в плюсах, соответсвенно, не является аргументом в данном споре. В С++ можно делать когда удобно в статике, когда удобно в динамике. Причем как я заметил, то, что в С++ делается через шаблоны, в других языках делается частенько даже не в динамике, а банальным хардкодом. Цитата Template Haskell тебе в помощь (емнип, с шаблонами C++ ничего общего, больше на макросы (не сишные) похоже) Что-то вроде Nemerle? Или ближе к CL? А вообще да, хочу до него добраться... |
|
Сообщ.
#5225
,
|
|
|
|
Цитата D_KEY @ Что-то вроде Nemerle? Или ближе к CL? А вообще да, хочу до него добраться... скорее к Nemerle, но я только бегло смотрел |
|
Сообщ.
#5226
,
|
|
|
|
Цитата D_KEY @ Ну тогда ещё куда ни шло. Однако switch ты порядком case не сломаешь, если там проставлены break, а catch ругается предупреждениями и иногда напрасно.Qraizer, там уже динамика. И такой порядок соответствует нашему switch или блокам catch. Не, в Плюсах тоже есть чему зависеть от порядка строчичек. Но все приходящие мне на ум случаи ограничены локальным контекстом влияния. Тот же switch без break-ов в case-ах, например, или порядок базовых классов, или там порядок не-POD-овых полей в классе, ...что там ещё. Если тут тоже всё локально, я не против. Другое дело, что специализации шаблонов в Плюсах могут быть раскиданы по разным файликам. |
|
Сообщ.
#5227
,
|
|
|
|
Цитата Qraizer @ Если тут тоже всё локально, я не против. Да, локально Haskell вообще очень хороший язык(правда конкретно этот момент везде вроде так сделан). Только вот синтаксис нечитаемый. Прямо беда какая-то - мне из "современных" статически-типизированных нравятся Scala и Haskell. И у обоих ужасный синтаксис. У Nemerle же почти нулевая поддержка... |
|
Сообщ.
#5228
,
|
|
|
|
Цитата Qraizer @ Ну тогда ещё куда ни шло. Однако switch ты порядком case не сломаешь, если там проставлены break, а catch ругается предупреждениями и иногда напрасно. в хаскелле(как и везде наверное) "break" идет для каждого case, т.е. две ветки выполнится не могут Добавлено Цитата D_KEY @ Только вот синтаксис нечитаемый. не согласный я, простой и логичный синтаксис. логика опять же тоже проста, понять не сложно, а как понял, то и читается все легко. трудности бывают только если наплодить инфиксных операторов с различными приоритетами, но их плодят редко и в небольших количествах и с приоритетами не играются. а вот насчет скалки согласен =) Добавлено Цитата D_KEY @ Прямо беда какая-то - мне из "современных" статически-типизированных нравятся Scala и Haskell. И у обоих ужасный синтаксис. У Nemerle же почти нулевая поддержка... а чем Ocaml не угодил? правда там с библиотеками туго, да и развитие похоже застопорилось =/ для него кстати есть хороший препроцессор 4p, вроде что-то наподобие Template Haskell, но (возможно) немного в сторону m4 или типа того |
|
Сообщ.
#5229
,
|
|
|
|
Цитата korvin @ не согласный я, простой и логичный синтаксис. Я не говорил сложный и нелогичный, я сказал нечитаемый Цитата а чем Ocaml не угодил? правда там с библиотеками туго, да и развитие похоже застопорилось =/ Во-во. Кстати сказать, он достаточно эффективен. Но он какой-то не такой удобный и гибкий, как Scala и даже Haskell. Но тут без доказательств - просто субъективное мнение Из современных вариантов нормально развивается и поддерживается разве что F#, но он только под .NET |
|
Сообщ.
#5230
,
|
|
|
|
Основной недостаток ocaMLа ИМХО в том, что он однопоточный.
|
|
Сообщ.
#5231
,
|
|
|
|
Цитата jack128 @ Основной недостаток ocaMLа ИМХО в том, что он однопоточный. да, но не все так плохо: http://stackoverflow.com/questions/1302272/is-inria-going-to-add-concurrency-primitives-to-ocaml |
|
Сообщ.
#5233
,
|
|
|
|
Цитата MyNameIsIgor @ А что господа дельфисты думают об этом? Скажем так, улучшенный синтаксис. Таким был бы Delphi, если бы разрабатывался с нуля и только под дотнет. |
|
Сообщ.
#5234
,
|
|
|
|
Romkin, ну, а возможности? Перспективы использования?
|
|
Сообщ.
#5235
,
|
|
|
|
Цитата MyNameIsIgor @ Romkin, ну, а возможности? Перспективы использования? Это еще один язык для .NET. А перспективы - оно в студии есть, берешь и используешь. Оно недавно появилось, так что еще рано что-то говорить. |