Summary
I'll be interviewing James Gosling one week from today, my fifth annual interview with the creator of Java. I'm collecting ideas for the interview. What would you like to hear James Gosling talk about?
Advertisement
I'll be interviewing James Gosling one week from today, my fifth annual interview with the creator of Java. I feel very fortunate to get the opportunity to do these interviews with James Gosling. For me, the James Gosling interview is always one of the more interesting 60 minutes of each year. In addition, my interviews with James Gosling for JavaWorld were what originally put the idea in my head to perform interviews of a great variety of software thinkers and doers on Artima.com.
With this weblog post, I'd like to stimulate some creative brainstorming for the interview. Not that I'm running out of ideas, exactly, but I'm curious what Artima.com readers would want to know from James Gosling. I'm looking for innovative, fresh ideas.
Although I don't expect anyone to read all of this material before posting their ideas, here are the previous four interviews I did with Mr. Gosling:
A Conversation with James Gosling (February 2002) --
Java's creator discusses semantic models, mobile behavior, abstraction
versus vagueness, testing, and repetitive stress injury.
A Conversation with James Gosling (May 2001) --
Java's creator discusses inheritance and composition, JSPs and Servlets, community design processes, and more.
A Conversation with James Gosling (May 2000) --
Java's creator speaks on developer tools, the realtime JVM, mobile objects, strict interfaces, and more.
A Conversation with James Gosling (May 1999) --
Java's creator speaks on interfaces and protocols, servers and services, Jini, Java in the enterprise, and more.
Please post any suggestions you may have for this year's James Gosling interview by clicking on the Talk Back! discussion forum link below. Thanks.
There are some fundamental differences, but also some similarities, and interesting issues arise, to name a few:
1. Humans are better at natural languages than at programming languages, does this mean that programming languages will slowly evolve towards natural languages? 2. But natural languages are fuzzy and programming languages most definitely not...shall the twain ever meet? 3. Will humans ever be able to specify a complex system using the precise syntax and semantics programming languages?
etc. etc. These are just a few issues that come to mind when thinking about this topic and I can imagine James Gosling having a few great insights himself.
Thread serialization would have a great deal of uses but it would make the Java agent crowd the happiest. Would you consider making Thread Serialization part of a future VM?
Except for tweaks to minor features, the Java language appears to have pretty much completed its evolution. All the major Java developments appear now to be happening in the various APIs.
Looking backwards; are there any language features that he thinks are missing, or would have been better left out?
Currently; There is plenty of text extolling Java's many strengths. Does he think the language has any particular weaknesses?
Looking forwards; Are there likely to be any major developments to the language in the future? e.g. Is it ever likely to fully incorporate Design-by-Contract or Aspect-Oriented-Programming features directly into the language?
I had this crazy idea hat one could use the concepts of UML and extedn the visual to semantic web in letting the user define his or her own semantic model and generate using visual tools... possibly sharing that model in a page/search engine relationship to make a super intelligent Kay Knowledge amchien..
What challenges do you see in approaches like this from the Java language standpoint..as far as what is already included regex and etc and what may be included in the future?
My interests lately have been in the area of functional programming and my questions relate to that.
I see that one of the co-authors of "the Java Language Specification" is Guy Steele, one of the creators of Scheme. With him around I would think that some features of functional programming (higher order functions, continuations, tail call optimization) would at least have been considered for Java. Is this the case? What do you think of these techniques, and if you think they are good things, why were they not put in Java and the JVM?
One of the features of Microsoft's CLR is support for different languages and language paradigms, such as functional programming. For example, there are instructions for tail call optimization which make languages such as Mercury and F# (a CAML dialect) possible in the CLR. How important do you believe it is for other languages to be supported in the JVM? Is it worth it to change the JVM instruction set, or should we limit ourselves to 'similar' languages, such as Jython or Javascript, or do you believe Java is all anyone needs?
There's been a lot of buzz lately regarding Aspect Oriented Programming. It seems the community has finally grown to understand the need and place for this technology in software development and several open-source implementations (Nanning, AspectWerkz, JBoss, JAC) are popping up as compliments to AspectJ.
A completely transparent AOP solution is difficult to handle without language support. What's you opinion on aspect-oriented programming added as a standard-feature to the Java language in the future?
I would ask James whether the lack of Multiple Inheritance in Java was because it was hard to implement, or because he wanted to protect programmers from themselves.
> <p>I'll be interviewing James Gosling one week from today,
> <p>With this weblog post, I'd like to stimulate some > creative brainstorming for the interview. Not that I'm > running out of ideas, exactly, but I'm curious what > Artima.com readers would want to know from James Gosling. > I'm looking for innovative, fresh ideas. > I have 2 questions.
1. Why was/is the Java compiler kept simple and most optimizations moved to the JIT ?
2. The JVM is not suitable for implementing dynamic languages. Why not "open-up" the JVM ? (as outlined by Olin Shiver's paper)
Language issues aside, Java has always had a very rich set of libraries including a whole WIMP API (AWT and Swing). How much of its popularity would you attribute to Java's libraries and portability rather than its language philosophy?
In the olden days, when Cobol was king and we all used punch cards, languages evolved slowly. Today languages are evolving so much faster that features are becoming depricated before you can even learn how to use them.
D. McKrakken's seminal text on Cobol was good for a couple of decades, some of my first books on Java are now useless and Java written only a couple of years ago whinges when I compile it under 1.4.1 (MacOSX).
Are we developing our languages faster than our ability to use then effectivly.
Other companies (read MS) impose platform dependence on developers by incorporating platform specific apis in their languages. We all agree that is bad.
Isn't Sun, on the other hand, imposing platform independence on Java developers? Why don't we find a classfile-to-native-executable convertor along with the JDK distributions? Java can still be multi-platform as far as source an class files are concerned. Shouldn't that be a choice?
Thanks, Matt. I really like this suggestion. I hadn't thought of it.
Oddly enough, I just interviewed Rusty Harold a couple weeks ago. I figure I'll probably start publishing that interview after the Pragmatic Programmer one that's now running. I did have on my list a few items from Rusty's 10 Reasons article to ask Rusty, ones I myself find a bit questionable. I didn't end up having time to ask him too many of those questions, however. But getting Gosling's take on some of Rusty's 10 Reasons sounds like it would be an interesting article to read.
Flat View: This topic has 29 replies
on 2 pages
[
12
|
»
]