Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think it is very unfortunate that we use the same work "language" for human languages and computer languages. They are nothing alike, except you can write them in textual form and they have some kind of "grammar". It's a bit silly, but if you can't say "I love you", it is not a language to me.

I would rather say, programming is like designing an intricate mechanism, such as a mechanical clock. Some people have compared it to carpentry, or engineering.



> if you can't say "I love you", it is not a language to me.

void declareEmotion( bool isInLoveWith ) { if( isInLoveWith ) { printf("I love you\n"); else printf("I'm sorry, this isn't working out...\n"); } }


> if you can't say "I love you", it is not a language to me

Japanese don't say "I love you" (winky face)

[1] https://www.quora.com/Do-Japanese-people-say-I-love-you-to-p...

[2] https://answers.yahoo.com/question/index?qid=20090222081745A...

[3] https://www.youtube.com/watch?v=azLpKvKBdHE


In the native dialect of western Austria you can't say "I love you".

Some form of "I like you" is as high as the emotions get there.


"The authorities are desperately searching for a husband of 47 years, who killed his wife in a horrific crime of mild attraction"


I doubt that you can say "I like you" also. Way too direct. "Gut schaust aus" is more typical


While I don't agree with OP, I don't think this is a valid argument. One can say "I love you" in a subset of formal Sanskrit which obey's Panini's grammar and rules.


I don't understand - Sanskrit is a human language (albeit a dead one).

Whereas, you could "write" programs by arranging little pieces of would with symbols on them on a board. You could punch hole cards for a mechanical loom, or you could solder electronic components together. None of that involves communicating with other people.

I think a better analogy than language would be a mathematical calculus - i.e. the way you can write down certain symbols, and manipulate them using certain rules, and you have certain guarantees about the result.

Another analogy would be a "kit" of standardized/conventional elements for construction, e.g. I-beams, windows, tiles, 2x4s, doors, cable channels, ... . You arrange these things, and if you do it properly, you get something meaningful and useful like a house.


Writing a program is different from the concept of what a programming language is. A programming language has an underlying grammar/rules. Through Panini's work, a subset of Sanskrit can also be expressed through rules.

This link on grammar might also interest you- https://en.wikipedia.org/wiki/Formal_grammar


It's a series of tools and components required to fit certain related theories?

In carpentry you have many standardized off-the-shelf tools and components (hammers, nails, windows, tiles, dimensional lumber) and you have an almost endless number of ways to combine them. You can also create your own tools and components (which is harder). You also have some pre-determined guidelines that are meant to protect/regulate things so that they're safer and easier for a wider audience to live with, maintain, and edit (building codes).

Any of this stuff will work together as long as you stick to the constraints of individual objects as they fit into the laws of physics (a component can only bear X load in Y configuration).

The concept of "properly" is a bit varied. I can build a house with mud and straw and it's a "proper" house in some parts of the world... but it might kill me in an earthquake. This might be due to a pre-determined assessment of earthquake risk, or it might be because of limited knowledge and resources available (very common in coding, and often OK in small scale scenarios).




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: