4 ms·
Any professional programmers care to weigh in here? I have always been under the impression that, while Haskell/Scala/insert super awesome programming language
by the_watcher 13y ago
Any professional programmers care to weigh in here? I have always been under the impression that, while Haskell/Scala/insert super awesome programming language may be the "best" language, you should really be using the right tool for the job, which should mean different languages for different tasks. All of this assumes an equal supply of talented programmers for every language, by the way, something that I am aware is far from true.
- pbreit 13y agoBut I suspect we are mainly talking about the dominant use case the past decade and future decade: mobile and web back-ends.
- memracom 13y agoThe article DOES recommend using different languages for different tasks. A large part of it was about Ruby and Python shops that added Haskell to their toolbox in order to clean up overly complex parts of their codebase. As far as the supply of programmers is concerned, if a software developer is TRULY talented, then they will be able to learn a new language in a couple of days, and learn a new paradigm (such as functional programming) in a couple of weeks. I say this as a person who has moved from imperative programming to object-oriented programming to functional programming over my career. And I have used so many languages that I have difficulty even enumerating all of them. They range from machine language, to various assembly languages to FORTRAN, COBOL, C, Visual BASIC, Java, Python, Ruby, Scala. The hard part of programming is not the coding. It is the DESIGNING. If you do the design part well, then the code flows from your fingers naturally, and you end up doing very little debugging, especially if you practice TDD which forces you to debug problems within 15 minutes of creating them.
- EpicEng 13y agoWell, I don't know about a couple of days for learning a new language, but I agree with the sentiment. Learning a new language is more than figuring out the syntax for a loop. It's the library(s) that takes time.
- asdasf 13y agoMost languages are general purpose languages. The often repeated notion that languages are tools in a toolbox, where one is a hammer and another is a saw is really a very terrible analogy. For the vast majority of software projects, there is no "right tool" language, you can literally just use the best language. The issue is more than people do not agree on what is the best language. I would say it is more often the case that the availability of a particular library or framework pushes one language as being preferable for a task than anything about the language itself being especially suited for that task.
- luckydude 13y agoLong time self supporting programmer here. With a company around it supporting a bunch of other programmers. We write in C so that may cloud your opinion of my opinion :) My opinion rarely resonates with HN because HN is full of programmers who are well into the top 5% of programmers. The last thing any of those fine folks want to hear is anything bad about their favorite language, be it Lisp or Haskell or Clojure or $SOME_OTHER_LANGUAGE_IM_TOO_DUMB_TO_USE. I'm the dumbest guy on our programming team. I'm also the lead. My main service to the company is to try and keep the code base debuggable. I do that by limiting clever things as much as I can. Haskell strikes me as very clever. It's sold as if it will produce less buggy code; I've not seen real world evidence that that is so and I highly doubt it is impossible to write bad Fortran in Haskell. So perhaps the reason that Haskell hasn't taken over the world is that it seems to be something that "smart" people like and more average people don't understand. Any business that doesn't worry about how they are going to support their products (and hence their source base) down the road isn't going to survive very long. The rockstar leaves and everyone else starts rewriting his code. This story is as old as the hills, it's been the same way ever since there have been programmers. A really great programmer can get the job done in any language and a true rockstar will write code that even I could understand.
- asdasf 13y ago>Haskell strikes me as very clever. It is not. You should check it out some time. For purposes of this post I will pretend haskell and ghc are one in the same (ghc is the most popular haskell compiler). Haskell is built around a very simple, straightforward core language (shockingly enough called "core"). There is massive resistance to adding anything to haskell that can not be expressed in core and would require changing it. Haskell values simple, powerful abstractions that can be widely re-used. Haskell has not taken over the world because it doesn't want to. Python has not taken over the world either, I doubt many people would claim it is because python is too hard or too complex. Taking over the world does not appear to have any correlation with being a good language.
- luckydude 13y agoThere is good and then there is good. A lot of what HN perceives as good I perceive as a problem that I will be left to solve. I'm old, I'm over 50, got kids, spend a fair amount of my pile of ability each week trying to coach those kids in hockey. Still working on the company, still trying to make money, still trying to keep it going. Every time someone shows up with something like Haskell I either beat it out of them or I fire them. I'm sorry but I don't have the energy to deal with your new cool language. I've got a company to keep going, a life to live, I just want to take care of our customers and do it in a way that the next guy can understand and support. Haskell might be God's gift to programming, I don't care. My job has nothing to do with making people like you happy. I've got customers I need to take care of, Haskell doesn't help. I've got employees I need to take care of, Haskell doesn't help (we are weird in that we've been around for 15 years and most of my guys are still here, we're all getting old and when you get old all that clever shit starts to look like stuff you can't support). We recently added some pretty complex stuff to BitKeeper, basically a file system and a VM system. For a frigging source management system. In user space. Life is hard enough in C, you want to toss Haskell into that mix? Really? Come interview with us and you'll run screaming from Haskell and everything like it.