Thursday, May 03, 2007

Eclipse... Is NOT an IDE

Okay... have been trying to use Eclipse 3.2 like an IDE all week... that failed miserably...

  • VisualStudio.NET is an IDE
  • Borland Developer Studio is an IDE
  • NetBeans is an IDE
  • IntelliJ is an IDE
  • FlexBuilder (an Eclipse plugin) is an IDE
  • JBuilder (an Eclipse plugin) is an IDE

But... Eclipse... Eclipse... is a PE... "Plug Environment", NOT an IDE: Integrated Development Environment.

After you add JDT to it can be considered an IDE... if you only build Console tools (command line applications) but, if you want to build anything more complex than that... then  JDT  is a very limited IDE.

Yes, you can add lots of plugins to Eclipse... and make it become JBuilder... (like Borland did or as Macromedia did with FlexBuilder), but the thing is, that it is JBuilder (the plugin) the thing that IS the IDE, Eclipse is just the PLATFORM for the IDE..., saying that Eclipse is an IDE it is like saying that Windows is word processor... or graphic design application... or why not, Windows is a IDE! (Of course, that is crazy... well saying that Eclipse is an IDE is crazy... comparing it to any real IDE is crazy...) Eclipse is a PLATFORM, and you can build an IDE on top of that, but, the quality (and INTEGRATION) of the free available plugins in Eclipse Callipso,  in my opinion is not enough to call it an IDE

Netbeans is a great IDE, the best OpenSource IDE for Java for Swing or Web or J2EE applications, Eclipse is NOT and IDE. Period.

(I guess this is my first rant in a blog)

Monday, April 16, 2007

Swing: Dying between Silverlight & Flash?

So... Now Microsoft has Silverlight and tools like Expressions to create really good looking animations and User Interfaces... and a really small 1Mbyte plugin that works in Windows & Mac OS X...

Adobe has Flash... and Flash CS3 & Flex to create really good looking animations and User Interfaces.... and a really small around 1 Mbyte plugin... that works... well... everywhere (Windows, Mac OS X, and yes, Linux)

