Skip to content
#SystemDesign

Report from ArchDays 2021 "Language on the way to DevArch: upper lane or lying policeman?" by Igor Bespalchuk

#SystemDesign #SoftwareArchitecture #Software #Conference

Quite interesting and debatable reportThe author reflects on the current state of affairs in the world of software development and architecture and asks the classic questions “who is to blame” and “what to do”. Separately, the author immediately veils the boundaries of his thinking with corporate software and mainstream object-oriented languages. The author begins with what he says about how usually try to understand the system - from the point of view of functional decomposition, highlighting the parts of the system with a significant function and area of responsibility, as well as considering the relationships between such parts. The author says that this is the basis of system thinking, but developers are given such a view of the system is difficult, as their standard language interferes, or rather the following: In the opinion of the author, there is practically no way of expressing the whole / part. In modern OOP languages too much is mixed in the universal concept of "class" Language determines consciousness, so it is difficult for OOP developers to think systemically about software. Next, the author makes a historical retrospective, considering how approaches to programming languages and patterns developed. It all started with computer computing. (A lambda calculus as the basis of a functional approach even Alonso Church invented in the 30s 20 century to analyze the problem of computation) Then came structural programming. (Thank you, Daixtra.) Then came the PLO languages. (It's Alan Kay's big contribution.) Functional programming was a long time ago, but now it penetrates into the mainstream, but still in its pure form it is not too common compared to OOP. Using these approaches, people built systems and then patterns began to appear that solved some of the problems that arose with the growth of the size of the system and its long-term development. Many have heard patterns of the species

  • GRASP
  • SOLID
  • CQS/CQRS
  • DDD

This is all well and good, but the world of developers and architects is divided by the level of semantics and the language they use in their work. There are attempts to build bridges and in fact some of the problems can be solved, at the level of agreements, annotations, the use of DSL and code analyzers. But part of this leads to rhetoric in the format of “the architect’s control over the work of developers.”

To improve the situation, the author suggests thinking about a common language that will bring architecture and development closer together. Here are the author’s thoughts on this. We should appreciate the achievements of the OOP and OOP languages, but abandon the extremes.

  • We need to add specialization "classes" in the language from already known patterns (transform patterns into language constructs) Add a new pattern: a sealed component with a number of new prohibitions and safeguards

And then the author gives a number of examples and suggests to think about more. Finally, I have a vision for the development of this 5-10 years ahead.

#SystemDesign #SoftwareArchitecture #Software #Conference