Hacker News new | past | comments | ask | show | jobs | submit login
Succinctness Is Power (paulgraham.com)
11 points by ColinWright 11 days ago | hide | past | web | favorite | 7 comments

I'd argue that Graham's comment about succinctness being power is correct, but him saying Lisp is more powerful than Python is too much of a blanket statement.

Furthermore, ecosystems are more important than the language itself. If Python has an easier onboarding experience and it is easy to read others code, and the community is friendly and active...after some time, it becomes a 1-stop shop for everything. A lot of things I do have a library for Python and nothing for Common Lisp. Sure lisp is waaay better for writing a compiler (I would assume) and has more power on the upper end of the spectrum, but I think Python has a lot more power in the low to medium part of the spectrum where you have a lot of simple scripting/data science/CRUD apps.

If there are good off-the-shelf solutions to most of your problems, you can't differentiate from your competitors by using them. You want a problem space that requires writing a lot of novel code when your advantage is in writing better code.

You just assumed that everyone builds competitive software. A lot of folks need to write code for scripting or to analyze data.. whatever. I don't care if anyone else can do it just as fast. Also, I can't imagine someone writing something from scratch in Common Lisp faster than I can slap some components together, solve a problem, and move on.

With that in mind, I'm a huge proponent of doing everything yourself IF you have the time. This is the Forth philosophy that allows you to eliminate gobs of garbage code, reduce bugs, and maintain the code better long term.

The problem as I see it is Magic vs being exact.

Imagine the magical language that builds things for you, based on a high level business document. There may be 15 pages of detailed requirements that expand into tens of thousands of lines of code, but the people who wrote that 15 pages don't truly understand what's going on.

When they change some small requirement on page 11 it may affect the deeper structure of the entire system, and have ripple effects on everything that happens.

The reason "all languages are equivalent" is that if you really try to avoid the magic, you're stuck with the basics that almost all languages share.

A lot of devs gets overly exited by tactical advantages like saving couple of lines when implementing something, but it doesn't really matter, and the proof I'd give is the success of Go (which I don't even like myself). It's impossible to implement almost anything in Go in less than half a screen of code... and so what?

Anything can be succinctly implemented by just importing a well designed and battle-tested library, and calling a function. `import aws.s3; s3.upload_file('foo.data')`. Bam. Very succinct.

Strategic language advantages like large and productive community, built-in package-manager, ability to create good and idiot-proof APIs, easy ways to autogenerate readable documentation, powerful meta-programming, etc. beat minor details like succinctness.

Write libraries.. not new languages.

Since PG hasn’t mentioned this, it’s worth noting that Haskell enables extremely terse yet readable code.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact