this post was submitted on 29 Jan 2025
53 points (88.4% liked)

Programming

17978 readers
137 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

I regularly hear people asking which programming language to learn, and then reeling off a list of very similar languages (“Should I learn Java, C#, C++, Python, or Ruby?”). In response I usually tell them that it doesn’t really matter, as long as they get started. There are fundamentals behind them.

What do I mean when I say fundamentals? If you have an array or list of items and you’re going to loop over it, that is the same in any imperative language. There is straightforward iteration and there is iterating over all unordered combinations and a few other patterns, but those patterns are basically the same in C, Java, Python, or Fortran. Having neural pathways that fluently express intention in these patterns, the same way you express thoughts in sentence structures in English, are fundamentals.

But not all languages have the same set of patterns. The patterns for looping in C or Python are very different from the patterns of recursion in Standard ML or Prolog. The way you organize a program in Lisp, where you name new language constructs, is very different from how you organize it in APL, where fragments of symbol sequences are both the definitions of behavior and become the label for that behavior in your mind.

These distinct collections of fundamentals form various ur-languages. Learning a new language that traces to the same ur-language is an easy shift. Learning one that traces to an unfamiliar ur-language requires significant time and effort and new neural pathways.

top 27 comments
sorted by: hot top controversial new old
[–] Rogue@feddit.uk 3 points 3 hours ago

tl;dr

When an enthusiastic novice asks what language to learn you should pretentiously tell them it doesn't matter because the majority in use today are similar and trace their roots to the same source.

For pretentious reasons we'll define that source as an *ur-*language because that's a defined prefix that nobody uses in reality so it's a great way to assert I'm more cleverer than you.

Now, here's a long rambling lesson on other ur-languages that nobody uses because they're overly complex but because I'm so much cleverer I clearly know them all.

To conclude I've ignored your original question but don't worry, here's a link to the programming course I sell.

Once you've completed your first you shouldn't bother putting it into practice but instead every year try a language completely unrelated to the first so it's extra difficult. Just ignore the fact it's guaranteed to be a dead language nobody uses in reality. it's more important to be different than have practical skills.

[–] 0x0@programming.dev 17 points 2 days ago* (last edited 2 days ago) (2 children)

So, dear OP, what are the Seven deadly ur-languages?

[–] cafuneandchill@lemmy.world 14 points 1 day ago (2 children)
  1. ur mom lmao
  2. Uruk-hai
  3. Urethra
  4. Urdu language
  5. Ursa Major
  6. Ursa Minor
  7. Uranus
[–] TomasEkeli@programming.dev 3 points 5 hours ago (1 children)
[–] cafuneandchill@lemmy.world 1 points 5 hours ago

I like how you think, fellow lemming

[–] bleistift2@sopuli.xyz 2 points 15 hours ago

One of the Ursas could have been The Game of Ur

https://en.wikipedia.org/wiki/Royal_Game_of_Ur

[–] aaron@lemm.ee 18 points 2 days ago

OP just wanted to use "ur-" and got carried away

[–] onlinepersona@programming.dev 8 points 1 day ago (1 children)

This article could've been: learn the different paradigms, here are my favorite languages that follow the paradigm. Done.

Anti Commercial-AI license

[–] Fades@lemmy.world 7 points 1 day ago* (last edited 1 day ago) (2 children)

Honest question, do you believe that your anti-ai license has any measurable impact on what these companies do with the data they vacuum up from your comments?

Using licenses to take a political stance is a valid idea. It’s even worthwhile, if there’s little uptake for it. Signaling opposition even if it’s symbolic only, has some value.

An aggressively scraping AI company could easily ignore it and it would be hard to prove a violation.

[–] onlinepersona@programming.dev 4 points 1 day ago* (last edited 1 day ago) (1 children)

Let me rephrase your question: does individual action have impact on the whole?

With that kind of thinking, nobody should do anything ever. No need to vote because your will as a single voter doesn't matter. No need to stop eating meat because most others won't. No need to try to reduce energy consumption because most others won't. No need to boycott a product because most others won't.

So, honest question back: is that really how you want to think?

Anti Commercial-AI license

[–] Corbin@programming.dev -2 points 20 hours ago (1 children)

Open your mind a little; collective action has an impact but individual action may not. Paraphrasing Cloud Atlas, certainly an ocean is nothing more than a vast collection of raindrops, but each individual raindrop collectively acts as a body of water. This dissolves your false dilemma.

[–] onlinepersona@programming.dev 2 points 20 hours ago

I'll give you the benefit of the doubt and assume you were responding to another comment, because in response to mind it doesn't make any sense...

Anti Commercial-AI license

[–] furrowsofar@beehaw.org 9 points 1 day ago* (last edited 1 day ago)

In college, one of the best courses I took was Programming Languages. It covered a smattering of languages illustrating different approaches and methods. Maybe a week or so on each plus you had to write some code in each.

[–] Kissaki@programming.dev 12 points 2 days ago* (last edited 2 days ago) (5 children)

Is ur an English word? Known meaning in English languages? I don't think so? I'm surprised they don't mention why they name it ur-languages.

In German, the word prefix ur means origin, stemming from the word Ursprung (origin). Which makes sense as origin-languages. And could have been named origin-languages, honestly.

[–] senkora@lemmy.zip 4 points 21 hours ago* (last edited 21 hours ago)

Yes, but it’s a prefix and can’t be used as a word on its own.

I am a native English speaker and I know it. It’s rare though.

Same meaning as in German and apparently we borrowed it from German.

https://en.m.wiktionary.org/wiki/ur-

Ur is used in German a lot to signify something being ancient or the origin.

Großvater means grandfather. Urgroßvater means great-grandfather.

Ursuppe - Primordial soup

Urknall - Big Bang

Ursprung - Origin

English uses it as a loan word and prefix.

[–] syklemil@discuss.tchncs.de 4 points 1 day ago

Smells a bit Scandinavian to me. In Norwegian we also use "ur" that way, including "urspråk" (Ursprache, ur-language). We have a different word for origin (opphav), so ur remains a prefix that's difficult for us to translate.

Going by Wikipedia however, the English translation for Norwegian urspråk and German Ursprache is proto-language.

[–] brisk@aussie.zone 13 points 2 days ago* (last edited 2 days ago) (1 children)
[–] Kissaki@programming.dev 4 points 2 days ago

Ah, I looked there on Wiktionary, but only ur not ur- 😅

[–] rayquetzalcoatl@lemmy.world 6 points 2 days ago

Oh! I assumed it was something to do with the city of Ur, being some sort of analogy for the root of civilisation or something

[–] Treczoks@lemmy.world 9 points 2 days ago

Amazing. I can give myself 6/7 points - I have not done anything in ML, but I've seen Miranda, and it was a clusterfuck...

And what he completely left out are HDLs like VHDL and Verilog, which are a totally different animal requiring a totally different mindset. And I have seen otherwise seasoned programmers being unable to grasp this area of expertise.

[–] steventhedev@lemmy.world 5 points 2 days ago (1 children)

Why choose self as the exemplar? It may be the "purest", but the list isn't based on "purest" or pascal would be the exemplar of structured languages.

At the very least, improve readability by moving the disclaimer from the last sentence of the section to the first.

[–] Corbin@programming.dev 4 points 1 day ago (1 children)

Self's descendants are not well-understood in our popular culture. The two most popular (Turing-complete) languages, ECMAScript and Python, are both Self grandchildren, and Java is also a child of Self; yet, the article's author incorrectly believes them to be ALGOL descendants because of surface syntax as well as the Java/ECMAScript focus on performance. Note also that the author doesn't mention E (WP, esolangs), which is akin to Erlang in making message-passing explicit but descends from Self, unlike Erlang which descends from Prolog. (I will give them partial credit for noting that Smalltalk is an ancestor of Java.)

So, the exemplar should be a message-passing everything-is-an-object language designed for JIT with no Prolog influence. The earliest such language in the family tree is Self!

[–] tyler@programming.dev 1 points 6 hours ago

Not sure about a lot of these different languages, but Ruby claims to have taken many many many of its features from smalltalk, so the article is quite strange in that regard too.

[–] drspod@lemmy.ml 3 points 2 days ago (1 children)

Where is INTERCAL, the ur-esoteric language?

[–] Corbin@programming.dev 4 points 1 day ago

INTERCAL is an ALGOL descendant. A holistic timeline of esoteric languages shows that esoteric languages don't form a family; however, there are several families not mentioned in the article, notably cellular automata and string/wire diagrams.