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

Where does this idea that a programming language has to be Turing complete come from? As far as I can tell from cursory searches, the most broadly understood understanding of a programming language is a formal language for directing computations on a computer. HTML does this, CSS does this, and SQL does this. Frankly even configuration languages like YAML or the spare INI file do this in the proper context.

Can these languages do everything or even most computations you would be interested in doing in a computer? Of course not. But why should the definition be restricted to languages that can do everything?





Your definition is overly broad and makes everything a programming language, at which point the term isn't useful anymore.

But Turing completeness is also too broad. Otherwise Power point animations and Conways game of life are programming languages.

Yes. So a criteria that is below Turing Completeness but which wouldn't make markdown a programming language. Shouldn't be _that_ hard to find such criteria. E.g. "Has some form of logic/flow control". Can perform computation/"execute". etc.

I mean, CS is famously bad at exact definitions [1]. Why should we have one for what a PL is? Just do what humans have been doing for millenia, how is it commonly used. A tomato is a vegetable from a culinary perspective, and HTML is not a PL based on its use case and its literal name.

[1] what is a low or high level language? Strongly typed language?


I will take this over HTML



Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: