Goodbye programming ...

Original author: Lauren Mendoza
  • Transfer

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 represent different paths for modeling the same information and interacting 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?

Inspiring Idea

To create electronic music, I used a program called Reason. I like it because it allows you to drag and drop wires between different devices and accurately shows how everything is connected there. For me, the clearly displayed postings make a lot more sense than the endless pile of menus and pop-ups that dominated the most advanced software in the 2000s. (I love you, Adobe Flash CS3 Professional). Thanks to the Reason interface, I better understand what I'm doing, and 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” who 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. Being an engineer means dealing with new problems, deeply thinking through tasks. This is, indeed, intellectual activity.

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

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

Engineers must solve new and interesting problems, and not play the same applications again and again. Last - work for robots.

The same big site, now with lots of CSS

The proven fact (probably) is that the more “original” the user interface design is, the less people understand how to use it. It is unreasonable 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 express our opinion by combining them. Styles should generate themselves on the basis of several keywords, such as, for example, “let it be metallic, black and ominous” or “let it be business, respectable and blue,” “let it be hippy, funny and like Apple” or “let it be cute and attractive to moms. " It is absolutely unacceptable to enter any code in order to shift something by 5 pixels.

Self Importance Issues

Writing software 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 it important to influence their own personality, individuality on the process of writing program texts. These people most likely need a consultation with a psychologist, and I say this seriously. I feel that I am becoming one of such persons.

But knowing the intricate syntax and “coding skills” does not make you a good engineer, much less make you smarter. You can be a great coder and no engineer. The development of the best, fast, expandable, creative ways to solve the real problems of people is what is valuable and what will become more and more important in the coming years.

Writing program texts is an extremely stupid occupation.

Writing program texts allows typos. Moreover, it allows unlimited "creativity", also known as typical code problems ("code smells"). The bulk of the code is done pretty poorly. Engineers spend countless hours doing syntax, typos, positioning, style checks, mistakes, arguing about the style and best practices, and designing shortcuts to try to get some part of the code to type on itself. This is absurd. And this is a waste of time.

We have already come

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 the client and the database? This should have been abandoned yesterday.

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

We should just send the data to some kind of set, and the databases should organize and optimize themselves using machine learning and other fashionable little things. People should 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 writing over and over again features such as authentication, recycle bin, messaging and countless other commonly used items. 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 replicating the same basic elements over and over again.

Solution

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

As for all the fervor and devotion around open source, most of these projects are done poorly, are not preserved and are not used at the business level. Companies “reinvent the wheel” and duplicate what they’ve done.

Now I want to create a drag-and-drop interface that is easy to use, in which anyone can create a fully functional, comprehensive application without any programming. I don’t know yet how I will do this, but most likely I will use the Adobe Flash CS3 Professional skills mentioned earlier. Just kidding - I'll probably take React.

Benefits

Companies are economically interested in lowering the entry barrier for software development work, as well as in reducing the number of people who need to be hired to promote new features and demonstrate "growth." If making web applications becomes easier, more people are freed up to fill these positions, and salaries are reduced.

Useful for engineering culture

Software developers have a clearly high salary, and many (like me) believe that they are entitled to receive money and bonuses. In fact, these developers are not smarter or better than other types of workers. With the death of programming, the difference will grow. Engineering will reflect the rest of society, and not a very small and socioeconomic, exceptional 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 it last night and tried to connect everything said above with this amazing film, but I couldn’t. 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 it's a hoax.

Also popular now: