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
- 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.
Looking for database objects: