Not a good sign
Posted by aogThursday, 23 March 2006 at 10:48 TrackBack Ping URL

As part of my code slinging, I have a subscription to MSDN, the Microsoft Developer Network. It’s really a great deal if you do much work on Dark Empire operating systems, which I do1.

However, the other day I needed to get a product key from the Dark Empire’s website to install the Longhorn/Vista beta to run some tests for She Who Is Perfect In All Ways. I fired up Internet Explorer and tried to get the key. It was a comedy of errors, the primary one being that my session would “time out” every time I hit the key page. Finally, in a fit of desperation, I switched over to Firefox and voilá — no problems. Truly it is a bad day for the Dark Empire when I have to use some other web browser to access their content on their website for their product.

1 We are keeping out code base working under the Dark Empire C++ compiler and the GNU compiler and it’s hard to say which one is better. Each has it problems but with MSVC 7.1, it’s now a close contest as to which one is less annoying to work with. There is no doubt in my mind, however, that the Dark Empire development environment is vastly superior. I continue to be amazed at how primitive Linux based toolsets are when I have to use them.

Comments — Formatting by Textile
cjm Thursday, 30 March 2006 at 19:21

eclipse is heaven on a bun. c++ is a hideous language, you have my sympathies :P what’s your take on Java ?

Annoying Old Guy Thursday, 30 March 2006 at 19:38

I can’t stand Java. I tried it for roughly 4 months but just could not adjust. It was like programming with mittens on and, for personal reasons, I didn’t have the time to build the tool set I would need to use the language effectively.

I won’t say that I love C++, but it’s the only production language in which I can truly express myself. Odd as it sounds, I can be more self-referential and meta in C++ than in Java. I think it’s a dying language, though, because it’s a very sharp knife and the average programmer is more likely to cut off the limb he’s on than wield it successfully.

If I ruled the world, I would bring back Common Lisp and CLOS. I didn’t appreciate how cool those were at the time I used them, but I have seen the light since. At least I have Perl, which lets me get reasonably close to Common Lisp in expressive power (and I would without hesitation do any project in Perl in preference to Java).

cjm Friday, 31 March 2006 at 10:59

lisp is a beautiful thing, so i can see your liking that. but i am not sure why you can express yourself more effectively in C++ than the other. not trying to convince you one way or the other, just trying to get a better understanding of your views.

myself, i love java, the language and the eclipse ide. the syntax of the language is very C like, and all those supporting api’s allow me to concentrate on the “meat” of a problem. it took me a few years to really get into the oo mindset, and that’s when my designs and code really took off. when i have to drop down to C++ i write in a Java style (no copy constructors, all objects instantiated with ‘new’, etc). the place where C++ is nice is doing low level interactions with the host o/s.

with eclipse, i can navigate a code set easily, and it’s refactoring support means i do refactoring regularly :)

cjm Friday, 31 March 2006 at 11:01

oh, i have a theory about the primitiveness of linux tools. people in that community won’t pay for things (or are very hesitant) so you tend to get minimalist tools and environments to work in. look how long linux has had to come up with a desktop to compete with windows — and still isn’t there. there is kind of a fundamentalist attitude there too — awkwardness for its own sake kind of thing.

Annoying Old Guy Friday, 31 March 2006 at 15:46


Your second comment could be considered a key advantage of commercial software over Open Source. It’s interesting that despite the claims of the Open Source movement that it will produce superior products, commercial development environments remain clearly superior.

I can express myself better in C++ because it has more Lisp like features. For example, you can now do something much like mapcar. For instance, in Java, how would you take a list of type T and call the nested functions A and B on each element? E.g., A(B(T[i])) for each i? That’s a one liner in C++. I can write callback APIs that detect what methods are available in the callback object and adjust their calling convention to suit.

Oh, oh! I remember now the thing that made Java so incredibly painful — the lack of control over object lifetimes. That makes the “resource acquisition is allocation” paradigm (one I use heavily) impossible. For a language that alledgedly free me from having to worry about object allocation / destruction, I find I ended up dealing with the issue less in C++.

cjm Friday, 31 March 2006 at 19:31

ahhh, templates. they have recently been added to Java, but i confess i don’t care for the concept, personally. in java, before templates were added, you would define a generic interface for the types you want to call the functions against. but i can see how that would be worse than the C++ way, if you wanted template functionality.

controlling object lifespans is a deficiency in Java, and is unfortunately pretty deeply ingrained. another thing that is a really big pain, is that managing callbacks is a nightmare and causes all kinds of leakage problems (like those phony-fat potato chips used to :)

Annoying Old Guy Friday, 31 March 2006 at 20:56

Oooh, you can do such interesting things with templates in C++. The Java version is but a pale imitation.

Post a comment