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.
as being the AntiChrist as far as RMS is concerned.
Get first 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
Does the Wave Glider run Java?
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.
So your robots run on Java, right? What challenges does that bring to the programming task?
More important to the slashdot community would be how you feel about relationships with real dolls. [NSFW]
Some people die at 25 and aren't buried until 75. -Benjamin Franklin
...make Java look cool by adding submarine robots. !!1!1
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.
What is your view on using Java on non-JVM environments?
Instead of debates on JVM speed or Oracle licenses, why not use other compilers, such as GCC Java. 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?
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?
What are you going to do when the marine robot catches a virus because of an unpatched Java version?
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?
Who are Liquid Robotics main customers?
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.
What are the current challenges being faced by Liquid Robotics?
Has Liquid Robotics ever considered making any 'Aletta Ocean' robotics for the deep, deep ocean (using Borg technology, of course)?
What are the challenges currently being faced by Liquid Robotics?
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.
Why do I need abstract factory builder facades just to do anything useful in Java?
Do you ever regret the choice to implement the java runtime in C++ given the many security problems this has caused for Java ?
Interesting logic there. Do you blame Kernigan and Ritchie for viruses that are written in C?
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?
With IDE tools giving every option under the sun for determining the coding standard to be followed are we ignoring previous research on proper coding standards vs whatever developers say they like?
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)?
Java is a very good language for distributed, scaled processes. Are you using any Java or java concepts for scaling mobile robots? The current state of the art in robotics is precision control and not scaling robotic systems (the swarm researchers are just scratching the surface).
Of course most robotics development is done in low level languages like assembly and C/C++... and simulink/labview/matlab on the R&D side. Do you see a future in Java (say RTJ or some sort of Java real-time) in robots? In scaled robotic systems (of hundreds of networked robots)?
when I say "Click click whistle click whistle whistle. Hail King Gosling!" Translated to Human "I for one welcome our new oceanic robot overlords. Hail King Gosling!"
by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
Who really invented Emacs? I remember "Gosling emacs", and I've heard that Stallman reimplemented features from it. I also heard you more recently told people to stop using Emacs, that there are better tools now. Do you see any use for functional programming languages today - such as Clojure, Haskell or even Scheme and Common Lisp?
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?
Will I be using your baby to make money and pay my bills 30 years from now?
In particular, do you think we will continue in a predominantly multi-language world, with the languages in the top spots changing periodically, or will we converge to settling for a handful. I mean general purpose languages, of course, domain specific languages will naturally proliferate with the emergence of new domains and the evolution of existing ones.
What are your thoughts on Google's GWT (of which I am a big proponent), which compiles Java into Javascript?
How long did it take makeup to give you all those tattoos?
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.
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)
You used to go around saying that using your credit card on line wasn't any more dangerous than using it at a local shop. Given that technology allows you to steals millions of card numbers at once, something that is rather hard to do at your local shop, do you regret repeating that SUN-marketing fed line during the late 90s?
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?
Do you think these autonomous ocean vehicles could be used for drug smuggling?
I recall you were very critical of security in .NET and C# when that platform emerged. How does your pie taste given Java's recent security headlines?
Hot or Not?
I always wanted to know the configuration of machines of the likes of James Gosling/Linus Torvalds et al.
During its development from the start to this day, what are the biggest things that, on hindsight, went wrong with Java?
My question is regarding the idea to make some mathematical proof of what is the tiniest programming language, and then building up from that, to have something of a "perfect" programming language. Is that possible to proof?