6 ms·
In my experience the job market just revolves around business needs combined with transferrable skills for an affordable price. Most business needs are a cheap
by oneplane 4y ago
In 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.
- oneplane 4y agoOh, that's right, I knew I forgot one! It's even gaining traction in ML for some reason, we've been using it in an image processing pipeline because performance and safety-wise it simply had the best results. Edit: I even forgot to list Python. Maybe I should just look up some language popularity list and use that instead.
- ghaff 4y agoThis is a pretty widely-quoted list. https://redmonk.com/sogrady/2022/03/28/language-rankings-1-22/ https://redmonk.com/sogrady/2022/03/28/language-rankings-1-2...
- czbond 4y agoFor Rust and ML, are the tooling libraries available to any quantity in Rust that are present in Python? I was under the impression Python has such an advance runaway any other languages will be hard to catchup (eg: Go has been trying, R <ugh>, etc)
- microtonal 4y agoThere are obviously fewer ML libraries than for Python (sometimes worse quality, sometimes better), but if you are willing to invest time, it's definitely doable. E.g. I made a multi-task transformer-based syntax annotator in Rust using the tch Torch binding: https://github.com/tensordot/syntaxdot https://github.com/tensordot/syntaxdot In my current job I do NLP with Python, Cython, and some C++. I don't think implementing ML stuff in Rust was much more work. Once you are beyond the stage of implementing a small research project or toy model, most systems are going to contain a lot of custom, specialized code. You will have to do that work in any language.
- czbond 4y agoThank you for the informed response - really helpful
- qchris 4y agoThe most comprehensive current view of the Rust machine learning ecosystem at the moment is probably at https://www.arewelearningyet.com/ https://www.arewelearningyet.com/ (I sometimes help maintain this site) Rust has a weird mix at the moment, and not one that's likely to significantly change within the next 12 months, at least. Certain tools are genuinely best-in-class, especially around simple operations on insane amounts of data. Rust kills it in that space due to its native speed and focus on concurrency. There's also growing projects like Linfa [1]. that while not at the level of scikit-learn, have significantly increased their coverage on common data science/classical ML problems in the past couple years, along with improved tooling. The space does have a few pure-Rust projects coming down the pipeline around autodifferentiation, GPU compute, etc. that are likely to yield some really valuable results in deep learning, but that aren't quite available and will take some time to pick up some traction even once they're released. At the same time, areas like data visualization are unlikely to reach parity with something like matplotlib/pyplot in the near future. Python is the de-facto standard, and will be for some time, but Rust's ability to build accessible high-level APIs on top of performant, language-native libraries is attracting some attention and I wouldn't be surprised to start seeing ingress in the certain areas over the next few years, where instead of the Python/C++ combination, it's just Rust all the way down. [1] https://github.com/rust-ml/linfa https://github.com/rust-ml/linfa
- ravenstine 4y ago> Web stuff like HTML and CSS (but that's mostly generated now) 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?
- oneplane 4y agoGenerated as in, templated once and then just spit out via classic MVC and beyond (like API on the server, JS on the client which uses some MVVM construction for component rendering).
- ravenstine 4y agoOh! I'm not sure why I thought you might have been implying something else.
- jtwebman 4y agoI wouldn't call C# a young language anymore.
- oaiey 4y agoYes. But the inhouse pile is very location specific (C# is not popular in every country and every business)
- salmo 4y agoWeird. I don’t see a lot of pure CRUD in enterprise development. It’s almost all dumb data transformation. Take data off a queue, add/remove/change, drop it in a db, pass it along. 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.