If linux distros were programming languages

Without further ado, “tux” a go!

Gentoo is clearly Haskell, no doubt. Both of these are misunderstood and considered “hard yet flexible”

Debian is C. Both of them existed from the start, and were used to influence many modern distros/languages

Arch is Rust. Both of them became super popular, the internet darlings XD which have a steep learning curve. Hahahaha

Ubuntu is … I don’t know honestly. It is used a lot, based on Debian, not that straightforward… Python I guess(although Fedora also is Python)

Linux Mint is Scratch. Both are (too) simple.

Red Hat Enterprise is Java. Both buff beasts are enterprising, but they need money!!

Fedora is Python. Both are straightforward, heavily-used, and like Fedora is based on Debian, Python is based on C.

Manjaro is Golang. Although Go isn’t based on Rust, it is still the internet darling simplified like how Manjaro is Arch simplified.

Elementary OS is Swift. They both are very easy to use, remind me of Apple(hey macOS is still cool because it’s in the Unix family)

Chrome is Javascript. Both are hated, with very valid reasons. But they still are popular, and that’s called P A I N

1 Like

actually fedora isn’t based on debian, its on redhat. I will consider fedora to be Scala. Pretty scalable, get it?

1 Like

@TerminalDweller
So which distro is FORTRAN?
And does Void have a language mate?
Neville

I was about to complain that you compared shit like C to Debian, but your reason for doing that comparison sounds reasonable. These two aspects you mentioned are correct.

Fortran might be Slackware. It was the first after all.

Void would be … Lisp. End of.

C isn’t shit. It is a good language. Though I agree. Memory management does stink, doesn’t it? That’s what systemd is. It represents the pain by not having a garbage collector

You just lost all credibility in two sentences. :laughing:

It’s not about the memory management per sé. It’s that C is shit. Everything about the language is shit.

You have to remember, @Akito , that when C (and Pascal) arrived in the 1970’s they were a major advance in structured programming, compared to what Fortran offered before then.
Time has moved on, and other better languages have arrived, but most of the newer languages are built on what was learned from the C era.

And @TerminalDweller , I think this is a great post. Thank you.

Oh, and memory management never phased me. At least C allowed use of dynamic memory, earlier languages were all static.

Neville

Indeed. But I’m talking in 2022.

Is written in present tense. So, it is not correct. If it were to be written in past tense, I would not object.

Right, but things are best judged in their time
Caesar was a rather successful political leader, but his way of doing things would not go over today.

and

It is the legacy that matters. The changes C et al made in 1970 are still with us and still valuable even though they are only a part of a larger and better software environment now.

Neville

Caesar is dead. C on the other hand is artificially kept alive, even though it should’ve been kept dead. More so, it should’ve been removed entirely from the world of most widely used programming languages.

If people would, for example, use Rust everywhere, where C is now, suddenly all programs would work better and more reliable, just by doing that. However, by using C, they are deliberately making a program worse, by making it unsafe, unreliable and unprovable to work for certain.

Using C voluntarily is like cutting off your foot before running a marathon, for no reason at all. And you cannot re-attach the foot, because the damage is done, forever. Same with C. The damage by C cannot be undone.

C is a good language for learning how a programming language should not be. It’s raw and does nothing, but break things. It’s good for computer science students, to learn the internal of a computer and how a compiler works, etc. That’s it.

C is the chainsaw people use to cut off their own limbs, because they don’t know better.

That’s the whole issue. This is also why I don’t hate FORTRAN. It’s gone and that’s good. C is not. It still remains, even though it’s the biggest programming failure, aside from C++, which is slightly worse.

1 Like

I would say a lot worse. It turned a nice simple language into a mire of complicated constructs.

I must ask, are there still some things that can only be done in C or an equivalent lowlevel language?
eg, until julia , C or Fortran were the only languages efficient enough for big calculations. What about realtime stuff, like controlling machines?
What about maintainability … Eg NASA made space probes that were programmed in Fortran… 40 years later those same probes are still active and require Fortran programmers to maintain them. There are lots of things that last a long time and have embedded C.

And I must ask about teaching. You said C is still a good teaching aid. Pascal is probably better.
I think all old software (and hardware) have a place in education … we need to know how we got to here. There are lessons in history.

