 |
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!

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 Digg DZone Furl 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
|