17 ms·
Ask HN: What is the job market like for niche languages (Nim, Crystal)?
Elixir, Nim, Crystal, Elm...
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?
- bdhcuidbebe 4y agoThere are more jobs in non-niche languages. Have you checked out anything else. C#, Java, Python, PHP, Golang, Typescript are all better than js.
- pharmakom 4y agoBetter on what dimensions? Quite the sweeping claim. Is C# better than JS for writing a web front end? It’s possible but it’s hardly better.
- bdhcuidbebe 4y agoBetter chances of finding a job.
- throwaway94439 4y agoLet me demonstrate how subjective this is with my next statement. They're all bad as none of them have algebraic data types.
- quickthrower2 4y agoTypescript almost does!
- phtrivier 4y agoThe market is obeying the law of supply and demand. Hardly anyone knows those languages, and there is no big player backing them, so you have to dig inside each community to know which shop is active. For elm, you can try noredink. For f# and closure there are a bunch of Fintech. For elixir, well, if you're willing to relocate for south west France, DM me ;)
- greggyb 4y agoFunny you mention F# and Clojure, as these were the only contenders for a product I am building with a partner. We went with F# and are quite happy thus far.
- pharmakom 4y agoF# has the backing of Microsoft and the big ecosystems of .NET and JS (via Fable). This makes it the best supported niche language and a great pick.
- phtrivier 4y agoWhat's the cross platform / native story for F# (for real) ? Can you build a relatively efficient binary that just runs and does not take an hour to open a gui window ?
- throwaway94439 4y agoI had severe performance problems with F# async, but this may be fixed in F# 6.0
- greggyb 4y agoI would be curious to hear more about this. My response to a sibling explains how we do not have huge performance considerations right now (and our i/o-bound nature). Due to the primary work of our product, we are utilizing async workflows extensively. We are on 6.0, and evaluating if we want to chase the 7 series release or just hop to the next LTS.
- mdm12 4y agoF# 6.0 added the 'task' computation expression, which is much more performant than the F# 'async' methods. It also makes interop with C# projects and libraries simpler, as is uses the same mechanism that C#'s async/await does. I have used it in production workflows without major performance issues FWIW.
- 4y ago
- nhgiang 4y agoThere is a significant Erlang/Elixir job market in Europe and UK.
- yrgulation 4y agoNo, there is not. Multiple sites report < 10 jobs in the uk for any of the two, while c#, java, node, python are in the thousands each.
- japhib 4y ago<10 jobs is still significant.
- icedchai 4y agoHow's that? 10 jobs is basically a rounding error for any other category. There are orders of magnitude more Java jobs.
- japhib 4y agoBut there are jobs, and people work in them. I, for instance, use Elixir in my day job, and so do 100+ other engineers at my company alone. I’ve also been approached by recruiters on LinkedIn for other Elixir jobs. So yes, there is a significant amount of jobs in Elixir
- japhib 4y agoThe Elixir job market is getting better in the US as well. I’m currently employed at a company that uses Eixir exclusively for backend, and we’ve got 100+ engineers. I’ve had multiple recruiters from other Elixir-using companies reach out to me on LinkedIn as well.
- jstx1 4y agoNon-existent to a close approximation (maybe more Elixir stuff out there than the others you listed but still very rare). Learn those languages if you’re interested and curious but if the goal is to get a job with a new to you language, stay as far away as possible from them. Not only are there very few jobs but also the niche languages will distract you from learning stuff that’s in demand.
- bees_buzz 4y agoIf you go looking for elixir stuff it’s there, and it seems like its usage in industry is expanding at a steady pace. IMO this is because it’s a reasonably approachable language designed to solve a common difficult problem (high concurrency, fault tolerance at scale)
- lord-squirrel 4y ago+1, elixir is being used in a lot of cool places and only growing. For example at discord, their chat infrastructure is built with elixir. https://elixir-lang.org/blog/2020/10/08/real-time-communication-at-scale-with-elixir-at-discord/ https://elixir-lang.org/blog/2020/10/08/real-time-communicat...
- AlchemistCamp 4y agoIt really amazes me how often I see this fallacy. 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.
- jstx1 4y agoNiche language means fewer companies to pick from. If I don’t like any of them, what do I care how desperate they are?
- enraged_camel 4y agoWe write Elixir at my current job.
- akudha 4y agoCould you share some more details? What kind of project is it? Did/do you hire your team who already knew Elixir, or did they learn on the job?
- oneplane 4y agoIn my experience the job market just revolves around business needs combined with transferrable skills for an affordable price. 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): - Java (Including Scala, Kotlin and Groovy) - C and C++ (usually both are found at the same company) - Python - JavaScript (including TypeScript) - Web stuff like HTML and CSS (but that's mostly generated now) - Go - Swift (and Objective-C, mostly iOS development, some tvOS and macOS) - C# be it modern or some classic ASP.NET - A bunch of application-specific languages, Apex/PL-SQL/TSQL/X++ 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 4y agoI agree with your overall point. I think the outlier might be Rust. Somehow it's managing to gain traction despite the headwinds you mention.
- frogulis 4y agoI guess it fills a niche that companies really need filled
- ghaff 4y agoA lot of it's legacy but there's a lot of C/C++ out there. So something that can be used as a system-level language and that also (for the most part) has memory safety is going to be of interest to quite a few people even if they have to learn a new language.
- BaculumMeumEst 4y agothe fact that you used the word “niche” suggests that you’re already know the answer to your question
- joe8756438 4y agoWhat is it about js you dont like? is it really about the language? 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 4y agoThe biggest detractor of JavaScript isn't so much about its language’s: - 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.
- fendy3002 4y agoI don't get most of your complains related with embedded capability or security as you've said. I'm not undermining the importance of security, but javascript is not the good language to use when you have good security in mind / to be embedded. It's like using PHP for machine learning. Sure it can works but you'll find that the language is bad (or at least is not the best if compared to some language) at it. Certainly the vast adaptation of it is an issue (like electron), but it's more on the companies side than the language itself. Hopefully there will be other javascript or typescript engine that's more suitable for backend / embedded.
- msh 4y agoAs others have said very small, especially for someone not an expert in those languages. It should be done more for interest and generally broadening your skills to make you a better developer. If you want to learn a new language to get a different kind of job start by considering what kind of job you want and then learn the most used languages in that bracket. Like c/c++ for game dev jobs, Objective C/Swift for iPhone development, java/kotlin for android and so on. For more generic dev jobs the answer would be that Java or C# would be a good place to start.
- jasfi 4y agoIt's not good for Nim, unfortunately. The language is great, but the community isn't that big. If you're looking for a web framework with an ORM for Nim, check out Nexus: https://github.com/jfilby/nexus https://github.com/jfilby/nexus
- Stevvo 4y agoI've heard good things from guys working with Nim at Nimbus/Status; precisely because the community isn't that big they have great communication with the language maintainers and can even influence future language features/development. But that is predicated on you finding a job first!
- a6chris 4y agoI wondered similar, though for Elixir not for Crystal. For the UK jobs market: https://highestpayingjobs.co.uk/it/elixir https://highestpayingjobs.co.uk/it/elixir https://highestpayingjobs.co.uk/it/nim https://highestpayingjobs.co.uk/it/nim Fair warning, it's my site - was an experiment in learning NextJS so fairly rough around the edges. I will add Crystal when back home.
- dom96 4y agowhere are you getting the jobs data from? I'm surprised there are this many Nim jobs tbh
- a6chris 4y agoyeah... tbh it's looking like a bodge on my part :( It's scraped data from four UK jobs boards, de-duped where possible but as above it's rough. Having just searched the jobs boards manually, I can see "nim" comes back with "National Intelligence Model (NIM)", so for sure that will be a false positive. Sorry :(
- jasfi 4y agoThere's also IBM's Network Installation Management (NIM).
- blocked_again 4y agoBest strategy for becoming a high paying/good software engineer would be to think of yourselves as problem solver and language as just one of the tool for problem solving. Thinking of yourselves as someone who is a writer of a certain programming language is self constarining and missing the point.
- yieldcrv 4y agoAlthough true for the job, this is a bit disingenuous for getting the job market because recruiters are absolutely not thinking of you as a problem solver with language being just one of the tools.
- dom96 4y agoPrecisely. Any good company won't care what programming language you are specifically proficient in. They care about how proficient you are in learning new things. I have created a lot of Nim projects and implemented much of its stdlib. My full-time job isn't using Nim, but the experience I gained through my work in Nim has helped my career significantly.
- akudha 4y agoAny good company The keyword here is good. Even then, this isn’t largely true. It is quite hard to convince companies to hire for a skill that you already don’t have experience in. In most cases, there are gatekeepers - those lovely recruiters who don’t know the difference between a computer and a washing machine.
- dom96 4y agoif you're optimising for those then you might as well learn whatever's most in-demand and popular, probably Python. There are plenty of companies that are good enough though, for most you won't even need to talk to a recruiter.
- icedchai 4y agoGiven two good candidates, they are going to prefer candidates who are already proficient in their tech stack. It saves time.
- blablabla123 4y agoThe jobs where niche language are used (not necessarily exclusively) seem to me more interesting but might bring other downsides like very small teams. Also if you used such languages previously, chances are the next place you start turns out to also use a niche language somewhere or be open to it. The most uncommon tech is usually not even listed in the job ad and will only be seen a few months into the job...
- egberts1 4y agoIve found that Nim has an interesting way of doing string handling, as if it is some kind of Polish notational aspect. Take part of a CSV parser, for example: if @[ ‘,’ ].split(my_string)
- Tiberium 4y agoI think you just found someone's bad code, because first of all, an efficient CSV parser would not use `split` with `if` because then the program will have to split the whole string and store all split'd string in a sequence temporarily, but second of all, Nim has method call syntax (so-called UFCS in some other languages) - https://nim-lang.org/docs/manual.html#procedures-method-call-syntax https://nim-lang.org/docs/manual.html#procedures-method-call..., so the code you wrote can just be if my_string.split(@[',']) or even (because we only split by 1 char, we don't need a sequence): if my_string.split(',') That said, you didn't paste the whole string of code as this expression is non-sensical - Nim doesn't have the same "truthiness" as Python, so if you wanted to check if there's at least two strings as a result of a split, you'd write it as if my_string.split(',').len > 1: # do stuff
- sorentwo 4y agoThere are ample Elixir jobs out there, and lots of companies hiring. 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.
- shaftoe444 4y agoI program backend Java Spring CRUD stuff. I love learning (and building) niche languages in my own time but I would always be suspicious of using these in real production. Need a really compelling case not to use something boring that just works when your job is on the line.
- auslegung 4y agoI’ve had 4 engineering jobs in 5.5 years. Two have been Elm/Haskell jobs. It took a couple of months of light searching to find my current Elm/Haskell job. 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.
- roguas 4y agoSlacks/discord and internal communities are in fact really good place to look (it was not intuitive to me till recently). Often times its the other dev that is posting info, there is possibility for some casual interaction "what you workin on?". It is way cheaper for the company to hire also (cutting all job posts, agencies etc).
- 71a54xd 4y agoDamn, how've you managed your reputation hopping so often?
- ptttr 4y agoI 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-and-experience-by-language 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-clojure-benefits.html https://jobs-blog.braveclojure.com/2022/03/24/long-term-cloj...
- casion 4y agoI 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.
- patrickthebold 4y agoI 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.
- emerongi 4y agoI was looking for Elixir jobs a few months ago. For me the number of opportunities was good enough, since the nature of the jobs was also more unique and interesting to me. Obviously nowhere near what you see with Java/JS/etc, but with those you also have to do a lot of work to figure out if the job would even be interesting to you, making the job search more stressful. 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.
- compumike 4y agoI’m only guessing, but the best path for Crystal might be to find a Ruby job (which are relatively plentiful!) and, if/when a situation arises where you need an especially high-performance microservice/component, you might be able to suggest bringing in Crystal to the team.
- AnthonBerg 4y agoFor what it’s worth, I had a job writing ReasonML / ReScript. It was a good job!
- ydnaclementine 4y agoPG has a really old (2004) blog about how python programmers are smarter than other programmers. Basically it comes down to the python programmers being ahead of the curve by learning a less popular language (at the time), and they must be using python because they believe helps build better software or whatever. Meaning they're less likely to simply be 9-5 programmers just doing it for the money, but will have opinions on language X or design pattern Y. 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 http://paulgraham.com/pypar.html
- deleted 4y ago[deleted]
- japhib 4y agoI’ve been working at a job that uses exclusively Elixir for backend work, for 100+ engineers. I’ve gotten multiple messages on LinkedIn from recruiters from other companies that also use Elixir. So I can’t speak about those other languages, but the Elixir job market is strong. 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/ https://elixirjobs.net/
- lawik 4y agoAs an active community participant and freelance Elixir dev I've been dipping my toe in helping companies recruit Elixir devs and helping devs find good Elixir jobs. There is more of both parties than I could possibly address and exhaust. All the elixir devs I know with experience are thriving. 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.
- pjmlp 4y agoUnless you're at a startup using them, hardly noticeable. It is better to pick languages based on platforms than the other way around.
- 542458 4y agoI work for an established medium sized company that is always looking for Delphi Pascal programmers for a realtime directX graphics application. Not surprisingly, this skillset can be hard to find in 2022.
- GuB-42 4y agoDoes language really matter? Any experienced programmers should be able to pick up any language in a matter of days if he knows the underlying concepts. Similarly, the language is not what makes a job interesting. I mean, what don't you like about JS? Is it the syntax or is it the environment? The code base? The framework? Maybe web dev is not for you? Maybe you are asked to do thing you personally disagree with (ex: ads). Language rarely was the main thing that defined the project, though there are correlations: if you are doing JS, you are probably doing web dev, with a higher chance of front-end work. But chances are that a NodeJS back-end and one written in, say, Elixir, won't feel much different after the honeymoon is passed. If you want something different to JS, why not try good old C instead of niche languages? It has a significant job market, you will learn about memory management, and get your foot into embedded, high performance, and system programming, far from the world of JS. These skills will translate into the other (niche or not) languages you may use next. Even in high level languages, having an idea of how that works on a lower level is a good thing.
- lkschubert8 4y agoI think "any experienced programmers should be able to pick up a language in a few days" is true for a lot of surface level things, but expertise is entirely different. A language isn't just the syntax and runtine, but the idioms, patterns, package ecosystem, and tooling that surround it, which you will likely not learn in a few days.
- pcthrowaway 4y agoIs it really expected to be able to learn even the syntax and runtime in "a few days". I've been using Javascript for 20 years and I'm still learning new things (though it helps that the language keeps changing)
- lkschubert8 4y agoYeah it's probably more accurate to say "learn enough of the syntax and runtime to write/edit code in a few days".
- hestefisk 4y agoI can tell you the next big thing is Perl … that’s where the money is…
- 999900000999 4y agoI'll echo much of what others have said, once you become a decent software engineer, the language shouldn't be a deal-breaker. Deal-breaker It does make onboarding much easier though, for example, if I join a shop that uses NodeJS I'm not going to have to ask for help getting set up. If I join a C++ shop...
- Areading314 4y agopoor
- 2c2c2c 4y agoElixir is at a different level than the other languages you've listed. I learned and built stuff for fun using Elixir around 6 years ago while in college, and dropped it on my resume in the pile of technologies I know around then. In the past 2 years, as my yoe hit 5 years, I now get the hoard of specialized Elixir recruiters who filter by 'elixir' and '5 yoe'. These amount to 75%+ of the people who contact me about jobs. A lot of startups fully bought into elixir+phoenix over the years. Most of these companies would have probably been better off using node or something, but they do exist.
- yomkippur 4y agoCurious what your TC was and # of employees. Were they all startups or were there any established companies hiring Elixir/Phoenix ? The technology is very interesting but I find that it has the same issues as clojure: limited talent pool, questionable cost/productivity gains. LiveWire is very interesting but its now emulated to a large degree in other more popular languages enough that I could put off learning Phoenix and opt for a more modular solution with popular languages.
- 2c2c2c 4y agoI've never taken any of the offers and have never used Elixir in a professional context. Most of these are small startups and can range from 100-200k + equity, and the only decision behind using elixir was probably the novelty, not beam or the success stories behind discord and whatsapp suggesting its utility for at scale throughput
- yomkippur 4y agoyeah the novelty aspect of tech is always very alluring. still remember building on top of Meteor.js and thinknig 'this is it, this is the future'
- eckza 4y agoI just got my first job as a full-time Elm (and Haskell) developer a few months ago... and it's been an incredible experience. 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/ http://elmlang.herokuapp.com/
- biztos 4y agoIf you just want something "unlike JS" it should be pretty easy to figure out which languages are in demand and pick the one (or two) that most appeal to you. 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.
- eschneider 4y agoThere are definitely positions out there, but they're not always obvious. I picked up an new embedded/backend job at the beginning of the year and they mentioned "Oh, we're doing a lot of new development in Elixir, you cool with that?" towards the end of the interviewing process. Wasn't ever in the job description before I was hired... And yes, most of the new development has been in Elixir, when it makes sense. :)
- neilv 4y agoThis question is dear to my heart, having been a pre-popularity adopter of a few language ecosystems that did and didn't become popular (including C++, Java, and Scheme/Racket). 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 https://news.ycombinator.com/item?id=23655604
- kshahkshah 4y agoNo one seems to have mentioned this at the top level... TypeScript can make a large JavaScript codebase a lot more manageable and fun in my opinion. I second Clojure if you're specifically looking for niche. If you goal though is to be highly employable I'd suggest Python
- sterlind 4y agoThere's a lot of niche languages for niche specialties. Like Ada/Spark for aviation/defense/safety-critical systems, Coq and Isabelle for formal verification, FORTRAN and Julia for scientific computing, Mathematica for pure/applied math, Prolog for logic programming/planning/expert systems, R for stats, MiniZinc and TLA+ for modeling, Racket for compiler work, etc. 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 4y agoI'd love to work with Ada some time. The language I find most interesting.
- tikhonj 4y agoMy experience has been that roles in less popular languages are rare but they also substantially help match up candidates and interesting opportunities. I've been interested in functional programming and Haskell since college and it's specifically helped me get roles I would not have gotten otherwise: • 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
- gorgoiler 4y agoIf you get a kick out of neat technology then you should be able to build your own cool stuff — libraries, tools, and the like — without needing to reach for a particular language. 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 https://m.youtube.com/watch?v=1NzR9vgCIkU
- mongol 4y agoI think you have a better chance lobbying for using those at a workplace, than you being hired for those skills explicitly.
- sam0x17 4y agoI built up Kagi's team and initial infrastructure in Crystal, and though I'm no longer with them I will say they are chugging along.
- ralmidani 4y agoLots of great discussion around supply vs. demand. As an Elixir dev, I will add that it being a niche language is also beneficial from a cultural standpoint. I want to work at a place where devs are encouraged to tinker and explore cutting-edge technologies. Not to mention a generally more forward-thinking culture, at least on the dev side. “Established” technologies like Java make me think traditional, top-down, “butts-in-seats” kinds of companies. Of course, this can’t be generalized, but I think there is at least some correlation. Besides, using enterprise Java is, at least for me, soul-crushing in and of itself.