TweetFollow Us on Twitter

Jul 96 Dialog Box
Volume Number:12
Issue Number:7
Column Tag:Dialog Box

Dialog Box

By Matt Neuburg, letters@mactech.com

Java Without the Hype

Introduction

Talking to my colleagues about Java, I find as many skeptics as enthusiasts. Both sides generally are reacting to the hype, the one rejecting it, the other accepting it. But there are reasons to praise and disparage Java without regard to that hype - that is, without regard to its use on the Internet.

Such a critique is possible because Java is designed to (among other things) support the development of stand-alone, cross-platform applications. So the question at hand really is, “How good is Java as a general-purpose language, and how good is its implementation?”

Java Implementation

As it happens, the rough spots in Java are due mainly to its implementation, which is correctable, not to its language features. The Java libraries are incomplete. I could not, for example, mimic a simple FaceSpan-built interface in Java; it seems not to distinguish checkboxes and radio buttons. The libraries are buggy; list boxes would not reshape or draw correctly, for example. More important, there is no visual interface builder (yet); interfaces have to be created “inside out” - that is, starting with text, as during the Neolithic Age. FaceSpan, Visual Basic, Delphi and others have shown that there should be visual interface builders for a language from day one.

It is also shocking to see the sloppy, unannotated, even unformatted “example” applets made public in the developer’s kit.

But implementation problems are correctable; they are significant only until they are fixed. The more important aspects of a language are its feature set and the development methodology that it supports. This is the side of a language that is cast in concrete, and that can make it usable immediately and for the long term - or not. Now the question is, “Does Java represent progress in language design?”

A Little History

Program language design has made great progress during its 50-year history, albeit in steps both forward and backward. Real-life usage constantly suggests or demands new features and, when “enough” demand has accumulated, some brave soul abandons the current languages to design another that addresses at least some of the demands.

The demands upon languages are both concrete and abstract. Concrete demands relate to things like control constructs, data types and fine points of syntax and semantics. More abstract demands are those in support of certain methodologies; these, of course, lead to concrete demands, such as demand for a syntax that supports data abstraction.

It is fairly easy to see the major trends in language design, and to see the progressive and regressive language features. Here are some of the major trends:

• Movement toward “higher-level” control constructs, those that do more in fewer instructions. From assembly-language looping constructs, we moved to the FORTRAN “for” loop, and to the implicit loops of APL or the removal of loops by way of recursion.

• Simplification and reduction, the factoring out of necessary and sufficient features from the current feature experiments. In PL/I, we could loop n times, forward or backward; or loop over any arbitrary list of numbers; or over any combination of forward, backward and arbitrary; and do this “while” or “until” some other condition is true. Pascal reduced this to the simplest “for”, “repeat” and “while” loops.

• Putting features into libraries instead of into the language itself. PL/I is a huge language; every conceivable feature (at the time) was put into it. C, on the other hand, is a small core language with large standard libraries.

• Strong typing, which is the detection at compile time of errors that would otherwise occur at run time. Familiar examples of this concern type-checking in expressions and in parameter lists. In FORTRAN and C, actual and formal parameters need not match; in Pascal and Ada, they must match or the program will not compile.

• Information hiding in all its forms, including encapsulation, data abstraction and objects. Opportunities for information hiding within a COBOL program are non-existent; it is very much better in Pascal; and it is key to Object Pascal and C++, both of which support objects.

There was much more in this historical mix - recursion, functional programming, orthogonality, regularity, parameter-passing protocols, and many advances in the implementation of these features - but I think I have highlighted the major ones.

Progress and Regression

The hundreds of languages that have sprung up in the last 50 years, including the dozen that have seen widespread adoption, were not always progressively better, although most fit the moods in which they were designed.

Pascal was progressive because it was a simplification, because it demonstrated the benefits of strong typing, and because it was designed for fast, single-pass compilation. But it was too simple for real-world development until it had good supporting libraries.

C was progressive because it, too, was a simplification, and because it defined a set of libraries as “standard” extensions of the language. But C was also regressive with respect to its arcane declaration syntax, the weakest typing since assembly language, and its exclusion of strings as a native type.

Object Pascal and C++ were progressive because they catenated objects onto compiled languages already in widespread use, but Object Pascal now suffers “socially” from being based upon an abandoned language, while C++ suffers technically from being based upon C.

Java’s Place in History

And now Java: How does Java fit into the evolution of languages? It is progressive in several ways, some of which are:

• It is a simplification (but not an over-simplification) of C++, the most popular object-oriented language.

• It reasserts the necessity of strong typing.

• It brings strings back into the language (and makes arrays first-class citizens).

• It provides high-level program-structuring features - packages and interfaces.

