Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialBinu Raj
1,051 PointsChoosing languages to begin backend web development.
I want to start learning how to develop web applications. To start, I'd like a little help choosing languages to learn. For the front end, I'm planning on learning JavaScript, HTML and CSS to use them in sync. For the backend, I can't decide between Ruby, Python and PHP, mostly because I have no knowledge of any of the three languages. Any recommendations? I'm open to suggestions other than the languages mentioned. A reason supporting your recommendation would be appreciated as well.
3 Answers
Daniel Santos
34,969 PointsHi Nate Jay,
I will definitely suggest to learn Ruby or Python, either one is smart to show now days. The reasons, PHP developer might not agree, are simple: 1) PHP is dying, slowly. 2)Python and Ruby offer tremendous open-source libraries and there are a lot! 3)Those language are easy to understand, and learn. Python is a language used to introduce kids to programming. I bet you got scared the first time you saw PHP syntax :p.
In overall my friend I will left some links that you might be interested to read, there good and bad comments about PHP
https://www.quora.com/Do-Facebook-engineers-enjoy-programming-in-PHP https://www.quora.com/Why-hasn-t-Facebook-migrated-away-from-PHP
I don't hate PHP, but if I had the opportunity to learn Python or Ruby in the first place, I would have done it.
This quote is from a former engineer at Facebook: "Did I like working with PHP? Hell. No."
If for some reason you want to go for PHP check this out http://hhvm.com/
Now Python (my primary language):
For me Python is more than a high-level programming language. It is like a culture, Python help you write better and understanding. You will heard the phrase 'that's really pythonic' and that just a style of coding. Python, as well as PHP, has free frameworks that will help you a lot to develop your apps. I will name a few of then: 1) Flask, a micro-framework. Flask is a perfect starting point for beginners, so you can have a feeling of the real-world. But don't underestimate, the first app that I released was Flask-based. 2) Django, my favorite. Is a really large-scale framework and to be quick, you can do whatever you like with this framework. 3)Pyramid, I've only heard about it, can't say anything.
Here are a more opinion why to pick Python over another programming language: https://www.quora.com/Why-is-Python-better-than-PHP http://stackoverflow.com/questions/3319261/php-devs-that-moved-to-python-is-the-experience-better
Ruby (never done anything):
I can't compared anything with because I have never touch it. But here is something that surprised me
http://www.indeed.com/jobtrends/Django%2C+ruby+on+rails.html
In case that you don't know what is Ruby on Rails. It is a framework as Django and Flask.
I hope this help you a little bit to make your decision, if so, let me know. Also ask me anything, if I can I will respond.
Sincerely,
- Dan
jason chan
31,009 PointsIf your own pc. PHP and python.
If your on mac or linux ruby
But they all have package handlers. So it doesn't really matter.
Binu Raj
1,051 PointsI'm new to this, so this may not be a very bright question, but why are PHP and Python more suited for PC, while Ruby for Mac or LINUX? How does the OS matter here?
Kevin Korte
28,149 PointsYes OS matter. Ruby and Rails are a pain on Windows....it's doable, but it isn't fun. I tried it on Windows, I eventually gave up. If you want to code Ruby on Rails on a Window device, I highly recommend just using a service like cloud9 or nitrous.
Nothing like spending hours just trying to figure out why your ruby server won't spin up on your windows machine when the exact same versions and repository spins up fine on a Mac.
Kevin Korte
28,149 PointsI started with PHP, mostly because my first server side experience was with wordpress. I continued to learn PHP, and about 6 months jump across to the cool kids language, Ruby and, thus Rails too. A pretty eloquent language, I'm enjoying it so far. I think I like Ruby better than PHP just because the syntax is less. Python looks just a promising, and I'll likely get my feet wet there too.
PHP has recently had new life breathed into it, and actually things are changing quickly and for the better. Wordpress still continues to run on PHP, which is a behemoth in the world wide web for an engine that powers websites. PHP also got a cool kid framework just like Rails, but this framework is called Laravel, and it's been actively developed while it's community grows.
PHP isn't a bad place to start if you want. It's very easy to get started coding in PHP. But Ruby and Python sure are carrying a lot of momentum right now. Don't be afraid to spend some time learning all 3 here and see which one interests you more. Follow your interest, not which language is the "hottest" by a bar graph. A passionate developer is better than one just doing it because it's the "hottest".
Binu Raj
1,051 PointsSounds good. I was planning on touching on all three anyways. I just wanted a good place to start. :)
Binu Raj
1,051 PointsBinu Raj
1,051 PointsHey, Dan, thanks so much for the information. Python with the Flask or Django frameworks looks good, especially since I'll be doing Python in my second semester at college. Ruby on Rails looks quite attractive, too. You're right, that graph is quite surprising, particularly because nearly every source I've called tells me that Ruby on Rails and Django are roughly equal. I wonder why Ruby on Rails has so many more job placements... Anyway, thanks again!