DEV Community

Pragmatic Maciej
Pragmatic Maciej

Posted on

What really is programming?

We have again tech discussion over what is, and what is not programming. Twitter is in fire about HTML/CSS being or not programming.

There are voices saying it's not programming, but they don't say exactly why. Also such voices are immediately considered as going from gatekeepers, which is simple defense mechanism of people doing HTML. Another voices are saying that it is programming, as everything we say machine should do is programming, but such opinion makes me little laugh, as it reminds me that we can program also washing machine. I am then washing machine programmer?

But lets take step back. How far HTML markup is from any other text markup, and how far is from such complex language like C++. However in the end of the day, we all create text files which are finally interpreted by machine. Our text is compiled, parsed, interpreted and the machine makes something from it.

But, if making any markup is programming, we are very close to say that making any text document is programming, and from that we are close to ... I again remind my favorite washing machine example 😁. I have seen some voices that doing MS Word is not programming because it has GUI. Funny, as if I would be doing page design in some GUI (some of you remember MS FrontPage), so now it is not programming anymore, but if I will make tags manually it is. Not quite good distinction don't you think?

I am standing in any side here, I am not saying doing HTML is programming or not. For sure working with not Turing complete tool like HTML is a different thing than working with Turing complete one. The complexity is just at the different level.

Wikipedia definition of programming starts from:

"Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result."

The first thing which is not accurate is "executable computer program", as for example all interpreted languages don't have compiler and don't create executable files. They are used in some virtual machines, they are interpreted. Doing SQL is considered as programming even though for sure there is no executable and its just interpreted by database engine.

Ok, to the point 😉. In my opinion both sides really don't know where is the border between programming and ... exactly and what? Doing HTML is designing, templating, configuring is what? Till now I thought that programming starts when we can express algorithms, which really probably is the same as saying that the tool you use needs to be Turing complete. If Turing completeness is not the border, then what is?

What is your call here? Does programming starts with Turing complete languages? Or maybe the border is different? I will be very happy to know your opinion.

Top comments (0)