Jump to content
Overload

Which Scripting Language To Learn?

Recommended Posts

Well the title sums it up. I'm new to the scripting and programming. I'm not sure where to start or what language to begin learning first, C, C++, Perl, Python?? I have renderman classes comming up in the Fall, so I want something that will help with that, as well as Houdini of course :). Thanks.

Share this post


Link to post
Share on other sites

Python would be my suggestion. It can be used in a very simple linear way all the way up to fully Object oriented approaches and will give you a good grounding for all other languages and be useful along the way too.

Share this post


Link to post
Share on other sites
Python would be my suggestion. It can be used in a very simple linear way all the way up to fully Object oriented approaches and will give you a good grounding for all other languages and be useful along the way too.

28442[/snapback]

Have you used any book on python or just online resources?

Share this post


Link to post
Share on other sites

I'd like to second/third the python nomination.

Certain aspects of python drive experienced coders a little batty (try the simple example of executing 4/3 -- what the hell?!?), but for my dollar, nothing beats the readability...

compare a block of python code to a block of perl code (i'm generalizing of course), and you'll very quickly realise how crucial that can be.

Cheers,

G

Share this post


Link to post
Share on other sites
I'd like to second/third the python nomination.

Certain aspects of python drive experienced coders a little batty (try the simple example of executing 4/3 -- what the hell?!?), but for my dollar, nothing beats the readability...

compare a block of python code to a block of perl code (i'm generalizing of course), and you'll very quickly realise how crucial that can be.

Cheers,

G

28447[/snapback]

I think that python is very used along many vfx houses so is a great choose.

But, Keyframe, compare a block of python code with a block of Ruby code, sorry there are languages that beats python in readability :) (At least for me)

Avoid to begin with Perl is full of hacks and is not consistent and homogeneous, I think that Python and Ruby are good choices.

In fact Ruby is very popular too in some vfx and animation houses like Pixar for instance.

Share this post


Link to post
Share on other sites

Awesome, thanks guys. Happen to have any good online resources for Python, or is just buying a book the best route?? Not knowing much about code/scripting I assume that once you learn one language, the rest should be fairly similar? Thanks again for the replies :)

Share this post


Link to post
Share on other sites
Awesome, thanks guys.  Happen to have any good online resources for Python, or is just buying a book the best route??

28450[/snapback]

Personally, I think it's a good idea to have a book for reference and for introductory material. Most people I know who are just starting out find having a book next to them while programming to be really useful. Perhaps later on you will start to rely only on online references, but a book is a good thing to have nonetheless.

As for online material, this is a pretty useful sidebar for getting information quickly:

http://projects.edgewall.com/python-sidebar/

Not knowing much about code/scripting I assume that once you learn one language, the rest should be fairly similar?

28450[/snapback]

Learning other scripting languages and other programming languages in general becomes much easier after you master one language. Sometimes it'll just be learning new syntax while other times it may be learning new concepts like if you get into functional languages like Haskell, but for the most part, the concepts you will learn from Python or Ruby will carry over to other languages very well.

Hope that helps a bit. Good luck! :)

~megalith

Share this post


Link to post
Share on other sites

Yes that helps alot thanks :). Got python up and running, and so far doenst seem to be all that bad... I guess the few months exerience writing and using expressions helps a little :)

Share this post


Link to post
Share on other sites
Well the title sums it up.  I'm new to the scripting and programming.  I'm not sure where to start or what language to begin learning first, C, C++, Perl, Python??  I have renderman classes comming up in the Fall, so I want something that will help with that, as well as Houdini of course  :).  Thanks.

28438[/snapback]

I have to agree, Python is probably the one to go with. It's really straight forward and great fun to work with.

I started my foray into scripting/programming by taking a couple C and C++ courses. I found the curriculum tough, but after I took those courses all other scripting languages became a breeze. The other thing that was great about taking those courses was I learned a lot about how the computer worked, things like the precison of floating point vs integers, memory alocation etc.

luca

Share this post


Link to post
Share on other sites
I have to agree, Python is probably the one to go with. It's really straight forward and great fun to work with.

I started my foray into scripting/programming by taking a couple C and C++ courses. I found the curriculum tough, but after I took those courses all other scripting languages became a breeze. The other thing that was great about taking those courses was I learned a lot about how the computer worked, things like the precison of floating point vs integers, memory alocation etc.

Thanks luca...so how similar is Python to C and C++?? I have read a few places that its better to learn C++ before C, im just wondering how it all ties together... But so far, I seem to be getting along with Python, but ive only been at it for a few hours :). Cheers

