Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk


Новинка, написанная на Smalltalk: -- попытка сделать систему объектного программирования, код которой был бы понятней, чем в существующих подходах. Забавно, что при этом звучат очень знакомые слова: роли, взаимодействие, контекст, вью. Ага, это опять скандинавы (и, кстати, это как раз тот самый мужик, который придумал Model-View-Controller design pattern, когда работал вXxerox PARC).

Что двигало автором? А вот что ( Roles are about objects and how they interact to achieve some purpose. For thirty years I have tried to get them into the into the main stream, but haven't succeeded. I believe the reason is that our programming languages are class oriented rather than object oriented. So why model in terms of objects when you cannot program them?

Ну да: мы окружены конкретными вещами, которые участвуют в различных явлениях, занимая там какие-то роли. А описываем окружающий мир в терминах типов -- и получается удивительно плохо. Нужно учиться описывать мир в терминах ролей, чтобы переходить к процессным описаниям. Разборка с ролями, похоже, сейчас самое главное.

Вот фрагмент документации к одной весьма продвинутой программе: "The Guru jumps up and shouts: "Instead of you trying to guess whether it is animal, vegetable, or mineral, the object just tells you!" Yipes!! You have to admit that that's a real powerful idea. ... Microsoft has been a leading proponent of the "role-based" view of objects, and they implement this by using an artifact called an "interface." That is, in fact, one of the most important ideas of what is called COM. The use of interfaces is also common in Microsoft .NET technology. Just remember this: An interface = a role". ... Interfaces are just convenient "places" to group the tightly-bound properties of a role".

Ох, нахлебаемся мы еще этой онтологии-на-ролях по самое не балуйся. И 3D, и 4D онтологии (напомню ссылку на роли в 4D-онтологии --

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened