Программистов заносим в Красную Книгу

Mar 12, 2007 01:43

Пролетело тут в сендере (читал архивы, чего понаписали за время моего пребывания в Москве). Обращаю внимание, это сеть компьютерного факультета, далеко не самого худшего вуза страны.
Наткнулся тут на несколько строчек описания характеристик языка программирования ( Read more... )

программирование, куда катимся

Leave a comment

kouzdra March 12 2007, 09:59:22 UTC
Дело не в том, "что написано" (хотя на лиспе много чего написано). Дело в том, что это то, что надо знать. Просто потому, что фактически единственный за последние лет 10 источник новых идей.

Можно конечно искать глубокий смысл в Java Generics и извращениях вроде "метапрограммирования на template's", но лучше просто знать откуда там ноги растут. Способствует более осмысленному отношению.

Тем более, что оно все сейчас поперло в mainstream мутным потоком - в C# 3.0 разработчики уже даже мимикрией "под ОО" себя не особенно утруждают (хотя есть забавные извращения - при том, что слов type inference и expressions разработчики там уже не стесняются даже на публике, comprehensions мимикрируют под SQL-образный синтаксис :))

Смех, смехом, но 2/3 перечисленного списка вполне можно излагать применительно к C#, C++ и Java.

Ну и есть еще один аспект - FP, вообще говоря, не "парадигма", а просто набор технических приемов и поддерживающих их языковых средств. Какие-то из приемов без языковой поддержки почти бесполезны (ленивость, например), но многие вполне можно юзать и на той же Жабе или С++. Получается существенно более коряво, но все равно очень полезно.

PS: Чем на самом деле плох этот список - видно, что автор курса ни хрена кроме Haskell про FP не знает. Но это другая тема.

PPS: Что до прикладухи - O'Caml у меня уже лет 6 занимает место чего-то вроде Turbo Pascal в свое время - очень практичного инструмента, который сильно облегчает жизнь в тех ситуациях, где не требуется мэйнстримный язык.

Reply

potan March 12 2007, 11:28:16 UTC
Как раз ленивость можно использовать и без поддержки языка. В отличие от Хиндли - Милнера.

Reply

kouzdra March 12 2007, 11:59:08 UTC
Ленивость даже в ML, где кое-какая поддержка есть, содержательно использовать невозможно - получается слишком громоздко и неуправляемо.

А H-M type system c type inference на самом деле в С++/Java/C# присутствует в полный рост, хотя и в изрядно извращенной форме - в виде generics.

Reply

potan March 12 2007, 13:11:34 UTC
В ML да, ленивость не очень удобна. По сравнению с обычным порядком вычислений.
А в плюсах не сложно сделать юзабельную ленивость, пользоваться которой не сложнее чем контейнерами.

В С++/Java/C# H-M type system есть в самом языке. А в чистом C ей воспользоваться уже не удасться. В отличии от ленивости.

Reply

научи меня, как nealar March 12 2007, 16:31:33 UTC
Недавно размышлял на тему того, что на асме очень удобно писать управляющие конструкции: стековые вычисления, мультитредность разную, исключения, continuation-passing, и т.д. Кроме ленивости.

Reply

Re: научи меня, как potan March 13 2007, 09:59:02 UTC
Что тебе мешает макросы для создания замыканий и отложенной оценки на асме сделать? ;-)))

Reply

Re: научи меня, как nealar March 13 2007, 11:10:43 UTC
Что такое "создание замыканий"?
Что такое "отложенная оценка"?
Куда на асме пихать управление памятью? Энергичный язык может жить без закадровых махинаций с памятью, ленивый - вряд ли.

Reply

Re: научи меня, как potan March 13 2007, 11:43:46 UTC
Кто тебе мешает вызывать malloc из асма?
Отложенная оценка - что то типа FORCE(eax,value), где value - указатель на структуру с величиной, признаком вычисленности и ссылкой на код вычисления.
Замыкания можно хранить как указатель на функцию и массив аргументов.

Было бы желание, а извратиться всегда можно :-).

Reply

Re: научи меня, как nealar March 13 2007, 13:57:38 UTC
+ ещё мы забыли про сборщик мусора.
Получается очень даже громоздко. Не асмовский стиль. Лучше на другом языке делать.

Reply


Leave a comment

Up