JDJ: Please describe your position with Microsoft and where Visual J++ fits into the organization.
HB: I'm the Technical Product Manager for J++. I'm responsible for taking a lead role in positioning the product, market research and demos. I'm also the main spokesperson for the product as far as working with the press and the public. I share responsibility for the product and product marketing with Farhana Ahmad. She is the Visual J++ business manager. She looks at the product more from a business perspective. She is responsible for things like pricing the product and advertising. She is also responsible for all the negotiations and licenses with other companies. We really share everything, so I help her and she helps me. It's a very constructive way to organize our team.
JDJ: Where is Visual J++ positioned in the Microsoft organization?
HB: It's one of the three primary language-oriented tools in Microsoft, the other peers being Visual Basic and Visual C++. We are part of the development tools group and I have to admit that in the last reorganization, I believe they named us the Internet Client and Tools Division.
JDJ: How did Microsoft get interested in Java and decide to pursue its own Java development environment?
HB: It really started in the summer and fall of 1995 when Java started being seen as the way to make contact with the Web. It sort of bubbled up through the organization. I remember that somebody came to me from the documentation group and said, "Hey, I just saw this language called Java and it looks really good to us." I worked in the C++ group at that time and they said it looked like a great language for learning object-oriented programming and that it might really help some of our C++ people learn object-oriented programming.
One of the great benefits of Microsoft is that it is still very entrepreneurial. Our people liked the technology and since a lot of our managers are still very interested in exploring new technology, we said, "This is a great language and since it also has some cross-platform benefits, we should look into what it will take to adopt it." So, even as early as the fall of 1995, we were seriously looking at Java.
JDJ: There has been a lot of concern over the compatibility of Visual J++ and Sun's Java.
HB: Compatibility is a very simple thing. We are 100 percent Java compatible. Code created by Visual J++ will run on every Java virtual machine, whether it is on a browser or on an operating system. We are also committed to supporting the cross-platform benefits of Java and JDK 1.1 now and in the future.
JDJ: What have you put into Visual J++ that is not found in the JDK?
HB: We have made no changes to the Java language whatsoever. We do allow extensibility with ActiveX. ActiveX and Java work very well together because of the similarities between the Java language and the ActiveX interface specifications. It brings a couple of different benefits to Java programmers. They can leverage the code that they have already written by integrating ActiveX or COM objects into their Java programs and they can also write reusable ActiveX components in Java. I'll talk about both of these in sequence.
Unfortunately, we've done a horrible job of communicating the benefits of ActiveX and that is probably my fault. When people think about using ActiveX components in Java, everybody thinks about a control. You can take an ActiveX control, import it into Java, and, because of the way we do it, there is no change to the Java language. You can use it just like any other Java class and it is both seamless and easy to use. Programmers don't have to worry about what language the other component was written in.
Everyone thinks that by using a control which is some ActiveX component and which is almost always Windows-specific, they have broken the cross-platform nature of Java. It will break the cross platform nature of Java in almost every case, but what ActiveX brings is a better way to get at native code. We know from our research that a majority of Java programmers need to access native code. We see them doing it with ODBC, for example. More people access ODBC directly through JNI or RNI than they do using JDBC. In that case, they are going in through native code and it's not exactly easy to do. What they can do is use DAO (Data Access Objects) or RDO (Remote Data Objects), which are very popular object models, to get to ODBC. They can get a lot of the benefits that Java programmers are used to getting. First, when you import an ActiveX component, you work with it just like any Java class. The second thing you get is all the garbage collection that you get with Java, so when you are done using the object, it automatically gets released. Third of all, you are working with a very familiar object model. There are literally millions of Visual Basic and Visual C++ programmers out there who are very familiar with both the RDO and DAO object models. It goes beyond specific databases. There are a lot of business objects out there that have common interfaces to them. You can use these objects without having to rewrite them in Java and still get these different benefits.
When we look at the market, we don't see a lot of Java applets that use ActiveX controls, but what we do see more and more is three-tier Java applications where the client side is 100 percent cross-platform Java but where the middle tier does use the controls because they have to access native code in order to get information out of all these existing systems that were written in other languages. People there are not using JNI, for example, but are starting to access things through ActiveX. This actually benefits the people who are using an ActiveX component from Java.
The flip side is that this capability has been available ever since VJ1.0. Everyone has the ability to create an ActiveX component in Java.... It was just yesterday that we launched the Visual Studio Suite of Tools and Visual J++ 1.1 is part of it. We added a new ActiveX Wizard that helps people turn any Java class into an ActiveX component and we have a really nice little demo where we have a Java applet that calls a Java package and the Java package has a set of business rules in it. It, of course, runs cross-platform just like any other applet, but then we take the business rules and we turn them into an ActiveX component. Now we can use those business rules and call them from Visual Basic using Java code. I don't know how many products can use ActiveX controls: everything from Delphi to PowerBuilder to Visual Basic to Visual C++, the list goes on and on. There are many areas where you can use an ActiveX component, but what is really wonderful is when we take a Java applet which calls the Java package that has an ActiveX component but still runs cross platform. We haven't broken the nice cross-platform capability of Java. What we have done as Java programmers is leveraged the investment they are making in Java.
JDJ: Have you seen people do this in the industry now?
HB: It depends on when your article hits. One I know of is Southern Company Services They are making ActiveX components and using them on actual server pages in Java.
JDJ: Could you talk about your new debugger?
JDJ: Aside from the debugger, what do you see as the real strengths of Visual J++ over the other development environments?
HB: Fundamentally, we have one of the most comprehensive products on the market. It covers a whole range of capabilities. You know that we are very proud of our debugger. Our compiler is the fastest on the market with 10,000 lines of code a second. There is a real productivity benefit in having a compiler that fast. With a lot of people coming into the Java market now, a fast compiler really helps them because they don't have to sit and wait a long time for the compiler before they can test their applet. We have also done a lot to help Java programmers learn the language. That is something that a lot of people don't look at when they are doing reviews, but for individual programmers it is very important. For example, I spent a lot of time in the C++ group looking at how people are learning C++ and object-oriented languages. and we took that knowledge and brought it into Visual J++. An example is that people want instruction at the right time and in the right form. When people are first learning a language, they need conceptual information. They need it in a printed form where they can sit down in bed and read through it and understand it. We include a 300 page book, Learn Java Now, that covers the fundamentals of Java programming. Once you start programming, you need to have information at your fingertips, whether you are just learning or whether it's 3:00 am and you are trying to figure out a problem that you have hit. Our documentation is linked directly into the product, so if I'm programming and need to know what a key word does or a class does, I can just click on it, hit F1 and it takes me right to the definition of what it can do. In fact, we integrated the Sun documentation that came straight from James Goswick, so if somebody wants to know what a specific class does, they are getting James Goswick's definition of how it works.
JDJ: What is your relationship with Sun at this time?
HB: Well, it has two different levels. As you can see, we are competing companies, but what people don't realize is on a technical level and on a personal level, there is a lot of cooperation going on. It's really a win/win for both companies in many ways, especially with regard to the Virtual Machine. Microsoft wants Windows to be the best place for people to run Java code and similarly Sun wants Java to run on Windows. There has been a lot of cooperation and I think that it has paid off. The Microsoft Java Virtual Machine and Internet Explorer have all been benchmarked for stability, performance and capability compared to all the other Virtual Machines on the market. We are very proud of that. We are doing a lot with Visual J++ and are bringing a lot of new capabilities into Java programming today.
JDJ: What additional advantages do you see Visual J++ having over your competitors?
HB: The things we have talked about and especially the ActiveX integration are definitely strengths compared to our competitors. What we are seeing more and more is people creating Java programs that run real applications as opposed to the original applets that were more like dancing hippos on Web pages and stuff like that. Now we are seeing people create applications that access data, use business rules and access a company's existing knowledge base. Companies can now integrate those applications with their existing systems and Microsoft is providing a clean and productive way for them to do it.
JDJ: Does Microsoft work directly on clients' commercial Java applications?
HB: Yes, we do it all the time. As a matter of fact we are, and this is surprising to a lot of people, the most used Java development tool on the market today. We ran a survey about a month or two after we came into the market and we already passed all the other competitors who were in the market before us. A big chunk of Java code that you are seeing out on the market today is Visual J++ code. One good example that I know of is Instant Sports. They make a great baseball simulation. They actually track baseball games live on the Web. Instant Sports tracks the game as it is played and you can actually see the game on your screen. You see the ball fly off to left field. You see the individuals run across the field. How they actually coordinate all that's going on in the game, I don't know, but it is really a spectacular application. There are a number of other baseball-related applets that StarWave has created that are also written in J++. Some of the leading ISVs use Visual J++, including DimensionX. They have some really top notch Java products including Liquid Motion and Liquid Reality.
JDJ: Do you see Microsoft as the dominant player in the Java development market?
HB: I see us as a leader in the Java market. I think that Java is so new that there is a lot that will be added to Java in the future. Microsoft will remain a leader in the Java tools market and the Java market in general. Java is growing and there is room for multiple players to really make an investment in Java and add value to Java. Microsoft is doing that right now with our Virtual Machine and the new application class libraries that we have developed with Visual J++.
JDJ: Could you describe some of the visual and object-oriented advantages of using Visual J++?
HB: Sure. Just to start off, the object-oriented aspects of Visual J++ were derived from Java and we do things like have our class view browser support the object-oriented features of Java. Our class view lets people look at their Java classes just as they think about them, as related classes and properties and packages. As for the visual components of Visual J++, we have most of the same capabilities as the other tools as far as having a visual debugger and things like that. When most people think of visual aspects, they think of such things as the forms editor. We have the same forms editor as Visual C++ and a lot of people are very familiar with that.
We also have a resource wizard which allows people to take Windows-specific resources and convert them into Java. This is a nice benefit because a lot of people out there have Visual C++ programs they want to turn into an applet or a Java application for distribution. They want to work with the same code base and leverage what they have already coded while maintaining the same user interface for their customers. This is a nice tool for doing that. A lot of people don't recognize the benefits that we are bringing to the industry by letting people leverage their most important asset, which is their existing code.
JDJ: Are you saying that Visual J++ can take a C++ program and turn it into Java without any problem?
HB: They can take the user interface of a C++ program and convert it into Java very easily.
JDJ: What types of additional training are available for Visual J++?
HB: It's two-fold. I've talked about the comprehensive user information that comes with the product in the form of the book and context-sensitive help. Outside of the product, we also have a lot of support. We have trade shows, tech ads and professional developer conferences where there is Java training available. We also have a Mastering Visual J++ computer-based tutorial that is coming out. We have a number of different training firms and seminars to help them set up programs for training people in Java and Visual J++
JDJ: You spoke about Visual Studio 97. Do you see this bundling of languages as having the same success in the development market that the Microsoft Office Suite did in the desktop applications market?
HB: Yes, I do. I think that it really provides a lot of benefits, especially to Java programmers. It's a great way to buy Visual J++. We found that 90 percent of Java programmers program in other languages, especially Visual C++ and Visual Basic. This gives the programmers a nice way to work with all the languages together, using a common interface and providing a lot of cost benefit. Visual Studio provides a good set of tools for a wide range of developers.
JDJ: In your own promotions, how are you targeting Visual J++ ?
HB: We haven't targeted it at a particular market. What we are looking at is really the level of experience of the Java programmer. Whether you are an experienced, professional programmer, or whether you are new in the market, you are both very important. We designed the product with regard to what a professional developer really wants to accomplish. We also recognize that the vast majority of people coming into the Java market today are new or just experimenting and learning. We feel that it is critical to our success that those people get the kinds of information and support they need to pick up the language quickly enough to be successful and be productive. A lot of these new people coming into the market are also very price sensitive, so we price our product so it is not a huge burden for them to buy.
JDJ: What are the next enhancements for Visual J++?
HB: I think that the number one thing that people are interested in for Java are connections to existing systems, especially databases. People are very unsatisfied right now. We are looking at where people are stumbling when they create Java applications, what do they need improvement on and where we should be focusing on. As far as database connectivity goes, we are looking at whether people are going through ODBC or native. Our goal is to really understand our customers, look at what they need and provide it. That is one of the reasons for our success at Microsoft: the amount of time and effort that we spend looking at what our customers need to do their jobs.
JDJ: What is the best way for developers to provide feedback to you on what they want to see in Visual J++?
HB: Go to our Web page. There is a short questionnaire and at the end is an open area where people can say whether they want to be on the beta program or comarket an application. Any ISV who wants to work with us can contact our developer relations group..
JDJ: Are you in beta testing for the next version of Visual J++ yet?
HB: We are very close to it. We've really moved toward the concept of a public beta because our initial beta for 1.0 was so overwhelmingly successful. We had over 150,000 downloads and the feedback was incredible compared to a normal product beta. Right now, we are really looking at a small private beta of some very rough alpha code and then, as soon as we have a stable product with features that people can actually experiment with and use, we'll get it out in a public beta on the Web.
JDJ: We like to end our interviews with a look behind the scenes. What is the Visual J++ development group like?
HB: This being Seattle, it's got great culture and we have a lot of people who are interested in the arts. There are also a lot of our people who are interested in the outdoors. Farhana, myself and some of the other key people on the development team go hiking every other weekend together. We are really a very small team. We are very closely knit and it's been one of the most positive experiences of my life working with these people on Visual J++. We only had about fifteen developers and, when you bring in program management, quality assurance, etc., we only totaled some thirty to forty people when we worked on version 1.0.
Our development team was just awesome. You have to realize that we really started development of Visual J++ in January of 1996 and six months later we had an incredibly solid beta up on the Web. After a few months, we put the product out in final form and we were selling it. Now we have launched Visual J++ 1.1 and we have been working for several months on the next version of Visual J++. The pace of development for the team has been incredible.
JDJ: Is there anything else that you would like to add?
HB: We just want people to realize that we are creating 100 percent Java compatible code and that Visual J++ is a great development tool for creating cross-platform Java applications. Microsoft is totally committed to supporting cross-platform Java and we are also totally committed to innovating in that area with the application classes. We are also totally committed to giving programmers the choice and the capability to create full powered Java applications or full powered Windows applications that can be written in Java. That is very important to us.