Interview: Steve Clarke from TJI Java IDE
Firstly, tell us a bit about yourself?
Interested in electronics from an early age, I studied that at university where we did some programming (Fortran) on punched cards (the last year to do so) and also learned some assembly language. I realised that the computer would be at the center of technological advance more so than electronics, but it wasn't until some years later that I took my MSc in Software Development at Coventry University in the UK, after some years dabbling in Basic and Pascal.
By then (the late 90s), the computer had become commonplace not only at work but in the home too—and Java was creating a stir as more or less the first truly Object Oriented language, with a leaning to the increasingly popular internet. Initially, the OO paradigm and event-driven architecture was sometimes made to seem unnecessarily complex and strange, but only perhaps to tutors steeped in procedural programming. Actually, OO design is a natural way of modeling a system.
When the time to carry out a project arrived, I decided to do something using Swing, which had just appeared and was not yet even a core package. Having used text editors and the command prompt in classes, I decided to design an IDE. After university, I implemented more of the design until it was a useful program. I think TJI, as the IDE became known, was about the first to use a tabbed arrangement of editors rather than internal frames as in the earlier versions of Sun's Forte IDE. On the machines of the day, Forte was rather slow so I was encouraged to continue.
I became a consultant specialising in the front-end at various companies including IBM WebServices where I designed and implemented an applet-servlet-JDBC reporting system for their online learning courses. Interestingly, only some of the developers there used IBM's own Visual Age (that would later become part of Eclipse); some used JBuilder and some plain text editors. I stopped using VisualAge when my latest source code was lost in its 'Object Repository' and returned to using TJI.
What is TJI ?
TJI is an entry-level Java IDE that is ideal for beginners, for those wanting to 'upgrade' from using the command line, and for the education sector (there is multi-user functionality built in). Plus, anybody else whose focus is on Standard Edition Java (rather than Enterprise Java) and who likes the look and feel of this IDE.
While an IDE aims to increase productivity, I also wanted to emphasise usability and the aim has been to make using TJI possible straight from the box, without need for recourse to a manual (although there is one). This involves deciding what to include, how features are arranged and labelled, and lots of context-sensitive popup menus and tooltips. This ease of use is designed to allow developers to focus productively on their tasks, hardly aware of the tool being used.
TJI is written entirely in Java and runs surprisingly fast. It starts and is ready in under two seconds. Many modules are not loaded into memory unless called upon, and also open fast. There are obviously some advantages in an IDE written in Java that is for Java—there can be a greater understanding of the source code and Java objects.
While a few people may still debate the negative impact of an IDE on the programmer (overhead, dependence and, particularly, use of code generation beyond simple shortcuts), certainly some things are inarguably useful—syntax coloring and indicating the location of compile-time and run-time exceptions in the source code, for example. It was this type of feature that TJI most focused on, although other features have been added over time. Certainly I wanted to keep the learning curve as short and flat as possible.
I frequently review the IDE not only for usability, but also robustness and performance—and positively welcome feedback from users.
Why is it called "TJI"?
Well, originally it did mean "The Java IDE", the idea was to call it simply what it is, but perhaps it sounded a bit pompous. So the name changed to just "TJI", which has a nice sound to it.