Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Which tech stack is the most fun?
100 points by chickenWing on Dec 20, 2021 | hide | past | favorite | 181 comments
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!




For work? Elixir! I particularly enjoy writing tests in elixir compared to any other language so far. Most code is transparent so you can always peek under the hood to see what it's doing, maybe copy a few ideas for your own use. Package management is rather straight forward. The console access in production has been a godsend to execute one off scripts or running export tasks, diagnostics or other bits.

For personal projects? Ruby and Elixir, though ruby's documentation has fallen off of shape as of late, that or Elixir's has spoiled me by setting higher bar

I see you mentioned RoR, you can try Phoenix in its place for Elixir.


+1 phoenix/elixir is such a joy to use. A big emphasis on developer happiness, extremely powerful (with a broader set of strengths than Rails imo), and the actor model is much easier for me to reason/think about because it cleanly separates logic and is designed to fail and recover cleanly.


> broader set of strengths than Rails imo

What are those, in your experience? The BEAM platform is certainly better for concurrent work where you might be holding open something like a web socket. But other stuff...? I'm a pretty happy Erlang programmer and feel like I 'get' the functional programming aspect of things, but to me ActiveRecord just feels like such a great fit for DB work in that it makes the simple things really easy and intuitive, lets you do some more complex stuff, and gets out of your way if you just want to go to SQL. I don't have too much experience with Ecto. It feels like it "does the job", but is maybe not quite so quick and intuitive for basic/simple stuff like AR.


Having worked with both ActiveRecord and Ecto, Ecto is consistently easier to reason about and change than AR. It feels closer to the DB without compromising composability, and better avoids surprises. Ecto is IMO one of the killer features of the Elixir ecosystem that is undercelebrated compared to the neat things that are rarely used.


Do you have any concrete examples that you're thinking of?

In particular, I found that having to include all the fields is kind of a PITA compared to AR. I also just find the mental model of an AR object to be really easy to think about in terms of the simple cases. Before save, after save, accessors, and just having methods available on the object all seem really intuitive compared to changesets. Not that I didn't figure those out in short order, they just seemed a bit clumsier. But I am not super deep into Ecto, either, so maybe I'm missing some places where it shines.


It's hard to beat Rails for "need to make a CRUD app in front of a DB". Phoenix is pretty close, though.

Where it really shines is anything beyond CRUD. I want to make my CRUD apps more dynamic, and build collaboration features into otherwise boring apps. LiveView makes it wickedly simple to do things like typeahead find: https://twitter.com/mrkurt/status/1434969788275691522

And Elixir + BEAM gives me reasonable plumbing for collaboration features. Even something as simple as presence makes CRUD apps more powerful.

So the broader set of Phoenix strengths aren't ActiveRecord vs Ecto. Phoenix helps me build a more powerful app because it has a broader set of strengths. And it's almost as good at Rails for just CRUD, so I don't give up much to get those features.


For me, native macOS with AppKit (Cocoa) and Objective-C is still the best and most productive development environment.

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.


You still like Obj-C more than Swift? I vastly prefer Swift to Obj-C, and I used to code in Obj-C professionally.


I (have to) write C++ professionally. With that constraint, it's easier for me to work in Obj-C because its runtime is so thin and it's generally obvious how it interoperates with C/C++.


I'll take Obj-C over Swift any day. With Swift I feel like I have one arm tied behind my back and I'm constantly wrestling with it in order to do what I want.


Like the person you replied to, I vastly prefer ObjC, I find the compiler pedantry in Swift to be annoying and to slow me down. ObjC is very fast to write and to iterate on, particularly in my style where everything that's an object gets typed as `id` so trying new ideas just means swapping out implementations.


I've been having a wonderful time spinning up small projects using Tcl, Wapp, and Sqlite. Tcl's quoting rules makes it really easy to embed HTML (or anything else, really) inline within a procedure. Simple example:

    # available at /style.css
    proc wapp-page-style.css {} {
        wapp-mimetype text/css
        wapp-cache-control max-age=3600
        
        wapp-trim {
            body {
                background: aliceblue;
            }
        }


    }

    # available at /hello
    proc wapp-page-hello {} {
        wapp-trim {
            <html>
            <head>
                <link href="%url(style.css)" rel="stylesheet">
            </head>
                <body>
                    <h1>Hello HN!</h1>
                </body>
            </html>
        }
    }


This is great! I write a lot of one-off utilities that run on my main desktop as web applications backed by sqlite so you're really speaking my language here!

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/


I loved Tcl way back before I switched to Perl. So cool seeing Tcl and HTML combined like this!


There are several examples of small applications in the Wapp repository: https://wapp.tcl.tk/home/file?name=examples/

I especially like the shoplist one. Such a simple application that's immediately useful.


Pleasure to me means I can sleep at night knowing whatever system I’ve built will remain online when subsystems fail, and will self-heal when infrastructure goes down.

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.


could you recommend me some books?


SvelteKit! https://kit.svelte.dev/

It's really fun and easy to make front and back-end apps with any combination of pre-rendering, client-side navigation, and server-side rendering on server-based or serverless platforms. To me SvelteKit makes it feel like there's finally a harmonious unity between the front and backends. Plus the dev experience is straight fire. Not quite at a 1.0 release unfortunately but I still love it.

Plus, Svelte was rated the most-loved framework in the StackOverflow developer survey this year: https://www.infoworld.com/article/3628231/developers-love-ru...


Looks interesting but it says it's unstable. Do you have to write the backend in TS/JS?


Yep! As I said, not quite a 1.0 release but a bunch of people are using it in production.

And yeah, I think if you want to use SvelteKit the endpoints need to be in something that compiles to JS — not 100% sure.

But it's quite possible to hook Svelte itself into any stack you want. SvelteKit is the bundling up of a bunch of nice defaults whereas Svelte is completely stack agnostic.


I’m currently using SvelteKit linked to a go backend. You don’t have to use any of the backend capabilities of SvelteKit if you don’t want to. It’s great to work with.


Take Rails 7 with Turbo. Start with the Jumpstart Pro template. You’ll feel like a god.

https://jumpstartrails.com/

Finally, all of the boilerplate and over-engineered components are gone.

You’re finally free to solve the just business problems. And you’ll be fighting integration issues a whole lot less.

I have no idea why any saas based startup, whether it’s one person or VC backed, would start with anything less.

