14 ms·
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!
- guidouil 5y agoFor 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.
- taf2 5y agoI 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
- enogrob 5y agoRails 7
- yann510 5y agoWorking on new projects has been fun for me ever since I started using https://github.com/chocolat-chaud-io/stator 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 :)
- isenhaard 5y agoI’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
- yung_steezy 5y agoI 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.
- isenhaard 5y agoInteresting. 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.
- aartem 5y agoI 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.
- epic_nl 5y ago.NET framework - framework is complete and IDE (VS) works great. QT - same as above
- thesuperbigfrog 5y agoPleasure 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.
- chickenWing 5y agoYes 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.
- Ragnarork 5y agoPure C* *Your mileage may vary
- chickenWing 5y agoThanks. 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.)
- posnet 5y agoIf you haven't already, you should check out the C projects from Justine Tunny. Specifically redbean, cosmopolitan libc and ape. https://justine.lol/ https://justine.lol/ Whether you should use them professionally is questionably. But for me they made writing C fun again.
- ankalagon 5y agoHow do you define a pleasurable language? Aesthetics? Bug/LoC ratio? Feature by LoC? ROI?
- mschuster91 5y agoThat 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.
- the_gipsy 5y agoThat'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.
- beingflo 5y agoI 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.
- jowdones 5y ago
- jjice 5y agoI'd assume LAMP?
- oxymoron 5y agoBuilding 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.
- Vinnl 5y ago
- jimmyvalmer 5y ago
- napsterbr 5y agoAs others have mentioned, this is highly personal. My own favorite stack is Elixir and/or full-stack Clojure.
- lambdaba 5y agoCan you give some details about what you use with Clojure? I was looking at Fulcro.
- jmkr 5y agoNot 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.
- lambdaba 5y agoThanks! 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 ;)
- desireco42 5y agoI 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!
- davzie 5y agoThe one that gets the job done the quickest so I can put my feet up and continue contemplating a complete career change.
- whalesalad 5y agoPleasure 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.
- omitmyname 5y agocould you recommend me some books?
- sandGorgon 5y agopleasure == 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.
- marcofatica 5y agoNot anymore with Rails 7. You can now bootstrap a new project with hotwire (html over the wire) to build a SPA
- a_chris 5y agoI absolutely agree! Rails, Nextjs and Flutter are the best and most funny technologies I've ever worked with
- tijs 5y agoI’m intrigued with Funny. What makes these frameworks funny?
- pavlov 5y agoFor 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.
- cableshaft 5y agoYou still like Obj-C more than Swift? I vastly prefer Swift to Obj-C, and I used to code in Obj-C professionally.
- grahamlee 5y agoLike 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.
- pavlov 5y agoI (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++.
- beska 5y agoI'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.
- marvindanig 5y agoSince 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!
- uncle_iroh 5y agoDo 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
- davidwparker 5y agoFrontend: Svelte! (and SvelteKit) Backend: Rails (still! API) Mobile: Flutter
- leftbit 5y agoWhatever gets the job done without adding unnecessary complexity.
- pantulis 5y agoI 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.
- aparks517 5y ago> 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.
- davidw 5y agoRails. 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.
- mikeryan 5y agoI’m at least a bit amused that you have a whole comment about how nice rails is without mentioning ruby ;-)
- davidw 5y agoTo 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.
- mikeryan 5y agoI actually meant it affectionately. I always enjoyed using Ruby and wish it had a larger footprint outside of Rails.
- stonecharioteer 5y agoI 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.
- bradhilton 5y agoMy super subjective answer is SwiftUI. Obviously only applicable to iOS apps, but that's the most fun for me at present.
- tijs 5y agoAs 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.
- gls2ro 5y agoI 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"
- dmux 5y agoI'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> } }
- linuxlizard 5y agoI loved Tcl way back before I switched to Perl. So cool seeing Tcl and HTML combined like this!
- dmux 5y agoThere are several examples of small applications in the Wapp repository: https://wapp.tcl.tk/home/file?name=examples/ https://wapp.tcl.tk/home/file?name=examples/ I especially like the shoplist one. Such a simple application that's immediately useful.
- scruple 5y agoThis 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/ https://www.little-lang.org/
- trhoad 5y agoI 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.
- abujazar 5y agoUI components were removed from the framework and made optional with Laravel 6 in 2019.
- IceDragon200 5y agoFor 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.
- jmcgough 5y ago+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.
- davidw 5y ago> 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.
- mmartinson 5y agoHaving 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.
- klausjensen 5y agoI 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.
- kayodelycaon 5y agoAs I've commented on a previous post: https://news.ycombinator.com/context?id=29273095 https://news.ycombinator.com/context?id=29273095, nothing beats Ruby on Rails for me.
- clavalle 5y agoIf 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.
- montblanc 5y agoRails. Wait a minute actually..oh yeah - Rails.
- BatteryMountain 5y agopostgres + Aspnet core + Flutter/dart. Enjoy!
- udfalkso 5y agoElixir/Phoenix and LiveView has been really fun (and productive!) for me
- bonsai80 5y agoThe 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.
- grahamlee 5y agoI 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.
- mattlondon 5y agoDeno 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.
- boffinAudio 5y agoI'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/ 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.
- vmsp 5y agoI think you mean https://juce.com https://juce.com Pretty expensive for indie devs, though.
- boffinAudio 5y agoYes 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.
- Bjartr 5y agoIs $40/mo. or $800 perpetual if you're making $50k or more a year, and free below that, really that expensive?
- gengiskush 5y agoCheck out Zope and Plone; they are object oriented in python https://plone.org/what-is-plone/zope https://plone.org/what-is-plone/zope
- mrkurt 5y agoI'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.
- brodouevencode 5y agoRoR for sure, but for the Python lovers there is Django which I found more enjoyable than RoR.
- todd3834 5y agoI 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.
- lostmsu 5y agoIf you are looking for literal fun, try Unity 3D.
- mclightning 5y agoI 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
- ptudan 5y agoSolidity 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.
- aledalgrande 5y agoNextJS + 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.
- DeBraid 5y agoThis. 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).
- ttz 5y agoi 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.
- q3k 5y agoGo. 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.
- tijs 5y agoTop 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.
- biztos 5y agoI 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 https://pkg.go.dev
- chakkepolja 5y ago
- deleted 5y ago[deleted]
- athenot 5y agoImba 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 https://imba.io or discussed a few times here on HN
- onion2k 5y agoWhat 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.
- JHonaker 5y agoI’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
- dragonwriter 5y ago> 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.
- aantix 5y agoTake Rails 7 with Turbo. Start with the Jumpstart Pro template. You’ll feel like a god. https://jumpstartrails.com/ 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.
- andrei_says_ 5y agoI’d love to use this template but absolutely cannot stand tailwindcss.
- aantix 5y agoWhat would you use instead?
- KronisLV 5y agoFrom: https://jumpstartrails.com/pricing 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 https://jumpstartrails.com/#features
- aantix 5y agoWith 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.
- rognjen 5y agoI am very put off by the fact that the template is a yearly sub.
- deleted 5y ago[deleted]
- willcipriano 5y agoI 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-minimal-application https://flask.palletsprojects.com/en/2.0.x/quickstart/#a-min...
- janetacarr 5y agoIn 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.
- lambdaba 5y agoCould you say more about what/how you're using them? Like, frameworks, libs, practices (testing), editor, repls, etc.
- Nihilartikel 5y agoI 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.
- lambdaba 5y agoThank 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.
- handrous 5y agoFollow 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.
- forinti 5y agoI've been having a bit of fun with Perl Dancer and SQLite (which I would upgrade to Postgresql if necessary).
- paulvnickerson 5y agoOn the dev ops side, I’m falling in love with jsonnet for dynamic gitlab ci pipelines, combined with terraform and ansible.
- neelc 5y agoNot 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
- kahlonel 5y agoC, GDB, an mcu dev kit, a Jlink probe, and an oscilloscope :)
- cmrdporcupine 5y agoLeaving 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.
- andrei_says_ 5y agoHave you looked at Clojure? Definitely fun.
- wheybags 5y agoHonestly 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)
- gameswithgo 5y agoCheck out the F# SAFE Stack for an interesting way to build websites
- s_m 5y agoMy 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.
- jonnyrockit 5y agoTry 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.
- Glench 5y agoSvelteKit! https://kit.svelte.dev/ 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-rust-and-svelte-dread-angularjs-stack-overflow-survey-says.html https://www.infoworld.com/article/3628231/developers-love-ru...
- c7DJTLrn 5y agoLooks interesting but it says it's unstable. Do you have to write the backend in TS/JS?
- willmorrison 5y agoI’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.
- Glench 5y agoYep! 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.
- CodeGlitch 5y agoC. 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.
- thrower123 5y agoXNA was the most fun environment I've worked in. No web bullshit, no heavy-weight game engine editor.
- ghostwriter 5y agoHaskell, 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.
- cblconfederate 5y agovim index.php :w Alt-Tab Ctrl-R
- stickyricky 5y agoElm 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!
- skytreader 5y agoI 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 https://docs.python.org/3/library/statistics.html
- jasondozell 5y agoI 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.
- bronze 5y agoFor 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
- emerged 5y agoThis 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.
- jamauro 5y agoSvelte + Meteor. You can quickly get something into the hands of users without reinventing the wheel and you write a lot less code overall.
- juliancox 5y agoPlus 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.
- runjake 5y agoI 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.
- mamcx 5y agoThe 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.
- throwaway599281 5y ago>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.
- karmakaze 5y agoFor 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.
- sys_64738 5y agoWin32 is probably the most lightweight tech stack in a modern OS.
- miki_tyler 5y agoI recently had to make a tool that builds multi-language vanilla sites (https://stack55.com 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.
- mikewarot 5y agoThe 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.
- ohCh6zos 5y agoAfter 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.
- oftenwrong 5y agoI 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.
- lmilcin 5y agoClojure 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...
- p2hari 5y agoLooks 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.
- amerkhalid 5y agoFor 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.
- joshxyz 5y agoHaha, I fucking despised mobile app dev on React Native until I tried just coding native with Kotlin. It's just way way better.
- vermaden 5y agoOne 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/ https://vermaden.wordpress.com/2020/09/07/quare-freebsd/ Regards.
- lambdaba 5y agoDid 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.
- vermaden 5y agoThe 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=commit&s=DragonFly 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 https://is.gd/bsdstg - more here. I myself also wrote *lsblk(8)* implementation for FreeBSD - this is also missing on DragonflyBSD. Hope that helps.
- lambdaba 5y agoI 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 :).
- MidnightRaver 5y agoDjango, 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.
- woile 5y agoI 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.
- beingflo 5y agoI 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 :)
- ahsanali3174 5y agoi am react native developer moved to golang