You are not logged in.
Hello
I have been using Linux for years now and would really like to take a step farther into geekiness...I would love to learn a programing language. I have looked and not found much information about learning a language that is useful with Linux.
Any ideas of which one to learn and what it is good for?
-Ghosty
Thinkpad X200 FTW!
Offline
C, bash, python, ....
It all depends what your are looking to achieve. What problems do you want to solve/automate?
Offline
Well, learning to use scripts to automate most tasks would be very neat, however lately I have heard that Perl is more useful for that. What is your thoughts on that?
-Ghosty
Thinkpad X200 FTW!
Offline
I'd recommend Python if scripting is one of the main things that you'd like to do because it's incredibly well documented.
Offline
Well, learning to use scripts to automate most tasks would be very neat, however lately I have heard that Perl is more useful for that. What is your thoughts on that?
I mainly use bash for most of that sort of thing and python if that is too limiting. Perl would work for that too... (just ask Xyne).
Offline
Is there anything else that Python is good for as well?
-Ghosty
Thinkpad X200 FTW!
Offline
Python is pretty good for everything, being a fairly well designed general purpose language with a huge active community and pretty well documented.
But perl is, imo, better and more fun to play around with.
Last edited by scj (2009-09-29 02:25:34)
Offline
Perl takes perfectly nice, young kids and turns them into SUGAR ADDICTS. Ask Xyne.
Offline
Perl takes perfectly nice, young kids and turns them into SUGAR ADDICTS. Ask Xyne.
And that does sound nice.
Thinkpad X200 FTW!
Offline
Personally I think Python is one of, if not the best learning language. It also just so happens to be good for most everything except high performance computing.
One advantage of Python vs Perl is, Python is widely used for GUI programming. I'm not saying you can't use Perl for visual programming but you definitely see many more Python examples these days.
Offline
I believe I am going to start looking at Python. I actually have a book lying around from a few years ago. Might not be the most up to date, but it should do. Thanks for the input everyone. Helpful as always.
Thanks
-Ghosty
Thinkpad X200 FTW!
Offline
But... Perl!
Offline
I could almost recommend that you not start with Python, because after you learn how to use it proficiently you'll never want to use anything else again. Which is a problem for me, because I get paid to write Perl, not Python...
In all honesty, though, Perl and Python both come with my wholehearted endorsement, however insignificant that is.
Offline
Hello
I have been using Linux for years now and would really like to take a step farther into geekiness...I would love to learn a programing language. I have looked and not found much information about learning a language that is useful with Linux.
Any ideas of which one to learn and what it is good for?
-Ghosty
I think I've seen this question atleast 2-300 hundred times on a lot of different forums. There is no correct answer. Don't put so much emphasis on your first language, because I can asure you it won't be the last one that you learn (once you get "the bug").
I myself started with Z80 asm, which might sound scary, but at that time it was my only alternative apart from BASIC. I suggest you start learning what you need now. As you progress, you may find yourself incapable of doing what you want in the language that you are currently learning, so you will move up to a more decent one. Scripting would be a good start, since you don't need to burden yourself with compilers just yet. After a good scripting language has been learned (bash/python should be enough), I suggest you move on to C. All 3 of these are VERY well documented, and you can find tons of code snippets to feed a geek baby for a lifetime.
Archlinux | ratpoison + evilwm | urxvtc | tmux
Offline
But... Perl!
+1
Sin? What's all this about sin?
Offline
C, Ruby, and Bash. ..)
=============== Read An Essay ===============
Distro : Funtoo Linux || Kernel : ckernel-2.6.30-gentoo-r5
Processor : Athlon 64 X2 4400+ || RAM : 2GB || HD : 300GB
========================================
Offline
I'd recommend Python as a first language. It's relatively easy to learn, very versatile and it's currently a very popular language which means that there are lots of interesting projects connected to it.
Perl is great for scripting and I think that its regular expressions and shell interaction are superb (both feel clunky in Python by comparison), but I wouldn't recommend it for larger projects. You can get just about anything done with it though.
Bash is slow and ugly. Learn enough to automate some shell commands and then move on.
Eventually you should learn some C and even take a look at a functional language like Haskell. The latter will give you a very different perspective on programming.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
If you want to start with scripting I would also recommend Tcl/Tk. It is very easy to learn, has a superb documentation and a helpful community.
Regards
Offline
Python,Bash,Perl
I'd recommend Python as a first language. It's relatively easy to learn, very versatile and it's currently a very popular language which means that there are lots of interesting projects connected to it.
Perl is great for scripting and I think that its regular expressions and shell interaction are superb (both feel clunky in Python by comparison), but I wouldn't recommend it for larger projects. You can get just about anything done with it though.
Bash is slow and ugly. Learn enough to automate some shell commands and then move on.
Eventually you should learn some C and even take a look at a functional language like Haskell. The latter will give you a very different perspective on programming.
I have question to Xyne what would you recommend for shell scripting (If not Bash)?
I mean we can change shell to ZSH or even Bash and scripts will be faster
Shell Scripter | C/C++/Python/Java Coder | ZSH
Offline
Python,Bash,Perl
Xyne wrote:...
Bash is slow and ugly. Learn enough to automate some shell commands and then move on.
...
I have question to Xyne what would you recommend for shell scripting (If not Bash)?
I mean we can change shell to ZSH or even Bash and scripts will be faster
Automating shell commands is shell scripting. What I mean is that bash should not be used for actual applications that are anything but very simple. I don't consider bash to be a proper programming language and I don't think people should recommend it as one.
My Arch Linux Stuff • Forum Etiquette • Community Ethos - Arch is not for everyone
Offline
Why has nobody suggested a functional language to go with?
Erlang - http://erlang.org/
Clojure - http://clojure.org/
Scala - http://scala-lang.org/
Haskell - http://haskell.org/
Though, they might seem a bit unusual at the first glance, but they all are much more prepared for the multicore future than Python. Being free of side effects means being ready to get concurrent GC, actors, software transactional memory (STM) etc. It doesn't seem very important, if what you you are going to use it for is scripting only, but it becomes much more important if you want to use it for, say, writing web applications.
Functional programming might be something most people haven't heard before, but foundation of functional programming had been laid before first computers were created! Languages like Haskell are clean like math, whereas languages like Erlang are pragmatic as engineering.
Are you going to use a language for something other than scripting in the future?
Offline
bash - quick scripting
C - figuring out how everything works behind the scenes *
Python - everything (even web development - Django is truly awesome)
Haskell / any functional language that strikes your fancy - novelty (seriously though, they're probably the future of programming)
* Manual memory management will teach you a thing or two when it finally clicks. I'd only recommend C for serious development if you a) are writing a library intended to be widely used or b) need your code to be as fast as possible.
Last edited by Peasantoid (2009-09-29 19:57:33)
Offline
Scheme, if we're going functional.
Offline
Haskell / any functional language that strikes your fancy - novelty (seriously though, they're probably the future of programming)
Even Microsoft agrees. F# is based heavily off of Haskell with some elements of OCaml thrown in. And if Microsoft agrees, it must be True™.
Offline