When I was around 12 and was learning about programming DOS applications, before I could write an actual program I had to first write a bunch of utility functions. One major undertaking was making a textbox. You would call my function and tell it the x,y coordinate to render it, max characters, foreground and background color, and what the background character should be. I had to write the code that handled every keypress, srolling long text within the textbox field, supporting del, ins, and highlighting, etc... I had to do it all. That was a big project.
I also wrote utility functions for things like drawing a box with or without a dropshadow, menu selections (use up/down to highlight the item you want and press enter), and more I can't remember. Once I had this library I could then move onto writing an actual program.
I think for many years web-development has been very basic like this. It's not as extreme as having to write your own textbox, but if you want menus, trees, paginated data tables, etc... you code that yourself and depending on your skill level it might be tightly coupled and not very reusable.
What excites me a lot (because I have such an interesting life heh) is JSF components. I bet some readers are tired of hearing me rave about it. Before you leave check out this link. It's one of many components written for the Apache Tomahawk library. It's basically a collection of components you can drop onto your page using visual design tools like Sun Creator Studio. There's the treeview, paginated datatable, menus, date pickers, file upload, and other things you might imagine.. But they also have really cool components like the one I linked to which is an MS Outlook style schedule and day-view. You literally drop it onto your page and it provides methods for you to interact with it and receive events. Your HTML ends up having funny tags like <schedule></schedule> with a bunch of attributes and sub-elements to configure it. When the page executes JSF replaces it with the actual HTML, JavaScript and server-side event hooks needed for the component. It works perfectly in any modern browser.
Writing web apps in JSF almost feels like writing desktop GUI's in .NET. You drop the component you want on the form, write code for the events you care about and write other code to populate it with data. When you double click a JSF component in your IDE, the code window that opens is for the server-side event handler. Yes your components can have events and you handle them on the server.
I think this is great for productivity. You don't have to be a JavaScript guru spending days or weeks writing your own textbox before you can focus on your application. You just drop a component someone else wrote onto your page and focus on your application.
Working from his home office in Toronto,
Ryan de Laplante can be found developing software in
Java by day, and obsessing with technology by night.
Ryan has been designing and writing software for
IJW since 1998 and is very passionate about his work.





