House of Hackers

mindcorrosive

Proprietary Software Bashing

Proprietary SoftwareI'm currently working on a project that, among the other things, requires some scripting on CATIA v5 (for those unfamiliar, this is one of the leading CAD platforms on the market). The CATIA thing is really powerful - besides the expected CAD functionality, it provides a lot of high-level conceptual design stuff that simplifies and boosts the development process.


Bashing mode on
The thing is, the API that it uses is the ugly abomination called #!@%. I cannot even force myself pronouncing the name. VBA! Okay, you got it. It's not even the .NET platform, with all the goodies of the managed code, version control, you name it. I am surprised that such a weak scripting language was used to build so complex environment. VBA [sic] seems to be kind of object-oriented, but you can't use polymorphism or method overloading, which kind of sucks, especially when you are building a library which is supposedly reusable. Yeah, all right, you get some basic class support, but that's not enough for the high-level programming I am doing. The only solution is rigid and disciplinary development practices - fortunately, something I'm good at.

Extending the bashing to CATIA:

The CATIA object model is.. let's just say that it can be used to scare little children with, you can easily count more than 100 deeply-nested classes, and several hundred available methods and properties. On top of this, the documentation available is appalling - examples are sparse or trivial, and some obscurely-sounding methods are so poorly documented that you consider yourself lucky even to find the number of parameters required for a method. Some "case studies" are provided, but boy, aren't they useless, using so sloppy programming practices, that my programming teacher would have me kicked out of the class right away if I dared to present him such a program.

Seriously, when one pays that ridiculous amount of money for licensing, one might expect slightly better support for the unfortunate third-party extension developers. On top of everything, some methods are not available through the API. Seriously, how come that I cannot use a GetCoordinate method for a point?! I mean, is there a more basic functionality than that in such an application? However, I am able to invoke much more complex methods that I won't be able to write on my own without some serious research. This is what really confuses me. They provide the API and some documentation for it, but for some unknown reason restrict the usage of the API for basic stuff. Now I'm left outside in the cold to try to figure out an efficient planar triangulation algorithm...

Summarizing the bashing:

Dear proprietary developers.. I understand that you have families to feed.. But please, consider the remote possibility that there are also some fellow devs that are trying to make a living off the platform you are building. A little more effort in documentation might be useful, and *please* take out the restrictions from the API, thankyouverymuch. And would you consider the possibility to gather together with other CAD developers from the competitors, and figure out an open common building platform, which is to be jointly supported by the companies, and allows in the same time some community feedback and contribution - I am the first to jump on the wagon if such an initiative launches, mark my words.


Image courtesy of http://www.flickr.com/photos/bm5k/ - Creative Commons Attribution-Noncommercial-No Derivative Works 2.0 Generic

Tags: cad, proprietary, software

5 Comments

fragge Comment by fragge on May 15, 2008 at 12:10am
I've experienced similar problems with many proprietary software sets myself, in particular Evolution.. One of the slowest, most restricting LMSes I've ever worked with - how on earth they became an industry leader is beyond me.. My own company's proprietary LMS is leaps and bounds above this asshat of an application, and to top it off, Outstart thought it would be a smart idea to build it within a web interface. As to your final point about CAD devs coming together to build an open platform - never going to happen, they aren't going to throw money out the door like that, but keep reaching for the stars :P I feel for your man.. No GetCoordinate()? LOL.
mindcorrosive Comment by mindcorrosive on May 15, 2008 at 5:25am
Actually, there *is* a GetCoordinate(), but when I try to use it, it bitches around for it being restricted etc. They keep the good stuff for themselft, the #@*%$#%.
mindcorrosive Comment by mindcorrosive on May 15, 2008 at 5:34am
about the open CAD platform - no one can stop us for building a community platform first, and then asking for serious commercial support. This have been done before (Linux first comes to mind), so the probability exists. Of course, capable CAD devs are far and between, and are usually paid their weight in gold in their proprietary company. Sigh...
fragge Comment by fragge on May 15, 2008 at 7:26am
Exactly. Money makes the world go around my friend.
OneDvorak Comment by OneDvorak on May 17, 2008 at 5:04am
Omg!!!

Add a Comment

You need to be a member of House of Hackers to add comments!

Join this network

RSS

About House of Hackers

© 2008   Created by Petko D. (pdp) Petkov on Ning.   Create your own social network

Report an Issue  |  Feedback  |  Privacy  |  Terms of Service