Not that it's super complex, but I'm surprised it didn't pick up an npm package. I wrote tarsec[1] and have been eyeing ohmjs[2]. And of course nearley is a classic.
Recursive descent parsers are basically mechanical structures, if you get the grammar right (which encapsulates all the logic).
When I was a CS student, they seemed like magic to me as well, but later I got to revisit them for a project at work, and finally managed to understand the logic.
Imo, the biggest complexity in using them comes from how they handle operator precedence, with recursive nested expressions in the grammar, which I still don't find intuitive at all.
If you decide to hand-roll your own parser/syntax today, I recommend you look at Pratt-parsers, they are much nicer to write by hand. Modern languages (Rust, Go) , ironically are much simpler to parse, since they defined the syntax in such a way that they can be parsed unambigously by looking 1-2 tokens ahead.
And since all of them follow the same logic, AI has a ton of sources to learn from.
I'm also working on my programming language, and AI assistants have been able to generate these parsers for well over a year.
Edit: Oh, I think the main dev is just using Claude to do the commits (I guess to summarise changes, etc). It does not mean that Claude wrote all that code.
For those less in the know: is it for convenience? Because most systems have a package manager that can install Python, correct? But `pip` is more familiar to some?
I think it’s more for Python libraries that depend on JavaScript.
Lots of packages rely on other languages and runtimes. For example, tabula-py[1] depends on Java.
So if my-package requires a JS runtime, it can add this deno package as its own dependency.
The benefit is consumers only need to specify my-package as a dependency, and the deno runtime will be fetched for free as a transient dependency. This avoids every consumer needing to manage their own JavaScript runtime/environment.
The zig one allows you to build native modules for your python project from setup.py without having to have a C/C++ toolchain preinstalled. Here's a talk about this:
It's because when you use the native Python packaging tools, you can install a Python "wheel" into an arbitrary Python environment.
If you get Deno from the system package manager, or from deno.com directly, you're more constrained. Rather, it seems that you can set an environment variable to control where the Deno home page installer will install, but then you still need to make your Python program aware of that path.
Whereas a native Python package can (and does, in this case, and also e.g. in the case of `uv`) provide a shim that can be imported from Python and which tells your program what the path is. So even though the runtime doesn't itself have a Python API, it can be used more readily from a Python program that depends on it.
Pypi is the only OS agnostic package manager already installed on every OS.
Also, it's VERY convenient for companies already using python as the primary language because they can manage the dependency with uv rather than introduce a second package manager for devs. (For example, if you run deno code, but don't maintain any JS yourself)
I'm no expert when it comes to software packaging and distribution issues but this does give off Internet-Archive-as-CDN levels of Hyrum's Law for me. What could possibly go wrong hmmmmmm....
The list has helped me plan as its forced me to cut things, and just admit I won't have time to do them. For example, I took about fifty books off my shelf and to the little free library. They've been sitting there for years.
Unfortunately a pre-req would be me severely downgrading what I think is worth writing down as an accomplishment, or switching to writing down meaningless tasks (though that IS what the original tada list idea recommends)
Funny timing, I've been building something like this for my own use -- but your feature list has everything I wanted :) How much do you charge? Would love to know without downloading an app
esp32 already exists, so there's a hardware alternative. What's the primary issue -- is it the lack of competition to the Arduino IDE? I have dabbled in Arduino but don't know enough to understand, but my impression was on the hardware side there are already alternatives that are better.
Obviously not discounting what a huge blow this is (and right when I was planning to explore Arduino more), but practically speaking, what can we do to help?
I think this is a reasonable expectation. I'm writing about the dot product and there is a geometric visualization for dot products, so it's fair to expect that. As I said in this comment (https://news.ycombinator.com/item?id=45802969) I focused on teaching the reader the bare minimum they would need to know to get to matrix multiplication.
I use illustrations for a lot of other things though. I use them to pace my posts, to call out things that are especially important, to reinforce written ideas with images, and to give the reader's eye a place to rest.
Hey everyone, I'm the author. I'm seeing a lot of the same comments here, so I want to address them.
I teach math by leading with examples. I try to show the intuition behind an idea, and why it is interesting. For this series, my reader is someone who knows algebra, and likes learning new things, especially when a teacher shows what is interesting about a topic.
## You didn't cover x about the dot product.
I try to only teach as much as is necessary to get the student to the next point, which is matrix multiplication. I usually end up cutting a lot of material out of my chapters to keep them simple. In this case, I cut out a whole section on the properties of a dot product, as well as a discussion about inner and outer products, because those weren't necessary to get to matrix multiplication. I think this context was lost while posting to HN.
## 3B1B already has a series on this.
I love 3B1B, but his style of teaching and mine are quite different. Even though we both teach visually, his videos are densely packed with information and his expectation is that you will watch the video a few times till you understand the topic. He also leads with math more than I do. My posts are written more like stories. My goal is they should be easy to get into, and by the time you have finished reading, you should understand more about the topic. I don't expect readers to read through multiple times. I personally learned linear algebra through Strang's videos and textbook, and those videos are awesome, but can be confusing. If you found the Strang or 3b1b videos confusing, hopefully my posts will make it easier for you to follow them. I think comment is spot on: https://news.ycombinator.com/item?id=45800657
If these ideas resonate with you, I think you'll like this post, and if not, there are plenty of guides that go the more traditional route. You can also read the first post in the series and see if you like it: https://www.ducktyped.org/p/an-illustrated-introduction-to-l...
Not that it's super complex, but I'm surprised it didn't pick up an npm package. I wrote tarsec[1] and have been eyeing ohmjs[2]. And of course nearley is a classic.
[1] https://github.com/egonSchiele/tarsec [2] https://ohmjs.org [3] https://nearley.js.org
reply