Earlier quoted context omitted.
I think the problem with software industry is inertia. Someone well respected says everything is an object (or use dynamic typing everywhere, or functional programming, or node.js) and majority will blindly follow without ever thinking about more suitable alternatives.
> I think the problem with software industry is inertia. What you say here and what you say below actually disagree with each other. Inertia would be developers never changing their tooling and never following the next shiny technology. If anything, I think alot of programmers could do with a bit more inertia:) > Someone well respected says everything is an object (or use dynamic typing everywhere, or functional prog…
I think people don't know how to think and evaluate. I tend to break it into Goals/strategies/tactics, though there are other useful breakdowns. I.e. start by asking yourself "what is my goal" - and it is not to ask graph algorithm questions, to use Django, or whatever. Once you have your goals, you can with hard work come up with strategies. From there flow tactics. Then, this gets communicated and everyone latches onto the strategies and tactics, never asking if the goals have changed, or are inappropriate for your use. Google wants to hire a bunch of young people that know graph theory and are willing to do anything to work for you (they have graph theory problems after all). Asking grad level CS questions is a way to get those people. So every start up follows suit even though they need something completely different, and Google persists even when they need something different.
OO solves some things well, and is an appropriate strategy for some situations. It does not follow that you should use OO for everything. But, non-thinkers learn 'OO good', or 'CS questions good', and just run with it, never thinking about why those things are good, and in what context.
Agile is everywhere these days. My company has adopted it wholesale, even though everything we do is extremely schedule oriented (due dates that are unchangable), and involves heavy coordination between many moving parts. But want to use a Gannt chart or a frigging calendar organizer? Get mocked, censored, and shot down for not being a team player. Agile, Jira, and all that has become the goal, and you are not allowed to think about whether it makes sense or not in a given situation. Decisions are judged on whether they are "agile", not on whether they are the best way to accomplish something. So we fumble about with a 'priority' list that makes no sense (everything must be done, there is no priority) and that completely obscures the very real relationships (scheduling and otherwise) between all the items. Utter, complete madness.