12 ms·
> more sophisticated tech stacks Please don't do this, pick more boring tech stacks https://news.ycombinator.com/item?id=43012862 https://news.ycombinator.com/
by zozbot234 2y ago
> more sophisticated tech stacks
Please don't do this, pick more boring tech stacks https://news.ycombinator.com/item?id=43012862 https://news.ycombinator.com/item?id=43012862 instead. "Sophisticated" tech stacks are a huge waste, so please save the sophisticated stuff for the 0.1% of the time where you actually need it.
- marcosdumay 2y agoSophistication doesn't imply any increase or decrease in "boringness".
- zozbot234 2y agoThe dictionary definition of 'sophisticated' is "changed in a deceptive or misleading way; not genuine or pure; unrefined, adulterated, impure." Pretty much the polar opposite of "boring" in a technology context.
- rcxdude 2y agoThat is an extremely archaic definition that's pretty far from modern usage, especially in a tech context
- whstl 2y agoNo, this is not "the" dictionary definition. This definition is obsolete according to Wikitionary: https://en.wiktionary.org/wiki/sophisticated https://en.wiktionary.org/wiki/sophisticated (Wikitionary is the first result that shows when I type your words)
- Timwi 2y agoNo clue what dictionary you looked at but this is not at all what dictionaries actually say.
- sophacles 2y agoThat's great advice when you're building a simple CRUD app - use the paved roads for the 10^9th instance. It's terrible advice when you're building something that will cause that boring tech to fall over. Or when you've reached the limits of that boring tech and are still growing. Or when the sophisticated tech lowers CPU usage by 1% and saves your company millions of dollars. Or when that sophisticate tech saves your engineers hours and your company 10s of millions. Or just: when the boring tech doesn't actually do the things you need it to do.
- zozbot234 2y ago"Boring" tech stacks tend to be highly scalable in their own right - certainly more so than the average of trendy newfangled tech. So what's a lot more likely is that the trendy newfangled tech will fail to meet your needs and you'll be moving to some even newer and trendier tech, at surprisingly high cost. The point of picking the "boring" choice is that it keeps you off that treadmill.
- sophacles 2y agoI'm not disagreeing with anything you said here - reread my comment. Sometimes you want to use the sophisticated shiny new tech because you actually need it. Here's a recent example from a real situation: The linux kernel (a boring tech these days) has a great networking stack. It's choking on packets that need to be forwarded, and you've already tuned all the queues and the cpu affinities and timers and polling. Do you - a) buy more servers and network gear to spread your packets across more machines? (boring and expensive and introduces new ongoing costs of maintenance, datacenter costs, etc). b) Write a kernel module to process your packets more efficiently? (a boring, well known solution, introduces engineer costs to make and maintain as well as downtime because the new shiny module is buggy?) c) Port your whole stack to a different OS (risky, but choosing a different boring stack should suffice... if youre certain that it can handle the load without kernel code changes/modules). d) Write a whole userspace networking system (trendy and popular - your engineers are excited about this, expensive in eng time, risks lots of bugs that are already solved by the kernel just fine, have to re-invent a lot of stuff that exists elsewhere) e) Use ebpf to fast path your packets around the kernel processing that you don't need? (trendy and popular - your engineers are excited about this, inexpensive relative to the other choices, introduces some new bugs and stability issues til the kinks are worked out) We sinned and went with (e). That new-fangled tech met our needs quite well - we still had to buy more gear but far less than projected before we went with (e). We're actually starting to reach limits of ebpf for some of our packet operations too so we've started looking at (d) which has come down in costs and risk as we understand our product and needs better. I'm glad we didn't go the boring path - our budget wasn't eaten up with trying to make all that work and we could afford to build features our customers buy instead. We also use postgres to store a bunch of user data. I'm glad we went the boring path there - it just works and we don't have to think about it, and that lack of attention has afforded us the chance to work on features customers buy instead. The point isn't "don't choose boring". It's: blindly choosing boring instead of evaluating your actual needs and options from a knowledgeable place is unwise.
- itronitron 2y agoToday I learned that some tech stacks are sophisticated, I suppose those are for the discerning developer.
- ungreased0675 2y agoAn edge case in startups is something that provides a competitive advantage. When you run a startup, you have to do something different from the way everyone else does, or you’ll get the same results everyone else does. My theory is that some part of a startup’s operations should be cutting edge. HR processes, programming stack, sales cycle, something.