Re: My views on Eclipse and Apple's decision on discontinuing all WO Dev tools

Mike Schrag <[email protected]> Wed, 28 Nov 2007 02:12:03 -0500
Newsgroups gmane.comp.web.webobjects.general
Message-ID <[email protected]>
> A. Productivity

> For many people productivity is measured in terms lines of working  
> code per day, or speed of refactoring. We measured productivity in  
> work done for the last three years
I agree ... I think any quality development shop measures productivity  
in results and not kloc, and any quality development shop thinks in  
terms of reusable frameworks and not repeating yourself.  I think your  
comments like ".. and then write a few hundred lines of code and we're  
done" are a little misleading and your measurement of line counts must  
be leaving out shared frameworks or something (heck, Wonder's Ajax  
framework alone is like 9kloc and it's not like there's a lot of fluff  
in there), but that's beside the point.

> I would even go as far as saying that all the hundreds of Eclipse  
> vies, configuration parameters, etc. is actually very hindering. On  
> the other hand, I could install Xcode from a disk image, open a  
> project and compile and run it without all the fuss. All these  
> Eclipse bells & whistles are completely useless to me (even Xcode is  
> often too complex :) and they slow me down. They disturb my flow of  
> thoughts...
And this leads to my point in my previous email about this being  
relative.  For YOU Xcode is "just open my project compile and run",  
but this is not at ALL the experience I have with Xcode.  The  
experience I have with Xcode is "open a project ... try to compile ...  
how does classpath with in this #@$ thing ... how do i configure this  
deployment build ... " etc.  I find it to be a completely painful  
experience.  You find Xcode to be a natural workflow because you've  
been working with Project Builder et al for ten years and it fits your  
mental image of the workflow.  I find them all to be infuriating  
because they're completely dissonant with mine.  And I'm not religious  
about my tools either -- all I care about is whether the tools I'm  
using make me a better developer or not.  At the moment, Eclipse is  
the one that I'm most happy with, but the second something else comes  
along that brings a substantially better experience and power, I'm  
gone*.

> What I claim here, is that the typical for so many developers over- 
> reliance on complex tools and techniques does not lead to higher  
> productivity, and at the end of the day the number of happy  
> customers counts (to me at least) more then the number of buttons on  
> the toolbar of my IDE.
I agree.  This is a large part of why we contribute to Wonder as well  
-- I don't believe that everyone should have to resolve the same  
problems.  Multicast EOF stack synchronization is really hard to get  
right.  Why shouldn't everyone else be able to just turn it on and  
benefit from the experiences of people who came before them?  Why  
should EOF developers have to care about locking?  I don't think they  
should.  The frameworks and tools should make solving common problems  
easy.

However, I think you're glossing over realities of software  
development in the description of your world.  Refactoring, for  
instance, is a real topic. As much as you think think think  
beforehand, invariably three months in, when you have a better  
understanding of the problem, or when requirements change, you're  
going to have to make changes to your system and your designs.   
Capable tools dramatically improve problems like this and it allow  
developers to be much more agile (in the traditional sense, not  
necessarily the fancy-hot-and-new-methodology sense).  Whereas you  
find that the tools disturb your thoughts, I find that stupid problems  
that computers should be able to do for me disturb my thoughts.  I  
want to be able to focus on the development problems I'm working on  
and I want to be able to improve my code effectively.  Before Eclipse  
came along, refactoring code was just not even a tool in my toolbox,  
because the bang for the buck just isn't there.  With good tools, it  
opens up an entirely new set of capabilities to developers.   
Especially for your so-called "amateur programmers," who are even MORE  
likely to make bad decisions up-front.  To be able to give them the  
confidence to rethink and explore is powerful.  And with features like  
local change tracking, I have a huge amount of confidence in exploring  
the problem space, because my tools are backing me up.  My tools  
provide me _excellent_ integration with my version control system,  
which is a major workflow in any multi-person development shop (and  
should be even in single person shops, just with less merging and  
conflict resolution).  These aren't just "fancy gadgets" -- they're  
enormous benefits and address annoyances that constantly annoy  
developers.  It's like you said -- I don't want to disturb my thoughts  
-- I want to find the shortest path between thinking and running  
software, and good tools grease that process.

