Cathal Horan in his Intercom blog describes how programming languages change the world.
Software becomes a commonplace thing
Our TVs have become smart, thermostats have adjusted to our daily schedule and cars will soon be able to operate independently. The way software is developed have much influence on our lives.
It is less obvious how programming languages, which in fact create software, affect us. However, they influence even those, who have never seen them. As the matter of fact, programming languages are quite similar to human ones – they change our view on life, our experience and interaction with tour surroundings.
Languages affect learning
Think of the numbers 10, 11, 12, 13 (ten, eleven, twelve, thirteen) and so on. We use them so often that even take no notice of how weird they sound in English. Wouldn’t one-teen, two-teen, three-teen etc. be better? Other languages seem to have more structured naming systems. In Chinese, for example, numbers follow much more logical pattern of word formation: ten-one, ten-two, ten-three etc.
The English language interferes good math comprehension. You have to translate numbers into words before you start calculating. But if you speak Chinese – mathematics is just built in the language itself, it is simply inherent. When your task is to add up two-ten-three and five-ten-six, it doesn’t require any additional time for translation. That is, actually, why some cultures score better in maths – they just have a certain type of languages, used in daily life.
The Medium is the Message
The fact is that we often forget that language can change the way we interact with the surrounding world. It is not a neutral arbitrator – it is a concerned party. The same with programming languages: they influence the way programmers think of the software. What is more important, they affect the way end users make use of the software. As a designer or product manager, you probably have no concern for the programming language utilized to reach the long-run objective. But you would have to care if the language could influence the way a product is created and exploited.
Such languages as Python and Ruby remind us of natural human languages. They allow designers and engineers to obtain working prototypes faster than any other more complicated languages. The closer programming language is to the human one, the faster you can start testing your hypothesis.
Long story short, do not underestimate the importance of a careful choice of programming language for your product. As Marshall McLuhan once put it : “The medium is the message”. It pertains programming languages in startups as well – it is a medium through which your software product communicates with your customers.
Language Can Speed Things Up and Down
Guido van Rossum, the creator of Python, once said that programming language is not just the way to say a computer what to do, it is communication means for people.
A programming language is how a software developer expresses and conveys ideas…and these ideas often reach the final programs users, i.e. those people, who will never understand or even know of them, but who, nevertheless, are subjects to their influence.
Just in the same way a language facilitates our math understanding, programming language simplifies soft creation. Take Dropbox. They used Python for fast development and the creation of its products’ prototypes. The programming language they chose provided the final users with something they could work with within the shortest possible period of time. They could prepare a proof of concept “with eyes closed”.
Just the same way, Google was devised on Python. It was the language, which best corresponding to of Larry Page and Sergey Brin’s original vision on the web index and organization of search results. Just like Dropbox, Python let the ideas come into the world far much faster than any other language did. Less steps on the way from just a concept towards its realization allowed them to make the project users-friendly.
The similar fast iterations are hampered by such languages as C++ or Java. The adjustment of the project to a final consumer requires much more resources and time. When the programming language chosen by your startup can slow down the product cycle, it stops being just an optional, unimportant part of your product.
A New Type of Moore’s Law
What does this mean in the context of the future software? Firstly, it makes programming simpler for people. Such languages as Python are best describes as a pseudo-code – even the people who do not code understand it. Compare it to the previous languages, such as Assembler or C, which required an extended knowledge on the way computers operate. When a programming language resembles a human one, the gap between an ultimate user and a developer is reduced.
Secondly, simpler programming languages create a new type of Moore’s law. Instead of decreasing processors costs, it destroys limits to start programming and allows people to broadcast their ideas into a software. More people are creating software than more transistors in a processor.
Though Moor’s law seems to come to its end, the evolution of programming languages isn’t even yet in full swing. When such evolution reaches its climax, we will all benefit from it, no matter whether we speak the language or not.