4 ms·
Absurd. The bulk of being a good-engineer is productivity, by reinventing the minimal amount possible. Highly efficient engineers are very accustomed to their
by alexandercrohde 8y ago
Absurd.
The bulk of being a good-engineer is productivity, by reinventing the minimal amount possible. Highly efficient engineers are very accustomed to their tools (IDE, language, framework, database and DB drivers, webserver, deploy system, logging).
Forcing a team of engineers to use a new language, IDE, framework, particularly one that has minimal backing, is something I would consider a "fireable" offense (i.e. costing the company hundreds of thousands of dollars for personal amusement).
And also, if you did want to go functional, why not something used by literally any professional company? E.g. Twitter on scala.
- wink 8y agoMaybe I should preface that by saying I'm not a big fan of Scala... But I think Scala has the major problem that Perl has, take 5 developers and you get 6 different styles. I went from "Scala is horrible" to "oh, this actually looks nice" to "omg, what the hell" and so forth. Look at a random library as a beginner and think "is this really Scala"? And that's even ignoring the problems with sbt, binary compatibility, and so on. Yes, there were some success stories. Also some stories of replacing Java with Scala, but I've heard nearly as much "well we replaced it but we don't know if it's really better".
- alexandercrohde 8y agoSeems like a very weak justification to me. I'm sure it's easier to hire an engineer who can write idiomatic scala than idiomatic haskell. But all that is aside from my main point, which was changing tools on people is almost never justified. Unless you're writing a web app in ASM, you usually should stick with your language.
- nilkn 8y agoI do think your analysis here is a bit shallow. - Scala is not an easy language to learn unless you just use it as a "better Java" with syntactic sugar, in which case it cannot be considered to be in the same class as Haskell. The same is true of many other languages folks are proposing, like Clojure or F#. It might be easier to bang something out with Clojure than Haskell, but I don't think it's any easier to master than Haskell. - Your estimate of the cost (hundreds of thousands of dollars) assumes there's no benefit to the switch. There may or may not be, but you didn't even account for that possibility. - Highly efficient engineers are also efficient at learning new tools, frameworks, IDEs, etc., because for many developers that's part of daily life.
- lmm 8y ago> Scala is not an easy language to learn unless you just use it as a "better Java" with syntactic sugar, in which case it cannot be considered to be in the same class as Haskell. The question is how you get to there from here. 6-8 years ago I wrote "better Java" style Scala. For the last couple of years I've been writing Haskell-like Scala and enjoy all the cited advantages. But, crucially, I was able to remain productive the whole time, and do all my learning on the clock while working on real, useful projects. Nowadays I could probably get by in Haskell (I would still choose Scala over Haskell, but that's a separate discussion), but if I'd tried to start with it in the first place I would never have got off the ground.
- nilkn 8y agoI'm not necessarily arguing in favor of a team being spontaneously switched to Haskell (any big move like that seems ill-advised in general), but I do find this overall line of reasoning a little unconvincing. You're suggesting that you'll only learn something if there's a smooth, continuous path to its mastery from what you already know. That basically leaves you stuck in whatever connected component of programming expertise you're already in, incapable of making a big jump anywhere else.
- lmm 8y ago> You're suggesting that you'll only learn something if there's a smooth, continuous path to its mastery from what you already know. That basically leaves you stuck in whatever connected component of programming expertise you're already in, incapable of making a big jump anywhere else. Indeed it does, but I think it's the right choice. How many times can you afford to "not be productive for months" for the sake of learning some new paradigm that promises the world - and how many actually deliver on what their advocates claim? There are dozens or hundreds out there, and while I now know from experience that the advantages of Haskell-style functional programming are real, a priori there was no way to distinguish it from all the oversold-but-useless approaches that are out there. Indeed my experience is that whether you can do it incrementally is actually quite a good signal for whether there's real value in a paradigm, or it's a load of hot air.
- fulafel 8y agoThis sounds like constraints for a suit-and-tie company where programmers and teams don't have much autonomy. Maybe this is your definition of a professional company. In other kinds of settings, the stars may align in favour of non-mainstream languages. If your project has to attract good programmers from inside the organisation and a modicum fearless propellerhead attitude is part of the culture, it may be worth it. But of course forcing a team to adopt anything should not enter the picture.
- grumdan 8y ago> why not something used by literally any professional company Can we cool it with using "literally" to mean "figuratively"? You may have heard of Facebook or Standard Chartered for instance, unless you consider them both unprofessional. Sure, it's less common than other FP languages, but Haskell is used for non-trivial things by non-trivial companies.
- alexandercrohde 8y agoI meant literally, but by professional I meant "A-tier." I know of zero billion dollar software companies that use Haskell as their primary development language. I know nothing about Facebook using Haskell. Last I checked they use a PHP-derived language called Hack.
- grumdan 8y agoHaskell is being used for their spam filtering system, Sigma: https://code.fb.com/security/fighting-spam-with-haskell/ https://code.fb.com/security/fighting-spam-with-haskell/ I'm not sure what else they use it for, but they hired Simon Marlow, one of the main guys behind GHC a years ago. It's still not their primary language, but restricting the interpretation of "professional" and "uses" to what you had in mind is not the most interpretation of your comment to me.