Pro/ENGINEER: Old Is Gold

I prefer to think that I know a few things about the innards of today’s CAD systems. Over the past decade I have written plug-ins for a bunch of them – AutoCAD, Inventor, 3ds Max, Maya, SolidWorks, Solid Edge, SpaceClaim, Rhinoceros, Alibre Design, IRONCAD, INOVATE, SketchUp, Acrobat and over a dozen variants of IntelliCAD. Yes, I have done all these ladies. As programmers we get to feel them up and touch them in places that end users cannot. This is because CAD vendors need to expose certain parts of them by means of API’s (Application Programming Interface) so that we can plug our stuff into them. I must admit, checking them out has always been the most pleasurable part.

Today I began checking out Pro/ENGINEER. SYCODE recently became a PTC Partner and I am spending some time alone with Pro/E to figure her out. Actually this part of my plan of doing my due diligence with regard to PTC and it products and stop relying on what informed, or otherwise, people have to say.

If you ask me to describe Pro/E in one word, I would say she is old. But let me take two words. She is very old. Let me explain. You need to write Pro/E plug-ins using the C programming language. Not C++, but C. To give you an idea, C is a language that became outdated a decade ago. I started programming in C in my third year engineering, quickly moved to C++ and never looked back, till this morning. I eventually used Visual C++ 2005 to write my first Pro/E plug-in, but internally I had to create C functions, something I thought I would never have to do again in my life.

The API provided by PTC to third party developers is not an organized set of object-oriented C++ classes, like all the other API’s I have worked with in the past. Rather, it is one giant set of C functions that I spent a better part my day sifting through. To make it worse, the example code that comes with the API is next to useless for beginners because whoever wrote it has safely assumed that the reader has been developing Pro/E plug-ins for years. I finally had to make a tech support call to PTC India, the first programming related support call in my entire life, to help me get started.

Quite obviously, the reason for Pro/E still using antiquated code is due the fact that the company, and hence the product, is indeed old. But Autodesk is also an old company and AutoCAD 2010 has been written using the most recent version of Visual C++. In fact AutoCAD 2010 is the only CAD software I know that has been written in Visual C++ 2008. AutoCAD was rewritten in C++ more than a decade ago. So why didn’t PTC do the same? Well, because Pro/E still runs on Unix (the Sun and HP versions) and AutoCAD doesn’t. I am not sure what percentage of Pro/E users are running Unix. But I suspect it has to be a large number in order to justify PTC’s decision of holding Pro/E back.

As the saying goes, “If it ain’t broke, don’t fix it”. Pro/E may be old, but she certainly ain’t broken. Having said that, judging by their API, I get the feeling that the code that goes to make up Pro/E is going to be a nightmare to maintain, let alone rewrite. I may be wrong, but my guess is that if PTC buys a company, like it did CoCreate, or if someone buys PTC, I highly doubt that Pro/E will integrate or get integrated with another product. At least I would not like to be the one in charge of making such an integration happen. I would prefer to shoot myself instead.

When I was at PTC World in Mumbai, I asked a couple of top PTC technical people about direct modelling and whether we would see some in Pro/E. The reply was a straight “No”. “Our customers are not asking for it. And if they do, then we have CoCreate for them”, one of them told me. I think I now know the reason why. I don’t think she will be able to take it.

I am a programmer, not much of a user. So I am looking at this purely from a programming point of view. But looking from a user’s perspective, this old lady still has the moves. She is extremely capable and can even put some of these newer damsels to shame. I can’t say for sure but I think her aged anatomy is probably what makes her powerful. Pretty much like how good old DOS was lightening compared to today’s sexy and sluggish Vista. In the past couple of years I have noticed a sudden craze towards making software “look” good. CAD vendors actually count these pretty features as enhancements, and I am not sure why. And some of these so called “enhancements” actually end up slowing things down.

People have used Pro/E to design airplanes and cars years ago and as I see it, they will continue to do so for a long time to come. If you ask me I prefer her the way she is. She is like old wine. Putting her in a new bottle is not going to make much of a difference and I am sure PTC knows it.

After attending COFES 2009 this April, I will be heading to the PTC HQ in Needham, where I hope to meet a few people who know her far more than I do. I have only taken off her coat. There is still a lot more to uncover. If you want to enjoy the show with me, watch this space.