6 ms·
Sorry but this is just crazy. I always wonder if people writing blog posts like that have ever worked in a big company. You need to spend at least 2-3 hours a d
by tempsolution 7y ago
Sorry but this is just crazy. I always wonder if people writing blog posts like that have ever worked in a big company. You need to spend at least 2-3 hours a day doing code reviews and most of the rest you are writing code, which subsequently involves reading the code you wrote yourself and others have written.
Now we currently use Java here. I worked with other programming languages in companies too, for instance C and C++ which were a nightmare with no equal. Don't get me wrong, when I was in college I just loved creating crazy shit with template metaprogramming and preprocessor metaprogramming. Once you mature out of it, this is just the most craziest thing you could ever do.
The reason is simple. Even plain, stupid Java is already incredibly hard to verify during a CodeReview. Spend 2 hours in a row trying to find problems with other's people well written Java code and your brain feels like it explodes. Now with C++ that same task is almost impossible and will likely require 8 hours of your day for the same code volume. With Haskell I would go out on a limb here and say it would require 24 hours of your daily time to handle the same code volume...
Not to mention that most programmers even at Google and Amazon would not even be able to either read or write such code and people like me, who could and did in the past would just shake their heads and move on. Nobody wants to deal with such code outside of university...
- mabbo 7y ago> most programmers even at Google and Amazon would not even be able to either read or write such code Hello, I am at Amazon. I spend a decent portion of my time working with an in-house Clojure library (not entirely dissimilar to Haskell) which handles some mission critical business logic my team owns. It terrifies me. I hate it. For every hour I spend working with it, I spend another hour trying to convince everyone we need to rewrite it in Java, immediately, or replace it with a different library. None of us have a clue how it works. We can't debug it. The guy who wrote it quit three years ago. I mean, it works. It works very well. But the day it doesn't work, we're not going to have a clue why that is. And then we're in real trouble.
- rfrey 7y agoYou could use those hours currently spent lobbying for a rewrite to, you know, learn clojure.
- sk0g 7y agoThe vast majority of devs can be (some definition) of productive in general languages like C#, Java, Python etc in a day or a few. As in, able to grasp code, spot and fix logic faults. That is far from accurate for more left-field languages. Should every new hire spend three months meditating and becoming one with the functional gods? Seems a bit silly, almost as silly as trying to hire a programmer that is a fit into the company, and knows the relevant domain AND programming language/ paradigm as dictated by someone long gone.
- tempsolution 7y agoYet another myth that comes from not working in big companies... Learning a language is mostly useless for several reasons: 1) You will be among the only person who is willing to learn it 2) You will have no capable reviewers, and usually you need about 2 for each CR 3) Your team has no production knowledge and muscle memory for that language. Ergo pretty much all you do will be garbage for a very long time and a huge operational risk. 4) Other teams at your company will not know this language either. Bottom line: Pick the language most teams at your company are familiar with. At Amazon that simply is Java for anything that is not frontend, period. Even getting into Kotlin presents a major obstacle. Clojure? Yeah right. Edit: Just to clarify. Working in a big company is not meant as a restriction. In fact, having worked in several startups before, these would do well to adopt the same principles for programming and prohibit this "university graduate" way of developing software. In the end, if your startup is going to survive, it's going to become a big company itself someday.
- ulucs 7y agoLearning a language that is almost completely useless for your company is still useful for you. It adds to your skill set, increases your market value and keeps you learning. Only learning corporate-approved languages is a bit shortsighted. Tech companies, development paradigms and programming languages all have shorter lifespans than humans. COBOL and Fortran, once very successful and popular languages have stopped being mainstream for a while. And those two were the survivors of their batch. Who knows how many then-popular languages have faded away to obscurity? Also you have to keep learning even if you are to stick to the same language. Java is not 1.6 anymore. Languages keep evolving by borrowing good ideas from other languages. So why not use your learning time to stay ahead of the curve? Edit: All languages have their places, even in big companies. Could Whatsapp and Discord have grown at the same pace while using Java/C#? BEAM is the right tooling for them and it has paid off.
- deleted 7y ago[deleted]
- 0815test 7y ago> working with an in-house Clojure library (not entirely dissimilar to Haskell) Clojure is actually very different from Haskell. The pervasive use of "dynamic" features, including the lack of a satisfactory type system, does mean that Clojure code can be expected to be inherently less reviewable, surveyable and auditable, which is exactly what you found.
- chachachoney 7y ago>> Sorry but this is just crazy. The article was about "virtues of Haskell's strong type system" but you seem to have read it as "Why you should use Haskell and Type driven development in place of your existing C++ or Java Stack." The author has published a computer science book. He probably doesn't work in a big company, but lots of people work in big companies and still appreciate FP / type theory / computational theory and forays into those realms. Not to mention... A little bit of stuff like this and a lot of Rust makes more sense.
- jose_zap 7y agoHe has worked for Google and Facebook, the big company argument is not very relevant, IMO.