Share this post


Link to post
Share on other sites

Hello, I am probably should be silent about my opinion as I am not a programmer...

Python is a interpreted language while C/C++ requiring the compilation for specific machine. In that respect, both are pretty different. However, the language structure, I find, is very useful in learning C++'s OOP concepts. In this regard, as well as most of the basic programming principles, shares the same concept. After you learn about 2 or 3 languages, I think you'll find that most modern and popular programming languages have a pretty common logics -- only different functions and different way to solve a problem. For example, at some point, I was having somewhat of a difficulties understanding why some of the pointer structures and objects are the way it was designed. But, after learning Python, somethings about C++'s OOP concept clicked in my head. Python is actually an object-oriented scripting language. You can actually get python to perform at "near" C/C++ speed, but it still can't match the performance you'd get out of C/C++. Couple other nice thing about Python is that you won't have to deal with pointers or garbage collections etc, so I think you'd have to be deliberate at getting things like memory leak.

I definitely liked python to deal with the pipeline stuff, however, I still like perl in doing quick and dirty code and regular expression. Every now and then, I'd use a command line perl to parse strings within Houdini. I think that at the end of the day, you might want to ask yourself what do you want to do with it, etc. But I am sure you already know that. :)

Hope this helped.

Alex

Share this post


Link to post
Share on other sites
Thanks luca...so how similar is Python to C and C++?? 

28463[/snapback]

python and C++ are quite simliar. The big differences Alex already touched on.

When I first started using python I would just say to myself "how would I do this

in C++?" my answer was always pretty close to the python solution.

That being said I find C++ way harder than python, but that might be because I've used

one more than the other.

I have read a few places that its better to learn C++ before C

28463[/snapback]

C++ started as an extension of C's functionality that eventually developed into it's own

langurage. C++ can do everything that C can do and more.

When I took my first C course I was actually using a C++ complier.

If I had the chance to do it all over again I'd have just taken a couple of C++ courses (unfortunatly my university made me take the C courses first).

All the best

Luca

Share this post


Link to post
Share on other sites

Hey Thanks Alex and Luca...

I figured that learning at least one language would help me out not only in Houidni, but also when I begin these Renderman courses. Being that I'm on the final stretch of my Masters degree, I think its time to crunch down and begin learning them (i wish i had gotten my undergrad in Visual Effects and not animation). I tried to read up on some of the renderman stuff, and just found myself completly lost. Hopefully after I get a good grasp on the programming it will help alot. Thanks again for responding and answereing my questions. :)

Anthony

Share this post


Link to post
Share on other sites

If you wish to work in Visual Effect you MUST know very well a view programming/scritping languages. There is no other choice. Python as was said previously, c-shell as fast as possible, at least some basics of c/c++, then MEL, RSL, VEX, hscript, and so on, so on... Very soon you'll find your self without hands if you won't be really familiar with code.

Good thing about Python (as Perl) is that so many things were done in it and enclosed in modules, so very easy, with a few lines of code you can prepare really nontrivial applications. Also extending python with C/C++ is quite easy (as long as there is no tamplates, garbage collections etc in it.). Python is a language of choice not only in VFX industry but even more in academic physical science society. That's why it's so easy to handle (not only to learn but to write, extend, read, fix etc etc) - well, it's hard to expect from scientist to have first class coding skills, he performs research not programming...

What I wanted to say, is that you won't have "market value" as VFX animator, TD or whatever if you will be just familliar a bit with coding. Prepere yourself on much deeper contact with that stuff ;)

Cheers,

SY.

Share this post


Link to post
Share on other sites

Erm..... Not that I am against learning scripting/programming, but... I know people who don't know a jack about programming in fx departments, but produced some of the most fantastic imagery or solve some of the mind-boggling problems in Houdini without programming.

Share this post


Link to post
Share on other sites
Erm..... Not that I am against learning scripting/programming, but... I know people who don't know a jack about programming in fx departments, but produced some of the most fantastic imagery or solve some of the mind-boggling problems in Houdini without programming.

28505[/snapback]

ORLY?? :o

This give me some hopes to get into fx side.not that I don't want to learn scripting/programming but my brian is just slow. :P

Share this post


Link to post
Share on other sites
Erm..... Not that I am against learning scripting/programming, but... I know people who don't know a jack about programming in fx departments, but produced some of the most fantastic imagery or solve some of the mind-boggling problems in Houdini without programming.

28505[/snapback]

