also, now with #gpt4o, latency is going to be critical if you’re doing streaming audio/video, so #python may start looking less appealing. what’s the new #LLM language? #rust? #go? #cpp? #fortran?
A weird thing about being 50 is that there are programming languages that I've used regularly for longer than some of the software developers I work with have been alive. I first wrote BASIC code in the 1980s. The first time I wrote an expression evaluator--a fairly standard programming puzzle or homework--was in 1990. I wrote it in Pascal for an undergraduate homework assignment. I first wrote perl in the early 1990s, when it was still perl 4.036 (5.38.2 now). I first wrote java in 1995-ish, when it was still java 1.0 (1.21 now). I first wrote scala, which I still use for most things today, in 2013-ish, when it was still scala 2.8 (3.4.0 now). At various times I've been "fluent" in 8086 assembly, BASIC, C, Pascal, perl, python, java, scala; and passable in LISP/Scheme, Prolog, old school Mathematica, (early days) Objective C, matlab/octave, and R. I've written a few lines of Fortran and more than a few lines of COBOL that I ran in a production system once. I could probably write a bit of Haskell if pressed but for some reason I really dislike its syntax so I've never been enthusiastic about learning it well. I've experimented with Clean, Flix, Curry, Unison, Factor, and Joy and learned bits and pieces of each of those. I'm trying to decide whether I should try learning Idris, Agda, and/or Lean. I'm pretty sure I'm forgetting a few languages. Bit of 6502 assembly long ago. Bit of Unix/Linux shell scripting languages (old enough to have lived and breathed tcsh before switching to bash; I use fish now mostly).
When I say passable: in graduate school I wrote a Prolog interpreter in java (including parsing source code or REPL input), within which I could run the classic examples like append or (very simple) symbolic differentiation/integration. As an undergraduate I wrote a Mathematica program to solve the word recognition problem for context-free formal languages. But I'd need some study time to be able to write these languages again.
I don't know what the hell prompted me to reminisce about programming languages. I hope it doesn't come off as a humblebrag but rather like old guy spinning yarns. I think I've been through so many because I'm never quite happy with any one of them and because I've had a varied career that started when I was pretty young.
I guess I'm also half hoping to find people on here who have similar interests so I'm going to riddle this post with hashtags:
Is Fortran usable as a C substitute, or as an improvement over C unlike C++? As an example, what kind of software uses your code?
Fortran's verbosity is ... less tolerable than Ada's, and the column-major arrays may surprise serious C devs. But it does many other things right, and is already part of the toolchain in big shops.
Sure, it isn't new and shiny, but that isn't bad for risk-averse managers.
February's TIOBE index has #Fortran as the 11th most popular language, marking its 12th consecutive month in the top 20, beating languages like #Rust, #R, #MATLAB and #Julia. About time to do away with that "Fortran is ancient/dead/obsolete" myth?
#FORTRAN and #COBOL are dead.
Long live Fortran and Cobol.
Modern Fortran is indispensable for high-performance, scientific computing, like weather simulation on supercomputers. Modern Cobol is indispensable for high-throughput, business computing, like financial transaction processing on mainframes.
But Fortran and Cobol suffer from the image problem. Young #programmers will not devote their careers to these seemingly dead languages. As such, many Fortran and Cobol shops are desperately trying to "modernise" their codebases by translating into C++, Java, Python, etc.
This is a mistake. A weather forecast that takes a couple of hours for a Fortran implementation that runs on a 1000-CPU supercomputer will take months for a Python version that runs in an enterprise cloud. Analogous examples abound for Cobol. These niche systems are cloud-proof—they will not bend to the charms of cloud computing.
New language features and implementation techniques are continuously, albeit gradually, being integrated into Fortran and Cobol, and new supercomputers and mainframes are still being designed and manufactured. Yet, there is no injection of new programmers into these specialised domains.
A sensible approach, then, is this. Instead of converting pieces of code written in 60yo languages into those written in 30yo languages, design brand new languages—with dependent type system, algebraic types, type inferencing, memory safety, and other accoutrements of modernity—that target standardised Fortran and Cobol, much like TypeScript and ReScript target standardised JavaScript to "modernise" web development. And if these new languages become established, retarget them to binary.
Echtes Abenteuer; Computer kapott, fliegt in 22 Lichtstunden Entfernung, und die Programmierer sind in Rente oder verstorben. Als junger Ingenieurstudent habe ich 1977 dem Start der #Voager Sonden entgegen gefiebert - und die Teile funktionieren noch immer irgendwie.
@gborn ich steh gerade tatsächlich vor einem vergleichsweise ähnlichen Problem. Ein Webservice der in #Fortran und #Perl programmiert wurde 2006 und die Entwicklerinnen und Entwickler sind alle in Rente. 🙈
For me an era is about to come to an end: after just over ten years at my current job (where I set up and built most of the infrastructure and code) it's time for me to move on.
From April 2024 I'll be available for part-time remote-only work. If you're looking for an all-rounder software dev and #Linux admin to attack (say) your tech debt in #Perl, #Python or even #Fortran, give me a yell 😃
A toot about Tom Baker reminded me of Prime Computers (which he appeared in adverts for, as the Fourth Doctor). The operating system, PRIMOS, was written in an unusual choice… FORTRAN.
RIP Niklaus #Wirth. Wirth's #Pascal was among the first programming languages I actually enjoyed, after love-hate with #Fortran, #AssemblyLanguage and #PL1. I did loads of programming in Pascal in the 1970s and 1980s, on #DEC10s, #Vaxen and on the first IBM PCs (#TurboPascal). Then, #Modula. If you are using a #Logitech device today (I am!), that's another outcome of Wirth's vast ouvre!
I found the following gem from 1972 while doing research for the article:
(Oh, yes, I WROTE A POST that I'm half-proud of! Was BASIC really THAT BAD? Why did Dijkstra say it crippled the mind?
Let's find out the broader context of the famous quote! Please share and comment if you like the post :))
Digital computers have existed since at least 1945 (ENIAC). That's 78 years ago. The pace of change in computing is remarkably fast, and it's unusual to have things that have existed for a long time. Here's a few that have been used for at least 50 years (i.e., they existed in 1973), even if they've changed over time and the original version may not be compatible with the modern world:
@liw #Fortran is still in use, 1957; #Lisp, many current significant uses, 1958; #COBOL, 1959, has its niches, mainly in finance.
Fundamentally most third-generation languages trace their ancestry to the late fifties/early sixties. C is just minor syntactic sugar on top of BCPL (1967).
Reminder that the #programming languages useful for #applications may not be the same as those used for #libraries that the applications use, and this is just fine, e.g. performance often requires that one does not rediscover the wheel by recoding libraries in #clang#cplusplus and #fortran because they are, for whatever reason , resistant to use a proper #ffi (or an #IPC) #api.
67 years ago on October 15, 1956, The programming language FORTRAN, short for "Formula Translation," was introduced to the public.
It was the first general-purpose, compiled imperative programming language, originally developed by IBM in the 1950s for scientific and engineering applications. FORTRAN gained popularity and became a vital tool in scientific and engineering applications