5 ms·
> don't say Haskell, because surely you're more pragmatic than that What's that supposed to mean?
by codygman 12y ago
> don't say Haskell, because surely you're more pragmatic than that
What's that supposed to mean?
- smt88 12y agoFor real projects (ones that definitely involve other people and probably involve money in some way), most of your wasted time is not due to the language you're using. Sure, you could be using non-strict JS or PHP and get bogged down because your typos are silently ignored, but lots of IDEs have static analysis and whatnot to prevent that. Any popular language has workarounds for its most time-wasting issues. Where lots of time is actually lost is 1) learning and 2) reinventing the wheel. Imagine, for example, that there's a magical language called AFP (Absolutely Fucking Perfect). It's perfect. Everything you write in it is short, concise, readable, maintainable, and compiles to hyper-efficient code for any number of cores. Unfortunately, AFP is only used by 1,000 people. See the problem here? The time you spend learning is going to be astronomical, because you won't find the tutorials, Stack Overflow questions, books, forum posts, etc. that you find with a popular language. And then, perhaps worse, you don't have many libraries. None of those other 1,000 people were working with REST APIs? That sucks, you have to write a module for that. None of them needed to process images? Same issue. With AFP, you're likely looking at writing 10 times the amount of code that you would in a popular pile of garbage like PHP or JS. Haskell is AFP. It's widely considered to be a great language, but it's just not practical. There's hardly anything built in Haskell out there for you to build your own stuff on. We're now getting into an era where we might have the best of both worlds. Rust seems to be really interesting on that front. I've also seen the same argument for Scala, Go, and Elixir. But Haskell is not one of those frontrunner languages to take over from the slapped-together old guard of Perl, PHP, Python, and JS.
- codygman 12y ago> There's hardly anything built in Haskell out there for you to build your own stuff on. False. How do you come to this conclusion. I agree with your overall point mostly, but it doesn't apply to Haskell.
- smt88 12y agoYes, it does. Haskell is mostly used for small, single-purpose tools, or it's used to teach FP principles. The number of repos on Github for Haskell is absolutely minuscule compared to every mainstream language. There just aren't that many people using Haskell for real projects, nor are there lots of practical libraries for it. (You're free to name some examples if you disagree...) Perhaps worse, Haskell is hard to learn. Sure your code is super-optimized for a compiler or whatever, but the learning curve is so high that you have to find someone else that's experienced in Haskell to work on your project. That's very, very hard.
- codygman 12y ago> Yes, it does. Nope. > Haskell is mostly used for small, single-purpose tools, or it's used to teach FP principles. According to whom? If you, how do you come to that conclusion? > There just aren't that many people using Haskell for real projects, nor are there lots of practical libraries for it. (You're free to name some examples if you disagree...) I could name many, though I'm not sure they would meet your definition of practical. Could you give me your definition of a practical library, and/or perhaps even better a few practical libraries from your language of choice? > Perhaps worse, Haskell is hard to learn. Haskell is no harder to learn than your first programming language where you also had to learn imperative programming semantics and things like Object Oriented programming. > Sure your code is super-optimized for a compiler or whatever, It really seems like you don't know much about Haskell. I think you'd be doing yourself a service to take a look. > but the learning curve is so high that you have to find someone else that's experienced in Haskell to work on your project. That's very, very hard. Not if you offer remote work and post it to /r/haskell, haskellers.com, and functionaljobs.com Getting local candidates with previous Haskell experience could be more difficult outside of places like NYC, Austin, Silicon Valley, etc. I wouldn't advise using it for a start-up unless you have at least one person that is moderately experienced and at the very least created a few libraries.
- smt88 12y agoThere are less than 5k Haskell users on Github, and they've released 30k repos. By comparison, Go has 9k users and 50k repos. And a lot of people say that Go is not that useful of a language because the community is small. What I'm saying isn't particularly controversial. There's a long thread here where Haskell is brought up frequently in the same context I'm talking about it: https://news.ycombinator.com/item?id=8802454 https://news.ycombinator.com/item?id=8802454 My definition of practical is this: people use it in practice. They use it for business or for personal projects that other people get use out of. The core purpose of software is to automate things that, otherwise, people would have to do. What large jobs is Haskell currently automating for people?