The day will come when a small team IPOs with this stack. It's just that productive.


From: https://jumpstartrails.com/pricing

> Pricing Plans

> Simple, straightforward pricing to get your online business up and running

> Rails Single Site - Build one application with Jumpstart Pro - $249 /year

> Rails Unlimited - Build unlimited apps with Jumpstart Pro - $749 /year

Might be useful to be aware of the commercial nature of the project, not that it's a bad thing in of itself, just not accessible to everyone.

The features list is promising, though: https://jumpstartrails.com/#features


With any software, if it's inaccessible because of pricing and your circumstances, definitely reach out to the authors and explain your situation.

You will only get in life what you ask for.

They may say no, but you owe it to yourself to try.


I am very put off by the fact that the template is a yearly sub.


I guess we’ll agree to disagree on the sentiment.

Software maintenance never ends. And programmers just like every one else, need to eat.

Assuming even a modest $50/hr rate, you’d chew through $250 just trying to get the team invite functionality working, let alone the other 15 features.

You’re worth $250 a year for something that will make you a happier engineer.

Why burn nights and weekends implementing api tokens or 2fa or user invites when it gives you zero competitive advantage and you could pay $250 and all of that is provided for you?

Spend your dev time where you bring the most value.

You’re worth it. Your ideas are worth it. Be kind to yourself.


I don't disagree with the amount, that largely depends on how useful you find the features.

I disagree with the subscription part.


How can engineers maintain software indefinitely for a fixed price?

I doubt you’d accept a fixed bid project and agree to bug fixes for another ten years.

I don’t think that’s a fair trade.


That's exactly the point because it's a template. I'll likely have value from it once so I'd expect to pay for it once, especially since I'd be allowed to use it on one site.

The fact that they continue to improve it doesn't matter to me because I'd not use it again.

It's basically a theme. I'd equally not pay for a theme on a sub.

Re: fixed bids and bugs, ten years is an exaggeration. A one year warranty, on the other hand, is pretty much expected.


If my time, your time, Chris’s time is going to be occupied, compensation is normal.

Software comes with bug fixes, dependency upgrades, support, infrastructure. All of this takes someone’s time. Which should be compensated.

I can’t argue about pennies anymore. It’s a good value.


Bullet Train is a one time fee: https://bullettrain.co

I'm not affiliated or even a user.


I’d love to use this template but absolutely cannot stand tailwindcss.


What would you use instead?


Looks great. Does anyone know of similar products in other languages? I’m particularly interested in a C# equivalent.


I believe Rails 7 value proposal ("The one man framework") is designed to lure in people with SPA fatigue. And hell, Rails and Ruby are still fun.


> 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?

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.


The most fun programming I ever had was Turbo Pascal in the days of MS-DOS, it was possible to do pretty much anything, and it compiled almost instantly.

When Delphi came along, it was easy to use, but the layers of code made knowing what was going on effectively impossible.

Now we're in the age of trying to force a GUI to appear on the other end of the tech stack that includes hardware not owned by the people who should be their owners, but rather companies driven by profit motives. Connected by a series of privately driven networks, snooped upon by hundreds of competing national agencies and companies from everywhere, and it all sits on top of something that doesn't have capability based security at its core.

I'm used to a GUI, so Delphi would be it, except it's now insanely expensive, and I can't afford it. Lazarus is an open source alternative that works well enough... so that's my choice for fun these days.

As for working a job, which I'll have to do, soon enough... I expect that I'll be stuck using some form of case sensitive, macro encrusted C derivative, or perhaps something "memory safe" and unintuitive like Rust, or "functional" that forbids useful things like goto and global variables like Haskell.

The tech stack that I love the most, however.. is the tech stack we all use, that starts with raw inputs pulled out of the ground, and refined in many ways, until we get laptops and smartphones. It's an amazing technology stack, capable of producing wondrous things that even Absolute Monarchs of the past couldn't have dreamed of wishing for, in quantity and quality that even working class folks can afford.

We live in amazing times, thanks to our shared tech stack.


Leaving my decade-long job at Google at the end of the month, and am going to be taking some time to have "fun" and hopefully get my love for coding back. So I like this thread.

Am I messed up for finding modern C++ on Linux with CLion to be "most fun"? Is there hope for me?

Zig looks fun. Elixir looks fun. I thought Julia would be fun -- because I like multiple dispatch -- but I didn't find it "fun."

I want to love Rust and have been following it for years but as much as I like the language I don't find borrow checking "fun". Which is arguably a good thing, but maybe not good for language adoption.


Have you looked at Clojure?

Definitely fun.


If we're loosely defining a 'tech stack' as something you can build tech in and share, Jupyter Notebooks (I prefer Julia but Python is fun, too) are the most fun I've had coding cool, useful stuff that I can pass to others to use in a long, long time.

But I admit that's stretching the term probably past breaking since it's not a 'general purpose' stack.

But I'm a data person. I've built my career staying away from the UI as much as possible because I find it so frustrating and tedious. So I'm curious to see what others have to say in this thread.


Rails. Nothing really beats it for the combination of

* 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.


I’m at least a bit amused that you have a whole comment about how nice rails is without mentioning ruby ;-)


To me it's just sort of a given that Ruby is pleasant to work with. Otherwise Rails wouldn't be. If Rails itself were unpleasant, though, merely being in Ruby wouldn't be enough to make up for that.


I actually meant it affectionately. I always enjoyed using Ruby and wish it had a larger footprint outside of Rails.


I believe this is why ruby decreased in popularity. Rails preceded its reputation. A similar thing almost happened with Django and Python. I've heard of a few people who call themselves django developers.


Building a UI is usually tedious irregardless of stack. The fun part is what’s new and creative in the project, which is usually a small part of the overall thing.

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.


Elm is a great example of a fun tech stack.

- No environment configuration at all (third-party or otherwise). This is the most pain inducing part of Javascript projects.

- The code you write comes with a lot of confidence thanks to the compiler. Minimization of worry really contributed to a fun environment.

- The code you write is 'proximate to behavior'. In other words, you don't inherit some class or write some configuration file. You just write what you want the thing to do. To effectively program, code must be compiled by the mind.

- The code itself is very expressive so your code is minimal but communicates fully the breadth and depth of behavior. Overly verbose code is fatiguing to write and tedious to read!

- The language is reasonable fast so tests pass quickly. Slow tests are fatiguing and no fun!

