Why GWT is a great concept.

One of the most powerful aspects of tools, samples, templates, etc is the fact that most developers learn by example.  So while the last post I put here (Is GWT the future of web development?) went viral on the internet and you heard many rebuttals, affirmations, and other comments, there is one fact that remains – GWT is a very cool technology that “hides” a lot of the complexities of creating state-full web applications that implement Web 2.0 functionality.  It also does another thing, it gives Java developers a bridge over to JavaScript/HTML programming.  By writing Java (which the developer is very familiar with) and outputting a Web 2.0 application it immediately gives the Java developer a one-to-one relationship – or at least GWT’s interpretation.

I think of compilers and tools like this as a point in time technology.  It will be great in the beginning but in the end the developer will rarely “compile” the web application and possibly just edit the output directly – or rewrite it from scratch.  The problem I see is the steep learning curve so the latter part of that  statement may be a while.

I relate things like this to MFC, MFC was great for C/C++ developers but once you learned what MFC did under the covers for the most part many just went around MFC and removed the bloat.

So if Google and the open source community do this right, GWT may stay around for quite a while.  If it ends up creating “bloaded” applications then I think in the end it will not survive.

Lastly, it looks like this approach is gaining popularity.  From the comments there were a couple of open source projects and even a commercial project Vaadin that essentially do the same thing.

Who are your top referrers?

I check this stuff every so often.

I always find it interesting who are the top referrers for Balfes.net.  It looks like most of my hits are from Planet Eclipse, DZone (which is new to me), and Planet Lotus but I also find it interesting how many readers access the feed directly from Google Reader.

# Hits Referrer
1 9198 http://www.planeteclipse.org/planet/
2 5748 http://planeteclipse.org/planet/
3 2208 http://www.google.com/reader/view/
4 1700 http://planet.eclipse.org/planet/
5 1037 http://www.dzone.com/
6 710 http://images.google.com/imgres
7 658 http://planetlotus.org/

10 things Google has taught us

Very interesting article for all of you software and services companies out there on CNN Money:

10 things Google has taught us

1.) Passion wins

2.) Focus is required

3.) Vision is required too

4.) A team culture is vital

5.) Treat engineers as kings

6.) Treat customers like a king

7.) Every company is a frenemy

8.) Don’t ignore the human factor

9.) There are no certitudes

10.) “Life is long but time is short.”

I am pretty sure all young companies preach this kind of atmosphere and behavior.  The trick is to continue it once you are a big company.  It sounds like Google has done just that.

Is GWT the future of web development?

Pretty much most people who live in the technical world have seen, played with, or heard of GMail and all of the other applications like Google Wave.  Ever wonder how applications like these can be created?  Well, you should check out the Google Web Toolkit (GWT).  I started playing with this last week pretty heavily and I have to admit the concept is very intriguing and I think this stuff may have some legs.  The idea is you get all of the benefits of the Eclipse IDE (coding, type-ahead, debugging, etc) for your web applications but you actually write Java!  The cool thing about this is you get to continue coding in Java and the end compiled result is a slick Web 2.0 application based on JavaScript.  The GWT compiler supports the vast majority of the Java language[1].

You can check out the GWT API Reference guide to get a better feel for what kinds of UI are possible out of the box.  There is also a basic widget library available for immediate use and if you are not satisfied with those you can always create your own custom widgets.  What I really think has been done well (although I am not an internationalization expert) are the  different techniques you can use for internationalization.  Debugging is a huge bonus, you can now easily develop and debug your JavaScript applications right within Eclipse by debugging your application using the regular debugger.  The compiler’s generated output is simply a few JavaScript and HTML files, along with other public resources (css, images, etc…).   All you need to do to deploy your application is to put these resources on your web server[2].

So why is GWT so cool?  The key I believe is in attracting Java developers but also for the JavaScript optimizations it does for you in the JavaScript output.  You get obfuscated JavaScript files that are optimized for all of the major browsers – something you would have to first know how to do and then usually have to do it by hand.  You can also completely extend the GWT SDK with your own additions!  Creating custom services, UI controls, and extensions for your own products and developers.  Lastly, GWT is completely open source.  You can contribute to it or use it by adhering to the Apache 2.0 license model.

I am sure we will be hearing more of GWT and I would like to hear other opinions on this approach to Web 2.0 development.

Learning about Eclipse 4 with these two great webinars

Eclipse 4 is right around the corner (release schedule is 2010) and it is currently in an incubator project called E4.  You can learn about this stuff with two great recorded weninars from the Eclipse site:

E4 – the Next Generation of the Eclipse Platform (Part I)

E4 – the Next Generation of the Eclipse Platform (Part II)

Extending Notes with new view context menus and text selection context menus

Over the last few weeks I have received several Eclipse questions for how business partners and customers can extend Notes 8 in new ways.  The following two posts should answer some of those questions.  The first post shows how you can extend the right click menu for a text selection in a Notes document while the second post explains how you can extend the right click menu in a Notes view entry.

How to extend the right click text selection menu in a Notes Document

Adding right click options to your Notes 8 mail box entries with Eclipse

Best Practice: Using named ranges when programming Symphony spreadsheets

As described in the wiki article for using the Symphony Spreadsheet container you can reference cells and cell ranges many different ways.  I would argue that you should use named ranges all of the time.  This will create a virtual reference to the spreadsheet so if the cell or ranges get moved or the editor inserts rows or columns before the range the reference in the CA container will not be broken.

You can create named ranges under the Create menu item:

ss-namedranges1

You then use the dialog to define/edit the named ranges:

ss-namedranges2

Once you create the named range it will then be available in the Composite Application Editor tooling as an entry in the drop down menu from the component toolbar:

ss-namedranges3

As you can see from the wiki article you can use various methods to reference cells but I would stick to named ranges:

Fields are essentially absolute or named cell ranges. The container supports the following formats:

  • $<Column>$<Row> – E.g. $A$1
  • $<Column>$<Row>:$<Column>$<Row> – E.g. $A$1:$B$10
  • !<Sheet name>$<Column>$<Row> – E.g. !MySheet$A$1
  • !<Sheet name>$<Column>$<Row>:$<Column>$<Row> – E.g. !MySheet$A$1:$B$10
  • #<Named range> – E.g. #MyRange