miniblog.

On teaching Haskell, and which parts of the semantics are tricky for newcomers: https://ciobaca.substack.com/p/pedagogical-downsides-of-haskell
It's funny how webkit-based browsers account an increasingly large proportion of users, but there's no similar trend in JS engines. The JS implementation space seems to be much more diverse, at least in browsers.
One interesting property of both stdin/stdout based REPLs and RPC based REPLs is that they need to support asynchronous events. In both these programs, I don't need to wait until the function is done to see the output printed. It's not sufficient to read-eval-wait-print-loop.
On how far programming language research has come, and the maturity of tools and techniques that make more ambitious projects viable: https://semantic-domain.blogspot.com/2022/09/the-golden-age-of-pl-research.html
@sidawson@mastodon.nz My bio says "a healthy dose of Emacs", which is ambiguous as to how big 🙃
Rich Hickey compares REPL design with RPC style nREPL: https://groups.google.com/g/clojure-dev/c/Dl3Stw5iRVA/m/IHoVWiJz5UIJ Rich considers the nesting ability to be important. If the user is interacting with stdout/stdin, they can enter arbitrary other text UIs.
A fun example of Emacs composability: run spell check when you're viewing files, so you can fix typos in file names: https://mbork.pl/2023-01-30_The_benefits_of_everything_being_a_buffer
It's weird how many languages represent tests as functions. They rarely take arguments and very rarely (never?) call other tests. Is it the right abstraction?
One underrated feature of Go and Julia: methods are defined without extra indentation. In e.g. Java they're inside the the class at the next indentation level. Methods are so common and indentation is a finite resource. "Top level method" syntax is surprising at first though.
TIL that the HDMI specification is not public, so it's hard to write OSS drivers: https://www.phoronix.com/news/HDMI-Closed-Spec-Hurts-Open
An incredible 7 minute demo of APL, going from constructing an array to visualising Conway's Game Of Life, built incrementally without loops or temporary variables: https://www.youtube.com/watch?v=a9xAKttWgP4
I'm amazed to learn that there is now a marketplace for buying and selling good prompts to midjourney/ChatGPT etc! You pay and you receive a prompt that generates good results. For example: https://promptbase.com/prompt/dismantled-anythings
PYPL: PopularitY of Programming Language https://pypl.github.io/PYPL.html is a nice PL metrics tracker that's an alternative to TIOBE. It has a clear methodology and it carefully chooses keywords to avoid e.g. Python metrics being affected by interest in snakes.
I've released difftastic 0.46! In this release: * Ada support * Support for Arduino C++, better TOML handling, and a ton of upstream grammar updates * Fixed several nasty corner cases with trailing whitespace or binary/UTF-16 confusion https://github.com/Wilfred/difftastic/releases/tag/0.46.0
TIL that Rust has a (i) icon that shows relevant traits that a type implements. This is useful to understand that e.g. .iter() on a Vec<T> iterates with &T. https://doc.rust-lang.org/std/vec/struct.Vec.html#method.iter It looks like one of my bug reports was mentioned, so I'm delighted but wish I'd noticed earlier!
What piece of syntax has the most different meanings? I realised today that `as` is extremely overloaded. It can be used for aliasing imports (Python), type casts (Rust), binding pattern match variables (OCaml), type assertions (Hack) and probably many others.
I'm fascinated to learn that there's a black market for GitHub stars: https://dagster.io/blog/fake-stars E.g. they can be financially valuable if you're trying to raise money for your start-up.
Plan9: exploring a radically different operating system and UI design, running it on a Raspberry Pi: https://thedorkweb.substack.com/p/a-week-with-plan-9
In OCaml I can use Merlin to destructure `flavour ()` and it gives me the whole `match flavour () with | Vanilla -> ()`. It's nice. In Rust I have to write `match flavour() {}` before rust-analyzer can autofill the match arms, which is more typing. I'm not sure why.
GitHub is adding a notion of a queue for pull requests, so you know if your PR is green relative to the PR that will land first! Reminds me of Bors for Rust. https://github.blog/changelog/2023-02-08-pull-request-merge-queue-public-beta/
Showing 381-400 of 7,506 posts