And Java... well... has Swing and SWT... neither of them has a a tool too easily create really good looking animations and User Interfaces... (Mattise is not bad, but it doesn't compare with Flash CS3 or Expressions), the JRE is huge, Swing and SWT have better integration with current platform UI than ever before... (but, creating really good looking UIs, like those possible with Flash & Silverlight with just the help of a designer... well.. it is just not possible)

So...the Java vs .NET war.... is now the Silverlight vs Flash war? or now we have 3 powers?

Thursday, April 12, 2007

Open Source Design Studio for...

Eclipse & Netbeans are built on Java, a good part (AFAIK not all) of Visual Studio is built on .NET, so why not...
It is a lightweight design studio. It is not a replacement for a full Eclipse IDE, but instead is a lightweight tool that allows easy development of applications and allows you to dive into the platform at an affordable price... but... its name says it all....
"Flexible"
Just... exactly... what I need for Laszlo...
The universe is not user friendly...

Perhaps for Laszlo 4.5?

The Presentation Layer: Open Laszlo vs Flex

Hi!

So I have been evaluation several presentation layer frameworks, trying to choose one for may future applications at my new job... my boss is very interested in developing applications with a "cinematic" experience... so, the main contenders are:

  • Open Laszlo 4
  • Flex 2

So far, the main advantage of each one are:

Open Laszlo 4:

  • OpenSource (& free both ways)
  • Flash & JScript UI generation
  • Cinematic user experience

Flex 2:

  • Flash UI generation
  • Free SDK (but AFAIK not OpenSource)
  • Cinematic user experience
  • UI Builder
  • Interactive debugger
  • Syntax Colored Editor for the Scripts
  • Lots of Beginner to Advanced Tutorials
  • Lots of Books
  • Lots of examples with matching tutorials & books
  • Cairngorm architectural framework
  • E4X Support
  • Based on ECMAScript 4

The main disadvantages of Laszlo are Flex strength (and viceversa):

Open Laszlo 4:

  • No UI Builder
  • No interactive debugger
  • No syntax coloring for the scripts
  • Lack of advanced tutorials online
  • Lack of Books (There are only 2, one from the reviews I have read seems to be pretty much a copy of Laszlo reference documentation, and the other I think will be a really good one, but it is unfinished)
  • Lack on architectural frameworks or guidance (nothing like Cairngorm is available)
  • No E4X support
  • Based on ECMAScript 3 (older version)

Flex 2:

  1. Not OpenSource
  2. DataServices are expensive (but maybe the Granite project will change that)
  3. The UI Builder needs lots of RAM (1 Gbyte is recommended by Adobe)
  4. The UI Builder is an Eclipse plugin (this is a personal disadvantage, because I prefer Netbeans)

I really wanted Laszlo to win this competition ( I just really like the product, the idea, and I believe competition is good for customers, so I feel that keeping Laszlo alive will be good for the future of both Laszlo & Flex consumers...) but... so far, it seems that Laszlo main advantage as an opensource project (community & books support) is just not as advanced as Flex's (no good finished Laszlo books, no list of best practices, architectural guidance or architectural framework) so, I think the winner, for me, will have to be, for now, Flex... (but I hope that next year Laszlo improves, and I hope I have the chance to use it in future projects)

My wish list for Open Laszlo 4.5:

  • Lots of beginner to expert tutorials of full applications (with real world authentication & authorization & architecture best practices)
  • Books, books, books!
  • IDE agnostic UI Builder (something like what is available for TIBCO)
  • Architectural Framework (something like Flex's Cairngorm but for Laszlo)
  • J2EE Integration (something like Flex's Granite project)
  • Interactive IDE integrated script debugger (even if only for Eclipse)

My wish list for Open Laszlo 5.0:

  • E4X support
  • ECMAScript 4 support
  • Something like GWT of Echo2 but with Laszlo as the underlying infrastructure. (Java only coding)

Well, now I'll just wait and see...

Friday, March 30, 2007

Life is a Wicked Problem

Yesterday I was reading about studying online (in the OpenUniversity), I was gladly surprised to see that some of their courses are now available on line for free, and, that you can even remix the content using a free software for mind maps built bye the Compendium Institute, the funny thing is that I ended up finding information wicked problems (and currently I have one, choosing the java frameworks we will use at my current job)... wicked problems are those that (from Wikipedia):
  1. There is no definitive formulation of a wicked problem
  2. Wicked problems have no stopping rule
  3. Solutions to wicked problems are not true-or-false, but good-or-bad
  4. There is no immediate and no ultimate test of a solution to a wicked problem
  5. Every solution to a wicked problem is a "one-shot operation"; because there is no opportunity to learn by trial-and-error, every attempt counts significantly
  6. Wicked problems do not have an enumerable (or an exhaustively describable) set of potential solutions, nor is there a well-described set of permissible operations that may be incorporated into the plan
  7. Every wicked problem is essentially unique
  8. Every wicked problem can be considered to be a symptom of another problem
  9. The existence of a discrepancy representing a wicked problem can be explained in numerous ways. The choice of explanation determines the nature of the problem's resolution
  10. The planner has no right to be wrong (Planners are liable for the consequences of the actions they generate)
And it turns out that:
  • Software development is a wicked problem (and that is my job)
  • Life is a wicked problem (and... well, I am alive)
One thing I specially liked was a document explaining in a very detailed how wicked problems happen (read it here), and it turns out that a really good way to explain it is with a graphic, like this one.

Now.. that image can be produced, by thinking that each person participating on the solving of a wicked problem has his own "pendulum" and moves from "solution thinking" to "problem thinking" on his own, not synchronized way... if find this funny... because a few days ago I was seeing Kent Beck's presentation "Ease at Work", where he describes how a lot of software developers feel (one day we are super wizards... the next we are crap.... the next we are wizards again), but we are not hired and fired in perfect sync with how we feel (sometimes we are even treated as wizards while inside we feel like losers and vice versa), and in his presentation Kent Beck says that software development is not only about programmers, that is about people, people interacting to get a problem solved (you can't have a software business without software developers, but you also can't have it without managers, even if it just a "change of hat"), so, this got me thinking... that the problem Kent Beck is describing, is precisely, a Wicked Problem. What do you think?

Friday, February 23, 2007

OO Principles

Hi! Today I am reading the book Head First Object-Oriented Analysis and Design, I specially liked the OO Principles, I have already read about them in c2, but I really like the way they are summarized in this book:
  • OCP: Classes should be open for extension, but closed for modification. (to avoid new requirements breaking old tested code)
  • DRY: Don't repeat yourself, avoid duplicate code by abstracting out things that are common and placing them in a single location. (to avoid having to fix the same thing in different places, or solving the same problema again, and again and again... I believe this is releated to YAGNI balances OAOO.... i guess I could say that YAGNI balances DRY, and therefore DRY equals OAOO)
  • SRP: Single responsability principle, every object in your system should hava a single responsibility, and all the object's services shoul be focused on carry in out that single responsability. (to avoid Big Ball of Mud, a huge object that does everything, that is hard to extend, hart to understand, and lots of stupid little object that do nothing, mmmm, this reminds me of a pricinciple I read about a long time ago about balancing the intelligence between your objects)
  • LSP: Subclasses should be suitable for their base clases (to avoid confusing code, on which you believe you can use a member of class hierarchy, and after trying you realize thet the result is not the expected one)

Thursday, February 22, 2007

OpenLaszlo & Spring & Hibernate

Hi!
Okey, changed my job again, time to rest from .NET and to refresh my Java abilities... my goal for this week is to find an easy way to teach everyone at my new job how to build a great application using: Hibernate + Spring + OpenLazlo...
My Java abilities are a little rusty so this is going to be a really entertaining challenge..

Here are some links I have found about this:

Seems that finding information on Laszlo is harder than I thought...

Requirements Analysis: Negative Space

A while ago, I was part of a team working on a crucial project. We were confident, relying heavily on our detailed plans and clear-cut requi...