• Objects are central to its design; they are not just an add-on or an “orientation”.

Java does perpetuate some irritating features of C and C++. For example, it uses the prefix notation for declarations, whereby you sometimes must read a half-dozen qualifiers before you can find an object’s name. But, minor irritants aside, Java is a real advance in language design.

This does not mean, of course, that everyone will like its features or even use them to greatest advantage. C hackers (not all C programmers) who now willingly pass along the costs of weak typing and wild-card pointers to their customers will be irritated that there is no switch to turn off responsible programming. And I have already seen a published binary-tree example that simply ignores the object features to implement the tree in a completely “traditional” way. But programming has always included ego, habit, ignorance, self-indulgence and resistance to change, alongside common sense, experimentation, experience, responsibility and progress. Good languages tend to support the good programming traits, but they cannot always suppress the bad.

Summary

Even if we disregard the self-serving hype of all who hope to profit financially from the spread of Java (and especially if we disregard the ignorant parroting of the popular press and the “new world order” freaks), we find that Java is an important step in the evolution of programming languages, a step we all need to take.

Postscript

Let me make a proposal concerning Java: programmers should hijack it.

Java is an important new tool; we must not accept the idea that it is just for the Internet, or just for “applets”, or just for cross-platform development, or that it is just Sun’s language. Schools should start teaching it in introductory courses; we should create a demand for good compilers (even if machine-specific) and good development environments; and we should pressure Java’s authors and promoters into making the standard libraries correct, comprehensive and truly cross-platform as soon as possible.

- David “Uncle Dave” Moffat, Senior Engineer at SDU
uncle.dave@sdu.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple iTunes 12.1 - Manage your music, m...
Apple iTunes lets you organize and play digital music and video on your computer. It can automatically download new music, app, and book purchases across all your devices and computers. And it's a... Read more
LibreOffice 4.4.3 - Free, open-source of...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
FoldersSynchronizer 4.2.1 - Synchronize...
FoldersSynchronizer is a popular and useful utility that synchronizes and backs-up files, folders, disks and boot disks. On each session you can apply special options like Timers, Multiple Folders,... Read more
Simon 4.0.2 - Monitor changes and crashe...
Simon monitors websites and alerts you of crashes and changes. Select pages to monitor, choose your alert options, and customize your settings. Simon does the rest. Keep a watchful eye on your... Read more
Cocktail 8.1.2 - General maintenance and...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Cyberduck 4.6.4 - FTP and SFTP browser....
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... Read more
Herald 5.0.2 - Notification plugin for M...
Note: Versions 2.1.3 (for OS X 10.7), 3.0.6 (for OS X 10.8), and 4.0.8 (for OS X 10.9) are no longer supported by the developer. Herald is a notification plugin for Mail.app, Apple's Mac OS X email... Read more
DEVONthink Pro 2.8.3 - Knowledge base, i...
Save 10% with our exclusive coupon code: MACUPDATE10 DEVONthink Pro is your essential assistant for today's world, where almost everything is digital. From shopping receipts to important research... Read more
Boom 2 1.0.1 - System-wide pro audio app...
Boom 2 is a system-wide volume booster and equalizer app that is designed especially for OS X 10.10 Yosemite. It comes with a smart interface, self-calibrates itself according to your Mac, offers... Read more
Apple Security Update 2015-001 - For OS...
Apple Security Update 2015-001 is recommended for all users and improves the security of OS X. For detailed information about the security content of this update, please visit: http://support.apple.... Read more

