Showing posts with label programming languages. Show all posts
Showing posts with label programming languages. Show all posts

Saturday, July 11, 2009

Still Cobol after all these years

It may not have a Paul Simon soundtrack, but I found something poignant about a column Friday marking the 50th anniversary of Rear Admiral Grace Hopper’s second greatest† contribution to mankind, the COmmon Business Oriented Language.

Yes, the column was a self-serving plug by the last remaining COBOL vendor. But it was also a reminder of the economic role of trailing edge technology, and the distortions of judging what’s important by what gets headlines.

As Stephen Kelley, the CEO of MicroFocus summarized in the FT:

Today, Cobol is everywhere, yet is largely unheard of among the millions of people who interact with it on a daily basis. Research shows that people, on average, still use Cobol 10 times every day in the UK: using an ATM, stopping at traffic lights or purchasing a product online.

There are more than 220bn lines of Cobol in existence, equating to around 80 per cent of the world’s actively used code. There are 200 times as many Cobol transactions each day than Google searches – a figure which puts the influence of Web 2.0 into stark perspective.

…
Its versatility has also played a part in its abundance and longevity. Applications first developed to run on IBM System 700 mainframes are now being readied for an Amazon or Microsoft cloud computing platform.
Rather than versatility, I might say something about legacy code and switching costs, but perhaps that’s the cynic in me.

Not surprisingly, Kelley has a self-interested plug for industry/academia cooperation:
With many computer science students opting to learn web 2.0 skills, and many of those who are proficient in Cobol reaching retirement age, its success and longevity are almost proving a hindrance to its long-term survival.

Ensuring Cobol remains a key part of the IT skills set must be a priority for business, government and academia alike, as the effects of a serious shortage could be disastrous. The cost of re-writing Cobol programs is estimated at around $25 per line (with more 200bn lines in existence).
I’m not sure I’d recommend Cobol classes to a bright high school student, but I’d bet it has more job security for marginal programmers than editing HTML or writing Perl scripts. Nothing poignant or sentimental there.

† Most computer scientists would agree that inventing the compiler is of more lasting significance than creating any particular higher-level language.

Thursday, May 15, 2008

A mighty Fortress...

At JavaOne last week, Sun updated the world on Fortress, its Java-based programming language for massively parallel processing. It’s consistent with Sun’s view of being an innovator, rather than a low cost commodity supplier.

The program from Sun’s Programming Language Research Group was originally developed using DARPA HPCS (nee High Performance Computing) money, and then with its own dollars.

For most of the past decade, Sun missed numerous opportunities by trying to control Solaris and Java rather than win adoption through open source. Given Sun’s origins as an “open systems” supplier, its failure to embrace openness was perplexing, in the face Linux at one extreme and Microsoft at the other. However, this time the prototype Fortress interpreter is already released under a combination of BSD and GPL licenses.

About 20 years ago, I was a programming language geek, working on compilers and programming language design, including some ideas about language design for one of the earliest massively parallel computer systems, the JPL hypercube.

At the time, the most radical programming language effort was Occam, intended for the Transputer processors. It was interesting to note that Sun Fellow Guy Steele acknowledges Occam in an interview about the Fortress efforts.

Having the smartest people in the field in house (like Steele, co-inventor of MIT’s Scheme language) is the path to differentiation through innovation, and having your own people implement the language is the surest path to make sure it works well on Sun hardware and software.

The problem is adoption. Historically, network effects have been the death of specialized languages (coming from the inventor of a specialized language). People would rather work with libraries wrapped around standard languages (like Fortran, C, C++ or Java) than learn a new language. So major breakthroughs like APL, Simula, Simscript, Smalltalk, Scheme and Occam were used to teach programming, but were rarely used to solve real program.

So the challenge will be to make Fortress the standard language for massively parallel systems — first at DoD and DoE research labs (like LLNL and Oak Ridge), then for government studies and analysis, and finally for computing-intensive industry problems like biotech and oil exploration).

To become the standard, Sun needs the cooperation of both the user and vendors of massively parallel computers. It doesn’t have any computers on the Top 10 (of the Top 500) supercomputers, which is dominated by IBM with other systems from Cray, HP and SGI. (Sun only has one machine in the top 50). So, as with any other standards-based competition in the industry, good technology is only valuable if it leads to adoption, tipping and network effects — and much of the adoption is driven by politics and alliances rather than the quality of the technology.

Tuesday, March 20, 2007

BNF, F IV, RIP

Off topic, John Backus, a giant of modern computing died Saturday, according to the New York Times. MIT has a brief biography, while there is more detailed information at IBM and his alma mater Columbia.

As the name suggests, Backus is the original of Backus-Naur Form (BNF), familiar to any computer science student who’s seen a formal computer language syntax. (Or even for those of us without formal computer science training who’ve written a language compiler). BNF dates to Algol 60, reflecting the efforts of Backus and Peter Naur. Of course, Algol is the progenitor of B (and thus C, C++ and Java) as well as Pascal (and with it Modula-2 and Ada).

But BNF (aka Backus Normal Form) was the second major contribution of Backus, who later won a Turing Award. In the 1950s, Backus led the IBM team that invented Fortran, the oldest surviving higher-level language. This led to Fortran II, Fortran IV, Fortran-77 and Fortran-99. Fortran-66 (a cleanup of Fortran IV) is claimed to be the first higher-level language standard in the world.

Even though I spent most of my programming career working in assembler or C, Fortran still has both strong sentimental and historical significance to me. Fortran IV was the language I learned in 1971 at the Explorer scout post (at Teledyne Ryan) on the IBM 1130 minicomputer, and the one I used to win the (jr. high) math category of the county science fair.

With Backus gone, there aren’t many comparable pioneers left. Grace Hopper died 15 years ago, while E.W. Dijkstra died nearly 5 years ago and Kenneth Iverson died a few years later. Niklaus Wirth is in his 70s and so may be around a while longer. However, Backus himself argued 30 years ago, that it’s time to move past Von Neumann-style programming languages.