3 ms·
What characteristics makes a programming language a "real" programming language?
by jswrenn 10y ago
What characteristics makes a programming language a "real" programming language?
- petre 10y ago- has a standard library - has library support for the usual stuff: strings, math, web, database, encoding, etc. - written using a lower level language (like C, Rust, C++), self hosted (Go) or a mix of those (Dlang, Perl6) - is actually used to build applications, has some sort of community around it (Rust, Perl, Python, Lua etc.) or some backing (Swift, Java, Go)
- threatofrain 10y agoThe most important distinction would be that you don't have to make a transition from education contexts to production contexts. I mean, why isn't it possible to design a language that is both quite fit for education & production? Is Python vs. Pyret really that big a difference in education outcomes? This is important for professors & TA's, educators, or enthusiast parents who wish to teach their children. All have to master a toolset and environment prior to teaching others, and maintaining the environment is also an ongoing cost. Some of this cost will be assuredly transferred to students, so we want to be sure that a "pedagogical" language without production traction has such powerful gains that it offsets the losses.
- skrishnamurthi 10y agoYes, it is a big difference, depending on what you're trying to teach. If you want to teach a conventional CS curriculum recognizable from the 80s, Python is great (though some people really prefer teaching with static types, which Python does not have and which are absurdly hard to add now). Here are several other differences: https://news.ycombinator.com/item?id=13189513 https://news.ycombinator.com/item?id=13189513
- munificent 10y agoIt's a real language if there are programs written in it where the where the main goal is what the program does when you run it, and not what the author learned writing it.
- _audakel 10y agoThis is kinda like learning CS theory - kinda useful to keep in mind for other things, but never actually used. ie -> set theory, Finite automata, Turing machines etc...