About everyday misconception

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

What do we see in the original article? Aware of modern trends in linguistics, the author evaluates one of the flagship languages ​​of system programming, arguing what other positive concepts and architectural solutions can be stuck in a modern language by building up features using a huge global community.

A typical household extrapolation error. One feature is good, two features are good, good, and if we add a hundred features to the language, by inertia it seems as if it will become 100 × good. A linear, or better, an exponential increase in the number of features in the language and standard library, here is the recipe for happiness for these harsh industrial-level programmers in 2015.

And about all kinds of pictures like this, few people remember, and if they remember, they only think bad about them. Because fair outrage. Because indignation. Because how is this, is it possible to throw features out of the language, is it possible to refuse foreach? And in general, what kind of development is this if features disappear? Compatibility is lost. Mark already @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, then how many percent remember? Is it really necessary to have a stop form of cycle types? Do you really need to embed every favorite library crowd solution into the language?

The possession of an ideal performer and the practical lack of compromise (they only remember about the order of complexity at interviews) brought the software industry to a state in which expansion is the mainstream in reasoning. And more precisely, not expansion, but explosion. Fighting the complexity of tasks by the complexity of the tools with which these tasks are solved. Of course, many benefit from this. Salaries are rising. What else is needed?

There are several areas of explosion in linguistics. Syntactic sugar, mixing paradigms, easing typing restrictions in the hope of a positive use case. Military stubborn race to increase readability, expressiveness, compactness of the recording. Introducing implicit mechanisms such as templates and super-compilation.

Of course, in all this one can find positive aspirations that in fact remain as virtual as they appear to 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 not those that were created at the previous iteration of standardization and examination?

As for the rest, everything is as always, the IT industry follows business trends, realizing 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 break out in the lead because they spent 80% of the project’s resources on architecture, and 20% of development resources? Already funny, isn't it?

I wonder what and when should happen in the world so that the explosion stops? Maybe the collapse of the economy? You can’t wish this, it’s the death and suffering of many people, it will not be up to IT. Maybe a meteorite? A good, suitable remedy against hegemons. But we are in the 21st century, intelligent, educated people. We strive for scientific and formal thinking. Perhaps we should wish the evolutionary leap of the human species? But this is a long time, and computers are able to execute erroneous code in nanoseconds. How many times will they fulfill it before the consciousness of an algorithmic person rises by 1%? How many more satellites will fall and the Boeing engines will stall after exiting the array?

Do you know that satellite software is written on the Module? On the very one, from the 80s, which Niklaus Wirth created, simply cutting off everything unnecessary. The guys from Excelsior Jet still support their XDS, so someone needs this. So satellites who do not forgive mistakes encourage Modula?

And what can be opposed to those who do not encourage? Nothing. We must look for niches, run through holes, like mammals in the late era of dinosaurs. Dinosaurs dominate, and no one cares about your Dijkstra algorithms and cycles. So what if the brain (two brains) is the size of a nut, because everything works. Processes are ongoing, contracts are being concluded. And not that I really wanted contracts. I would like, of course, the coercion of hunger for all the same.

No one forces Oberon. Especially in schools. Especially in the elementary grades. No need to teach Oberon from primary school. And students with algorithmic thinking are not needed. And a simple language is not needed. And millions of ready-made algorithmists are not needed. And who needs them, for a penny? But how else, for which there is a lot to pay, because it's just that, I myself will do this. Where is my little book "Programming for non-programmers"? We’ll also teach ourselves how to understand algorithms and give a simple language, because they will all start programming without us. Not very rosy. And then they don’t want to write in Java. They say, poorly done, failures in concepts will begin to see. Superfluous 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) shortcomings.

How is it that the language is simple, the compiler is even simpler. And the operating system is simple.

image

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

And this article is in no way a call to take and transfer to Oberon. As Nicklaus Wirth said:
Many people regard programming styles and languages ​​as religious denominations: if you belong to one of them, then you cannot belong to the other. But this is a false analogy, and it is deliberately maintained for commercial reasons.

And after you close this plain text, which clearly lacks a clear and serious argument, and generally that the author smoked, read this article, it's about simplicity: issuu.com/xcelljournal/docs/xcell_journal_issue_91/30?e

Also popular now: