The Source for Java Technology Collaboration
User: Password:



Tim Boudreau

Tim Boudreau's Blog

Wicket + Swing == hmmm...interesting...

Posted by timboudreau on February 01, 2006 at 08:05 PM | Comments (37)

My grade-school friend Jonathan Locke, who is the creator of Wicket sent me a fascinating brainstorm the other day. Particularly in light of all of the hoo-hah around AJAX these days, I asked him for the OK to blog it. Here's what he had to say:
it hit me today like a ton of bricks that a wicket app should be able to seamlessly fuse with swing so that there is no code boundary between the two. then people can build wicket, (wicket + ajax) or (wicket + swing) applications where all of the model interactions and code are completely seamless. you can, of course, do this already. but it's way too much work by hand. by getting rid of the seam between wicket code and swing client code, you could make it all into one simple thing... something that would kick some .NET ass. where you can literally just in-line a bunch of swing code into your wicket app and have it all work out. essentially this is just a very fancy wicket component that auto-creates an applet (jars the referenced classes as a dynamic wicket resource) that instantiates a JPanel on the client side, but transparently proxies the JPanel's model back and forth when significant actions occur. the possibilities here are really enormous...

what i need now is a really buzz-worthy name. i was thinking taglets or swinglets, but i think that's too heavy and retro sounding. also both are being used... need something more nifty more memetic. ideas?

Good idea? Bad? I was chatting with Hans Muller the other day, and we were both musing - how much of people's objection to applets is reasoned, and how much of it is just that using applets is like "wearing bermuda shorts and hawaiian shirts"? There's so much fashion-victim stuff that goes on in the software industry that it's not a bad question.

Take AJAX as an example. Now, I've been paid to write very complex applications in Javascript, both client-side and server-side, and I'd frankly rather have an iron spike driven through my head than do it again. Javascript code always ends up as a sort of Rube Goldberg Machine. One of these things where - oh no, don't touch that spring over there - poof the whole thing explodes. If it's cross-browser, you get multiple Rube Goldberg Machines, one or more per-browser.

So the AJAX answer seems to be, well we'll package up those Rube Goldberg Machines in tight little libraries, and once they work they'll keep working, so we'll never have to worry about it again, we can just use them (now, I remember writing code branches just to make the same thing work in different versions of one web browser - aren't we forgetting our history here?).

On the one hand, it's a tribute to pragmatism. Javascript is there, it works inasmuch as it ever did. It's a recognition of reality to use it. It's kind of like we're all living in a lovely house that comes with a strange hot-pink concrete garage in the shape of a mushroom attached to it. It's an eyesore, but it costs too much to tear it down, so eventually you start storing stuff in it.

Anyway, it's a lousy metaphor, and my point wasn't to rant about AJAX, but to showcase Jon's very interesting idea (he's even already got some working code). Is it an interesting one, or one that makes you want to run for the hills? Got any cool name ideas for Jon? Leave a comment below!

slingshot400.jpg
James Gosling shoots t-shirts at Sun Tech Days Bangkok

