So, in gratitude, and curiosity, I interviewed Andrea after the course was over. Here's the result, some of his answers are truly fascinating.
So, Andrea, tell us a little about yourself.
My name is Andrea Martano. I am from Milan, Italy. I am a partner in a company, Sinapto, working as a contractor for Sun Microsystems. I have worked there since 1999. (But I have a degree in political science and economics...) We are 30 in total. The company is divided in two areas—one develops PHP on Linux, while the other develops Java on Solaris.
But I thought you were a Java instructor?
Well, three of us teach Java and I am one of them. I teach about 15 to 20 weeks per year. The total teaching figure for the company is about 50 to 60 weeks per year.
Why does your company do teaching as well as development?
We like giving courses. We like sharing knowledge. The value is in the knowledge and not in the product itself. We teach all the J2EE courses—SL314, FJ310, SL351, DWS310, DWS385, as well as 00226, which is object oriented analysis and design and SL500, which is design patterns.
What do you like about teaching?
I like to teach people. I like to transfer knowledge. I like to make people look at Java not just as a programming language. One of the goals I always try to have while teaching is to help people take the first steps and giving them the direction and the will to discover, not just Java, but everything in general. This is the most important thing I inherited from my father. Until the day of his death, he always studied new things. And so he left me the passion to learn and the passion to teach.
And, you have recently begun using NetBeans?
No, not recently! I've been using it in my courses since version 3.6, mainly as a text editor, to give some help to students new to Java. For example, those students have great difficulty with method names or find it difficult to switch from another programming language to Java without ever having been exposed to Java syntax before. For example, code completion and the red square with the white X for errors, plus its message, is really useful. As a result, they don't always ask me whenever they have a problem, but use the IDE to solve it for them. When they have problems with missing semi-colons and mispellings, the IDE helps them to work out the problem. As a Java instructor, this saves me time and helps to keep the course on track.
What do you think about the lightbulb (that offers hints and suggestions when the IDE detects compilation errors while you are typing) in 5.0?
I think it is a great idea. It is a further help. Now there is not just the error warning and the error message that you get when you hover over the red box with the white X, but an additional solution to problems.
But shouldn't students find this out themselves?
Maybe the first time, they just apply the solution given by the IDE, without understanding it. But after they repeat the mistake, they understand the error, so they learn by trial and error. I believe that forcing students to use plain notepad is too hard. They get tired very fast. They think Java is too difficult. I try to focus students on the fact that Java is not just a programming language, and, if they face difficulties coming from incorrect Java syntax, to point their attention to the whole Java environment. You cannot think of Java as only a language—it is a system of knowledge, it is a platform, it as an environment, it is a different way to think about how an application can be built. You learn the syntax by using it, so it is not important to learn the entire syntax within the first five days. The most important thing is that you get them to switch to object orientation. And that you can give them a general view of the whole thing.
So, how have students found working with the NetBeans editor?
Basically, NetBeans is not so different from any other editor. Students take about half an hour or less to start using it.
So, then, why use NetBeans? Why not some other IDE or non-IDE editor?
Because it is a 100 percent Java editor, as opposed to Eclipse that has a native library for the user interface. NetBeans lets me import the code, which was produced outside the editor, in an absolutely easy way. NetBeans lets me use my Ant file. I felt comfortable immediately using NetBeans.
3.6 was very heavy to run. It was slow to start up, but the future of the IDE was already clear at that time. So we insisted on using it to develop our products and while giving courses.
So, if I come to your class, and I have a different IDE on my laptop, what happens?
I have very little experience with, for example, Eclipse. In Eclipse, I don't feel comfortable with the concept of workspaces. To students coming with Eclipse or wanting to use Eclipse, I say: if you want to use it, use it, but I can't help you if you have a problem caused by the IDE itself.
I have experienced users coming with Eclipse and discovering NetBeans. And they finished the course satisfied, both with the course and with their new IDE, especially since we started using version 4.1.
Because it is much faster. It is bundled with the Sun Java System Application Server. I can show them how to add Ant targets to deploy to an external Tomcat server, incorporating a specific context.xml. Maybe we have on the same computer, both the web server and the database, but when we deploy the database is on one host and the server on another, so then we use context.xml to configure the application.
What do you think about NetBeans 5?
We shall adopt NetBeans 5. Both in course teaching and within the company for our development.
It is faster than 4.1. It lets us deploy to a wider range of application servers. The new hint features are a great innovation. And it is good to help new developers with Java Blueprints—to help them start building an application in the correct way and prevent them from taking wrong development decisions or their own way of building an application, without a standard or design best practise. This is especially true for developers new to Java web applications; maybe they come from .Net or PHP applications. And they have a different approach, they build many pages, and mix control and view. They don't know the concept of model. There are so many reasons. I have noticed it from passing from PHP or ASP or .Net to Java bring with them the habits they developed with those technologies, many of those are not suitable or not good in Java web applications. And the BluePrints help them to start in the right way. Having them as a template is really a good thing, because they can have the whole application ready very quickly, and look at the code, and look how things are put together.
What would you like to see in NB that isn't there? What are you missing?
Myself as a developer, nothing. I can't think of anything else I need from it. But, considering what one of my partners says—a module to develop HTML interfaces, conforming to the W3C accessibility standard. Maybe a UML drawing tool integrated. These are the first things that come to mind. One other good thing—NetBeans should have a project management system, mapping the Agile process to develop an application.
Any final words, Andrea?
We are really very satisified with NetBeans. For example, I taught in Bari in the south of Italy once, and they were using JBuilder, and I went to teach them with NetBeans to build web applications. I remembered that in NetBeans I can add static resource directories very easily for images and HTML files, and so on, with a lot of freedom, compared to JBuilder. I showed the students NetBeans, and they were impressed that you can access the file system and create folders for static resources in such an easy way.
Thanks a lot Andrea and have fun with NetBeans IDE 5.0!
Oh, I definitely will.