In two weeks I am will be in the CCT course and I am currently getting my feet wet with Casper. I've spent many hours reading discussions here and i've come across a lot of different ways things can get done. I've seen BASH, Perl, Ruby, Python, and AppleScript. Is there really a preference for Casper or is there a "use what you are most comfortable with" mentality. I'm asking because i'd like to focus on one and hone my skills.
Thanks in advance.
I would add that focusing on learning the command line tools that will be called in these scripts is most important. If you learn about softwareupdate, csrutil, diskutil, hdiutil, systemsetup, networksetup, dscl, installer, grep, jamf binary, and a few others you will be able to design a script in any language to accomplish your goals.
Another thing to think about is when to script. Personally I am trying to reduce my dependency on scripting and look at what I can accomplish with "Execute Command" in the "Files and Processes" option of casper policies.
This helps with modularity and if you make use of Casper Sites.
Definitely use what fits the task, and your coding style the best. Bash is always good to have in your arsenal, and the code is more accessible to a wider audience, but others are more powerful.
I'm a rubyist myself, because it fits how I think more comfortably, but the equally-powerful python is more commonly used in the sysadmin world. Perl is still powerful, but unless you already know it, I'd go for ruby or python, both of which were developed (in part) to take the good parts of perl and address the not-so-good ones.
Some Applescript knowledge is also a good thing to have, because regardless of your primary language, there are some tasks that just work better with Applescript, and you can use osascript to execute Applescript snippets from any other language.