BTW, I would be remiss if I did not note that NetBeans 5.0 was released today - congratulations to my friends and colleagues who pulled it together!


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • I just posted a fusion project between Swing 2.0 and Echo that I've been working on - here is the link:

    http://www.cascadetg.com/weblog/2006_01_29_archive.php#113874322792501339

    It's early, so still looking for feedback, but it's an exploration down the lines of what you're talking about.

    Posted by: wiverson on February 01, 2006 at 09:45 PM

  • I've been told not to blog about it ^^ I guess high school friendship helps :)) Anyway, Wicket was the only web oriented thingie that got me excited in a long time and now they are planning to mix it with Swing. Damn, how better could this framework be?

    Posted by: gfx on February 01, 2006 at 10:25 PM

  • "what i need now is a really buzz-worthy name. i was thinking taglets or swinglets"
    Swinglets
    "Swinglets is a server side component library that uses an identical design to Swing."

    Posted by: artti on February 01, 2006 at 11:03 PM

  • humm ...

    swingNet, smartSwing, swingWww, swingRemote, dance!

    Posted by: sse on February 02, 2006 at 01:36 AM

  • ... swicket, swingweb

    Posted by: sse on February 02, 2006 at 01:40 AM

  • Is this the old variant for the new Canvas?

    I propose:

    wicklets
    whiplets
    wacklets
    applets on steriods

    Posted by: dashorst on February 02, 2006 at 01:55 AM

  • Amatuers...

    Spring + Wicket

    Spricket

    :-)

    Posted by: bbjwerner on February 02, 2006 at 04:04 AM

  • Or.. if you are looking for something like AJAX, try "YAATRA"

    Yet Another Attempt To Resue Applets.

    Posted by: bbjwerner on February 02, 2006 at 04:09 AM

  • How about "DuckEgg" as in "out for a duck"? ;-)
    Seriously, I don't know enough to make a judgement for now, but I have always thought applets should be a good idea (and JWS even better, unsigned, of course).

    Posted by: tobega on February 02, 2006 at 05:15 AM

  • Re gfx: 1. If you were told not to blog about it and you're a Sun employee, whoever told you that is violating Sun's policy on blogging, period. Not OK. 2. I've gotten growled at for mentioning wicket in a blog before, so, to anyone considering growling this time: do you really want to complain about someone advocating the use of client-side Java in place of Javascript? It could get you laughed heartily at.

    Posted by: timboudreau on February 02, 2006 at 06:33 AM

  • tim,

    I asked Romain to constrain his enthousiasm until Jonathan and you figured out how to market this thing or even to finish the implementation. However, now the ball is out there... GOGOGOGOGO!

    Martijn

    Posted by: dashorst on February 02, 2006 at 06:48 AM

  • Yes there seems to be so much in common between html and swing design that I myself have been wondering why one could not write a swing app in html or some xml format (but see No New XML Languages). Xhtml seems a lot more understandable as a way of describing the layout of components, than the way one has to do it in swing. So if one could describe the layout in html (with unique ids accessible from the java code), and somehow describe the mapping from xhml to swing classes somewhere (would some kind of sytelesheet language be possible?) then localisation and so many other things could be a lot easier. Java would become the equivalent of javascript in a web app: the place where the logic of transformations is decided.

    Don't know if that is what your friend is up to. But that's a thought I have been having.

    Posted by: bblfish on February 02, 2006 at 06:49 AM

  • How about -"Swingcket" ?

    Posted by: ejn88 on February 02, 2006 at 07:04 AM

  • "transparently proxies the JPanel's model back and forth when significant actions occur"
    I'm very wary of that sentence, given issues like latency, "A Note on Distributed Computing", the 8 fallacies, etc...

    Still, it sounds interesting--even if it only turns out to be useful for aplications that run entirely within a fast low-latency intranet. I'm also curious about what is meant by "JPanel's model".

    Posted by: coxcu on February 02, 2006 at 07:20 AM

  • Martijn,

    until Jonathan and you figured out how to market this thing

    is what gets nasty emails coming to my box. Are you prepared to offer me a job when my career at Sun stalls now? :-)

    Re coxcu: I agree, anything that pretends that the network is either not there or 0 latency or bulletproof is a bad idea.

    Posted by: timboudreau on February 02, 2006 at 07:34 AM

  • I think we can arrange such a thing :), depending on your demands, your willingness to move to Holland, and *gasp* work with Eclipse ;-)

    Posted by: dashorst on February 02, 2006 at 07:42 AM

  • Latency will not be a factor. Form submit should trigger javascript to transmit model back to server via rmi over http /before/ post happens. Model can already be retrieved by host applet class via resource listener on Applet component.

    Posted by: muppetboy on February 02, 2006 at 10:02 AM

  • It was ME that wanted Tim and Martijn not to blog about this until it was finished and I would figure out how to market it. Boy, what a lot of miscommunication!

    Posted by: muppetboy on February 02, 2006 at 10:03 AM

  • Oh, muppetboy == Jonathan Locke (because I'm jonl@muppetlabs.com)

    Posted by: muppetboy on February 02, 2006 at 10:04 AM

  • Sorry, but applets are pretty much dead...both due to performance issues and due to constant plugin/JRE installation issues.

    Now, if Wicket could take a JPanel and render it in HTML/Javascript/Ajax, that would be something to get excited about!

    Posted by: jacek on February 02, 2006 at 10:16 AM

  • jacek: could you submit a patch for that? thanks.

    we do support neato dynamic images via headless AWT:

    add(new Image("image3", new RenderedDynamicImageResource(100, 100)
    {
    protected boolean render(Graphics2D graphics)
    {
    drawCircle(graphics);
    return true;
    }
    }));

    Posted by: muppetboy on February 02, 2006 at 11:24 AM

  • jacek: applets are dead for certain problems requiring broad distribution (horizontal markets). but they are very much possible in more vertical solutions where startup time and browser install is not such a big deal.

    Posted by: muppetboy on February 02, 2006 at 11:27 AM

  • Sounds like a great idea. You can call it Wicked.

    Posted by: m0rph on February 02, 2006 at 01:17 PM

  • How about Sprockets? It doesn't have SW or WI in it, but it sort of has a bit of both and it's cute (plus it's a *sortof* real word).

    - Josh

    Posted by: joshy on February 02, 2006 at 02:38 PM

  • LOL. I like Sprockets. Should come with complementary black turtleneck and stretch pants though...

    Posted by: muppetboy on February 02, 2006 at 04:15 PM

  • Unless someone can come up with a reason why not, I'm going with sprockets as the name for Wicket Swing components. Thanks joshy! Now is the time in this thread ven ve dance!!

    Posted by: muppetboy on February 02, 2006 at 04:45 PM

  • slicket

    Posted by: rschiavi on February 02, 2006 at 05:19 PM

  • sprockets = it sounds a little like "spokets" like the guy with strange ears in starTrek

    anyway, it is a very nice name for a principle comin from space ;))

    what do you think of : sprucklets, stucket, sproglet, swoglet or smurglet

    Posted by: sse on February 03, 2006 at 02:46 AM

  • Isn't Sprocket the dog from fraggle rock?

    Posted by: jasonrberry on February 03, 2006 at 05:29 AM

  • It's not very new idea, i've seen a lots of similar framework. Check for exaple: https://wiser.dev.java.net/

    Posted by: zombi on February 03, 2006 at 06:49 AM

  • https://wiser.dev.java.net/ : impressive


    on production ?


    thin swing : does it take advantage of new components or jide components for eg.

    Posted by: sse on February 03, 2006 at 08:15 AM

  • Made a simple JSlider sprocket last night and blogged about it here:

    http://jroller.org/page/JonathanLocke?entry=a_jslider_wicket_sprocket

    Posted by: muppetboy on February 03, 2006 at 02:57 PM

  • The name:

    Wicket and Swing are both cricketing terms. This may seem a foreign concept to US ears but not to coders from NZ, Aus, UK, SA, India and various other nations.

    So some possibilities:

    Yorker, as in 'he lost his WICKET to a inSWINGing yorker'
    Slip, as in 'he lost his WICKET to a an outSWINGer that clipped the edge and was caught at slip'
    Bails, as in part of the WICKET.
    Stumps, as in part of the WICKET.
    Sticky, as in 'Sticky WICKET'


    Cricket fans will think of others, surely.

    Obviously Seam and Spin are out as they've already been used for web and Swing frameworks respectively.

    Posted by: pcox on February 04, 2006 at 12:42 AM

  • Are you sure you folks aren't talking about WebCream @
    http://www.creamtec.com/webcream/index.html

    Posted by: yottzumm on February 10, 2006 at 05:21 PM

  • Why is James Gosling bound on that photo from Bangkok?!

    Hope he did not hide any illegal substances in those T-Shirts?
    Or maybe misstook "Duke" with "Dude" ? (from "The Big Lebowski" ;-)

    Posted by: cat on February 20, 2006 at 04:03 AM

  • slut
    smoke
    spank
    sperm
    spread
    stocking
    strip-tease
    stripper
    stud
    student
    sucking
    sybian
    tall
    tease
    topless
    tranny
    tub
    twink
    undressing
    vagina
    vibrator
    vixen
    whore
    wives


    amateur
    amateur2
    anal
    anime
    asian
    ass
    babe
    bang-gang
    bbw
    bdsm
    beach
    bisexual
    bizarre
    black
    blonde
    blowjob
    bondage
    booty
    bukkake
    cartoon


    celebrite
    clitoris
    close-up
    cock
    couple
    creampie
    cumshot
    deep-throat
    dildo
    double-penetration
    drunk
    ebony
    ethnic
    exotic
    face
    facial
    fat
    femdom
    fetish
    ffm


    fingering
    first-time
    fisting
    flashing
    footjob
    fucking
    gay
    gay2
    glory-hole
    granny
    hairy
    handjob
    hardcore
    hentai
    housewife
    indian
    interracial
    japanese
    latex
    latina

    lesbian
    lingerie
    maid
    mardi-gras
    masturbation
    mature
    mature2
    midget
    milf
    mmf
    model
    nude
    nudist
    oral
    orgy
    outdoor
    pantie
    pissing
    plumper
    pornstar


    pregnant
    puffy
    pussy
    redhead
    rimjob
    schoolgirl
    shaving
    shemale
    shower-bath
    smoking
    softcore
    spanking
    squirting
    strapon


    swinger
    teen
    thong
    threesome
    tits
    toes
    toon
    toy
    tranny
    ugly
    virgin
    voyeur
    webcam
    weird
    wet-shirt


    acrobat
    ad-aware
    antivirus
    ares
    avatar
    avatars
    clone
    divx
    divx2
    download
    edonkey
    emoticone
    emoticones
    emule
    firefox
    gratuit
    gratuit2
    gratuit3
    gratuite
    gratuite2


    gratuite3
    icq
    kazaa
    limewire
    logiciel
    logiciel2
    logiciels
    logiciels2
    messenger
    morpheus
    msn
    msn2
    nero
    real-player
    shareaza
    skype
    spybot
    telechargement
    telechargement2
    telecharger

    telecharger-antivir2
    telecharger-antivir3
    telecharger-antiviru
    telecharger-logicie2
    telecharger-logicie3
    telecharger-logiciel
    telecharger2
    telecharger3
    vlc
    winamp
    winmx
    winrar
    winzip


    antivirus-gratuit
    chanson-gratuit
    chansons-gratuit
    divx-gratuit
    emule-gratuit
    kazaa-gratuit
    logiciel-gratuit
    logiciels-gratuit
    messenger-gratuit
    mp3-gratuit
    msn-gratuit
    music-gratuite
    musique-gratuite
    musiques-gratuites
    nero-gratuit
    parole-gratuit
    paroles-gratuit
    telechargement
    telechargement-antiv
    telechargement-chans

    telechargement-chass
    telechargement-divx
    telechargement-emule
    telechargement-gratu
    telechargement-kazaa
    telechargement-logi
    telechargement-logic
    telechargement-messe
    telechargement-mp3
    telechargement-msn
    telechargement-music
    telechargement-musiq
    telechargement-nero
    telechargement-parol
    telechargement-paros
    telecharger-antiviru
    telecharger-chanson
    telecharger-chansons
    telecharger-divx
    telecharger-emule


    telecharger-gratuit
    telecharger-kazaa
    telecharger-logiciel
    telecharger-logicies
    telecharger-messenge
    telecharger-mp3
    telecharger-msn
    telecharger-music
    telecharger-musique
    telecharger-nero
    telecharger-parole
    telecharger-paroles

    chat-gratuit
    clip-gratuit
    cul-gratuit
    ecran-de-veille-grat
    emoticone-gratuit
    film-porno-gratuit
    film-x-gratuit
    fond-d-ecran-gratuit
    gay-gratuit
    gros-sein-gratuit
    hentai-gratuit
    horoscope-gratuit
    jeu-adulte-gratuit
    jeu-de-voiture-gratu
    jeu-enfant-gratuit
    jeu-gratuit
    jeu-gratuit-cadeaux
    jeu-pc-gratuit
    jeu-video-gratuit
    logiciel-gratuit
    mp3-gratuit

    photo-gay-gratuit
    photo-porno-gratuit
    photo-sex-gratuit
    photo-sexe-gratuit
    porno-gratuit
    sex-gratuit
    sex-gratuit-beurette
    sexe-amateur-gratuit
    sexe-gratuit
    sms-gratuit
    sudoku-gratuit
    tarot-gratuit
    telechargement-film
    telechargement-gratu
    telechargement-log-g
    telecharger-gratuit
    telecharger-gratuit2
    telecharger-jeu-grat
    tout-gratuit
    traducteur-gratuit
    video-gratuit
    video-gratuit2
    video-porno-gratuit
    video-sex-gratuit
    video-sexe-gratuit
    video-x-gratuit
    xxx-gratuit

    Posted by: davemirol on October 26, 2006 at 03:38 AM

  • nice

    Posted by: popos on December 15, 2006 at 06:33 AM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds