The Artima Developer Community
Sponsored Link

Weblogs Forum
Does Anyone Really Care About Desktop Java?

103 replies on 7 pages. Most recent reply: Oct 7, 2008 3:42 AM by Andrew Binstock

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 103 replies on 7 pages [ « | 1 ... 2 3 4 5 6 7 | » ]
Thomas Spriestersbach

Posts: 1
Nickname: interact
Registered: Jul, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 19, 2008 6:49 PM
Reply to this message Reply
Advertisement
Bruce, I became really somewhat disapointed (not to say ashamed) by seeing you complaining that way about java and its usability for desktop applications. In our company I allways indicate your "Thinking Java" as the book my fellow developers should read.

I can tell you that its perfectly doable, since our <cite>Strategic Adviser</cite> application suite is a 100% swing desktop application. A business user grade application with now over 7 years of continuous development and a million lines of code, just for your information.

Obviously, in a Microsoft dominated Desktop Environment World, it is somewhat harder to find such kind of application and for the developers probably it is allways easier to follow the Microsoft trail because there are much more examples out there.

I am envolved in application development for more than two decades now and know java since its very beginnings in '95. I think the AWT stuff was good enough for the applet programming of the early years. And I recall that we even did some applet based web-forms which had some nice features such as dyamic search fields or combos, which you nowadays find in ajax enabled applications. If in '95 there had been known webservices as we do today, we were able to write easily our interfaces using the applets.

I don't even think that the swing API is difficult to use. In contrast, I find it overall very straight forward and consistent to use. Sure, if you develop an application, you will do good in building it up on kind of a framework. This is what we did and we build our own. I think, if you are a developer, you should be able to do that, it is kind of a core competence for that profession. Only because some things are somewhat more brain intensive is no reason not to do them ... its more the other way. I feel 10 times more satisfied in resolving a particular new component than googling hours or days after a ready-to-use component to include into our app.

And the tools which we have today are very productive, especially NetBeans which is my favourite one. I know what I am talking about, since over the years my trajectory included MS Visual J, IBM's Visual Age for J, Sybases' PowerJ, Borland's JBuilder, Eclipse and finally NetBeans. I used all of them for serious programming and not even to just produce kind of a quick review.

And to return you your question: Hown many well-known Flex/AIR applications are out there? Has anyone done somewhat more complex than a nice intro screen or a simple picture album?

Gili T.

Posts: 6
Nickname: cowwoc
Registered: Jul, 2007

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 5:15 AM
Reply to this message Reply
Bruce,

I think you touched upon a real nerve here.

I would personally argue that many people *do* care very strongly about Desktop Java, but at the same time I would agree wholeheartedly with your assessment of AWT/Swing. They are a total mess to work with and I would be quite glad to see Sun roll out a new well thought-out API to completely replace them without the shackle of backwards compatibility.

I'm not convinced Flex is the right API simply because I know little about it. Perhaps you should post a follow-up article with some code examples and screenshots.

Thank you,
Gili

Piotr Kochanski

Posts: 2
Nickname: piokoch
Registered: Jul, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 6:08 AM
Reply to this message Reply
Hmmm, I am very sceptical if it comes to Bruce Eckel predictions what technology is worth to be cared about or not.

I remember how Bruce Eckel claimed more or less 5 years ago that "Java is dead" and Python is going to overtake the World, enterprise systems in particular. You can judge by yourself what is the role of Python in the enterprise today, how popular is Zope server.

Now Flex is going to win on the desktop, in 5 years we will see.

Nuwan Goonasekera

Posts: 32
Nickname: nuwang
Registered: Apr, 2006

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 8:11 AM
Reply to this message Reply
> <p>And Swing programming has never been easy, but always
> messy and complicated. There were periodic murmurs of
> trying to make Java UI programming as easy as Visual
> Basic; at one point, Sun even had a VB porting project but
> abandonded it. Without the underlying infrastructure it
> can't ever happen. You'll always end up with lots of
> tedious UI code.</p>

The above has always been the biggest problem with Java UIs for me - the lack of tool/IDE support. Microsoft has always had excellent tool support (why else would VB be such a runaway hit? - certainly not elegance :) ). Windows Forms had IDE support from day 1. It took a long time for similar support to arrive in Java. (Not to mention that early versions of Netbeans were so horrendously slow that it was faster to write your UI code by hand). Java used to be pretty awful for quickly mocking up a UI due to the aforementioned boilerplate. Swing components were certainly more extensible than the corresponding Windows Forms stuff, but a mock-up usually doesn't require a custom tree cell renderer for example, so the point is kind of moot at a mock-up stage. Support arrived I guess, but by then, they'd missed the bus?

