4 ms·
I wouldn't use Ruby/Python for web development given their know issues. I'd use Java/C#/Go/Closure; two of these existed at the time Twitter was made. While tho
by virmundi 8y ago
I wouldn't use Ruby/Python for web development given their know issues. I'd use Java/C#/Go/Closure; two of these existed at the time Twitter was made. While those two are more verbose, the IDEs make most of that easy (I use Eclipse and AOP to generate almost all of that bulk). So picking something that's good at the start will save you in the end.
People tend to think, "We'll architect it later" means "We don't have to think now". You need to think at every step. You don't need to know how you'll deal with everything, but there is a lot of rooming for being rational. You should think about fault tolerance when you start. It could be that you think you don't need much since everything will deploy to one box (and you're okay with loosing the whole thing). You need to be rational. You need to know why you did what you did and what the impacts would be.
I'm going to stop picking on Twitter since they are the case study in what not to do. They learned from themselves and taught us all much in the process.
Many startups don't think all this through (even if they only need to think 2 moves ahead). They over-hire. They under design. They make lots of poor choices because they think they have the runway and want to be cool with the latest frameworks. All of these actions I'd place squarely in the folly camp since Uncle Bob and other resources have been free since at least 2014 (https://www.youtube.com/watch?v=Nsjsiz2A9mg https://www.youtube.com/watch?v=Nsjsiz2A9mg).
- dasil003 8y agoWow I don’t even know where to begin with this. Perhaps the biggest flaw is confusing language with architecture. Twitters scaling issues had to do with non-trivial architecture issues that are much more widely understood now than they were a decade ago. It’s very easy to sit in your armchair now with your pipe and claim how bad their approach was, but the fact that you think it has to do with choice of language shows you aren’t as smart as you think you are. If Twitter has used 2006-era Java they likely would have moved too slow to even get traction and we’d never have heard of them. It’s a pleasant fantasy land to think you could survive early Twitter hypergrowth, but actually dealing with it is not simply a matter of correct up front planning.
- virmundi 8y agoI've seen the "move to slow" argument bandied about here all the time. The all modern 3GL languages support fast development (they might need some help with code gen). Twitter suffered language level scaling issues. Period. They suffered architectural issues. When I see someone wanting to go to prod with Python/Ruby project, I know they will have to rewrite. I do want to nuance this a bit. If you're doing AI or stats, Python makes sense. There are ways to scale that too. Use the right tool. My general argument is that Python is seldom the right tool for any at-scale web system.
- dasil003 8y agoDo you think any system goes from 1 to a billion users without being re-written? It never happens, if you go if into that architecture astronaut mindset from the beginning you will not ship the features necessary to get traction. Saying that Twitter faced language-level issues is absolute nonsense. Any stateless web front-end scales trivially whether it's Rails or anything else, it's the data flow and caching that needs to be designed properly to solve Twitter-type scaling issues.