Serious technical limitations of proprietary languages.

loocas | 3ds Max,maxscript,Maya,opinions,Python,software,technical | Tuesday, May 13th, 2008

The more time you spend developing some more complex tools and code, the more you start appretiating all the open-source tools and add-ons you can get. Thankfully, Max and its MAXScript language is very widely used throughout the CG community, so, some times you don’t even have to start developing your own tools from scratch, you can get either the whole package from sites like ScriptSpot or at least build your tools up on somebody else’s script. However, there are certain limitations that even a huge community, such as the one Max has, won’t be of much help.

I’ve been recently doing quite a lot of R&D on XML, MySQL etc… in conjunction with Max and/or Maya and I constantly bump into obstacles when building the same code I did in Maya through Python, in MAXScript. The problem is, MAXScript is a proprietary language and therefore, you’re stuck with what you have. It’s a great, easy to learn and easy to master language, don’t get me wrong, but if you’re missing some specific features, you’re pretty much doomed. There are some extensions to be found on the net for MAXScript, but usually, they were done by a guy in similar situation you find yourself, but with extensive knowledge of Max’s SDK and C++/C# programming. I, unfortunately, have very limited knowledge of C++/C# programming and therefore I 100% rely on what I can find on the internet.

On the other hand, Python, for example, is an open-source scripting language. Very mature, very popular, ver widely accepted. This leads to a lot of individual, task specific, modules. So, in my case, recently, when I needed to write to or read from a XML file, I simply downloaded a PyXML package, read briefly the documentation, skimmed through some sample code and in a few hours I was able to write my own procedures to derive data from XML files and write them back to another XML. MAXscript doesn’t have any dedicated procedures/functions for such a task, so you either end up writing your own functions for this purpose, which is rather time consuming or you try your luck and try to search the internet for some already finished code, if there’s any. Same deal with the MySQL connection I was dealing with recently. Again, MAXScript doesn’t provide an extensive way of connecting to a database, it has an AODB object, which is quite limiting and a bit outdated nowdays. Thankfully, there seems to be a solution through dotNET objects, but I can’t use this method in Max prior to version 9 (you may not believe it, but I still prefer Max 8 nowdays ;) ).

So, as you can see, languages such as Python are really a smart way to write your tools in and based your pipeline around. Obviously, Python isn’t the only scripting language of this kind, but it’s very popular and widely spread. I also highly recommend it because of its simple syntax, yet robust toolset. A very smart and far-sighted move from Guido van Rossum, kudos!

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress | Theme by Roy Tanck