
Ask HN: What is the Unique Selling Point of each programming language? - bakery2k
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?<p>Some examples:<p>- C++: Zero-cost abstractions<p>- Lua: Ease of embedding<p>- Rust: Memory safety without garbage collection<p>Other possibilities:<p>- Go: CSP-style concurrency?<p>- Julia: Multiple dispatch?<p>- Python: Executable pseudocode (or, in its early years, &quot;Perl, but readable&quot;)?
======
SilasX
I'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).

~~~
nimmer
I find readability times speed times expressiveness to be more important than
any single feature.

~~~
SilasX
Which I guess would explain your username then!

------
Turing_Machine
JavaScript: 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
JavaScript 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
It'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.

------
treehau5
SQL: 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) {};

------
thomasrossi
Java needs to be mentioned too, it is/has been front end for enterprise
databases, all around sound

