The Craft of Coding
craftofcoding.wordpress.com · Personal blog · on HN since 2019
A programming language blog on Fortran, Algol, Ada, and C, covering language history, features, and teaching coding.
What HN saysHN links it for early language history, such as Algol-60 introducing recursion, and uses it alongside Dijkstra's critiques of language designs.
18HN people shared it
9linked it in comments
30stories submitted
560story points
1 year agolast shared
2019people per year2026
Most-shared posts
- 1Fortran is easy to learn1 people · 100 points · first shared 2022 · 122 comments on HN
- 2Algol-68 seemed like a good idea1 people · 82 points · first shared 2024 · 83 comments on HN
- 3What Fortran does better than C-like languages1 people · 76 points · first shared 2022 · 88 comments on HN
- 4Languages Pre-Fortran1 people · 71 points · first shared 2022 · 24 comments on HN
- 5Dijkstra on Ada1 people · 65 points · first shared 2025 · 47 comments on HN
- 6Forget about teaching kids to code1 people · 54 points · first shared 2022 · 68 comments on HN
- 7Coding in Ada: Strings (IV) Unbounded to String1 people · 34 points · first shared 2021 · 17 comments on HN
- 8In C, memory management begins – The Craft of Coding1 people · 10 points · first shared 2024 · 1 comments on HN
- 9The Timeline of Fortran1 people · 8 points · first shared 2022 · 1 comments on HN
- 10In C some things aren't what they seem1 people · 8 points · first shared 2024 · discussion on HN
- 11Is this the weirdest thing in C?1 people · 8 points · first shared 2024 · 6 comments on HN
- 12Why Star Wars tech was often so secure – The Craft of Coding1 people · 6 points · first shared 2024 · discussion on HN
- 13Why slow computing was a better learning experience1 people · 4 points · first shared 2021 · 1 comments on HN
- 14Why is so much modern software garbage?1 people · 4 points · first shared 2025 · 4 comments on HN
- 15Niklaus Wirth on Programming in 19681 people · 4 points · first shared 2024 · 2 comments on HN
What HN people wrote when they linked it
surprisetalk · 2023-05-04
I've always considered Fortran to be the "first", but with some quick research, it looks like Algol was the first C-like lang to add an if/then statement. My guess is that the author was trying to approximate modern imperative programming.
[1] https://craftofcoding.wordpress.com/2021/01/11/why-algol-bested-fortra…
shadowofneptune · 2022-11-18
One feature, as far as I can tell, that no languages had until Algol-60 was recursion (https://craftofcoding.wordpress.com/2020/12/01/recursion-the-algol60-y…
It's hard to imagine nowadays how controversial this was. Previous versions of Algol did not necessarily require any form of dynamic memory allocation. Recursion requires it in some form to avoid overwriting a procedure's variables upon the recursive call.
Languages that forbid recursion (like Fortran before F90) can allocate for peak memory usage before runtime, which is especially useful on RAM-poor computers.
EDIT: The site also has a great quote on the subject (https://craftofcoding.wordpress.com/2022/10/20/d%c8%b3kstra-on-the-dif…
cpeterso · 2025-05-22
Some biting critiques from Edsger Dijkstra:
Red: “the proposal is both advanced and backward in such an incongruous manner that I am baffled”
Green: “technical incompetence, probably enhanced by dishonesty”
Blue: “the blue language is unacceptably complex” … “these documents are an inextricable mixture of technical documentation and salestalk”
Yellow: “an unsalvageable mess”
https://craftofcoding.wordpress.com/2014/04/16/dijkstra-on-ada/
trealira · 2024-07-11
That reminds me of this program, which calculates the month and day given the year and the day of the year [0]. There's a version that abuses goto, and one that stores state in variables and only uses structured statements. You probably won't see people similarly abuse goto today, though. I think it was translated from Fortran.
[0]: https://craftofcoding.wordpress.com/2020/02/12/the-world-of-unstructur…
helph67 · 2024-03-28
Here's one possibility... https://craftofcoding.wordpress.com/2020/05/28/fibonacci-and-pineapple…
ivan-pi · 2022-04-06
Depends on your needs. Sometimes you just need a hammer. Michael Wirth had a few comments about Julia recently: https://craftofcoding.wordpress.com/2022/03/14/why-i-have-given-up-on-…
sevencolors · 2019-12-04
Was curious how a statement was converted to punches. Found this.
https://craftofcoding.wordpress.com/2017/01/28/read-your-own-punch-car…
Imagine only programming with 64 CHARACTERS :)
ogogmad · 2024-11-09
I've just looked at this snippet, which the blog used back in 2017 to illustrate that Algol 68 was "utter madness": https://craftofcoding.wordpress.com/2017/03/06/a-brief-look-at-the-utt…
COMMENT Algol 68 program to calculate the Sieve of Eratosthenes for some upper limit N COMMENT PROC eratosthenes = (INT n) []INT: ( [n]INT sieve; FOR i TO UPB sieve DO sieve[i] := i OD; INT k = ENTIER sqrt(n); sieve[1] := 0; FOR i FROM 2 TO k DO IF sieve[i] NE 0 THEN FOR j FROM i*i BY i TO n DO sieve[j] := 0 OD FI OD; sieve ); INT n; print("Upper limit to calculate sieve? "); read(n); print((eratosthenes(n), newline)) A few things: This code is very readable. The blogger didn't understand it because he didn't understand what the "Sieve of Eratosthenes" did: It's a means of calculating lists of prime numbers. He incorrectly stated that it was used for calculating Fibonacci numbers.
Syntax-wise, it looks like some mix of Go, C and Python. Nothing at all unusual. It would be pretty easy to learn to program in this, and comfortable too.
[Edit: The blogger later demonstrated a good understanding of the Sieve of Eratosthenes, but still expressed criticism of Algol68: https://craftofcoding.wordpress.com/2021/04/06/algorithm-35-the-sieve-…
Vt71fcAqt7 · 2023-10-05
Has anyone found the source for that tablet? All I have found is this:
>Note that quite a few descriptions on Babylonian tablets seem to cite a translation of a Pythagorean algorithm from a ca. 1900BC tablet by a Dennis Ramsey – I have not been able to find the original source of this anywhere.[0]
The linked arctile cites wikipedia and bible-history.com. This book[1] misquotes the supposed tablet as being ycb 7289, probably because these tablets are referenced next to each other on wikipedia.
This[2] website says it's in the British museum.
[0]https://craftofcoding.wordpress.com/author/spqr/
[1]https://books.google.com/books?id=XDBCEAAAQBAJ&pg=PT257&lpg=PT…
[2]https://mathshistory.st-andrews.ac.uk/HistTopics/Babylonian_Pythagoras…