Ask HN: Which tech stack is the most fun?
After unintentionally ending up on several React Native projects, I hunger for the days when I used to enjoy coding. The developer experience of React Native is tedious, frustrating, and unrewarding. But as I ponder a job change, I wonder: What is better in this day and age?
I remember when Ruby on Rails hit it big, one of its mantras was that it made coding fun. As Rails has waned in popularity, has any other tech stack taken that crown?
What do you all think?
EDIT: Obviously this is highly subjective so if you can provide your motivations for why you feel how you do, that would help us all. Thanks!
186 comments
[ 5.1 ms ] story [ 84.6 ms ] threadI might enjoy what you find distasteful and vice versa.
Personally, I enjoy using Python and C. I am curious about Rust but haven't had an opportunity to use it much.
Your mileage may vary. I recommend trying a few different languages and see what you enjoy.
Edit: I like C because it feels simple and has a "what you see is what you get" property. The amount of "hidden" code feels like zero.
I like Python because the syntax is elegant and it is easy to get a lot done with a few lines of code.
*Your mileage may vary
Whether you should use them professionally is questionably. But for me they made writing C fun again.
If you just want something to manage a web site with as low effort as possible, go for either Wordpress or Drupal. Every web hoster offers some form of hosting for these platforms.
If you're in for something a bit more fancy frontend-wise, go for ReactJS combined with Parcel - the latter is multiple lightyears better than Webpack or, heaven forbid, Gulp. Seriously, discovering Parcel was an eye-opener. Beware though, a lot of Parcel plugins haven't been updated to Parcel v2 yet - backwards compatibility still isn't regarded highly in the frontend world.
If you're more interested in building APIs and know PHP - dive into Symfony, the progress there has been massive over the last years.
Personally I love Elm on the frontend, for being so orthogonal to mainstream platforms. On backend, rust is great but maybe too intense. Go is bland but overall easy-going.
My solution is generally to work at many different things in parallell, but that largely works because I’m a senior engineer and I’m naturally pulled to step in and assist in various places. I don’t think there’s an universal answer. Fundamentally, it’s probably not reasonable to expect that all aspects of once work should be thoroughly enjoyable.
Previously I've used compojure and all that.
I've only done the data/backend stuff, so I've personally never seriously used cljs, and my companies would use a regular reactjs frontend.
But Clojure is definitely a joy and if I had to make a frontend I'd probably reach for something like reagent.
Thanks!
When it comes to a career change I’d focus less on lang/stack and more on engineering culture, approach, practice. A team that builds good software, regardless of language or stack, will be a pleasure to work with.
I think that functional programming ideals lend themselves to this nicely. Specifically: data as a first principle, with actions/mutations/calculations of that data being separate.
ruby on rails is still awesome. But since you might have to work with react anyways...nextjs is a second.
On the mobile side - Flutter is unparalleled. No seriously - im a react guy. And Dart is weird. But Flutter is seriously the Ruby on Rails of the mobile world.
No client/server division to worry about, all of the desktop environment's capabilities developed over decades, insane CPU and GPU power and memory bandwidth (now on Apple's industry-leading ARM chips). Obj-C gives seamless access to both C/C++ APIs and the best desktop GUI with incredibly powerful features like the Cocoa text system.
I think Phoenix and Elixir are trying to. I like them.
I like Objective-C a lot too. It's a reasonably thin layer on top of C and has a dynamic flavor (which I prefer). The documentation is showing its age.
* Getting something up and running quickly. Something that does what you want.
* Iterating quickly on the thing you're building. Need a library (gem)? There's very likely a pretty good one.
* Building the thing in a fairly clean way (tests, code organization) in a way that's not too bureaucratic and tedious.
* Friendly community of people.
I've done some playing around with Elixir/Phoenix, coming from the background of a long-time Erlang user as well as Rails, and it's fun to learn, but I'm not 100% convinced that it's more productive than Rails outside of some niches. It's certainly not a bad thing to learn, though.
In Rails I can spin up very quickly a prototype, either with frontend or without and do some small experiments, consume an external API.
For me is also a great way to find ways to express my ideas in coding as Ruby is a somehow permissive language, allowing multiple ways of doing something thus one can find lets say their "coding voice"
I especially like the shoplist one. Such a simple application that's immediately useful.
I enjoyed the little bit of exposure that I had to Tcl/Tk through EXPECT, I used to write a lot of embedded test scaffolding using it back in the 00s. I've also been interested in checking out Little Language [0].
Wapp looks like a great place to start with Tcl.
[0]: https://www.little-lang.org/
Older versions of Laravel were superb - but when I went back recently I was shocked at what a clusterfudge had been made of shoehorning a frontend framework in.