Re[7]: Паттерны/идиомы/стереотипы ООП/ООД кроме GoF и PoEAA
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 25.12.14 17:26
Оценка:
Здравствуйте, andyag, Вы писали:

A>Здравствуйте, gandjustas, Вы писали:


G>>Здравствуйте, andyag, Вы писали:


A>>>Есть какая-то принципиальная разница между Java и .NET, из-за которой подход к программированию принципиально отличается? Мне правда интересно.


G>>1) Linq

G>>2) Лямбды с честными замыканиями и ФВП
G>>3) Анонимные типы
G>>4) async\await и TPL

A>Эти штуки C#/.NET безусловно рвут Java в плане скорости разработки и защиты от ошибок, но всё что вы перечислили нужно писать в каких-то методах, а методы — в каких-то классах.

Для Linq все методы являются методами-расширениями, которые по сути стирают различия между method(a,b) a.method(b). А классы в этом случае не более чем пространства имен. В новом C# имена классов можно писать в using и не использовать квалифицированные имена методов других классов. Да и вообще есть scriptcs, в котом классы в C# писать не обязательно.

A>И где-то в этой точке одновременно появляются паттерны и исчезает разница между .NET и Java.

Нет такой точки самой по себе. Она только в голове программиста.

A>Не поймите меня неправильно: я последние несколько лет пишу параллельно на C# и Java, отлично понимаю разницу между одной выразительной строчкой на LINQ и сотней плохочитаемых строчек в JPA, отлично знаю какой это геморрой делать UI без async/await. Но это всё просто инструменты языка — где-то они заменяют нагромождение классов, где-то уменьшают это нагромождение, а где-то от них ни холодно, ни жарко.

A>ИМХО, вещи совершенно параллельные.
Самое главное что эти методы позволяют по другому строить программы. Не как рекурсивную композицию объектов, а как композицию функций.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.