I've heard a lot of people like Rails. I haven't used it. But I don't see much of a difference between Rails and every other framework out there. Maybe it has more "batteries included" but I don't want batteries! Batteries require trusting someone else which is not fun!


In my opinion, it's Clojure(script).

I simply just don't have as much fun with other languages anymore. Clojure let me write some of the most elegant code I have ever written, and knowing certain nooks and crannies of Clojure lets me pull off some...interesting stuff.


Could you say more about what/how you're using them? Like, frameworks, libs, practices (testing), editor, repls, etc.


Sure, my go to editor for Clojure is Emacs with prelude and few major modes (CIDER, Clojure mode, paredit, smart parens, helm, etc). I use the CIDER-nrepl to jack into a REPL process within Emacs, so I can evaluate buffer's with C-c C-k. It creates a very fast feedback loop.

Clojurians don't tend to like frameworks and stuff. They're less frameworks, and more toolkits, a collection of popular libraries with config out of the box. Popular ones are Pedestal, Luminus, Edge, Compojure+ring. I started with Compojure, and I've played with luminus, Juxt's Edge, but lately I almost always bring together Reitit (a router) and Ring (jetty adapter for Clojure).

Front-end frameworks are a different story though. There are two big contenders: Reagent and Re-frame. Reagent is a Clojurescript wrapper around React that uses Hiccup (an http DSL for clojure) syntax to define components. Re-frame extends Reagent by providing a side-effects-under-the-hood framework for building single page applications. Recently, I've taken to really liking re-frame, especially with the Material-UI Reagent wrapper to ship fast.

clojure.test is the core testing library, and it's pretty robust out of the box with assertions and macros for testing conditions like Exceptions being thrown. By default it provides diffs when the test fails. There are libraries to help with testing/mocks and stuff, but I almost never use them.

It's also possible to use clojure.spec to create data generators for generative testing; however, the caveat of using clojure.spec for generators is typing your functions/type/etc too much, you'll lose the benefits of a dynamically typed programming language and probably spend more time writing the specs instead of the code. I typically use spec, or a competitor like Malli, to validate input at the system boundaries and critical code pathways.

There is so much to the Clojure ecosystem, this really only scratches the surface. I hope this helps though.


Thank you very much! Do you mind being contacted for further questions at some point? I'm generally aware of the Clojure ecosystem, have a plan to build an app and might have some further questions. Note that I ask in all eventuality that you might have the availability, I know it's pretty bold of me ;).

PS: my email is in my bio, and this is concerning the near-ish future


sure I'll reach out


I came to the comments to make a similar assertion of Clojure(script) being fun. Usually I work in IntelliJ with Cursive. VSCode with calva isn't bad.

The stack for my project is:

Backend:

Redis (no relational DB needed for my use case)

Clojure:

Carmine - (redis interop)

Reitit - Nice API definition and routing

Malli - Nice schema validation and coercion

Timbre - Logging without known RCE vulnerability ;)

Frontend:

Clojurescript

Figwheel - CLJS compiling and hot-reloading in browser. Would probably use ShadowCLJS these days though.

Rum - It's a simple wrapper around react, with Hiccup-style list syntax for HTML. Though in a do-over I'd probably try Reagent since it seems to have a bigger ecosystem of wrapped react libraries, but I really like Rum best. That said, it's also not that hard to use native JS React components with Rum.

All of the libraries and idioms in this stack guide the design to push side effects out to the edges of the program - this makes testing easier in a lot of cases. E.g., for a web request you can craft a test request, or pretty-print a literal request object and paste it into your code, then pass it to your API in Reitit without an http-server attached, and get back the result object, and assert that it matches the desired output. Clojure's mutability make it pretty simple to stub or mock calls to storage, or to create a fixture to use a test database.


Thank you! In the event you see this may I ask why not stick with Figwheel? Does ShadowCLJS do the job just as well? I remember Figwheel being impressive and it seems maintained.


Figwheel -has- been good for me, but my project is still using the even older figwheel (non-main) rewrite. There hasn't been enough pain to force an upgrade.

From reading and playing with a hello-world project, though, ShadowCLJS seems to offer roughly the same watch|build|hot-reload ability while also offering more and better NPM interop support. As it is now, I have some fairly ugly shell scripting around js packages and builds that could go away if I paid the effort to migrate to ShadowCLJS.

It would also be a lie to say that the generally positive buzz around it doesn't contribute.

If I might ask, what sort of project are you planning?


Pleasure is subjective.

I 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.


Yes indeed. To clarify, what I'm looking for is people's subjective opinions, and if possible, some reasoning behind them. I can see this being helpful to many people, especially if we know what you're priorities are and whether they overlap with our own. Thanks for your answer.


I find that I really enjoy the process of building something - more than the language or stack itself, as long as it gets out of my way and lets me do my thing.

For me, because I know it so well, that is C#/dotnet core.


I still think Ruby with Rails or Ruby with Sinatra are the most pleasurable for me.

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 have two definitions of "fun" but the common denominator is that I find the ecosystem "reasonable" (in quotes because I have no objective definition).

Also, an important factor I feel I should disclose is that my idea of fun does not involve my code being able to run in other people's computers. Though it is important that I can understand myself three months down the line. That said, my definitions of fun are:

1. I'm productive in it. The tech stack would definitely include Python for very subjective reasons. The decisions PSF makes for their batteries-included standard library really suit me. Did you know they now include basic stats functions too?[1] I have a single-file lib that does this which I copy-paste around as a utility script (never bothered to package it properly); I use this whenever I want to do benchmarks or other standard software eng'g/CS stats analysis. Now, I don't need this script anymore!

If I have to design a UI though, I tend to stick with JS, maybe Android if the use-case makes sense. But with JS it's either very vanilla or I'm making a game with Phaser. (My thoughts on Phaser is another post...)

2. It teaches me something new. This is the part where I just learn a new language (Scheme, even Ruby ha!, one of these days Prolog or Haskell). Most of the time I just work through some textbook or maybe Advent of Code/HackerRank.

For a combination of 1 and 2, I program in---drumroll please---C! Good old, restrictive C, though still with a wealth of libraries and real-life examples available. I've been implementing some 1980s-era game listings in C; what I thought was a straightforward exercise (these are text-based BASIC programs) ended up being a deep dive into Linux signals and buffers (I won't pretend I've mastered this). It turns out, these 1980s platforms (ZX, Apple, TRS-80, etc) has some "syscalls" that don't have a direct equivalent in modern Linux (maybe ever?).

