what language to learn for XSI?


hi everyone. i would like to know which language to learn to get good hold on XSI and what is the good source of learning it? + what other software skills will be handy?


i know English will be very important.

i meant computer language.


That would depend on what you want to use the language for. The sdk for instance uses c++ I believe. If you talking about writting scripts then you can choose between vb script, java script, and python I think. I too am interested in what would be the pros and cons between those.


I too am interested in this and I’ve already looked at quite few XSI scripts and the majority, well all of them used VBScript. I personally prefer JavaScript syntax ( or JScript in this matter ), but since the logic is all the same it doesn’t really matter what language you use at the end. Just something you feel comfortable with. But obvisouly I’m not in a position to give a qualified answer yet - just guessing here :wink:


the SDK on the outside is only one (that’s the really nice thing about it, scripting or compiled, or whatever language you use doesn’t really matter, you always deal with the same conventions, structure, names and possibilities).

for scripting any language with an active connection can be used.
this means in windows you can use VBScript, JScript (that is NOT Javascript altho staggeringly identical in almost every aspect to make the difference negligable), Perl and Python.

In linux all of the above except Perl, because there’s no activeperl out there for linux.

for compiled you can use C++ or VB (not to be confused with VBScript).

for proper compiled work, unless you already know VB really well and can’t be arsed learning something new, I’d suggest C++ without hesitations.

scripting wise VBS is quick and dirty, incredibly easy to learn and with no limitations of any kind.

JS is cleaner and overall a better language and perfectly implemented, its popularity is growing by the day (finally it’s well illustrated in the docs) and the only limitation is how it (doesn’t) handle arguments passed by reference, but Softimage included in the SDK double methods for every object that needs that, so it’s a no brainer.

Python is the best of them all language wise, very elegant, modular, the activeconnection is handled by Softimage itself, but it’s still very young.
this means very little public source/examples, some glitches or limitations here and there, and an overall not staggering fast execution.

if you want to learn scripting only on the surface go for VBS, if it’s only the first step toward becoming a TD go JS.
Python is better picked up only after you had a chance to learn how to handle the SDK through a more proven and better implemented language.


Personally, if I would be new to scripting languages, I would pick Jscript/JavaScript over VBscript for XSI. JavaScript is based on the ECMA standard, and this is used in other applications as well, Flash ( Actionscript ) and now Director as well, scripting in Photoshop and AfterEffects is in JavaScript and learning the syntax of JavaScript might help you a little bit to get into C++ / C# later on, since you will get used to using {} braces etc.

As Jaco said it’s just a “cleaner” language. Even if you don’t intend to learn C++ in the future, it’s still better to start with JavaScript, since it’s used in AfterEffects and other applications.


Thanks for the topic&replies :]

I’m getting sad mood while I reading this thread because of that began to coding is my very silly side. I will buy a book for python learning asap. Thanks for fuel :]

I hope Python’s future is brighter than I think.


Hi Raffaele, again, not that I like to argue with you, you’re definitely more knowledgeable than me, but my experience is different on some aspects than yours.

>>> Python is the best of them all language wise, very elegant, modular, the activeconnection is handled by Softimage itself, but it’s still very young.
this means very little public source/examples, some glitches or limitations here and there, and an overall not staggering fast execution.

Ouch. That one I couldn’t disagree more. Python is at least 10 years old, so we can’t really speak of new langage. The active connection is not handled by Softimage (well, it is on Linux but not on Windows), but by an external module. There are countless examples and ressources on the internet, in fact, infinitely more than I could find for JScript. Glitches and limitations are mostly because the code is executed in the XSI interpreter, but I guess the implementation will improve with new releases of XSI. Execution is, well, again in my experience, quite a lot faster than JScript.

Actually I’m still Python beginner, but I wish I wouldn’t have wasted my time with JScript and started with Python first. Although, as I said, minor implementation thingies, there are only advantages to use Python imvho:

  • Free ressources. Just starting by looking at www.python.org gives you an idea.
  • In most Linux magazines, there are Python code examples for all kinds of things.
  • Mailing lists, conferences, books (lot more than JScript)
  • Super stable compared to MS langages
  • Tons of free modules and functionalities, it’s staggering. I’m currently rewriting in Python a script that I originally wrote in JScript, and what took 100 lines in JScript takes barely more than 20 lines in Python (I may be exagerating but you get the point) for various reasons. It seems that there is a module for anything you can imagine.
    • Standards. Python is all about conventions, so you can be sure that you are always able to understand the code.
    • Ultra-compact and modular syntax. It’s amazing how much you can do in a single line of code.

Personally I would recommend to start immediately with Python, as it is a true programming langage, and it highly non-platform dependant, and as I said ressources are a lot more abundants than the VBS and JS ones.

Anyway feel free to flame me if I said irrelevant things!



my take on python was in its implementation in XSI.
the usability, the link with linux, the addition of some examples in the docs and everything are more recent then the other 2 main languages.
actually Python itself is from the eary ninties (90 or 91 I think), so it’s way older then 10 years, but it didn’t have much of a following until the late 90s.

the active module for linux has been taken care by Montreal hiring the same guy that wrote the one for windows.

as for which is a better language you know I agree that python is a wonderful language (altho performance wise both me and a couple of colleagues found it way less responsive then vbs and js, maybe you are finding out that you can write more responsive code in python then you could in JS), but while you can find tons of documentation for python, and a lot less limited then the one you find for JS (which is mostly web dependant), you are forgetting that to write for XSI you need to learn both the language AND the SDK.

to learn the SDK looking at source and docs is the only way to go, and finding those for python is still really hard.
by now you are already confident with it because it’s now a while you are scripting, but what if you were to find completely separated learning paths when you first started learning a year and some ago?

I don’t disagree with you at all, my take on it was in XSI terms, yours is very valid in more abstract terms.

the only thing I agree to disagree on is starting with python right away.
I have some teaching experience on scripting, and 90% of the people I trained got completely lost without language contextual examples to learn from.

feel free to argue with me without apologizing everytime mate, I don’t mind discussing something with people when they have a clue, and I’m not always right for sure :slight_smile:


Well, about the examples in XSI, you are 100% right. Although it’s probably the next big thing, there are still far too few examples, and it’s true that because of my experience with scripting I can retrieve the information I’m looking for a little bit faster than a total newbie.

That said, I still think one should learn Python. However, the thing is that before getting into XSI I wanted to familiarize with the langage itself, wich I did, so when you get in XSI you just wonder about the implementation (things like constants, null values, the environment), not what to do with the langage. Any module available in Python is also available in XSI, wich is awesome, and porting your code from the Python interpreter (wether it is IDLE or PythonWin) is done in a breeze.



This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.