Getting Smarter
Today’s digital age requires us all to be tech savvy. Technology innovations are changing industries beyond recognition, from IT to automotive to mobile communications and far beyond. Supporting this seismic change, there are many initiatives about encouraging the younger generation to learn technology. Educational programs, corporate initiatives, TV adverts, after-school clubs. It is widely believed the skilled talent required in the field of science and technology is falling well below the numbers needed in the future.
Therefore, making technology accessible, simple and available to as many students as possible is a common goal. After all, if we need to build new innovation faster, we need a rapid means of doing so.
Smelling the Coffee
I was interested to learn that Stanford University’s introductory programming course (CS 106A), formerly based around the Java language, is now based on JavaSpript (CS 1067). In his piece “Universities finally realize that Java is a bad introductory programming language”, Matthew Hughes commented on the rationale as to why things have changed, and why Java, for so long the darling of how a lot of new technology is created, might not be the top of the list.
According to the University website, “[CS 106J] covers the same material as CS 106A but does so using JavaScript, the most common language for implementing interactive web pages, instead of Java.” The article then goes on to describe the Java language as being “perhaps the harshest language you can learn as a beginner… [because it is] extremely clunky and syntactically bloated”.
Harsh words? The article uses the simplest of examples, the classic new-starter training program, hello world. Here’s a Java version:
class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } }
One argument is that the Java is anything but clear, anything but simple. Extrapolated to more complex applications, the point being made is that Java is complex and cumbersome to learn, use and therefore maintain. CAST Software suggest that Java is around 4 times more costly to maintain than, say, equivalent COBOL code.
Keeping it Simple
So what’s the Java course been replaced by? Let’s look at what the article said as the equivalent instructions in JavaScript –
alert('Hello, world!');
According to research published by Philip Guo on the ACM (Association for Computing Machinery) website in 2014, Python is now the most popular language for teaching introductory computer science in the United States, replacing Java at the top of the pile.
Consigned to the history books?
So are we calling time on Java? Is this the start of the end? Is it going the way of PowerBuilder, Clipper and SmallTalk? Is the venerable language, now in its third decade, just too clumsy for the future?
Java has been subject to hundreds of patches to rectify security loop holes, recent high-water mark being in the 2016 Critical Path Update from Oracle, which addressed 276 vulnerabilities across 84 products. Added to which the focus has changed and levels of support introduced and later removed: for example, support for browser-based Java applets, called NPAPI, has been withdrawn.
Is the end nigh? Highly unlikely. Java possesses some well-designed and important characteristics. First, it boasts almost ubiquitous availability across platforms and devices – from massive Mainframes to tiny embedded devices. Second, it’s very broad suitability across industries make it a real option for major business front-ends, application packages, even core business systems, embedded systems, and all points in between.
Little wonder it remains so popular and prevalent: according to the TIOBE index it is more widely used today than any other language by some distance. In another article on the same topic in Jaxenter, Jane Elizabeth asserts “Java’s not going anywhere any time soon”.
But is Stanford’s decision evidence of a pendulum swing back to a desire for a simpler language that is easier to learn and easier to train?
Standing the Test of Time
The notion of a simple-to-learn language sounds like a sensible new idea. But let’s not kid ourselves – this is not a new idea at all. Consider this alternative syntax for the Hello World program.
display “hello, world!”
This is a COBOL program. COBOL is the business language where a move statement is called ‘move’ or a compute is ‘compute’, and so on. It is the one that’s easy to learn, that’s English-like.
Purists can, and do, talk about suitability of one language over another for application creation. We’ll park that for now. What’s undeniable is COBOL’s suitability as a language to learn that is simple to pick up and simple to write.
COBOL is still out there. And the earliest release of the COBOL standard is still supported. But the latest incarnation, released this month, looks very different, and does a lot more than its predecessor. Today’s developer wants the latest, contemporary technology to do their work. For COBOL systems as well as other types of system – they need the latest IDEs, support for the latest platforms, object orientation, managed code, cloud, mobile, etc. This is all available from COBOL today. COBOL, alongside its bedfellow the mainframe computer, have successfully evolved and renewed themselves over time and remain, just as they were originally, a smart, innovative technology with a huge global adoption.
Many commercial systems will employ COBOL alongside Java in a composite application framework, often built within the same IDE and employing the same managed code deployment model. IT tends to be an inclusive process, not an exclusive one.
Conclusion – moving faster, working smarter
Innovation is the natural way of things. Innovation drives commerce. Technology is often a vehicle for this. Other industry testifies to this – consider today’s car and mobile phones. No-one ever wrote to the head of Porsche to implore them to discontinue production of the 911. The owners of Maserati and Jaguar don’t receive suggestions to stop building their latest models either. No-one ever said “yes, we’re done here, there’s nothing more to develop”. Further, the giants of Apple and Samsung have no plans to move out of the mobile phone market, and no-one is suggesting they should.
Smart technology moves ahead, market demand changes, the competitive landscape changes. Manufacturers continue to develop, innovate and evolve their brands, their product releases. The new 911 shares only one thing in common with the 1963 original – the model of the car. The first mobile phone, from around 1973, and the latest smartphone both make calls, but aside from that have very little in common. COBOL was devised in 1959, the mainframe in 1963.
But the great idea from a long time ago is woven into the fabric of new technology. The very best ideas were often very simple ones, and that’s why they continue to evolve. Keep it simple, as the phrase goes.