Ask HN: What is the job market like, for niche languages (Nim, crystal)?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • nexus

    A Nim web framework with batteries included (by jfilby)

  • It'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

  • syntaxdot

    Neural syntax annotator, supporting sequence labeling, lemmatization, and dependency parsing.

  • They are obviously not as good as in Python, 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

    In my current job, I do NLP with Python, Cython, and some C++. I don't think doing it 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.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • nested-data-structure-traversal

    Discontinued An archive of Jose Valim's repo that we worked on together in April 2021. (by nickjj)

  • > IP.subnet.is_in is a guard, so there are different constraints. You could still use the `in` keyword.

    Does that mean you can do something to make it transparently support IPv4 and IPv6 even though the docs mentions it only supports IPv4? Will it be more than 1 line of code?

    > Honestly my experience with python has been "the solution you're looking for probably exists, but using it will require a lot of effort..."

    I found it to be the opposite approach. The last time I wanted to increment a counter outside of a nested loop in Elixir it sprawled into a multi-week conversation with the author of Elixir, a git repo with 100+ programming language examples to solve the same problem[0] and a proposal on potentially altering Elixir itself to make this process a bit easier. The Python solution was about 2 minutes typing into my code editor and moving on with life.

    Elixir solution: https://github.com/nickjj/nested-data-structure-traversal/bl...

    Python solution: https://github.com/nickjj/nested-data-structure-traversal/bl...

    I'm not saying either language is better than the other but there's certain things that can done a lot easier in Python and on the flip side I'm sure there's things you can do a lot easier in Elixir.

    I found in practice for me personally when building typical web apps I kept running into roadblocks left and right with Elixir where as I never had these issues with Python or Ruby. That's why I stopped using Elixir.

    > I have mostly dealt with Django which is a nightmare of hidden code

    I think that'll happen with any big framework. The Rails code base can be intimidating too and Phoenix's code isn't any more approachable to someone who isn't already at the high end of expert with the language.

    [0]: https://github.com/nickjj/nested-data-structure-traversal

  • linfa

    A Rust machine learning framework.

  • The most comprehensive current view of the Rust machine learning ecosystem at the moment is probably at 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

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts