July 2002 Archives

Glen Gillmore

AddThis Social Bookmark Button

Related link: http://zdnet.com.com/2100-1107-946250.html

Top ten reasons why Microsoft is a good citizen

To me, the discussion connected to this ZDNet article
was more interesting than the top 10 list itself. I’m wondering if it is even possible for Microsoft to earn redemption and be seen as an honorable company in the future. Or, has history spoiled it forever in the hearts
of those who currently rate their opinion of Microsoft as less-than-favorable?

Can Microsoft earn redemption and regain trust? Yes or no? How or why?

Glen Gillmore

AddThis Social Bookmark Button

Related link: http://www.theregus.com/content/4/25711.html

The GIF patent discussion is hardly new, but it still seems tricky. Even though Microsoft obtained a license under the "http://www.unisys.com/about__unisys/lzw/">Unisys LZW patents in 1996, that license doesn’t extent to developers using their toolkits. Recipients, users and distributors of hardware or software
products containing LZW conversion capability are cautioned by Unisys.

So now comes JPEG. Forgent Networks recently issued this following statement as part of a "http://ir.forgent.com/ireye/ir_site.zhtml?ticker=FORG&script=410&layout=-6&item_id=314044">larger news release:

“Forgent has the sole and exclusive right to use and license all the claims under the ‘672 patent that implement JPEG in all “fields of use” except in the satellite broadcast business.
Forgent’s “fields of use” for licensing opportunities include digital cameras, digital still image devices, personal digital assistants (PDA’s), cellular telephones that download images, browsers,
digital camcorders with a still image function, scanners and other devices used to compress, store, manipulate, print or transmit digital images.”

To make things even more exciting, The Register has a terrific article and interview:

“The ISO standards body will take the unprecedented step of withdrawing the JPEG image format as a formal standard if Forgent Networks, a small Texan company, continues to demand
royalties on a seventeen-year old patent.”

My guess is that this patent will be challenged, and I’ve seen a few people comment that they’re ready for Forgent to come after them. I’m not particularly
wise in this area, but I do like to avoid hassle every now and then. Even if these formats aren’t interchangeable, I may be considering a move to PNG when possible.

AddThis Social Bookmark Button

I was teaching Visual Basic .NET last week and I jokingly made the following statement about intellisense: “I believe that without intellisense .NET programming would not be possible.” I said that after typing something in the order of System.Runtime.Serialization.Formatters.Binary.BinaryFormatter, which caused a few students to chuckle and say, “There is no way I will ever remember that.” I told them that the only way I remembered that was because of intellisense. I had memorized System.Runtime and intellisense helped me remember Serialization, then Formatters, then Binary, etc.

I was joking at the time but then I started thinking about the statement. How successful would a class hierarchy in which classes are buried five namespaces deep be without features like intellisense and the object browser? Don’t take me wrong, I love the way the classes are grouped in .NET and namespaces are definitely a good thing, but would we be able to be productive without features like intellisense, the object browser, and even dynamic help to a certain extent?

Let’s go back to the days of the win32 programming. How did we know back then the name of the right API to use? I think in those days I relied heavily on the sample code and the help files, and just text searches. I remember opening header files and searching for anything that had a keyword remotely similar to what I was looking for. But being able to find the correct function to use in those days, using only the index in the help and text searches, was only successful because the function names described the purpose of the function in one phrase. Take for example a fictional function like SerializeWithBinaryFormatter. I might have been able to find such a function if I had searched the header files for the key words Serialize and Binary. With object-oriented class hierarchies functions are often named more simply like Serialize. However, a quick search through the object browser reveals that there are at least 40 versions of “Serialize” and that is not taking into consideration functions that use Serialize as part of a bigger name. Take a word like Open. If I did a search in the object browser for anything that contained the word Open I would probably find hundreds of entries with that word. How could I find the class name that contained the particular Open I wanted?

This train of thought made me think about the role of the features in the IDE, not only in relation to productivity but as things that make the language itself successful. Take for example Visual Basic. I would say that the IDE played a tremendous role in the success of the language. The form designer made it possible for us not to have to remember fifty or so API functions. So the form designer was a good thing because it enabled a developer to represent API functions graphically, but is the form designer part of the language or is it a feature of the IDE? Could VB have been successful without it? Suppose that the form designer had been a wizard instead that generated source code for creating a window. I remember back in the old days, Quick C for Windows. Quick C had a wizard that enabled you to design some aspects of a Window and would then generate some source code to replicate the Window. Now this was, as far as I remember, one-directional. Once you generated the code, if you modified it, there was no way to get back a visual representation. As great as the Wizard was I never used it much because it was only good at the beginning of the app and only really for learning purposes. In the very least the wizard needed to be bi-directional. The form designer in .NET is primarily a code generator, but it is bi-directional. If you change the code, the changes are reflected visually. But it is the code that really creates the form, not the visual picture. In fact it is possible for a developer not to use the visual designer at all to create forms. The question is, is this the same as the form designer in previous versions of VB in which the only way to construct the form was visually? How many developers are going to create rich forms without a visual designer and is having the code available really an advantage? Let’s take another small feature. In VB 4 through 6 if you wanted to create a class, you asked the IDE to add a Class Module to your project. The IDE would open a window for you to type in your code. The IDE window represented the class itself. One IDE window was equal to one class. Now in VB.NET you can write as many classes as you would like in a single file. The question is, is this a good thing being able to write many classes in a single file? I think that we do not understand the relationship that the IDE and the language have at times and we focus on the written language as though that is the primary source of productivity and consider IDE features as merely frosting on the cake. What do you think?

Do you think the IDE is really that important?

Glen Gillmore

AddThis Social Bookmark Button

Related link: http://www.cw360.com/article&rd=&i=&ard=113969&fv=1

For users and companies who are relying on VBA macros or other customizations built into Word, Excel, etc., they might have a significant reason to stick with Microsoft. Plus, there are the external applications that use the MS Office Object Models, creating a dependancy on MS Office for anyone that wants to use that application. In either case, the ability
to use existing bits from Microsoft may save enough in development costs to justify maintaining the status quo. CW360.com offers more thought on this issue.

07/12/2002 - As noted in the comments below, there is API and macro functionality with OpenOffice. For more information take a look at http://api.openoffice.org/. On the ToDo list is a wrapper for Microsoft-Office API emulation.