3 ms·
Ask HN: What is the Unique Selling Point of each programming language?
I am looking for examples of programming languages and their most distinctive feature. Which languages have a principle which guides development of the language and sets it apart from others?
Some examples:
- C++: Zero-cost abstractions
- Lua: Ease of embedding
- Rust: Memory safety without garbage collection
Other possibilities:
- Go: CSP-style concurrency?
- Julia: Multiple dispatch?
- Python: Executable pseudocode (or, in its early years, "Perl, but readable")?
- Turing_Machine 10y agoJavaScript: can be run anywhere that has a (full-featured) browser without having to install anything. Can load code from the net automatically, again, without having to go through any manual installation process. Has most features found in modern programming languages. Performance is Good Enough for many tasks. Reasonably good as a compilation target for other languages. Of course, it's also got plenty of drawbacks, but you didn't ask about those. :-)
- bakery2k 10y agoJavaScript is interesting because the language itself may not have a Unique Selling Point. Its most important feature is its ubiquity, a property of its ecosystem.
- Turing_Machine 10y agoIt's basically (pardon the pun) the BASIC of today. The early microcomputers almost all came with a free BASIC interpreter, and a lot of programmers got their start that way. Nowadays many people get their start with a simple text editor and a JS interpreter running in a web browser.
- thomasrossi 10y agoJava needs to be mentioned too, it is/has been front end for enterprise databases, all around sound
- SilasX 10y agoI've been really interested in Nim recently, although I don't think it has a unique selling point, but gives the best (or close to) of several worlds: readability of Python, speed of C, expressive power of Lisp/Ruby, and type safety of (whichever).
- treehau5 10y agoSQL: SELECT Ruby: method_missing JavaScript: function myFunction(){}; myFunction.isAn = 'object' Go: The beautiful simplicity of implementing interfaces, and multiple return values (besides the concurrency primitives) interface Thinger { DoThinger() } type Thingy string; func (t *Thingy) DoThinger() { // Thingy, which was based of a string, now implements Thinger. This can get really powerful. func myFuncCanReturn() (thing1, thing2 Thinger) {};