If one bothers to learn about tools and why they are useful, they can think a little bit deeper and understand why some intellectual argument do result in software that ships. We write Scala at my company because we've found that with the right developers who seek to understand type systems and fp we can ship fast as fuck. I'm dozens of times faster working in Scala than I ever would be in php. We want to beat the average, not be the average.
I've programmed large projects in 6 or 7 different languages now and I simply don't believe your statement "I'm dozens of times faster working in Scala than I ever would be in php." That's like saying "I would write that essay dozens of times faster in Spanish than I would in English."
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.
I really dislike the anti-intellectualism in fallacious quips like that. People discussing haskell and clojure are not magically prevented from writing code as a result of their intellectual curiosity and desire to explore better tools and methods. The implication that people who are smart and use quality tools never accomplish anything or do any work is quite insidious, as newcomers start taking pride in ignorance because they are "shipping product" while falsely believing those other people aren't. It becomes used as a way to dismiss opportunities to learn because they've equated learning and being educated with not accomplishing anything.
I guess strictly speaking it's a false dilemma to say you're either arguing endlessly or shipping, but I don't really think that was the spirit of the quote. Unless there are infinite productive hours in your day you have to choose your stack and go for it, and the less boilerplate you have to do to get your stack running, the more time you'll have for productivity.
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.
>Unless there are infinite productive hours in your day you have to choose your stack and go for it
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 there is anyone engaged in "intellectual wanking" instead of "shipping product" is fallacious
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.
agreed. Just because someone can use a pocket knife and some twine to lash together a chair in 20 minutes doesn't mean someone is going to buy that chair.
Craftsmen care about their tools, and great craftsmen ship. Shitty ones can ship too, but it won't be good.
Honestly, I wish I could believe that. But I really don't see how I am reading anything into it. The implication that people who talk about programming languages that he doesn't want to learn about are not "shipping product" is quite clear. I don't see any way to interpret that sentiment other than as anti-intellectualism.
@agentdero
https://twitter.com/agentdero/status/174965036928868352