[1] https://docs.python.org/3/library/statistics.html


One of 'the most' fun and pleasure to work with stack is FreeBSD ecosystem for me.

After switching from Linux both on desktop/laptop and servers I really got comfortable and fun on FreeBSD. Of course its has its ups and downs - like everything in life - but after using FreeBSD for about 16 years now I know one thing - this is the OS that sucks the LEAST from all of them.

Here are some thoughts to conquer:

https://vermaden.wordpress.com/2020/09/07/quare-freebsd/

Regards.


Do you find issues with software not packaged for FreeBSD? How's the Wayland situation?

I'm a NixOS user, I have a strange attraction to FreeBSD for years even though I used it only briefly (it sounds silly but running "top" on a bare FreeBSD is so... satisfying and peaceful). Overall I wonder if there's anything to be missing from Linux. Why wouldn't I use FreeBSD?


> Do you find issues with software not packaged for FreeBSD?

For example?

I use Cargo packages for some software that was not in the Ports and it worked well. Also downloading binaries for both FreeBSD and Linux and running them works. For Linux version I would say it depends - mostly works.

> How's the Wayland situation?

Dunno. I use X11.

> Why wouldn't I use FreeBSD?

If you need KVM virtualization or 'fat' desktop clients like Discord or Slack for example.

There are no USB 2.0 or USB 3.0 features for VirtualBox (as they are closed source and for Linux only).

There is no Opera or Brave browser as they are not open source ...

Currently 802.11ac and 802.11ax WiFi does not work on FreeBSD. There is some first work committed for Intel AX200 and AX201 likes committed to 14-CURRENT but not sure how it works. Most 802.11n WiFi cards should just work. I have Intel 6300 WiFi - which is rather old as it comes from 2011 ThinkPad W520 - but a lot newer WiFi cards also work.

Hope that helps.


Nothing too bothersome, newer wlan I suppose will be available soon enough, but I just found out that Docker isn't working ATM. Anyway, I really want to use FreeBSD so I'll probably go ahead soon-ish :).

Thanks!


Yeah, Docker is unavailable on FreeBSD.

Same as Jails are unavailable on Linux systems :)


Did you try DragonFlyBSD? It had some really cool features. I wonder how it's doing these days, and if it's equally viable as a daily driver.


The only thing that 'excites' me in DragonflyBSD is their HammerFS - which works and its OK - but its not as usable and simple as manipulating ZFS with zfs(8) and zpool(8) commands ...

Besides that I do not see anything special on DragonflyBSD ... I have read that they have very sophisticated and fast SMP implementation ... but a lot things just are absent there - like on OpenBSD land. No virtualization for example ... while FreeBSD has *VirtualBox* and *Bhyve* and *Xen DOM0* ...

*WINE* probably does not work (or does not work well) as last WINE commits for DragonflyBSD are from almost a decade ago:

- https://source.winehq.org/git/wine.git/?a=search&h=HEAD&st=c...

FreeBSD also has *VNET Jails* while DragonflyBSD only has 'classic' Jails.

FreeBSD comes with GEOM for storage which is just great - https://is.gd/bsdstg - more here. I myself also wrote *lsblk(8)* implementation for FreeBSD - this is also missing on DragonflyBSD.

Hope that helps.


I too was interested in HammerFS. Thanks for the perspective, I'll ask around here at some point about DragonFly users, they must be out there :).


I like HammerFS offline deduplication which is great for systems with low or 'normal' amount of RAM.

I would like to see that implemented in ZFS but I think it will not gonna happen :)


As others have mentioned, this is highly personal. My own favorite stack is Elixir and/or full-stack Clojure.


I will second the question, I kind of tried Closure few times and never stuck with it. Now for fun, Rails and Elixir for sure, but would love to hear from you if you have a moment, how to go about it and have fun with Closure.

Thanks!


Can you give some details about what you use with Clojure? I was looking at Fulcro.


Not OP, but we're currently using Pedestal to serve Lacinia (graphql).

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! What do you use for editor tooling, REPL setups, testing, etc.? Also describe your workflow if you can. I know this might mean a longer reply but I'd appreciate it ;)


I’m pretty much surprised that there seems to be no more love for Python here. I’ve become a huge Python fan over the last three years. Which was not my conscious decision. Python sneaked slowly into my life. But finally it got total control over it lol. I actually don’t want to use any other language that I know anymore. Which I find kind of irrational, because I used to love a lot of different languages. I especially liked C and JavaScript. But now Python is my undisputable king.

But I must say I have no stack actually. I'm also not working as a dev, I'm an entrepreneur. The only stack that I seem to have is maybe Selenium. I totally like Selenium. And it also looks like that I enjoy QA. Together with web scraping and automation.

I’m also into hacking and bug bounty hunting. The advantage there is that you’re totally free to use whatever you want to. No one tells you which framework or tools to use. I can just use Python scripts for everything. I’m also not too much interested in big projects. I prefer small projects.

I wanted to learn Django for a long time, but haven’t done it yet. I was just using a bit of Flask for some projects. Which was pretty cool. But actually I think it’s only a matter of time until I will start to learn Django.

I’m also very much interested in Machine Learning and am starting to learn it right now. I would rather work in Data Science and Machine Learning than in Web Development. Seems to be much more interesting to me. It’s also more mathematical I think, I’m a pretty much mathematical person.

So many good options to choose from


I write Python for a living but it is hard to get excited about. Even when I'm doing cool stuff with it I'm using pyspark API to call a Scala endpoint. The language itself lacks a personality from my POV. Jack of all trades but master of none.


Interesting. So maybe it's also a matter of personal taste.

What I really like about the Python realm is that everything just seems to work easily. The whole ecosystem just seems to work so well as a whole. In the currently rather rare moments when I use another language and its ecosystem, I at once seem to encounter kind of annoying little problems. It's a bit difficult to grasp why.

Python's syntax simplicity is also great. You can often really guess the code, even if you don't know a function. Compared to that, when I'm seeing super complicated bash scripts for example in the context of hacking, I always think "wow, in Python would be so much easier". I mean I can deal with complicated stuff, too. But with Python, I'm getting lazy lol.

I'm also pretty much a universalist. So I like that jack-of-all-trades aspect of Python. I also like the scientific possibilities of it. Am constantly thinking if I should go back to university and study physics (or mathematics). I think Python would be a good tool there.

