frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

The seven programming ur-languages (2022)

https://madhadron.com/programming/seven_ur_languages.html
57•helloplanets•5h ago

Comments

tagfowufe•1h ago
I would refer to the world _cognate_[0]. 'Fundamental programming cognates' sounds cool as a uni course.

[0] https://en.wiktionary.org/wiki/cognate

sph•5m ago
"Cognato/a" in Italian is brother/sister-in-law
macintux•1h ago
Reminds me a bit of Bruce Tate’s approach in 7 languages in 7 weeks, which is where I first encountered Erlang.

I think from a historical perspective, describing COBOL and Fortran as part of the ALGOL family is a stretch, but I suppose it’s a good reminder that all history is reductive.

gottheUIblues•1h ago
Rather COBOL is a living fossil? And today's Fortran is the FORTRAN family with horizontal gene transfer from the Algol lineage of programming languages.
shevy-java•1h ago
Can COBOL be called a living fossil?

I mean, programming languages do not live; and they do not "die", per se, either. Just the usage may go down towards 0.

COBOL would then be close to extinction. I think it only has a few niche places in the USA and perhaps a very few more areas, but I don't think it will survive for many more decades to come, whereas I think C or python will be around in, say, three decades still.

> family with horizontal gene transfer

Well, you refer here to biology; viruses are the most famous for horizontal gene transfer, transposons and plasmids too. But I don't think these terms apply to software that well. Code does not magically "transfer" and work, often you have to adjust to a particular architecture - that was one key reason why C became so dynamic. In biology you basically just have DNA, if we ignore RNA viruses (but they all need a cell for their own propagation) 4 states per slot in dsDNA (A, T, C, G; here I exclude RNA, but RNA is in many ways just like DNA, see reverse transcriptase, also found in viruses). So you don't have to translate much at all; some organisms use different codons (mitochondrial DNA has a few different codon tables) but by and large what works in organism A, works in organism B too, if you just look to, say, wish to create a protein. That's why "genetic engineering" is so simple, in principle: it just works if you put genes into different organisms (again, some details may be different but e. g. UUU would could for phenylalanine in most organisms; UUU is the mRNA variant of course, in dsDNA it would be TTT). Also, there is little to no "planning" when horizontal gene transfer happens, whereas porting requires thinking by a human. I don't feel that analogy works well at all.

pfdietz•1h ago
Another direction to explore logic languages is Datalog.
anthk•1h ago
- Algol 68 docs: https://algol68-lang.org/resources 'a68g' it's a free as in freedom compiler.

- Forth: you can use PFE,Gforth for ANS Forth requeriments. Or EForth if you reached high skills levels where the missing stuff can be just reimplemented.

EForth under Muxleq: https://github.com/howerj/muxleq I can provide a working config where a 90% of it would be valid across SF.

Starting Forth, ANS version: https://www.forth.com/starting-forth/

Thinking Forth, do this after finishing SF: https://thinking-forth.sourceforge.net/

Also, Forth Scientific Library. You can make it working with both GForth and PFE, just read the docs.

Full pack: https://www.taygeta.com/fsl/library/Library.tgz

Helping Forth code for GForth/PFE. If you put it under scilib/fs-util.fs, load it with:

    s" scilib/fsu-util.fs" included


https://www.taygeta.com/fsl/library/fsl-util.fs

- Lisp. s9fes, it will compile under any nix/Mac/BSD out there, even with MinC.

S9fes: http://www.t3x.org/s9fes/

Pick the bleeding edge version, it will compile just fine.

For Windows users: MinC, install both EXE under Windows. First, minc

exe, then buildtools*exe: https://minc.commandlinerevolution.nl/english/home.html

Then get 7zip to decompress the s9fes TGZ file, cd to that directory, and run 'make'.

Run ./s9 to get the prompt, or ./s9 file.scm where file.scm it's the source code.

In order to learn Scheme, there's are two newbie recommended books before "SICP".

Pick any, CACS, SS, it doesn't matter, both will guide you before SICP, the 'big' book on Scheme:

