miniblog.

I'm designing a programming language and trying to decide the type of `let x = 1;`. Should it be Unit or Int? Advantage of Int: really convenient when evaluating snippets in a REPL. Advantage of Unit: It's much less confusing when type inference runs on an incomplete function.
`init` feels like an unhelpful name in OO. It doesn't give you an initial value, it initialises the instance that has already been created. Developers are often surprised that init doesn't return the instance, because they have a strong association with `new Foo()`. Perhaps `finish` would have been a less confusing name?
Bril is a cute intermediate language for teaching (think simplified LLVM IR): https://www.cs.cornell.edu/~asampson/blog/bril.html The idea of providing a standard JSON format to help students write basic passes is really elegant.
What are the most popular languages that have used an AST walker for their implementation? I know Ruby used to do this, but there must be others. (I'm interested in the lowest PL speed that users will tolerate if you have awesome features.)
I'm increasingly doubtful that commit messages should be entirely immutable. I sometimes find myself editing or commenting on merged pull requests, to help future readers. Phabricator appended a URL to commit messages, which helped. In principle PR merging could do the same thing.
I've released difftastic 0.59! In this release: * Fixed a nasty crash on textual files * Added F# and device tree support * Improved comment syntax highlighting (especially for Elm)
Photo
I've been really enjoying paru as a pacman substitute on Arch Linux: https://github.com/Morganamilo/paru It allows you to update both normal and AUR packages in one go, which is super convenient. It also shows you PKGBUILD files, so there's still a human audit step for AUR.
WebAssembly seems like a totally reasonable bytecode format, but I've not had many opportunities to use it so far. Has wasm found its 'killer app' yet?
It's weird that GitHub shows time since the last commit, but not time since the first commit. It's a nice way of seeing how mature a project is.
Deno has the cutest PL mascot I think I've ever seen. Are there any other contenders?
Photo
I'm always hesitant when I see digital services funded by a single one-off payment. Running a service requires ongoing funding. You sometimes see this with games that have a multiplayer component. People buy the game, but the multiplayer servers won't last forever.
I'm considering switching my personal servers (on Digital Ocean) from Ubuntu to Debian. I essentially just need something running Docker for most of my projects. Debian seems to require upgrading less often. Any opinions?
Coming from JS or Python, imports in Rust feel weird. They're entirely optional aliases for fully qualified symbols, which are always available. I don't know of many other languages where you can just start using libraries. Java is the only one I can think of.
A funny side effect of building software in Rust: my machine OOMs much more during development. I'm not entirely sure why. I think Rust makes it easy to allocate data quickly, and sooner or later you write an infinite loop when coding.
I'm experimenting with Hammerspoon on macOS as an application switcher. `Option-Space F` is Firefox, `Option-Space E` is Emacs, etc. The problem with `Alt-Tab` is that the order changes based on recency. I'm hoping that a repeatable command will be nicer to use.
Showing 61-75 of 144 posts