What is also nice is that the Python ecosystem is not moving too fast. You have pretty much basic tools which will stay for quite a long time. There's Django for professional and Flask for easier stuff in the context of web development, and that's it pretty much. I don't want to learn constantly new technologies. I want to use them. So when I learn Python technologies, my knowledge will stay for kind of a long time. Totally different from JavaScript for example where there are constantly new frameworks emerging. That's not too much for me.


I really hope Rails make a comeback.

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.


UI components were removed from the framework and made optional with Laravel 6 in 2019.


My super subjective answer is SwiftUI. Obviously only applicable to iOS apps, but that's the most fun for me at present.


As a react native developer I can confirm SwiftUI is more fun. Mostly because of the relative simplicity. You just need Xcode or these days an iPad with Playgrounds on it and you can build stuff.


Frontend: Svelte! (and SvelteKit) Backend: Rails (still! API) Mobile: Flutter


Clojure backend + ClojureScript frontend with re-frame.

Hands down the most fun. Using same language for everything. Opening a page and REPL-ing it to hearts desire without having to reload the page. Seeing your coworkers' blank, befuddled stares...


As I've commented on a previous post: https://news.ycombinator.com/context?id=29273095, nothing beats Ruby on Rails for me.


What you're building, and who you're building it with, has a much greater impact on your enjoyment than what you're using to build it.

I've had immense amounts of fun writing JS apps, GLSL shaders, PHP backends, VB apps, and more. And I've found all those things to be horrible and tedious and boring on other projects too. Give me a project I believe in and I'll probably have fun building it.


pleasure == productivity

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.


I absolutely agree! Rails, Nextjs and Flutter are the best and most funny technologies I've ever worked with


I’m intrigued with Funny. What makes these frameworks funny?


Not anymore with Rails 7. You can now bootstrap a new project with hotwire (html over the wire) to build a SPA


Haskell, because:

1. every other mainstream language is one step below the Abstractions Ladder and Haskell knowledge converts naturally to any other $mainstream flavour of the day.

2. every other academic/research language either directly or indirectly assumes you are familiar with higher-kinded interfaces and compositions that all practitioners of Haskell are familiar with, which converts naturally to the desire to achieve more (dependent types and formal proofs, effect systems, and so on).

3. map/fold/traverse are ubiquitous patterns across all FP languages, even their syntax and signatures hardly ever vary.

4. you begin to understand and appreciate simple mathematical concepts in the context of industrial programming.


Honestly for me, the biggest things are:

- do I have an ide with an integrated debugger

- do I have to use external libraries

I honestly find that 99% of the un-fun stuff comes from integrating third party code. Whether it's built system awkwardness, messy package managers, debugger not working on third party libs, it's just a pain. When I write c++ I just vendor everything and that helps but it's still a chore to do the vendoring.

In general, I enjoy c++ and c#, except when I have to interact with third party libs. So when I do something for fun, I just try to diy everything (NGL, I kinda try to diy as much as is reasonable when it's "real work" also)


The one that gets the job done the quickest so I can put my feet up and continue contemplating a complete career change.


Go. Lower your pitchforks and hear me out:

1. Sensible defaults, can go very with just the stdlib: no choice paralysis between frameworks, mental overhead of setting up a project or ecosystem fragments to pick from. Just start with a main.go with net/http, add things along as you need them.

2. No ecosystem churn, whatever you write now will be idiomatic Go and build without issues for years to come.

3. Enough of a type system to catch typos, but not enough to bog you down in mental gymnastics on how to solve every problem perfectly. And definitely not enough to slow down builds and your iteration/test cycle.

4. Concurrency model that lets you spin up things in the background and keep processing in memory before you go into databases, worker queues, and whatnot. If you want to cache something slow, just put it in a map behind an RWMutex, and your single-process Go binary will scale way past any prototype stage.

You get things done, you don't spend your life obsessing over 'elegance', and whatever you build is probably high quality enough that you can make use of it for years to come.


The developer experience of Go is really one of its killer features. I was reminded of this when I was starting fresh on a new laptop; I just had to run one command in VScode to set up the entire Go tooling stack, which just installed and worked quickly. The standard tooling is so strong that there's no decision paralysis or maintenance burden around linting, formatting, testing, and so on.


I would add:

5. Good documentation (and good culture of documentation)

Whenever I have to go look up a Go package[0] and figure out how to use it, I am impressed with how good most of the documentation is. Yes, you have to be familiar with the golang conventions, but it seems like accurately documenting libraries is just a thing people take seriously in the ecosystem, and in many others it stops at the good intentions.

Also I really like how explicit it all is. I usually learn something more than just an API when I dig into a Go package.

So, if you like to nerd out on that kind of thing, Go is one of the best places to do it.

[0]: I hate that they replaced godoc.org with this, but: https://pkg.go.dev


Coming from well documented parts of python ecosystem and Go, I was surprised that spring being such popular framework had no approachable documentation. Maybe it's intuitive for people with 5-10 years experience in enterprise java but not for me.


Hmm, why would anyone even bother pulling out said pitchforks?

In my eyes, Go is a pretty reasonable choice: the language is decent, simple enough to be learnt in a relatively short amount of time, is reasonably readable and doesn't force you to work in a really low level of abstraction.

The runtime is also pretty good and the static executables that can be generated are a major boon in my eyes! None of the pain of Python's packaging challenges and performance that's generally pretty good when compared to many of the alternatives.

Sure, it's not as established like Java or .NET are, especially in the enterprise space, but nonetheless it is very capable for everything from utilities and small tools to web apps.

Edit:

> As Rails has waned in popularity, has any other tech stack taken that crown?

Actually, after re-reading the original post, i'm not sure what the question is, exactly. In my eyes, the languages that are fun are whatever allows me to solve problems and see results (which is where a lot of satisfaction lies for me) relatively quickly: so anything from aforementioned Ruby, PHP (with select frameworks), Java (with select frameworks), .NET (Core or newer), Python, Node and so on are still fun in my eyes.

Was OP perhaps looking for languages that feel more "fresh" and are more hyped, while still having vibrant communities around them?


> Was OP perhaps looking for languages that feel more "fresh" and are more hyped, while still having vibrant communities around them?

