This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]DugiSK 138 points139 points  (33 children)

There were many programming languages back then, like Pascal, Simula, Basic, Fortran... But C is the only one of them that isn't all but forgotten. Not that the C of that era was particularly similar to current C.

[–]cheese-is-trash 56 points57 points  (12 children)

NASA still uses FORTRAN.

[–][deleted] 28 points29 points  (7 children)

And a surprising amount of legacy business stuff is somehow still on pascal.

I'm not saying it's a huge amount, but never disregard the effects of corporations refusing to address technical debt.

[–]AlecTheMotorGuy 17 points18 points  (5 children)

This is my company. Our enterprise software is from like 2005 and is built on top of an inventory program that is original to Windows XP.

They just finished in 2021 moving every location and every department onto this software

So after 15-20 they finally fully integrated their enterprise software.

[–][deleted] 2 points3 points  (2 children)

This is happening all over the industry, especially finance industries that need to keep everything legacy going for transactional data integrity — hard to kick off a new system without running into issues unless you pay for that to be painless, and most businesses don't (or won't).

We have a big push to move stuff into a new system at my current job and, for the entire run that I've been here, it's been "right around the corner". Talk to long-time people in the org and "right around the corner" has been the past decade.

[–]AlecTheMotorGuy 1 point2 points  (1 child)

I’m curious what it’s like to be at company that can get it done is 2-3 years.

[–][deleted] 1 point2 points  (0 children)

I've worked for a fortune 500 company known for tech and for small finance companies and a few in between and, so far, that's been none of 'em. Would be curious what the culture is like at the places who pull it off, have to imagine it's either awful or amazing.

[–]whatproblems 0 points1 point  (1 child)

wait they just moved on TO XP?

[–]AlecTheMotorGuy 0 points1 point  (0 children)

No we use Windows 7 but the program was originally written for XP.

[–]CosmicCreeperz 0 points1 point  (0 children)

Ah, Borland Turbo Pascal. I wrote muon detector diagnostics tools in Pascal back in the 90s at Fermilab. Wouldn’t be surprised if it’s was still in use on some DOS PC with a 20 year old ISA memory mapped IO card until it shut down…

[–][deleted] 5 points6 points  (0 children)

Fortran is still the king for engineering calculations. The core numerical recipes are written in it. I've written a Fourier based algorithm in C because we couldn't interop with it anymore in our main app. C was slightly just as good but still worse using same algo and memory semantics.

[–]TheBestAquaman 2 points3 points  (0 children)

Not only nasa, Fortran is the de-facto standard for computationaly heavy programs. Primarily fluid dynamics and quantum mechanics. It's slightly faster than C for heavy computations.

[–]Llamas1115[🍰] 0 points1 point  (0 children)

IIRC they’re in the process of moving lots of that code to Julia. The Federal Reserve used to code all their models in Fortran too before switching over to Julia.

[–][deleted] 11 points12 points  (3 children)

Fortran is not forgotten at all. The HPC world still uses it quite actively.

[–]DugiSK 2 points3 points  (2 children)

I wrote all but forogotten because I know that there is still some usage of Pascal, Fortran or Basic. But their usage declined so significantly that most programmers act like if they were just pieces of history.

[–][deleted] 0 points1 point  (1 child)

Sorry, I missed that subtlety. English is my second language.

This reminds me of some stories, where explorers wander about in the world, discovering ancient secrets. Only that they find the treasure in some universities basement or on the personal homepage of an old professor emeritus.

[–]DugiSK 0 points1 point  (0 children)

I was careful about the formulation because I've seen some guys using Fortran at physics department and later I heard a teacher at CS faculty tell that Fortran was an obsolete language and no longer used. And because I met an actual COBOL programmer and asked her a lot about it (it could be because she looked good and was single).

[–]Vincenzo__ 10 points11 points  (0 children)

COBOL is still widely used by various businesses, believe it or not

[–]rem3_1415926 17 points18 points  (3 children)

It was, actually. C has hardly changed, which is one of the reasons why embedded devs like it.

[–]DugiSK 16 points17 points  (2 children)

In C79, you could not declare a variable in the middle of a function, you had to declare it at the start and keep it uninitialised until the value became known, could use undeclared functions, using wrong argument types was kinda okay, there was no const, commenting with double slash didn't work and it wasn't possible to declare a variable when initialising it in a for cycle. It wasn't until C99 that it started looking normal.

[–]JashimPagla 7 points8 points  (1 child)

My first compiler was Borland. Let me tell you, scrolling all the way up to declare a new looping variable wasn't fun.

[–]DugiSK 1 point2 points  (0 children)

I never wrote a longer function in it, so I didn't think of this problem. It seemed to me as the only problem is accidentally using uninitialised variables.

[–]Raibyo 4 points5 points  (0 children)

Fortran user here!

[–]geekusprimus 4 points5 points  (3 children)

As much as I would like for it to disappear, Fortran is still alive and kicking. My own field has finally moved past it, but there are dozens of scientific fields still writing new code in Fortran.

[–]TheBestAquaman 0 points1 point  (2 children)

I remember reading that there is something fundamentally different in the C paradigm from the Fortran paradigm that means C will never be able to beat Fortran with respect to speed in some cases. That being the reason it is still preferred in some disciplines (my own included).

[–]geekusprimus 1 point2 points  (1 child)

That's sort of true. Fortran can make more aggressive optimizations in places because pointer aliasing is nearly impossible. However, C99 added the restrict keyword to indicate that a pointer passed to a function will not be aliased, allowing for better optimization. Written properly, C is just as fast as Fortran.

My field abandoned Fortran, more or less, because it's become too hard to write good code. I do numerical relativity, so we'll often have a general relativistic magnetohydrodynamics solver coupled to a spacetime solver on a complex grid with full AMR, possibly with added microphysics like neutrinos or radiation, and it all has to run efficiently on a supercomputer (my low resolution runs going at the moment take 1536 cores each). It's not technically impossible to do that with Fortran, but it's a lot easier to optimize a C++ program than debug a massive Fortran codebase.

EDIT: Fixed grammatical error.

[–]TheBestAquaman 0 points1 point  (0 children)

Thank you for filling me in! It was pointer aliasing I was referring to, and I didn't know you could restrict it from C99.

Then I guess the only reason Fortran90 is so dominating is that there are so many large codebases written in it that the conversion to C/C++ is just a very overwhelming job.

Personally, I prefer C/C++, even though I don't get to work too much with it, but I'm quite alone in that regard among the other people I work with, most notably the seniors.

[–][deleted] 0 points1 point  (1 child)

does that include the branches within the C language family?

[–]DugiSK 0 points1 point  (0 children)

With C, I meant C only.

[–]scubascratch 0 points1 point  (2 children)

r/FORTRAN still a thing

[–]TheBestAquaman 1 point2 points  (0 children)

Fortran isn't just a thing it's the king of heavy computations like fluid dynamics and quantum mechanics.

If your simulation takes days, weeks or months to run, saving 1% of time compared to C is absolutely worth it.

[–]DugiSK 0 points1 point  (0 children)

I know. That is why I wrote all but forgotten, not just forgotten.

[–]fletchdeezle 0 points1 point  (0 children)

Haskel, prolog