As a developer there was one language that I could not stand programming to. That would be the Java language. One of the things I have always liked about Windows XP and even Mac OS X are the visual IDE tools that are available. They make designing the interface easy and really hassle free. Even the QT toolkit and GTK offer interface builders. I must say I am a bigger fan of .NET and Mono. The Java language offered Swing and even then it remained a hassle.
There are several IDE’s for developing Java code Eclipse, my personal favorite being Eclipse when I have to develop Java apps and C++, and Netbeans. So it really pleased me when Sun came out with the Java Studio Creator. I downloaded the technical preview edition and I must say that I am very, very pleased with this product.
Installation
Installation is very simple indeed it comes in the standard Installshield format and it installs the Java Studio Creator, a version of Suns app server and the Pointbase database server. It gave no hassles and went very smoothly. Manual configuration of the Database server and application server were not a big deal either. If you are interested in getting the Java Studio Creator it is located at Suns site. The link is provided in the references section. It is a very
heavy download, over 100 megs on all the platforms so it is my suggestion top have broadband of some kind
Interface
The interface is a very clean interface. Its a very well built interface with the most common tools available by default. This designer is heavily similar to the Visual Studios interface. You have the layout section, Pallete tool section with commonly used Widgets split into the following sections, User defined, JSF Standard Components, and JSF Validators are available in a tools box similar to Visual Studios, there is a properties tool box where you can set how
certain elements should look and a Server navigator tool box. Users migrating over from Visual Studios should have very little trouble migrating over to this tool and it should seem very common to them. The interface is common among the platforms meaning the interface is the same whether on Windows, Linux or Solaris. It has a section where the design layout can be viewed and the source can be viewed. It also offers the function that when you double click on an element the source section for that element will be available to edit. As I stated, you can tell where the inspiration came from.
Performance
This is where the Java Studio Creator lacked the most. Functionality on the one hand was great. It is a fully functional application. Speed was lacking on some Linux platforms. SuSE ran moderately well but compilation was very slow. It took 7 minutes 3 seconds to compile and test my code, Fedora Core 2 wouldnt even run Java Studio Creator it kept hanging on the startup screen. Debian, Slackware and Xandros were the best performers on the Linux side.
Compilation and deployment took 5 minutes 15 seconds on Debian and Xandros, Slackware took 5 minutes 32 seconds. Windows XP Professional won hands down in speed for compilation and testing at 4 minutes 11 seconds and Solaris was second place with 4 minutes 20 seconds. All the tests were run on the same hardware configuration except for the Solaris version which requires a Sparc.
What is there to like
The interface is easy enough to where a novice could actaully put something together. Deployment of developed apps is simple. Applications developed with the Java Studio creator look native to the OS you are running on meaning that if you use Windows XP you will have Luna style buttons and dialogs, if you use Keramik on Linux with KDE same thing if you use the browser Konqueror, Aqua on Mac OS X etc..
What I didnt like
Speed, as I stated it was slow on some platforms and it takes awhile to start up. Its a resource hog but mostly on the UNIX based Operating Systems which in my opinion is very odd considering Sun is a UNIX development house with both Solaris and Linux and they should optimize it for those platforms, Windows was the winner in speed in this case. Where oh where is my Solaris x86 version, I have 4 Sun SPARC workstations at work with 19 Solaris 9 x86 installs. I would like my Solaris x86 users to be able to use the tool on their own platform. App server will sometimes just quit and you have to restart. Trying to tie
some of the elements into my Oracle 9i databases that we use on Windows Server 2003 was being very uncooperative. These are annoyances that I hope that will be fixed in the final version.
Would Java Studio Creator make me switch to Java? No, we do deploy some Java apps in my business but this is to mostly benefit the Linux users. If you are already a hardcore Java fan and you program in Java then this tool is for you and its a giant step forward in Java development. Java Studio Creator definately makes Java an attractive contender for those who are looking to switch to Java. But for people like myself who love C# and other development languages, this is not a die for tool. I do think among the Java Community we will see a huge acceptance and among new users an equally high adoption. If Sun corrects many of the faults that I mentioned and produce a Solarix x86 version this will undobtedly make Java Studio Creator better.
References
Java Studio Creator download page
About the Author
Roberto J Dohnert is a Unix/Linux and Windows Consultant and software developer. His first introduction to Unix based systems dates back to NeXTStep. He is a member of the GNU Darwin Distribution and has made several contributions to that and other projects. His personal webpage is here.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
because of this memory requirement i am forced to shy away from this product.
I guess the obvious question is how well does it compare with Eclipse? Are there any third-party tools available like there are plugins for Eclipse? Native look & interface is always welcome, but can it use non-java shared libraries from other installed resources on the system? (yes, I know about the cross-platform stuff, but in order to compete with with .Net, this may be a useful functionality)
It’s been around for ages and it does a pretty good job of GUI creation.
One thing I noticed in the screenshots though is that it seems to allow you to create web-applications graphically. Does it have some sort of wysiwyg HTML editor built in?
“If Sun (…) produce a Solarix x86 version this will undobtedly make Java Studio Creator better.”
uh ? I would like to know what relation there is between a new port and a technically better product for existing ports. really.
Roberto, would you mind sharing what company you work for so that we may put your review in context?
I am sure many others would also like to hear about this company of yours that has such an interesting mix of development environments.
I would also like to hear about specific software products that you yourself have developed and what tools you have used to develop them.Are any of them opensource? If so, could you point us to your contributions?
I am sure I am not alone in wanting to see the productivity gains that you claim from C# and just the general quality of your code.
Looking forward to your answers.
is this a suppurted and packaged netbeans?
>> One thing I noticed in the screenshots though is that it seems to allow you to create web-applications graphically. Does it have some sort of wysiwyg HTML editor built in?
I noticed that too. When I went to the Studio Creator website I found this:
Studio Creator is a development tool for building multitier, distributed web applications that are based on 100 percent Java technology standards.
The way this preview is written, it seems the author is under the impression that it is a regular RAD tool. Studio Creator is only for creating web applications. Either the author didn’t notice or didn’t think it was worth mentioning, either way, it isn’t good.
It probably is. Sun provides NetBeans as their IDE so it would only be logical that this suite uses NetBeans and that Suns Studio Creator means: NetBeans + extra modules. Just like Eclipse versus WebSphere Developer Studio (Eclipse + commercial plugins).
He mentioned the apps have a native look-and-feel. Does this mean Sun is now using SWT?? Or some spiced-up version of Swing?
M.
You don’t have to loop
, first line will suffice leaving in in prompt again (you know that OK
). If you let it like that I’m affraid you have to use BREAK key or whatever the name was to exit your program. Neverthless,that made me remember a nice thing from UGH book,although I have see these before reading this book:
High school/Junior high
10 PRINT “HELLO WORLD”
20 END
First year in college
program Hello(input, output);
begin
writeln (‘Hello world’);
end.
Senior year in college
(defun hello ()
(print (list ‘HELLO ‘WORLD)))
New professional
#include <stdio.h>
main (argc,argv)
int argc;
char **argv; {
printf (“Hello World!
“);
}
Seasoned pro
#include <stream.h>
const int MAXLEN = 80;
class outstring;
class outstring {
private:
int size;
char str[MAXLEN];
public:
outstring() { size=0; }
~outstring() {size=0;}
void print();
void assign(char *chrs);
};
void outstring::print() {
int i;
for (i=0 ; i< size ; i++)
cout << str[i];
cout << ”
“;
}
void outstring::assign(char *chrs) {
int i;
for (i=0; chrs[i] != ‘’;i++)
str[i] = chrs[i];
size=i;
}
main (int argc, char **argv) {
outstring string;
string.assign(“Hello World!”);
string.print();
}
Manager
“George, I need a program to output the string ‘Hello World!’”
I was starting with Amstrad Basic ,then Pascal on school’s brand new 286 , then C on the same machine, C++ when started the work (that was on a Mac) and 5 years ago Java. From all of these I loved the first and the last.Seriously.
I was under the impression that the most important part of this ide is that it’s a development environment for JSF.
“The Early Access release of the Java Studio Creator product incorporates….the JavaServer Faces technology final reference implementation for visual drag and drop development and simplified coding”
This doesn’t get a mention at all, I think the author didn’t quite know what he had his hands on.
The author says he is very pleased the product, but if you read the piece OSNews use on the headline, you think he is splatting crap to the application.
This product (Studio Creater) is developed spesificly for people who thinks programming is user interface design. and for that, i guess it is making a good job.
anyway what is the thing with interface builder obsession? building a desktop user interface is not a high priority job in software design . i dont say it is not important, and every developer group must have a good GUI designer person. but it is not related with the inner mchanism of the application, whih i presume matters most for the developer. That is why in java, i prefer wrapper libraries ( like JGoodies Forms) to the GUI builders anyway. i made user interface programming and i never felt the need of using a gui builder. Plus, in some cases it was not logical to use one, for example when you draw a numerical keyboard on the screen, gui builders has to specify the creation code one by one, but when you code, you just use a method for producing a matrix button.. and this is just an example.
most of the time, people around is like VB programmers who are tryingto use java and crying like a baby.. get over it, and do some real programming.
And it is really offensive that authour is biased against java but on the other hand trying to make a review. Sorry but, OSNews is like handpicking this articles
anybody wants to compare IDEA , Eclipse to VS or mono IDE’s around?
Have a look at this link http://java.sun.com/developer/technicalArticles/WebServices/jscover…
which is Sun’s blurb about the project. For more about JavaServer Faces, which is the really big thing about this application see the following:
http://www.javaworld.com/javaworld/jw-11-2002/jw-1129-jsf.html
http://java.sun.com/developer/technicalArticles/WebServices/jscover…
wow look at all the bashing which began with the fact that he says he prefers C#
so what if he does, does that make his review any less worthy, or do the fanboys constantly need affirmation for their favorite language/OS/IDE/editor and so forth
i swear to god, grow up
Swings default look is metal but, you can change it a native look and feel. I think it’s a common misconception that your stuck with metal when you use Swing, I recommend the Java Swing book by OReilly btw if you have any problems with GUI creation. I really like the way you make apps using JPanel and JFrame and, I thought it has been pretty easy to make professional apps so I don’t know how great a GUI builder would be…
Really. I started at laughing this “article” shortly after this moron admitted he was a fan of .NET and Mono…..
I have news for you, there are more programmers out there, not only the ones you know at #java_l33t. Real good programmers will make excellent programs on whatever language they want, C#, Java, Python, Assembly, whatever, after all they know how to _program_, the language they use is just a question of syntax and a few adjustments on style according to the tools the language offers.
Mediocre programmers stick to one language/technology as a religion.
“Mediocre programmers stick to one language/technology as a religion. ”
Mediocre programmers compares a programming IDE with the quality of its GUI designer, or review a IDE by startig “i dont like this but..”
Java programmers are grumpy, because they are, or the technology they use is bahsed ignorantly and bacstabbed constantly by OS(open source, and operationg system) or scripting zealots.
As a long time java developer, and tester of dozens of java IDEs, nothing makes coding in java more pleasant than IntelliJ IDEA. I’ve Used em all. Forte, NetBeans, Eclipse, Borland’s Java IDE, and probably half a dozen other smaller named ones. Still nothing comes close to this app in productivity features. VIM keybindings + perfect dot completion + very seamless and unrestricting template support + CVS integration + ANT integration + JUnit integration + the best refactoring tools available + .. do i have to keep going? i think the new version even has a visual swing designer. i don’t care for that much though since i can make a better GUI than any drag-and-drop POS can.
if you develop for a living, pony up the $$ for this if you intend to do any java coding as the few hundred it costs will pay for itself in increased productivity in no time. they even have student copies for $99.
Swing achieves a native look and feel by emulation, i.e. someone creates a Swing theme that looks like one of the native themes. Because it’s emulated, it’s very easy to catch it out. The common dialogs (open/save, fonts etc.) are the obvious ones, however it’s the little things that stand out. For example when I use Windows XP I change the size of the window titlebars so they’re as small as possible. However when I run Netbeans as shipped with the JDK 1.4.2 the titlebars in MDI mode are the full height, and look pretty bad as a result.
The same goes other platforms too (I’m interested to know how the author got the Linux skin to follow changes in the KDE theme).
This leaves a couple of options really. You could use SWT and JFaces, but these aren’t the nicest of APIs, and SWT requires manual memory management. You can use SwingWT which gives you most of Swing built on top of SWT, so you get native widgets and an accurate look and feel. Finally you can hook into a native toolkit such as Qt using JNI bindings. My preference in order is Qt, SwingWT, SWT/JFace, Swing and right at the bottom, AWT.
I haven’t tried Qt yet, but I think it might have potential. The best thing of course is that Qt provides a substantial class library, with the result that you could compile a completely native app using the Java language, the Qt framework and the GCJ compiler, which would have none of the memory-usage or perceived legal issues. It goes without saying that you’d have to pay for it on windows though.
One option I haven’t mentioned is Thinlet, which lets you rapidly design GUIs using simple XML. It uses a customised version of the AWT, which means applications don’t blend in, but if you want to do a GUI in a hurry it’s one of the best Java options out there.
Sun Java Studio Creator is for simplicity in Java web application developement.
Thur its defined design pattern things, JavaServer Faces.
Sun Java Studio is a general purpose, can-do-it-all.
(You can do web apps with this RAD as well, using any model of your choices.)
Sun Java Studio is more like NetBeans.
Sun Java Studio Creator is not.
They are different product.
I think the poster honestly tried to evaluate Java Studio Creator, but it seems from the things he says that he is unaware or never tried other Java RAD tools.
Visual Java application designers have been around for almost as long as Java itself (Visual Cafe could do almost 8 years ago almost everything you can do Visual C# today for example). And then there’s Borland’s JBuilder, IBM Visual Age, NetBeans, etc.
So it seems to me the author is very out-of-date with Java development, or maybe he doesn’t realize that JSC is a tool for visually creating Java-based Web-Forms style applications, as opposed to traditional fat client applications.
He also failed to read the release docs of JSC, which clearly state that this is a “preview edition” (i.e.: alpha quality code), which is not optimized yet for performance. Also, a quick search on any other reviews of JSC would have inform him that the reason JSC uses so many resources is because in its alpha-quality state it has memory leaks which eat all the memory way. In other words, he should have reviewed the product strictly as a “preview release” product, and not as final code.
Seems to me that this is a biased article clearly written to show what Java is not. Finally, the author should try some of the above-mentioned Java tools, or even non-visual tools like IntelliJ IDEA (http://www.jetbrains.com/idea/) which do things that even Visual Studio .Net cannot match.
so you can’t compare this product with Eclipse or WebSphere Studio
(use NetBeans and Sun Java Studio instead).
I have to say I hate GUI Builders no matter what platform I’m coding to. The problem w/dragging and dropping UI elements onto a form with these tools is that you always end up coding the element “from the outside” as is done in Visual Basic. While this may be fine for simple elements like labels and buttons, its not okay for advanced elements like grids/tables. Coding this way, your’re going to end up with awful code — without exception. The proper way to make advanced GUI elements is to subclass the given controls for your business domain and customize from there. You never get this option w/GUI Builders.
You can tell how good or bad many [UI] platforms (frameworks) are by how well you can code without the UI Builders — which, as I’ve said, is necessary if you care about quality code. In this light, the .Net platform is awful. You can easily loose several hours tweaking cartesian coordinates just to get labels and buttons laid out “just right”. Yes, they have anchors. They’re an afterthought(read awkward and buggy (anyone who’s had to spend even more hours using the ‘send to front/back’ in order to fix a strangely behaving UI knows what I’m talking about)). Give me Swing layout managers or even GTK/wxWidget “boxes” any day. Not only do I get my well written code, I get nice looking UI w/o wasting time with (x,y) coord systems.
Summary: If you want clean code, avoid UI Builders.
> building a desktop user interface is not a high priority job in software
> design
Um… I don’t agree with this. What is it that your (paying) client sees? Why do most companies post screenshots of their product in action on their web pages? Why do software boxes on the selves at Best Buy have big, bright glittery boxes with screenshots on them? Because that’s what Joe Somebody wants to see when looking into a purchase. It often doesn’t matter how good your program is — if the UI sucks then marketing isn’t going to like it.
> i made user interface programming and i never felt the need of using a gui
> builder.
Must be a pain to maintain later on. What happens when you want to hand your code over to someone else to maintain (as happens in most companies at some time or other)?
I worked for a company that used non-developers (people with a great deal of talent in USING the our product) to design the GUI. They used our GUI designer, and it meant that they could give us a resource file which we could use straight out. Saved us HUGE amounts of time.
> That is why in java, i prefer wrapper libraries ( like JGoodies Forms) to the
> GUI builders anyway
Isn’t this just another form of GUI builder?
>Plus, in some cases it was not logical to use one, for example when you
>draw a numerical keyboard on the screen, gui builders has to specify the
>creation code one by one, but when you code, you just use a method for
>producing a matrix button
That’s why XCode/Interface Builder has a matrix UI object. But giving a single, quite obtuse example is a strange reason for not using a UI designer at all.
>but it is not related with the inner mchanism of the application, which i
>presume matters most for the developer.
Big presumption there. A good UI is just as important for selling a product as is the meat and bones behind it. Look at XP, Longhorn — what are the things that the consumer jumps at? Luna (what a dumbass name that was), WinXP — because it’s tangible and what they can see and use and gives the wow factor at presentations.
Scruff.
i , fully agree that customers are idiots and they only care about how things look. i am aware of the sillyness of the human nature.
Yet, i am talking about developers here. as i said, every developer team needs a good GUI designer, and other develpers should have a taste and understanding of a good gui.
but to me the real soul of programming is “not” GUI design. it is just the skin of the internal organs. if you want to be a master of GUI design, you should study art, ergonomy, and graphical design, not necessarily programming. That is why i disagree with every script kiddie bashing really good programmer’s IDE’s because they dont like the gui designer etc.
and for jgoodies, it is not a visual builder, but something better.
site:
http://jgoodies.com
check this demo: http://jgoodies.com/download/demos/metamorphosis/metamorphosis.jnlp
It’s funny to see so much arrogance being tossed around here. Anyone who works on GUI’s says the presentation is most important, anyone who works on the back end disregards GUI design as irrelevant, Eclipse developers look down on Netbeans developers, Netbeans developers look down on Eclipse developers…. wtf? Have some pride folks, be the professional you pretend to be.
“Mediocre programmers stick to one language/technology as a religion. ”
That one takes the grand prize.
Cheers
Steve Q.
its a Gig for Solaris.
I got as far as this:
<blockquote>There are several IDE’s for developing Java code Eclipse, my personal favorite being Eclipse when I have to develop Java apps and C++, and Netbeans. So it really pleased me when Sun came out with the Java Studio</blockquote>
“Developing Java Code Eclipse…”? Man, doesn’t anyone edit anything anymore? How about sitting down and reading what you wrote, before tossing it out there? He also should explain why, after saying his favorite Java IDE is Eclipse, that he’s happy that Sun is coming out with another one.
Sheesh.
Finally you can hook into a native toolkit such as Qt using JNI bindings. My preference in order is Qt, SwingWT, SWT/JFace, Swing and right at the bottom, AWT.
Qt draws its own widgets too. If anything it would face the same problems that Swing is facing. That’s why there are still discrepencies with Qt on the Mac compared to native apps.
Qt is anything but native.
The problem is NOT in the language, but in the lack of quality tools to generate UI effectively. Java as a language is VERY similar to C# (C# has a bit more features… i.e. attributes and function ptrs), so I don’t think there’s really a practical difference developing in either one if you were to just use notepad. Hehe. Of course, the amount of open sourced code for Java is staggering (not to say they’re all quality code), and that makes all the difference in many cases (especially server-side code).
<start nasty comment on ObjectiveC>
The author says he came from the NeXT background~ probably programmed that ugly! ugly! language called ObjectiveC — slow method calls, inconsistent syntax (e.g. method calls and function calls are VERY different.), etc. etc.
</end>
The big question is : Why is this ObjectiveC/C#/.NET developer who cannot stand programming in Java reviewing a Java development tool? Sounds fishy to me…
>Why is it that idiots who can’t do something (program) try acting like they are “experts” on programing languages?
>Take away their GUI-toys and they are totally >useless/worthless.
>Really. I started at laughing this “article” shortly after >this moron admitted he was a fan of .NET and Mono…..
>Gotta wonder if this guy could write a 2-line program on a >Commodore 64 using it’s built-in BASIC that printed “Hello >World” on the screen.
>In case you .NET and MONO programers are wondering what it >would look like, here it is….
>10 PRINT “HELLO WORLD”
>20 GOTO 10
You really don’t know what you’re talking about do you? Usable GUI apps are harder to program than server type applications, one reason being is that they are much more difficult to debug and it takes some sense of style to create a good looking and usable interface, something that most of you geekoids have no clue about.
>anyway what is the thing with interface builder obsession? >building a desktop user interface is not a high priority job >in software design . i dont say it is not important, and >every developer group must have a good GUI designer person. >but it is not related with the inner mchanism of the >application, whih i presume matters most for the developer.
Oh you are so wrong, I presume you’ve never written a large GUI application?The interaction of the GUI with the backend is so much more compicated and error prone than your simple cmd interface. You assume too much.
>strangely behaving UI knows what I’m talking about)). Give me >Swing layout managers or even GTK/wxWidget “boxes” any day. >Not only do I get my well written code, I get nice looking UI >w/o wasting time with (x,y) coord systems.
>Summary: If you want clean code, avoid UI Builders.
I’m sorry to say much most Java apps look bad precisely because of the layout managers, most people don’t have the patience, know how or thought to use them properly. You remarks are purley opinion, others may have different experiences. Also we could take your kind of argument further by saying,
I don’t like all this high level programming to get in the way of my assembler code,
Summary: If you want clean code, aoid high level languages, program in assembler.
> i fully agree that customers are idiots and they only care about how things
> look. i am aware of the sillyness of the human nature.
Yet it’s these ‘idiot customers’ (not my words) who are going to buy your product,
scruff.
> The author says he came from the NeXT background~ probably
> programmed that ugly! ugly! language called ObjectiveC — slow method
> calls, inconsistent syntax (e.g. method calls and function calls are VERY
> different.), etc. etc.
Objective-C is not C++. There is no such thing as a method call in ObjC — it’s called message passing. Function calls are identical in ObjC and C because ObjC is C. The differences come when you want to talk to an ObjC ‘object’, which requires you to use message passing.
I’ve been teaching myself ObjC (after having programmed in C/C++ for 15+ years) and it’s hard because the syntax and methodology is different to what I’m used to. Class clusters? Message passing? Garbage collection? Weird stuff — but technically very interesting.
You took the point too far. We’re talking about the quality of code generated by UI designers. The fact is they If you drag/drop your UI elements from some palatte onto a form, you typically end up with a form that has code remembling the following in its init section:
Table t = new Table(“init stuff”);
t.setParamX(…)
t.setParamY(…)
t.setParamZ(…)
Not too bad, right? But multiply this by several dozen controls and you’ve got noodle-code-central!
Contrast this with a subclassed Control that gets customized specifically for your problem domain:
Class MyTable : Public Table
{
Public MyTable()
{
this.setParamX(…)
this.setParamY(…)
this.setParamZ(…)
}
}
Then on your form / layout manager / whatever all you add to do is:
add(new MyTable())
…
Sure, it’s my opinion. After 10 years of professional development though, I’d take the second option any day. The code, according to my experience, is easier to maintain and document.
Note that this isn’t a language issue at all. VS C++.Net’s GUI designer produces as much astonishingly bad code as VB/C#/Java UI designers.
So, the point is, if you want clean, professional, maintainable, and (dare I say) documentable code then, as a senior developer @ a major Fortune 100 Company, my professional opinion is that GUI builders ought to be avoided.
Isn’t it possible on .Net to create custom controls integrated with the GUI designer, and have the best of both worlds?
So, the point is, if you want clean, professional, maintainable, and (dare I say) documentable code then, as a senior developer @ a major Fortune 100 Company, my professional opinion is that GUI builders ought to be avoided.
In my opinion (as a member of the non-fortune-100 companies), how is the code that you’re going to manually write going to be any different to code you generate using a UI builder? If you have dozens of controls on a window (which probably suggests that you need to relook at your GUI) you’re going to have to do the same sorts of hook-up code to get them all talking together anyway.
And later on down the track, going into a GUI builder and changing all the buttons to blue will be faster in a GUI builder than having to search through your (well documented) code, find the correct API and update.
scruff.
Qt looks native on Linux (especially when GtkQt is running) and Windows.
Qt has used native widgets on Mac since version 3.1, released November 2002. See this page for how things currently stand with Qt/Mac
http://doc.trolltech.com/3.3/qtmac-as-native.html
Any time you don’t use the core system APIs your apps will diverge slightly. For example in my current job I’m currently using Delphi 6, and the resulting VCL apps use Windows 2000 style buttons when running under XP.
However, in comparison with the alternatives for Java, Qt offers what is an acceptably close look and feel, on a wide range of platforms, while being easy to program. SwingWT is the next best, but it doesn’t support all Swing widgets and is still under development. That said, it would probably look more native than Qt due to it’s SWT underpinnings, and performs reasonably well (though a lot of people don’t seem too happy with the performance of SWT/Gtk).
The difference is all the params that have to be set so that the the object fits into your problem domain is taken care of by the object itself and not the ‘client’ object. Its a matter of maintaining encapsulation. When you do this, your “form/frame’s” code isn’t littered with a bunch of calls to methods to configure the object when the object itself could be configured appropriately in its constructor.
Yes. You can. The only thing I don’t like about .Net — rather Windows.Forms is its use of (x,y) coordinates as the main layout mechanism. You can use anchors, but they feel cheap and hackish compared to other layout mechanisms available on others platforms.
Well although I work with .Net I can put my opinion about this because my company moved pretty much everything to web interfaces now (and there I surely avoid absolute positioning with the “grid layout” like the plague)
But still I think that avoiding GUI designers altogether sounds a bit radical, especially for huge apps with complex GUIs..dig down layers and layers of code just to find where the hack that button text can be changed to bold sounds not very funny.
Ops, I mean, I can’t put my opinion…sorry.
> The big question is : Why is this ObjectiveC/C#/.NET
> developer who cannot stand programming in Java reviewing a
> Java development tool? Sounds fishy to me…
RIGHT ON!
“As a developer there was one language that I could not stand programming to. That would be the Java language. One of the things I have always liked about Windows XP and even Mac OS X are the visual IDE tools that are available. They make designing the interface easy and really hassle free. Even the QT toolkit and GTK offer interface builders. I must say I am a bigger fan of .NET and Mono. The Java language offered Swing and even then it remained a hassle.”
Well I stopped reading after that BS.
Good! You could be in danger of actually learning something!
Qt has used native widgets on Mac since version 3.1, released November 2002. See this page for how things currently stand with Qt/Mac
http://doc.trolltech.com/3.3/qtmac-as-native.html
No where in that document does it say that Qt uses native widgets. Its considered first class because it uses the underlying window system (i.e. QuartzExtreme) to do the drawing. Qt still handles the drawing of the widgets and doesn’t make use of the native widgets.
That is why, if you’re using Panther, you’ll see that tabs are still used, instead of being updated to the OS X ‘lozenges’. Also, text in some buttons are not really center vertically. I’m not sure about the very latest version on OS X since I haven’t touched a mac for a while, but the last version I tried (3.3.1) still had those problems.
Qt can’t look native on Linux, because there is no native look to Linux. The Xlib API only provides functions to draw primitive shapes.
Even so, Qt is an excellent toolkit and demonstrates that there is something fundamentally wrong with the way Swing is implemented.
” The big question is : Why is this ObjectiveC/C#/.NET
developer who cannot stand programming in Java reviewing a Java development tool? Sounds fishy to me… ”
The answers to your question is simple:
A) I do not hate java, it may not be my first language of choice but it is still a beneficial and important language.
B) I do happen to develop in Java on occasion and I am well versed in Java and I have to be for my work. My personal preferences happen to be another language but I would develop in assembly if it meant getting the job done or if it is what my customer wanted.
C) I figured it would be good for a C# and .NET zealot to do this review and not a Java zealot. I figured the audience would appreciate a good honest review. This review was not done for rhetoric or religous reasons and I dont care about licensing issues or whether Sun Open Sources Java or not. I do happen to like Suns solutions for UNIX and their UNIX products now more than anyone elses. I am also going to note I hold no ill will toward the Open Source community or Linux community for their views or whatever. I may not agree with them, I may not like em but they are yours.
D) I did a review on a product that I thought was very neat and beneficial to java programmers.
Or, instead of creating error-prone ways of distributing compilation of software, why not just use good compilers? You know, ones that compile at speeds you’d expect in whatever year this is instead of 1980 speeds. I’m so freaking sick of waiting forever for something to compile. It’s so freaking stupid that GNU developers or Microsoft developers can’t make a decent compiler that performs at decent speeds.
I still don’t understand how Mono is better than Java when Mono isn’t even a completed stable release yet. I could understand about microsoft’s .Net.. but mono? what about DotGNU anyway?
> Objective-C is not C++. There is no such thing as a
> method call in ObjC — it’s called message passing.
> Function calls are identical in ObjC and C because ObjC
> is C. The differences come when you want to talk to an
> ObjC ‘object’, which requires you to use message passing.
Message passing is just another terminology for a method. I don’t like the fact that ObjC is basically a “preprocessor” (and possibly a thin runtime) on top of C.
> I’ve been teaching myself ObjC (after having programmed
> in C/C++ for 15+ years) and it’s hard because the syntax
> and methodology is different to what I’m used to. Class
> clusters? Message passing? Garbage collection? Weird
> stuff — but technically very interesting.
Garbage collection is manual in ObjC… Yep, weird stuff.
I asked at the beginning a series of pointed but polite questions. It is clear that this guy is an astroturfer of the biggest degree. You may want to check his posting history here and all over the net, where he went from claiming the Mac was the end-all of all platforms to claim the same thing about Linux and now Windows.
This guy is an idiot. The little code that he claims as his own is immature and green by anyone’s definition. Look at his “apps”. I wish Eugenia would stop posting the drivel that this guy provides. It serves no purpose other than to lure people into endless and very counterproductive flames.
> The same goes other platforms too (I’m interested to know how the
> author got the Linux skin to follow changes in the KDE theme).
[url http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html#swing]1.5 adds GTK support[/url], that reads GTK themes, and uses them. It is not 100% (it does not understand all the extras in the GTK theme files).
Now I think KDE uses Qt, but did’nt they unify the theme files a while back?
It also reads and uses WinXP themes.
” I asked at the beginning a series of pointed but polite questions. It is clear that this guy is an astroturfer of the biggest degree. ”
The series of your question about my employment is not for web consumption. I did that one time and it got to be a hassle, I had many people calling my bosses and calling me at work saying that I was an a–hole, that I didnt know what I was talking about, that I was this and that and the other. This happened over personal comments that I have made. My employers got pissed, I got pissed and so I made the rule not to get personal on the web. Sorry.
” I would also like to hear about specific software products that you yourself have developed and what tools you have used to develop them.Are any of them opensource? If so, could you point us to your contributions? ”
Most proprietary, I have used VC++, VB, Java, MingW, most GNU Utilities, Apples Developer tools. I dont contribute anymore to Open Source projects because with my job it is against the rules to do so without getting contributions cleared through my supervisors, its a hassle so I dont bother. My one moment of fame came in 2001 when I did the port of XFree86 to Darwin on iTanium. It never came to fruitation because the iTanium was a bust and the lead developer was not a very cooperative guy and turned into a real jerk so the project was scrapped. If any of my code contributions actually made it into the actual XFree86 tree or still remain there I dont know and could care less.
” You may want to check his posting history here and all over the net, where he went from claiming the Mac was the end-all of all platforms to claim the same thing about Linux and now Windows. ”
I grew up. Each platform has its specific pluses and minuses. I dont cheerlead for any specific platform anymore instead I try to get the most out of each one that I use. I have two websites for right now, I have one that deals with Linux, one page on my personal site that deals with Windows and I will be releasing one next month that deals with Solaris and the Java Desktop System. I have two blogs, one that deals with personal life and one that deals with tech. I also have one that deals with Audio that I only update when something specific happens in the audio world, it is my hobby nothing pro.
” This guy is an idiot. The little code that he claims as his own is immature and green by anyone’s definition. Look at his “apps”. ”
I assume you are talking about my “apps” on GotDotNet.com. They like everything else on that site is for a newbie. My purpose with those was to keep them green and easy to follow since I absolutely suck at documentation and with people learning programming they are perfect. I had them under a restrictive licensing and after awhile I pulled the source and only offered binaries since that was what most of my e-mails abot them were about. A few people that wanted the source e-mailed me and asked me for the source code so I released it under the CPL and left em alone. What people have done with it, I dont know and could care less but some of the same people have asked me to do a port to Mono, so that will probably be the last thing I do with it ever. I do plan to do a project called SharpPIM written in C# and WindowsForms for Windows only, mainly because no Free groupware suites exist for Windows. That will be the last Open Source project that I will do. If you send me a personal e-mail i will put you on the list to do beta testing if yopu are intersted when I release the first Beta in October 2004.
” I wish Eugenia would stop posting the drivel that this guy provides. It serves no purpose other than to lure people into endless and very counterproductive flames.”
Funny. the only person I see flaming around here is you.
Roberto: next time you write an article, don’t express your preferences, just write about the subject. People will flame you whatever is the preference you express, since no language is majority, so it’s a waste of time.
I sure laughed a lot with that guy asking your data, the company you work etc, gee!! Is he the bloody FBI? Watch out!!!
i dont think nobody cares what your experience in other platform and languages, or preferences. Maybe most of the content is good, but beginning and and of the article is flat wrong and offensive, and you got what you deserved, flames. besides, that dude is not the only one sour about your style, read comments well..
There are several IDE’s for developing Java code Eclipse, my personal favorite being Eclipse when I have to develop Java apps and C++, and Netbeans.
Does anyone proof read these articles?
There are several IDE’s for developing Java code. My personal favorite being Eclipse.
>You took the point too far. We’re talking about the >quality of code generated by UI designers. The fact is >they If you drag/drop your UI elements from some palatte >onto a form, you typically end up with a form that has >code remembling the following in its init section:
>Table t = new Table(“init stuff”);
>t.setParamX(…)
>t.setParamY(…)
>t.setParamZ(…)
I agree with you that this not good. But you have a limited view of the programming world, Delphi for example does not do it this way so there is none of the clutter. The new development tools of Longhorn will also use the delphi approach. Some enviroments just do this bady, eg java, this doesn’t mean that all GUI builders are bad.
Good article. Don’t worry about the fan boys. Once they’ve been indoctrinated into a slashdweeb it’s all over for them anyway.
Having a C# fanboy reviewing a Java based solution is not the best thing around. I might not be the best programmer on earth but I ‘ve become so accustomed to Java all these years that I find most other languages illogical and inferior. Plus, Java gives me the choice to develop AND deploy at different platforms; not everyone uses Window$.