Live data from Hacker News

The seven programming ur-languages (2021)

madhadron.com

171–180 of 326 posts

Re: The seven programming ur-languages (2021)

#171

I think reactive/synchronous languages [1] deserve a category of their own. They share little/no overlap with any of the others. My background in electrical engineering biases me to Verilog, VHDL, and LabVIEW as exemplars, but there are many others. The distinguishing characteristic of the category is that programs are effectively declarative functions of time and can be composed as such, much like electronic circuit…

Paradigm-wise I find these the most interesting. All the others (maybe except prolog) are really just different ways to write a sequence of instructions. HW definition is fundamentally different. It does everything all the time and you have to figure out how to make it do what you want. Lots of opportunities for tricks to sneak in some calculations on temporarily unused wires, etc.

Re: The seven programming ur-languages (2021)

#172
post #109
post #9

Pretty excellent summary, this is roughly the taxonomy I have in my head. I would maybe add SQL as an ur-language as well. It's not quite general purpose like most of these, but it should have a place in this list, I think. It has some kinship with Prolog and the declarative style, but it's really it's own thing. You could also maybe argue for something like LabView. Many programmers look down on purely graphical pro…

SQL might be in its own category or not, but it shares a trait that languages in other categories ended up with: "I know, we'll make it kind of like writing English so that people who aren't experts can program!". This is one of those things that seems to keep coming back - recently in the Ruby world with Cucumber.

SQL is based on Relational Algebra a mathematical foundation for modeling, factoring and joining data. In this it’s probably unique. Other languages may be based on other mathematical models such as pure functional languages being based on lambda calculus etc.

Re: The seven programming ur-languages (2021)

#173
post #166

Earlier quoted context omitted.

The reader shouldn't have to reverse engineer a document! https://en.wiktionary.org/wiki/ur- Jesus! I thought these navel gazing low effort language posts went out of favor in 2012. I know all of these languages and Forth isn't foundational for anything we currently use, maybe the JVM because it has a stack if you really try and torture the definition. It is just a collection of languages so the author can look smart…

Looking up words you don't know =/= Reverse engineering

It is prefix from German, given with zero explanation. The article had no thesis other than, "languages people should know about", sorta.

The prefix isn't even used properly.

Re: The seven programming ur-languages (2021)

#174

Earlier quoted context omitted.

> I suspect that's a pretty non-standard/rarely-used feature though. If you learn SQL you likely won't encounter this Recursive common table expressions are part of the SQL standard (since 1999) and are quite frequently used to traverse hierarchical data (aka "adjacency list"). It is part of basically all (good) SQL tutorials - at least in the "advanced" part.

I don't remember using recursion in a real project, but I built a HN clone on top of Postgres, with the following query: WITH RECURSIVE thread(id, parent_id, user_id, post_id, timestamp, text, depth) AS ( SELECT id, parent_id, user_id, post_id, timestamp, text, 0 FROM comments WHERE user_id = 1 AND parent_id IS NULL UNION ALL SELECT c.id, c.parent_id, c.user_id, c.post_id, c.timestamp, c.text, t.depth + 1 FROM commen…

I wrote a recursive CTE to do a tree traversal on a parent-child “relationship” table a few weeks ago at work.

They do come up!

Re: The seven programming ur-languages (2021)

#175

Earlier quoted context omitted.

The distinction in ALGOL, Pascal etc. is useless. But if you change your definitions such that expressions always evaluate to a single value and do not have any side effects while statements produce some kind of side effect (and may or may not yield a value), the distinction becomes important. Especially if you believe side-effects need special handling (i.e. you are a functional programmer).

The only popular language I can think of that requires side effects to be declared is Haskell. Which doesn't have a distinction between statements and expressions. Are there any good examples of languages that have it, where it isn't "useless"?

python, javascript, pretty much any language that is popular. I believe everything in Haskell is an expression, even the do notation, no?

But I think the argument being advanced is that the distinction between statements and expressions is fundamentally unnecessary. I don’t really know of any good argument in favour of them: I tend to think lisps have the perfect and simplest possible syntax.

Re: The seven programming ur-languages (2021)

#177
post #53

Agree on the families, but I would pick a different representative for many of the categories. Algol -> C. Mostly because you can actually do things with C, and yet it remains a fairly small language that's a relatively pure exemplar of the Algol tradition. Lisp -> Scheme. Also because it's a tiny language that tries to push the fundamentals of the Lisp family (code-as-data, recursion, functional programming, macros)…

I'm not sure if it's common knowledge that "ur-" means "original".

[deleted]

Re: The seven programming ur-languages (2021)

#178
Most of these are too old for me but ive always had this idea of fundamental language paradigms too.. my ur-languages are maybe Python, Lisp, Haskell, SQL. If you drop the requirement to choose the oldest language in each paradigm (which is more practical from a learners POV), there are many sets of basis vectors (languages) that cover the entire vector space (all language features).

Re: The seven programming ur-languages (2021)

#179
post #166

Earlier quoted context omitted.

Looking up words you don't know =/= Reverse engineering

It is prefix from German, given with zero explanation. The article had no thesis other than, "languages people should know about", sorta. The prefix isn't even used properly.

It is part of the English language. More commonly used in academic vernacular.

Re: The seven programming ur-languages (2021)

#180

Objective C is a good example of a Smalltalk derived language that was in heavy use for a while. Even though it's technically a superset of C, in actual use it's more like a message passing language.

Still in heavy use, given the number of devices Apple sells every year.
Post reply on HN