> B. Esthetics.
> In one word - Eclipse is harassment to even the most modest sense of  
> esthetics or beauty. It is a torture for the eyesight, it is ugly,  
> distasteful, painfully inconstant and repulsive! It might contain  
> countless smart and useful functions, but they a wrapped in dirt.  
> And this mess is not because it is complex (as some did claimed).  
> Only on that subject I could fill many pages, but I will skip it. I  
> will only ask you why are you all using Apple hardware and Mac OS?  
> Eclipse looks exactly as ugly on windows or Linux, yes? If you do  
> not care about esthetics, why are you buying Mac and not one of  
> these ugly cheap plastic bricks every computer shop around the  
> corner sells for $500?
I make choices of technology based on several criteria, of which  
aesthetics is certainly one, but overall it's "does this make it  
easier for me to do what I want to do."  For me, Mac OS X absolutely  
does.  Certainly a large component of this is user interface design,  
but also as a DEVELOPER on Mac OS X, I am very much compelled by the  
frameworks that OS X has to offer that let me think about the problems  
in my problem domain rather than a bunch of junk that I shouldn't have  
to care about.

And like Chuck said, give me actionable items here ... When I look at  
Eclipse, it's not like I think it's a thing of beauty.  I said as much  
earlier that if it were a Cocoa app, sure, it would be nicer and would  
probably look nicer.  But when it comes down to it, we're talking a  
fairly small distance ...

* It has 16x16 toolbar icons instead of Apple's HIG 32x32 (Entity  
Modeler.app uses the proper sizes, though I'm still working on getting  
the toolbar to lay them out better, but hell, until Leopard there  
wasn't even a proper reusable toolbar view anyway)
* It has ugly ass tabs, but in their defense, there really IS no real  
tab standard on OS X that also supports a close option (the aqua-ish  
tabs are very limited in their capabilities). If you look at Apple  
apps, they all do this in a different way.  Safari's definitely look  
nicer and would be worth ripping off.
* I think it goes toolbar crazy.  I actually turn off almost all my  
toolbar icons.  Also, I don't the vast majority of view toolbars -- I  
find them to mostly just crowd the view for features that are  
generally better executed as hotkeys anyway.
* I don't like the visual style of their icons -- I think they're sort  
of clowny, but not everyone has Apple icon designers on staff
* Any place that uses emulated widgets pisses me off.  Cell editors is  
a big one.  But I have spent a lot of time in Entity Modeler tweaking  
these emulated widgets to behave much more like OS X native  
equivalents, I have several open bugs with SWT on them, and several  
that I have straight up just fixed in SWT.
* It's MDI, which is definitely un-macish, but I find that I often  
context switch fully into Eclipse anyway.  And honestly, every time I  
use Xcode, the thing that pisses me off constantly is that I end up  
with 5000 windows open and I can't find anything.  Eclipse just  
addresses this in a different way -- it falls down also, just in  
different ways on this one.  I like that Eclipse can be setup with  
automatic tab management so I can tell it to only keep the last x  
editors open so it automatically cleans up after me -- again, just one  
less administrative task to think about while I work
* Little stuff like inconsistent triple-click support and double/ 
triple-click-drag-selection, but this is being actively worked on  
anyway.

... Those are the things I can think of offhand?  But man, most of  
these are pretty darn picky and most are also SOLVABLE in a relatively  
straightforward way (whether the SWT team would accept the patches is  
another issue).  I honestly think that if tabs looked like Safari's,  
toolbar icon resolution was jumped up, and the default toolbar set was  
pared down, all the people who think Eclipse is "hideous" would  
suddenly not think so quite as much.  But I'm sure there are lots of  
other things floating around ... Fundamentally SWT is a middle-man,  
and some widget have to be emulated, so it's never going to be perfect  
parity with the underlying OS.

> Pierre, if you are reading, why don't you make the following  
> experiment - open one project in Eclipse, go to Steve, tell him that  
> Apple customers have to cope with this and watch his face :)
And yes, if Apple can deliver an environment that can solve the  
problems that Eclipse solves AND make it look beautiful, I would  
switch in a second.  But Xcode doesn't even come close.