well, as we all know Houdini is an exeption :). Good, skillful and artistic talented fx animator with Houdini on screen can do beautiful stuff witout programming. That's houdini. But working on Maya without MEL is impossible (on some level of competense), right? Add to this RenderMan or even worse MentalRay... which needs advanced c++.

Well, read anouncements (concerned also houdini artists) on PDI, SPI or whereever:

Fx animator job board:

"

* Designs & creates images, elements & effects

* Responsible for coding & providing support & documentation for tools created"

etc etc.

or as you wish:

"Designs and creates the look and production methodology for computer generated FX animation and dynamic simulation of cloth, fur and hair. Designs and creates images, elements, effects, pipelines, tools and techniques for digital visual effects. (...)Knowledge of applicable software packages including Houdini, Maya and Renderman required. UNIX and scripting ability in relevant languages including MEL, Perl and Python highly desirable. (...) Bachelor's degree in computer science, engineering or computer graphics."

ok, I know wee agree to some point. Sure there can be oportunities to stay away from coding in VFX industry. But make your self a favor and stay close to it, how knows the future, yes?

Share this post


Link to post
Share on other sites

> Bachelor's degree in computer science, engineering or computer graphics

OT: I wonder how many of us have this. I gave up electronic engineering place in university and went for film school instead.

Overlord: Whatever language you go for (and all of them have their uses), just make sure you can use it immediately and frequently. Learning programming abstractly without immediate application is as good as not learning it at all cos you'll forget it all. With that in mind and taking into account your immediate need, I would suggest just zone in and learn RSL (which is largely applicable to VEX too) supplemented with some light reading on C. Pick up Python later when you need to process those pesky RIBs. Good luck with your course!

Share this post


Link to post
Share on other sites

For the disussion about C-C++.

I am a developer, and I first learn C, If you master C is quite easy to learn any leanguage.

If you are going to be an animator, no doubt learn Python first.

Python sintax is clearer than C/C++, you don't need to compile, and C++ OOP implementation is not the best, looking only in the OOP concepts C++ is not the best,

To know the OOP concepts Python is better.

So my advice: go ahead with Pytthon.

Share this post


Link to post
Share on other sites

Wow, I guess I sturred up quite a topic. Im glad I'm getting so many responses, this is helping me out alot.

If you wish to work in Visual Effect you MUST know very well a view programming/scritping languages. There is no other choice. Python as was said previously, c-shell as fast as possible, at least some basics of c/c++, then MEL, RSL, VEX, hscript, and so on, so on... Very soon you'll find your self without hands if you won't be really familiar with code.

28494[/snapback]

I agree that programming/scripting is very nessicary, but then again I'm sure there are exceptions out there. So far with Houdini I havent hit a complete barrier without knowing programming/scrpting, and I seem to be finding my way around Houdini within the 6 months of using it much better than the 4-5 years I spent with Maya. BUT, everytime I got into VOP's I generally get scared away, which is why I wanted the programming/scripting knoledge. I do compeltely agree that you will be much more "Marketable" if you have the knoledge. Thanks Symek :)

well, as we all know Houdini is an exeption :). Good, skillful and artistic talented fx animator with Houdini on screen can do beautiful stuff witout programming. That's houdini. But working on Maya without MEL is impossible (on some level of competense), right? Add to this RenderMan or even worse MentalRay... which needs advanced c++.

Well, read anouncements (concerned also houdini artists) on PDI, SPI or whereever:

28512[/snapback]

I competly agree with the Maya stand point. Personally after 5 years of using it, I find that people who know MEL stick with Maya much longer than someone who doesnt ie. ME. To get around the clunky interface and retarded errors it always comes up with :P

For the disussion about C-C++.

I am a developer, and I first learn C, If you master C is quite easy to learn any leanguage.

If you are going to be an animator, no doubt learn Python first.

Python sintax is clearer than C/C++, you don't need to compile, and C++ OOP implementation is not the best, looking only in the OOP concepts C++ is not the best,

To know the OOP concepts Python is better.

So my advice: go ahead with Pytthon.

28516[/snapback]

Thanks man...I started using Python after reading a few of the replies on here last week. And so far I find it fairly easy to understand. So I'm goning to stick with it until I feel comfortable. The Renerman professor gave me this link for what she will be covering in the Fall http://www.fundza.com/. The Cutter text editor that is on there appears to support every "well" know language including Python. So hopefully getting a grasp on that before venturing into renderman will help me out alot. Thanks for the reply, I appreciate it. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×