DEV Community

Discussion on: Switching to Haskell

 
trishaganesh09 profile image
Trisha

Adding on to what you were saying about companies - Yes, technically speaking tech companies do hire people who know how to program and will benefit the company; however, it's more about the quality of work they can produce.

Like you said before, Haskell isn't a language most companies would choose to use when hiring their employees. They need people with more experience and passion. In addition to that, Haskell is pretty functional but I do agree that there are many other languages that are also beneficial.

According to my research, some programmers don't use Haskell, some used Haskell in the past, some still use Haskell and some programmers and never even heard of Haskell. So it depends on the ability as well as the strengths and weaknesses in every software engineer's career path.

Of course, not every programmer is at a high level of coding. One of the first programming languages I started learning was Python and I still use it for the same purposes as I used to.

By the way, Haskell isn't the language I code in. I do use it a lot for research and my data analysis work. But I use many other languages as amusement and for important obligations. I will admit I do use Haskell for fun seldom when I'm under ennui. Whenever I'm feeling lethargic I run Haskell programs on my laptop. Many Haskell programmers used to use GHCI to run Haskell programs, I use VSCode to run programs in other languages. I'm sometimes able to improve the program's performance. I used to do that a lot while I was self-teaching myself Haskell.

Although, I do appreciate your comment! Feel free to let me know what you think :)

Thread Thread
 
rodiongork profile image
Rodion Gorkovenko

Hi Trisha!

Could you by the way, in some future post, tell more about your work / research / interests as your comments leave us slightly bewildered and curious at the same time, because you pinpoint some important thoughts which, though supposedly simple, are sometimes so hard to explain to managers and leads... :)

I hope this doesn't sound impolite!

Thread Thread
 
trishaganesh09 profile image
Trisha

Not at all, I'd be happy to!

Thread Thread
 
gabrielfallen profile image
Alexander Chichigin

I'm answering to @rodiongork comment, but I see no way to reply directly to it, thus attaching my answer here...

You are pretty correct, it's better to have professional thoughts here!

Reassuring to hear that! But I know from personal experience that comments in Internet might sound cold and harsh even when author intended nothing like that.

And yet again I'm going to state arguments seemingly contrary to what you're saying. :) But I'm not trying to prove you wrong and "defend Haskell". For one thing I don't think Haskell needs my defence. :) Second, I don't professionally develop in Haskell anymore.

What I'd really like to achieve is to make "perpendicular" arguments and move the discussion from "Haskell vs. Java/C#/etc." dichotomy into broader plane, or better yet into 3D space and have a perspective that includes much more details. 😃

Nevertheless they invited me to interview, spent their time etc... Then offered the test project, spent time on reviewing it again etc...

Again that says nothing about programming languages but something about hiring process in the organization. I had my share of strange and seemingly meaningless interviews that led to wasted time from both ends only. Applying for positions in different languages. Mainstream ones.

That supports my point that the question is much broader than just choosing a programming language. It's a truism that any technology has it's good and bad sides. But the processes are objectively good (efficient) or bad (wasteful), and it's up to management that devise and perform these processes whether to improve them or not. They call it "corporate culture" or even "company DNA" nowadays, and it has nothing to do with programming languages. :)

Frankly speaking I'm suspicious at all about companies which choose the language for which they know it would be hard to hire developers. :)

Exactly! Do you have an idea how hard it is to hire a decent (middle/senior) level Java/C# or worse yet JavaScript or PHP developer? Signal-to-noise ratio is abysmal! And the best ones are already very well employed so it's next to impossible to attract them. Would you apply for "another Java/C# position"? Probably not.

So hiring Haskell/OCaml/PureScript/Rust/Scala developers is easier in many regards. I'm not saying it's easy, but the set of tradeoffs is completely different.

However I don't expect good outcome from attempts to marry Haskell with needs and purposes of industrial software development. They just have different goals.

We were talking about maturity. To me "language maturity" is about quality of compiler and runtime and backwards compatibility of the language.

In the terms of runtime Haskell is on par with Erlang, Go, HotSpot JVM and .NET Core, the most mature language runtimes available. It implements excellent support for N-to-M concurrency on par with Erlang and Go (arguably even better). Nowadays there are two Garbage Collectors, both parallel, the new one even concurrent. Not mentioning almost unique best in class Software Transactional Memory support.

Again, compiler is on par with C/C++ compilers: in some aspects it's even better due to guaranties of purely functional language, in others it's lagging behind due to insufficient efforts invested, but not that far.

And the language is fully backwards compatible. You can still easily write everything in Haskell'98, or better Haskell'2010 if you absolutely want to stick with standardized part.

The whole deal is so much better than with Python, Ruby and JavaScript it's a bit ridiculous to me to talk about maturity of Haskell compared to such a mainstream languages.

As for "industrial software development" in Haskell it has been happening for a decade already and only grows bigger. I don't want to list the companies, they are pretty well-known for a big part. Industrial Haskell is a boring fact for quite some time.

They need community to build libraries and tools.

Actually the community is huge! 😃

What Haskellers complain about nowadays is there are too many libraries - too many dependencies, too long the build time. First world problems! 😃

Another data point, we'd organized a Functional programming conference last year (in Russia) and there was serious competition among Haskell talks. We had to reject several of them because we wanted a general FP-conference, not a Haskell-exclusive one. This year we have even more Haskell talks already, and they are from people working as professional Haskell developers in industry. I bet many of attendees are as well.

Thus my bottom-line. Looking in a broader context Haskell is another well-established and battle-tested production-ready tool with associated community, practices and trade-offs both technological and social ones.

The only issue is it's relatively unheard of outside of FP community. But that's not a Haskell-the-language problem, and I'm not sure it's a big of a problem at all.