Hacker News new | ask | show | jobs
by ptttr 1429 days ago
I do definitely recommend Clojure - I've switched to it in 2019 coming from Rails and JS and never looked back.

Clojure's job market is great, there's no shortage of offers, even for newcomers and it has been the top paying lang in stackoverflow surveys for years https://survey.stackoverflow.co/2022/#section-salary-salary-...

However, the most important part is that Clojure is a very powerful piece of technology that made me reevaluate what software engineering really is. You can efficiently use Clojure for both backend and frontend with easy access to libraries from JVM and npm so you will never run into the problem, common in other niche langs, of too few libraries. Nevertheless, Clojure's own ecosystem is filled with many great, cutting-edge ideas that you wouldn't find working so well elsewhere. The community is very welcoming, growing and diverse with people coming from all different programming backgrounds - all sharing the disillusionment with other programming languages and determination to find and build a better way.

https://jobs-blog.braveclojure.com/2022/03/24/long-term-cloj...

5 comments

I love clojure, and would love a clojure job, BUT my hesitation comes from the companies choosing clojure or any niche language. Choosing a niche language seems like a very risky move, to me. My fear is that that its a small company and someone senior and technical (CTO?) just wants to have fun in a new cool language because they are bored.

Don't get me wrong, I also want to have fun in a new cool language because I'm bored, but that's not a good decision for a company to pick that as a tool.

Anyway, I'm worried that the culture is not entirely practical in their technical decisions, and that's my hesitation.

You may be right about many companies’ decisions, but I will say that Clojure is a very practical language. I think you’d just need to ask them why they chose it, and decide for yourself if you think it was a wise decision.
Ask them during the interview stage.

Sometimes a strange/obscure language is the correct choice for a very good (and fun/interesting!) reason.

I understand your worry, but I've had a quite opposite take on this.

I think we can agree that it's not that hard to find ANY job as an experienced developer. However it's much more difficult to find a great, satisfying job. For that you need to navigate around a lot of corpo-bullshit type of projects, and Clojure has served me well as a useful filter in doing that. My reasoning is that Clojure is niche enough that when company is using it, you can assume that it's due to a deliberate technical choice, and not just because of its popularity. That tells me two things that are symptomatic, in my opinion, of a healthy tech company culture: - tech decisions are made by engineers, not by top-level executives, - their conclusions and bets align with mine because we all see and agree on Clojure's edge over more popular solutions.

Admittedly, there's always a risk that someone just followed the hype and got out of their depth but I think this risk is relatively small, because Clojure's no longer a new kid on a block and choosing a tech stack is a major decision and usually done by senior tech leadership, hopefully less hype driven.

Of course, Clojure is no silver bullet and it's just a tool that gives you enough rope to hang yourself. Messy codebases are just as possible as in other languages, especially when the team is new to lisps that are very different from mainstream languages, but that's a nature of software development - you learn with the experience. I do cringe when I look at the Clojure code I wrote when I was just starting and wasn't fully grasping Clojure's way of thinking, but the more I use it, the more I come to appreciate how powerful it is.

Great intro that made it click for me: https://www.youtube.com/watch?v=vK1DazRK_a0 (Solving Problems the Clojure Way - Rafal Dittwald, 2019)

Having said that, no software project is ever complete and so isn't Clojure as an ecosystem. The tooling is constantly evolving and new patterns are emerging. What's great about Clojure open-source community is that everyone seems to share the desire to harness complexity and Rich Hickey has convinced each one of us at some point that the way to do it is through simplicity https://www.infoq.com/presentations/Simple-Made-Easy/

Even within Clojure's community there's a diversity of approaches, and I think it's necessary to improve and evolve. The more recent trend, I've noticed is that the community is converging at Data Oriented Programming that's applicable in other languages as well, but has always been at the core of Clojure's mindset that is especially well suited for it.

Dropping some links relevant about DOP: https://youtu.be/8Kc55qOgGps?t=4175 (Rafal Dittwald, “Data Oriented Programming” 2022) - whole talk is valuable, but long so I'm linking to the most juicy snippets) https://blog.klipse.tech/dop/2022/06/22/principles-of-dop.ht...

Moreover, Clojure has already grown past the threshold of being just a niche toy and has sufficiently big market that it won't die off anytime soon. When you study history of programming languages, you'll notice that it's enormously difficult thing to do for an emerging player, especially without big corporate backing. And Clojure is as grassroot as it gets: https://clojure.org/about/history

I can second this. I've worked in the industry in academia, enterprise and industrial. Switching to Clojure not only has me at my highest salary ever, but I'm consistently working with some of the best people I've met in my entire career. The community is incredible, the job market is open and the people who seem to be attracted to the ecosystem are fantastic engineers and generally great people.

30 years as a professional dev, and I've never been happier.

The SO chart shows Erlang is actually highest at $120K salary. Also note the median years of experience is 13. Making $110K after 13 years is not all that great. The chart would be more useful if it showed a trajectory over time for each language. Overall I don’t think this chart should influence anyone’s decision to pick a programming language.

