Hacker News new | past | comments | ask | show | jobs | submit login

I was meaning to do an Ask HN about this but this looks like an excellent post to ask my question.

What are some boring techs you use that you cannot live without? How long have you been using them?

For me, it'd be stuff like Vim, C, Python, Fedora, mutt and I've been using them for 25-30 years! How about you?




Java, .NET/C#, C++, server side frameworks like Spring and ASP.NET, vanila.js when the option is on me, WinForms/WPF/Swing/Qt, Visual Studio, Eclipse/Netbeans.

Just as an idea, not listing everything.


Postgres has been pleasantly boring for the last 10 years I've been using it


Ruby and Rails (together or Ruby separate). ~18 years on both.


The Python 2-3 transition and some developments after made it definitely not so boring for me, but hopefully it'll be more stable in the coming decades ;).

"Cannot live without" is a strong wording, but software that I use a lot and that's mature/stable in my experience: shell (zsh, bash, sh), GNU utils, vim, nmap, xfce, git, ssh, mpv, Xorg, curl, and lots of little old CLI tools.


Common Lisp, XMPP, HTML/HTTP, DITA, XML, Git, ssh, Rsync, Nginx, Firefox, GIMP, Debian, EXTFS, HP-GL, bash, Emacs, TeX, PDF, Bittorrent.


Emacs. 20 years and all that time I wished I could get rid of it, but every other editor/IDE I've tried lacks a feature (or ten).

Debian. Moves at its own pace, flexible yet stable enough to cope with my idea of a smart move.

Go. I've been playing with it since before 1.0, threw it into production at my first occasion, and all those years it continues to deliver.

Django. Identical story.

...StarCraft (1, then 2). Technically not "tech", but in a competitive setting, it remains strategically, tactically, and mechanically demanding, it reflects that path of mastery, "teach yourself programming in ten years". It shaped my spirit, attitude, but also humility.


In the context of boring/stable, Starcraft 1 is a particularly interesting example. Most live-service competitive games rely on regular balance patches to "keep the meta from going stale", which has some parallels to the shiny-affinity of modern tech stacks. Starcraft 1 on the other hand have not had any changes to the balance in 20 years, yet the meta is still constantly evolving because it is emergent on player skill development instead of prescribed by hamfisted developer oversight.


I think that's the biggest difference between SC 1&2, although the former is still being nudged a bit through map design.

SC2 in its first decade has been about always keeping the game fresh - new units, new spells, adventurous changes, crazy maps. As of 2020, the changes not only stopped, but the game was caught for a few years in a pretty crappy state: nigh unbeatable PvT cheeses, 40min-long PvZs where Zerg is clearly winning but can't close the game, meanwhile no Protoss in top 10 GM or major tourney semifinals. The worst of it has now been fixed, but the changes are only slight tweaks and nudges, now again reminding me of Brood War. It's still an excellent game though.


HTML, CSS, and JavaScript since 2001.


I would call those anything but boring and mature. They have had a lot of big changes over the last decade and there's no sign of that slowing down. They've been around for a long time, yes, but today they bear only a superficial resemblance to the standards of 25 years ago. JS in particular has changed radically just in the past 5-10 years alone. Search for "how to do X in JS" and you will find that most of the SO questions/answers you get are outdated to the point of being basically wrong. (At least, that has been my experience learning JS in earnest over the last year.)


True, they are not done and moving. But what you did with them 20 years ago still works today. And what you do with them today, likely still works in 20 years. Exceptions obviously exist, though.


The major changes in web development landscape:

- IE9 which finally allowed you to use modern (at the time) web features (like flexbox) without having to support IE specific hacks.

- ES6 which added a lot of syntax changes to JS to make it much nicer to use (and pretty much killed Coffeescript).

- Popularization of type-checking with Typescript and Flow around 2020 which is almost standard these days.

And of course the frameworks evolved a lot as well, but that was mostly project-specific not so much the platform. Someone doing React doesn't care about Angular2 release.


A lot more than that! Typescript is a passing fad! ;)

The Esc key used to stop animated gifs and cancel AJAX calls, it was like a 'stop the world, lemme get off!' button.

Canvas tag (with desynchronized context), Gamepad API, and Web Audio API made the browser into a full-blown operating environment supportive of game development.

CSS3 - grids, aspect-ratio, media queries, oh my!

Web Workers, ASM.js, and WebAssembly -- what even is web development anymore?!?


