tag:blogger.com,1999:blog-12753102.post5748565816790471144..comments2024-03-28T15:41:37.170-04:00Comments on Ben's Journal: Tackling a Desktop / GUI Project? Consider MrEdBen Simonhttp://www.blogger.com/profile/09833753747177544979noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-12753102.post-77218445183108089342009-06-20T22:30:16.313-04:002009-06-20T22:30:16.313-04:00Starpacks require no runtime. Everything bundled i...Starpacks require no runtime. Everything bundled in 1mg for several platforms that Tcl supports.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12753102.post-46697303642040082852009-06-20T22:27:33.868-04:002009-06-20T22:27:33.868-04:00Tcl/Tk in a starpack: http://www.equi4.com/tclkit/...Tcl/Tk in a starpack: http://www.equi4.com/tclkit/ is about 1mb with full support for virtual file system (won't unpack the files to /temp).<br /><br />Check it out: http://wiki.tcl.tk<br /><br />Best language/toolkit/framework I've ever used.<br /><br />But now I'm tempted to check out PLT Scheme too.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-12753102.post-36737213486311179362008-05-04T18:58:00.000-04:002008-05-04T18:58:00.000-04:00Hey Stephen,I've played with Tk a bit - specifical...Hey Stephen,<BR/><BR/>I've played with Tk a bit - specifically with Tcl/Tk, but I've never done significant development in it.<BR/><BR/>I think MrEd shines it two places that Tcl/Tk *may* lack:<BR/><BR/>1) There's no need to worry about distributing the run time. MrEd will build you a stand alone .exe. Not sure if Tcl/Tk will do this.<BR/><BR/>2) I wonder how well Tcl scales? I know it's wonderful for quick scripts, but I wonder if PLT Scheme's OO system and Module system, plus Scheme's macros and closures, make for a more scalable solution?<BR/><BR/>I'm not famaliar with GNUstep.<BR/><BR/>Now, if you're talking about Scheme (preferrably a mature one, like PLT or SISC) + Tk - well, that's another story. That might be an ideal solution.<BR/><BR/>-BenBen Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-2067730733348091562008-05-04T10:43:00.000-04:002008-05-04T10:43:00.000-04:00Hi, Just saw your post via a link on the PLT-schem...Hi, <BR/>Just saw your post via a link on the PLT-scheme mailing list. <BR/><BR/>Do you have any opinions on TK or even GNUstep(and relatives)?<BR/><BR/>cheers, <BR/><BR/>StephenStephenhttps://www.blogger.com/profile/06166023503610953768noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-21224816474546709502008-05-03T22:40:00.000-04:002008-05-03T22:40:00.000-04:00And, Mark, that's exactly my point.You could (and ...And, Mark, that's exactly my point.<BR/><BR/>You could (and people successfully do!) rig up a JVM + App classes + Jar files + batch script to make a windows install. <BR/><BR/>But, in the case of MrEd I was impressed that I didn't need to work up a solution like that. Stand alone, reliable executables, were just part of the deal.Ben Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-60294072349318245842008-05-02T18:00:00.000-04:002008-05-02T18:00:00.000-04:00OK, so the full JDK v6 is 66.40 MB. The do offer ...OK, so the full JDK v6 is 66.40 MB. The do offer an "offline" installer that's less than 1/2 MB. Of course, your still going to have to download that stuff, but from a distribution point of view that works well.<BR/><BR/>I really don't worry so much about this "all in one" mentality that you're aiming for in a single .exe. In reality, most real world applications end up being a directory of files anyhow. I mean in most cases you've got to have documentation and other stuff, not just executables. So really, the easiest thing is to just distribute your stuff as a zip file. Apparently building an installer for Java stuff is pretty easy these days, but I've never bothered.<BR/><BR/>If you really do have just a small application and you want a simple way to package/deploy it, there are some so-called uber-jar capabilities out there. Personally, I usually use <A HREF="http://maven.apache.org/" REL="nofollow">Maven</A> for all of my build/package/deploy/dependency management stuff. Maven has a nice plugin called the maven-assembly-plugin, which has an option for jar-with-dependencies. So you put the config in your build file, specify the main class for you application, then all that you need to run it is to run "java -jar myapp.jar". Of course, you can create a nice little invocation wrapper for calling that on unix and for windows platforms. Err, actually, I forgot, you can just double click on a properly built jar file and it will run just like an exe. So there you go.<BR/><BR/>You can also do something similar with Ant.<BR/><BR/>Another really nice option, which has gotten better since the old days, and is often forgotten -- remember Java WebStart? Heck, talk about a perfect deployment scenario. You send the customer a link, they click on in in their browser and Voilla! they've got a full blown running application. Ooops, there's a bug in that application, well thank goodness you don't have to ask your customer to re-install the new version of the application with the bug fixes. I think you get the point.<BR/><BR/>As far as programming complexity, I think things have come along way with Swing. There are some really good GUI builders out there, but I'm still an old fashioned guy when it comes to that. There are some new layout managers, but GridBagLayout, once you get it, is pure power and definitely worth the effort for all but the simplest layouts.<BR/><BR/>There are also lots of new options for using scripting languages like JRuby, Python, or Groovy to build Swing apps.Mark Helmstetterhttps://www.blogger.com/profile/10871755939223889985noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-25598752693084397172008-05-02T17:09:00.000-04:002008-05-02T17:09:00.000-04:00Thanks for the leads guys!-BenThanks for the leads guys!<BR/><BR/>-BenBen Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-88555860375518898132008-05-02T12:18:00.000-04:002008-05-02T12:18:00.000-04:00If I had to do a swing gui today I'd use jruby and...If I had to do a swing gui today I'd use jruby and <A HREF="http://monkeybars.rubyforge.org/" REL="nofollow">monkeybars</A>.Martin DeMellohttps://www.blogger.com/profile/13347537989431523652noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-61828779142984855712008-05-02T09:50:00.000-04:002008-05-02T09:50:00.000-04:00I really like Python + PyGTK. Glade makes it easy ...I really like Python + PyGTK. Glade makes it easy to design the GUI, and one command connects the GUI to your code.Alistair Davidsonhttps://www.blogger.com/profile/03390940392618973990noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-63702778519181414692008-05-02T09:15:00.000-04:002008-05-02T09:15:00.000-04:00Here's one measure of "simplicity" --There are abo...Here's one measure of "simplicity" --<BR/><BR/>There are about <A HREF="http://download.plt-scheme.org/doc/mred/mred-Z-H-30.html#node_sec_3.5" REL="nofollow">45 methods</A> to digest for a MrEd button.<BR/><BR/>There are about <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JButton.html" REL="nofollow">405</A> methods on a JButton.<BR/><BR/>I'm not saying that the extra 360 methods that Java provides aren't needed. Just that, there's a whole lot more to wrap your head around.<BR/><BR/>When I programmed in Swing, I was always confident that an effect could be done using the built in facilities. With MrEd, I'm not always so sure - though, usually there's a work around.<BR/><BR/>But, like I said, for the right project, the simplicity can be huge win.Ben Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-90702904778748725322008-05-02T07:58:00.000-04:002008-05-02T07:58:00.000-04:00Mark -Out of curiosity, has the Swing toolkit gott...Mark -<BR/><BR/>Out of curiosity, has the Swing toolkit gotten easier in terms of layout managers? Or does one still cut their teeth the GridBagLayout?Ben Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-39849561095381972602008-05-02T07:54:00.000-04:002008-05-02T07:54:00.000-04:00Hey Mark -I'm definitely thinking of both Java and...Hey Mark -<BR/><BR/>I'm definitely thinking of both Java and .Net experiences where I needed to download big runtimes to get started.<BR/><BR/>Fairly recently, Shira had to deal with a .Net app, and before she could run it, she needed to download easily half a gig of stuff.<BR/><BR/>Things do look vastly improved on the Java side, with the JRE weighing in at a mere 14meg.<BR/><BR/>I think what I'm also mixing up is probably the download of the runtime environment versus the development environment.<BR/><BR/>Have things gotten better on .jar side too? In my past experience, if you used a variety of 3rd party libraries, the best you could do was jar them all up into one big jar file and make that available.<BR/><BR/>Does Java offer a cleaner solution now?<BR/><BR/>If you were to develop an app in Swing, how would you be sure that it looked like a stand alone .exe?<BR/><BR/>Thanks for keeping me honest about the old versus new world of Java. Someone's gotta ;-).<BR/><BR/>-BenBen Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-86690499958708208882008-05-01T23:43:00.000-04:002008-05-01T23:43:00.000-04:00Man, you sure are hard on Java/Swing these days.10...Man, you sure are hard on Java/Swing these days.<BR/><BR/>100's of megs? I don't think that's a fair statement. I assume you're counting a JRE install, which is not even close to that size and it's pretty reasonable to assume that most platforms will have a JRE installed.<BR/><BR/>Java and Swing had there rough spots back in the 'day, but it has gotten a lot better.Mark Helmstetterhttps://www.blogger.com/profile/10871755939223889985noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-19537894746970604882008-05-01T21:55:00.000-04:002008-05-01T21:55:00.000-04:00Martin -I suppose I'm spoiled by broadband and the...Martin -<BR/><BR/>I suppose I'm spoiled by broadband and the fact that my past experience was with Swing.<BR/><BR/>There, you'd be talking about 100's of megs, if not a gig worth of crud.<BR/><BR/>So, to me, a a 4meg zip file is tiny.<BR/><BR/>But, you're right, it definitely depends on where you start.Ben Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-62380803957024102292008-05-01T16:53:00.000-04:002008-05-01T16:53:00.000-04:00The 'lightweight' thing is open to debate :) My on...The 'lightweight' thing is open to debate :) My one problem with using MrEd for my current project is quailing a little at eventually having to tell my users they need to download an 11MB text editor. I guess it depends on what you're writing, and what the expectation of software size for that class of app is.Martin DeMellohttps://www.blogger.com/profile/13347537989431523652noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-37886689795120070822008-05-01T15:23:00.000-04:002008-05-01T15:23:00.000-04:00Hey Clint -Glad this was helpful.I should also hav...Hey Clint -<BR/><BR/>Glad this was helpful.<BR/><BR/>I should also have mentioned - the PLT Scheme mail list is nice and active. So if you have questions, there's someone to ask them to.<BR/><BR/>Good luck and let me know when you end up settling on.Ben Simonhttps://www.blogger.com/profile/09833753747177544979noreply@blogger.comtag:blogger.com,1999:blog-12753102.post-87576663340164842752008-05-01T09:29:00.000-04:002008-05-01T09:29:00.000-04:00I've been looking for the right GUI development to...I've been looking for the right GUI development tools, so I'll give this a try. Thanks for writing about it, as I hadn't heard of it before.Clint Laskowskihttps://www.blogger.com/profile/03009568520344916282noreply@blogger.com