SQL Zone is brought to you in partnership with:

Geertjan is a DZone Zone Leader and has posted 460 posts at DZone. You can read more from them at their website. View Full User Profile

Interview: Sybase Transact-SQL Browser on the NetBeans Platform

11.05.2009
| 9180 views |
  • submit to reddit
SQLBrowser is a commercial IDE for Sybase Transact-SQL. For a long time, it was built using JBuilder. "At that time," says its developer Nicolas Gouteux (pictured, right), "the notion of a platform did not exist. I switched to the NetBeans Platform a while ago while still maintaining SQLBrowser 'by hand'. It was only after having suffered so much from trying to implement a windowing system and an editor by myself that I switched to the NetBeans Platform."

The full interview follows below: 

Hi Nicolas, how did you go about porting the application to the NetBeans Platform?

I tried to segregate between anything having to do with NetBeans (the module concept) from the rest by creating two root packages. I must admit that maintaining this separation requires energy.

The port went well although the learning curve was semi-steep at the time,  because there was little documentation at the time or, at least, it was not at all in the state it is today.

Here is a screenshot (more at the end of the interview):

(More screenshots at the end of the interview.)

Which aspects of NetBeans Platform development are you happiest with?

The "layer" invention is great, the Windowing system is also very neat, the Editor options modularity (e.g., hyperlinks) is very well thought out, and the Matisse GUI builder (although, this is not really  NetBeans Platform related) is essential.

Which of the NetBeans API's did you use?

Window System API, Nodes API, all the NetBeans IDE Editor libraries, Text API, the Utilities API, amongst others.

How has your experience been creating all of this?

All this experience is really great. It is quite rare that problems remain unsolved.

I find things improving all the time, for instance all my grammar is written in JavaCC from the start and I never thought I would be able to plug the JavaCC tokenizer into the tokenizer expected by the NetBeans Platform's Syntax Coloring. So I currently have 2 tokenizers. I saw that a JavaCC integration tutorial is out there! I will try this ASAP!

Can you give some tips for someone beginning a similar project on the NetBeans Platform?

Understanding how to create a NetBean Platform application is probably the most useful thing to do before starting. There are idioms which are best grasped through the tutorials, which I think are fundamental to adoption of the NetBeans Platform. I often  dreamed  that these tutorials had come earlier! Of course, one can download the whole source tree of NetBeans IDE but this is massive and not very explanatory.

Can you name some things that you'd like to have improved in the NetBeans Platform?

  • Modes. I am still struggling with modes setup when not all modules are enabled. All "wstcref" stuff is voluntarily left unexplained. I must say that whenever I reach a stable state, I rely on the magic to work. It is always tricky for software updates to work while preserving end users preferences, but this is a general issue.

  • Java-Centricity. I found initially that some things were too Java oriented. The main Options window panel, for example, is the general panel for options of any application, but contains items for Java Code Folding by default, even if your project has nothing to do with a Java editor.

  • Unexpected behavior. I have funny things happening with some customers, where some shortcuts suddenly seem to disappear (e.g., Ctrl-N, for New File) without explanation. Also, people sometimes get stuck in DDBlitLoops.Blit when unlocking their screens, but this is more of a Java2D issue I believe.

  • Closed classes. I sometimes find the classes too closed but I guess this is the price to pay to have a modularized system. There are some fields which I would have preferred protected rather than private, although I realize that this often betrays bad usage of the library!


Who are users of the application and what do they say about it?

Sybase customers are typically banks and insurance companies. Users of this application include:

  • SYBASE CONSULTING FRANCE
  • BNP PARIBAS ASSET MANAGEMENT
  • CLEARCHANNEL FRANCE
  • PREMALLIANCE
  • AGEFOS PME
  • BCA EXPERTISE
  • CREDIT AGRICOLE CHEUVREUX

Their comments can be found here.


What's the future of your application?

The first version of SQLBrowser was written in C on SunOS with the Curses library!. In 1996, I took the opportunity of Java arriving to learn the language while porting SQLBrowser. Today, SQLBrowser is a decent IDE for Sybase’s Transact-SQL: as long as Sybase is around, there is probably a place for this tool! The main adaptations besides natural enhancements of the tool will be new Syntax constructs and the exploitation of Sybase new features such as monitoring.

Anything else you want to share?

People in the NetBeans team are really impressive. They do a great job which counts almost as much as the Java base libraries themselves! Thanks to everyone. 

Appendix

Looking for database objects:

 Running SQL:

Analyzing SQL:

 Debugging SQL:

 

AttachmentSize
nicolas.png21.55 KB
Published at DZone with permission of its author, Geertjan Wielenga.

Comments

Milos Silhanek replied on Thu, 2009/11/19 - 2:37pm

Great and well done! But it became frozen when I switched from C syntax tree to F tree. Beautiful.

Could be able to write preceding comment into IF node in the syntax tree? I made it so in Karel language. Milos

Matt Coleman replied on Mon, 2012/04/09 - 1:14am in response to: Milos Silhanek

i did that too...i'd be great if it is multi-lingual  buffalo web design

Mateo Gomez replied on Mon, 2012/04/09 - 6:26am

im glad you did an interview with Nicolas Gouteux...gives us more insight on this issue mexican salsa recipes

Stork Club replied on Fri, 2012/10/19 - 1:56am

such wealth of information..I would love to pick his brain for a day

club stork

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.