4 ms·
Someone has to take the first step to solve the chicken and egg problem. If there are jobs requiring Haskell, it might get more users.
by infinityplus1 6y ago
Someone has to take the first step to solve the chicken and egg problem. If there are jobs requiring Haskell, it might get more users.
- st1x7 6y agoI don't think that it's wise to sabotage your own future and productivity as a company just so you can pave the way for some language to become more popular.
- mjburgess 6y agoIt isn't, of course. But the crowd of other people want you to do that. It's the role of applause (and in your case, downvotes). The crowd throws cheap adulation at individuals who act against their own interests.
- oblio 6y agoThe peanut gallery :-))
- mightybyte 6y agoI don't think that it's wise to try to optimize for some kind of speculative long-term success at the expense of higher early-stage costs that reduce your odds of getting there. This is similar to companies that choose their initial technology with scalability in mind before they're even remotely close to needing to scale. I've actually done this only to discover that scalability has a very definite cost and when you're small it has an outsized impact on your burn rate. If you have success, you're going to figure out a way to make the changes you need. Case in point: Facebook. They successfully grew a PHP codebase into one of the most popular apps in the world. It definitely cost a lot more money for them to make PHP work, but when they got to that point they were a lot less cost-sensitive. Planning for that far down the road is the least of your worries. And any plans you make along those lines are not likely to be very accurate anyway. You're much better off optimizing for the near to mid term. Based on the hosting costs described by the OP they are already reaping a tangible value here.
- whateveracct 6y agoI think at worst, Haskell is a a minor productivity cost for a company vs a mainstream language, and if it is, it's hard to pin it on the language. So given the upside to paying people to using Haskell (they get to learn it for life, many join + grow the community, they enjoy working for your company more), I think it's worth that kind of harm to a corporation. I'll keep trying to sap corporate resources into Haskell I take with me for life at least :)
- 414owen 6y agoI write Haskell professionally, and I can confidently say that there are plenty of jobs. Some large tech companies (eg. Facebook, GitHub, Twitter), quite a few banks, a lot of consultancy companies, and plenty of random companies I'd never heard of. It is quite difficult to get a first Haskell job though, because they mostly require production Haskell experience, so there's your chicken and egg problem.
- PietPtr 6y agoWorking with Haskell professionally sounds like a very interesting career path. Could you point to some resources to get better at the production Haskell skills that these companies are looking for? Perhaps gaining experience with projects which use Haskell in a similar way to the companies you mention could help with finding that first Haskell job.
- 414owen 6y agoSure thing. I'm not sure what your current level is, but I can give some general advice for people that happen upon this: --- Haskellers are generally expected to understand most of the typeclassopedia (https://wiki.haskell.org/Typeclassopedia https://wiki.haskell.org/Typeclassopedia), don't worry about learning it all in one go. I had to read this page many times before I grokked most of it. --- Avoid tutorials that overuse analogies. A Monad only adds one operation to Applicative: class Monad m where (>>=) :: m a -> (a -> m b) -> m b This reads as: `m` is a monad if, given an `m a`, and an `a -> m b`, you can construct an `m b`. --- It's important to be really good at using Monads that support multiple effects, to create little DSLs. If I want a component of my program to support throwing errors, creating a log, and reading an environment, (all purely), I'd use something like this: type MyDSL = ReaderT Environment (WriterT [String] (Except ErrorType)) These are monad transformers from the mtl library. Where I work we use free monads instead of monad transformers, but that's just an implementation detail, it's used the same as a transformer stack. --- Create a cool project, Haskell people like languages. When I was interviewing I showed off a tiny lisp-like language implemented in Haskell (https://github.com/414owen/phage https://github.com/414owen/phage). This was my first non-trivial Haskell project so don't judge it too harshly. --- Read Haskell Weekly (https://haskellweekly.news/newsletter.html https://haskellweekly.news/newsletter.html). It's a great source of ideas and knowledge. --- A lot of Haskell shops use, or are migrating towards using, nix (https://nixos.org/ https://nixos.org/). --- Apply! The Haskell market seems to favor the interviewee. In the end, I had more than one offer, even for my first Haskell job. Good luck!