From being on HN for years, folly is ok for a lot of VC backed startups. "We know Ruby! Let's do everything in that!", said the team at Twitter. Then performance took a nose dive since the language was known at the time to not scale. Now it's Java or Scala.
Twitter is arguably successful so why would you consider their decision to be folly? It worked for them.
Startups have limited resources. If you devote them to solving tomorrow's problems then you'll be beaten by someone who devotes their resources to solving today's problems.
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).
Wow 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.
I'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.
Do 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.
Absolutely! Short term a startup will make a lot of fuckups - that’s a good thing, it’s learning!
But once the product is set having sane architecture and good code quality often become a deciding factor in being successful - because they allow you to iterate faster & outmaneuver your competition.
Sometimes you can get away with it for longer, but eventually you’ll grind to a place where you need to fix these things and it’s easier to do earlier.
But that would be folly long term.