For me, it's more about the day-to-day experience, hence the reference to React Native. I'm dismayed by its popularity, because it feels like such a step backwards - the ugly language (Typescript is slightly better than JS but still not great), the massive amounts of external dependencies required for even simple projects, the bugs, the lack of a decent debugger, and so on. All those things take away from the day-to-day enjoyment of programming.


> Hmm, why would anyone even bother pulling out said pitchforks?

It repeatedly get raked over the coals here for being dumb, inelegant, stuck in the 80's and an overall Bad Language Which Cannot Be Taken Seriously. :)


I'm sorry that you had to experience that!

The biggest criticisms that i've heard of Go is that the error handling ends up with a lot of boilerplate due to the syntax, and previously people also complained about the lack of generics (which is now being added and refined).

If anything, i would expect people to be more negative towards PHP because, while the language and its ecosystem have both come a long way towards being pleasant to work in and overall capable, i'm sure that plenty out there have ran into horrible WordPress sites/plugins or old and neglected codebases with bespoke frameworks that have no documentation and that are just horrible to work with.

In contrast, to me Go actually feels like what Pascal should have been.


> I'm sorry that you had to experience that!

It's fine, I'm not religiously affiliated with any technology to be offended. I've worked with everything from Haskell to C, from Rust to Go, from Lua to Lisps, from BlueSpec to Prolog - and that's been a good lesson that there's more to a language than its' syntax and semantics as analyzed in a vacuum on an internet forum. And that you should use different tools for different jobs - and usually the simplest tool which works is the best choice.

Go is very often that simple tool which works for most simple things.


> Go is very often that simple tool which works for most simple things.

If only folks applied that kind of thinking to things like architecture and devops.


4. Concurrency model that lets you spin up things in the background and keep processing in memory before you go into databases, worker queues, and whatnot. If you want to cache something slow, just put it in a map behind an RWMutex, and your single-process Go binary will scale way past any prototype stage.

This the big one IMO when comparing to nodejs but a showstopper for some apps in ditching nodejs for Go is needing a nodejs process for SSR.


1a. You don't have to go looking for libraries or frameworks with bizarre names like boingo or zapper or something to start serving HTTP traffic


I agree with all of the good things said about golang in this thread, but I could not consider it "fun". It is boring in a good way.


As a big fan of complex and interesting languages, the above is all very true. Go is nice to work with, despite not being interesting.


Top notch developer experience; it just works. But when i was building a semi large web app with it a few years back I got quite bored with the amount of cookie cutter code I needed to write. Perhaps the amount of rails type frameworks has progressed enough for that to have become a non issue though.


5. It ships with wide array developer tooling out of the box. You will not need to install an assortment of third-party programs to manage dependencies, refactor your code, view the docs, run tests, format, lint, run static analysis, check for race conditions, profile and trace, benchmark, etc...


> 3. Enough of a type system to catch typos, but not enough to bog you down in mental gymnastics on how to solve every problem perfectly. And definitely not enough to slow down builds and your iteration/test cycle.

I think the second part (not enough to slow down builds and your iteration/test cycle) is a false dichotomy between "languages that have 'advanced' type systems" and "language that compiles fast". OCaml has a more "advanced" type system than Go, and still compiles really fast. My understanding is that both have influence from Pascal and its descendants, and Pascal made some tradeoffs to ensure fast compile times. For example, OCaml has no forward definitions. I used the word "advanced" here but I'm not sure if it's the correct one, as in I don't want to imply that one is better than the other. Maybe "fuller" could work too, but it sounds very weird to me. Complete maybe?

To continue on why I think OCaml is a good choice, replying to your points:

