...Picking a Langue
Yes I know that language is spelled with a "age" at the end... but I meant to say langue. Langue's meaning is very close to that of language, the difference is that language is, well, a language, but langue (noun) means a system of conventions and rules upon which we communicate. So I would actually say programming languages are actually more Langue-like... if that makes any sense.
Anyway, after deciding that I needed to learn a new language I started researching all of the possibilities for what I could learn, based on which ones could possibly provide a benefit to my career. My final list was as follows:
- C or C++
- Python
- Ruby
- Erlang
- Perl
- LOLCode
First, I ruled out any with a lack of a true compiler/interpreter. KTHXBYE LOLCode :'( Now that I had 5 viable options I looked at things such as :
- Will I have to learn it in the future?
- What types of programs will it write?
- What kind of learning curve is there?
- How big is the user base?
My first question, will i have to learn it in the future, only targeted 1 of the items on my list. Since I am on the University of MD Robotics club, I will eventually have to learn C so that i can program PIC micro controllers for the robot. I will actually have to do this next fall. And this will also be needed for some EE classes later on in my junior and senior years most likely. For this reason, I ruled out C/C++. (Also, if needed I actually can churn out a small C program, i just never got further than any of the basics.)
Now I was left with Python, Ruby, Erlang, and Perl. I separated them into 3 categories: Perl, Python/Ruby, and Erlang because Python and Ruby are so similar. Next, I eliminated Erlang. Although I would have loved to learn a true multi-thread language, question 2 and 4, as well it being hard for me to find a legitimate use for it in my code, turned me away from Erlang. Although I have skipped it for now, I feel that the next time I decided to learn a new language from the ground up, it will be Erlang (hopefully in a 2 years or so).
...Python vs. Ruby vs. Perl
Now that I'm down to three, I once again grouped Python and Ruby together due to their similarity, and compared them to Perl. After looking at some code and reading all of the introductory tutorials, I felt much more comfortable with Python/Ruby then Perl. Then after reading other people's testimonials, such as this one, it wasn't a hard choice for me to eliminate Perl.
Choosing between Python and Ruby was difficult as they are sooo similar, and unlike the case of Python v Perl, no one was willing to say that one is truly better then the other. My final decision boiled down to the fact that Python is much more widely used (in my opinion), and more importantly to me, Google uses Python extensively. That pretty much sealed the deal, as I have an incessant infatuation with Google.
...Beggining to Learn
Now that I have chosen, it's time for me to begin to learn the language. I just purchased my book, and will be updating the blog on my progress and any interesting tid-bits now and then. But as this is my second project outside of my 40 hour work weeks, progress will most definitely be slow.
No comments:
Post a Comment