Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Many many years ago I used to program in C and other languages. I have since then moved into the management part of the job. Some friends and I have some ideals and now find the need to relearn programming on a linux/unix system. Managing a unix system is one thing but programming it is another. What and where would be a good start?
Last edited by rklpctt; 07-08-2008 at 03:08 PM.
It depends on what kind of programming you want to do, but dynamic languages (Python or Ruby) are a good start point. Dynamic languages are not only used for scripting and Web applications, but are also increasingly used for desktop and systems applications. Sometimes a hybrid design is used, where the performance-critical aspects of an application are implemented in C libraries, and the rest of the application is done in a dynamic language. Anaconda, Bazaar, Conduit, Hotwire, Yum, and Ubuntu's Update Manager are all Python applications.
Python is much more popular for *NIX applications than Ruby, partly because the runtime is more robust and the key libraries are arguably more mature. It is also a de-facto standard part of Linux installations because Ubuntu/Canonical and Red Hat use and depend upon it so heavily.
Having said all that, I struggled with Python and found that I like Ruby better as a language and a platform. It's also probably a much better choice for systems administrators, partly because of Puppet and Rake, and there are great projects in every other area - Shoes for desktop apps, DataMapper, Merb, JRuby etc. etc.
It's probably best to try both Python and Ruby, and go with whichever one feels most comfortable to you.
I know my way with Perl, not an expert but have since picked up learning Python. It's a good start and I'd recommend it myself. But really, pick a few, read over how each has their pros and cons, start with one, if you don't like it or can't get a hang of it, try the other.
Among Linux languages, I program perl, php, C++, and C. I am dabbling a bit with python, but haven't seriously undertaken a project with it yet.
Speaking just for myself, I will use php instead of perl just about any day. And, I'll usually go with C in preference to any of the others, unless there is something that particularly compels either php or perl.
To run php from the command line, just make sure the command line interpreter is installed, and start your script with #!/usr/bin/php (or whatever the path is).
Really depends...Majority of system programming is still done in C/C++, something I use time to time when I don't feel like waiting for a fix. I routinely use perl and shells scripts for system management and automation, as well as java for servlets/jsp...some php but honestly not a big fan of it.
For system managment/automation, I agree shell for short/simple stuff, Perl for more complex/longer/critical stuff (better error handling).
There's even a book 'Perl for System Administration' from O'Reilly.