Interviews: Ask James Gosling About Java and Ocean Exploring Robots
James Gosling is probably best known for creating the Java programming language while working at Sun Microsystems. Currently, he is the chief software architect at Liquid Robotics. Among other projects, Liquid Robotics makes the Wave Glider, an autonomous, environmentally powered marine robot. James has agreed to take a little time from the oceangoing robots and answer any questions you have. As usual, ask as many as you'd like, but please, one question per post.
Do you plan on releasing any/all of the Wave Glider code under any sort of open source or not-for-profit license?
sudo make me a sandwich
http://en.wikipedia.org/wiki/List_of_JVM_languages
I'm god, but it's a bit of a drag really...
I'm a huge fan of checked exceptions (that is, exceptions that must be caught, or the method must specify that they can be thrown). My anecdotal experience is that checked exceptions have made my code more robust by helping me avoid mistakes, they are partially self documenting, and even save me time because I don't have to constantly check the documentation to see which exceptions are thrown.
However, I see a lot of hate for checked exceptions in the programming community. With the benefit of hindsight, what's your opinion on checked vs. unchecked exceptions? If you could do it all again, would you still put checked exceptions in Java?
Also, thank you for inventing the programming language I use all day every day. It's not perfect, of course, but I still consider it one of the best balanced programming languages out there.
As you're known as the father of Java, has that been problematic when trying to figure out your career path? Did you feel as if you have to always use Java or be the main proponent behind its architecture? Or simply having that on your resume, restricted you to a certain level of project either within Sun or when exploring new opportunities such as your current job with Liquid Robotics?
Well.. maybe. Or Maybe not. But Definitely not sort of.
The official platform libraries provided by Oracle seem to be much more comprehensive in scope than, let's say, the C++ standard library. Is control by one company of such a vast swatch of library development a hindrance to innovation in Java?
You're thrown into a gladiatorial ring. An audience of thousands watches your every move, eager for blood. Across the ring, Richard Stallman advances toward you, katana poised to attack. To your left you see a rack full of medieval weapons.
What weapon do you choose? Whose blood will be spilled upon the sand?
Everything is better with chainsaws.
What language or languages do you prefer to progam in and why?
the growth in cynicism and rebellion has not been without cause
In terms of code development, it is a long way to look back to the days of Pascal and VAX. Someday we likely will look back at JAVA in the same way. Have the limits of JAVA been reached and do you see that day of obsolescence as being sooner than later?
What one feature of the Java language would you go back and do differently if you could?
Standard question, I know, but is there anything you would change about Java in hindsight? For example, don't you think that there would be no harm in having both a garbage collector and a free() function?
Your post was highly insightful and on-topic, until you got to the part where you asked more than one question in a single post.
As usual, ask as many as you'd like, but please, one question per post.
Better known as 318230.
public void dearMrGoslingHello() // seriously, I've done a lot of fun projects with it over the years!
{
justWantedtoTakeTheTime toSayhiAnd letYouKnow iUseYourLanguageLikeEveryDay. iReallyLike theCrossPlatformDevelopmentParadigmOfWriteOnceRunAnywhere(seriouslyItsTheBestAndThanks);
}
Join the Slashcott! Feb 10 thru Feb 17!
If you could change one thing in Java what would it be and are there any criticisms that bother you or you would like to respond to about language syntax or security?
Come on man, get off it now. I don' t understand this attitude that makes developers responsible for the fact that malicious or evil people spread vriuses, deface web sites, hack servers etc. What the fuck? By accruing pressure on developers for more secure software, we are completey ignoring the root problem. Worse, we actually encourage it, give it a certain validity.
It's not the developers that are bad,there's a bunch of people out there making the internet look like it's constantly under siege - which it is, as far as I can see. The real problem is that our society is sick, for only a sick society would permit, even encourage such things. Than's what we need to address, now.
It occurs to me that a small autonomous vessel would make a great "drug submarine". I'm not hanging that possibility on you. Someone will/has surely thought of it already. Do you see use of similar tech for "evil" being a problem in the near future?
What are you thoughts on JavaFX2, especially towards its competition with HTML5?
"The future can only affect the present if there is room to write its influence off as a mistake." - Yakir Aharonov
With the huge success that Java has been and still is, when contemplating the quite recent surge of JVM languages, I can not help but think of the future. For example, I have begun to adopt Julia, recently, for number-crunching; it seems hard to deny that such functional HPC languages have a bright future. It seems, too, that the first, minor onset of decline is there for Java. This is natural, it happens to all technologies. Hence - when you think of the future, what is your vision upon where we shall be standing, in terms of computer languages and programming paradigms, in say 10 years from now ? 20 ? 30 ?
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
These free roaming autonmous world exploring robots are out in the wild and not confined to protected lab space.
The potential for crashing into sensitive reefs, fouling nets, bumping ships or people, all across national and international ocean space, seems to carry a liability issue that is hightened by the uncontrolled nature of the robot.
What liability issues are considered when releasing a robot and are there any control systems in place to avoid accidents that might lead to liability issues.
Do you ever regret the choice to implement the java runtime in C++ given the many security problems this has caused for Java ?
What do you think of Oracle's stewardship of Java so far?
What's it like to have done something that is such an epic win for the industry? When you sit there and ponder your life's achievements, how does it feel to have created Java?
In 1996, you collaborated with Henry McGilton to write The Java Language Environment, which describes your rationale for the design decisions you've made in creating Java. In this document, you expouse a number of ideas which are (or at least at the time were) controversial, like the "constant-in-class pattern" in favoring enumerations (which later became supported in Java 1.5), the lack of need for structure or union types, the lack of need for unsigned integral types (well, except for char), and the lack of need for operator overloading. Now that 17 years have passed since that document was published, have you changed your stance on any of these decisions?
What is the state of the art with regards to transmitting data through the water? I am designing a deep sea(ocean floor) autonomous vehicle. The primary challenge I wish to tackle is the problem of getting my sensor data(sonar, imagery[not streaming]) wirelessly (line of sight) off the ocean floor(say 10 - 100kbs)?
It is fairly dated with last news back in 2009. If some effort is taken to update it, wouldn't it be better to have your invention used in a greater variety of platforms to solve the two forth-mentioned problems?
I C what you did there...
Mod me down, my New Earth Global Warmingist friends!
What use of Java you've seen people make has most surprised you?
Between Oracle and Liquid Robotics you had a very brief spell at Google. Why did you quit so quickly?
Now the dust has had a chance to settle how do you think Oracle are doing as stewards of Java?
Having had to read through some of your older code recently, StreamTokenizer.java, it smacks of a terse 'C' style of coding. I love the way it uses byte arrays and bit masks to do it's tokenizing very efficiently. It's wonderfully subtle, but a PITA the read compared to more recent Java coding styles, that use longer more readable variable names etc. At times I wondered if it was the result of an all nighter/quick hack. I'm curious if you like/influenced the way Java's coding style has developed over the years.
It's not that hard to get a factory builder facade. You can get one from a factory builder facade factory. Just properly configure the factory builder facade factory to give you the kind of factory builder facade you would like.
An easy way to get a factory builder facade factory is with a factory builder facade factory factory.
----
A problem I had to unfurl
My stomach it started to curl
A bad memory leak
Made me freak out and shriek
I’m just glad it’s not written in C++
I'll see your senator, and I'll raise you two judges.
I know you've gone on record supporting closures in Java and have apparently supported them for a very long time.
I apologize then for being unfamiliar with the history behind Java closures, as it is badly documented on the internet (or my Google-Fu is weak, I don't know which).
So why do you think Java didn't originally have closures, why weren't they added instead of anonymous inner classes in Java 1.1, and what were the other roadblocks to Sun adding closures in the past.
This space left intentionally blank.
Reading back through some of your early statements on Android (and leaving aside Sun-Oracle-Google patent disputes) it seems you had some major concerns about interoperability and consistencies between APIs across devices or within the system itself, and generally like its openness would be problematic because each OEM was just going to do their own thing with it.
How (if at all) have your opinions or views of Android changed at all in the last 4 years?
R(k)
Back around the year 2000 people repeatedly asked you to make Java open source. Given what has happened since the Oracle acquisition do you regret not doing so back then?
Do you think Java would have such widespread use if it weren't for the community projects? Java as a language hasn't changed much and the real innovation is coming from community projects like Groovy and Scala. C#'s language specification has changed and they're adding more features. Java's language is more stagnant. Would you change that?
You were at Google briefly. I secretly hoped you were hired on to create Java++/Java 2.0. What were you promised/hired to do at Google? Would you ever consider creating a Java 2.0?
You missed the point. He asked explicitly for abstractfactory builder facades.This the wayto get one:
1) ask the AbstractFactoryBuilderFacadeManager to return you an instance of himself, by calling AbstractFactoryBuilderFacadeManager.get()
2) ask the AFBFManager to point you towards an AbstractFactoryBuilderFacadeFactory
3) by reflection, investigate if that AFBFF proposes a method getFactoryBuilderFacade( boolean _abstract )
3a) if yes, call that method, you're done !
3b) if not, go back to your AFBFManager and report the problem
4) by all means, learn to code ;-)
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
Hot or Not?