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'."
I thought he was also the father of Java? Whatever happened to that guy? Pretty unjust to not give him credit, right?
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.
We've already forgotten, we just haven't forgiven yet.
I don't need no instructions to know how to rock!!!!
"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
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
java does not belong in a web browser, end of story.. beyond that, it is a great language.
Crafting tools is not wasting time. Frequently the fastest way to accomplish s six-week project is to take a month to write the tool...which will then complete the project in under a week. Management with your attitude will a) never see tools produced that increase the department's overall productivity and b) you won't have the best people working for you. No one likes working in a hamster wheel, and your shop smells of cedar shavings from here.
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...
He's not saying not to write the tool, he's saying that you should be given another tool to write when you're done. Gosling seems to be surprised that developers aren't getting fired instead.
What I'm listening to now on Pandora...
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.
Your asexual reproduction comment must have touched a nerve with some moderators.
Quick! Somebody tell CCP!
Integrate Keynote and LaTeX
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
If the Java plugin didn't freeze the browser while downloading and run at glacier-speed, it would be decent for a browser. Java is a nice language, especially with frameworks like Echo2 (try the demos, it rocks). What hurts Java is that Swing and the plugin suck rather hard.
"No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
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.
I imagine a few years after the last piece of the staggering amount of enterprise Java code out there has been phased out.
Seeing that COBOL is still being maintained, and Java is getting taken up more and more atm, I guess that'd make it around 50 years from now.
Frequently the fastest way to accomplish s six-week project is to take a month to write the tool...which will then complete the project in under a week. Management with your attitude will a) never see tools produced that increase the department's overall productivity and b) you won't have the best people working for you.
What are you talking about? Are you saying you should be able to sit on your ass for two weeks, because you brought in something ahead of schedule? Guess what: you're being paid to work. If you bring in something ahead of schedule, you should expect a "nice job" with points that count eventual promotion and pay raise -- along with a new assignment.
Or to put it another way, when you're late with an assignment, do you pay the company back for the time you've wasted? Thought not.
Respect is a two-way street. No one like working in the hamster wheel, but no one likes managing (or working with) the prima donna who thinks he can just put in solid work when he feels like it.
Sometimes it's best to just let stupid people be stupid.
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!
Ok, so everyone is moving to rich media type clients (Ajax). You think that Javascript is more secure that Java applets? HAHAHAHAHAHA! I admin, Java applets security is just now getting somewhat mature - but Javascript is a big huge gaping hole. What other choice do we have? FLASH? HAHAHAHAHAHAHAHAH!
Horns are really just a broken halo.
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?
Compared to how some shops reak of geek, cedar shavings would be a welcome change.
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/>
Gotta love slashdot's mod system... disagree, and it's -1 Flamebait...
Anyway, I agree, if you create a useful tool in the course of completing your tasks, go for it. Perhaps it can be useful later. However, if you find yourself idle and just decide to work on some nifty tool you think would be cool, then you're wasting your and the company's time.
javascript does not belong in a web browser, end of story.. beyond that, it is a... well... it's better than VBscript?
On that note, I still think Java Applets is the most secure way today to release a piece of "rich media" software on the web. Javascript is just to vulnerable, I surf with FF 2.0 and NoScript these days.
Horns are really just a broken halo.
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...