Сергей-4030> Я не работаю с шарпом, я признаю, что шарп как язык мощнее (что, на самом деле, все-ткаи не значит "лучше", хотя скорее всего таки лучше, практика покажет). Началось все с того, что на мое замечание, что целесообразность генериков для чего-либо кроме контейнеров мне кажется не бесспорной, преуважаемейший никита начал хамить и гнать херню.
Реализация generic в С# не предел совершенства, Степанов бы ее наверно обругал, но она явно лучше чем в Java хотябы поддержкой массивов и примитивных типов. Параметрический полиморфизм, на который как я понял так упирает Никита, позволяет писать компактный код но от читателя требуется недетская подготовка чтобы чтото понять что там написанно. Мечта функциональщика вобщем - его фиг уволят, потому что другой, даже опытный, функциональщик будет разбираться долго. Шютка (с)
Вобще эта разница в подходах к проектированию языка заметна сразу - в Java все explicitly, а implicitly очень редко, а в C# и вобще у Микрософт скорее наоборот. Иногда это доводит до белого каления, за отправку сообщения с помощью email.send = true (на самом деле пофиг можно и email.send = false) я бы убивал.
Сергей-4030> Было бы прикольно никиту поиметь в участниках давешнего конкурса и посмотреть, насколько его выпендреж воплотился бы в практику.
ИМХО в писании простых конечных автоматов особой разницы между C# и Java нет, а вот ворочать в памяти извращенные структуры данных я бы предпочел на C#.
Сергей-4030> Еще раз говорю - я согласен. При этом все-таки нельзя ставить знак равенства между богатством языковых средств и качеством языка. Это только практикой и статистикой определяется.
Функциональщиков банально меньше по причине того что этому надо учить специально и желательно до остальных парадигм, в отличии от процедурного программирования которое доступно любому грамотному инженеру или ООП к которому от процедурного переходят легко по мере набивания шишек.
Сергей-4030> Но в целом, скорее всего неудобства Java в деле передачи кода как параметра, скорее ведут к увеличению ошибок и ухудшению качества, ибо они сильно загромождают код и делают его нечитаемым.
Плюс синтетичсекого языка в том что никто не насилует использовать те возможности которыми ты не хочешь или не умеешь пользоваться. А в чистом ОО языке функциональный код выглядит гораздо страшнее чем "закорючки" чистых функциональщиков - смысл скрыт за танцами с бубном вокруг ограничений языка.
Это сообщение редактировалось 16.09.2011 в 23:10