Ask HN: Which Tech Stack has still maintained its charm?
Can you bet on something for the future?
Can you bet on something for the future?
It's incredibly simple and old school. No kubernetes, docker, cdns, etc.
Write code, build binary, ship binary.
I'm no Google, but it has been holding up very well (I've never had any issue with CPU, memory or anything). My simple release strategy does come with potential downtime, but the shutdown and start up are so fast it's very minimal.
If I did, I'd keep it simple. I use Nginx in front of the Go server. I'd likely use the Nginx server as a load balancer and replace each Go service one at a time to have no downtime. It doesn't matter how many ports you use as long as Nginx knows the port range. It will distribute the incoming requests to the Go processes.
edit:
For those wondering why I use Nginx. It's where I terminate SSL and I also use it for simple gzip/compression/caching for outgoing resources.
I don't use Caddy or anything else. I've used Nginx for many years and it just... works.
I say Go. It works nicely with old school tooling (editor, tags, grep) and a command line. That's a charm for me.
Advanced tooling is available. You can take 1 step further with LSP integration. Or 2 steps further with a Jetbrains IDE. But you are not forced down the path of advanced tooling just to get by like you are with Java/C#.
> Can you bet on something for the future?
I say Go. The future may be parallel processing. Goroutines are easy way to harness that power and don't "pollute" other code around them like async C# does.
WaitGroups, Mutexes and spawning channels for things you could just ‘await’.
Lazarus is cross platform and fast. The GUI tools are unmatched.
Charming tech stacks in my understanding are fun to use and productive the same time. Still in demand tech stacks are well hung things that still are relevant. Hard to find skills are barely common. Betting on something for the future is not something that really falls in any of these categories.
So, still relevant, well hung, versatile tech stacks I would also bet on for the future are C#, Python and SQL (e.g. Postgres).
More modern and less hung alternatives would be Rust, Go and TypeScript / Javascript (and some of the more modern Boilerplates / Frameworks).
Still relevant, woth learning and hard to find is LISP.
Mojo (as possible python successor) would be something I'd bet for the future unless something goes really wrong - but that has to be proven.
SQL, as hard as folks try, it's not going away.
Also Ruby on Rails too.
I love SQL. The only thing that can become a pain is switching between dialects, especially on an older DB version. I was stuck on MySQL 5.7 a few years ago at a previous company, and not having access to window functions or CTE was just a headache. We started a new product and I made sure our new DB was MySQL 8 or whatever was recent at the time and my queries were so much easier to write.
The quality of life improvements to SQL in various DBs has been made it an absolute joy.
Future? JavaScript. Or Python or Ruby or C# or anything else you're productive in, if you prefer.
I have tried a bunch of frameworks across various languages. Sometimes it’s just better to keep it simple and boring. It’s fun to see stuff just work and perform the same at bigger scale with literally little changes on my end.
Hard to tell what the future holds, but those technologies will be around for longer. Adoption within the industry is much slower that you’d anticipate.
Personally I’d go with the GoX-Light-Stack (just made that up): Go + SQLite backend and HTMX frontend.
- high-performance, low-latency data processing skills
- out of the box thinking and "I can do it" attitude
Charm:
- Java lives its second life now with JVM, OpenJDK and GraalVM.
Shameless plug - just released a Java platform for building enterprise apps as an opensource project: https://github.com/openkoda/openkoda
Throw in a PHP framework (probably Laravel for rapid development) and use server side rendering.
Maybe add in Redis for caching too.
All hosted on a single Digital Ocean droplet.
TBH it does what it does well, and I rarely see a need to reach for an alternative.
Specifically - its greedy, single-machine, numerical array computing. If I need something distributed, evaluated lazily, or data frame oriented I reach for a different tool.