Q&A With James Gosling, Father of Java
Minaloush writes to tell us that in a recent Q&A with Sun's James Gosling, the father of Java fielded questions on the GPL, security, the role of Java in the enterprise. "If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'."
When can we all forget about Java?
I thought he was also the father of Java? Whatever happened to that guy? Pretty unjust to not give him credit, right?
"If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'."
Uhuh... that sounds about right to me. Unless you work for a company that's in the business of creating and selling development tools, or for a company like Google which allots employees with some percentage of free time to use as they will, by creating such a tool during company time, it seems clear you either have extra time and can be tasked to do something else, or you're slacking off. Either way, you're not doing what you're being paid for.
Q: Do you believe that an open source development model is inherently better for security?
J.G.: Oh yeah.
You should develop these tools, because that increases productivity ..which means more energy watts are made available for use/consumption.. which means people can have more things for less work. Work in an office instead of in a farm? Be thankful for people who invented industrialization. TV, cars, cell phones, computers, access to slashdot, OK healthcare life expectancy more than 40 yrs old, not having to deal with early deaths of loved ones etc.
Yeah, it does give you more time to bitch about how life sucks when you aren't forced to work 12 hours a day for your days bland tasting calories.
"If you come up with a good software development tool, that makes life easier for the developers and they can get their job done quicker, then the first thing the manager says is 'oh you've got free time on your hands. Do this extra thing'." ... and that is why I still program in assembler and I use notepad.
The "write once; run anywhere" paradigm has failed yet again.(For those of you who'll argue; you haven't written a Java app.)
What do you think of the declining popularity of Java?
Isn't the old license quite a bit more restrictive than just passing a test suite? I mean, many Linux distros have either been requiring that the J2RE and so forth be downloaded from sun.java.com or they've been requiring that you download 3rd party implementations based on the Sun source like blackdown. It doesn't sound to me like the license was ever as laisez-faire as Gosling seems to be implying here.
My blog
Question everything
But, who's the mother? That is the more important question. Anybody can be the father... just look at what Anna Nicole Smith. So, at least lets try to figure out who the mother is... after all, some body had to give birth, right? Or, is this just asexual reproduction, as is common with the slashdot crowed?
I liked the additional comment:
// do nothing
> He later resolved the case in plea bargain with the U. S. Attorney's office in exchange for working for the FBI for a year to develop software to assist them in their online investigations.
I wonder if he is going to burry the check
if (suspect == "Patrick Naughton")
{
}
somebody else can make sure that is Java syntax.
Atlas Shrugged : Thematic Story
Either great minds think alike or he is stealing from the best.
Warning: The intelligence of this post may be larger than it appears.
The key is your distro is capable in some way or another of using the word Java and their logo and probably redistributing it.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
I'd really like to ask him what he is doing about Microsoft's efforts to poison Java.
I have been doing some peripheral help with a Java converter that converts from GML to Java, and it doesn't seem very cross-platform to me, even though it has no dependencies. The converter gives odd errors on different platforms - even on different XP machines! And the pure Java code it outputs doesn't run on Macs.
IMHO, using platform-specific dependencies (like DLL's) should be the only possible way to make Java that isn't cross-platform.
The government can't save you.
Declining popularity? I remember recent studies showing that Swing is the most used UI toolkit, I believe Java is the most used language for corporate and commercial web applications, and Java programmers are in higher demand than ever. What makes you think it's declining in popularity? Maybe it's lost its "cool" factor to Ruby and Python, but not popularity.
Here's a couple of links from this year to back me up:
http://www.jasonkolb.com/weblog/2007/02/programmi
http://www.tiobe.com/tpci.htm
http://www.mhall119.com
I've read TFA, it's always interesting to see was Gosling has to say on Java...
Java is such a huge success, my favorite quote from TFA:
"...you can't send a parcel through FedEx without a bunch of Java code being involved. It's almost impossible to execute a financial transaction without a piece of Java code being involved."
So true... And GMail, and eBay. Read the enlightening paper on how Java / Spring is used at Voca (in the UK) to process real-world money, scaling at insane levels.
That said, to me, the best Gosling quote I ever read was in an Artima interview. Basically, Gosling said that he regretted not having gone "pure interface" in Java. Java could have been a much cleaner language if Gosling had gone this way: remove the "abstract" keyword/construct from the language (and hence remove the "protected" keyword too, which makes no sense once the "abstract" keywork is gone). And prevent concrete inheritance. So Java would have been a more OO language, where only inheritance of interface would have been possible. Some people (a tiny minority) program in Java in this way. Most people do not get that concept: that OO is all about ADT (Abstract Data Types) and that a concrete implementation should be a detail. To most people this is heresy, because "you've got to type more characters, you've got to create 'needless' interfaces,..." (in modern IDEs most of these problems are non-existent for you can delegate/compose using a single shortcut). Remove the abstract keyword today from the language, and you can millions of Java developers screaming and whining endlessly. It is sooo sad Gosling didn't do it before releasing Java to the public. Every single program out there today in Java would be more OO-ish and more testable.
It is interesting to note that Bjarne Stroustrup, on that very subject, has explained a great many times that "people simply don't get it". Here's a quote on the same subject by Bjarne Stroustrup:
"Since then I have consistently pointed out that one of the major ways of writing classes in C++ is without any state, that is, just an interface."
This is OO 101. And yet hardly anyone can understand this. I'm into OOA(nalysis) / OOD(esign) and it is not always trivial to do OOP using a 3GL (third generation language, like C++ or Java) but with some thinking and discipline it's possible to get close to "real OOP" using Java. Sadly this is not what 99% of the Java programming world is doing.
It has been said that democracy is the worst form of government except all the others that have been tried.
-- Winston Churchill
Unix is the worst operating system; except for all others.
-- Berry Kercheval
Those who cannot remember the past are condemned to repeat it without a sense of ironic futility.
-- Errol Morris
Those who do not understand Unix are condemned to reinvent it, poorly.
-- Henry Spencer
Those people who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)
"So things like Ruby and PHP are really good for generating web pages. But as soon as you go beyond that, you get into trouble. And with so many enterprise applications, the web page is sort of the skin on the outside of the real application. And mostly scripting languages don't do the high-performance, large-scale computing very well."
If this is true, then Sun might as well ditch their efforts with JRuby because no matter how
well it runs on the JVM it is only going to be good for generating web pages - and that
is more than taken care of by JSP.
But maybe, just maybe, Ruby does something java doesn't - like enable a framework like Rails
and make programming more productive and fun...
Declining popularity? I remember recent studies showing that Swing is the most used UI toolkit, I believe Java is the most used language for corporate and commercial web applications, and Java programmers are in higher demand than ever. What makes you think it's declining in popularity? Maybe it's lost its "cool" factor to Ruby and Python, but not popularity
My crystal ball says:
Java -> COBOL
Ruby/Python -> Pascal
There truly is a massive amount of business infrastructure being produced in Java right now that will last decades.
Quick! Somebody tell CCP!
Integrate Keynote and LaTeX
Why did your emplyees ejactulate into my grandmother's milkshake?
"In the game of life, someone always has to lose. To me, if life were fair, that someone would always be Oklahoma." -DKR
Java is in no way shape or form an analogy to COBOL. It's a fast, maintainable, highly portable language that's used to write a huge amount of new software today. .NET and C# are certainly going to give it a run for its money, but I think C and C++ are going to be the "next COBOL" before Java gets that monicker.
E pluribus unum
conducted at MIT how it 3as suuposed
He doesn't appear in a national search in National Sex Offenders Public Website.
-- Trinity in high heels carrying a whip: The donimatrix - there is no spoonerism
Today Gosling says the "immense amount of testing and design work" is not thought to be "anywhere near as good as having thousands of talented eyeballs just stare at it and think about it", but he didn't always say this and Sun didn't always license Java software in line with this sentiment. Gosling's claim might be true, but I think the freedom Sun's relicensing gives users is far more significant. Also important for the free software community is the lesson of free software pressure.
Not long ago, Gosling poo-pooed the idea of turning Java into an "open source project": "If Java turned into an open source project, the enterprise development community would go screaming into the hills.". In the same article, author Glen Kunene described Gosling as being "ambivalent about Apache's Harmony".
Similarly, Richard Stallman once described Java as being a trap because one could write free software programs in Java that depended on features only non-free Java software provided. He also wrote about what a non-event it was that Sun allowed more people to distribute its then non-free Java software.
Taking all of these quotes and descriptions at face value, assuming nobody was lying, what explains the change in view? I believe that the competitive pressure created by free software Java implementations pushed Sun to stay relevant. As the free software Java implementations became more functional and more likely to replace Sun's Java software, Sun saw they could free their implementation and continue to compete. In so doing, Sun also became a top contributor to the free software community and got free software luminaries (Stallman and Eben Moglen) to speak in support of their relicensing.
Digital Citizen
VB.NET is nothing like traditional Visual Basic. Your old projects will not recompile under .NET so I have to wonder.
.NET so compatibility isn't close to what it is for Java.
Why make the effort to move to another Microsoft development system after getting burned.
I doubt that Java is that much harder for a VB shop to move to than C#. Plus you are not stuck with a one vendor one OS solution.
Yes I know about Mono but I also know Mono lags behind
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
People should remember that Java started out as a set-top language and was released when that project failed. Then, it was supposed to turn the web into an application delivery platform, and it failed miserably at that, too (Ajax is now succeeding there).
The reason Java isn't a footnote in history is because of the enormous efforts people and companies other than Gosling and Sun have invested in fixing up its problems and turning Java into a decent platform for server-side development.
As far as I'm concerned, the main credit Gosling deserves is for saddling us with some bad design choices and some really ugly backwards compatibility problems in Java.
~ roscivs
After all, you have to use a Java IDE a lot longer to get a GUI layout right. Netbeans and Eclipse should catch up in ease of use in GUI development circa 1990 any day now.
Java is in no way shape or form an analogy to COBOL. It's a fast, maintainable, highly portable language that's used to write a huge amount of new software today.
Your predjudice is baseless. The reasons behind the existence of both languages have a great deal of overlap.
No language, no matter how "fast, maintainable, [or] highly portable language", can prevent an enterprise app from becoming a total maintenance nightmare after 20 years of feature creep. That's why it's analogous to COBOL. A few decades from now, extensive and current Java experience will command some nice consulting fees. I also predict Ruby/Python knowledge to become about as useful Pascal.
STUPID. TO THE As t4e premiere people already; I'm
Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he'd spend six sharpening his axe.
If ever?
Free Software: the software by the people, of the people and for the people. Develop! Share! Enhance! Enjoy!
Just to make sure we get this clear: abstract data types are in no way an idea exclusive to OO; tons of languages have had ADTs, procedural and functional. Inheritance isn't exclusive to OO either, but, on the other hand, all of the prototypical OO languages have that mechanism, and their native programming styles use it heavily; the best example here is Smalltalk, which is as prototypical an OOP language as you can get, which uses inheritance very heavily, but doesn't have any ADT features (unless you count duck typing as ADTs, which I do not).
Of course, using composition and small, clearly defined interfaces is a great way to structure systems, but calling this "OO" is plain misleading, unless you somehow want to claim that, say, the Standard ML module system is "OO".
Are you adequate?
Can we get around to fixing some of these Gotchas?
Oh, what's that? Backwards compatibility? Oh dangit, nevermind...
Note the past tense, as management cannot seem to.
In IT work, many people often find lulls between projects, and they try to fill them with something productive.
Asshat managers assume that past free time == constant free time. How assinine.
If he was using calendar time, then it goes like this:
An average month is two days more than 4 weeks. If you spend a month writing a tool, then the tool completes the project in slightly under a week (perhaps 5 days?), then you have just one week of "free time". Due to project scheduling, the next planned project may not be ready yet.
If he was using business time, then it goes like this:
A month is... What? 30 days, or 4 weeks? To assist your point, we'll say it's 4 weeks. A week, of course, is 5 days. So he builds the tool in 4 weeks, it completes the project in less than a week (perhaps 3 days?), then you have 1.4 weeks of "free time".
Sorry, nowhere in there do you get 2 weeks of ass-sitting.
Not to mention that there was no sitting on of one's ass.
Yeah, that was a funny point for you to make, given that the point was about how someone filled up their free time with a positive business contribution rather than, I don't know, sitting on their ass shooting their mouth off on Slashdot.
Now, Perkins, get off the Internet and get back to work or you're fired! And be sure we are adding these points to your record.
The Java API is as awful as the language behind it. You can only say that if you have not used any other useful API, ever. Java the language is not a better C++, is a dumbed down C++ with some standard stuff added to make it buzzword compliant.
The Java VM, however, with its JIT compiler and stuff, is a marvelous work of art. This JVM is not necessarily 'Java the language' centric, as compilers for other languages have been provided. I only mention this so you won't confuse both concepts. Garbage collection is a feature both of the JVM and of the language, but guess where's implemented?
With this JVM you have a bytecode class file, and it runs pretty much everywhere. And it runs fast. Fast like hell for a partially interpreted language. It's still slower than C/C++, but it's slower by only a factor of 10 or even 2 in some cases. Compare it with all the other heavily used multiplatform languages, like PHP, Ruby and so on, and they are slower than C by much bigger factors, between 20 and 100 times slower.
I put all the reasons of the success of Java in the JVM, that's it, what users have to use to run java programs, than in the language per se, that is, what the programmers have to endure and suffer in order to create said Java programs. Stuff like bignums are so painful after you have tasted Lisp power that it hurts. However, Lisp doesn't have the JVM, and Java does.
I have JVM envy.
We are Turing O-Machines. The Oracle is out there.
I have write in my blog what will be the future in developing for me. ahref=http://anthonylait.blogspot.com/rel=url2html -12757http://anthonylait.blogspot.com/>
fix that fix that fix that....
And COBOL was the "fast, maintainable, highly portable language that's used to write a huge amount of new software" once. Java is used to solve the same "card walloping" programs today that COBOL was used for in its day: inventory, payroll, CRM, SCM, everything else that makes a business busy.
Of course, Java is used for other tasks as well (as was COBOL, of course), but it's at the heart of the programming done by people who wear ties while they code.
This is not a criticism of Java as a programming language, only an observation about the professional company that Java programmers keep.
C and C++ were never widely adopted by people who wear ties while coding, and so can never be "the next COBOL", regardless of how bad the maintenance hassle one day becomes.
Socialism: a lie told by totalitarians and believed by fools.
Funny mods...