Dear sir, you have built a compiler (2022)

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

Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers
Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.
www.nutrient.io
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. llvm-project

    The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.

  2. Nutrient

    Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers. Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.

    Nutrient logo
  3. arcan

    Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"

    You should take a look at arcan, it's almost exactly that: http://arcan-fe.com

    - https://arcan-fe.com/2022/10/15/whipping-up-a-new-shell-lash...

    - https://arcan-fe.com/2024/09/16/a-spreadsheet-and-a-debugger...

    I am not using it as a daily driver, because, emacs, but I keep an eye on it because, well, emacs.

  4. js2c

    A .NET package using source generators to automatically create classes from a snippet of JSON.

    I have an older variant on this hacked together as a weekend project.

    https://github.com/CharlieDigital/js2c

    Takes an input snippet of JSON and builds up classes as federalization targets.

  5. opw_kinematics

    Closed form IK for parallel base, spherical wrist industrial manipulators

    So what do you use to know if you need to build it yourself or if there is already something out there? Niot being able to find a tool for the problem does not mean it doesn't exist, just that you haven't found it. Especially when you lack the familiarity with the problem to know the correct keywords.

    I find ChatGPT to be of great help to explore the area, find relevant keywords or the name of the research domain. Sometimes you really need to know exactly what you are looking for before you can find the link to that one super helpful github library that solves you problem. The of course the next step is figuring out if you want to take on the dependency or not...

    I have wasted hours searching for an (analytical) inverse kinematics library for robotic arms. There are tons of slow non analytical libraries out there, and some horrible ones like ikfast that is a effectively a code generator that spits out c that can be compiled with python bindings. I eventually did find https://github.com/Jmeyer1292/opw_kinematics, which someone ported rust (for which it was easy to create python bindings).

  6. inotify_simple

    A simple Python wrapper around inotify. No fancy bells and whistles, just a literal wrapper with ctypes.

    > A lot of developers really seem to prefer janky, undermaintained third party libraries with huge APIs over a quick home made hack to solve exactly the problem your team has

    Sometimes it’s not even that they’re janky and undermaintained, it’s just the huge and unnecessary API. A good example is watching for file changes. inotify has been around forever, and is easy to reason about. The Python library inotify_simple [0] just wraps that. That’s it. It works extremely well, has no dependencies of its own, and provides nothing else. I once needed this functionality for a project, and had another teammate argue we should use watchdog [1] instead, because it had more stars, and more frequent commits. It took me longer than I thought it would to explain that sometimes, projects are complete and don’t need commits, and that we didn’t need or want any of the additional complexity provided by watchdog.

    Another example is UUID generation. Python doesn’t yet natively do UUIDv7 generation, but if you read their source code and the RFC for UUIDv7, it’s fairly easy to write your own implementation. This was met with “please don’t write your own UUID implementation; use a library.” Baffling.

    [0]: https://github.com/chrisjbillington/inotify_simple

    [1]: https://github.com/gorakhargosh/watchdog

  7. watchdog

    Python library and shell utilities to monitor filesystem events.

    > A lot of developers really seem to prefer janky, undermaintained third party libraries with huge APIs over a quick home made hack to solve exactly the problem your team has

    Sometimes it’s not even that they’re janky and undermaintained, it’s just the huge and unnecessary API. A good example is watching for file changes. inotify has been around forever, and is easy to reason about. The Python library inotify_simple [0] just wraps that. That’s it. It works extremely well, has no dependencies of its own, and provides nothing else. I once needed this functionality for a project, and had another teammate argue we should use watchdog [1] instead, because it had more stars, and more frequent commits. It took me longer than I thought it would to explain that sometimes, projects are complete and don’t need commits, and that we didn’t need or want any of the additional complexity provided by watchdog.

    Another example is UUID generation. Python doesn’t yet natively do UUIDv7 generation, but if you read their source code and the RFC for UUIDv7, it’s fairly easy to write your own implementation. This was met with “please don’t write your own UUID implementation; use a library.” Baffling.

    [0]: https://github.com/chrisjbillington/inotify_simple

    [1]: https://github.com/gorakhargosh/watchdog

  8. oasis

    a small statically-linked linux system

    https://github.com/oasislinux/oasis

    It's not perfect, but it's clean and moves in this lua direction.

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  10. genprop

    Mini DL Library with eager automatic differentiation. Supports backpropagation over a dynamically built graph.

    The left-pad incident was a problem with the build toolchain, not a problem with using a dependency. String padding is one of those fiddly things that you have to spend a couple of minutes on, and write 4–5 tests for, lest you get an off-by-one error. It makes perfect sense to bring in a dependency for it, if it's not available in the standard library, just as I might bring in a dependency for backprop (15 lines: https://github.com/albertwujj/genprop/blob/master/backprop.p...).

    A better example would be Jon Schlinkert's packages: https://www.npmjs.com/package/ansi-red But while this makes a point, does it really make the original point?

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

  • HowTo? Open different tmux window within session for every now konsole window

    1 project | /r/tmux | 15 May 2021
  • Release Cosmopolitan v4.0.0 · jart/cosmopolitan

    1 project | news.ycombinator.com | 23 Jan 2025
  • iRedMail – open-source Mail Server Solution

    1 project | news.ycombinator.com | 18 Jan 2025
  • Flappy Bird for Android, only C, under 100KB

    5 projects | news.ycombinator.com | 21 Sep 2024
  • Embedded Common Lisp merges initial Cosmopolitan port

    2 projects | news.ycombinator.com | 22 Sep 2024

Did you know that Python is
the 2nd most popular programming language
based on number of references?