Remix.run Logo
evdubs 5 hours ago

> Show me a convincing example of something that's simple/clear/elegant/superior in Lisp, and how difficult/complicated/ugly/impossible it would be to do the same thing in Java/C++/Ruby/Python.

Serialize and deserialize data. You're currently using something like XML or JSON for a human readable data serialization format in those languages. JSON and XML are not first class components of those languages. S-expressions are a better version of JSON and are first class components of Lisp.

bccdee 4 hours ago | parent [-]

That's a bad thing, though. You should not be `eval`-ing your config file, much less untrusted messages.

attila-lendvai 3 hours ago | parent | next [-]

you don't need to call eval for the usual config file setup, only read.

(but you often get something much better when config files are plain lisp code; i.e. they are eval'ed, assuming that the threat model allows it)

evdubs 4 hours ago | parent | prev [-]

I am not so sure how it works, but you can define your own evaluation handler for `eval` which, I assume, can be as restrictive as you need if you're dealing with untrusted data.

bccdee 3 hours ago | parent [-]

Seems simpler just to use `json.load`.