@tristanC That's an option! There's often cases where you know what the user wanted though, so you can provide a sensible AST that the toolchain can handle.
For example, a malformed string literal can still be parsed a string so type checking etc can be helpful.
miniblog.
Counter-intuitively, if you're writing a parser for a programming language, you need it to be a total function. As soon as you build IDE tooling, you need ASTs from invalid or incomplete input.
The parser should return (Ast, List<Error>) rather than Result<Ast, Error>.
Today I learnt that the original name for DOS was QDOS, for "Quick and Dirty Operating System"! https://en.wikipedia.org/wiki/DOS#QDOS
(Seems rather unfortunate that they dropped the Q.)
I've been compilation buffers in Emacs recently and I really appreciate the error and warning counts shown in the modeline.
I've added the equivalent feature to deadgrep: it shows result counts! Really useful when you're doing big refactorings.
Today I learnt that Lua projects often use *3* spaces for indentation! https://github.com/luarocks/lua-style-guide/blob/master/README.md#indentation-and-formatting
I initially thought something was very wrong with editor config.
What are the most interesting upcoming scripting languages? Scripting remains an important part of the programming language ecosystem.
Optimise time to first feature. Allow mutation of the running system to experiment. Interactive inspection of data.
Sometimes programming tools are so good that you miss them when using other languages. I see these mentioned the most frequently:
* IntelliJ (for Java)
* Slime+Emacs (for Common Lisp)
* Pharo (for Smalltalk)
I'm struck that they all have bespoke UIs.
Are there any package managers that treat changelogs as a first class concept?
I end up looking for a CHANGELOG.md or a CHANGES.txt in the source code repository every time. The lack of standard prevents package hosting services being able to show changes.
Here's a weird UI pattern I haven't seen before. This sanitizer will keep things clean for 24 hours, so the time counts *down*.
Every time I see it, it looks like 24 hour clock showing the wrong time!
I've dabbled with 'conventional commits' for a personal project but I found they slowed me down.
It's not always easy to categorise a commit as a fix, a chore etc. Sometimes refactorings also fix bugs.
Do you use them? I can imagine a large, mature project benefitting more.
It's rare to see ANSI escape codes for URLs in the wild, but cargo has it!
This example links to https://doc.rust-lang.org/cargo/reference/profiles.html#default-profiles, describing the different profiles.
Considering releases vs debug is a source of confusion for new users expecting better performance, this seems wise.
The niche of short, environment-specific scripts, and the consequences for programming language design choices:
It is remarkably hard to escape command line arguments safely on Windows, and the standard libraries of multiple languages have needed patching:
Exploring design ideas using AI as a learning assistant, for creative exploration:
Installed Linux on a new laptop yesterday, and needed to find a USB stick in a dusty drawer.
The stick previously had Arch Linux Installer 2021 on it! I can't think of any other uses for the device these days.
Showing 76-90 of 144 posts