Simply Scheme https://people.eecs.berkeley.edu/~bh/pdf/

Simply.scm file, select from ';;; simply.scm version 3.13 (8/11/98)' to '(strings-are-numbers #t)' and save it as simply.scm

https://people.eecs.berkeley.edu/~bh/ssch27/appendix-simply....

Concrete Abstractions

Book:

https://www.d.umn.edu/~tcolburn/cs1581/ConcreteAbstractions....

The SCM files needed to be (load "foo.scm") ed in the code in order to do the exercises:

https://github.com/freezoo/scheme-concabs

If you are en Emacs user, just read the Elisp intro, it will work for a different Lisp family but with similar design.

Spot the differences:

Scheme (like s9):

    (define (square x)
     (* x x))
We try:

    >(square 20) 
    400
Elisp/Common Lisp (as the web site shows):

    (defun square (x)
     (* x x))
Same there:

     >(square 20)
     400
- Ok, ML like languages:

https://www.t3x.org/mlite/index.html

If you follow the instructions on compiling s9, mlite it's similar with MinC for Windows. If you are a Unix/Linux/Mac user, you already know how to do that.

You got the whole docs in the TGZ file, and the web.

tmtvl•1h ago
For Lisp one could also start with Common Lisp: A Gentle Introduction to Symbolic Computation (<https://www.cs.cmu.edu/~dst/LispBook/book.pdf>) and follow it with SBCL.
anthk•1h ago
Yep, and after that I'd jump into PAIP, Paradigms of AI Programming.

Code: https://github.com/norvig/paip-lisp

The EPUB looks broken in my machine, try the PDF: https://commons.wikimedia.org/wiki/File:Peter_Norvig._Paradi...

Altough Scheme and CL are different paths. CL's loop it's really, really complex and Scheme it's pretty much straightforward to understand. Any advanced CL user will have to implement Scheme's syntax (and an interpreter) as an exercise for PAIP. CL in CL... well, CL is too huge, T3X tried with Kilo Lisp 23 http://t3x.org/klisp/22/index.html and I doubt if anyone can even complete anything but the few starting chapters from Intro to Common Lisp with it.

pasc1878•34m ago
Or for Lisp you might as well start with Emacs Lisp - you are going to use it for a decent environment unless you have the Common Lisp IDEs which you have to pay for or Racket.
anthk•17m ago
Eh, no. You have Elisp+cl-lib but SBCL too, and you can use Sly wth SBCL.

Of Lem with SBCL+Quicklisp:

https://lem-project.github.io/usage/common_lisp/

Huge tip: if you use MCCLIM, install Ultralisp first and (ql-quickload 'mcclim) later: it will give you a big speed boost. Big, not as the ones from Phoronix. Actually big. From 'I can almost see redrawing on a really old ass netbook' to 'snappy as TCL/Tk' under SBCL.

https://ultralisp.org/

As you can see, you don't need to pay thousands of dollars.

For Scheme, S9 just targets R4RS but as a start it's more than enough, and for SICP you can install Emacs+Geiser+chicken Scheme and from any Linux/BSD: distro command prompt, you run:

       sudo  chicken-install srfi-203
       sudo chicken-install srfi-216
And, as a ~/.csirc file:

      (import scheme)
      (import (srfi 203))
      (import (srfi 216))
To run SCM stuff for SICP:

       csi yourfile.scm 
or

       chicken-csi yourfile.scm
Done. Get the SICP PDF and start doing SICP. You can use Emacs+Geiser with

         M-x install RET geiser-chicken

 if you are lazy. You can install the SICP book with

        M-xpackage-install RET sicp
and read it from

       M-x info RET
and do it everything from withing Emacs by running

      M-x geiser 
(pick chicken as the interpreter). Save your Emacs settings. Done.
mellosouls•1h ago
(2022) and unfortunately advice to spend significant amounts of time in learning multiple languages is becoming rapidly redundant in the LLM age.
justincormack•59m ago
These are tools for thinking with, so not obsolete.
sph•3m ago
[delayed]
zoky•56m ago
Not at all. That’s like saying learning how different kinds of engines work is redundant in the age of taxis. You don’t have to know any of this stuff in order to get from A to B. But if you want to understand the processes involved in getting there, or you maybe want to be the one that builds a better self-driving vehicle, this is where you should start.
pfdietz•44m ago
I might add another class of languages: those intended to express proofs, via the Curry-Howard correspondence. Lean is a primary example here. This could be considered a subclass of functional languages but it might be different enough to warrant a separate class. In particular, the purpose of these programs is to be checked; execution is only secondary.
armchairhacker•8m ago
Theorem proving and complex types are like extensions on an otherwise ordinary language:

- Agda, Idris, etc. are functional languages extended with complex types

- Isabelle, Lean, etc. are functional languages extended with complex types and unreadable interactive proofs

- Dafny etc. are imperative languages extended with proofs

- ACL2 is a LISP with proofs

Related, typeclasses are effectively logic programming on an otherwise functional/imperative language (like traits in Rust, mentioned in https://rustc-dev-guide.rust-lang.org/traits/chalk.html).

gobdovan•40m ago
there's a few more semantic families: verilog, petri nets and variants, Kahn process networks and dataflow machines, process calculi, reactive, term rewriting, constraint solvers/theorem provers (not the same with Prolog), probabilistic programming,

plus up and coming (actual production-ready) languages that don't fit perfectly in the 7 categories: unison, darklang, temporal dataflow, DBSP

It may feel like a little bit of cheating mentioning the above ones, as most are parallel to the regular von Neumann machine setup, but was meaning for a while to do an article with 'all ways we know how to compute (beyond von Neumann)'.

gobdovan•25m ago
also Sussman's propagators are nice to check out [0]

[0] The Art of the Propagator (mit url down for the moment)

Kaliboy•33m ago
My favorite subject when studying CompSci (TU Delft) was called "Concepts of programming languages". We learned C, Scala (for functional) and Javascript (prototypes).

It made learning Elixir years later much easier.

We also had a course that basically summed up to programming agents to play Unreal Tournament in a language called GOAL which was based on Prolog.

For years I've wanted to use Prolog but could not figure out how. I ended up making a spellcheck to allow LLM's to iterate over and fix the dismal Papiamentu they generate.

burakemir•26m ago
This article is full of gross mistakes. For example it claims that Caml is "Cambridge ML" which is ridiculously false. Fact check every sentence. Really sad.
Svip•18m ago
For those curious: Cambridge ML is a thing, but abbreviated CML[0]; and whilst Caml is part of the ML family, it appears to be unrelated to CML.

[0] https://www.cl.cam.ac.uk/teaching/1011/FoundsCS/usingml.html

Archive of Byte magazine, starting with issue #1 in 1975

https://archive.org/details/byte-magazine-1975-09
160•DamnInteresting•1d ago•38 comments

SPEAKE(a)R: Turn Speakers to Microphones for Fun and Profit [pdf] (2017)

https://www.usenix.org/system/files/conference/woot17/woot17-paper-guri.pdf
84•Eridanus2•4h ago•36 comments

Game devs explain the tricks involved with letting you pause a game

https://kotaku.com/video-game-devs-explain-how-pausing-works-and-sometimes-it-gets-weird-2000686339
196•speckx•2d ago•125 comments

Shader Lab, like Photoshop but for shaders

https://eng.basement.studio/tools/shader-lab
19•ragojose•2d ago•1 comments

The seven programming ur-languages (2022)

https://madhadron.com/programming/seven_ur_languages.html
58•helloplanets•5h ago•22 comments

What are skiplists good for?

https://antithesis.com/blog/2026/skiptrees/
146•mfiguiere•1d ago•29 comments

NIST scientists create 'any wavelength' lasers

https://www.nist.gov/news-events/news/2026/04/any-color-you-nist-scientists-create-any-wavelength...
344•rbanffy•16h ago•150 comments

College instructor turns to typewriters to curb AI-written work

https://sentinelcolorado.com/uncategorized/a-college-instructor-turns-to-typewriters-to-curb-ai-w...
330•gnabgib•18h ago•327 comments

Anonymous request-token comparisons from Opus 4.6 and Opus 4.7

https://tokens.billchambers.me/leaderboard
553•anabranch•21h ago•535 comments

The electromechanical angle computer inside the B-52 bomber's star tracker

https://www.righto.com/2026/04/B-52-star-tracker-angle-computer.html
361•NelsonMinar•20h ago•93 comments

Ask HN: How did you land your first projects as a solo engineer/consultant?

78•modelcroissant•4h ago•39 comments

Changes in the system prompt between Claude Opus 4.6 and 4.7

https://simonwillison.net/2026/Apr/18/opus-system-prompt/
52•pretext•2h ago•24 comments

Why Japan has such good railways

https://worksinprogress.co/issue/why-japan-has-such-good-railways/
447•RickJWagner•1d ago•423 comments

Updating Gun Rocket through 10 years of Unity Engine

https://jackpritz.com/blog/updating-gun-rocket-through-10-years-of-unity-engine
92•tyleo•3d ago•39 comments

The world in which IPv6 was a good design

https://apenwarr.ca/log/20170810
98•signa11•10h ago•28 comments

It's cool to care (2025)

https://alexwlchan.net/2025/cool-to-care/
32•surprisetalk•3d ago•14 comments

Binary Dependencies: Identifying the Hidden Packages We All Depend On

https://vlad.website/binary-dependencies-identifying-the-hidden-packages-we-all-depend-on/
37•PaulHoule•2d ago•2 comments

Show HN: Prompt-to-Excalidraw demo with Gemma 4 E2B in the browser (3.1GB)

https://teamchong.github.io/turboquant-wasm/draw.html
6•teamchong•2h ago•2 comments

State of Kdenlive

https://kdenlive.org/news/2026/state-2026/
422•f_r_d•1d ago•129 comments

Binary GCD

https://en.algorithmica.org/hpc/algorithms/gcd/#binary-gcd
12•tosh•4h ago•0 comments

Modern Common Lisp with FSet

https://fset.common-lisp.dev/Modern-CL/Top_html/index.html
168•larve•3d ago•21 comments

Migrating from DigitalOcean to Hetzner

https://isayeter.com/posts/digitalocean-to-hetzner-migration/
814•yusufusta•23h ago•406 comments

Optimizing Ruby Path Methods

https://byroot.github.io/ruby/performance/2026/04/18/faster-paths.html
111•weaksauce•16h ago•38 comments

Keep Pushing: We Get 10 More Days to Reform Section 702

https://www.eff.org/deeplinks/2026/04/keep-pushing-we-get-10-more-days-reform-section-702
107•nobody9999•6h ago•21 comments

Metatextual Literacy

https://www.jenn.site/metatextual-literacy/
43•dado3212•3d ago•4 comments

Dizzying Spiral Staircase with Single Guardrail Once Led to Top of Eiffel Tower

https://www.smithsonianmag.com/smart-news/a-dizzying-spiral-staircase-with-a-single-guardrail-onc...
34•bookofjoe•2d ago•17 comments

Sumida Aquarium Posts 2026 Penguin Relationship Chart, with Drama and Breakups

https://www.sumida-aquarium.com/special/sokanzu/en/2026/
227•Lwrless•3d ago•13 comments

Zero-Copy GPU Inference from WebAssembly on Apple Silicon

https://abacusnoir.com/2026/04/18/zero-copy-gpu-inference-from-webassembly-on-apple-silicon/
94•agambrahma•14h ago•37 comments

Bypassing the kernel for 56ns cross-language IPC

https://github.com/riyaneel/Tachyon/tree/main/docs/adr
59•riyaneel•2d ago•23 comments

Thoughts and feelings around Claude Design

https://samhenri.gold/blog/20260418-claude-design/
338•cdrnsf•18h ago•212 comments