Ask HN: What is the job market like for niche languages (Nim, Crystal)?
149 points| akudha | 3 years ago
Currently I am a JS dev, and not enjoying it at all. I looked at Elixir and Crystal, like both. But I am open to learning anything that is unlike JS at this point. How is the job market like?
[+] [-] ptttr|3 years ago|reply
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...
[+] [-] patrickthebold|3 years ago|reply
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.
[+] [-] casion|3 years ago|reply
30 years as a professional dev, and I've never been happier.
[+] [-] thebigspacefuck|3 years ago|reply
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.
[+] [-] jcadam|3 years ago|reply
[+] [-] throwaway1777|3 years ago|reply
[+] [-] oneplane|3 years ago|reply
Most business needs are a cheap version of CRUD+Business Rules.
As a result, the biggest languages (keep in mind that most businesses have large amounts of existing code) are also relatively old (except Go, C# and Swift which are relatively young).
Languages I see with my current clients and have seen with former clients and employers (medium to large organisations):
Besides "we already have it" there is the hiring pool problem. If you need to find someone for one of the above languages, the pools are generally big and available enough to find a suitable candidate in a month or two. And as such, if someone leaves you know you'll be able to replace hem.If a platform or application demands a specific language, that's used, but otherwise it's all just availability of people and institutional knowledge.
For your specific languages you might be able to find work at niche sectors like telecom appliance manufacturers, defense or academic institutions.
Edit: and Rust, which like Go, is young (but even younger) yet gaining quite some traction. Also forgot Python for a second there.
[+] [-] CoastalCoder|3 years ago|reply
I think the outlier might be Rust. Somehow it's managing to gain traction despite the headwinds you mention.
[+] [-] jtwebman|3 years ago|reply
[+] [-] salmo|3 years ago|reply
Maybe take “REST” requests for reads or POST instead of dropping on another queue/topic.
Legacy code is C/C++ and PL/SQL. Java since 1.6 or so. JS/TypeScript now for frontends.
And a ton of RPC being called a REST API.
Python is exploding for all the ML/analytics being introduced. But that’s really it’s own thing. Doesn’t read like Python in any other domain. Just a wrapper around math libraries.
[+] [-] ravenstine|3 years ago|reply
Explain? I've yet to work somewhere that just generates HTML and CSS. Is it really becoming common to spit those things out from something like Figma?
[+] [-] japhib|3 years ago|reply
Seems like there’s a lot of listings if you just Google “elixir jobs.” There are also a few dedicated sites such as https://elixirjobs.net/
[+] [-] lawik|3 years ago|reply
It is a niche and I find it a healthy one, significant and growing. If anyone wants to get into Elixir I'm happy to give it a whirl. My site has my contact info.
[+] [-] gorgoiler|3 years ago|reply
I work on a large and boring Python codebase and I don’t need niche technologies to scratch my CS / hacker itches — healing technical debt with carefully considered redesigns that delete thousands of lines of code and produce v2 of something with 10x the usefulness is what gets me excited about work.
Do you like cooking, and have you heard of Keith Floyd? He was famous in the 1980s for pioneering the travel cooking TV show, getting out of the studio and cooking on location in borrowed kitchens of French farmers, fisherman’s galleys, firesides in the outdoors as well as whichever corner of a professional kitchen he could beg or borrow. He brought French cuisine to life, on screen in situ, by working with what he had available to him and making of it what he could, all with good humour and excellent results.
It’s a nice metaphor for producing business results no matter what kind of facilities you have available:
https://m.youtube.com/watch?v=1NzR9vgCIkU
[+] [-] jstx1|3 years ago|reply
[+] [-] AlchemistCamp|3 years ago|reply
The total amount of supply doesn't matter much. What matters (both for the employer and the job-seeker) is the ratio of supply to demand.
E.g., let's say JavaScript has the most demand of any language and there are 2 zillion job openings. This sounds great for job seekers initially, but what if there are 5 zillion JS devs seeking jobs? In that case job hunting might be very difficult. Similarly if there are 100 remote positions open in Pony, but only 10 Pony devs available to fill them, job hunting might not be so difficult.
There are some liquidity advantages in absolute scale, but for the most part it's the ratio of supply to demand that matters and not the raw numbers.
[+] [-] bees_buzz|3 years ago|reply
[+] [-] auslegung|3 years ago|reply
Setup alerts on job sites, join appropriate subreddits, Slack teams, Discord servers, language-specific job sites, etc. You will find a lot more jobs than you might expect.
[+] [-] ydnaclementine|3 years ago|reply
I would imagine the python programmers had programmed in java prior, and were able to see the downsides to java versus python, so they had the full experience of why the old tool didn't work and how the new one solves some of those pain points.
PG blog because he says it much, much better: http://paulgraham.com/pypar.html
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] compumike|3 years ago|reply
[+] [-] tikhonj|3 years ago|reply
• I got an internship at Jane Street thanks to my Haskell and OCaml experience—I doubt I would have been considered at a similar company like Two Sigma
• I got onto a cool operations research/AI team at Target thanks to my Haskell experience—I wouldn't have considered them and they wouldn't have considered me without it
• at Target, I saw first-hand how using a non-standard language massively helped with recruiting highly skilled engineers
[+] [-] phtrivier|3 years ago|reply
For elixir, well, if you're willing to relocate for south west France, DM me ;)
[+] [-] rrdharan|3 years ago|reply
Is this just because people forget which platform they’re on? Is it because they don’t remember what’s in their profile? Or is there some other way to DM people that I don’t know about?
[+] [-] yomkippur|3 years ago|reply
that itself is a huge turn off for many developers who don't speak French. You will face discrimination even if you speak fairly fluent level. Not to mention the insane income/corporate tax brackets.
Unless you operate directly with the French market, there is little to not reason to move there to do a startup or start a career there.
Many young French citizens have left it and they are not coming back. Brain drain is very real there.
[+] [-] greggyb|3 years ago|reply
[+] [-] sorentwo|3 years ago|reply
For a quick check of relative popularity, open the past couple monthly “Who’s Hiring” here and search for “Elixir.” The community is thriving and growing.
[+] [-] sterlind|3 years ago|reply
Ideas in these fields come through clearer/more cleanly in these languages. Learning the language is easy, the field is harder, but ideas of the field are reflected in the language.
[+] [-] EddySchauHai|3 years ago|reply
[+] [-] jasfi|3 years ago|reply
If you're looking for a web framework with an ORM for Nim, check out Nexus: https://github.com/jfilby/nexus
[+] [-] Stevvo|3 years ago|reply
But that is predicated on you finding a job first!
[+] [-] biztos|3 years ago|reply
If you're particularly into obscure languages, I suggest getting involved with the language community (meetups, open-source projects, etc) because for the less-popular languages the community and the employers have a lot of overlap.
[+] [-] 542458|3 years ago|reply
[+] [-] joe8756438|3 years ago|reply
a lot of the complaints i hear about js have more to do with “the community”, “the team”, “the application”.
here’s the thing: there is _so much_ built in js. i think theres a better chance you find what you want in a mainstream language (js or otherwise), but you first have to identify what your values are.
[+] [-] egberts1|3 years ago|reply
- lack of strong typing (unlike Ada),
- lack of a standard framework (VueJS, NodeJS, Angular, React, Ember, Mithril, Aurelia, Backbone, Polymer)
- lack of consistent control of packaging (embedded or HTTP[S]),
- lack of consistent naming convention (wild west of competing function names, unlike libc library to name one language),
- lack of unit testing (JS? nah),
- lack of correctness for thread procedure theorem (unlike Nim, Ada),
- lack of memory access security (unlike Rust),
- lack of JMP/goto at lower intermediate representation (LIR) level (unlike many programming languages) thus making direct LLVM more difficult and the least portable.
- lack of robust error handling (unlike many)
JavaScript is a runaway language with not much forethoughts being put into server-side security that continues to must have
- a wider access to local filesystems,
- a large, shareable memory block capability set that allows for JIT switching between executable and writing, heap-spraying for kernel addresses, SPECTRE-like capabilitiies (that will continue to be fileless malwares’ favorite haunting ground for decades to come).
JS did however introduce a “stack-less” just-in-time compiler that is small enough to get embedded into so many things (my pet peeve is JS of LG smart-TV that is still borked to this day) that no one single anti-virus company can ever hope to cover all those bases.
But it’s common, and wide-spread, thus got its adoption rate going for it (much like BASIC variants did during multiple decades) but it sure ain’t going to be healthy.
Of course, just flapping off my mouth here toward the incoming tsunami of flotsam against my hardcore cybersecurity values.
[+] [-] FractalHQ|3 years ago|reply
[+] [-] emerongi|3 years ago|reply
I didn't need to do hundreds of interviews (like I've seen others do) and instead just picked between a few cool companies. It was quick and easy and I found a place that I so far love.
[+] [-] neilv|3 years ago|reply
You can search job listings on LinkedIn, Angel.co, etc.
But if it's only a small number of search hits, also consider the possibility that even some of those might not be genuine opportunities, so you have to look at each one. Examples of why:
* A hiring manager/lead is an enthusiast of the fringe tech., and the kinds of people it attracts, but not actually using it. Or not an enthusiast, but has heard it's a way to get the attention of some of the best developers. (I have done this, and been clear about it.)
* Startup (maybe more likely to choose fringe tech because the tech cofounder happens to know/like it) that is trying to look like they're doing well enough to be in a position to hire, when they're not yet.
* Recruiters trying to keep the funnel full, so candidates ready as soon as openings available.
* Mandated postings, when the org already knows it wants to hire or promote a particular person, so that person's resume gets turned into an overly-specific job post.
* (I've not confirmed this one in the wild, but it's similar to other growth hacking, and you could see how it might appeal in a market heavy with resume-driven development.) Promoting some tool or platform by faking job posts for it.
Note that this doesn't mean the fringe platform is without merit, and sometimes the merit is self-defeating. The norm in one fringe ecosystem I was involved with, on the rare occasion an established company used it, was for one super-productive person to quietly do a team's worth of work, and... the org never really needed to hire more. (And if that established company got refocused on faster growth, then an MBA is probably going to think they need to switch to a more popular platform, so that they can hire a large number of people "who can hit the ground running", fast.)
Maybe also relevant: consider the risks of investing career in a fringe ecosystem, which was the topic of my first Ask HN post (from an engineering lead ethical perspective): https://news.ycombinator.com/item?id=23655604
[+] [-] nhgiang|3 years ago|reply
[+] [-] japhib|3 years ago|reply
[+] [-] yrgulation|3 years ago|reply
[+] [-] eckza|3 years ago|reply
Those of us who love this language and want to see it succeed are highly invested in creating more Elm jobs.
Jobs pop up in the #jobs channel pretty often in the Elm Slack. I interviewed for several before finding the perfect fit.
http://elmlang.herokuapp.com/