Compare with Microsoft's latest offering - WPF. Again, fantastic tool support from day 1. And the nicest thing is that it separates the UI designer's task from that of the programmer. You are provided two separate design tools, a cut down, simplified version for UI designers (Microsoft Expression) and the full Visual Studio IDE for programmers. Knowing nothing about WPF, I managed to hash together an animated, snazzy looking UI using just drag and drop. Personally, I think this UI designer/programmer separation works really well and future tech. will most likely head that way. I'm just wondering how AIR and JavaFX are positioned in this regard?

Tarun Elankath

Posts: 1
Nickname: lenkite
Registered: Jul, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 9:04 AM
Reply to this message Reply
Hi Bruce,

Check out Art of Illusion - a 3D modeler and animation software: www.artofillusion.org developed in pure Java. It rocks! (and is *much* easier to use than Blender)

Cheers,
Tarun

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 10:20 AM
Reply to this message Reply
In all my blah-blah-blahing I neglected to point to a java based desktop app that I work on:

Simbrain - http://www.simbrain.net/

I have nothing to do with the current version but I am very involved in work on version 3.

Bruce Eckel

Posts: 874
Nickname: beckel
Registered: Jun, 2003

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 3:12 PM
Reply to this message Reply
> I remember how Bruce Eckel claimed more or less 5 years
> ago that "Java is dead" and Python is going to overtake
> the World, enterprise systems in particular. You can judge
> by yourself what is the role of Python in the enterprise
> today, how popular is Zope server.

Hmm. I don't remember saying "Java is Dead." Maybe you can include a URL where I said that. Or perhaps you're thinking of Bruce TATE, who has definitely said things along those lines, in particular about enterprise Java, but his thing is Ruby, not Python.

I definitely have always liked Python a lot, but I don't recall saying it will "overtake the world." Again, if you know I said that then a URL would be useful. Python has certainly increased in usage (lots just inside Google) and the Google node architecture is initially Python based, so I think that Python usage will increase. But so will Ruby, and any other technology that increases productivity.

I also don't get this attitude that, because I've written a lot about Java that I'm somehow supposed to only love everything Java and only promote it and say it's wonderful. Precisely because I've spent so much time working with the language is why I can see the flaws so well. That doesn't mean the language is useless or dead; it's providing value to lots of people. But to say that means it's flawless or wonderful for everything is ridiculous. Java solves some problems well, and others not so well. And the Java development process has serious flaws in it, the biggest being hubris. For people to say that I in particular am not allowed to criticize the language and those behind the language will only support this hubris and that will kill the language faster than anything.

Fred Garvin

Posts: 52
Nickname: fredgarvin
Registered: Jan, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 5:49 PM
Reply to this message Reply
I'm in a similar position. The foul scent of Java is ever present as I design and build a new language and tools in it. It's all too easy to see the warts, and Java has plenty; old warts that should have been treated years ago.

But here you are, Eckel, touting Flex with *ActionScript*. Come on, dude. ActionScript is about as old and warty and laughable a language as you could possibly choose. It's trying real hard to be Java *5*, but it isn't even that yet. Just what we need, a script-kiddy language that aspires to be a language we all believe is outdated. To boot ActionScript has a "feature" where static typing is optional. Yeeeeaaaah. That's exactly what we need. Hmm. Will my refactor work? Will code completion be accurate? Will my static analysis be trustworthy? Will tools ever work for Flex? What a damn joke.

From a previous Artima post:

Optional Static Typing

Frank Sommers: I thought that static typing was an either/or proposition: You either had it, or you didn't. How does optional static typing work in practice?

James Ward: Optional static typing means you can just mix and match: You can have a variable that is of type String, and the next variable can be dynamically typed. The Flex compiler will give you a warning, but the code will still compile and run just fine.

There are also keywords like is and as that allow you to do casting on objects. If you wanted to find out what type an object really was, you can do that through those keywords. In a function call, for instance, you may not want to require a specific type, but inside the function implementation you may want different logic based on what type you were getting. In that case, you can find out the object's specific type.


Laughable and sad.

