Thoughts for ThinWire and 2007

Just a heads up to let everyone know that the team is going to be taking time off here and there from now through the new year and some of us will have limited internet access. In any case, some of us will be checking the forums every now and then but our responsiveness may be somewhat slow until the new year has begun.

Big Plans for New Year

While we have accomplished some amazing things in 2006, we have even bigger plans for 2007 and we are hopeful that our community will continue to accelerate in it’s growth and that ThinWire can become the standard for developing Ajax RIA applications, especially in Java. To make that happen, I’d like to take a minute to remind everyone that this is truly an open-source and community driven project.

Unlike some of the other commercial entities that have released there code under an open source license as a gimmick to attract developers and press, all in the hopes of getting revenue through indirect means. I personally have been driving the framework to an increasingly open-source, community oriented existence… not because I think we’re all going to get rich from this, but because I know we have made something great with this framework and I felt obligated to share what we had done with others who could use it. You see, I use many open source tools and products myself and I thought it was time to give something back to the community.

Continue reading »

Object Oriented Super Class Method Calling with JavaScript

The Problem

Every programmer who’s tried to apply classical Object Oriented techniques when developing with JavaScript, has at one time or another asked themselves the question: How do you call or invoke a super class method? Before the Ajax craze got into full swing, this question rarely arose because most developers were only exposed to the language when doing client-side form validation or simple DHTML / DOM element visibility toggling. In those simple situations, functional programming is sufficient and OO is of lesser importance. Now that Ajax is all the rage, programmers have been building increasingly complex systems involving large amounts of client-side JavaScript. As a result, many have tried to apply OO techniques to JavaScript as a way to manage that complexity. In the process, most developers quickly realize that JavaScript is a prototypical language and as a result lacks many of the more familiar OO conventions.

The subject of OO design and it’s various topics is huge, but aside from class definition approaches, I think this particular topic is one that JavaScript developers try to solve more frequently than any other. As a result, there are many different examples that you can find on the Internet, but all of the ones I looked at have certain scenarios under which they do not work properly. My interest in this topic grew as a result of my team’s efforts in developing the ThinWire Ajax Framework. As the demands on the client-side portion of the framework increased, we reached a point where it became necessary to have a solid OO model that supported super class method calling. Through super class calls, you can further centralize common code in the class hierarchy and as a result, more easily eliminate duplicate code.

The following outlines a number of approaches that I came across in my search. Ultimately, I was unable to find an acceptable solution published anywhere, so I had to resort to a custom solution, which you’ll find toward the end of this article. While super class calling was the most important OO mechanism that I needed a working model for, I also wanted a more natural way to define classes using JavaScript since the accepted prototypical approach is somewhat ugly in my opinion. So, with that said, lets dive in. As many developers have discovered, it’s very easy to do basic inheritance in JS, in fact there are two widely known approaches.

Continue reading »

ThinWire Compared to GWT

As the lead architect of Thinwire, I’ve had a lot of people ask me to explain some of the differences between ThinWire and the Google Widget Toolkit (GWT), so I finally sat down and outlined some points that you should consider when drawing comparisons between the two. I think ThinWire offers many unique benefits, but in this article I’ll outline seven points that I think are most important. Keep in mind, this has been well researched, but as is always the case with comparisons, there may be some fine points that are not articulated properly. If this is the case, then please post a comment or send me an email.
Continue reading »

Open Source & Available Now: ThinWire Framework SDK v1.2 beta

After weeks of hard work from those on the ThinWire development team, we have finally released the much anticipated ThinWire Framework SDK! So go download it! And just like I mentioned in my last post… its Open Source under the GPL so that you can play with it to your hearts content. We’re still working out the details of our Commercial License, so stay tuned!

The SDK includes documentation, binary thinwire.jar, source (if you opt to download it), two demo applications and a slimmed down Apache Tomcat server to make your life easy. The whole package is around 5MB depending on whether you download the source. The good news is that the ThinWire.jar comes in at only 306k of that! In any case, check out the Mail Demo application that Ted Howard put together in his off hours over the last few weeks. It’s pretty darn neat and he’s already got some cool plans for the next version too!

As for the web site, we’re going to be adding more examples and documentation over the next couple weeks. Additionally, now that the SDK is available we’re going to be looking at different ways to get the word out about ThinWire. If you have any suggestions, please let us know. Also, keep checking back on this blog for more information or just add the blog to your RSS feed reader so you can be up to date on ThinWire. Thanks for everyone’s interest in ThinWire, now go get the SDK and make some cool apps!

The Ajax Experience Conference with Swag!

Recently I had the opportunity to attend the Ajax Experience, a web technology conference held in everyone’s favorite technology hub, San Francisco. The conference website describes the event as “the first ever two day conference exclusively for the Ajax community” and I must say it is by far the best conference I’ve been too. The content was right on target and focused on the past, present and future of Ajax technology, as well as the technical challenges that remain to be solved (i.e. Accessibility, Mobile Device Support, Memory Issues, Debugging, Testing & more).

I went to the conference with a few goals in mind. First, I wanted to broaden my understanding of all the top Ajax frameworks on the market, both commercial and open source. I’ve had varying levels of experience with many of them in the past, but over the last couple years I’ve mainly been focused on building the ThinWire Ajax framework so I thought this would be a good opportunity to see what others have done. Second, I wanted to meet both the people behind these frameworks and also the people looking to apply Ajax techniques so that I could get a solid picture of the perceived deficiencies and some of the solutions that the frameworks were working on. Finally, I wanted to see how some of the other frameworks have solved the same issues that we encountered while building ThinWire.

Truthfully, there was so much information conveyed in such a short period of time that it would take pages upon pages to describe everything that I saw or heard. To give you an idea, the event had 35 break out sessions running 5 parallel tracks over two days and a half days. The last two days ran more or less from 8am till 10pm and then I hung around speaking with people until 11:30pm. Additionally, there were 5 keynotes, 3 expert discussion panels and numerous breaks for mingling with other attendees.
Continue reading »

ThinWire – the Ajax framework I helped build

For the past three years, I have been leading a team of top notch programmers in an effort to create a radically different kind of web application framework that utilizes Ajax techniques; we call the framework ThinWire. The primary goal of the framework is to allow programmers to construct web applications in the same manner that traditional desktop applications are built. If you’ve ever built a desktop application using VB, Java or another desktop GUI toolkit, then you already understand the concepts behind how to build a ThinWire application. The company I work for builds complex process centric applications for some of the top lending institutions in the country. So we didn’t arrive at this design just because it was cool, this design was necessary because the rich user interface that our legacy client-server software offers, could not be accomplished using traditional web development techniques.

Why am I mentioning this all in my blog? Well, because now that the framework has matured and is being used by production applications, we are working towards making the framework available for widespread use. We’re still working out some details and getting all the documentation cleaned up, so unfortunately you can’t download it just yet. However, you can checkout our website and look at screen shots, a video demonstration and find out more information about the framework. As we get closer to public release, we’re going to be adding further content to the site, so keep visiting. Also, we’d appreciate any thoughts or comments you may have.

As you might imagine we’re all quite excited about this and are looking forward to seeing other applications built on ThinWire. So if you’ve been experimenting with various Ajax frameworks, then please keep ThinWire in mind. If you don’t see something your looking for, then ask us about it and we’ll let you know whether its supported and if not when it will be. Also, if you have a blog or website we’d be grateful if you linked so its search ranking can increase and please tell your coworkers and friends about us too.