I use [Tcl] as my scripting language of choice, and recently someone asked me why. This article is an attempt to answer that question.
Ousterhout's dichotomy claims that there are two general categories of programming languages:
package main | |
import ( | |
"html/template" | |
"net/http" | |
"strconv" | |
) | |
/*********************** | |
This is a simple demonstration of how to use the built-in template package in Go to implement |
Here we see the same UUIDv4 generation function written in three different APL(-like) languages: APL, J, and K.
The algorithm is very simple, but one that lends itself well to implementation in an array language:
This is the story of what happened when I went down a rabbit hole.
It starts with k7. If you press Ctrl-]
in the k7 WASM console, this appears:
x^x*/:x:2_!100
That's a prime number filter. There are faster ones - kparc.com's x,1_&&/80#'!:'x
is beautiful - but this one is really short.
Why SWEs Can't Have Nice Things | |
Not that long ago, and not that far away (from San Francisco, as it were) at a | |
software company, one of those billion-dollar concerns you've heard of, a Vice | |
President attended a dwarf-tossing-slash-coke orgy on his rival's yacht. He | |
couldn't enjoy himself, for that intrusive realization: "This guy's boat's | |
twice as big as mine! No wonder I haven't been promoted." So, when he returned | |
to work, he knew what he needed to do: "free up salary" (fire people) to justify | |
a bonus for himself. |
The following was sent to the JACL e-mail announcement list on 2021-02-26.
Hello everyone, and a belated happy 2021 to you! I hope your year has been off to a good start.
It's been almost a year since JACL became public, and nearly as long since any other announcement or release, so I thought to share three major related educational and design developments. The project is very much alive, just mostly in my head :-)
First, while I haven't made significant tangible progress on the JACL compiler or runtime since last year, I have continued to research and study implementation techniques. I have prototyped several schemes for efficient and JavaScript-friendly multiple-value returns, consuming relevant literature (mostly from the Scheme community) along the way. I have also studied and experimented with CLOS, and to speculate about how best to support a maximum of CLOS functionality without compromising JACL's calculated relationship with the JavaScript platform. One interes
This is inspired by https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
the command zig run my_code.zig
will compile and immediately run your Zig
program. Each of these cells contains a zig program that you can try to run
(some of them contain compile-time errors that you can comment out to play
with)
Pekka Väänänen, Sep 14 2020
Data-Oriented Design (2018) by Richard Fabian
Computers keep getting faster but the future ain't what it used to be. Instead of higher clock rates we get deeper pipelines, higher latencies, more cores. Programming these systems requires paying attention to how we structure and access our data. In Data-Oriented Design Richard Fabian—who has worked at Frontier Developments, Rockstar Games, and Team17—presents us an approach to reason about these issues from a C++ game developer's perspective.
Data-oriented design is about caches and decoupling meaning from data. The former implies laying out your data so that they're compact and predictably accessed. The latter means exposing the raw transforms from one sequence of bits to another. For example, finding the pla
Peter Naur's classic 1985 essay "Programming as Theory Building" argues that a program is not its source code. A program is a shared mental construct (he uses the word theory) that lives in the minds of the people who work on it. If you lose the people, you lose the program. The code is merely a written representation of the program, and it's lossy, so you can't reconstruct
This is a tutorial on the Curry-Howard correspondence, or the correspondence | |
between logic and type theory, written by Keith Pinson, who is still a learner | |
on this subject. If you find an error, please let me know. | |
This is a Bird-style literate Haskell file. Everything is a comment by default. | |
Lines of actual code start with `>`. I recommend that you view it in an editor | |
that understands such things (e.g. Emacs with `haskell-mode`). References will | |
also be made to Scala, for programmers less familiar with Haskell. | |
We will need to turn on some language extensions. This is not an essay on good |