|
|
||
Kirill Grouchnikov's BlogMay 2006 ArchivesProposal for common "feel" layer in look-and-feel librariesPosted by kirillcool on May 25, 2006 at 01:04 AM | Permalink | Comments (2)A few weeks ago i posted a question on JavaLobby about the additional "feel" features that i have been adding to Substance and what people think about the extra "weight" of the download and the lock-in for applications that would like to use these features. When i say lock-in, i mean that these features were only available under Substance, which is good for me on one hand, but bad for the community in general. Thankfully, one of the responses (by James) proposed splitting the Substance code base and making the widgets available to all LAFs. And so the laf-widget project was born. This project contains a collection of "behavioural traits" or "widgets" for third-party Swing look-and-feels. The list of currently provided widgets:
Here is the same application under Substance LAF (note the menu search panel in the menu bar, the tab overview button, the strength markers on password fields and the lock icons on disabled text field and editable model-only combobox):
The same application under JGoodies Looks Plastic XP, Liquid, Pagosoft, Squareness, InfoNode and Napkin features the same widgets for the menu bar, combobox, password fields and text fields. Note that the tab overview widget requires custom LAF support from the relevant LAFs.
Additional resources
This little HTML renderer in my headPosted by kirillcool on May 23, 2006 at 02:01 PM | Permalink | Comments (5)Back in 1995 when i finally joined the Internet wave (i know, kinda late), i was somewhat puzzled by the seeming simplicity of HTML (compared to the nice layout it was able to produce). This wasn't the first time that i had to learn a layout language (the first one was circa 1988 when i learned a custom printer syntax for making fancy ads on selling my sister's apartment). So, i printed out the HTML specification (and back in the days of HTML 3.0 it was pretty straightforward), came back to the dorms, wrote (and rewrote) quite a few pages by hand (on paper) and went back the following morning to the computer lab feeling like a budding HTML guru. Back in the day it was fun feeling like that, when the Netscape composer first came out and totally screwed my perfectly aligned HTML pages. Not to speak of the horrors of the first versions of FrontPage and long-deceased (is it?) HotDog (i think that's the name). But i digress. One of the major points that set Java apart from C++ was Javadocs. You know, you comment your code (or at least you're supposed to), run this clunky command and it spits hundreds of thousands of HTML pages, all interlinked to create a falsehood of well-documented project. Not only that, it can also take any (valid or invalid) HTML in it. It just doesn't care. So, instead of writing a nice documentation in Word (the fearsome), HTML (the tiresome) or even LATEX (the cumbersome), you just stick the "This function returns the value of XXX attribute" in all your getters and your manager is satisfied (as time goes by you don't even have to type it yourself, just let the IDEs do it). But what about code samples, formatting and such? Don't worry, just stick HTML in it and it'll be fine... Fine for whom exactly? I don't know about you, but i only read (actually read, not dismiss the annoying IDE popups every time i accidentally pause with the cursor over some damn method invocation) Javadocs on JDK classes. When i write Javadocs for my side projects, i don't really go and explore the entire web of generated HTML. It's enough for me that the javadoc generator didn't issue any warnings. But i digress once again. So when i come to comment some function and provide a nice explanation about what it does and perhaps throw in some code sample, i need to start thinking in HTML (instead of thinking about the content). It gets even worse when i need to modify existing Javadoc section. That little HTML parser we all have in our heads for the past 10+ years start chewing on some (hopefully valid) markup and humming "Hey, look here, what does this ul do here in the middle of the table?"I have to admit that the HTML parser in my head gets better and better every year. You know, when you learn a foreign language and you know that you've suddenly become good at it? It's when you read something and don't translate it to your native language, when instead it goes straight to the images and associations in your head? The same with HTML for me. You know, like Cypher says about Matrix code, "All I see now is blonde, brunette, redhead." And this is not good. We're not supposed to be HTML renderers. We need to focus on the code. If we need to write documentation inside the code, the IDE should provide us with WYSIWYG in-place editors (something like this is planned for Fortress). I hope we will be there in 10-15 years. I think by that time the keyboard and the mouse will be replaced by something more "human", like hand-writing recognition fused with touch-pads and eyeball tracking devices. When you want to add a diagram (like in JAXB architecture document), you just draw it inside the code and let the IDE translate it to a IDE-independent format that can be easily processed and converted to great-looking documentation. If i want to change the in-code documentation, i just start dragging stuff around, erasing bits that i don't like and adding pieces that are missing. And last, but not the least. I don't get this "Wiki-boom". I mean, is the syntax supposed to be simpler than HTML? Here, any sequence of prime-Mersenne dashes followed by matching number of plus signs is interpreted as a heading. Right guys, so more flexible than <h2>. At least with LATEX you get real low-level control. We all laughed when Brooke Shields' character was fooled to believe that Drake has an evil twin named Hans. This is just another syntax for the same thing, just one more renderer to stuff in your skull. Java desktop applications - the state of the nationPosted by kirillcool on May 22, 2006 at 12:53 PM | Permalink | Comments (31)As Hans has posted on his blog a few months back, "Java Swing with 47% use, has surpassed WinForms as the dominant GUI development toolkit, an increase of 27% since fall 2004". This has raised quite a few eyebrows, with the most common argument being "name one popular Java desktop application". "Not one, but two", retorted many, pointing to LimeWire and Azureus. Some even take Azureus as an example that SWT is more popular than Swing. A funny example, given that seven out of ten most downloaded projects on Sourceforge are file-sharing applications (with all three top spots all-time and all four top spots last week). I doubt that SWT guys would want to use Azureus (at least in its current UI state) to argue SWT's superiority over Swing for desktop world. Did you see the UI? It's even worse than Ocean (no offense to both sides meant). Just see this layout monstrosity:
And this hideous creature (is supposed to show you the map of the clients you're currently peering with - my eyes, my eyes ...:)
Is it me, or are these applications popular because they allow sharing illegal content quickly and freely around the globe? The above-mentioned 47% (many of which is 90% iceberg part under the corporate intranet water) spot some great-looking apps (see Swing Sightings), but I'm sure that the majority is quick Ocean-powered UI thrown over a custom database / backend / ... and left to intranet users that don't really have a choice (you know, the deadlines and such...) JavaOne 2005 was my first one. If i had to choose one session that i looked most forward to, it would be without doubt "Looking Good". Java client team spent few months pumping up the expectations, requesting the community to propose bland-looking apps that would be turned to sleek state-of-the-art beauties. Finally, Chet has announced that they decided to take a "common" IM client (that they actually wrote) and show how it can be spiced up. Huh? Guys? Do i need to point any further than Java's own JConsole? It was a perfect candidate for this session a year ago, and it still is now (that's two strikes in a row and 2007 is coming...) Not only that, the code to the application has never been released (i follow both Chet and Romain blogs, and to my best knowledge it wasn't). I understand that the original code (or at least some portions of it) was thrown together in haste to meet the deadlines. I understand that the intent was to sit down and clean it up. I understand that were other (note that i don't say more important, but i'll come to that later) issues after JavaOne. So, it remained what it was - a demo. A bunch of screenshots, a bunch of unanswered requests to post the code, a bunch of code snippets on the slides. Here, guys, it can be done. Well, we kinda know (with all the Swing Sightings). This year has brought Aerith and (yet again) a non-existing "common" mail application beautified. Again, promises to release the code. It'll take a bit. We need to clean it up first. Well, not all of it... (Didn't you say that it is all based on available technologies?) So, one more demo. Once more a bunch of screenshots. Still more requests to post the code. Still more code snippets on the slides. Here, guys, it can be done. We just need to sit down and clean it up a bit. Ah, right, we have this Mustang beta release and the official one and tons of bugs that we need to fix. And that small SwingLabs project that takes years until its 1.0 release (did somebody say that not having stuff under JDK takes much less time?) So, my vote goes to Aerith remaining in its current state (that being demo) until the next JavaOne. I go back to five years being an MFC programmer. Along with a bunch of other stuff including Delphi 6, Ada (oh, the horror of IBM debugger) and Java (oh, the so beautiful JBuilder 2 and 3). You know what sets Microsoft development suite apart from Java suites (that being Eclipse / NB / JDeveloper / IDEA / ...)? Four magic letters (well actually seven) - MSDN DVD. Back in 1999 i had a Visual Studio 6.0 installed along with complete version of MSDN. Not once did i have to go online to find code samples. That's what a 1.5GB of code samples give you. And those code samples come straight from the source - the Microsoft itself. Not javaalmanac, not krugle, not sun java forums (when you cross the fingers and hope that the code you just copied compiles, works and is not copyrighted). Straight from the source. You have examples that not only work, but show how it should be done. And you get it with your Visual Studio installation. We can have all the refactoring in the world, but until Sun provides tons of well-written, thoroughly-documented and polished Swing applications (and i'm not talking about SwingSet2) and all we're going to have is architecture series that dies quicker than NBC sitcoms and a collection of concept proofs... It can take man-years to come up with anything that remotely matches the wealth of information in MSDN, but if Sun wants to compete on Windows desktop (if Sun indeed does)... Not "somewhere along the road", not "it's a mostly working application". Release the code at the same time you show the application. This is how it is done in Redmond and all its PDCs. This is how you use the momentum to its fullest while you have the attention of the developers. We want the source now, while we're appreciating the screenshots. Not after Windows Media Player 11 (which looks suspiciously like Aerith) is released (well, too late for this), not after Office 2007 dark glass theme and Vista are released (and that will be in only six months). Like Jack Bauer says Now. Like him, you don't have much time. The XAML is coming. If you think that having the OpenGL pipeline in Mustang is enough to make people install Mustang right away on millions of computers, then you're wrong. Screenshots don't cut it in the world of translucent animation and 3D integration. We want to run the demos, to take the code, to copy it and change it to fit our needs. If you need to, pay Dell and Lenovo to have Mustang pre-installed on desktop computers. If you need to, pay hundreds of qualified Swing engineers to sit all day and make fully-working applications for Mustang that show everything we need to know. If you need to, pay all the software journals to bundle DVDs with that code with all the 2006-2007 monthly issues. Make the desktop forums, personal weblogs with code snippets and code-harvesting engines obsolete. Yes, the MSDN costs Microsoft a fortune. Ever wonder why big companies and legions of individuals are happy to pay for it? Do you think that Microsoft loses money on Visual Studio line? Still convinced that the free tools are the only way to go? You can have hundreds that are happy to hunt down the right way to do Swing (ever wonder why only 20 third-party look-and-feels in 10 years?), but you lose hundreds of thousands that turn to Redmond pastures just because of the documentation. Substance LAF 2.3 official releasePosted by kirillcool on May 21, 2006 at 04:57 AM | Permalink | Comments (7)Substance look-and-feel is pleased to announce the release of version 2.3 (Firenze). The list of new features includes:
New role requested in the *** projectPosted by kirillcool on May 01, 2006 at 02:56 PM | Permalink | Comments (5)So, imagine opening your mail and finding this in your inbox:
Now, i'm used to getting (and rejecting) the requests for Developer role on weekly basis (i had to add an entry in the FAQ and just point to it every time i reject these requests), but this is a new low. Right, since this is the first time i hear your name, why don't you start being a project owner and we'll see how it goes from there... | ||
|
|