15 ms·
The Niche Programmer
- rramadass 4y agoThis is the model that i have always advocated. My personal preference is for C/C++ and now adding Erlang to it. Develop your system architecture using Erlang and its powerful Concurrency/Reliability features and drop down to C/C++ for specific modules.
- ValtteriL 4y agoI got similar focus. Do you work with Erlang? It seems that all BEAM work on LinkedIn is Toptal Elixir positions...
- rramadass 4y agoI have not yet gotten the opportunity to use Erlang at work mostly because of an abundance of caution. As you mention, it might be worthwhile for us to learn Elixir too for job opportunities; If you are looking, advertise on the "Erlang community" channels - https://www.erlang.org/community https://www.erlang.org/community. Use also a Google Search instead of just on LinkedIn which will will give you leads from other job sites. I was also looking at using Erlang in embedded space and came across https://www.grisp.org/ https://www.grisp.org/ which is pretty cool.
- bhedgeoser 4y agoIs mayonnaise a niche language.
- ducktective 4y agolol https://youtu.be/d1JA-nh0IfI https://youtu.be/d1JA-nh0IfI
- aitoehigie 4y agoCan Elixir be termed a "niche" language? I started using Elixir last year after being a long-time Python dev. Apart from the pros of using a niche language as espoused in the OP write up, the downside I see can be the lack of community, 3rd party libraries and tools and lived experiences which could be discouraging.
- Borkdude 4y agoI think Elixir falls into the same category of Clojure when it comes to "niche". However, my experience with Clojure is that the community is small but tight-knit: you can usually easily reach library authors in case there are issues and discuss things on Clojurians Slack. The libraries usually adhere to "don't break" like Clojure itself and when there isn't a library for a specific problem, you can drop down one layer to the host system where there is usually a library for everything (Java, browser, Node.js, ...). So although Clojure is fairly niche, you can use a wide array of mainstream libraries to solve problems.
- alienfunk 4y agoMy experience with Elixir has largely been the same, to be honest. I’ve managed to speak with lots of well known library authors just by messaging them on the elixir slack. The creators of the language and the dominant web framework, Jose Valim and Chris McCord respectively, are well known for popping in on threads, conversations, and GitHub issues all over the place. Elixir libraries are also pleasantly backwards compatible in my experience (with the occasional exception to be sure). At my company the effort required to maintain currency has been 1/10 that of Ruby in my experience. I frequently hear that elixir lacks the 3rd party library support of Ruby. If you use sheer quantity as the criteria, then definitely, but in the 6 years I’ve been using Elixir, this has interestingly never gotten in my way. I’ve always either been able to find a library or the problem simply isn’t gnarly enough to deserve a library. Maybe I just haven’t picked the right problems with which to experience this lack though :). All that to say I think Elixir and Clojure are very similar in these regards!
- rainygold 4y ago
- mikewarot 4y agoIt makes me wonder if I've waited sufficiently long for Pascal to be a Niche language again yet.
- dole 4y agoThere’s still a pretty good niche for maintaining and porting Delphi… new dev probably not so much.
- fm77 4y agohaha, I just found [1]: (very nice I might add) Program PowerPascal; {$X+} { Who: Michael Warot When: November 12,1989 (my 26'th Birthday!) What: The beginnings of a language compiler, takes source from STDIN, and generates Assembler Source for STDOUT } pp002.zip Power Pascal v0.002 (c) 1993 by Mike Warot Its a very old OS2-oriented Pascal compiler. Source: .pas (Borland Pascal) Output: .asm (32-bit => Masm 6.0 + Link386 = > lx .exe) Documentation: comments in English [1] http://www.exmortis.narod.ru/comp_src/pp002.zip http://www.exmortis.narod.ru/comp_src/pp002.zip
- cutler 4y agoAnother benefit of legacy niche languages, such as Perl, is less ageism. Clojure is a real joy to work with. Ruby is in an interesting phase approaching niche status with correspondingly high rates.
- PainfullyNormal 4y ago> Ruby is in an interesting phase approaching niche status with correspondingly high rates. native iOS in objective-c is getting there too, I think. I see a lot of job listings for it with surprisingly high rates considering everybody is supposed to be shifting to Swift.
- MAMAMassakali 4y agoI have not seen such listings for a couple of years now, where do you find them?
- ardit33 4y agoYou haven't been looking at all! Most large companies that pay pretty well still use Objective-C. Meta, Google, Snap, Netflix... etc... and of course Apple. The others do still have lots of Objective-C, mixed with Swift (eg. Linkedin, Reddit, etc, slowly transitioning to Swfit). Airbnb and Uber are the only one that use mostly/exclusively Swift from the Faangmula companies. Most small Startups, that were started after 2016 use mostly/only Swift, but most large companies still do have a lot of Objective-C code.
- samsk 4y agoYeah, Perl - thats my niche language. Most interviews are like, 'You know Perl right ?' followed by 'When can you start ?'. And even though the number of openings is small, the pay is good enough to overcome few weeks/months of unpaid vacation if needed ;)
- marttt 4y agoI assume these are Perl 5 jobs, not Perl 6?
- codevark 4y agoCheck out Red (or Rebol).
- zabzonk 4y agoYeah, there all sorts of niche languages out there. Back in the 1980s there were lots so-called "fourth-generation languages" - 4GLs out there. Two that I used were SeaChange, which was for Unix & MSDOS - see https://techmonitor.ai/technology/seachange_launches_seachange_4_for_rapid_unix_ms_dos_development https://techmonitor.ai/technology/seachange_launches_seachan... and Nomad/2 on IBM mainframes - see https://en.wikipedia.org/wiki/Nomad_software https://en.wikipedia.org/wiki/Nomad_software. Both were quite capable (particularily Nomad) and you could earn quite a bit of change if you knew how to use them. Oh, and while I'm thinking about it, knowledge of how to program a Transaction Processing Monitor) will rarely go amiss.
- crdrost 4y agoFor those who are wondering, the best description I have seen is on wikiwikiweb, https://wiki.c2.com/?TransactionProcessingMonitor https://wiki.c2.com/?TransactionProcessingMonitor The essential idea is apparently to have a central server which does not know your application code directly, spawning workers—application code processes with some communication protocol. The supervisor can then have better uptime guarantees because it doesn't crash when application code crashes. With some more tweaking (what tweaking exactly?) the supervisor is able to enforce transactional consistency: if a worker crashes, we can roll back any partial updates it was doing. Is that about right? Would be interesting to know about your “how to program” comment in greater detail. Do you mean just the idea of buffering client connections and maintaining a worker pool? Or is there some hard problem around transactionality that needs to be solved and a particular perspective for it? Both? Neither?
- zabzonk 4y agoThe last TP monitor I used definitely had a programming API, but I'm afraid that I've been retired from programming for so long now that I can't remember how I used it :-( You definitely had write code (or at least config files) to tell the thing what sort of transactions to monitor.
- jonahbenton 4y agoTuxedo is a good example of this type of system. Code interacting with Tuxedo generally written in Cobol but libraries would be available in other languages like C. To start to understand this, think of a world where * http and webservers do not exist * sql and databases do not exist * ram is measured in kilobytes * storage measured in megabytes * there is network connectivity but tcp/ip is not pervasive and there is no dns * files exist and there are myriad wonderful binary data storage formats There are so many other weird things but best just to dig into the docs: https://docs.oracle.com/cd/E72452_01/tuxedo/docs1222/pcb/pbint.html https://docs.oracle.com/cd/E72452_01/tuxedo/docs1222/pcb/pbi...
- ris 4y agoWay back when python was seen as esoteric this became known as "The Python Paradox" http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html
- delijati 4y agoExactly, that is why i feel the need to change to something more esoteric after 17 year of Python. Maybe nim? Any suggestions are welcome ;)
- askonomm 4y agoI hear great things about Nim and also Zig. I'd say check what the market is like for those (ie supply and demand) and go wild!
- jstx1 4y agoThere’s hardly any market for Zig and Nim though.
- matthewfcarlson 4y agoI’ve been playing around with Zig and could see myself getting into that niche if one develops.
- roguas 4y agoThe clojure which started the article your reply to seems very like the thing to check.
- throwawayelixir 4y agoElixir. Just be warned, one you learn it there's a good chance you'll never want to python again. I have a track record of picking good pls:. I picked ruby (2003), Julia (2009), elixir (2015), and most recently zig (2019) and no others.
- anonymoushn 4y ago
- charcircuit 4y ago>Anyway, this is all to say that being a niche programmer is not bad at all. Pay is great, competition is low and the interview processes for the most part very humane This is NOT true of all niches. The pay will only be great if the demand for programmers in that niche is high.
- askonomm 4y agoThat's true, perhaps I should've clarified that in the article. There's a lot of languages out there that are very niche and have virtually no jobs for them (especially very new languages), so some market research is of course required before deciding on one.
- rullopat 4y agoIt would be great to have a website where you can see, more or less accurately, the ratio between niche jobs and niche programmers for a specific language.
- slothtrop 4y agoIndeed. Niche is a fairly large umbrella. If no other shop is using the technology you work with, nor wants to, then what would they want from you? At best you could argue "transferable skills" - but since they can otherwise get someone with all the experience on their checklist, your competitive value is nil. Should you be an exceedingly niche programmer, you're valuable because you're more difficult to replace. Leaving is also difficult, so there is the balance.
- weatherlite 4y agoUnfortunately it's not always the case - at least not with Ruby (which I consider somewhat nichy). My experience is the Ruby job interview is just like any other algo/Leetcode type interview - in 90% of interviews they don't bother testing my Ruby knowledge (very likely the interviewer doesn't really know Ruby that well). Maybe 2 companies out of 15 had actual Ruby questions. So maybe Ruby is not niche enough or the hiring company thinks it's no problem teaching someone Ruby, idk. But I'm surprised again and again how little companies care about my actual experience. It's all algo questions or something about deployments/Kubernetes.
- mkl95 4y agoI'm a developer who mostly works with Python and I recently interviewed for a position that seemed to mostly involve Ruby on Rails. I was genuinely excited about working with Ruby, but the interviewer said they are struggling to hire Ruby developers and they are now hiring Python developers instead. It seems to be niche enough that small companies can't afford it.
- weatherlite 4y ago> It seems to be niche enough that small companies can't afford it. That's going overboard - tons of small companies use Ruby, but yes its way easier to find someone who already knows Python than it is Ruby.
- hsn915 4y agoRuby is very much main stream. Any non-programmer business type who wants to start a startup immediately think it should be in Ruby or Python because that's what he think is the most popular thing.
- weatherlite 4y agoIt's not niche like Clojure but nowhere near as mainstream as Java/Python. It's somewhere in the middle - maybe about the same adoption as Kotlin/Swift or something like that. I guess you can define it as semi-popular?
- thrower123 4y agoThere's always alpha in anything that provides enough signal to flip the bozo bit to off.
- steveBK123 4y ago100% My company is in the process of switching from niche language to Python. The problem is that niche language was a good proxy for "people who have been in the industry / have a lot of domain knowledge / etc". So our hit rate with the Python dev interviews is like 1/10th of what we had with "niche language" so yes mainstream devs are easier to find, but they are 10x as hard to filter. Further the original excuse was that niche language devs were expensive, but by the time we find a python dev who actually has any domain knowledge & experience, we are paying the same.
- mwcampbell 4y agoWould it be feasible to lower the hiring bar and set things up so that your company can use some of those plentiful, less experienced, less expensive developers to do some of the straightforward gruntwork that comes with any project? I suppose that's harder to do with Python than it would be with a statically typed mainstream language like Go or Java, since a static type system provides another way of guarding against mistakes. But maybe Python with enforced type annotations as part of the CI process would be good enough.
- thrower123 4y agoNo, this is just not how developing software works. Throwing more lower-skilled people at a project just makes it move slower and reduces quality.
- mwcampbell 4y agoMy hypothesis is that not all tasks in a software project require the same level of skill or domain expertise. Context: I'm the technical cofounder and (currently) sole developer of a tiny company developing SaaS applications. The core of these applications definitely does require my domain expertise. But other things, like the purchase UI and account administration, just require one or more programmers with adequate skill and a strong, reliable work ethic to deliver (and maintain!) good enough implementations. Perhaps this suggests a two-language approach for such applications, with the domain-specific core being written in a more niche language. But polyglot projects bring their own complexity that makes it harder to eventually hand off maintenance.
- MarquesMa 4y ago> leetcode is fairly rare Most of the interviewers don't even know to solve those leetcode problems in an optimal way with Clojure. It might vary if the programming language is not functional.
- paulluuk 4y agoI think it's also good to mention that actual production code is _rarely_ ever about being optimal. Making something that actually works, can be easily understood, and rarely ever breaks is much more important in almost all cases. There are of course performance requirements for almost any project, but whether your service requires 1 ms or 3 ms in production matters a lot less than whether or not your colleagues can actually understand your code.
- xphos 4y agoI think it's miss leading to think optimization is about cut a Ms or two. The only realistically important optimization is bring you big O down. That and understanding when big O doesn't matter for your problem size. As a c dev one of the biggest mistakes I see is some optimizing to get better instruction generation but using shifts instead of divides or things of that sort. If you optimizing like that you probably spent more compute time optimizing than your optimization will ever safe. Plus like the complier in C at least handles that for you.
- codeflo 4y ago> That and understanding when big O doesn't matter for your problem size. For example, an extra factor of log(n) is hardly ever relevant, constant factors are almost guaranteed to dominate there. On the flip side, people are also sometimes surprised to see how quickly an n^3 algorithm becomes infeasible even for very modest data sizes.
- paulluuk 4y ago> The only realistically important optimization is bring you big O down. That and understanding when big O doesn't matter for your problem size. Of course, understanding big O is still very important and being able to apply it to real-world problems instead of just online code puzzles is even more important. But I think it's importance is a bit exaggerated in the coding community, when there are arguably much more important skills for engineers such as building good relationships with your colleagues, knowing when to cut corners to get work done on a deadline, and knowing how to negotiate salary and promotions.
- TheMagicHorsey 4y agoSo does HN think Dart and Flutter are niche? What about Erlang?
- the_only_law 4y agoI was actually expecting to see more Erlang work available. I knew it wasn’t a big language, but nowadays I feel like I’d have a better chance landing a job working on Haskell than Erlang.
- bicx 4y agoI think the problem with less Erlang adoption is that Elixir has a connection with more modern languages and a more forward-looking community (at least in my experience). I wrote Elixir for 4 years until I got my current job, and I never really felt the need to write pure Erlang, so I never learned more than I needed to simply read Erlang code. Haskell offers something unique in that is a much more academically-modeled functional language. Personally, I like the OTP model better, which then lets you take your pick of a BEAM-compatible language.
- alhirzel 4y agoIs Julia a niche language at this time?
- the_only_law 4y agoI’d say yeah, and unfortunately I don’t see Julia dethroning Python or shudder Matlab anytime soon though.
- pjmlp 4y agoDepends on the domain, https://juliacomputing.com/case-studies/ https://juliacomputing.com/case-studies/
- pbronez 4y agoI’d say so. My gut says it’s running in 4th place for data analysis behind Python, R and MATLAB. I think it’s strong enough to grow beyond that on the merits, but Mathworks won’t go quietly and both R and Python have strong ecosystems.
- account-5 4y agoI program in a niche language that makes my life easier at work as a non-programmer. It won't get me any jobs though.
- amon22 4y agoLet me guess, VBA?
- trinovantes 4y agoThe problem with having a niche is that nobody can replace you so you're stuck working on the same thing forever
- askonomm 4y agoWhat if you really like that niche? That said, with Clojure I can do React.js, Node.js, JVM and, as of recently, even Dart/Flutter development. Within each of those there's a vast array of things that can be done as well, so it really should not get boring anytime soon.
- thom 4y agoYeah, cljfx is nice for desktop stuff. The data science ecosystem is actually coming together slowly with the tech.ml ecosystem. Deep Diamond is super clean and fast for low level deep learning stuff. And then you have Babashka which can give you a ton of value around scripting and automation. Really hard to build and scale a team around all this though.
- askonomm 4y agoTonsky is working on Humble UI for desktop stuff that I'm very excited about: https://github.com/HumbleUI/HumbleUI https://github.com/HumbleUI/HumbleUI
- thom 4y agoNice, I remember the initial blogpost but haven't followed progress. There's definitely friction working with JavaFX but you get so much for free. I don't have the aversion many Clojurists seem to have to accepting the bounties of the Java ecosystem, and I've been around long enough to be slightly leery of pure Clojure libraries that fail to reach critical mass (which, if we're totally honest, is almost all of them given enough time).
- kyawzazaw 4y agoThere are a couple of startups that does use "niche" languages/tech-stack. (the examples I am going to list might be arguable on the description of "niche") - Amperity uses Clojure ($1bil+ val) - Mercury uses Haskell ($1.6bil val)
- paulluuk 4y agoBesides niche languages, there are also niche roles. For example, Data Engineers and DevOps Engineers are both in low supply and high demand. I've worked at two companies (Apple and Spotify) that I'm pretty sure I would never have been able to get into as a "common" engineer or data scientist with thousands of other applicants for the same role.
- mahathu 4y agoWhat does a data engineer do?
- papandada 4y agoPreviously known or associated with terms such as ETL or ELT or data warehousing or ... In my experience tends to be involved heavily with databases, data movement, data modelling. You might think of it in terms of the work that needs to be done before data analysis is possible. Though as with many things in data, labels are imprecise and considerable overlap.
- beckingz 4y agoSuffer mostly. Joke aside, data engineers do a wide variety of engineering work related to data. Often that's around data warehousing and business intelligence, sometimes it's work on big data streaming or storage systems, or building yet another integration for marketing. The breadth is a challenge, which makes it fun and also hard.
- papandada 4y agoNo, you had it right the first time. It's fairly dull, monotonous drudgery. It's not fun , at least for any unconstrained definition of fun, for the majority of work that needs to be done. I speak as someone who does this for a living for over 10 years. I'm in such high demand as an independent contractor I think about starting a consultancy but one of my big concerns is how to recruit people with a high tolerance for blandness, ambiguity, as well as high conscientiousness. I think the subject matter is not difficult but the personal attributes required to persevere and succeed are rare. For me it's been the "muck is brass" career approach.
- ChrisMarshallNY 4y agoI like that story, and wish the author luck. I never thought of myself as a "niche programmer," but, as it turns out, I sort of, am. I write native UIKit applications, using Swift. No PWAs, no hybrid systems (like React, Electron, or Ionic). I'm pretty good at it. I've been writing Swift, every day, since it was announced in 2014. It's no longer an "edge" language; it is now the baseline, mainstream, native development language for Apple systems, and I'm a fluent speaker. It means that the apps I write are really small, really secure, really fast, accessible, highly usable, use very few system resources, leverage the latest Apple tech, have almost no external dependencies, work extremely well, and I write them very, very quickly. Also, because they are UIKit, I can get pretty ambitious, as UIKit is a very mature, ship-oriented system. I am looking forward to using SwiftUI, but am yet to be convinced that it is suitable for really ambitious projects. It's really difficult to find other native Swift developers that work the way that I do. Part of that, I hate to admit, is probably because I'm 60, and I got really sick of sitting in meetups, with a circle of avoidance around me. I have come to understand that I have "cooties." I won't go where I'm not welcome. But I have also come to realize that an awful lot of apps for Apple systems are written using hybrid systems, and that many folks are unaware that there are Apple app development languages, other than JavaScript.
- mwcampbell 4y ago> the apps I write are really small, really secure, really fast, accessible, highly usable, use very few system resources, leverage the latest Apple tech, have almost no external dependencies, work extremely well, and I write them very, very quickly. And they're only available for one proprietary platform [1], no? Excluding half of the user base for phones (in the US), and probably much more for personal computers, seems like a really bad business move in many cases. And depending on the type of application, it could be considered a different type of accessibility problem. It's depressing, but so often we have to compromise technical excellence and even user experience for economic reasons; in this case, using a cross-platform technology to develop a suckier app that can reach all host platforms is often the smart business move. [1]: Well, one platform for each form factor.
- ChrisMarshallNY 4y ago
- lom 4y agoDoes HN think nix is niche? And would the pay also be higher, as described in the article?
- mahathu 4y agoI guess I'm also sort of a niche developer specialising in web scraping/data extraction. I've been getting some gigs on upwork but been meaning to get off that platform. Does anyone in a similar position have advice on finding clients?
- elorant 4y agoYou need to build a service. Like extract data from e-commerce sites, and then provide a search engine with pricing information. Or track new products. Generally speaking extracting data isn’t the hard part. The hard part is organizing it and presenting it in a meaningful manner.
- markus_zhang 4y agoI guess the most difficult part is to get in the niche. Someone accidentally hit niche and discovers a whole new world.
- askonomm 4y agoDefinitely! I stumbled upon a happy accident, really. That said, if you'd like to try Clojure for example, quite a few companies are hiring without any prior Clojure knowledge. Though, functional programming experience will definitely help. You can find a list of companies that hire without any prior Clojure experience on this page: https://jobs-blog.braveclojure.com/2022/03/24/long-term-clojure-benefits.html https://jobs-blog.braveclojure.com/2022/03/24/long-term-cloj...
- brennvin 4y agoI am a niche programmer too and make good money just like the author. My expertise is in customizing a software product made by a former employer. The drawback though is that the job market is so small that you have to be prepared to move overseas to have more than a few companies to choose from.
- mdm12 4y agoThe StackOverflow survey supports the argument that niche language practitioners get paid more: https://insights.stackoverflow.com/survey/2021#top-paying-technologies-programming-scripting-and-markup-languages https://insights.stackoverflow.com/survey/2021#top-paying-te... I wish my anecdotal interview experience was LeetCode-less, though :)
- curuinor 4y agowell, it supports the argument that clojure peeps get paid more. can confirm, touchin the parens (now with square and curly brackets!) all day
- schwartzworld 4y agoThose numbers seem... Odd? Or at least skewed by geography. The typescript number is less than what glassdoor says for junior level JavaScript in my area.
- askonomm 4y agoThey are median numbers of everyone who took part of the survey, IE worldwide audience. You can check the data yourself to filter for your country here: https://insights.stackoverflow.com/survey https://insights.stackoverflow.com/survey
- draw_down 4y ago
- zeroonetwothree 4y agoProbably just selection bias.
- deltaonefour 4y agoHow good is the pay? Fang levels? between 300k and 400k or is it "good" relative to author. Just curious, because if what he says is true I could switch. Also my job involves writing cuda code... does anyone know if cuda is niche? Def not as niche as clojure but I'm thinking cuda stuff is niche enough to have the properties purported by the author.
- askonomm 4y agoThere's some indication of salaries on this StackOverflow survey: https://insights.stackoverflow.com/survey/2021#top-paying-technologies-programming-scripting-and-markup-languages https://insights.stackoverflow.com/survey/2021#top-paying-te... I live in Europe and work for a European company and it is near 100k (EUR), which in Europe is (afaik) really-really good. I've also seen Clojure job offers for 150-200k (EUR) here in Europe.
- deleted 4y ago[deleted]
- angarg12 4y agoI'm not sure how well this generalizes. I'm a Machine Learning Engineer, and that seems to check all those boxes. It is niche, it has low offer, and crazy high demand. Sure, salaries are high, but the interview process isn't easier, in fact is way harder. As an MLE I need to excel both as a software engineer (yes, that includes leetcode), and in MLE/science/data science. For example, the last position I entertained included a phone screen and then 4 rounds: behavioral, coding, machine learning expertise, and a science round, where I was given a problem, had to find 2 papers and make a presentation explaining my approach to solve the problem using the ideas from the papers. At this rate I'm considering leaving Machine Learning altogether, since the barrier to entry is too high for the people already in.
- 6gvONxR4sf7o 4y agoMLE is different because there’s a ton of people who want to do it, and apply without the skillset.
- t_mann 4y agoWhat exactly do you mean by low offer? I mean, my idea of a niche isn't something that is among the top most popular courses on every MOOC platform. What's a barrier to entry for people already in? You mean for switching employers? What do recommend to get in?
- angarg12 4y agoI mean offer as in offer and demand. There isn't many people with the engineering skills, ML expertise and on-the-job experience. The barrier for entry means that interviewing for the job, even with experience, is very difficult. As others said maybe the different is there is huge demand. Still I find it paradoxical. You'd think having experience in a field with high demand and low offer would be a pretty good deal. And yet it would be easier for me to find a job as a generalist than as an specialist. My advice to get in is based on my experience so YMMV. I'd say the easiest way is to transfer internally to an ML position. That's how I got here. If you are a solid engineer, teams are happy to fill in your ML knowledge gaps. Anecdotically most people I interview got to ML the same way. If your company doesn't have official ML Engineer roles or ML projects, you can position yourself to jump in when the opportunity arises, or even pitch a project yourself (leadership seems to be suckers for ML-for-anything). The second easiest way is as a student/new grad/junior. Expectations for juniors are lower so it's always easier to get in. The ML round of the interview is mostly theoretical so students aren't at a disadvantage.
- georgeoliver 4y ago> I didn't dive into finding an online Clojure community and none of my programmer friends did Clojure or had heard of it either so I had no idea if the language was gaining popularity or dying. This is so fascinating to me and I guess just a reminder of the HN echo chamber.
- b3morales 4y agoSame, and I was also very surprised to learn of a professional programmer who had never heard of Lisp! Not meaning to condemn the author: apparently I have a bubble around my own head.
- deleted 4y ago[deleted]
- oefnak 4y agoThey must have not read xkcd. Are there other ways the average programmer would hear of Lisp?
- zarathustreal 4y agoWell I guess it depends on what you consider the average programmer to be. In my circles your introduction to programming is usually SICP so Lisp (Scheme) would actually be the first language you learn
- phist_mcgee 4y agoIn my circles, if you can successfully glue together react libraries, you're a senior engineer. Some people i've worked with don't even know what imperative vs declarative programming is. As they say, you become your lowest minimum standard, and that applies to mainstream programming teams too.
- sonthonax 4y ago> https://skirtlesden.com/articles/json-lisp-queries https://skirtlesden.com/articles/json-lisp-queries It’s a useful pattern when you need to encapsulate some complexity.
- temporallobe 4y agoMy niche is pure JS widgets. That’s 100% Vanilla JS (old or new). No libraries or frameworks. I can create self-contained, state-aware, datastore driven (using session/application storage) interactive mini-applications, tools, widgets, and even games — often with just ONE JS file (CSS and HTML embedded), and fancier apps using maybe just a few supporting resource files. In fact, I am the only dev in my entire project of 100+ devs that has this skill and maintain quite a few of these widgets that I primarily authored. Thus is good and bad. Bad because it means I am stuck with these (and similar maintenance) forever and often get passed up for the newer stuff, but good because I’m almost irreplaceable.
- zelphirkalt 4y agoAnother good thing about it is, that you are able to shave off heaps of overhead, if you do it right.
- davidspiess 4y agoThis sounds rather selfish to me. What if you ever quit your job and your team mates are suddenly expected to pick up the things you left behind? Why not share your knowledge with them and work together as a team.
- zargon 4y agoIn these situations, the team is generally actively avoiding that skillset. When GP leaves, they will happily rewrite all the widgets to use the current hottest framework and turn a blind eye to the greatly increased hardware requirements / performance degradation.
- temporallobe 4y agoI disagree that it’s selfish. I am always willing to share my knowledge, and have on many occasions, but most developers I’ve worked with don’t have much interest in that particular skillset. If I quit my job, it is leadership/management’s responsibility to find a replacement; It’s also their responsibility to encourage knowledge sharing, cross-training, and have resource redundancy within the project.
- fb03 4y agoI am a Python programmer looking to transition into Rust for the same reason. it's still new and has the most interesting outlook regarding safety and soundness imho.
- karmakaze 4y agoI sort-of have a niche role working with common tech stacks. Typically specialized schema db query optimizations or designing distributed/multiprocess interactions. I don't really have a way of describing it other than get into a company and start doing it, or possibly if my past work at past is actually factored into a role. The idea of a language or tech switch sounds really interesting and I'll keep that in mind.
- Terry_Roll 4y agoSearch engines can control your employment prospects. As one niche dev to others, get involved with your niche language/tool online (web based community) and make sure the website advertises jobs. A lot of recruiting companies go through agencies which only deal with mainstream tools and languages, so unless you produce your own 3rd party addons and get known that way in your niche tool/language, you need to come up with other ways of getting known as its very reputation based and it can be extremely clique even when the devs are sparsely populated around the world! Fortunately Github is slowly increasing the number of languages it lists and Linked in is helping people get in touch, but you have to find ways to make your self known, its better today than it was a decade or two ago or even earlier.
- FpUser 4y agoI am / always was a "niche" developer in a sense that I've always hunted a possibility to design and create products from scratch. This is what I do an what I like doing. Not what particular language is being used to implement it. As a result I am on my own for more than 20 years and do mostly as I please (assuming the product does what my client wants and does it nicely).
- edem 4y agoI read about lisp in "The Cathedral and the Bazaar" a long time ago. Then I read "Practical Common Lisp" which was a revelation for me. I never ended up using the language but I still see pieces of code or techniques in other languages that make me think about how it would be much simpler in LISP. When Clojure came out I learned it as I was also programming on the JVM at that time. I even joined the local Clojure meetup group. I never worked on real world projects in Clojure but the community around it is awesome. I still have fond memories of that time. I also learned Emacs and the tooling around it. There was a time when I knew that I'm done with Java, but I didn't know what's next. I ended up choosing Kotlin over Clojure. Kotlin is a great language and I don't regret going in that direction but sometimes I still think about what could have been... Then I moved to node/typescript and now I'm learning Solidity because that's what's being used in the web3 space. I guess it is still not the time for me to finally embrace Lisp.
- piotrkaminski 4y agoWhen I was doing my undergrad at the University of Waterloo in the '90s, my first co-op (internship) placement happened to be at OTI -- a (some might say "the") Smalltalk shop. Smalltalk was very much a niche language even at the time but it opened up opportunities I wouldn't have dreamt of down the road. My last couple co-op jobs took me to Australia and from there to a customer engagement in Thailand. I bet that wouldn't have happened if I just specialized in C++ or whatnot. All this to say that I heartily endorse the OP's strategy.
- emacs28 4y agoI would say my niche language is SystemVerilog (if you count a hardware description language in this discussion).
- danbmil99 4y agoBack in 2003 I was looking for an interpreted language with very simple, almost psuedocode-like syntax. The use case was to write a non-optimized, highly documented reference decoder for a new video codec. I stumbled across a strange new (to me) language that had clean, readable syntax, an imperative style (I didn't want or need nested class definitions), and was very parsimonious about the use of parenthesis and brackets, to the point where it relied on indentation and whitespace to indicate control flow, instead of the traditional curly brackets. And thus began my career as a "niche" programmer focusing on Python.
- t_mann 4y agoHe doesn't really say what he's working on - what's Clojure typically used for? LISP-style programming does sound interesting.
- askonomm 4y agoClojure is a parasidic language that targets multiple different hosts, such as JavaScript, allowing you to write React.js and Node.js software, as well as JVM, .NET and even Dart/Flutter as of recently. So the answer to what Clojure is typically used for is, well, a lot of things! Front-end, back-end, etc. I myself am a full-stack dev and as of this month I help build AI patent search over at https://iprally.com https://iprally.com.
- stakkur 4y ago(Almost) all programmers are niche programmers.
- t_mann 4y agoWhat are HN thoughts on other niches? Julia, OCaml eg?
- exdsq 4y ago> I was so engulfed in the mainstream I had no idea that there would be something without a C-like syntax. Wow that's strange to read from someone who blogs about programming !
- charlieyu1 4y agoI write math problems with LaTeX. I would try to automate my work, and it is a frustrating experience because the language isn’t designed for that. But at least it forces me to try and write some macros
- ncmncm 4y agoYou can gauge whether your niche language is, actually, dying by how many of the jobs you can find calling for $niche skills turn out to be to transcribe code from $niche to $mainstream. That sidesteps the difficulty of counting absolutely how many openings there are, and how many there ought to be
- bern4444 4y agoFor a little while I was very interested in F#. It's not popular by any means but when I saw it I was really impressed. It's the functional language to C#. I even found at one point an F# to JS compiler/transpiler and was able to set up a webpack config that let me write F# in a JS project. I'd love to be able to use this at work - unfortunately my coworkers were less excited about pursuing this.
- kmc059000 4y agoThis was my experience as well. I became very interested in F# and Clojure about 6-8 years ago because they were seemingly better languages that attracted better users. I was wanting to work with people who cared more about the work they were doing than those I had been working with. I thought functional programming was a way to so this. I thought that by learning these languages that I would find the programming promised land of good tools and good users. I never found anything like that though. I couldn't find many jobs using these languages and the few I did seemingly were too difficult to be hired in. And I was never successful in evangelizing them in the roles I was already in. The F# landscape seems to be worse than it was a few years ago. And I am fairly certain it will never change for the better. I think being .net hinders it in a way that the JVM doesn't hinder clojure. C# is a pretty good language and platform and the community is fairly aligned with the Microsoft's direction and influence on the ecosystem.
- askonomm 4y agoIf you're interested in getting a Clojure job, join the Clojurians Slack (an extremely friendly and welcoming community of some 20 thousand people) and check out Brave Clojure Jobs (https://jobs.braveclojure.com/ https://jobs.braveclojure.com/) Also check this page for a list of companies that hire without a prior Clojure experience required: https://jobs-blog.braveclojure.com/2022/03/24/long-term-clojure-benefits.html https://jobs-blog.braveclojure.com/2022/03/24/long-term-cloj... Almost every day a new job appears, so there are definitely options, and feel free to e-mail me if you have any questions at all (e-mail in my profile).