You could argue that it doesn't matter much if a JavaClient looks awful on the Mac since 90% of your user will be running Windows - and probably more for a business application. Also, the Nimbus<http://bp0.blogger.com/_B11qFTiSj3U/SF-fNZv6DKI/AAAAAAAAAAM/D7NvQQzwYzQ/s1600-h/nimbus.gif>look and feel introduced in Java 1.6 is pretty nice, and available for Java 1.5 with a separate library. It is very aqua-like, but not native, so you don't have to worry about it not quite matching the native look, sort of like the way browser apps do.
Still, I agree that I prefer SWT's appearance to Swing's. You can also make a JavaClient app with SWT (not a D2JC one though). John On Fri, Nov 6, 2009 at 11:42 AM, Mike Schrag <msch...@mdimension.com> wrote: > Sure, I agree yours is real and mine's a picture, but that wasn't really my > point. My point was about visual mismatch with the native platform. If > you're OK with the app looking .... like Java ... , by all means, ship it. I > find Java desktop apps to be mostly visually repugnant (the same reason that > I work on Maclipse, but at least SWT has a fighting chance), and I don't > believe you can actually make it un-gross without a huge amount of work. > It's a question of what matters to you, though. > > That said, pretty much everything in the main chunk of your email isn't > really D2JC, it's just D2*. I'm sold already on the RAD value of D2* > technologies, I'm just not at all convinced that D2JC is the right D2 to > choose in most cases. If time-to-market is the primary concern, it seems to > me that you have dramatically faster styling and design capabilities with > D2W. You can hire an designer off the street to do CSS/HTML work for you, > whereas you'd dump a pile of hours into custom Swing controls. This is > essentially the same argument I have against the IB/Cocoa style of > development. The RAD time in IB/Cocoa is just way longer than making the > equivalent UI web-based. Maybe one screen you can layout a little quicker, > but start doing multiscreen workflows, and you're just sinking time into > Cocoa work (you can really see this when you try to RAD an iphone app -- i > find it to be very expensive to do in contrast to web RADing). The > flip-side, of course, is that it looks awesome. It's the trade-off again. > > So I guess the question is really "given a project spec, what feature in > the project would cause on to choose D2JC over D2W." > > ms > > > On Nov 6, 2009, at 11:48 AM, David Avendasora wrote: > > >> On Nov 6, 2009, at 9:54 AM, Mike Schrag wrote: >> >> couple mins of Interface Builder mockup (mac-up?): >>> >>> <PastedGraphic-2.png><PastedGraphic-3.png> >>> >> >> Nice looking and it shows how powerful Interface Builder can be in making >> UIs, but mine isn't just a mock-up it's a fully functional application - >> warts and all. It really talks to the server, sync ECs, validates, etc. etc. >> Again, I dropped an EOModel into my template project and launched it. Then >> used the EOAssistant to configure which attributes showed, what type of >> widget they used (PopUp, text field, explorer, etc) and where they appeared >> on the screen. That's it. No code. There's not a single Java Class besides >> Application, DirectAction, Session and two components: Main and JavaClient, >> none of which are modified beyond the stock template. >> >> So D2JC is certainly _passable_, but it's far from being a proper mac app >>> (those default old style boxes are the dead giveaway for java apps, though >>> there's a Swing client property to switch box styles, IIRC). Now, certainly, >>> if you spent enough time, you could tweak things and make it a lot closer, >>> but it's always going to be off. >>> >> >> Yes, and so will any web app, only more so. Now, your point about the >> uncanny valley is very true. D2JC comes almost too close to the look of a >> native app. If it were further off like a web app people's expectations >> would be lowered and no one would complain. But being uncanny hardly seems a >> valid reason to throw away something that saves literally _hundreds_ of >> hours of development time, especially for internal, CRUD-type admin >> applications. >> >> But I don't think that using D2JC to create shipping CRUD-type >> applications is really its most appropriate or useful application. To me, >> it's all about lowering project risk by getting stake-holders involved as >> soon as possible in the development process and as a prototyping and >> model-validating tool. >> >> D2JC is an incredibly powerful tool when used as a means to an end. WIth >> D2JC you can have a _fully functional_ application with just an EOModel. >> This allows you, as a developer, to get a true feel for how well your model >> represents the business context without having to write any code. You can >> immediately start creating records in the database, setting relationships, >> deleting objects, orphaning them, etc. through EOF which will verify that >> the relationships are properly setup including that your deletion rules and >> ownership settings work as you expect. Again, you can do all this without >> writing any code! You don't have to ever show it to an end-user if you don't >> want to. >> >> Change your model? No problem. Rebuild (copy the revised EOModel to the >> build directory) and relaunch your app and your changes are immediately >> reflected in the UI. Since you haven't written any code, you don't have to >> refactor! What's better than Eclipse's refactoring tools? Not needing to >> refactor at all. D2JC greatly speeds the process of modeling and validating >> that the model reflects reality. >> >> On top of all this, since you have a fully functional application, with >> all CRUD functions, revert functionality, validation, etc, it _can_ >> transition into the initial data-entry, data-cleanup application to >> populate/scrub the database and even be used by non-developers (business >> users). How many times have you created spreadsheets for users to do data >> entry into so you can then import them into the DB? With D2JC what you give >> them can be a real application that writes directly to the DB. >> >> Keep in mind that you can do all of this - requirements to working >> prototype - in ONE DAY with no code. It is easy to start with some basic >> requirements, create a model, then an app, and take it to the stake-holders >> to show how various pieces fit together and get even better feedback on >> workflows because you are giving them something they can see and understand >> not an abstract diagram. You can then make revisions and return with a >> revised, working application _minutes_ later. Yes, I said minutes! >> >> Once you've validated that the Model accurately reflects reality by having >> actually putting it to use, you can now start the labor-intensive process of >> creating the finely tuned UI that looks and works exactly how you want it >> to. Because you have already done a substantial amount of model and business >> context validation there will be far less risk of having to tear it all >> apart due to having missed something fundamental in the model. >> >> I'd like to see any other technology do that, WO-based or not. >> >> And we're just talking chrome, not behavior of the app, which is often >>> even more off. >>> >> >> D2JC certainly has some UI clumsiness to it, especially when working with >> many-to-many relationships and dealing with Inheritance. >> >> Of course you have to do all these tweaks for each platform, too -- >>> though you're a fair bit closer than my CocoaClient app is running on >>> Windows :) >>> >> >> I think what it comes down to is that I would not suggest using D2JC in a >> situation where you have to have complete control over the UI or have even >> reasonably complicated work-flows. On top of that, I don't think it would be >> worth the effort to tweak the UI for one platform, let alone multiple ones. >> The fact that it runs "passibly" on all Java platforms without writing any >> UI code at all, to me is simply amazing and incredibly powerful. >> >> Whew, that's more than I intended to write. :-) >> >> Dave >> >> >> >>> ms >>> >>> On Nov 6, 2009, at 8:50 AM, David Avendasora wrote: >>> >>> >>>> On Nov 6, 2009, at 8:17 AM, Mike Schrag wrote: >>>> >>>> So if we're stirring the pot here ... For me, it's not being cool in >>>>> the browser, it's about Java apps looking terrible. You can immediately >>>>> tell >>>>> when you're using a Java app ... Things are just never quite right, but >>>>> they >>>>> try to sell themselves as being native. It's an uncanny valley situation. >>>>> Eclipse/SWT are using native controls for lots of things and they get it >>>>> wrong, too. Swing just doesn't have a chance. Go try IDEA -- it looks >>>>> TERRIBLE. Look at their preference panels. I tweeted when IDEA went free >>>>> that I can see how to make Eclipse right, but I'd never be able to make >>>>> IDEA >>>>> right. >>>>> >>>> >>>> I understand the uncanny valley. In most cases you are absolutely right. >>>> Here's a screen grab from my current D2JC project, I think it looks pretty >>>> good, although it doesn't look like a modern OS X app (iTunes, etc): >>>> >>>> <PastedGraphic-3.png> >>>> >>>>> For browser apps, it's obvious they're not native apps, and the bar is >>>>> set low in the browser at this point, so you can make a slick looking app, >>>>> and it doesn't have to be perfectly native, and people are still OK with >>>>> it. >>>>> I would be far more interested in CocoaClient where you actually have a >>>>> chance of pulling off a nice end-user deliverable. >>>>> >>>> >>>> I agree. For me a WO Cocoa Client is the Holy Grail of Client-Server. I >>>> want it. Badly. >>>> >>>> That said, I recognize that there are plenty of apps where "looking >>>>> slick" doesn't really matter -- that you just need to get some business >>>>> app >>>>> out there. But what does Java bring to the table that you're not getting >>>>> in >>>>> the browser? >>>>> >>>> >>>> With plain WebObjects JavaClient, you get >>>> 1) Real Java on the client. No messing around learning JavaScript (or >>>> waiting for the "next great JS framework") to implement UI logic. >>>> 2) EOF on the Client with >>>> - automatic syncing of Client and Server EditingContexts (works >>>> very similar to Child ECs) >>>> - batching >>>> - faulting >>>> - validation >>>> >>>> Why not just use D2W? Drag and drop is about the only thing, and that >>>>> will be in the good browsers pretty soon. >>>>> >>>> >>>> For me, it's not about the features you get in the client, although >>>> there's some cool stuff that way too. It's the dead-simple development side >>>> that makes it so awesome to me. With WebObjects D2JC you don't have to >>>> write >>>> _any_ code at all. No HTML. No CSS. No JavaScript. Not even rules! You hear >>>> that D2W guys? The D2JC EOAssistant works great and it will write most of >>>> the rules you need! Here's a screen capture of it (it's also a Java Client >>>> app that communicates with WOLips to update the user.d2wmodel file): >>>> >>>> <PastedGraphic-6.tiff> >>>> >>>> Anyway, I didn't mean to hijack this thread with Java Client, but hey >>>> Anjo brought it up! :-P >>>> >>>> Dave >>>> >>>> >>>> >>>>> I do, however, think D2JC is a _neat_ technology, in that it's >>>>> amazingly clever what it's doing under the covers, I just am not sold on >>>>> the >>>>> end result. >>>>> >>>>> ms >>>>> >>>>> On Nov 6, 2009, at 7:41 AM, David Avendasora wrote: >>>>> >>>>> Hey! Did I hear "JavaClient"?! :-D >>>>>> >>>>>> Yeah, it will be cool if someday we get the tools to do something >>>>>> client-server like JavaClient. >>>>>> >>>>>> Oh wait! We already _have_ WebObjects-based JavaClient, and >>>>>> Direct-To-JavaClient and it works today and has for _years_. >>>>>> >>>>>> Sure, it's not as "cool" as a browser-based solution, in the same way >>>>>> WO isn't as "cool" as Ruby. >>>>>> >>>>>> **ducks, runs for cover and scrambles to get the D2JC project template >>>>>> updated** >>>>>> >>>>>> Dave >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Nov 6, 2009, at 7:32 AM, Anjo Krank wrote: >>>>>> >>>>>> Not really sure... basically you'd need something totally new, as >>>>>>> this would be more like JavaClient and not like a web app. But all this >>>>>>> is >>>>>>> *moot* until we don't have it. >>>>>>> >>>>>>> Cheers, Anjo >>>>>>> >>>>>>> >>>>>>> >>>>>>> Am 06.11.2009 um 13:05 schrieb Mike Schrag: >>>>>>> >>>>>>> Yeah .. I suspect there could be a GianduiaLook, and that would make >>>>>>>> a lot of sesnse. >>>>>>>> >>>>>>>> ms >>>>>>>> >>>>>>>> I think we've seen with the SproutCore stuff that it's not. Apart >>>>>>>>> from *maybe* a JS D2W. >>>>>>>>> >>>>>>>>> Cheers, Anjo >>>>>>>>> >>>>>>>>> Am 06.11.2009 um 02:54 schrieb Mike Schrag: >>>>>>>>> >>>>>>>>> rom my perspective, I don't know that it's worth building a server >>>>>>>>>> stack on top of it as much as I think it would be nice to leverage >>>>>>>>>> the >>>>>>>>>> development tools we already have to make it easier to write the >>>>>>>>>> Javascript. >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>>>> >>>>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40mdimension.com >>>>>>>>> >>>>>>>>> This email sent to msch...@mdimension.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> Do not post admin requests to the list. They will be ignored. >>>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>>> Help/Unsubscribe/Update your Subscription: >>>>>>> >>>>>>> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com >>>>>>> >>>>>>> This email sent to webobje...@avendasora.com >>>>>>> >>>>>>> >>>>>>> >>>>>> David Avendasora >>>>>> Senior Software Engineer >>>>>> K12, Inc. >>>>>> >>>>>> ***** >>>>>> WebObjects Documentation Wiki : >>>>>> http://wiki.objectstyle.org/confluence/display/WO/ >>>>>> ***** >>>>>> WebObjects API: >>>>>> http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html >>>>>> ***** >>>>>> >>>>>> _______________________________________________ >>>>>> Do not post admin requests to the list. They will be ignored. >>>>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>>>> Help/Unsubscribe/Update your Subscription: >>>>>> >>>>>> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40mdimension.com >>>>>> >>>>>> This email sent to msch...@mdimension.com >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> David Avendasora >>>> Senior Software Engineer >>>> K12, Inc. >>>> >>>> ***** >>>> WebObjects Documentation Wiki : >>>> http://wiki.objectstyle.org/confluence/display/WO/ >>>> ***** >>>> WebObjects API: >>>> http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html >>>> ***** >>>> >>>> >>> >> David Avendasora >> Senior Software Engineer >> K12, Inc. >> >> ***** >> WebObjects Documentation Wiki : >> http://wiki.objectstyle.org/confluence/display/WO/ >> ***** >> WebObjects API: >> http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html >> ***** >> >> > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/webobjects-dev/johnthuss%40gmail.com > > This email sent to johnth...@gmail.com >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com