Здравствуйте, Андрей Хропов, Вы писали:
АХ>P.S. Правда тут Александреску на днях обещал макросы добавить в D помимо шаблонов и миксинов. Вот тогда заживем .
Самое смешное в этом то, что ни Александреску, ни Брайт пока сами не знают, что же это будет за макро система такая. Об этом Брайт где-то прямым текстом заявил (я читаю digitalmars.D через Opera, поэтому не могу дать точную ссылку на новость через Web-интерфейс).
Более того, сейчас народ пытается разобраться, что с новыми mixin-ами реально можно делать и как бы сделать так, чтобы не было отдельного compile time D (для обработки текстовых миксинов) и отдельного run-time D. К Александреску пристали, чтобы он хоть какие-то реальные примеры привел из того, что он хочет иметь. Он смог представить только пример с black и white box имплементацией интерфейсов для тестовых целей. За что на него даже наехали, мол люди пытаются на D реальные задачи решать, а вы здесь какими-то теоритическими изысканиями занимаетесь.
Причем люди стали приводить весьма нетривиальные примеры DSL-ей, для обработки которых возможностей шаблонов и static if, на мой взгляд, явно не хватит. Что интересно, Брайт пока молчит. Может быть задем каким-нибудь оригинальным решением разродится -- вроде плагинов к компилятору, которые будут заниматься compile-time обработкой DSL.
В общем, интересный момент в истории
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>можешь посмотреть саму книгу, точнее то её превью, которое мы скачали. тем не менее, я продолжаюю поагать, что книги Худака и прочих основоположников лучше работы Хал-Ван Дама и сделаны в более педагогическом стиле
Книгу я смотрел. Можно конкретный момент? Я не видел там подобного изложения, поэтому и спрашиваю, что имеется в виду? Какой именно недостаток заметен?
L>>Ещё интересный момент. Ну это ко всем вопрос — считаете ли вы, что упражнения — это всегда хорошо, если нет, то в каких случаях нет.
BZ>человек учится только на практике. поэтому мой педагогический талант подсказывает мне, что каждое излагаемое теоретичсекое положение надо илдлюстрировать конкретными примерами, и добавлять задания для самостоятельного решения. кстати, одна из книг там сделана именно в таком ключе — [http://www.cs.ou.edu/cs1323h/textbook/twoDzn.zip]
Здравствуйте, Mirrorer, Вы писали:
L>> Ну это ко всем вопрос — считаете ли вы, что упражнения — это всегда хорошо, если нет, то в каких случаях нет.
M>Я считаю что для книг обучающих упражнения обязательно должны быть. Причем чем больше, тем лучше. И желательно с ответами. И с подробными объясненями хотя бы части ответов. А не просто "42".
Спасибо! А не сойдет ли вместо ответов использование объясняющих примеров перед тем, как даются упражнения?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>ghc компилируется в натив, однако ленивые вычисления и ужаснейший кодогенератор не дают ему сколь-либо развернуться. а вот если взять ocaml (и даже clean с императивным кодом), то они близки к gcc. что касается байт-кода, то во-первых трудно противостоять таким монстрам, как gcc/icl, а уж тем более трудно это сделать, когда компиляция идёт через промежуточный этап, на котором теряется большая часть семантической информации. далее — языки типа c#/немерле/явы имеют более высокоуровневую модель, которая закономерно выливается в более медленный код. ну к примеру, данные всегда boxed. если же использовать unmanaged расширения этих языков, то никакого выигрыша в лёгкости программирования ты не получаешь
К сведению, выполенение кода на .NET обычно быстрее ОКамл-овского и обычно приближается к скорости лучших С++ компиляторов. Потеря семантической информации, имеют более высокоуровневую модель и т.п. — это набор фобий и заблуждений которые даже не смешно обсуждать. Если не согласен, то жду достовернно подтвержденных данных. Ну, а лечше просто почитай что-нибудь по данному впоросу. Тогда поймешь, что то что ты назваешь байткодом — это промежуточный код очень близкий промежуточному коду современных компиляторов вроде VC или GCC, точнее их бэкэнд. Информации в нем даже больше. Более того в будущем МС хочет перейти на единый бэкэнд — Феникс.
BZ>мне нечего добавить, кроме того, что "Вадлеров" (это вообще-то самый известный человек в FP) ты обидел незаслуженно
Более чем заслужено. Как писатели они нули без палочки. Мало знать предмет. Надо уметь изложить его доступно.
BZ>я (и не один я, конечно) пишу потихоньку статьи, объясняющие тонкости хаскела, которые я сам успел понять
Вот видишь? Если бы они не были плохоими писателями, то и тебе было бы не очем писать.
Если серьезно, то желаю тебе оказаться более талантливым писателем.
BZ>кстати, хорошо что напомнил. Visual Haskell (надстройка над VS) есть. она использует для компиляции ghc, т.е. интеграции во фреймворк нет. но по крайней мере intellisense работает. интерактивный отладчик в ghci уже появился, может через год-два он будет и в VH представлен
Я знаю, но сам не пробовал. Тут очень важно качество. Поделок то всегда много. А вот продуктов уровня интеграции для C# в VS2005 или IDEA я пока не видел.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Denis2005, Вы писали:
D>Теперь это сплошь и рядом, особенно после появления Nemerle
Тебе показалось. Как раз те кто выбираю Nemerle обычно не считают ФП панацеей. Просто шатающиеся рядом фанатики разных крайностей очень хотят представить все в извращенном виде.
D>(как ни крути, ФП его корневая парадигма).
Отнюдь. Как раз если программа более менее большая, то ее основа — это ООП. А фунциональные фичи применяются при реализации методов и обработке данных.
ЗЫ
Что до всплесков агресси, то они у гого хочешь будут когда столько доболомов шатаются по форуму вместо работы и флэймят по чем зря. Надо вообще, вводить квоты на прибывание на этом форуме .
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Андрей Хропов, Вы писали:
VD>>А Хаскель — это очень медленно. АХ> Кто тебе это сказал?
Я пробовал.
Есть задачи на которых Хаскель показывает себя не плохо. Есть кое какие хитрости вроде тех что использованы в приведенных тобой тестах, но в среденм ленивость добходится довольно дорого. Плюс видимо не оптимальны компиляторы.
АХ>Haskell vs C++ АХ>Haskell vs Java
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>например, главная причина выпуска NET, на мой взгляд — стремление привязать разработчиков к одной платформе и отучить их писать переносимый софт, что уже было начало получаться с явой.
Мне кажется причина тут скорее в Сане. Он действовал (и продолжает действать) как сабака не сене. МС хотел развивать яву по своему, предложил это Сану, но те послали МС далеко и на долго. Дотнет был создан как объеденение трех проектов: добавления метаданных к С++, COM 2.0/COM+ и MS J++.
BZ> если бы существовала реальная конкуренция, то уже давно появились бы две-три фирмы с нормальными IDE под яву. а в нынешней ситуации их делать смысла нет
Для явы как раз есть 3 офигительных IDE: Эклипс, ИДЕА и какой-то там НетБинс (что ли).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, BulatZiganshin, Вы писали:
VD>>>Да что там они. Вот погляди: VD>>>http://www.haskell.org/haskellwiki/Frag VD>>>это Ку3 написанный на Хаскеле!
BZ>как не трудно догадаться, opengl билиотека, рендерящая всю эту хрень, написана на С. а хаскел выступает в качестве скриптового языка, выдающего ей задания
Какая разница? Движок написанный на С++ будет так же использовать эту сишную библиотеку. К тому же ОпенЖЛ-диблиотеки, по крайней мере под Виндовс, просто транслируют вызовы драйверам видио-адаптера, а те видо-адаптеру. Вычислени там почти нет.
Я этот пример привел к тому, что нет там каких-то сверх-задач требудющих все до единой строчки кода оптимизировать до невероятности.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Я пробовал. VD>Есть задачи на которых Хаскель показывает себя не плохо. Есть кое какие хитрости вроде тех что использованы в приведенных тобой тестах, но в среденм ленивость добходится довольно дорого. Плюс видимо не оптимальны компиляторы.
в этих реализациях ленивость даже близко не использутся я ж говорю — они написаны в чисто императивном стиле
АХ>>Haskell vs C++ АХ>>Haskell vs Java
VD>
Здравствуйте, VladD2, Вы писали:
BZ>>например, главная причина выпуска NET, на мой взгляд — стремление привязать разработчиков к одной платформе и отучить их писать переносимый софт, что уже было начало получаться с явой.
VD>Мне кажется причина тут скорее в Сане. Он действовал (и продолжает действать) как сабака не сене. МС хотел развивать яву по своему, предложил это Сану, но те послали МС далеко и на долго.
Ну, естественно. Конкуренция понимаешь ли. Но для дружественных Сану фирм типа IBM никаких проблем нет.
VD> Дотнет был создан как объеденение трех проектов: добавления метаданных к С++, COM 2.0/COM+ и MS J++.
Мне кажется MS J++ здесь явно лишний. Вообще там Хейлсберга пригласили, который имел Pascal/Delphi background.
А как MS относится к J++ и продолжателю его дела J# может говорить хотя бы то что J# отдали писать в Индию .
А вот что следует ИМХО добавить — то, что катализатором развития .NET стала не только нарастающая конкуренция со стороны Java и недостатки COM, но и довольно неприятная для MS ситуация с безопасностью ее продуктов.
BZ>> если бы существовала реальная конкуренция, то уже давно появились бы две-три фирмы с нормальными IDE под яву. а в нынешней ситуации их делать смысла нет
VD>Для явы как раз есть 3 офигительных IDE: Эклипс, ИДЕА и какой-то там НетБинс (что ли).
VladD2 wrote: > Я этот пример привел к тому, что нет там каких-то сверх-задач требудющих > все до единой строчки кода оптимизировать до невероятности.
Q3 уже заметно устарел — там даже современной физики нет. А она весьма
прожорлива стала.
Еще в Q3 достаточно примитивный collision detector (они там просто по
BSP проходят), который тоже является весьма вычислительно-прожорливой
частью. А еще бывают зверства вроде совмещенных octree/BSP — это уже
заметно увеличивает вычислительную нагрузку.
VladD2 wrote: > Мне кажется причина тут скорее в Сане. Он действовал (и продолжает > действать) как сабака не сене. МС хотел развивать яву по своему, > предложил это Сану, но те послали МС далеко и на долго. Дотнет был > создан как объеденение трех проектов: добавления метаданных к С++, COM > 2.0/COM+ и MS J++.
Вот только у американского суда было другое мнение — во внутренних
документах MS были описаны планы по embrace&extend&extinguish Явы.
А процесс разработки Java, кстати, всегда был намного более открытым,
чем процесс разработки C#. Через JSR (Java Specification Request)
реально проводились достаточно сложные вещи.
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote: >> В общем, интересный момент в истории C>Расскажи им о Nemerle Заодно может и немерлистам от Александреску C>достанется.
Уже. Да и не только я. Там вообще народ при обсуждении метапрограммирования и Lisp, и Forth поминает.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Понятно, человеческий язык был не понят. Поэтому:
1) Я разговор с тобой прекращаю, бо бесполезно. Я не знаю зачем ты тут выливаешь потоки демагогии, но мне, по большому счету все равно.
2)
По прочтению топика сделал вывод, что подобное поведение твое не есть уникальный случай, но скорее правило. Посему предупреждаю — если подобные финты будут повторяться в том же объеме, я буду принимать меры с формулировкой "за перманентный оффтопик". Либо общайся по делу и по теме форума, либо лучше молчи.
... << RSDN@Home 1.2.0 alpha rev. 673 on Windows Vista 6.0.6000.0>>
Здравствуйте, lomeo, Вы писали:
L> А не сойдет ли вместо ответов использование объясняющих примеров перед тем, как даются упражнения?
По-моему — нет. По крайней мере у меня начинается ступор когда пусть даже после подробного оъяснения я начинаю решать задачу нового типа. А вот если бы таких задчек было штук 5. И в ответе к первой из них был бы дан какой-то хинт то эффективность обучения значитлеьно выше. Ну по крайней мере у меня.