"So we have two legacy languages in the TIOBE Top 20 for rather different reasons - COBOL skills are still needed to sustain vital legacy (or should that be out-dated) systems. Fortran, on the other hand, has a role to play at the cutting edge of scientific research and can be expected to have an expanding role in its "Modern" incarnation."
The World Depends on 60-Year-Old Code No One Knows Anymore
Every day, 3 trillion dollars worth of transactions are handled by a 64-year-old programming language hardly anybody knows anymore.
It's called COBOL (Common Business Oriented Language), and despite the fact most schools and universities stopped teaching it decades ago, it remains one of the top #mainframe programming languages used today
📰 IBM’s generative AI tool aims to refactor ancient COBOL code for its mainframes
➥ Ars Technica
「 Or you might argue that AI-generated and restructured code might look proper and seem test-ready, but without the people around who know exactly why the code does the things it does, AI-upscaled code could have just as much noise as AI-upscaled video 」
CBI Image o' Day. A 1969 note from Grace Hopper to Jack Jones, US Air Force on their CODASYL work & COBOL’s creation by her, Jean Sammet, Jones, +others. Hopper is suggesting important contributors to CODASYL who were at the '59 demo, to invite for the '69 COBOL 10th Anniversary Celebration including Alan Taylor who had become Editor of then new magazine Computerworld.
⌛ 20 Years in the Making, GnuCOBOL Is Ready for Industry | thenewstack.io
「 GnuCOBOL turns COBOL source code into executable applications. It is very cross-platform, running Linux, BSD, many proprietary Unixes, macOS, and Windows, even Android. And the latest version, v.32, is being used in many commercial settings 」
languages that are involved in some sort of data analysis and processing (#sql, #clang /c++) are doing very well. Not sure what to make of #Python; are ppl in #AI seeing through the reality is a scripting over extremely performant c/c++ and that there are other lang that can glue as well? #golang & #Julia are ⬆️
"Code Assistant for IBM Z is designed to assist businesses in refactoring their mainframe apps, ideally while preserving performance and security, according to IBM Research chief scientist Ruchir Puri." -- #KyleWiggers
#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.
SHAKA. WHEN THE WALLS FELL.
DARMOK AND JALAD.
AT TANAGRA.
TEMBA. HIS ARMS WIDE.
SOKATH HIS EYES UNCOVERED.
AT EL-ADREL.
ON THE OCEAN.
DARMOK AND JALAD. THEY LEFT TOGETHER.
This idea of using #AI to translate #COBOL code into #Java has one big problem.
The goal is reasonable: ancient COBOL code is effectively a black box, hard to modify or extend and even harder to debug.
But who is validating the Java output? A big part of the problem is how difficult it is to understand the business logic that the COBOL was implementing — but all that analysis work is still required to evaluate the correctness of the Java, plus Java debugging!
This time we learn more about his life/history, hear all about the boot camps he runs, discuss recent advancements in AI / quantum computing and how they might affect the tech labor market & more!
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:
I'm working on removing an important spreadsheet from Google Docs, and maintain that in LibreOffice.
Thing: In G Docs I wrote a few macros to sort the file in various ways, using 4 and 5 fields.
Libre Calc only allows 3 sort fields, and the G-Doc macros don't work in Libre Calc.
I've written a #Python program to convert a CSV to a file with fixed length, and writing a #COBOL program to do the sorting for me.
Sorting multiple columns in Python is a PITA. In COBOL it's laughably simple.
I wish something like the IBM S/34 #GSORT would exist for Linux. That would make this even simpler.