6 ms·
FWIW I personally found Rust the least-painful language, but that may well be confirming my pre-established biases :) - With Zig I kept running into compiler b
by Shish2k 4y ago
FWIW I personally found Rust the least-painful language, but that may well be confirming my pre-established biases :)
- With Zig I kept running into compiler bugs, plus no package manager (I’ve vendored SDL and Clap into the source tree)
- C++ I’d occasionally shoot myself in the foot in ways that other languages would have caught, plus no package manager (OS-level package management does an OK job, so long as you don’t mind using old versions, and faffing about with different operating systems acting very differently)
- The pain from Rust was one time where the compiler wanted me to specify a lifetime, and I didn’t understand, so I just spammed lifetime specifiers in various places until it compiled. I’ve been using Rust for a couple of years now and I still don’t really understand lifetimes, but thankfully 99% of the time I can avoid them.
- Nim was a relatively nice language but massively lacking in available libraries (like even parsing command line arguments took me a day just trying to find a library which worked)
- Go is pretty nice, my main pain is the tolerable but constantly-annoying verboseness of error handling (`err := foo(); if err != nil {return err}` compared to rust’s `foo()?`)
- PHP I just hate on a deep and personal level thanks to years of being a PHP4/5 developer. The language is actually mostly-ok-ish these days, but the standard library is still full of frustration like inconsistent parameter orders within a family of functions.
- Python is all-round really nice to write, but the test suite takes like 20 minutes to run, which really messes with my flow-state
- Thaxll 4y ago"Rust the least-painful language" " I’ve been using Rust for a couple of years now and I still don’t really understand lifetimes" Seems like a major pain point.
- Shish2k 4y agoIt would be if I ran into it regularly -- but after using the language for a variety of professional and personal projects for a couple of years, this is the only time I’ve actually needed to manually-specify lifetimes since the compiler normally figures it out for me :)
- robocat 4y agoThey are saying rust is painful. Just that they find the other languages even more painful.
- davisoneee 4y agoExcept that they don't really say rust was painful....just that there was one specific moment / aspect that they found tricky.
- pkolaczk 4y agoAs long as you don't get too crazy with references in structures or async code, lifetimes are not going to chase you.
- galangalalgol 4y agoGenerics too right?
- pdimitar 4y agoI know people say that about everything but Rust generics are very readable and do make sense after you understand what problem are they solving. They do look intimidating to start with, admittedly, and I'll concede that's a negative point for Rust. But it does get better if you practice for a bit.
- galangalalgol 4y agoNo I just meant using generics seems to require explicit lifetimes decently often. I don't understand why.
- pdimitar 4y agoNot sure that's the case btw. I have noticed it with some libraries but I've used and crated a fair amount of generics without having to annotate stuff with lifetimes. Lifetimes are necessary when you want to explicitly say "variable X will live just as long as variable Y", or sometimes it's more complex (i.e. you have to specify 2 or more separate lifetimes and then return something that pertains to only one of them) but it's still fairly predictable if you keep it all in your head while coding. Don't get me wrong I still hate it but it's not as terrible as many people make it out to be. It's hard to get into but also very logical and graspable.
- Ar-Curunir 4y agoThe reason it's not a pain would be explained by the rest of the sentence which you omitted: "but thankfully 99% of the time I can avoid them"
- UnpossibleJim 4y agoThis is actually a really nice write up for people deciding which language to learn/use if they aren't constrained.
- pjmlp 4y agoC++ has two relatively good package managers, conan and vcpkg.
- cb321 4y agoRe CLIs in Nim..Most find https://github.com/c-blake/cligen https://github.com/c-blake/cligen easy to use.
- stock_toaster 4y agoNim does seem nice. I worry that it will end up like D though... An interesting/cool/neat language with seemingly relatively little adoption. I'm keeping my eye on it though.