📜 ⬆️ ⬇️

Goodbye programming ...


Lauren mendoza
Software Engineer. Aerial acrobat. Born and live in San Francisco.

When many products are essentially the same application with different color schemes and a copy button, why are we still programming?

Files on your computer can be represented in various ways. The means by which most people find their files is a graphical interface, such as, for example, Mac Finder. But you can also do the same thing using a text interface, such as Terminal. Both interfaces are different ways to model the same information and interact with it.
')
A network application can also be represented in many ways: architectural scheme, dialogue, model. Software developers usually work with code. But is it the most intuitive and productive approach?

Inspirational idea

To create electronic music, I used a program called Reason. I like it because it allows you to “drag” wires between different devices and shows exactly how everything is connected there. For me, clearly shown wiring makes much more sense than the endless jumble of menus and pop-up windows, which dominated the most advanced software in the 2000s. (I love you, Adobe Flash CS3 Professional). Thanks to the Reason interface, I understand better what I'm doing, and I manage to make a lot more music than flash movies.


We need more fun

I don’t know when or how it happened, but at some point the “IT-specialist” became a “developer”, which turned into a “software engineer”. Of course, I like to be called an engineer, especially after only three months of “education”. But the main part of what we do is not engineering. To be an engineer means to solve new problems, to think deeply through the tasks. This is, indeed, intellectual activity.

Thousands of CRUD applications have already been created. We have already solved this problem. But for some reason, we still continue to make the same applications, mostly from scratch.

If a problem has been solved, then its solution should be used for other similar tasks. A set of instructions is transmitted to some worker or some group of workers in order to reproduce the structure, as required. We are not telling every worker at a car factory to make a new car from scratch. Instead, we give the workers instructions and we do so that the workers cannot break something. If the instructions are so simple that anyone can follow them, then there is a low paid job. Moreover, it gradually begin to perform robots.

Engineers must solve new and interesting problems, and not play the same applications over and over again. The last is work for robots.

Same great site, now with a lot of CSS

The proven fact is (probably) that the “more original” the user interface design, the less people understand how to use it. It is unwise to reinvent the established language of visual communication. The Internet would work much better if we agreed on a set of common elements, and then would express our opinion by combining them. Styles should generate themselves based on several keywords, such as, for example, “let it be metallic, black and ominous” or “let it be business, respectable and blue”, “let it be hippie, funny and under Apple” or “let it be cute and attractive to moms. " It is categorically unacceptable to enter some code to shift something by 5 pixels.

Self importance issues

Program writing is revered by many as the holy grail of software development. Real engineers write programs, they say, and it is the writing of programs that is what makes you a great engineer. Many people consider the influence of their own personality and individuality on the process of writing the texts of programs important. These people most likely need to be consulted by a psychologist, and I say this seriously. I feel that I am becoming one of those people.

But knowledge of convoluted syntax and “coding skills” do not make you a good engineer and, all the more, do not make you smarter. You can be a great coder and no engineer. Developing the best, fast, expandable, creative ways to solve real people's problems is what is valuable and what will become more and more important in the coming years.

Writing program texts is an extremely stupid exercise.

Writing texts of the program allows typos. Moreover, it allows for unlimited "creativity", also known as typical code problems ("code smells"). The bulk of the code is pretty badly done. Engineers spend countless hours tackling syntax, typing errors, structuring locations, styling checks, mistakes, debating style and best practices, developing shortcuts to try to get some of the code to type itself. This is absurd. And it is a waste of time.

We have already arrived

GraphQL eliminates internal routes and completely replaces REST in the coming years. Have you ever wondered why we need a server acting as an intermediary between a client and a database? This should have been abandoned yesterday.

Algolia makes some data set searchable. I do not know how they do it. But I know for sure that a computer is cheaper and optimizes structured data better than a person.

We just have to send the data to a set, and the databases need to organize and optimize themselves using machine self-learning and other fancy stuff. People need to move away from writing database schemas because we inevitably do it wrong. Database development is an optimization algorithm, not an engineering task.

Engineers all over the world are rewriting again and again functions such as authentication, basket, messaging, and countless other commonly used elements. And many of them probably perceive themselves to be pretty cool at the same time.

And these are just a few examples of how engineers waste time reproducing the same basic elements over and over again.

Decision

Product managers, not knowing programming at all, should be able to simply get the application to do what it is supposed to do. The only thing the company has to do is to create elements that make its craft unique. Everything else has already been created in other applications and should only be reused.

As for all the flaming and devotion around open source, most of these projects are not done well and are not saved and used at the business level. Companies "reinvent the wheel" and duplicate made.

I now want to create an easy-to-use interface that uses “drag and drop”, in which anyone can create a full-featured integrated application without any programming. I don’t know how I’ll do this yet, but most likely I’m using the skills of working with Adobe Flash CS3 Professional mentioned earlier. Just kidding - I'll probably take React.

Benefits

Companies are economically interested in reducing the entrance barrier for software development work, as well as in reducing the number of people who need to be hired to promote new functions and demonstrate “growth”. If making web applications becomes easier, then more people are freed up to fill in the named positions, and salary is reduced.

Useful for engineering culture

Software developers have a clearly inflated salary, and many (like me) believe that they have the right to receive money and bonuses. In fact, these developers are no smarter or better than other types of workers. With the death of programming, the difference will grow. Engineering activities will reflect the rest of society, and not a very small and socio-economically exclusive subset of people.

“Moneyball” or “The Man Who Changed Everything”

Actually, “Moneyball” (“The Man Who Changed Everything”) is a great movie. I know that he is old, but I just watched him last night and tried to connect the above with this amazing film, but I could not. And it doesn't bother me at all.

Do you know what else would be nice?

Building material in virtual reality. I just bought something, and this is a hoax.

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


All Articles