So who would use C today, and what for? Apart from old fools like me who just do it because learning something new is a big effort.
Well not quite … I am getting there with Julia.

Julia has a big problem. The current version is incompatable with libcurl new release… It cant download any packages so it is virtually useless. The julia maintainers need to get their act together. At least that doesnt happen with C

regards
Neville

@nevj
You guys are way over my knowledge level!!! So what does this have to do with basic computer savvy?

It was originally a joke comparison comparing linux to programming languages with what they have in common, and then @Akito started saying C was shit, I was justifying C wasn’t that bad, and nevj also agreed, and then a debate started between them about C being good/bad

It is about history of computing … linux versions over time tend to follow the same pattern as programming languages, so there is a correspondence which @TerminalDweller pointed out in his you beaut analogy.

Its also about having fun, laughing at past mistakes in both Linux and languages

Cheers
Neville

Hello there…



Just for the lulz…

4 Likes

I don’t really understand this thread…

Aren’t nearly all of those languages derivatives of C in one form or another?

C
-  C++
    - java
- go[lang]

and isn’t rust highly derivative of C???

I made the mistake, at Uni, after three “units” doing Pascal, and one unit x86 assembler, of attempting C and C++ in a single unit/course - I failed miserably, and stupidly left it too late to withdraw…

The only programming “languages” I know are “sh” (and its descendants csh, tcsh, ksh, bash and zsh), and Pascal… I can still kinda remember Pascal, but all that x86 assembler stuff I learned has gone - KAPOOF!


update - and what about COBOL?

1 Like

Yep, and Julia too. Nothing is built from scratch… it is built on the decay of previous efforts. In a sense, all compiler languages are derivatives of Fortran

 I can still kinda remember Pascal,

I rather like Pascal. I learnt it before C, and it was a good introduction. Pascal is probably THE best teaching language - and the Jensen and Wirth book is one of the classics of structured programming.

I can understand how you can survive in the Systems world with just scripts and no programming. There is a separation of skills, at least in business computing. In scientific computing it is different … programmers tend to rule the roost, because every project is new and different.

what about COBOL

It came just after Fortran, and like Fortran it filled a big hole at the time, getting people off assembler.
If you really want to appreciate compilers, write something to add up a row if numbers in assembler, then rewrite it in Fortran.
The difference between assembler and Fortran is orders of magnitude greater than the difference between Fortran and any later language. That was the biggest advance ever.

Cheers
Neville

I see, I have to elaborate to make myself clear enough, to not be misunderstood.

I’ll try to elaborate using examples.

Humans have a hard life. They shouldn’t be bothered with more problems, than they need to. I think, everyone agrees with that.

Programming languages deliver ways of talking to a computer. By using them, a human is able to instruct a computer to do certain actions and operations; deliver results.

Life was hard. When a couple of kilobytes RAM and a 100MB HDD were immensely huge and expensive, life was hard in the computer world. It was a wild and tough world. Small, too, but that makes it even tougher, as fewer members would be able to support you in issues. Most of the time, you were alone reading a 500 page physical book about computers in a library.

Luckily, life got easier. We got more RAM. We got more CPU power. We got cheaper PCs. I think, if you look at the Raspberry Pi project, enough is said. You know, life has progressed. Life has improved.

Back then, there was ALGOL 68.
Hell, most of you veterans even extensively programmed in Assembly!
Tell that to someone, who just started out with Python or whatever… It’s a different world, with easier ways for humans to interact with computers.
We got rid of FORTRAN. It has no significant impact in the world of popular and most used languages around the world. It’s mostly used for legacy projects and for special purposes, but it’s not a general purpose language, one picks for a new project. In fact, I haven’t seen a single new project written in FORTRAN and I also have never seen any project made with FORTRAN on Github, by accident. I would need to explicitly search for one, to find one.

We got rid COBOL. It’s pretty much only used for maintaining very old legacy projects, often in the finance sector. Nobody will use COBOL for a new project. For good reasons, there are much better and modern alternatives, fitting our current world.

Of course, we also got rid of all ALGOL and the different versions of it. Antiquated, complicated, old. It reeks of 80 year olds talking about post-war programming. :laughing:

I hope you get where I am getting it by now…

