6 ms·
> The last line of defense against a rogue engineering team is managers who have studied this stuff. If your engineering team is the one pushing in that direct
by Mikushi 6y ago
> The last line of defense against a rogue engineering team is managers who have studied this stuff.
If your engineering team is the one pushing in that direction I'd reckon the company was in a bad spot to begin with to have hired that team because it strongly indicates that the management layer (head of tech/CTO) has no technical clue.
Hire strong Lead Developers with a proven track record of delivering value to companies they worked at and you'll be mostly fine.
Also there's not much to study, in 99% of the cases in a web based startup if your stack deviates from a monolith with one of PHP/Ruby/Python/.NET/Go + Mysql/Postgres/MSSQL you're doing it wrong.
- js4ever 6y agoWhat's wrong with Node.js? It's super mainstream now. We have it in production since years, I see a LOT of companies migrating from everything else to node since years and it's a growing trend from what I see at my level with startups and even enterprises
- Mikushi 6y agoNothing, just forgot about it.
- hackerfromthefu 6y agoIt's generally high maintenance, npm dependencies, deprecations, leftpad, javascript new shiny culture etc You can make it work with more maintenance, but you did ask the question what's wrong with it!
- chrisco255 6y agoIt's really not high maintenance at all. Leftpad issue was fixed in less than hours the same day it happened and since then the NPM tooling for package management has improved a great deal. JS shiny new culture doesn't really exist on the back end (and even front end js has calmed down in recent years). Express.js, the go-to framework 7 years ago, is still the go-to framework on Node today. Node and Mongo are at this point "boring tech". Their limitations and trade-offs are well known, their benefits are also well-established, and their APIs and tooling have matured.
- collyw 6y agoThe language for one. There are decent choices of language for backend work. Why anyone would choose JavaScript is beyond me.
- whimsicalism 6y agoOh, but Python is an ideal backend language? Give me a break.
- dukeyukey 6y agoIf you want something mature, with libraries for everything, solid backwards compatibility and basically the best "boring" choice, go with Java. And if your devs want to mess around a bit, mixing some Kotlin in is basically harmless and easy to reverse if needed.
- collyw 6y agoNot ideal but a lot more pleasant to work with than JS
- Kwantuum 6y agoThe thing is, if you have any sort of front-end that is not entirely server-side rendered, you're going to have to work in JS at least some of the time. If your back-end is also in JS, you now get the benefit of isomorphic code for things that you may want to do on both front-end and back-end. Then there is also the fact that JS is actually a pretty great language if you know how to avoid the footguns. Granted that's not always easy, but it's a language with lexical closures and easy and familiar syntax, it's also very expressive and has a vast ecosystem supporting it. And you can even add the typescript compiler on top if you want compile-time type-checking. It's also async out of the box, and while that doesn't solve all problems, it scales surprisingly well with no performance tuning whatsoever, it even has decent asynchronous primitives that make it easier to write correct code.
- lostcolony 6y agoYeah; even without frontend code, JS is surprisingly compelling. It's easy to hire for, easy to write reasonably performant IO code in, the footguns are pretty much all well documented and generally understood (rather than requiring knowledge of the deep magic to debug), library support is top notch, and as a language it supports both OO and FP, while being pretty small in scope, terse without encouraging too much code golf.
- onetom 6y agoRecommended "literature": 1. 10 Things I Regret About Node.js - Ryan Dahl - JSConf EU (https://www.youtube.com/watch?v=M3BM9TB-8yA https://www.youtube.com/watch?v=M3BM9TB-8yA) 2. Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160 (https://youtu.be/krB0enBeSiE https://youtu.be/krB0enBeSiE)
- redisman 6y agoSure but there are all known issues to any Senior Devs. You don’t have to pull shady hairballs from npm for every little feature you can think of. I’ve ran node in production for the last 5 years so at least to me it counts as battle tested and “boring”.
- laurent92 6y agoand Java?
- user5994461 6y agoStartups are more commonly on python/ruby/node/php. It's faster to start with and to iterate. Java and .Net are more common in longer-lived, larger projects, or when performance matters.
- hackerfromthefu 6y agoand where maintainability and tco matter
- collyw 6y agoI think maintainability is mostly down to developer skill and the ability to abstract to the right level. A good Python dev will likely leave far more maintainable code than an average Java dev.
- jermaustin1 6y ago> A good Python dev will likely leave far more maintainable code than an average Java dev. And a GOOD Java dev will likely leave far more maintainable code than an AVERAGE Python dev.
- whimsicalism 6y agoI have yet to see this in an enterprise setting, maybe my standard for "average python dev" is too high.
- lostcolony 6y agoI have yet to see a maintainable Java project of any reasonably large size, anywhere. Java programs are larger than those in other mainstream languages, just by dint of the verbosity of the language (and research backs this up; studies showing errors per LOC are consistent regardless of the language). Ergo...
- criddell 6y agoAnd what about the front end? What's the best, most boring choice there? I was on a project for a bit using React and although it felt like an obvious way to write things, I can't help but feel you can't create something that will last for a decade with it.
- 1337shadow 6y agoUnless you're trying to make a really rich SPA, it could be something of: unpoly, htmx.org, barbajs, knockoutjs, turbolinks/stimulusjs... Anything that lets you enjoy server side rendering, whatever your framework autogenerates for you (ie. forms) is better to "just have" than "have to implement", instead of having 2 projects (one API, one frontend), or even no frontend framework at all (ie. mvp.css and plain HTML), you can do a whole lot of relevant projects with that already. Webcomponents in plain JS are also great to not have to deal with JS class/HTML Element binding and lifecycle yourself. Why not add a bit of Flutter or React for a few features, but for most pages it's going to be an expensive overkill.
- BigJono 6y agoYou absolutely can. React is the gold standard right now. It's already been king for 6 years and it's not going anywhere. The hype for angular died down. The hype for vue has started to die down. This little bit of hype svelte has at the moment will die down. React does have a ton of problems but they all come from the next level of dependencies down. Shit like Gatsby and Nextjs won't pass the test of time. Neither will redux (it's already pointless) and all the convoluted bullshit like redux-saga. If you learn to build stuff using just react and other basic dependencies (like express on the back end), you'll be in a good position going forward. None of that stuff is going anywhere.
- criddell 6y agoMy instinct is to build a native front end and connect to the back end over a REST (or similar) API. To me, that feels like the boring technology route.
- 6y ago