1. Sensible defaults are definitely missing in some parts, though with frameworks like Dream (https://aantron.github.io/dream/) this is less of a problem. There are small things missing in Go, like CSRF prevention. Where you have a point is that you don't have a big transition from "writing Go code" to "using a framework", which is a problem that can lead to analysis paralysis in other languages. With Go, you can just start with Go.

2. No ecosystem churn: This is a bit of a hard one. I feel like "churn" in OCaml is closer to the one in Go, adding things that are actually needed and after having a good understanding of the problem. For example, OCaml is adding multicore, and doing it in a backwards-compatible way. I feel like the approach is a lot like generics in Go: existing code will continue to work, code that went around this feature before will probably need to be rewritten, but that's for the better.

4. This is the big one. Concurrency in Go is a pleasure. You can write direct-style code, maybe put a channel or a waitgroup or something and everything just works. This is a point where OCaml is not as good as Go. Concurrency works with colored functions/monads (they're the same thing), like in many other languages, or just plain old threads. Multicore may allow people to build a preemptive multitasking runtime, just like in Go, but it's not there yet.

For the other stuff:

Dev tooling is not as "intergrated" as with Go, probably not as good, but the language server, package manager and build tool are all good. The debugger is a pleasure to use, and having a shell/toplevel/REPL is great.

Performance is great. Not as good as Go (though it does beat it in a few benchmarks on the multicore branch for HTTP servers), but still better than almost all of scripting languages, especially the popular ones.

As for OSes, it's mostly good on Linux. The windows support is so-so, the mac support too.

Lastly, for the learning experience, it's hard to say. I find it harder to learn something in OCaml, in that it forces me to understand what I'm doing more than with other languages. This can be frustrating at times, but also deeply rewarding.


NextJS + Tailwind + Prisma + Vercel has been a nice discovery after Rails + Heroku. A bit more complex, but really fun and the community around Next/Vercel is super active.


This. Nextjs / Vercel is amazing. React + Typescript for building (Nextjs), Vercel for devops (hosting, dns, CI/CD). Excellent DX and customer service (the CEO/devrel will reply to your tweets for goodness sake).


For me, it would be nim. A single language that can run on all sidesof the stack, great to write in and ~fast compile times. It helps that I have been toying with it for years, but it's definitely the language I enjoy the most. Of course the ecosystem is not huge, so you have to roll your own solution a lot, although it's getting slowly better.

Jester+custom HTML dsl+compiling nim to js makes for a good experience, imho


I just started playing with rust + actix-web + sqlx and I have to say I love it so far. Coming from a python/js background, the rust compiler gives me so much information I feel like I move super fast. And the sqlx-cli really helps with analyzing the queries and the migrations.

Writing raw SQL, paired with the structs feels gooood. I thought it was gonna take me longer than python, but so far seems the opposite.


I agree with Rust and sqlx. Haven't used actix-web myself though. I'm currently in the process of porting a warp application to axum and enjoying it a lot so far :)


Since you mentioned React Native, I assume you're pointing towards mobile app development. The best stack combination for me has been webview + PWA + webassembly + toucaan to create an intrinsically designed universal mobile-web app. There's something really powerful about deploying just one application on three separate distribution platforms. And it's not even a monorepo anymore!


Do you have an example repo of this stack you could point to? Been trying to scope out something similar lately and can't get all the pieces to fit together


My definition of "having fun" while coding is to feel like I'm not struggling to manifest whatever idea it is I have. To that end, right now I find writing for Google Cloud to be fun; it requires almost no backend expertise to stitch products together to make a decently powerful API, which I can easily build a frontend against.


The recent Rails 7 updates are pretty fun, although you could argue that's all boring, which is kind of the point. If it's a matter of getting something accomplished quickly, with the outcome being the fun part, I like Rails for it. For just satisfying cool stuff I like a good pile of BASH and awk. I find it rewarding to pipe a bunch of stuff together and get things done that might feel like it has no business being done like that. The fun of it in this case comes from quickly automating things. To the OPs point of a job change, this feels outside of the initial considerations, but hey it's fun stuff and maybe you'd like it! At a minimum there's a ton of value in software developers understanding the environment their code runs on and there's often space for "devops" activities to do a healthy mix of work on software dev and operations kind of stuff.


I have worked on React applications that felt tedious and boring and I’m currently working on a React app that is very satisfying. For me it’s the product and who uses it vs what tech stack. If you work on something that you (and many of your circle) literally enjoy to use every day, that makes things feel less tedious.

That being said, in side projects I always like to work on new things that I can’t use at work. In the past those have led me to career changes. I learned React on the side then decided I wanted to use it full time. After a few years I switched to Golang. Now I’m back to a full stack roll with lots of React.

My new side interest is Rust. Who knows, maybe I’ll be working full time in Rust. The reason I bring up my own personal habits is because side projects help me stay interested at work. Maybe that will help you too.


I'm finding more and more that I just want to use JUCE to build apps, and be done with the platform wars entirely. It has pretty much everything I need in terms of UI elements, and it is so well laid out as a framework that I can almost just guess at things without having to do a lot of scurrying around to find docs and things.

Definitely worth a look if you just want to build clean, efficient, platform-agnostic code that will run everywhere and be performant to boot. Plus, you have native integration for almost everything, and best of all: you don't have to use the repugnant mess of web abstractions to build something cool.

http://juce.com/

EDIT: Plus, you get to learn how to build apps in the 21st century: through CI and automated builds, like Cthulhu intended.


I think you mean https://juce.com

Pretty expensive for indie devs, though.


Yes thanks, I corrected the URL.

>expensive

I mean, I've made 50x what I invested in JUCE already, and its only been a year of development .. but yeah, I guess it is pretty expensive when you are just getting started. Still, the Personal Use -> Indie step is an attainable one, and it shouldn't be terribly difficult to recover the cost relatively quickly once you come up with something, built with the Personal license, that might finally be qualified for an Indie release.


Is $40/mo. or $800 perpetual if you're making $50k or more a year, and free below that, really that expensive?


I really enjoy Rails and Golang.

I feel like I can use those and hit the ground running on my ideas immediately.

I also know Python and JavaScript quite well, but I don't look forward to using those tools and I feel like I spend too much time in the initial phase, instead of getting right into implementing ideas.


That depends what you want to do and what you see as "pleasurable".

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.


Imba is one I'm really enjoying at the moment. It's like all the warts of javascript, css and jsx were removed and turned into a very fun environment.

https://imba.io or discussed a few times here on HN


Follow up: which one's the most fun if you're onboarding to it and aren't already very very good at, specifically, the underlying tech/framework?

That's where a lot of the fun-for-greenfield ones are way less fun, including Rails.


I’m a big fan of Racket. It’s basically a batteries included Scheme (used to be called PLT Scheme) with an extra focus on ease of development of DSLs.

As an example, do you want a statically typed Scheme? Just change the language directive at the top of the file from `#lang racket` to `#lang racket/typed` and add your type annotations. You only have to add them when the type can’t be inferred. In practice this means when you have some mutation.

I highly suggest you take a look at Beautiful Racket [1] for some examples of what it means to be a language-oriented programming language. The book is written using Pollen, a typesetting language (a la LaTeX but not insane) written using Racket.

[1]: beautifulracket.com


I really enjoy working with Smalltalk, particularly web projects in Seaside. It's very quick to be very productive, and there's a lot of fun in fixing a failed expectation in the debugger and continuing to run your software.


Elixir/Phoenix and LiveView has been really fun (and productive!) for me


For personal project where I actually want to finish it, Laravel, MySQL, Apache, Linux because I know it well and highly productive in it.

But for pure joy and play, Swift/SwiftUI/XCode/MacOS. I have just got into it, I love how everything just works. Another comment mentions that Apple docs are not that great but so far I haven't run into any issues.

I am also exploring Unity/VR/C# ecosystem, that seems fun too. At work, I spend enough time dealing with non-dev tasks. So at home, I just want to write code and make it do something.


Working on new projects has been fun for me ever since I started using https://github.com/chocolat-chaud-io/stator

This allows me to quickly start coding while not focusing on the tedious configuration tasks that usually accompany a new project. I've been using it for over a year for personal and professional projects. It's not perfect, but it helps. I wrote this open-source template, so I am, of course biased :)


I am a front end developer so i can give an overview for that.

I have been using React and React Native for 5 years and noticed that a lot of developers are complaining that it's hard to learn. Actually better to say its hard to intuitively get it without diving deeper into the documentation

Recently I've tried Vue JS and I ma surprised that React is still way more popular.

Vue JS is way more simple and easier to understand, and the code syntax is way more shorter and cleaner. I wish there will be more support and libraries for Vue JS.


That's very subjective.

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.


I feel like rust being intense is highly dependent on how you use it and your choice of frameworks. Building up huge types to avoid any dynamic dispatch for instance will suck the fun right out of trying to get an application to compile.


>What is better in this day and age? That is highly subjective, as certain stacks are only available for certain kinds of tasks. What a web developer finds enjoyable is not the same as the Linux kernel contributor will enjoy.

Personally what motivates me is the domain of the problems I am trying to solve, such as contributing to the digitization of my countries' companies and industries.

