История изменений
Исправление
geekless,
(текущая версия)
:
Почему действие в середине?
Потому что человек размышляет «от объекта». «Берем вот эту хрень и что-то с ней делаем. А потом берем то, что получилось, и снова с этим что-то делаем.» А не так: «вот действие, где ж блджад объекты для него?». Да вспомни, как ты жрать готовишь, блин! Человек в реальном мире оперирует объектами, а не действиями. И ЯП должен отражать мышление человека.
То есть на самом деле понятно почему - это результат костыльной реализации ООП на конкретной архитектуре.
Когда ж вы научитесь отделять представление от семантики, а семантику от реализации? Специалисты... При любом каком угодно закрученном параметрическом полиморфизме безо всякого ООП, запись с выделенным объектом будет просто тупо удобнее. Более того — выделенным объектом может быть в принципе любой из аргументов функции. И в идеале, язык должен позволять синтаксические трансформации, чтобы записывать слева от функции любой из аргументов.
Вот эту вот херню:
(* (reduce + select((> 10) somelist)) somevalue)
А вот эту можно просто прочитать без всякого напряга, последовательно:
somelist select(>(10)) reduce(+) *(somevalue)
Да вспомни, как выглядят пайпы в sh! Всё то же самое по сути.
Исправление
geekless,
:
Почему действие в середине?
Потому что человек размышляет «от объекта». «Берем вот эту хрень и что-то с ней делаем. А потом берем то, что получилось, и снова с этим что-то делаем.» А не так: «вот действие, где ж блджад объекты для него?». Да вспомни, как ты жрать готовишь, блин! Человек в реальном мире оперирует объектами, а не действиями. И ЯП должен отражать мышление человека.
То есть на самом деле понятно почему - это результат костыльной реализации ООП на конкретной архитектуре.
Когда ж вы научитесь отделять представление от семантики, а семантику от реализации? Специалисты... При любом каком угодно закрученном параметрическом полиморфизме безо всякого ООП, запись с выделенным объектом будет просто тупо удобнее. Более того — выделенным объектом может быть в принципе любой из аргументов функции. И в идеале, язык должен позволять синтаксические трансформации, чтобы записывать слева от функции любой из операторов.
Вот эту вот херню:
(* (reduce + select((> 10) somelist)) somevalue)
А вот эту можно просто прочитать без всякого напряга, последовательно:
somelist select(>(10)) reduce(+) *(somevalue)
Да вспомни, как выглядят пайпы в sh! Всё то же самое по сути.
Исправление
geekless,
:
Почему действие в середине?
Потому что человек размышляет «от объекта». «Берем вот эту хрень и что-то с ней делаем. А потом берем то, что получилось, и снова с этим что-то делаем.» А не так: «вот действие, где ж блджад объекты для него?». Да вспомни, как ты жрать готовишь, блин! Человек в реальном мире оперирует объектами, а не действиями. И ЯП должен отражать мышление человека.
То есть на самом деле понятно почему - это результат костыльной реализации ООП на конкретной архитектуре.
Когда ж вы научитесь отделять представление от семантики, а семантику от реализации? Специалисты... При любом каком угодно закрученном параметрическом полиморфизме безо всякого ООП, запись с выделенным объектом будет просто тупо удобнее. Более того — выделенным объектом может быть в принципе любой из аргументов функции. И в идеале, язык должен позволять синтаксические трансформации, чтобы записывать слева от функции любой из операторов.
Вот эту вот херню:
(* (reduce + select((> 10) somelist)) somevalue)
А вот эту можно просто прочитать без всякого напряга, последовательно:
somelist select(>(10)) reduce(+) *(somevalue)
Исправление
geekless,
:
Почему действие в середине?
Потому что человек размышляет «от объекта». «Берем вот эту хрень и что-то с ней делаем. А потом берем то, что получилось, и снова с этим что-то делаем.» А не так: «вот действие, где ж блджад объекты для него?». Да вспомни, как ты жрать готовишь, блин! Человек в реальном мире оперирует объектами, а не действиями. И ЯП должен отражать мышление человека.
То есть на самом деле понятно почему - это результат костыльной реализации ООП на конкретной архитектуре.
Когда ж вы научитесь отделять отделять представление от семантики, а семантику от реализации? Специалисты... При любом каком угодно закрученном параметрическом полиморфизме безо всякого ООП, запись с выделенным объектом будет просто тупо удобнее. Более того — выделенным объектом может быть в принципе любой из аргументов функции. И в идеале, язык должен позволять синтаксические трансформации, чтобы записывать слева от функции любой из операторов.
Вот эту вот херню:
(* (reduce + select((> 10) somelist)) somevalue)
А вот эту можно просто прочитать без всякого напряга, последовательно:
somelist select(>(10)) reduce(+) *(somevalue)
Исходная версия
geekless,
:
Почему действие в середине?
Потому что человек размышляет «от объекта». «Берем вот эту хрень и что-то с ней делаем. А потом берем то, что получилось, и снова с этим что-то делаем.» А не так: «вот действие, где ж блджад объекты для него?». Да вспомни, как ты жрать готовишь, блин! Человек в реальном мире оперирует объектами, а не действиями. И ЯП должен отражать мышление человека.
То есть на самом деле понятно почему - это результат костыльной реализации ООП на конкретной архитектуре.
Когда ж вы научитесь отделять отделять представление от семантики, а семантику от реализации? Специалисты... При любом каком угодно закрученном параметрическом полиморфизме безо всякого ООП, запись с выделенным объектом будет просто тупо удобнее. Более того — выделенным объектом может быть в принципе любой из аргументов функции. И в идеале, язык должен позволять синтаксические трансформации, чтобы записывать слева от функции любой из операторов.
Вот эту вот херню:
(* (reduce + select((> 10) somelist)) somevalue)
А вот эту можно просто прочитать без всякого напряга, последовательно:
somelist select(>(10)) reduce(+) * somevalue