> C. New WO Developers
> In our team we have one guy that knows Eclipse inside-out and  
> defends it to some extend. Few days ago I asked him the following  
> question. Imagine a guy across the street reads about this fantastic  
> framework called WebObjects, how it makes you more productive, etc.  
> And he decides to be a WO developer. So he buys a Mac (with Leopard  
> on it), and tries to write and deploy a simple WO application with a  
> simple database of just one table. What is the chance of success?  
> After some thinking he looked at me and told me - yes, you are  
> right, the chance is close to zero.
> Do I need to go further and explain what does this mean for the  
> future of WO?
Well, the "deploy" part of the story is mostly unchanged and has  
always sucked for WO -- I think it's overly complicated and lacks good  
tool support.  As far as the "develop" part, I think that this is  
mostly solved with a single screencast or a tutorial that is updated  
with all the new screens.  It's not like with Xcode and WOB you just  
osmosed the knowledge of how to build a WO app when you launched it.   
When I started WO, I had no idea how to use EOModeler, and I got  
f***ed by MANY times with its stupid 10 year old bugs.  WOB was the  
same for me ... People who talk about how intuitive it is are only  
saying that because they went through the tutorials about how to use  
it.  It's not really all that intuitive.  If you skip the tutorials,  
it's pretty incomprehensible (I know this because I personally skipped  
its tutorials and tried to just use it and it's pretty annoying).  It  
also had some AWESOME features like when it just stopped working  
because I selfishly decided to not use .*  imports in my Java files.   
As I see it, the future of WO is far brighter than it was 2 years ago,  
which was that WO was stale.  All the other folks were doing slick  
Ajax web applications using modern web site construction techniques,  
and we have a bunch of half-assed tools that don't support things like  
CSS, and a framework where Ajax requires either dropping a huge amount  
the framework's power (i.e. DirectAction-only-time .. yay!) or writing  
some really complicated code.  The future of WO now is that we have  
some of the best tools around for developing web applications, and  
they're getting better every day (OK ... some days they get worse, but  
the next build they get better again :) ).  I think you're getting  
hung up on what I see as transient problems.  The state of the union  
_at this moment_ is in flux, with Leopard and a new WO release after  
years of quiet, but the trend line is onward and upward as far as I  
can see.

> Final word
> Day after day I go to the office and work on extremely complex  
> software systems that handle inter-banking transactions, mobile  
> phone calls, or control of some very complex instruments. This pays  
> the bills. In the evening I go home, have few hours with my family,  
> and after every one is sleeping I start working on yet another  
> complex software system that models the macro-molecular chemical  
> pathways in our bodies (my goal is to understand how muscular  
> dystrophies work, and hopefully help to find a cure... it is a hobby  
> for me). In all these activities I have to think about two-phase  
> commits, satellite links, chromatic aberration, or protein folding.  
> I do not want to think about classpaths, or if I installed the  
> version of WOLips from this afternoon.
> For me and countless other people the process of software  
> development is just the way to achieve our goals and not the goal  
> itself. We are professional economist, physicist, chemist, or  
> biologist first, and software developers second. IDE is a tool, and  
> as every tool in the hands of an amateur it must be first and  
> foremost simple! Therefore many of us hate Eclipse. And believe it  
> or not, people like me (amateur developers) are the majority of the  
> users (exactly as there are more weekend photographers using iPhoto  
> then professionals using Photoshop).
Again, I agree.  It's only because I happen to actually develop the  
tools also that I have a different perspective.  But the non-tools- 
developer side of me (which is 70% of my time -- 30% of my recorded  
time is open source tools and framework development) thinks tools are  
a facilitator.  I write applications that solve business problems.  We  
also have a remote-controlled robotic system app (microscope, not  
telescope) built on WO, WO software for police forensics, content  
management, task management, accounting, group organization and  
communication.  Like I said at the top, quality software developers  
care about results, and those results are delivering applications that  
customers are happy with.  You should not have to care about  
classpaths (well, this one you can't REALLY avoid, and you aren't  
avoiding it in any tool) and WOLips versions.  And if you were on  
Tiger, you could be on Eclipse 3.2 and WOLips stable with not-the- 
fanciest-tools-and-features like hundreds of other users who obviously  
don't care about versions because WOLips stable hasn't change in  
something like 3 months.  Eclipse 3.3/Leopard/5.4 will stabilize, but  
it will take some time to do so.  The biggest problem I have is that  
what you see as horrible problems, I see as relatively minor bugs.   
This is more of a PR problem than it is a technical one.  WOLips is  
open source, so you see the sausage being made.  It means that  
everyone sees the tantalizing new features and yearn to upgrade to get  
them even though they may not be production-ready.  WOLips has  
historically not been very good at managing stable vs nightly  
releases.  This is a procedural issue that we need to deal with so  
that weekend photographers can use the tools reliably.

We want the same things, Georg.  You bring large apps and experience  
developers to the table, and with those, you bring the the ability to  
provide us with (at the very least) recommendations on how to make  
your lives easier -- and by proxy, everyone else.  This is why I am  
excited that the iTunes guys are switching over to Entity  
Modeler.app.  They bring a scale of application that most people don't  
have, and the changes necessary to support them (as well as the  
funding they put up to do so) will make the apps better for all of us.

Aside from all of this discussion, it's unlikely Apple is going to  
change their collective mind on the deprecation issue any time soon.   
Given that, and given that we've looked at a lot of the alternatives  
to WO and they mostly all suck pretty badly, I don't think you're  
leaving us any time soon to go to the competition, so we might as well  
find a way to make this a positive relationship.

ms