📜 ⬆️ ⬇️

About household misconceptions

Everyone sometimes has to reflect on what is happening in IT, how it will continue to develop, and how then to live with it. I would like this post to respond to the article "Thoughts on an ideal programming language."

What do we see in the original article? Aware of current trends in language engineering, the author assesses one of the flagship languages ​​of system programming, arguing what other positive concepts and architectural solutions can be inserted into the modern language by building on features of the huge global community.

A typical household extrapolation error. One feature is good, two features are good-good, and if we add one hundred features to a language, it seems as if it would become 100 × good by inertia. Linear, and better exponential growth in the number of features in the language and the standard library, this is the recipe for the happiness of real, harsh industrial-level programmers in 2015.

And about any kind of pictures of this type, few people remember, and if they remember, they think only bad things about them. Because a fair indignation. Because indignation. Because how is it, can one throw out features from the language, can one refuse foreach? And in general, what kind of development is this if features disappear? Compatibility is lost. Mark @Deprecated as @Deprecated.
')
On the other hand, questions arise. Did everyone read the huge language reference of their favorite language from cover to cover? And if you read, how many percent remember? Do I need to have stopitsot kinds of cycles? Do you really need every library crowd's favorite library solution to implement in the language?

The possession of the ideal performer and the practical absence of the sub-mat (about the order of complexity only during interviews are recalled) has brought the software industry to a state in which expansion is the mainstream in the discourse. And if more precisely, not expansion, but explosion. Fight against the complexity of the tasks with the complexity of the tools with which these tasks are solved. Of course, many benefit from this. Salaries are growing. What else is needed?

There are several areas of exploitation in linguistics. Syntactic sugar, mixing paradigms, weakening typing restrictions in the hope of a positive use case. In a military way, a stubborn race to improve readability, expressiveness, compactness of writing. Introducing implicit mechanisms, such as templates and super-compilations.

Of course, in all this you can find positive aspirations, which in fact remain as virtual as they appear before the compiler.

It may be objected that in reality, the coolest languages ​​have standardization, expert commissions that carry out unimaginably deep elaboration of industry problems. But what are these problems? Are they created at the previous iteration of standardization and expertise?

As for the rest, everything is as usual, the IT industry is following the business trends, implementing authentic means of solving business problems using the gopher method simply because the business needs a minimally significant product. Gradually, this leads to the fact that the IT business itself becomes minimally significant. When and where did companies take the lead because they spent 80% of the project’s resources on the architecture and 20% of the resources on the development? Already funny, is not it?

It is interesting, what and when should happen in the world for the explosion to stop? Maybe the collapse of the economy? You can not wish for this, it is the death and suffering of many people, it will not be up to IT. Maybe a meteorite? Good, good remedy against hegemons. But we are in the 21st century, intelligent, educated people. We strive for scientific and formal thinking. Perhaps we should desire an evolutionary leap of the human species? But this is a long time, and computers can execute erroneous code in nanoseconds. How many times will they execute it before the allegiance of an algorithmic person rises by 1%? How many more times will the satellites fall and the engines of the Boeing stall after going beyond the limits of the massive array?

Do you know that software for satellites is written on Modula? On the one of the 80s, which Niklaus Wirth created, simply cutting away all that is superfluous. The guys from Excelsior Jet still support their XDS, which means someone needs it. So satellites that do not forgive mistakes encourage Modula?

And what can be opposed to those who do not encourage? Nothing. We must look for niches, run along the burrows, like mammals in the late epoch of dinosaurs. Dinosaurs have dominance, and no one cares about your algorithms and Dijkstra cycles. So what if the brain (two brains) the size of a nut, because everything works. Processes are ongoing, contracts are concluded. And not that much like contracts. It would be desirable, of course, compulsion by hunger for all identical.

Nobody forces Oberon. Especially in schools. Especially in primary school. No need to teach Oberon from primary school. And students with algorithmic thinking are not needed. And simple language is not needed. And millions of ready algorithms are not needed. And who needs them, for a penny, then? And how else, for what is there to pay a lot, because just everything, I myself will do this. Where is my little book “Programming for non-programmers”? We will also learn to understand the algorithms on our own heads and give a simple language, because they all start programming without us. Not very bright. And then do not want to write in Java. They will say, poorly done, the failures in the concepts will begin to see. Excessive features to criticize. This is not good. As they say, after studying Oberon, the study of any other language is the study of its (other language) deficiencies.

As so, the language is simple, the compiler is even simpler. And the operating system is simple.

image

And the user interface is simple. A project page is generally simple. All this is quite simple, in Spartan. And the FPGA shawl is the same. Simple things do not attract attention.

And this article is not a call to take and transfer to Oberon. As Niklaus Wirth said:
Many people refer to styles and programming languages ​​as religious denominations: if you belong to one of them, you cannot belong to another. But this is a false analogy, and it is deliberately supported for commercial reasons.

And after you close this nondescript text, which clearly lacks a coherent and serious argument, and in general, that the author smoked, read this article, it is about simplicity: issuu.com/xcelljournal/docs/xcell_journal_issue_91/30?e

Source: https://habr.com/ru/post/257953/


All Articles