The tough problems that take most of the time are the design and theoretical understanding of the problem. The actual tools used to implement the solution, while not trivial in their differences, are never as important as fully understanding the problem and having a good architectural design.
Or put differently, if you found me the fastest, most knowledgable person in the world with PHP web development, and then found the same guy for Scala, my assumption is they would both build a particular project in the same amount of time, all other things equal. And I could guarantee that one of the two wouldn't be "dozens of times faster" than the other.
It's nuanced. We all of us owe our careers to the people who came before us asking, 'what if we could do it this way?'. But, you have to draw the line between intellectual wanking and thoughtlessness. It's a surprisingly hard line to draw - more for some than for others.
But the people advocating haskell and clojure have done that. And they feel that their choice worked out so well that they should be nice enough to tell others how good it is. The people "just shipping with PHP" aren't spending their entire day coding, how is spending a half hour advocating for a programming language any different than spending that half hour watching TV (or as a more apt analogy, spending it arguing that PHP is totally good enough because I am shipping software in it so there's no need to ever try anything else)?
>and the less boilerplate you have to do to get your stack running, the more time you'll have for productivity.
This seems like an implication that using haskell or clojure somehow means having to deal with lots of boilerplate. That is not the case, and it is a rather odd thing to believe. This argument actually works against "just shipping in PHP". The less time you have to spend dealing with bugs that would have been prevented in another language, the more time you'll have for productivity.
>But, you have to draw the line between intellectual wanking and thoughtlessness
I believe the idea that there is anyone engaged in "intellectual wanking" instead of "shipping product" is fallacious. I've advocated haskell here before. Obviously I wasn't writing code while doing so, but would I have been writing code were I not advocating haskell? No, I would have been talking about something else, still not coding. Using downtime to advocate for your preferred language, platform, OS, library, framework, etc is a perfectly reasonable use of time, and if you are willing to read the contrary opinions of others, it can even be educational.
The idea that you could know what everyone is not doing at all times is fallacious.
The time I'm talking about (and I thought has been implied in this thread) is the time where you sit in a meeting room/coffee shop/founder's house, during work hours, arguing about why X is a better stack than Y and why project Foo should use it instead of your "default" stack (not necessarily haskell v. php; X vs Y).
And again, I am saying that time is virtually non-existent. It is a red herring, used to try to pretend that "those weird people who actually learn stuff" aren't getting anything done. People are not talking about haskell and clojure instead of working. That is the entire point.
Craftsmen care about their tools, and great craftsmen ship. Shitty ones can ship too, but it won't be good.
@agentdero
https://twitter.com/agentdero/status/174965036928868352