Oracle vs. Google on Java (2012)

Some background: I spent many years as an individual contributor to a number of J2ME expert groups including MIDP 2.0, MIDP 3.0 and a number of J2ME APIs ~ around 10 different JSRs over 8+ years. I was a huge proponent of Java for mobile and still am.


In the next couple of days, the jury will decide in the trial of Oracle vs. Google on Java.

The Google vs. Oracle Java debacle is in my opinion, for the most part, the result of how Sun left behind a loosely defined and ambiguous Java, from the perspective of open source software (OSS).

To attract developers and win the community, Sun played the OSS “game”; but did it partially. I recall Schwartz claiming Java as open source, then trying to understand GPL classpath exceptions and whatnot.

Then Google started Android with Java, and Android became very successful.

As Sun shopped themselves around, Oracle, a coined-operated company, clearly understood the monetization opportunity that presented itself with Java and its state.

And here we are today.

Everyone in the business of SW knows that 3rd party SW must be licensed. The questions are “what is SW?”, “what requires a license?” and “what is up for fair use?” Is it the Java Programming language and related core APIs? The Virtual Machine and related bytecode? What about all the APIs developed by the Java Community and led by other companies such as Nokia and Motorola and others? All the above?

Google made a bet and decided to take risks — perhaps based on Schwartz’s OSS claims or the claims from the JCP vs. “fair use”.

But soon the court will decide, and all this will be over. Google may have to pay a lot of money for using Java, or maybe not, or maybe some kind of IP + $ arrangement is done between the companies, or maybe Google ends up using a different programming language on top of their VM.

ceo

Update to SimpleOrderedHashtable tech-tip and other (April 2012)

The SimpleOrderedHashtable tech-tip has been updated; see Tech-Tip: A Simple Ordered Hashtable (SimpleOrderedHashtable.java)

I also updated the Simple URL encoder tech-tip and moved the code to Gist; see Tech-Tip: Simple URL Encoder.

I am moving all my code examples to Gist — an excellent tool/code repository by github, for sharing code with others:

Gist is a simple way to share snippets and pastes with others. All gists are git repositories, so they are automatically versioned, forkable and usable as a git repository.

ceo

(Misleading) InfoWorld Article – Java is becoming the new Cobol

There is an article at InfoWorld titled Java is becoming the new Cobol.

Before I start, let me say that I welcome the right tool/language for the right type and size of project. I just hate misleading and inaccurate reports.

In his article, author Bill Snyder writes a number of things that are misleading, maybe he just was lazy and didn’t do his homework.

The author writes:

“Info-Tech Research Group said its survey of 1,850 businesses found .Net the choice over Java among businesses of all sizes and industries, thanks to its promotion via Visual Studio and SharePoint.”

First, the Info-Tech Research Group seems biased as it surveyed mainly Microsoft shops (only Microsoft shops will choose .Net, Visual Studio and SharePoint). The survey is NOT representative of how things really are out there.

He also writes:

“Java is losing ground to Ruby on Rails, PHP, AJAX and other cool new languages”

Bill calls AJAX a language, which is not. Then mixes “web application frameworks”, with “languages”, and “techniques to asynchronously request information over HTTP”. Wrong.

Bill also writes:

“Java, the oldest new programming language around”

Well, not accurate either. Let’s see when each of the items he listed above were first released:

  • PHP: 1994
  • Java: 1995
  • Ruby: 1995
  • AJAX: 1998 (dynamic HTML), 2000-2002 (XML HTTP Request across various browsers), 2005 (AJAX term coined), 2006 (W3C draft spec)
  • Ruby on Rails: 2004

The article then says:

“Another area of weakness is the development of mobile applications. Java’s UI capabilities and its memory footprint simply don’t measure up, says Samir Shah, CEO of software testing provider Zephyr. No wonder the mobile edition of Java has all but disappeared, and no wonder Google is creating its own version (Android).”

Which is another inaccurate description. Anyone in the mobile space, I mean, anyone who knows the mobile space, knows that the most predominant mobile platform for local applications is Java. BTW Bill, I mean, Samir, Android is based on the Java language. I also find it ironic that Samir, the CEO of Zephyr who is quoted in this article about Java being the new COBOL and loosing ground, yet has his company Zephyr looking to hire J2EE folks…

And not that it is really super important, but for the purpose of accuracy, COBOL is spelled using all capital letters since it is an acronym (for Common Business-Oriented Language). ;-)

Anyways, in short, use the method and language that better fits your project. In my case, none of my products are based on .Net, nor Visual Studio stuff, and instead are based on Linux OS, and the Java language and Java-based frameworks, and PHP, JavaScript, and are investigating Ruby on Rails for certain front-ends.

Related resources of interest:

ceo

The Father of Java[tm] Technology Reveals its Conception

(Excerpt from Sun System News, Volume 77, Issue 2)

Setting no limits and tying no bounds, Gosling said that his inspiration for Java came by taking a step back, observing and absorbing the changing context of computing during the mid-90s, which was shifting from centralized, disconnected data centers to networks.

“In some sense Java wasn't designed. It was more fitted into a context,” Gosling explained. “A lot of people felt very bound by the way things had always been. One of the fortunate accidents of the project was that we decided that backward compatibility with anything was not something we would care about at all.”

This is not a philosophy that Gosling, or Sun for that matter, normally promotes. However, in this situation, it broke through an unperceived barrier that has treated the IT industry to multiple new breakthroughs.

Today, Java technology can be found in 1.5 billion devices worldwide including 250 million mobile phones, 650 million desktops, 500 million SIM and smart cards, and 100 million other locations.

In the mid-90s, the JavaTM platform was the right solution to address the newly emerging and rapidly evolving Internet. The Java programming language hit home for frustrated programmers attempting to work with languages that didn't quite address the Internet's unique needs.

“They didn't have a pervasive acknowledgment of the network, of security, reliability, heterogeneity, pervasive communication — the whole networking thing,” Gosling said. “We had just terrifically good timing. There were all kinds of issues, and we just showed up with the perfect answer to a whole list of problems. We stepped on a few toes to get the first [Java] release out. Then, the world really liked it…”

See Gosling Reflects on this Revolutionizing Programming Language

ceo



C. Enrique Ortiz

J2MEDeveloper.com

Web Page: http://www.j2medeveloper.com

Web Log: http://www.j2medeveloper.com/blog