We are progressing. We are going further. We are improving the computer world. Every single day, the world uses more and more computers for any task. The world becomes computerised. We need modern and fitting technology for today, to be able to properly solve today’s tasks. Not the tasks from 50 years ago…

Now, we made progress everywhere. We got rid of shit. We got rid of huge monolithic projects. Pretty much all new projects I know of are written in Microservices or similar architectures. We use Kubernetes. Docker. We use all the new shit. Well, at least for new projects. I admin, there are more than enough legacy projects out there, doing the same mistakes since 20 years, just because it wasn’t a mistake yet, 20 years ago.

Now, in all this hype, all this luck, all this modernity, all this looking forward, we are stuck with C in the systems programming market. What the hell?

I ask you, do you want to program in Assembly?! HELL NO!

I ask you, do you want to program in COBOL?! HELL NO!

I ask you! DO YOU WANT TO PROGRAM IN ALGOL 68?! HEEEEELL NOOO!!!

I ask you, do you want to program in C…

And there it is. Suddenly, some people from somewhere below, wake up and start raising their bodies. Zombies? Sleeping elitists? Bearded men trapped in a mount’s crevice? Or maybe just harmless oldies, who did not take their meds?
Not sure, if this mystery will ever be solved… To be continued…

Do they come from deep underground caves, having slept for the past 30 years? Or did they literally raise from ground, below a forest? We won’t ever know this…

Anyway. They start saying “yes, I mean, there are reasons… bla… bla… blabla…”. And I’m just standing there, shocked, and say to myself WHAT THE FUCK!!

“We have Rust, we have Nim, we have Go, and counting! We have so many alternatives… For every flavour of systems programming, you have your take. YES!!! Even for speed. Rust and Nim do not show any notable impact on performance, in all tests performed to this day.” I scream.

“But C has been there forever… bla… amount of libraries… bla…blabla… compatibility with existing… blalblalglblsdfljhadsfjlhfsdascvcc…” they mutter.

Like, with this attitude of these dumb or elitist pricks, we would still be stuck with COBOL and ALGOL 58!! We wouldn’t have gotten Java, Go, C#, etc… Heck, even Python. I hate Python, but it’s sure as hell better than any line of production C code, I have ever read in my life.

There is a reason we got rid of COBOL and its friends. Back then, it was fine for the time and its context. Now, it’s just crap, we don’t want to use.

Despite all that, we still have people, who think C is a valid programming language in 2022. It’s not. It hasn’t been for the past 10 years.
It was fine back, when it was created. In fact, it was a bit revolutionary. But knocks on your head wake up! This was decades ago!

C is so cancerous and so hated by myself, because it keeps popping up everywhere. It’s everywhere on Github. It’s everywhere in production, around the world. So many projects are polluted with this pest.
It seems like you cannot get rid of this viral infection. Sure, even Linux has a huge impact on this. And this is also what I hate about Linux. It promotes the usage, at least indirectly, of some antiquated shitty ass language, which should’ve been buried at least 10 years ago.

There is a reason the word cancer starts with a C!

Now, to put the cherry on top of this rant, here is a tiny example, representing the very tip of the iceberg. The 1 nanometer wide very tip of the iceberg; the whole iceberg being bigger than all mountains on earth united…

int main()
{
	int a;
}

What is this? What the hell is that? What is a?

You tell me, what a is. Go on. If you will ever tell me what a is supposed to represent, then I will re-evaluate my evaluation of the C Programming Language.

1 Like

It represents a static space where an integer might be stored.
It is a declaration, not an assignment
The ‘a’ is just a symbol which might be used to refer to the space, later on.
OK it is a meaningless symbol, but that is not C’s fault, one can use meaningful symbols in C.
Some programmers like to make code brief and obscure and so use symbols like ‘a’ and there are conventions that everyone
understands like using i,j,k,l,… for loop counters, just like there are conventional symbols in maths.

we are stuck with C in the systems programming market. What the hell?

C got there first. C was the first language to make it feasable to write an OS in portable code. That was a big step, before that OS’s were written in assembler. So it is a bit like beta and vhs tapes … winner takes all.

Can I ask. Is there any language today that would be up to the task of making an OS in portable code? Things like Julia are not in the race … an OS has to be compiled. Tell us what the options are?

Neville

1 Like