Unlock Sunshine Girl in Ironkill with th...
Unlock Sunshine Girl in Ironkill with this special 148Apps code Posted by Rob Rich on January 29th, 2015 [ permalink ] Robo-fighter Ironkill has been out on iOS a | Read more »
Crossroad Zombies Review
Crossroad Zombies Review By Jordan Minor on January 29th, 2015 Our Rating: :: CROSSWALKING DEADiPad Only App - Designed for the iPad Crossroad Zombies is a rough draft of a cool genre mash-up.   | Read more »
Blood Brothers 2 – Tips, Cheats, and Str...
War is hell: Is it the kind of hell you want to check out? Read our Blood Brothers 2 review to find out! Blood Brothers 2, DeNA’s follow-up to the original Blood Brothers, is an intriguing card collecting / role-playing / strategy hybrid. There’s... | Read more »
Blood Brothers 2 Review
Blood Brothers 2 Review By Nadia Oxford on January 29th, 2015 Our Rating: :: AN AGGRAVATING RELATIVEUniversal App - Designed for iPhone and iPad Blood Brothers 2 is built on a simple, solid foundation, but its free-to-play system... | Read more »
I AM BREAD, the Toast of the Town, is Ro...
Have you ever dreamt of being deliciously gluten-y? Do you feel passionate about Rye and Wheat? The guys at Bossa Studios do and that is why they are bringing I AM BREAD to iOS soon. The loafy app will feature all the new content that is being... | Read more »
Fahrenheit: Indigo Prophecy Remastered R...
Fahrenheit: Indigo Prophecy Remastered Review By Jennifer Allen on January 29th, 2015 Our Rating: Universal App - Designed for iPhone and iPad 10 years after its initial release and Fahrenheit: Indigo Prophecy still feels like a... | Read more »
Evolve: Hunters Quest is a Match-3 That...
Evolve: Hunters Quest is a Match-3 That Has You Hunting Up Some Big Game. Posted by Jessica Fisher on January 29th, 2015 [ permalink ] | Read more »
Destructamundo Review
Destructamundo Review By Jordan Minor on January 29th, 2015 Our Rating: :: WRECKING CREWUniversal App - Designed for iPhone and iPad Destructamundo blows up real good.   | Read more »
The Sandbox Gets Exclusive Update, Adds...
The Sandbox Gets Exclusive Update, Adds Invincible Characters Campagin Posted by Tre Lawrence on January 29th, 2015 [ permalink ] | Read more »
Mean Girls: The Game Review
Mean Girls: The Game Review By Jordan Minor on January 29th, 2015 Our Rating: :: FETCHUniversal App - Designed for iPhone and iPad A Mean Girls tower defense game makes way more sense than you’d think.   | Read more »

Price Scanner via MacPrices.net

Back in stock: Refurbished iPod nanos for $99...
The Apple Store has Apple Certified Refurbished 16GB iPod nanos available for $99 including free shipping and Apple’s standard one-year warranty. That’s $50 off the cost of new nanos. Most colors are... Read more
New Good Management Suite Simplifies Enterpri...
Good Technology has announced the availability of the Good Management Suite, a comprehensive cross-platform solution for organizations getting started with mobile business initiatives. Built on the... Read more
15-inch 2.0GHz Retina MacBook Pro (refurbishe...
The Apple Store has Apple Certified Refurbished previous-generation 15″ 2.0GHz Retina MacBook Pros available for $1489 including free shipping plus Apple’s standard one-year warranty. Their price is... Read more
15-inch 2.5GHz Retina MacBook Pro on sale for...
Amazon has the 15″ 2.5GHz Retina MacBook Pro on sale for $2319.99 including free shipping. Their price is $180 off MSRP, and it’s the lowest price available for this model from any reseller. Read more
iPad Turns Five – The ”Book Mystique
Five years ago this week, the late Steve Jobs took the stage at an Apple special press event to unveil the first Apple iPad — a slab-shaped, hand-holdable device that was to shake the personal... Read more
Sale! 15-inch Retina MacBook Pros for up to $...
B&H Photo has the new 2014 15″ Retina MacBook Pros on sale for $150 off MSRP for a limited time. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.2GHz Retina MacBook Pro: $1889.99... Read more
Apple refurbished Mac minis for up to $150 of...
The Apple Store has restocked Apple Certified Refurbished 2014 Mac minis, with models available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz... Read more
Apple Releases New Tranche Of OS Updates For...
Apple has released incremental bugfix and security updates for its most recent Mac and iOS versions. OS X Yosemite 10.10.2 Update Apple says this update includes the following improvements: Resolves... Read more
Samsung To Be Main Supplier Of A9 Chips For i...
Korea’s Maeil Business Newspaper reports that Samsung has beat out its chipmaking rivals, Taiwan’s Qualcomm and TSMC, as supplier of chipsets for the next generations of both its own Galaxy S6 and... Read more
Save up to $340 on iMacs with Apple Certified...
The Apple Store has Apple Certified Refurbished iMacs available for up to $340 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. These are the best prices on... Read more

Jobs Board

At-Home Chat Specialist- *Apple* Online Stor...
**Job Summary** At Apple , we believe in hard work, a fun environment, and the kind of creativity and innovation that only comes about when talented people from diverse Read more
SW QA Engineer - *Apple* TV - Apple (United...
**Job Summary** The Apple TV team is looking for experienced Quality Assurance Engineers with a passion for delivering first in class home entertainment solutions. **Key Read more
*Apple* Retail - Multiple Positions(US) - Ap...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you re also the Read more
*Apple* Systems Engineer - Pre Sales, Educat...
…is responsible for proactively providing technical expertise to drive sales of Apple solutions into assigned accounts. The SE architects, validates, and assists in Read more
*Apple* Solutions Consultant - Retail Sales...
As an ambassador of the Apple brand, the ASC is accountable for driving sales performance by: Connecting with customers. Discovering customers' needs and values. Showing Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.