I worked with a few teams using Clojure and there was nothing magical about it. One of the Clojure teams’ API was very thoughtfully done and reliable. Another Clojure team s’ API was a mess and caused loads of issues. I suspect the first team chose Clojure organically and the second team picked it due the SO salary.

The problem is that learning a niche language like Clojure should demand a higher salary but it doesn't. Companies realize they can get an existing experienced developer to learn it. It's also not wise to jump ship to a niche language like this unless you really have the funding for it and even then, the talent pool is much smaller and you find yourself its not an employers market in that niche.

So as a business owner by choosing clojure:

- I can't afford to lose experienced clojure devs but my budget is fixed

- I am going to be constantly requiring onboarding, training existing non-clojure devs

- I simply cannot reverse this decision.

To me the third point is the biggest risk but back to your point, it can become unmanageable unless you have the best and the brightest.

In any other language, you could still operate the business with middle of the pack but with these niche languages the risks are just much higher. It would require a Product Manager or even a CTO with extensive clojure background and those would be even harder to find and keep.

Like the SO survey shows, not everybody is willing to pay top dollars for a clojure dev and this should make anyone pause before jumping into it.

I personally liked clojure but the tooling was still painful like working with Java. Readability wise its a nightmare and if your entire team quits, there is a very good chance your business will fail, as it is that much harder to scale up your team or find experienced talent who now feel they are owed a much higher wages (which they should).

Nim on the other hand is more promising. It doesn't have any radical shifts, it still reads like Python and its very fast. But it doesn't even show up in the SO survey which makes me think its far too early.

I've heard the argument that using niche tech is a good way to retain good engineers who you'd pay a lot anyways
The Haskell community refers to this as "the Haskell tax," although I think all niche languages suffer it.
I was one of the few professional F# devs at a time when F# was ranked #1 in pay (though that wasn't why I used F#). Spoiler alert: The pay difference is not large enough to be worth making a career decision off of. Use the languages you are the most happy with. Niche languages that get paid well don't seem to have a steady spot on the list.

You can't get paid the big bucks if you get forced out of a job for poor performance, and in this economy, expect that to be a real risk.

I'm using Clojure at my day job as well. Though, my employer is not on the list there.
These salary numbers in the survey are so low it seems like a joke.
As the other poster said, it's due to other countries confounding the data. Check this for example: https://survey.stackoverflow.co/2022/#section-salary-salary-...

You can specify the location - the salaries are more inline with what you'd expect if you select the USA. Also note that 8,540 of 37,546 respondents are from the US - so MOST of this data is not relevant to the USA.

My guess is that the salaries of developers outside of the US, and western countries, pull down the averages
Almost any other western country other than the US and Switzerland will massively pull down the average. Especially in the US salaries are extremely inflated. I know academics in physics who are effectively chained to the US because they are so used to the huge amount of money. In Germany for example you cannot expect to make more than 70k euro max, probably more like 50-55k euro a year even as a senior software engineer. I don't think a lot of americans appreciate how vastly inflated american wages are
Ok, having recently worked in Germany its a bit overexaggerated. I think now, senior engineers can be reaching 80-110k quite easily. Secondly, american wages are not inflated but are high due to original demand being in US.
Where did you work in Germany? I've never heard of a 100k wage. My wife is a senior design engineer and she makes 55k in Hamburg
Salaries in the eu is most def. Lower than us, but earning 100k with a couple years experience is pretty common in London/Berlin/Scandinavia etc.

Biggest difference is that not a lot of people are earning 200k+ salaries in eu.

100k in Berlin is pretty extreme, Scandinavia and London I can see it more. I live in Hamburg and 100k is basically unheard of.
In Europe, good money is in contracting. For senior devs, salaried jobs are for people who for some reason won't switch to contracts (e.g. they're immigrants and need a full time job for visa purposes)
> Especially in the US salaries are extremely inflated.

Funny way to spell "fairly compensated".

I didn't spell it wrong, you are suggesting a different idea. Own up to it rather than using a lame linguistic deflection tactic.

It is beyond fair compensation, because the standard of living is fine in Europe, even though I know a lot of americans think we live in squalor. The pay in the US is beyond what can possibly be expected in other developed countries.

You'd be singing a different tune if you were a US citizen with our complete lack of socialized safety net, inadequate health care system, etc etc.

I'm sorry as a non-US citizen that you're so poorly compensated, but clearly the market and corporations can afford to pay much better than they do in Europe.

If I as an Engineer bring in $1M to the company in a year, and I make $50k a year. Where did that other $950k go? Sure there is some overhead: taxes, hr, accounting, management, etc. But the fact is that in the US engineers are currently just getting more of the share of value that their labor created. European developers should be fighting tooth and nail to get more.
How is it fair to only compare raw salary numbers? There is nearly zero safety net in the U.S. Two weeks paid leave at best, you're expected to work long hours, healthcare is a mess... Compared to Western Europe, where there is affordable healthcare, saner labor practices etc.
I have no idea why, but it seems like software engineering salaries in the UK (from what I've seen in job listings for remote work as an American) are near the lowest in the first world (yes, even when adjusting for GBP/USD exchange rate).