this post was submitted on 16 Jun 2023
18 points (100.0% liked)

Functional Programming

1398 readers
1 users here now

founded 1 year ago
MODERATORS
 

I'd love to hear more about it. I'm a new grad who's done a bunch of internships using functional programming languages but didn't find a new grad position that does

top 21 comments
sorted by: hot top controversial new old
[–] cercerilla 7 points 1 year ago

I use Haskell at work. At my current job it’s my teams primary language, and almost all code we write is in Haskell. I’ve been using Haskell at work for years now, but more often as a secondary or tertiary language along side others.

Haskell, and FP generally, work well for everyday industrial programming. In my experience I’ve never found there to be an issue that was a dealbreaker- although there are tradeoffs.

That said, whenever I’ve looked for work I’ve always looked at non-FP roles in addition to FP roles because there are just fewer FP jobs out there.

[–] jeaye 6 points 1 year ago

I've introduced Clojure to my employer (very large gaming company), so I get to work with it a good amount. Some folks are using Scala on another team, too. Most folks are using Java or Go. Bringing FP to a company is tough, unless you're already senior and have a good amount of push.

I think a lot of the more senior devs who want FP have spent years writing OOP and procedural code. They did their time, so to speak. As a new grad coming in, you'll need to have reasonable expectations here. You'll likely need to do your time.

[–] JackbyDev 5 points 1 year ago (2 children)

We have a "legacy" application written in Clojure we are migrating to Spring Boot (in Java).

[–] [email protected] 3 points 1 year ago (1 children)

That's too bad. Must have been nice while it lasted

[–] JackbyDev 4 points 1 year ago

I was hired as part of the people to migrate away from it lol. I don't like it but that's mostly because I don't know Clojure well and the syntax is different enough to make it confusing to follow. I've tried to learn it but haven't dedicated the time to give it a proper shot.

[–] [email protected] 3 points 1 year ago

I'm afraid something similar is going to happen at my place of work. A lot of the top brass that was pro functional languages left during our rounds of layoffs, so I'm concerned that the ones that are left are going to decide that Java is better (easier to hire for).

[–] Welmo 5 points 1 year ago

There is a large digital bank from my country that uses Clojure in its backend. I dont know if is 100% Clojure, but i know that every Dev that they hire has to go through a training on Clojure, since its not common to work with that language in my country and they want to make sure everyone onboarding learns properly how to work with a functional language

[–] [email protected] 3 points 1 year ago

Almost exclusively. Was doing Scala for 5+ years, followed by F# now for the past 5 years. But im also doing React and sometimes node.js etc when needed.

I really love FP, although i tend to write more pragmatic code, and follow the principle of "functional core, imperative shell" rather than using imo overly complicated free monads and the likes.

[–] [email protected] 3 points 1 year ago

JavaScript, when its written well

[–] persimoirre 3 points 1 year ago

Yes - data science with R. R doesn't have to be functional, but it is fairly idiomatic.

[–] [email protected] 3 points 1 year ago

Android development has transitioned to Kotlin. In Android it's not 100% functional, but you could do most of your work that way if you choose to.

[–] kamstrup 2 points 1 year ago* (last edited 1 year ago) (2 children)

I have written a bunch of Clojure in previous positions. But it has undergone the same fate that almost all functional code bases I have knowledge of (in corporate product settings): Colleagues have hard times getting into the functional mindset, and it becomes hard to maintain. Over the years it gets replaced with some more pragmatic hybrid- og OO language.

I have seen the same with projects written in Haskell, Erlang, and Elixir.

It's all a really nice idea, but in practical reality it runs into issues with "social scaling"

EDIT: Realizing this was not super helpful. If you want to look for positions where fp can be employed I think something academia related, or a startup where there is greater technical flexibility is something to look for

[–] [email protected] 3 points 1 year ago (2 children)

What do you think is the secret sauce that lets companies like Jane Street have a 99% ocaml codebase even with 2000 or so employees?

[–] kamstrup 3 points 1 year ago

Not sure. But I think starting out early in the growth fase of the company and having a strong core of senior enginnees that can push for it and ensures everyone learns good practices

[–] cercerilla 2 points 1 year ago

The company I work for is much smaller but we’ve still grown a lot with a nearly 100% Haskell codebase (on the backend at least). For us, the main thing has been setting expectations and doing a lot of upfront training and mentoring. We hire people who don’t know Haskell or who have never done FP and put them through training. We have a lot of mentoring ongoing afterwards.

[–] [email protected] 2 points 1 year ago

Not OP, but on the contrary, I think your remark about social scaling of FP code bases was very insightful!

[–] lowleveldata 2 points 1 year ago

I have slipped in some recursions in a few of ReactJs projects. Does that count?

[–] [email protected] 1 points 1 year ago (1 children)

Sorry, not an answer to your question, but I am interested in what functional language is the go to as a grad student? Thanks!

[–] [email protected] 4 points 1 year ago

I'm not too familiar with the state of research but I've seen a lot of papers that use Haskell

[–] msage 1 points 1 year ago

I have written one HTTP benchmark in Escript. Nothing else I tried could push as many requests per second as I needed.

Unfortunately, that's it. Erlang has awesome capabilities, but I could never push it through the higher ups.

[–] MrJay 1 points 1 year ago

I currently use Common Lisp, it is considered functional but its sort of in between. I use CL to generate voxel art which is what my employer is paying for so they really don't care what I use. I also use a couple functional DSL's one of which is literally just math applied to voxels, and the other is more akin to a fancy config file format.