Bruce Eckel

Posts: 874
Nickname: beckel
Registered: Jun, 2003

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 20, 2008 11:21 PM
Reply to this message Reply
> ActionScript is about as old and warty and
> laughable a language as you could possibly choose. It's
> trying real hard to be Java *5*, but it isn't even that
> yet. ... To
> boot ActionScript has a "feature" where static typing is
> optional.

It's all a matter of opinion and experience, I suppose, but Actionscript/JavaScript 2/EcmaScript 4 seems to me to be rather more advanced than Java 5 in many ways. It already has closures, for example. And rumor has it that an upcoming version will have a much better typed collection solution than Java 5's "Generics."

And yes, it does have optional static typing. Typically you'll want to statically type everything you can because the development environment can then do code hinting and the compiler can generate better code. But when you need the flexibility of a dynamic language, you can suspend the static typing just when you need to, and the resulting code is far cleaner and simpler than what you have to do in Java (if you can even do it) when you need to write more flexible code. I go over some of those features in this article: http://www.artima.com/weblogs/viewpost.jsp?thread=230610

Because of my previous experience with Javascript (primarily the inconsistency of the language across browsers) I was prepared not to like ActionScript. And it's certainly not perfect, but I find that I prefer the combination of static typing when you can and dynamic typing when you need to to the straightjacket that Java imposes.

Of course, if you're convinced that the only way to guarantee properly working programs is by using a statically typed language, then I doubt I can change your mind with words. Myself, I had to have direct experience before I came to believe that it is possible to have higher productivity even without the seeming guarantees of correctness promised by static languages. If anything but a statically typed language (and note that Java, too, has holes in its type system) is laughable to you, then I won't argue with you. If it's working well for you, then great. My nature is that I figure things out and then see if there's a better way, but my better way may not be yours.

And finally, I'll say it again: from many of the responses on this discussion, there are clearly many people producing many different kinds of desktop Java solutions, so my query is answered: lots of people care about it. I personally think there are more productive ways to produce such solutions, but if people are happy with what they're using now, I'm the last person to suggest they change just for the heck of it. Don't change something unless it's truly broken. That said, I have seen numerous situations where Java appears not to be the right solution. But it's clearly the right solution for you and many others.

Fred Garvin

Posts: 52
Nickname: fredgarvin
Registered: Jan, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 2:07 AM
Reply to this message Reply
> It's all a matter of opinion and experience, I suppose,
> but Actionscript/JavaScript 2/EcmaScript 4 seems to me
> to be rather more advanced than Java 5 in many ways. It
> already has closures, for example.

I won't argue against closures. Java needs them yesterday. But ActionScript carries with it soooo much baggage that what little it brings to the table is just not nearly enough. For example, the fact that it still does not even have block scoping is... well... enough said.

> And yes, it does have optional static typing. Typically
> you'll want to statically type everything you can
> because the development environment can then do code
> hinting and the compiler can generate better code. But
> when you need the flexibility of a dynamic language.
> ... you can suspend the static typing just when you need
> to

