New Desktop Features Of Next Java
bonch writes "Sun has posted the new desktop features of the next Java, codename Mustang. Improvements to Swing look and feel, OpenGL 2D renderer performance, AWT features such as the ability to add a tray/panel icon, and improved deployment capabilities."
Here are my items that I would like to see in the next Java:
1) The ability to allocate more memory space to Java apps.
2) 64 bit support.
3) Ability to/Easier implementation of hardware specific calls to speed calculations. (e.g. Altivec acceleration).
Visit Jonesblog and say hello.
...that mustang is also the first Java version to be developed under an Open Source type model. The CVS is open to guests over on http://www.java.net, thus allowing for immediate feedback and bugfixes. It has been a real boon for the gaming community, as they've been able to direct several key performance features.
Javascript + Nintendo DSi = DSiCade
Yeah! This is really something that should be made better.
Always when I use some Swing based applications I'm remembered that the times of ugly GUI's aren't over yet.
chris
Who spilled the java in my Mustang??!
By reading this, you have given me brief control of your mind.
You would have succeeded, if only you had used the speedy next version of Java, codenamed Mustang.
Letter
Jave was too slow.
YOU FAIL IT. Yes, you had a bot.
I'd also like to see a reduction in the 'layouts' available. Maybe I'm old-fashioned, but I like to position the elements where I want them, and not how some layout manager feeld they will will go best.
antipaucity
It looks like they've finally addressed this issue, but I think Sun is a little late.
.NET/Mono being around to give Sun a little kick in the rear to get moving on things.
Personally, I can deal with non-native look-n-feel, but when the fonts look like something circa 1988 on an Amiga, how can anyone take Swing seriously.
I never understood why they couldn't use platform specific code for fonts, and if not possible then go into fallback mode and paint everything themselves.
Swing has been a disaster. I believe it was the OTI guys (who now work on Eclipse and SWT) that told Sun not to go the route of "give me a handle to a brush and we'll paint everything ourselves", but some other group won that debate.
And thank god for
Screenshots!
A story about desktops carry no weight with me unless there is pretty pictures.
Get your Unix fortune now!
...the next version.
Not quite the same thing as "this is in the next version."
Loading...
You mean java is slow?
;)
Yes. Sometimes it is.
But hey! With such a codename it MUST be much faster
chris
First off, no one said it's what we need. And regardless if you or I feel there might be no need for it (I personally use it daily), there are plenty of shops out there that do.
And second, they're addressing a significant issue with Swing which is its pokyness. This is going head on with SWT , a 'feature' that Eclipse people have enjoyed for sometime. This also signifies Sun throwing in the towel on their whole Swing widget abstraction, abstraction, abstraction mantra in favor of using the native OS rendering widget facilities. This has been a major Java gripe for some time; why can't my Windows Java app look like a Windows app and why does it have to be do damned slow?!
Should be interesting to see how these features/additions play out. Also, looks like Swing apps are finally getting native aa font support. This will please many as the text rendering in Java apps is still in the Windwos 2k/GTK 1.x days..
Java must embrace SWT and start doing GUIs in a fast, portable, native way. SWING is slow, redundant and ugly. IBM knows the right way, SUN should follow them or surrender to .NET (both windows and mono have NATIVE widgets stuff).
I was thinking they should add a new feature like not such random sluggish responsiveness in all java GUI apps on *nix machines.
This is downright stupid. How long, exactly, has JAVA been in existance? YEARS. It should never have taken such a mainstream language so many many years to have such basic features in the UI package. We're supposed to ooh and aah over this like it's exciting, breaking, important news. This is JAVA catching up to 10 years of simply horrible UI design (and other features.)
Excuse my speling.
Making The Bar Project
I guess the VM could use 64-bit pointers internally, but as you can't access memory directly in Java I don't know how the programmer would ever be able to tell.
Exactly. So why is Sun dragging its feet on porting its virtual machine for the Java language to the AMD64 platform?
but I like to position the elements where I want them, and not how some layout manager feeld they will will go best.
Thing is that "some layout manager" will know about the different conventions used for different human languages when it comes time to localize your software. Pixel layout is dead because different languages use different numbers of letters to spell the same thing. And in Israel and the Arab world, text in the local languages reads from right to left.
I'm no Java fanboi, but these are some the classical advantages of Java over other languages:
There are others, but these are the ones that immediately come to mind for me.
I'm a C++ coder myself, but I do appreciate Java's value for certain situations.
cp /dev/zero ~/signature.txt
I've been on the java.net site.>/a>
.net suffix is either coincidence or very ironic.
Its a good mix of Sun developers and java users. I'm thinking of jumping back into java and been poking around that site to see what is new.
Its not all netbean either, Eclipse is giving good billing to.
The
as soon as I find out something's written in Java I can immediately ignore it
Then which web games do you play? Do you really want to use ActiveX to load web games written in native Win32 code when ActiveX lacks the sandbox capability of the Java platform?
Or any kind of OSI approved license?
You have never written a large multi-platform piece of software, have you? Learn to code something a bit more complex than Hello World before you call other people slackers for not going through the hell that is making a piece of software written in C/C++ work on multiple platforms, all from the same source.
Obviously Azureus must be crap by your standards too.
64-bit Java VMs have been available for SPARC64, PPC64, and AMD64 for ages.
Those all sound like very good enhancements. I would get rid of the crappy "Ocean" theme for the default. It's really no better than the much hated Metal. It sounds like they have worked to get the native look and feel much improved, but I would still like to see a *much* nicer default since it seems like that's what so many developers end up using.
The other thing is major Java Web Start improvements. I've tried to use it and it sucks majorly. Basically you end up having two different versions of your application, one that works with WS and one that works as a native application, which stinks from a QA perspective. Furthermore, while I know there are major security considerations when clicking on a program from the web, something has to be done about the dialog boxes. My own parents wouldn't run the application I wrote because it said "it is strongly recommended not to run this program". Then, there are all sorts of other weird dialogs like "would you like to enable desktop integration" that never works, and also sometimes gets put behind the application so you can't see it while it's still modal.
Otherwise, they REALLY REALLY need to get a better browser component. Here's what I suggest:
http://jrex.mozdev.org.
Make this a part of the standard JRE! *It will be the most significant and best single thing that ever could have been done to java*. Imagine having a gecko rendering engine whose DOM is fully controllable from Java on every major platform that the JRE supports! Imagine being able to use a gecko widget inside any GUI com\ponent! That would be how to step up and really innovate.
Finally, provide better desktop integration. Interact with the system tray. Allow "always on top" behavior. Include proper fonts (which it sounds like they're doing).
All in all, though, it sounds like there are some definite improvements, but they need to leap frog, not just catch up. Taking the JREX.MOZDEV.ORG concept and running with it is just how to do it.
I can count the Java desktop apps I know on one hand. I'm sure theres more but it's pretty much a dead topic for most developers since Swing has sucked for so long. The more I think of it, I see lots of problems with the whole Swing API/programatic approach to building a GUI. Why can't it all be XML based where you just design your GUI elements in document form and load it in.
On a side note, I'm not very happy with JSP these days either. I've been doing dotnet development for a year now and love the idea that each page has an instance of a class behind it. I tried to get back into JSP again lately, but was disgusted to rediscover that all instances of a page are sharing the same object, which is very frustrating and anoying after having done it the other way.
Blender And Linux Fan
Where possible, we will add pointers
Wow, the beginning of that sentence sure scared the hell out of me. In my opinion, asterisks should be for multiplication only.
If you don't want OS Abstraction then why not just use AWT?
I dont know why... but when i first read the article i thought it said..
"and improved unemployment capabilities."
Ahh.. the life of a java developer
C and C++ would never have become popular if they had come out without such basic features as a UI library.. ... oh..
emm..
hmm?
Seriously, where are all those Java games which sun keeps talking about? I see a million games written in Flash, but hardly any games written in Java. How come Java isn't better than Flash?
Abstract Windowing Toolkit. Really, is google so hard?
Here's some info.
My UID is the product of 2 primes.
I love how Apple and Mac OS X are not mentioned anywhere at all.. Java has been welcomed pretty nicely to the platform - although you've probably never heard of WebObjects, among other things - and Sun could really care less about a platform that *wants* good Java.
Simple really-- some programmers are lazy. They can't be bothered with optimizing their code for individual platforms.
Or they don't have the time to write something for multiple platforms. Time-to-market is directly tied to your ROI..
Why would I pay a programmer $1 an hour to code something for 10 hours on three different platforms, when I can pay him $1 an hour to code something once? Especially if I'm going to sell just as many copies for the same exact price in either scenerio -- the java route increases my return.
It's ALMOST as fast (and in many cases just as fast) as C code.
On every OS you mean or just on the most used one?
- The compiled code is completely (well, almost) platform-independent... Eliminating many powerful feature possibilities because one has to be concerned that this or that doesn't exist on this or that platform.
- It's ALMOST as fast (and in many cases just as fast) as C code... in someone's dreams maybe. If you honestly believe this, you've totally drunk the Java Kool-aid. Don't worry, the mothership's on its way
- The language is designed to avoid some of the "problems" in C and C++... like giving the programmer too much power - instead, trapping them in a weak little sandbox where nobody's supposed to be able to hurt themselves? wimps.
- Java provides free (in terms of effort) garbage collection... which is fairly inefficient and sucky, and is there because the current generatin of Java Weenies are too lazy to write their own
- Java applets can run in web browser. This allows websites to... upload all sorts of crappy advertising and malicious spyware, costing corporations $millions and causing computer novices around the globe to waste countless hours of their computer geek buddies time to dig them out
[lie]Not that I've got anything against Java [/lie]I'm very excited with all the improvments Java is going through, but I'd hate to see it all being completely missed by the general public and web application developers if Microsoft won't include the JRE and Java Plug-in in Longhorn.
Anyone knows what going on with this issue?
Simple really-- some programmers are lazy. They can't be bothered with optimizing their code for individual platforms
Sorry, but that's a pretty ignorant attitude. Judging an application soley on being java-based is a poor method. Rather, you should ask if the developing language is appropriate for the task. If someone told me they wrote a graphically intense FPS in java I would be suspicious. But, if the app only needs to be light and portable java may be a good choice. It allows for very easy control of how the application looks on multiple operating systems. A good example of a nice-looking java app with no speed issues is Limewire. It runs quickly, works well and can be updated more efficiently than if they had used a graphical toolkit for python or C. Not that anything is wrong with chosing python or C either. It entirely depends on your application requirements and development resources. Brushing off all apps written for the JVM (or any development kit) will cause you to miss out on a good app sometime.
First, it seems like KDE/Qt has more momentum than GTK on the desktop. Qt apps look better and are more integrated with eachother. Suse is the dominant desktop Linux distro and Suse is KDE-oriented. I'm glad that Java is going to be using native GTK for rendering, but what I would really like to see is native Qt. Maybe they could create some kind of interface to make it easier to plug in different rendering systems? Maybe they could open source Java and let the community take care of it? Maybe they don't care because desktop Linux is only about 5% of the market anyway? But still, it's something I would like to see.
The second thing they need is a "SwingLite", or some easier way to do common things. For example, it is very common to need a text field that allows the user to enter a number, but not text. Should be easy, right? This is the code I have to use to do it:
That's just wrong. I should be able to say:or maybe:The above example, involving two different factory classes to just get the field to accept integers only, puts a high burden of knowledge on the programmer, and Swing is full of stuff like that. It's great that the power is there because I can write my own hierarchy of text formatting factories and objects that enforces correctly-entered Sandhi rules, but that doesn't come up very often, and what does come up very often is having to enter a plain old number, date, currency value, that kind of thing. And I'm just using this one example, but this kind of over-design is all over the place in Swing.The final problem that they have is putting emphasis on plugable look and feel. Application developers shouldn't get to decide the look and feel of their apps. That should be determined by the desktop environment. Pluggable look and feel is not a feature; it is a bug. It should be deprecated and removed.
----------
Educational software
I use many java desktop apps in my day to day tasks on my linux desktop. There is no better way to connect to multiple databases than Squirrel , No better way to code in Java than NetBeans and no better editor than JEdit
I think Java 5 already has great desktop features like shared class data, and 2D acceleration for 2D acelerated hardware (which I don't have yet!).
It's ALMOST as fast (and in many cases just as fast) as C code. Additionally, it compiles much faster than C, though C binaries make up for it with substantially shorter load times (Java has been improving in this regard recently, however).
Incredible, does this crap ever end. No, its not even in the same universe as C when it comes to performance. I can't name ONE Java application that doesn't suck utter arse when it comes to responsiveness. The much touted server peformance is also awful but is easier to hide behind mammoth hardware specs. Embedded Java -- slooowww. Seriously, put any Java application next to a C application and see the truth.
"I'm a C++ coder myself, but I do appreciate Java's value for certain situations."
That is perhaps why you would never apprechiate Oberon.
I just checked out the latest build release of Mustang, Swing at least on Win32 seemed again snappier, the absence of the gray rectangle problem really made a huge difference, the guy now is faster on Windows (tested it on SwingSet2 and JEdit) than Firefoxs is.
But there still were minor annoyances in the Windows look and feel, mainly, the menus still are different to those done by windows (XP does dropshadows and transparency while being opened, Swing is flat) The file open dialog still has layouting differences, but besides that things start to look very good and fast. Cannot speak for Linux however and the Mac has yet to get a 1.5 release.
Actually Sun is not throwing in the towel, Swing has done an interesting approach no other Widget set has done so far. They basically went the way, of rendering the widgets still in software, but the underlying graphics layer is hardware accelerated if possible and the rendering data for the skins is directly parsed from the underlying OS skinning engine if present.
And Swing has gotten much faster that way. Swing has been already more than usable in 1.4 and I recently checked the latest 1.6/6.0 builds, and all I can say is wohaaa... The guy in 1.6 at least on Windows is very snappy. I have had running Firefox and SwingSet2 running side by side and SwingSet2 blew firefox away rendering speedwise.
I wonder why they aren't having an XUL/XAML implementation?
I don't want my java apps looking like windows apps. I want them as responsive. I like the ability to change look and feel. I just wish laying out the gui was easier and classes like swingworker (or the foxtrot stuff) was built in and more transparent.
The language is designed to avoid some of the "problems" in C and C++... like giving the programmer too much power - instead, trapping them in a weak little sandbox where nobody's supposed to be able to hurt themselves? wimps.
You're picking your programming language because you think it makes you manly!?
**BARKING LAUGHTER**
Do we have news for you!!
and suggest Eclipse or IntelliJ as a better java IDE.
"Look Lois, the two symbols of the Republican Party: an elephant, and a fat white guy who is threatened by change."
yes, yes it is! you know, the language you used before python, which made programming free and fun again!
who is she? leave a comment!
Why would I pay a programmer $1 an hour to code something for 10 hours on three different platforms, when I can pay him $1 an hour to code something once?
Because you'll end up coding 10 times anyway, at least according to John Carmack.
But then again, what the hell does he know, right?
Is stability, security, and more speed. OOo 2 beta is SLOW and most issues i have with it are Java related in some way.
I am Spartacus
Wow Princess, make a polite post expressing your personal opinion of Java (which is less than glowing) and win TROLL mod points.
You know, as much as I dislike the Java language, what really kills me is the religious evangelism of the Java Bigots and Java Weenies out there.
Java is bloated, slow, and while people throw around lotsa nice terms like "scalability" and "enterprise", it's been my personal experience that anything written in java takes twice as much time to write, runs half as fast and uses 90% of the available memory and processor of the box hosting the JVM.
I'm a girl, you insensitive clod!
Use Microsoft's API for rendering portions of components (5106661).
and
Use GTK API for rendering portions of components (6185456). After fixing 6185456 Swing components will use GTK's rendering engine...
ROTFL. After years of Swing fanboys bashing IBM for daring using native OS rendering for UI widgets in their SWT toolkit (in contrast with Swings alleged the-only-right-and-holy-way of drawing everything in Java in name of "Java purity"), they seem to have finally gave up the futile attempts to imitate native OS and Swing will now delegate part of its rendering to the *gasp* _native_ rendering engines. I really wonder how can it be noone in the Swing camp cries desecration... :-)
Sig erased via substitution of an identical one.
If i could pay a programer 1 USD an hour , i would be a very rich man , either that or in jail for slave labour.
The only things certain in war are Propaganda and Death. You can never be sure which is which though
You have never written a large multi-platform piece of software, have you? Learn to code something a bit more complex than Hello World before you call other people slackers for not going through the hell that is making a piece of software written in C/C++ work on multiple platforms, all from the same source.
No, in fact, I have been doing multi-platform development for around 20 years now, including client server, three tier, networked database and web applications. How much hell the programmers go through is not the issue-- it's a programmer's job to program, and if that's hell for you perhaps you should look for another job.
1. You have obviously never written a line of code.
2. The Java programmers of this planet would like to thank you for becoming one of their users.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Why would I pay a programmer $1 an hour to code something for 10 hours on three different platforms, when I can pay him $1 an hour to code something once? Especially if I'm going to sell just as many copies for the same exact price in either scenerio -- the java route increases my return.
Exactly. But now think like a customer. Why would you buy a Mac and not a PC if you just wanted to run generic programs? Aren't you interested in looking for those programs out there that take specific advantage of your hardware investment? What is it about the best Mac programs that make you buy a Mac in the first place? As a customer, what do you care how hard it is to write code? Sure, you care how much it costs, but you may very well be willing to pay more for software that's better integrated with your platform. When I'm a customer and not a developer, that's the sort of customer I am. Consequently, if it's written in Java, I look elsewhere...
Brushing off all apps written for the JVM (or any development kit) will cause you to miss out on a good app sometime.
Ok, sure maybe I'll encounter something worthwhile one of these days. So far, everything I've tried was a nightmare to deploy though-- "JVM version hell" for the most part. Flash animations do a lot better in that regard at least-- they run on various platforms and I've never seen them complain about needing a specific version of a player (maybe they do, I've just never seen it), and EVERY time I've tried to deploy a java app I had to reinstall java with the "right" version for the app. Except for web-based Java that is, which has been mostly quirky and/or slow.
But alright, I admit it. I've been doing fine without Java for 20 years and am now a crotchety old curmudgeon. Maybe I just should have programmed everything in MIX...
If i could pay a programer 1 USD an hour , i would be a very rich man , either that or in jail for slave labour. That or you would be a major US corporation outsourcing to India or Russia.
`fortune -o`
Carmack may know a shit-ton about 3d games, and low level programming. However, that doesn't necessarily mean he knows squat about anything else.
On the other hand, while text mode apps can run on many platforms, there are c compilers on even more platforms. Well written C will port much more easily to those platforms. And GUIs just look wierd when you try to run them on a different platform than you wrote them on.
On the other hand, for many practical applications, java will turn out to be much slower than C. Particularly if your work relies on the performance of two key areas: 1) you write code that does a lot of interesting array access, in which case the lifters and such in the optimizer will fail you and you'll do 3 ops in java to every one in C when you access your array. 2) you copy application data from/to disk or over a network, an extra copy is required to move the data into an object's memory, and this cannot be done in bulk either.
On compilation, I don't know what planet you're working on, none of the java compilers hold a candle to the C compilers, but really, who cares about compile time, run time is what matters, and there indeed you get the joy of slow java startup.
Also, the java compiler has no support for conditional compilation, which hampers debugging support (and lots of other nice bonuses you get with a precompiler).
On the other hand, most large scale apps still wind up having to track down this sort of problem, and auto_ptr can solve this for you on C if you want.
On the other hand, C apps can run in a web browser too, but granted, support is not as widely deployed by default.
"Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
How much hell the programmers go through is not the issue
You're quite obviously bullshitting, because anyone who's programmed professionally will tell you that IS the issue. Making a project take much longer to implement and take literally twice as long to test really isn't a sensible option when you are paying people by the hour. If a piece of software doesn't require to be particularly fast, nor does it perform any low-level operations, yet needs to run on multiple platforms, then Java is the sensible option.
If you are writing database and web applications like you claim you are, then you of all people should know that Java is in many cases the sensible option.
Check out dbvis or Azureus before you talk down to java apps. Java makes networking and database code a lot easer to write which realy shines though on these apps.
From what I hear Azureus is about as fast as any C++ BT client but it adds a good UI and a lot more features than the av BT client.
As to dbvis I have been using it for a while at work and the free vertion works great. Now you want to show me a free / cheep C++ app that does the same things on OS X I will look into it untill then I am going to stick with dbvis.
Nice mis-quote. He's talking about J2ME, which is not what the article is about.
Demographically, it's clear that most Java VM's run on Windows. Why don't they write a version that works even half as well as Microsoft's VM did?
The first thing I do after building a clean XP Service Pack 2 (or 1a) machine is install the no-longer-available Microsoft VM. Then, I go to Sun.com to download and install... nothing.
If I work on a machine that already has the Sun VM, I install the Microsoft VM and set Sun's not to be the default Java engine for IE. I also get rid of the stupid f***ing shortcuts and update managers Sun loves to install.
Why didn't Microsoft just pay those assholes off and keep on making their own VM? It actually worked in Windows.
The AMD64 editions still does not provide a browser plug-in. Luckily, there is Blackdown.
Wow... you guys wasted no time bringing out the flamethrowers. ;-)
I'm not advocating Java, but the parent asked what it's good for, so I gave the most commonly cited advantages.
I still prefer C++ myself, unless I don't care about performance or need some specific feature of Java that I don't feel like implementing/obtaining myself.
cp /dev/zero ~/signature.txt
Some of you are complaining about GridBag and other layout managers. You have an excellent point.
To drop components just where you want and still have things resize, look at the UI builder called Foam. They have some videos at http://www.computersinmotion.com/ where you can see some pretty neat demos of Foam building some dialogs.
The dialogs get saved in XML which means one line of Java loads up and creates your layed-out panels!
Why would you buy a Mac and not a PC if you just wanted to run generic programs? Aren't you interested in looking for those programs out there that take specific advantage of your hardware investment?
In that case, you won't even look at Linux/*BSD, because Windows is designed specifically for your x86 architecture, right?
That was a very silly comment you made earlier. I would recommend you stop digging.
You just posted to slashdot that you use IE... nevermind that you also prefer a 10-year-old JVM. Maybe it's just me, but highly I recommend learning something new instead of praying "JCobol" will stretch out your IT career until retirement.
About time they started thinking about the desktop. Java rules the server, why not the client?
Making a project take much longer to implement and take literally twice as long to test really isn't a sensible option when you are paying people by the hour.
Java is not the panacea your argument here is claiming it is. Testing may take a bit longer, but that's not necessarily a bad thing-- some things get tested better on one platform than another and you find things you might not otherwise. And coding doesn't necessarily take much longer to implement if you are familiar with the variations in the target platforms. Sure, I've seen a lot of *bad* attempts at multi-platform code, look for *platform* specific #ifdefs spread throughout for example, rather than *feature* specific ifdefs that are selectively defined for each platform. That sort of thing can be hell when the programmers don't know what they are doing, or if you've inherited it from some who didn't. But make no mistake, Java has its own unique set of issues that cause their fair share of problems.
Ultimately, the customer doesn't really care what it's written in, other than the fact that he's "heard" things good or bad about one language or another. I've never heard someone react to the fact that something was written in C as if it was a bad thing though, usually the contrary (most customers are ignorant of it's propensity for buffer overflows and wayward pointers). I have heard negative reactions from customers for a lot of other languages though.
If you can't afford programmers who know about coding in multi-platform environments, then Java might well be a good bet for you-- but that's not a good argument to relay to the customer as to why they should buy it...
Long live C#!
In many ways, Linux takes better advantage of x86 architecture than Windows does. Linux is written multi-platform in the way I'm arguing makes sense, not by emulating a virtual machine on every platform, but by optionally taking advantage of the specialties of every platform. Otherwise, all Linux installations would be compiled strictly for the 386. And the ways that Linux comes up short on the x86 platform, it's due to either lack of hardware drivers which is a short-term problem (hopefully) OR the overhead "one-size-fits-all platform independent" solutions such as X which is also a short-term problem (see directFB.org for an example). I dual boot Linux/PC at home, Linux anytime I want to surf the web because its more secure, and PC when I want to run games or other graphics intensive programs. I create (boot) the platform I want for the job I'm trying to do. I have little interest in emulations such as Wine to do that, rebooting is not a big problem for me. Eventually I do hope to be able to stick with one environment, but it's just not a big deal in the meantime. I'm not interested in "networked" games though, if I was I'd have to do something else.
It seems to me that product managers have long concluded that programming is hard, or expensive, or otherwise prohibitive and they want to do less of it. We don't have time or money or expertise to do it right, so we have to find some kind of shortcut. And that sells lots of things-- fad methodologies, magic tools, outsourcing, all sorts of software snake-oil. The problem is however, that there's no free lunch. Each of these alternatives have their own set of complications. I choose to pick those that optimize the results, not the process.
...and nobody bloody cares or remembers.
SwingWT is a FREE implementation of the Swing APIs on top of SWT so you get all the juicy nativeness of SWT and all of the nice APIness of Swing.
I know about the old Slashdot joke about BSD dying but I think Sun should release a distribution of Java for BSD. BSD's can make great servers and Java on that platform could open the way for many enterprise solutions.
Don't forget it makes your skin turn green.
The fact that Java by default only allocates and will use 64 MB per application shows your lack of knowledge. This is a great feature; a runaway program is a runaway program, but using Java it won't use ALL your system memory.
You know that Linux basically emulates its preferred 3-stage (is it 4 now?) page table layout when the architecture doesn't support it?
Ever wonder why your Amiga (or whatever) ran so fast given its processsing power? The OS was designed specifically for the hardware. With Windows there's an interesting conspiracy theory that MS purposefully slow it down to encourage people to upgrade.. but I digress.
Remember when everything was written in assembler? Was it "lazy" to code in C? While it would be nice to optimize the results, you have to remember that if you have more time, you can spend it debugging or adding new features - thus optimizing the process can lead to optimizing the results.
While C/C++ with MFC/GTK is much faster usually with a better UI, it takes an order of magnitude longer to develop software for it, time which could be spent improving the program itself, if it was to be written in Java.
You don't have infinite time to develop software. Not everything can be Duke Nukem Forever.
You hot?
I'd be intterested to know what those Java apps were. Obviously not IntelliJ, Jedit, Azureus (on the desktop), or any of the cellphone games written in J2ME.
If I tried, I could write and configure a java program to behave as you described. But I'd have to consciously try to. You are obviously used to running programs written by somebody who's not skilled in writing Java.
How about Flash?
Games using Java technology can be made in J2SDK, which costs $0 (royalty-free proprietary software). Games using ActiveX technology can be made in MinGW, which costs $0 (free software). In both cases, the Eclipse IDE is free software. Flash games, on the other hand, are made only in Macromedia Flash, which costs well over what I can afford.
In addition, doesn't using Java technology let nearly the same codebase run on J2SE web browsers and J2ME phones?
Of course, it's still better to not fix stuff that ain't broke.
Everything I've written has had no reason to be localized.
Yet. Are you planning for when some foreign company wants to publish your program in another country and possibly pay you for the i18n work underlying its L10n job?
Remember when everything was written in assembler? Was it "lazy" to code in C? While it would be nice to optimize the results, you have to remember that if you have more time, you can spend it debugging or adding new features - thus optimizing the process can lead to optimizing the results.
As usual, it's a tradeoff. C was a pretty good tradeoff against assembler in most cases, it is practically a generic assembler itself-- handling data at pretty much the same level, mainly just the "instruction set" is hardware independent, not so much the data. A good C programmer will generally have a pretty good idea what the equivalent machine instructions are for a given line of C code.
C++ however, somewhat less so. Many of those object oriented features move the programmer further away from the sense of what is happening with the hardware. Layers are hidden, encapsulated, etc., but bugs and performance problems can be as well. It may be a reasonable tradeoff, but there is some penalty you are paying.
When on top of that, you further add virtual machine emulation, you've completely removed the programmer from any sense of what is going on at the level of the hardware. If that's good enough for you, fine, but as long as there are available alternatives that aren't carrying around that kind of lets-make-it-playskool-for-the-programmer baggage, the only thing that is going to convince me is a Java "killer app." While Azureus may be a good performer (I wouldn't know, I've had virtually no need to bittorrent at all so far), it's not a "killer app" as there's nothing about it that Java can do better than an alternative. A true Java "killer app" would have to be one where if it wasn't written in Java or an equivalently architectured environment, it would necessarily not perform as well, AND be something that almost noone will want to do without once it's created. Until then, it'll always be second-fiddle to something with fewer layers between the language and unique hardware features.
Java may evolve to where very little of a Java program is actually written in Java-- the Java code becomes merely interface logic that calls "libraries" or "drivers" that handle the platform dependent capabilities. But then in fact, while the interface logic is "run anywhere," who cares as it's pretty trivial, and useless if you don't have the relevant libraries and drivers for a candidate platform...
What I would like to see is a reduced memory footprint for Java. Using up 40MB for a tiny applet, application or servlet is a pain. CDS, Class Data Sharing, is close but you have to use the old-school garbage collector and the client VM. See http://java.sun.com/j2se/1.5.0/docs/guide/vm/class -data-sharing.html for the poop.
Please show me I am wrong.
I suspect two reasons for the lukewarm reaction to java: one the complete LACk of apple suport, two: "cooL!" factor.
Only reason Swing runs without a companion distribution is that the required DLL's for Swing are part of the Java download for Windows, Mac, etc.
OK, so Swing is "lightweight" in that most of it is done in Java, but there still has to be a link to the native OS at some level.
Yuo must be in INdia where programmars work for $1..... AHAHAHAHAHAHAHAHAHAHAHH WTF! LOL1 BBQ!!!!!
"Make this a part of the standard JRE! *It will be the most significant and best single thing that ever could have been done to java*. Imagine having a gecko rendering engine whose DOM is fully controllable from Java on every major platform that the JRE supports! Imagine being able to use a gecko widget inside any GUI com\ponent! That would be how to step up and really innovate."
Imagine listening to "It's bloated!", and "Why do I need this?"
Built in USB and HID support would be nice!
Is it being prepared to do the right thing, whatever the cost. Isn't that what makes a man? That and a pair of testicles
Anti-aliased fonts have been around since Java 1.2. They are not enabled by default in Swing but sophisticated applications like netbeans can enable them with a simple switch in the preferences menu.
What is still missing is "ClearType" which is relevant only for LCD monitors! Personally I'm not too crazy about ClearType since it makes the fonts look "colorfull" when they should be black. But some people claim they are essential.
ClearType will be a part of Mustang and it will probably turn on anti-aliasing by default rather than let the programmer decide (it will do so by using the OS/font defaults).
Simplified model based on XML for client server applications. With an additionally large layered component libraries. Its FREE SOFTWARE (as in GPL).
It only does the rendering natively which gives it the advantages of SWT without the disadvantages. The look of the component will be the same as the native OS but the full behavior and the ability to modify the look will remain in Swing which is exactly what the PLAF was designed to do.
Up until now this was impossible to do under Windows, but XP has made some internal undocumented rendering API's into public API's. So rather than ask the OS to create a button, Swing creates a button and only asks the OS to draw it for a particular state and allows the user to replace the drawing if necessary. No dissadvantage of portability since the PLAF can still be replaced and is still in control.
Unlike SWT who both lacks a PLAF and handles events using an EVENT LOOP (how 1980's is that).
Since Swing is much larger and more complicated than SWT/JFace this cannot technically be accomplished for REAL LIFE Swing applications. The reverse however is possible there is a partial SWT implementation running on Swing....
Features such as full component based renderers/editors with truely decoupled models just can't be accomplished natively.
You just posted to slashdot that you use IE... nevermind that you also prefer a 10-year-old JVM
Yeah, I'm sure he feels the need to fit in with Slashbot groupthink.
If Only I could convince my boss of that fact... maybe he'd replace the skill-less Java Biggot with someone who knows how to code, and my opinion of the language might just change.
I've often wondered if the real issue wasn't just that my company has been hiring the "I got into programming because my mommie said it paid well" crowd who hide behind Java Religion because it's the only thing they've ever coded. I should really try to be more fair to Java, but I guess I've just got a bitter taste in my mouth.
Heh Bitter Java... heh (yes, I've read the book)