10 years of Tech Days, 11 questions for James Gosling, and then some cake
The highlight of the second day of Sun Tech Days Atlanta was probably the wide-open Q&A with James Gosling. In this season of rehearsed, orchestrated, and fully-landscaped tech conference keynotes -- think Bill Gates at CES this week, or Steve Jobs at MacWorld next week -- it's really saying something that Dr. Gosling will put himself out there for any question submitted by attendees. The questions could be about topics that he's not well-equipped to handle, or could be patently asinine, but he took an hour to fully consider and reply to 11 questions submitted by attendees.
And lucky for you, I took notes. Do understand that these are parahprases of Dr. Gosling's full remarks; I'll try not to lose anything in translation, but don't treat these as exact, attributable quotes, because I didn't have an audio recorder rolling.
Question 1. How do you incorporate Microsoft applications with Sun frameworks?
Dr. Gosling said he was probably the worst person in Sun to ask this question to, then continued that most of their integration work was built around the designed interfaces, particularly for web services. He said the whole "alphabet soup" of WS- standards had been implemented and tested for interoperability with Microsoft and works reasonably well.
Question 2. Universities are teaching antiquated views on Java, focusing on old performance problems. What is Sun doing with universities to appeal to upcoming developers?
Gosling pointed out the specialized IDEs that target education, like BlueJ and GreenFoot. He also pointed out that Sun funds Curriki, a curriculum-building education site that's used around the world. There are also tech days, and evangelists going from school to school giving talks. He added that the big problem with schools and universities is that "there are so damn many of them."
Question 3. Are you aware of performance problems rendering HTML inside a JTable with default JLabel renderer?
Gosling said he could froth at the mouth about HTML, noting how utterly "massive" the spec is, as are the problems of dealing with all the non-spec-compliant HTML seen in the wild. Having said all that, he advised that if you really wanted italic text in your
JButton, than instead of putting the button String in HTML, you could just set an italicized font on the button. From this, he noted that sometimes developers choose "big hairy things", like HTML, when there are simpler alternatives. Similarly, he said that a lot of people who crack open books on EE, which was designed for large scale systems, might do better to just write a servlet or even work with raw sockets. "I love raw sockets," he added.
Question 4. Why doesn't Wall Street think highly of Sun?
"I have no idea," was the initial reaction. Gosling pointed out that if Sun were measured by cash flow, it should value Sun much more highly. "Our cash flow is great and our stock price sucks," he said, noting that a lot of companies were in the exact opposite position. He also pointed out the irony that much of Wall Street runs on Sun products. In particular, the NASDAQ exchange is "a Java app running on a bunch of Sun boxes", and they seem happy as clams.
Question 5. Do you have any plans to develop a tool to let a common user like housewives be able to develop applications?
Gosling's initial answer was "no", but he came around a little bit in the course of a long reply. "One of the things we're trying to do with tools," he said, "is to make it so that differently talented people can write apps easily." He pointed out that as part of the research and preparation for Java FX, they did a survey of shops doing Rich Internet Applications, and found that more than half of the developers are people who went to art school, not coming from the usual engineering background. "They have a different idea of what a tool should do." So the next generation of tools is meant for a mix of art school and engineering types, with Java FX Script "designed around the kind of scripting that the art school crowd does, and the way they think about scripting." He also noted GreenFoot, an IDE built around writing sprite-based games, as a means of getting young kids to code.
Question 6. What do you think of the state of Java observabillity in production, and where it's going?
He said that again, he probably wasn't a particularly good person to ask about this, but noted that a great deal of work has gone into improving Java observability and manageability, particularly with production systems, which is where all the hard problems happen. "You need to be able to attach to a production server and do your testing and diagnosing," and noted that NetBeans 6 has management tools "baked into the core system". He also spoke about the power of DTrace on Solaris, and encouraged Java track attendees to switch over temporarily to the Solaris track and find out more about DTrace.
Question 7. Why is there no support for unsigned
A quick answer here: "because you don't need it." Saying that most people do the same operations with signed and unsigned bytes, making unsigned primitives largely redundant. "The real reason" that he didn't do unsigned primitives, he says, is that he walked the hallways in Sun with a stack of questions about unsigned operations, and most people got them wrong. "I kept trying to figure out a way to make unsigned comprehensible, and failed completely." One alternative would be a performance-killer: arbitrarily raising precision. So he left them out, adding that while a few people use unsigned primitives correctly, most are kidding themselves.
Question 8. A standing criticism of statically typed languages is that they bloat the code and lead to boilerplate. Dynamically typed languages like Python let you do more with less. Can you comment on this "statically typed equals bloat" mindset?
"Boilerplate has nothing to do with static typing," replied Gosling, and then brought up the kinds of examples people usually use to demonstrate the efficiency of other language. He cited one example, where someone complained that setting the compression factor of a JPEG using the Java API, whereas this was a one-liner with Python. Gosling pointed out that JPEG compression has "like a hundred parameters, and we handle them comprehensively." These APIs were written by people from Kodak, and they really cared about color calibration. "If you try to do color calibration with Python, you are completely [hosed]." In other words, the Python advocates can boast about the simplicity of their JPEG APIs only because they don't do nearly as much. The "big bug" in the Java world is that it was designed for large, complex systems, and scales down. By comparison, "Ruby works well, but doesn't scale." He asserted that Rails seems to offer high performance, but does so by moving the problem to the database, meaning that as your system grows, you'll quickly outgrow MySQL and have to move to an expensive enterprise database. Strong typing is all about performance, he said. "Benchmark Ruby," he said, "and it's two orders of magnitude behind Java."
Question 9. Apple support for Java has been lagging behind, with JDK 6 absent from Leopard. Is Sun working to improve this?
With a sigh, Gosling said that Sun has been working with Apple for years on Java for the Mac. "I'm fairly frustrated about it," he admitted, saying that "if any of you are members of Apple developer program, you know their support of developers is pretty shoddy." He says the problem may be one of development priorities, with Apple pulling developers off of the Mac and putting them on other projects. He said he'd been working on paging problems on the Mac, and when he contacted his friends in the company, they'd say they couldn't help because they'd been reassigned to iPod. Summarizing his feelings about Apple, Gosling said, "they're just difficult."
Question 10. What is the most fascinating Java application you have ever seen?
In terms of changing people's lives, Gosling said he'd choose the Brazilian National Healthcare System. "It sort of sets my standard for 'Holy Crap!'" The system tracks every caregiver-patient transaction throughout the entire country, all of which propagate from village to state to national datastore. If you're in an ambulance in one city and say you had an X-ray in another city yesterday, they can pull it right up. On a tour, Gosling said that the system had paid for itself five times over just in the elimination of drug fraud. He also said that the JavaCard-based identification system made name records optional, a crucial trait in indigenous areas where people share their names only with family members, not with outsiders.
Question 11. What would be the impact of Sun if Java was moved to another company?
Gosling said "it depends", primarily on the kind of company involved. With a benign party, it would be fine, but could be nasty with "certain other companies." To express the potential nastiness, he told an anecdote about being at Carnegie Mellon, feeling it was effectively a research shop for the military, but discovering the military people were "really cool", and coming around to their outlook that their job was actually peace. "And then I went to IBM, and I was like 'holy crap.'" Having found that the military people really weren't interested in starting fights, he found that "in most capitalist outfits, the goal is total destruction." That said, he carved out an exception for Sun, which has always stayed small enough, adding that "Scott never had any delusions of grandeur."
And with that, the hour was about up and the Q&A concluded. With one surprise. Announcing that the Sun Tech Days started in January 1998, this event marked the 10th anniversary of Sun Tech Days. So a cake was rolled out in front of Dr. Gosling and the organizers of the event, and then sliced up during the Filthy Rich Clients and Metro sessions, served as a snack for the late afternoon break.
Now, here's a look at the java.net front page for today, starting with the Java Today section.
Over on Artima, Frank Sommers has posted Data Binding in Java: A Conversation with Shannon Hickey about the Beans Binding API, JSR 295. Shannon, the Spec Lead for JSR 295, explains Beans Binding, both the problems it solves and the theory behind it. He also talks about how Beans Binding is a separate issue from the various proposals to add properties to the Java language, and distinguishes the project from similar efforts to bind JavaBean properties.
Naoto Sato has posted a proposal for Easy localization in JavaFX Script. "We are thinking of a new easier way to localize strings in the JavaFX Script. It would be pretty much like GNU's gettext() function where the key itself becomes the default translation. So the above code would be written in JavaFX Script like:
var greetings = ##"Hello, World!";
Yep, just one line. How simple is that! Here
"##" works like a unary operator to the string literal, in which it looks for the proper localized string with the key of
"Hello, World!". " A complete Proposal for the string literal translation has been posted to the Planet JFX Wiki.
In December, the JUGs Community started a campaign to refresh and cleanup its incubator, the place where new JUGs experiment with the java.net infrastructure.
The ESJUG is one of the first JUGs that have been graduated from the incubation status. The Espírito Santo Java User Group is the only JUG of Blog Links >>