Once you find that for you, you won't think much about technological stacks, unless the one you are stuck with is god-awful.


After quitting my job in Go everything that isn't Go feels fun and fresh. At the moment Rocket for Rust is a ton of fun, but I think Phoenix for Elixir might take the cake.


I've been enjoying Phoenix. Specifically LiveView. I've never liked front end work before and LiveView gives lil old me the power to build incredibly interactive apps.


Not an answer, but I work at Microsoft and unsurprisingly develop with C#. I can admit I miss developing primarily on Unix and FOSS.

At home I contribute to Tor's Rust codebase and it feels much more enjoyable than C#/.NET. Even unsexy languages are more enjoyable on Unix.

No wonder my home desktop and laptop run FreeBSD, as per personal email being self-hosted Postfix, even when I work in the Exchange umbrella. Old habits die hard


Try a whole bunch, see what you like more.

I've been working with rails for 10 years, got bored, switched to Django and it's been a lot of fun for me.


I find Flask[0] to be enjoyable to use. I think it depends on the person, but the people who came up with Flask and I are on the same page when it comes to API design.

[0]https://flask.palletsprojects.com/en/2.0.x/quickstart/#a-min...


Svelte + Meteor. You can quickly get something into the hands of users without reinventing the wheel and you write a lot less code overall.


Plus 1 for Svelte - feels as transformative as when jquery first came out (yes I'm that old). Been using postgraphile on postgres as a backend lately, but I don't think anyone would describe sql as fun. Powerful maybe but definitely not fun.


For me it's Meteor for the last five years with the Mongo database subscribed in real time and Blaze as the default html template engine. Some people think it's a broken solution, but I love to code with it ^_^ I use to be a PHP lover, but in the end you'll write javascript. Writing JS all the way from database to server to clients just rocks IMHO.


I recently had to make a tool that builds multi-language vanilla sites (https://stack55.com). Part of the job was to make a few sample sites in plain vanilla HTML/CSS/JS.

After years of working with Angular + Node as my main tech stack, I found myself having lots of fun doing just that.


The most Fun you get is rebuilding the wheel. That is where you hit the sweet spot with a language.

People say that the "fashion" in chose stack is about shinny new things, but I think, instead, is the joy of have a chance of rebuild the wheel, better (hopefully!), this time.

That is what I see when Ruby/Django hit the market, and now with Rust.


On the dev ops side, I’m falling in love with jsonnet for dynamic gitlab ci pipelines, combined with terraform and ansible.


Pure C*

*Your mileage may vary


Thanks. My first few jobs out of college were programming in pure C, doing embedded software. I do have good memories of that time, although I'm not sure I would have the patience for ten-minute compile times these days. (Obviously not all C projects have that, but the ones I worked on did.)


If you haven't already, you should check out the C projects from Justine Tunny. Specifically redbean, cosmopolitan libc and ape. https://justine.lol/

Whether you should use them professionally is questionably. But for me they made writing C fun again.


> After unintentionally ending up on several React Native projects, I hunger for the days when I used to enjoy coding. [...] What is better in this day and age?

Having the control of your own destiny that you don't unintentionally end up on a particular project with a particular tech stack.


For fun, I like to use something other than my everyday stack.

So that might be Phoenix/Elixir one day, F# the next, and Go or Kotlin another. For front-end I typically use Vue, often in the same repo as the backend with 'git push' deployments.


.NET framework - framework is complete and IDE (VS) works great. QT - same as above


I have a lot of fun with shell scripting, even if it is a terrible programming environment in so many ways. It is fun to be able to quickly hack together existing tools in such a messy, but natural, way.


Check out Zope and Plone; they are object oriented in python https://plone.org/what-is-plone/zope


Solidity and anything EVM is awesome because you code the backend and then boom, instant APIs without tedious authentication. You can just focus on your logic and integrating your frontend.


I look for fun in other things than 'tech stack' but i do find .net more enjoyable to work with than typescript/html/css as it feels more obvious in how it will work.


Whatever gets the job done without adding unnecessary complexity.


Django, DRF, with high pytest coverage. I'd build the front with Django's own templates + jQuery or even plain JS, but am also fine helping someone else build Vue.


C. It's like driving a classic manual car. Yes it's easy to make mistakes and goes wrong all the time, but that's what makes it "fun".

My least favourite is PHP.


Deno backend, any typescript frontend framework (personally I prefer angular as there is less thinking needed compared to react).

It is a total joy to code entirely in typescript.


I realize it’s not a web framework but Arduino - is super fun.

A simple setup and loop function and you can make hardware do stuff.

- Blink a light - toggle a switch - measure stuff - react to motion

It’s fun


Looks like no ABAP developers here :).. It was fun using it. the whole SAP R3 tech stack.. But yes proprietary so i agree it not being here.


Haha, I fucking despised mobile app dev on React Native until I tried just coding native with Kotlin. It's just way way better.


Rails. Wait a minute actually..oh yeah - Rails.


I've been having a bit of fun with Perl Dancer and SQLite (which I would upgrade to Postgresql if necessary).


XNA was the most fun environment I've worked in. No web bullshit, no heavy-weight game engine editor.


RoR for sure, but for the Python lovers there is Django which I found more enjoyable than RoR.


How do you define a pleasurable language? Aesthetics? Bug/LoC ratio? Feature by LoC? ROI?


Win32 is probably the most lightweight tech stack in a modern OS.


i find python generally quite pleasing to code in; django by extension is quite nice as well. well designed mixins and class-based views can make a project very smooth.


C, GDB, an mcu dev kit, a Jlink probe, and an oscilloscope :)


If you are looking for literal fun, try Unity 3D.


I am a js/react developer and I miss developing games in Unity3D. It is like a kid's playground but for programmers. It has quick feedback cycle from a change to seeing the result. It has very little or no boilerplate code. Code/Project organisation is through a nicely built UI.

Unity people, go ahead use this in your ads :D


vim index.php :w Alt-Tab Ctrl-R


postgres + Aspnet core + Flutter/dart. Enjoy!


i am react native developer moved to golang


Rails 7


This may not be a popular opinion, but nearly everything is more enjoyable for me with Python. It does have some snags which flip that script into a hell scape, but generally I love programming in Python because it feels like the least amount of syntactical friction.


Check out the F# SAFE Stack for an interesting way to build websites


[flagged]


I'd assume LAMP?




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

Search: