What tools/frameworks to use to reduce friction from idea to execution
Simple put, I can develop applications. I'm a (somewhat) competent software engineer, yet I find myself becoming increasingly frustrated by what I perceive to be an unnecessary amount of friction most tools require in order for me to actually make something. I feel as if there's some magical tool, language, framework, or technology that exists which could immensely improve my developer experience if I just found it and used it. While I doubt the magic tool actually exists, I am interested in hearing how other developers minimize this friction.
Use a monolith approach and a traditional framework to do it on in a boring language you're proficient with along with boring tools (Rails, Django, Laravel, etc). Solo dev is not what teams are optimized for. If you day job is microservices or front-end React components, all that stuff gets in the way when you're just trying to get something out the door. Most things don't need a front-end framework, keep machinery as simple as possible with the least amount of moving parts. Focus on features and shipping.
Your feeling is shared by many. One way is to curate a set of tools that are your very own. By this I don't mean you build all your tools from scratch. Rather create a mix of "off-the-shelf" open source tools, custom scripts and methodologies that are your very own. You should have deep familiarity with them and improve your tool chain with time.
Keep this tool chain stable over the course of your career and over time you will see your effectiveness and personal velocity improve.
My personal examples:
- I maintain some simple scripts and tools of my own for dealing with AWS deployments and logs.
- I have my own flask app skeleton/scaffold for creating a new web app or web tool from scratch.
- I stick with vi for any kind of text or config editing
- I maintain a bunch of simple bash scripts for common tasks etc...
If you know C++ and want to develop web apps, then go with Wt[0]. It is not a framework, it is a toolkit. But provides a lot of features out of the box. And the development experience is that of the desktop app development.
[0] https://webtoolkit.eu
That home page is developed in Wt.
The right tool for the job. Visual studio for simple desktop apps is great. Need something only a half dozen users in one business will use? Then make a windows forms desktop app.
The way to reduce friction is to reduce the number of tools and frameworks.
For me the biggest friction was putting what I developed from localhost to public domain. Now I use cloudflare pages and workers for most of my small projects and it actually helped a lot.
I find that Lazarus/Free Pascal works well for me when I write Windows applications. You can usually have a CRUD application up and running in a few hours.
I use scala and often use parts from my old projects so i am quite quick with everything.
You can get pretty far with nodejs, plain JavaScript, and express or something.
The frameworks you're familiar with