Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Go is not a puzzle language. I wonder what about Rust? Can we apply "puzzle language" to it? Maybe it depends on the level, how well you know the language?


By the author's criteria,

> A critical element of puzzle languages is providing an escape, a way to admit that the pretty solution is elusive, and it's time to get working code regardless of aesthetics. It's interesting that these escapes tend to have a stigma; they induce a feeling of doing something wrong; they're guaranteed to result in pedantic lecturing if mentioned in a forum.

I immediately think of the borrow checker, and its escape called "unsafe" directly induces a feeling of doing something wrong. Yes, rust would be a puzzle language by this criteria.


I would say that if you want to do 'clean' Rust you could certainly end up in a maze of reference lifetime problems. However here your escape hatch is that you can just clone stuff or wrap it in Rc/Arc just to get it compiling, which is arguably the moral equivalent of sneaking a global or two into a python program: icky, but gets the job done


Certainly. One puzzle it ever and always entices you with is: "can I do this without allocation?".


> Go is not a puzzle language.

Agreed. But, is this what accounts for the oft-seen condescension ?


It was specifically designed for peons (from the creator's perspective) so the condescension is baked in:

> The key point here is our programmers are Googlers, they're not researchers. They're typically fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They're not capable of understanding a brilliant language, but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.


May i counter with: "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."




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

Search: