5 ms·
My career so far: Delphi -> Microsoft stack -> Rails/Ruby -> Scala -> Clojure -> Rust The stuff I remember well starts from Ruby. Good things: - Ah man code
by pimeys 9y ago
My career so far:
Delphi -> Microsoft stack -> Rails/Ruby -> Scala -> Clojure -> Rust
The stuff I remember well starts from Ruby. Good things:
- Ah man code is like a book.
- Lots of people were writing Ruby back then, so lots of libraries.
Bad:
- Deployments in general, this was before Docker, but I prefer having single binary/jar deployments
- Slow
- Lots of runtime errors
- You need lots of tests
Scala, good:
- If using IntelliJ, the development experience is kind of slick
- Quite modern, JVM libs work
- You can go functional or OOP, whatever you wish
- Fast
- Type system helps you out, so no need for that many tests
Bad:
- IntelliJ, I need my Emacs
- SBT is not very nice in the end, making a huge jar file can cause trouble sometimes
- Not the biggest fan of implicits
Clojure, good:
- Lisps are SO MUCH FUN to write
- ...especially if writing pure functions, stuff like code generators
- Emacs is good here, Cider rocks!
- JVM libs are available
- Leiningen is definitely nicer than SBT
- Everything is pretty easy and straightforward
Bad:
- Concurrency and effects can cause trouble, especially if doing it through Java libraries
- Leiningen is nice, but slow. You must use Cider.
- Runtime errors, as with every dynamic language
- Again lots of tests, but at least they're fun to write
Rust, good:
- Concurrency, IO and so on. Just damn nice with Rust
- Refactoring without fear
- Cargo is the best dependency management / build tool ever
- Small binaries
- Total control of CPU/RAM, you can do pretty fast systems
- If it compiles, it usually works
- Type system is great, libraries are quite nice already
- Community feels like the good old Ruby days, but better
Bad:
- Borrow checker still sometimes hurts, hopefully non-lexical lifetimes land to stable soon
- Problems with the current 0.1 tokio and futures can be pretty daunting. It's not a good idea to do super complex stuff with them yet
- Write your own libraries, especially if you started two years ago. That was fun though
I think the next thing I must grasp well is Haskell, just for the fun of it.
- hashmal 9y ago> Community feels like the good old Ruby days, but better I really miss that old Ruby community. It was full of that hacker spirit, everyone trying stuff, no one to crush your creativity. Then the startup hipsters took over and came up with good practices, style guides, gems you absolutely had to know to get hired, etc. It drove me away from Ruby, actually. It just wasn't fun anymore. I hope it doesn't happen with Rust. I did not have so much fun writing code for a long time.
- pimeys 9y agoThis definitely feels my own golden age now being able to write Rust and seeing all these great people doing interesting projects and hacking things...
- MrBuddyCasino 9y agoThe ecosystem and the community is fantastic. But I have to say, Rust is a harsh mistress. Guess I need more practise.
- hashmal 9y agoRust is a very different beast indeed. The fun clearly doesn't come from the "flexibility/easiness" of the language (compared to Ruby), but really from the feeling that we're all still discovering a new paradigm, new ways to do things using its various features. Building state machines out of the type system is an example. Rust is still kind of a blank canvas just asking to be painted on.
- MrBuddyCasino 9y agoYes. I think the biggest thing it has going for it is that it is an advanced language offering superior guarantees, but lacks the smell of academic elitism that Haskell and Scala carry. Its a working mans tool, with a welcoming culture that disapproves of intellectual status games and too much jargon.
- innocentoldguy 9y agoYour comment really speaks to me. I'm in the process of transitioning my career out of development altogether for the reason you mentioned getting out of Ruby. It just isn't fun anymore. I haven't been able to find a company with a good hacker-spirit since 2010. I like programming, and will probably continue with languages like Elixir and Haskell, but as far as the day-to-day work goes, I'm done.
- 9y ago