I very much enjoyed this one-hour talk by Brian Kernighan:
He’s absolutely right about small languages. Doing a big one is hard to get right.
04 Monday Jan 2021
Posted Interesting
inI very much enjoyed this one-hour talk by Brian Kernighan:
He’s absolutely right about small languages. Doing a big one is hard to get right.
25 Saturday Apr 2020
Tags
Aspect-Oriented Programming, computer language, programming language, Python 101, Python code, Python decorator
Last time I began exploring Python decorators, which are a way of having one function “wrap” another function. Because the wrapper has access to both the input parameters and the return value, it can modify these values (unbeknownst to the inner function).
This time I pick up where I left off by exploring decorators modifying return values, decorators that take parameters, and decorators in classes.
25 Tuesday Jun 2019
Posted Opinion
inTags
computer code, computer language, computer languages, computer programming, computer science, imperative programming language, language design, Object-Oriented Programming, OOP, programming language
This is another note for a friend: a followup to a discussion about how some programmers really hate Object-Oriented Programming (OOP) languages.
Most of those who hate OOP hold up Imperative Programming (IP) as the One True Way to write code. The key difference is the IP is function (or verb) oriented whereas OOP is object (or noun) oriented.
I’ve never really understood that active dislike. It’s just another way to organize the same code you’d write anyway.
20 Thursday Jul 2017
Tags
computer languages, computer programmer, data, Matplotlib, NOAA, programming language, Pythonista, SQL, SQLite, xkcd
In the unlikely event anyone is reading this, and, more in the original spirit of “web logs“, as much a diary entry to record both the passing of time and the moment, after a long period of quiet, and in the long-winded run-on way that I sometimes have, a post.
19 Monday Dec 2016
Posted CS101
inTags
computer language, computer languages, computer programming, computer science, GOTO statement, iteration, language design, loop statements, programming language, recursion
When it comes to what makes a computer (or any other) language a programming language, there are three characteristics usually required:
This post is just a brief note (for a friend) about the third item and why it allows three distinct options.
06 Saturday Aug 2016
Posted CS101
inTags
computer language, computer languages, computer programming, computer science, language design, programming language, Turing complete
Back in the post HTML is not a programming language! I brought up the three properties required by a programming language. A discussion recently got me thinking about it again. This post is just some notes on those thoughts…
26 Tuesday Jul 2016
Posted Fun
inTags
Algol, BASIC, C++, computer humor, computer languages, Forth, humor, Lisp, programming language, valley girl
Cleaning out some old boxes of papers, I came across one of those humor bits that circulate in any profession. Back in the day, it was usually by fax. Then it was email, and now Tweets and other social platforms. (The song remains the same.)
This one concerned “rare” (i.e. made up) languages loosely based on existing languages. The humor depends, mostly, on recognizing parodied languages and certain other topical references (like “Valley Girls”).
In other words, a lot of the funny has sailed, but I found parts of it cute enough to record here…
23 Friday Oct 2015
Posted Stories
inTags
computer language, language design, little programming language, LPL, programming language, syntax
Here’s the last of the oddball Little Programming Languages (for now). This one is a little like LPL-2 in using a three-part syntax (which turns out to be non-ideal). Unlike LPL-3, neither of these are particularly usable languages — more along the lines of being something a language designer amused himself with on a rainy afternoon.
A key goal in LPL-1 was to minimize the use of punctuation characters. No brackets or parenthesis to create syntax blocks. (Square brackets for array indexing and parentheses for expressions, but that’s it.)
19 Monday Oct 2015
Posted Stories
inTags
computer language, language design, little programming language, LPL, orthogonality, programming language, syntax
The language I showed you last time, in LPL-3, was a fairly reasonable one. This time I’m showing you a preposterous one no one would actually use. Worse, it turns out to be something of a failure due to weird holes left by the design goal of orthogonal single-syntax construction.
But that oddness helps us focus on what a programming language actually is, so it’s worth a peek. And maybe it’ll give you a laugh.
12 Monday Oct 2015
Posted Stories
inTags
computer language, language design, Lisp, little programming language, LPL, programming language, syntax
I’ll pick up with the language I began describing last time in a future post. Right now I want to pick up the thread of Little Programming Languages (LPLs) and use several examples to illustrate what underlies a programming language. (And as it turns out, these are “little” only in a certain sense.)
This first example, LPL-3, is Lisp-like and, because of that, is fairly orthogonal. Even better, it’s probably actually usable, although — like Lisp — it doesn’t have the cleanest syntax (languages like Python have really spoiled me).