Just when is that exactly? Does everyone on your team and dependent teams share the exact same frame of mind? And what about the other guy? And the other guy? Unless you and your team are operating in some kind of hive mind, your code is fubarred esp. with respect to any kind of static analysis. Most notable is refactoring tools, which are paramount to maintaining and advancing a medium to large codebase. I suppose if you don't have high caliber refactoring tools, you don't have this problem, but then I would have to question your claim that ActionScript is more productive. I for one could not imagine working on medium/large systems without good tools (I'm currently using IntelliJ IDEA 7).

> Of course, if you're convinced that the only way to
> guarantee properly working programs is by using a
> statically typed language, then I doubt I can change
> your mind with words.

A static type system is much less about "guaranteeing a properly working program" and much more about providing foundation for tools that help you build programs. Without static typing you are without determinism. Without determinism you are without reliable tools. Thus without static typing you are without reliable tools. I could live without tools for little stuff. I've done it enough in a previous life to know where the drop begins and it's not too far off shore.

> Myself, I had to have direct experience before I came to
> believe that it is possible to have higher productivity
> even without the seeming guarantees of correctness
> promised by static languages.


Again the guarantees are not about "correctness" per se. The primary benefit is the ability of tools to extract information from code deterministically. Code completion, code navigation, refactoring, and the like. Maybe you've never worked at length with tools like IDEA? I thought I knew everything about productivity before I started working with my current employer 6+ years ago. Then I reluctantly started using IDEA; my coworkers were stoked about it. I've never looked back. I would probably be singing your praises had I stuck with my old habits.

> That said, I have seen numerous situations where Java
> appears not to be the right solution. But it's clearly
> the right solution for you and many others.

Well, I'll be the first to argue that Java is *not* the right solution. It happens to be the best solution for large projects for the time being (imo). For instance, I would kill to use C# 3.x if it were a JVM language. In fact C# or something very very close to it is something that we should all be screaming for regarding Java's future. With heavy use of type inference and proper closures it has most of the benefits of a dynamic language, but all with a solid static type system and way more.

Unfortunately Java seems to be taking a the Spruce Goose approach to language design. The BGGA closures proposal is the latest folly. But, hey, what am I whining about; we're building our own language, coming this fall to a website near you. And then I'll be at the other end of the criticism...

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 10:56 AM
Reply to this message Reply
> A static type system is much less about "guaranteeing a
> properly working program" and much more about providing
> foundation for tools that help you build programs. Without
> static typing you are without determinism. Without
> determinism you are without reliable tools. Thus without
> static typing you are without reliable tools. I could live
> without tools for little stuff. I've done it enough in a
> previous life to know where the drop begins and it's not
> too far off shore.

It's funny that you say this because the Adobeverse is extremely tool centric and I avoid it for exactly this reason. I'd even claim Flex is designed the way it is because it facilitates roundtrip engineering for FlexBuilder i.e. switching between a design view and the edit view in a safe manner.

What I find somewhat estranging in your comment is that nobody seemed to code just right until auto-completion and automatic refactoring entered the stage and IDEA became reality. But maybe you just intended to start a flame war because it's so entertaining?

Bruce Eckel

Posts: 874
Nickname: beckel
Registered: Jun, 2003

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 10:57 AM
Reply to this message Reply
> Without static typing you are without determinism.

The certainty that static type checking === determinism is definitely a belief system that is shared among a fair number of people. Long ago, I held some semblance of that belief myself, but no longer. I have since discovered that arguing about it is roughly the same as arguing about reality (not a productive pursuit; you either get Godel or you don't).

Daniel Serodio

Posts: 13
Nickname: dserodio
Registered: Apr, 2006

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 11:31 AM
Reply to this message Reply
I guess Sun doesn't care... After the gratuitous OpenOffice ad in the JRE installer, now they added a Yahoo toolbar "option" (pre-selected, that is).

http://stuffthathappens.com/blog/2008/07/21/java-6-plus-yahoo-toolbar/

Fred Garvin

Posts: 52
Nickname: fredgarvin
Registered: Jan, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 1:10 PM
Reply to this message Reply
> The certainty that static type checking === determinism
> is definitely a belief system that is shared among a
> fair number of people.

True, there is no "certainty". Why must dynamic language guys always focus on that? To justify the chaos they confront? My point is that static typing makes static analysis *possible* in the *practical* sense.

Static typing paired with a tool of IntelliJ's caliber *helps* me a great deal; it enables me to make changes that I otherwise would not make or that I would otherwise spend much more time making. It also helps me to quickly understand and navigate code. It affords many other life giving tools that I would rather not live without.

Show me a modern dynamic language that is on an equal footing with IntelliJ with respect to tools. There never will be one precisely because there *can't* be one.

I can sympathize with people that don't understand the focus on tools. I used to be in the same boat. In a previous life I formed my opinion on tools from Visual Studio and Eclipse, which were awful at the time (~8 years ago). Then I used IntelliJ and it changed my world. All I can say is that until you use intelligent tools on a regular basis with largish projects, you'll never really get it.

Scott Langley

Posts: 1
Nickname: langles
Registered: Jul, 2008

Re: Does Anyone Really Care About Desktop Java? Posted: Jul 21, 2008 1:49 PM
Reply to this message Reply
Could someone with experience developing with the Eclipse Rich Client Platform, the Netbeans Platform, or the Spring Rich Client Platform describe for us how well they soothe the problems and complexities of Java UI development?

Thanks.

Flat View: This topic has 103 replies on 7 pages [ « | 2  3  4  5  6  7 | » ]
Topic: The Weblog Skeptic Previous Topic   Next Topic Topic: Community Book Creation: Python 3 Patterns and Idioms


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us