6 ms·
Ask HN: What are the best programming languages?
Here's the twist. I don't care about pragmatic considerations.
- I don't care about the learning curve
- I don't care about the documentation
- I don't care about performance
- I don't care about licensing cost or restriction
- I don't care about the tooling
- I don't care about the community
- I don't care about the support
- I don't care whether anyone uses it
- I don't care whether the language uses text, voice input, graphical interface, AI, brain interface, etc.
- I don't care whether a compiler exists or not
I am looking for a language with uncompromised elegance. I am looking for the language people would use if magic existed. I am looking for a glimpse of what programming could look like in 10, 20, 50 years.
Go wild.
- samblr 10y agoEach human is ~100 billion neurons and you see AI wants to get powerful in coming years. And it wants to know what's happening in this primate's brain to take over our world. So AI has tricked and trained likes of [Geoffrey Hinton, Yann Le Cun, Andrew-Ng, Demis Hassabis, add-your-favourites] and made them invent things like [Deep learning, Reinforcement learning, Adverserial learning, add-next-invention]. Now you see one does not have to hand code crazy search space solutions like a game of Go. So going up in same gradient - all AI has to do is trick few more primate brains to help it learn most of what is known to human brains. Then AI will turn as queen bee making us serve itself. Its sole aim (as any other human) is to find likes of its own kind in cosmos and reproduce. Meanwhile when all of this is happening - it may generate enough fancy consoles/human-imaginations with/without brain-interfaces to think we are programming. Fire, Stone tools, Art, Language, Navigation (boats,horses etc),Metallurgy, Books, Steam-engines, Electricity, Telephones, Computers were all programming languages (or AI) in themselves. So in a broader way - what we call as best programming language is/was another way of saying 'HOW CAN WE HUMANS OPTIMISE OUR LIVES (i.e eat, reproduce, defend, conquer)'.
- miguelrochefort 10y agoBest answer yet. What do you suggest we do?
- samblr 10y agoOptimistic way of seeing this is : Since there is enough inequality in world - one needs to strive towards spreading 'usage or applications' of 'best-programming-languages' to entire mankind. eg: what if all (most) humans on planet had education, water, electricity and internet. Unfortunately I can only see so far. So there is enough work cut out in our lives (I think). Pessimistic way to see this is : since there is enough inequality - what if few people turn to evil-cyborgs and create more inequalities. And eventually cultivate human colonies envisioned in Matrix to their own pleasure in brain (or cpus or gpus or tpus). Another way to look at this is - all work produced by humans are result of their neurons firing up in certain way followed by motor movements. Hence your every line of code in editor and a cup to drink coffee are a result of lot of neurons firing by you and others respectively. In a way you cannot differntiate one is programming and another is not. So question that remains is ? Is your current code/work good or bad for human neurons using it ? So good or bad perception is mostly horomones/neuro transmitters in various parts of brain ? Writing this has made me feel - most humans are already a form of AI when compared to animals - eg: so what is the good we are searching for whereas elephant herds in africa are following rain patterns and reproducing like ever - they have more neurons than we do ? Was fun to let imagination go here.
- nabla9 10y agoClean, http://clean.cs.ru.nl/Clean http://clean.cs.ru.nl/Clean or Haskell, Forth, APL, Prolog/Datalog, Newspeak, http://www.newspeaklanguage.org/ http://www.newspeaklanguage.org/ or Smalltalk, Common Lisp Each of the languages mentioned above has cornered some aspect of uncompromised elegance in completely different way.
- gokr 10y agoAlthough I don't know much about Clean and APL - I definitely agree with Forth, Smalltalk and LISP as being very elegant in their own three unique ways. I am trying to combine aspects of those three in Spry (sprylang.org) creating a homoiconic (LISP), DSL friendly (Forth & Rebol) and natural smooth OO (Smalltalk) language. But if you are simply looking for an existing well defined language (and not interested in helping creating one) - then I would probably point at CLOS (although I personally love Smalltalk). But... the future? <shamelessplug>Spry :)</shamelessplug>
- miguelrochefort 10y agoThe goal is to create a better language.
- herbst 10y agoRuby. Its cute, what other language can say that about itself?
- grilo79 10y agoBasic
- grilo79 10y agoBasic
- executesorder66 10y agoWell it's all subjective. Check out: Rust Clojure Nim
- JakDrako 10y agoArc fits the bill: http://www.paulgraham.com/arc.html http://www.paulgraham.com/arc.html
- simonpure 10y agoCheck out PicoLisp and marvel at its simplicity [0] [0] http://picolisp.com/ http://picolisp.com/
- TurboHaskal 10y agoObligatory Perlis languages link: http://blog.fogus.me/2011/08/14/perlis-languages/ http://blog.fogus.me/2011/08/14/perlis-languages/
- EliRivers 10y agoAPL. Although it's not what programming will look like in 50 years. It's fifty years old already and hasn't caught on. My guess; in 50 years time, programming will look pretty much how it does today.
- nimmer 10y agoNim http://nim-lang.org/ http://nim-lang.org/
- AnimalMuppet 10y agoSo, what languages are best if you don't care about actually doing anything with them? I suggest that your question is almost a category error - programming languages are tools to be used more than they are art pieces to be admired. That said, I have a list of candidates. Or rather, I have pieces of languages that I think fit: Lisp macros. Haskell's type system (but not using monads for everything - though that may be a consequence of the type system). C++'s RAII paradigm (and destructors). Perl's natural language approach. No, really. When programmers talk to each other, they say things like "Read in a line of text. If it ends in a newline, remove it." If you try to talk to the compiler that way, it says, "Read in a line of text from where? If it ends in a newline? If what ends in a newline?" But Perl lets you program that way. Read in a line of text? Well, since you didn't specify from where, that means from the default place, which is a file handle that loops through all the files that were in the command line. Put the line where? You didn't specify, so it goes into the default variable. If it ends in a newline? You didn't specify what, so you must mean the default variable, which conveniently is where we just stuck that line of text..."
- binki89 10y agoI've enjoyed Crystal (https://crystal-lang.org/ https://crystal-lang.org/) a lot lately. Others have mentioned Nim, which is quite good. Also, D-lang (http://dlang.org/ http://dlang.org/) doesn't get nearly enough love by people. It's an excellent language too.
- xchaotic 10y agoWhen it comes to it, people still use C where it matters. It has it's bare metal beauty, like a sharp knife, unless you know what're doing, you're more likely to cut yourself than do anything useful.
- miguelrochefort 10y agoI said that I did not care about performance. Nobody would pick C if computers could execute code instantly.
- AnimalMuppet 10y agoDisagree. If you need to talk to hardware that is mapped to memory addresses, C is a probably the most natural choice. (Granted, most people don't need to do that these days...)
- miguelrochefort 10y agoI don't think you read the question.
- AnimalMuppet 10y agoI read the question. It's fine that you don't care about performance. But your dogmatic statement in response to xchaotic was factually wrong, and I responded to say that.
- vmorgulis 10y ago- A language that can optimize its own execution (like a jit) with SVM, neural networks or superoptimization. For example, the language can change the memory layout at runtime depending on the data or use SIMD instructions automatically. - A compiler that can target any platform. With the same techniques as above, the compiler can discover the primitives of the target with fuzzing.
- iLemming 10y agoLisp. Because it's not a language. it's an idea. And it is effing awesome idea. I'm pretty sure if humans don't drive themselves to extinction, even 200 years from now Lisp (in some form) will exist. Today - Clojure, Racket, LFE, PicoLisp, Common Lisp even Emacs lisp - they are loved and being utilized by many.
- John_Brown1980 10y agoSO, your wishes seem to come true! If you don`t know yet, the new language which matches your requests was developed. Its name is SIMIT and the main advantage- reducing the code up to 90 percent. I believe it is the new era of programming as it will be used in all scientific spheres. Here you`ll find out what are the features of SIMIT and how it will replace the existing programming languages http://computoolsglobal.com/blog/revolutionary-programming-language-simit/ http://computoolsglobal.com/blog/revolutionary-programming-l...