Of all of those only CSS3 is actually a big deal for most projects (and only a subset of the new CSS3 features). But yeah the new APIs are great and more power is better. Native video/audio playback/streaming was huge as well, but only for a certain class of applications.

I was just highlighting the stuff that really made a huge difference for everyone. Even if you don't use typescript your deps probably do and your IDE can show type hints.


I use Typescript, but I've found comprehensive JSDoc comments do much of the same thing in the right IDE (JetBrains) without paying any of the build time. So, when I have the choice I just use ES2017 (whichever version that has async/await)

Typescript only ever paid off in-terms of capabilities for me when my dependencies went all-in with the runtime type information - felt a lot like Java development marshalling and unmarshalling JSON to objects. But by then, my build times were turning into molasses.


Postgres and Go I used a ton of other things but Postgres and Go are just solid


Postgres deserves a monument celebrating its contribution to humanity's data integrity.


I work largely in the JS ecosystem so for me it would be Express. Everyone says the Express project is dead because they hardly ever update it but IMHO the real reason they never update it is it's been practically perfected.

Express has so many different uses and I've used it on very large scale backend projects for Fortune 500's, shoved it inside lambda functions, and used it to host email templates and build dev tooling with it to overcome shitty API's at work that always go down.

In all those times I don't think I've ever run into an issue that wasn't already solved


I remember the main reason people start moving away from Express was because the way routing worked in Express it kinda created a performance problem that severely handicapped the throughput of services. I don't know if it ever got addressed (I think it required breaking changes). But it was this article from 2014 that triggered the move away from express:

https://netflixtechblog.com/node-js-in-flames-ddd073803aa4

But the alternatives like Restify and Fastify are very similar to Express in developer experience, so it was not a huge deal to move away from it. One could think that these new frameworks are just a new major version of Express that had a lot of breaking changes.


The blog post you've linked doesn't justify what you've said about it at all.

In the netflix blog post they're complaining about increasing latency over time because they have a function that *reloads all express routes in-memory* that didn't properly remove all the previous routes, so the routes array got bigger and bigger. That's not a fundamental problem with express[1], that's an obscure (ab)use case implemented wrong. Hardly a damning indictment of express.

> This turned out be caused by a periodic (10/hour) function in our code. The main purpose of this was to refresh our route handlers from an external source. This was implemented by deleting old handlers and adding new ones to the array. Unfortunately, it was also inadvertently adding a static route handler with the same path each time it ran.

[1]: Admittedly an array is not the "best" data structure for routing, but that absolutely wasn't the performance issue they were having. Below a couple thousand routes it barely matters.


I haven't been tracking. Is Express 5 GA yet? Any project that stalls out like Express seemed to makes me think it's dead.

Any NodeJS web projects I run are on Express 4 and _still_ use express-async-router, helmet, and a hodgepodge of other add-ons to make it passable.

It is highly productive and useful, but I would never serve to the internet with NodeJS, much less with Express 4. Only internal apps. Scary NPM ecosystem of abandonware and resume fodder, it's not okay!



The windowing system provided by my operating system, instead of the ersatz disaster provided by Google Chrome.


You mean desktop GUIs?

What is the native system provided by Windows? They release a new one for each OS, that is instantly deprecated.

Or by Linux? Is it GTK or Qt? Xmotif?


Does USB count as old & boring ? It sure beat the hell out of serial and parallel ports !


USB the protocol perhaps, but USB-C (and all of the connector/cable/PD complexity) is very far away from boring.


Software: PHP, MySQL, HTML and CSS. And RSS of course. Hardware: desktop computer with wired mouse and keyboard.


javascript


Dial Calipers... From my point of view the PC and the microprocessor resulted in a giant economy that is pursuing technology production won't necessarily improve user satisfaction.

Using that perspective I think digital circuits which can be created in any controllable media is what I'm pursuing. I'm trying to make large circuits that represent the physical environment and the logic of the technical tasks that need to be done. My thinking is that next wave technology improvement will come from large environmental circuits that represent the human use of the physical environment.

I see the pursuit of smaller and smaller circuits as only one method of technology development best left to sophisticated global production. I think there will be cottage industry based on locally or "last mile" implementation of more esoteric but easy to understand systems.

The general purpose computer has resulted in overly complicated and inefficient for most regular people's actual computing needs.


My iPod Classic!


The wheel.




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: