3 ms·
The best thing about a highly expressive language is that you can do anything you want to. The worst thing about a highly expressive language is that you can d
by kyllo 7y ago
The best thing about a highly expressive language is that you can do anything you want to.
The worst thing about a highly expressive language is that you can do anything you want to.
Expressive power vs. intelligibility (for the sake of common convention and communication in a team setting) is a real tradeoff, and the "principle of least power" does partially explain the popularity of slightly less-powerful languages like Java, Python, and Go, where there is generally just one idiomatic pattern for accomplishing a given task.
- jacobush 7y agoI have done some Real Work ™ in Lisp, but dear deity, Forth... that to me really is you can do anything you want to - in such a scary way I have never worked up the courage to actually learn it.
- astrobe_ 7y agoIf you go full Forth you start with writing your own interpreter, so what you are scared of is really your own shadow. And that's one of the qualities of Forth: to stop worrying, stop being scared of yourself, stop being scared of the future... Or more precisely it learns you to fear the right thing: namely the Great Evil of Accidental Complexity, which often disguise itself as necessary evil.
- jacobush 7y agoThat resonates... I'm actually afraid of what I may become taking that path. :)
- geocar 7y agoThat is cute, but Java, Python and Go all also have multiple, huge, commercial sponsors, and I think it's a mistake to dismiss this impact as less significant than the balance between expressive power and intelligibility. The real problem is that even with Lisp's local maximum for expressive power, it is still just a local maximum: Trying to bolt array programming or type systems onto Lisp ends up with something that doesn't feel much like lisp anymore and certainly doesn't feel like APL or an ML. Is there another maximum? I think this is still worth pursuing, but it doesn't seem to be something that a company even as big as Google or Facebook or Oracle can put their back into. What's important to Facebook and Oracle and Google? Popularity. And "intelligibility" as a social construct definitely seems to be related to popularity, but I've never been convinced to believe you must sacrifice intelligibility to get expressive power, or that we can't make programmers any smarter, only that we haven't figured out how to do either yet.