Web Culture

Which Programming Language to Learn – Web Programming

James Bruce 09-11-2011

programming languagesToday we’re going to take a look at the various web programming languages that power the Internet. This is the fourth part in a beginners programming series. In part 1, we learnt the basic of variables and datatypes The Basics Of Computer Programming 101 - Variables And DataTypes Having introduced and talked a little about Object Oriented Programming before and where its namesake comes from, I thought it's time we go through the absolute basics of programming in a non-language specific way. This... Read More . In part 2, we moved onto functions and control structures The Absolute Basics Of Programming For Beginners (Part 2) In part 2 of our absolute beginners guide to programming, I'll be covering the basics of functions, return values, loops and conditionals. Make sure you’ve read part 1 before tackling this, where I explained the... Read More . In part 3, we had a look at some of the numerous software programming languages Which Programming Language Should You Learn For Software Development? When starting on the path of programming, it’s important you invest your time wisely in choosing to learn something that will both benefit you in the immediate future with visible results on your platform of... Read More . Like last time, I’ve included screenshots of what typical code in the language looks like, which I believe is a good at-a-glance indicator of whether you’re going to be comfortable programming it or not.



PHP is the undisputed king of server-side languages in use on the Internet today – running on 75% of all web servers – and is the power behind WordPress, Wikipedia, and even the user-facing part of Facebook.

programming languages

As a server side language, the code is processed before it reaches the user’s browser, so all they see is the final page and none of the original PHP code. PHP is mainly used in conjunction with MySQL to pull information from a database, manipulate it and present it to the user.

PHP is general-purpose and comes as standard with most web servers – if you’ve ever heard the term MAMP 10 Essential Software Apps For Web Development on a Mac Read More /WAMP How To Install A Windows Web Server On Your PC With XAMPP Read More /LAMP The Best Linux Web Server Software (& Apache Alternatives) Read More , the P generally stands for PHP (the rest is Windows/Mac/Linux, Apache, and MySQL).


Another component of standard web server installations, MySQL is a free, open source database server. It’s not a programming language as such, but it is a new language to learn if you want to talk to databases so it’s a key component of modern websites. Although MySQL is actually a command-line language, there are common GUI tools available such as PHPMyAdmin for managing databases more easily.


Again, MySQL is what powers WordPress  – so all your posts and content are actually stored inside a MySQL database.

web programming languages


Not to be confused with Java, the full object oriented software programming language we introduced last week, Javascript is the daddy of interactive webpages. It’s a scripting language that’s run locally on the user’s browser, allowing webpages to respond to user interactions such as clicking on elements and timing events. To cover everything Javascript is capable of would be impossible – suffice to say if there’s something interactive on a site, and it isn’t Flash – it’s more than likely Javascript.

It’s worth mentioning JQuery at this point too. JQuery is a Javascript-framework which lets you write less code and gives you greater browser compatibility, and is quickly becoming the standard for modern webpages. It’s particularly useful for targeting specific parts of a webpage using familiar CSS terms and doing something with them, such as showing or hiding them. Although JQuery is made from Javascript, it introduces its own unique language components too, so just because you know Javascript doesn’t mean you can automatically use JQuery (you could also argue that you don’t need to know much Javascript to be able to use jQuery). We’ll definitely be looking at this one at some point.


web programming languages


Perl used to be a major force in web programming but has since been relegated to mostly just text-processing applications. It’s incredibly fast at processing text, but not of much use on the modern Internet. It’s something that all hackers have in the box of tricks though, so it’s worth checking out at some point.

To give you an idea of the power of Perl, here’s the complete code that was created to crack DVD encryption. Yes, it is rather cryptic:

web programming languages



Ruby, and its web application framework Ruby On Rails, powers some pretty major websites such as Groupon, Shopify (a commerce platform), and the front-end of Twitter. It’s a full object oriented language that’s interpreted by the server and then sent as a finished HTML page to the browser – much like PHP (yet also completely different, *sigh*). It has a number of key advantages though, namely in rapid development, less code repetition, and speed.

web programming

Unfortunately, most web servers do not support Ruby out of the box, so unless you’re able to configure your own server as you wish, you need to use a hosting service such as Heroku.


Python is another full object-oriented high-level strongly-typed language. Adjectives used to describe Python typically include fun, easy to use, and a good learning tool – but ultimately there’s very few real-world Python web applications. It certainly sounds like a good place to start though, especially if you’re the kind of person who’s into Linux and open source / community-driven projects. Just don’t expect to be making any actual webpages with this, and there appears to be a rivalry with the Ruby community.


web programming


This is Microsoft’s contribution to the web language arena, predictably popular in corporate environments and nowhere else. It’s closely integrated into the .Net family, and you need specific Windows hosting to run ASP.net web applications, which in my experience is far more effort than it’s worth. Stay away from this one unless you have a really good reason not to.

programming languages

So, Which Should You Learn?

If you want to create a modern, interactive website, I suggest a combination of PHP, MySQL, and possibly JQuery/Javascript for interactivity. That’s not to say the languages such as Ruby and Python aren’t worth investigating as a learning exercise – which we certainly will be doing at some point – but if your time is limited and you seriously want to start learning useful real-world skills then the PHP/MySQL combo is the best place to start.

If you think I’ve missed something, then feedback and reader contributions are always welcome in the comments.

Related topics: Programming, Web Development.

Affiliate Disclosure: By buying the products we recommend, you help keep the site alive. Read more.

Whatsapp Pinterest

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Nery
    May 11, 2017 at 12:05 pm

    How's things?, on occasion I see a 400 website error when I view your website. I thought you may wish to know, cheers

  2. Peter Gent
    May 6, 2016 at 9:15 pm

    Hi Dave Ball and James Bruce,

    This post and the comments are really helping me come up to speed on a lot of the powerful programming structures, languages and databases. Could you help me out with a few things though?

    Programming in a specific language from what I understand is optimally paired with specific databases, some cases it requires a specific database. Could you put together a short summary of what databases mesh better with which languages. For example, PHP and MySQL or Node.js and MongoDB.

    Also, what really is the difference between mySQL, noSQL databases and graphical databases?

    Their websites say a lot about scaleability, but I am still unclear what the difference really is.



  3. Keil
    December 6, 2015 at 12:01 pm

    Poorly written, factually flawed, totally biased and out of touch with the real world. It's a shame that the noobs don't know any better - they might actually think that this is good advice.

    I did consider going into detail - but you seem so out of touch that it would be a waste of my time.

    I feel sorry for the company that pays you as a web developer - but as long as there is some sort of architect telling you what to do - they might be safe.

    • James Bruce
      December 6, 2015 at 12:18 pm

      This was written in 2011. Feel free to disagree, but at least use an actual email agree so we can respond.

  4. ben
    November 15, 2015 at 5:11 am

    in 2011 it was PHP. Ruby on Rails is the best now

  5. Amir
    November 14, 2015 at 8:42 am

    A profoundly poor and absurd introduction to python web programming and it occurs to me that you don't vividly separate the concept of web app development and web design. Just to give an example though, Amazon is written with django which is a pythonic framework or Coursera.com has its backbone developed entirely by django.

  6. Anonymous
    June 22, 2015 at 7:37 pm

    these days i'm also hearing a lot about people using clojure to develop for the web. the advantage being that ti runs of the JMV so enterprise all ready invested in a JEE architecture can realise the benefits without having to wipe out its investment

  7. Anonymous
    June 22, 2015 at 6:08 pm

    These days i would suggests people look at Node and specifically some of the newer frameworks like meteor.

  8. Mircea Prodan
    April 20, 2015 at 12:29 am

    I agreed with James Bruce. I love Python (version 3.x; version 2.x do not like). It is the best language to learn to programming. I make few desktop applications but NOT web applications. I am a hobbyist. I learn the fundamentals (date type, variables, conditional, functions etc and I try to understand OOP). After that, I learn to make a website in Django framework with a big help from "Documents" Django website pages and a excellent tutorial named "Django Girls". Ok, I agreed, it is not to hard, is very logical and is beautiful to work in (except Regular Expresion ). The problem (BIG problem!) is to deployng (implement) a Python web application on a real server!!!! It is a nightmare!! Step after step after step...It is very, very, very annoyng thing. GAE?! Hmm...Is a little deprecated because is for Python -v2.x... Heroku?! For a begginer is too hard, excuse me (Terminal commands, virtualenv setup etc ).
    On the other hand in PHP (which is not simple as you think... in fact do not exist a simple programming language..), you can have a FUNCTIONAL WEB application in minutes, localy (on localhost) or on real server...
    Last but not least is about the server price. I am from Romania - excuse me for my english way... :) - and for a common LAMP server I pay 1.90 euro/month. For a Python website, my hosting make me an "ofer" for dedicate server with ... 29 euros/month!!! Ha! Ha!... You are kidding or what?! I think the Python web solution is for snobs with a lot of money....
    I'm not a PHP advocate, but for a begginer to start with this language is the best solution.
    P.S. I think I know a big website wich use Python language: washingtonpost.com. But is one of the biggest newspaper in the world, no?

  9. Andong Alain
    April 17, 2015 at 1:55 pm

    Common guys to start up ,I will say to construct a website we need html, css, JvaScritp these are client side "actors" for the server side I am stuck on which to use please guidance I also know using JvScript will mean understanding at least one of its libraries like JQuery
    Plesae Ignore my first comment above :(

    • Anonymous
      June 22, 2015 at 6:14 pm

      Use JavaScript for it all by Using Node.js or one of its many frameworks like meteor, strongloop or ember2.
      for the database side i'd look at No Sql like MongoDB the default database in meteor or if you want to try graph neo4j if you go to their neo4j.com website just now there ate some free ebooks on using the technology. also there are free courses for both mongoDB and Neo4j or their websites as well.
      I'd say getting MongDB certified would be a goof career move.

  10. Andong Alain
    April 17, 2015 at 1:52 pm

    Common guys to start up ,I will say to construc a website we need therese are client side "actors" for the server side I am stuck on which to use please guidance I also know using JvScript will mean understanding at least one of its libraries like JQuery

  11. Abbas
    April 9, 2015 at 4:24 pm

    Hi James, I really enjoyed your article. I have a new employee (no prior coding experience)that wants to get into the nitty gritty, under-the-hood of websites. I want to put him on a track. Would you recommend I start him with Python first or PHP?

    • James Bruce
      April 9, 2015 at 6:10 pm

      I guess it ultimately depends on what your company systems are built around, but definitely not Python. He would either want PHP, or ASP; or if you're a particularly new start-up, probably Node.js.

  12. Susan Denis
    March 31, 2015 at 3:15 pm

    I see that the writer of this article does not have a basic understanding of programming, for example: mysql IS NOT a programming language, it is a database storage engine and before you say that sql is a programming lang, it is not, it is specific purpose language designed to interact with the database engine, secondly php is indeed a strong language if you weed out the weak programmers but it is not designed for enterprise level applications, and before anyone jumps at me with statements like Facebook is written in php and it's the biggest site on the internet think that facebook has created their own version of php and of a webserver because of the limitations of php and also facebook is not a enterprise application. Also saying "stay away from x language" in a "programming languages to learn" article seems stupid as you are just bashing on a language because you do not understand it's power, i suggest reading about c#, asp.net, iis, .net and .net core because they are very cool technologies once u use them with a domain controller for example and in my opinion asp.net is way above php in terms of security and performance.

    This is my 2 cents on this article.

    • James Bruce
      March 31, 2015 at 5:05 pm

      If someone wanted to make a website in PHP, they would need to know MySQL too. If you want to play semantics about what is and isn't a programming language, then go ahead - I'll sit here and continue being paid as an actual web developer.

  13. Guest
    January 29, 2015 at 1:24 pm

    I've been programming in PHP/Ruby/Python and the best language of the web development is PHP hands down. Not even Rails or Dijango is better :-) But don't take my word for it learn them all and try your self.

  14. php
    May 5, 2012 at 10:33 pm

    Thank you for the good writeup. It in fact was a entertainment account it. Glance complex to more delivered agreeable from you! However, how can we be in contact?

  15. Jonas
    May 5, 2012 at 8:37 pm

    >but ultimately there’s very few real-world Python web applications

    I think the team behind Google Code would like a word here.

  16. kay
    April 25, 2012 at 7:53 am

    i have a question. i learned programming with java and i loved it. i delved into c# also and it was ok but i'm having a little difficulty with php because of the api documentation. i'm used to the javadoc style and microsoft but i cant find any php documentation in that format where i can easily peruse the classes, interfaces and methods. if there's anywhere i can download such could u please send me a link.

    • muotechguy
      April 25, 2012 at 8:17 am

      Not as far as I'm aware.

  17. Tobias
    February 4, 2012 at 9:25 am

    Thanks for this. I was also wondering if you could give advice on whether or not to learn HTML5 as the failsafe for the future.

    I have one website (in PHP) that someone has kindly set up for me but I cannot do the simplest of things to adjust how it is viewed/used. I now feel it is time to learn.

    Also, can you give me any advice regarding what sort of courses I should look at and how long it should take before I can expect to programme pages and make changes to my site. Ideally I'd like to learn a language thoroughly enough to design and build a site from scratch.

    • James Bruce
      February 4, 2012 at 1:44 pm

      Hi Tobias. HTML5 isn't really a failsafe option - its a natural progression of HTML, and even MakeUseOf is done in HTML5. If you are learning HTML - which you would need anyway to start playing with PHP for web development - then yes, HTML5 would be a good start. That encompasses a variety of other technologies though, like CSS and Javascript. You really need a little bit of everything. 

      Is your PHP site custom programmed, or is it based upon an established system like WordPress? Obviously, if it's bespoke then progress will be slow for you - you will have to learn the entirety of PHP before understand something custom made. If it's an established system, you'll be sure to find lots of material online to help you understand it bit by bit. That's why I love WordPress really - you can customize and adjust it using PHP, without being a master of it. As you learn more, you can do more. 

      I would honestly advise against building a site from scratch as the end goal. Use it as a playground to learn by all means, but don't try to build a functional web app entirely from scratch. Learn what you need to get started, and use a framework such as CodeIgniter (http://codeigniter.com/) - thats PHP based, with a good learning curve and lots of tutorials. You'll still be learning PHP, but you'll be able to make use of that much earlier. I think if you were to start from scratch, you would probably get discouraged early on. I guess that depends on you though. 

      Personally, I started with http://www.tizag.com/phpT/ , and they also do MySQL and Javascript. It's great primer on the basics, and from there you can start playing with other systems and frameworks.  

  18. James Bruce
    February 2, 2012 at 10:01 am

    I have a great respect for Perl , Joel. Please don't get me wrong here. I chose that code because it's damn beautiful, so I'm sorry if you took that to be misrepresenting something. 

    I'll let you in on a secret too - my first ever website, when I was like, 9 - was programmed in Perl script. I wrote a bunch of text files, and a primitive template, and made it run around creating all the HTML files, links, breadcrumbs etc. Incredible stuff it was. 

    But realistically, it's not for the beginner who wants to make a modern, interactive website. That's great that you're a fan of it, and that some major companies use it as a small part of their server stack - but let's not delude ourselves. The average reader who wants to make a website, on some shared godaddy hosting for $5/month, with some skills that may then take them onto bigger things like working with wordpress - Perl is not for them. That's why I can't recommend it. 

  19. Vivitech Ltd
    January 26, 2012 at 3:13 pm

    I think if you're serious about programming, you need to learn several languages. For example, you can have a website which is Programmed in PHP, but for form validation you need to know a little JavaScript & Regular Expressions least. If you will be using animation, then you need to know a little about jQuery also.

    • James Bruce
      February 2, 2012 at 9:57 am

      Absolutely. No one language is going to suffice - but thats a good pick there. 

  20. James Bruce
    January 23, 2012 at 9:21 am

    Great. Two huge sites with humongous dev teams. That'll work for the beginner. 

  21. D Sp
    January 5, 2012 at 1:20 pm

    Thank you very much James for such an excellent post. I've been suffering from analysis paralysis for a long time even though another programmer friend suggested the same as yourself. I read all the negative stuff regarding PHP etc and assumed they were right. I've taken a look at PHP again due to your post and I will be starting with that. 

    • James Bruce
      January 5, 2012 at 2:25 pm

      Glad to hear it D! Good luck, and I expect to see something great in a year, eh?

  22. noob1
    December 30, 2011 at 3:40 pm

    Nice article,just looking for which programming languages i need to learn to become a good web developer. 
    May be i'll learn all of them soon ,one by one starting with PHP/mysql ,JS. I hope i'll make it in 10 years .

  23. Will
    December 20, 2011 at 10:31 am

    Will they ever merge into one 'super' language? 

    • Jeff Fabish
      December 20, 2011 at 11:00 am


      I wouldn't wait around for it. Each programming language has something that it brings to the table that no other language can come close to. It's best to keep these separate so that you only have to learn the technology associated with the problem. 

      - Jeff

  24. Christopher Allen-Poole
    November 19, 2011 at 9:04 am

    It's generally a good idea to avoid this type of post if you want to prevent flame wars -- people stick to languages like they do religions. This does come across as being a little light on content too. You're also missing Java. I don't understand why.

    If you want to work for Google, go with Java or Python, period.

    • muotechguy
      November 19, 2011 at 9:26 am

      Java was already mentioned in the first article on SOFTWARE development, since very few websites use java, and this article was all about web development. 

      I know it's high contentious, but for our readers who haven't ever programmed before, it's an important question to ask and explain about. 

      As for being light on content, apologies but we have word limits set that we must work to. This usually means cutting out a vast amount of content to keep within publishing guidelines, but to split up the article into two would have been silly and caused even more problems ("why no python! .../... thats in part 2" etc).. As it is , I chose to split content between web and software programming, and I think it was a fair split. 

      You re right though, if working for google is your ultimate goal, then python would be a great choice. The tests are ridiculously hard though, so I doubt that any looking to start programming as a hobby would be able to realistically set that as a goal though. 

  25. E
    November 17, 2011 at 10:15 pm

    Agreed, put some energy into learning PHP, MySQL and the basic web languages like CSS and HTML. Then proceed to learning Javascript, JQuery and those parts that focus on making the user experience more interactive.

  26. Gary Johnson Jr
    November 13, 2011 at 6:30 pm

    The language to learn depends on what you do.  I work in visual effects and CGI.  Python is the de-facto standard programming language.  Nothing else really matter but python in that realm.  As well as the scientific community ( which is similar to the visual effects community).  I would say most of the heavy number crunching apps use pythons somewhere.

  27. James Bruce
    November 12, 2011 at 9:22 am

    No, you're right. There's more python usage than I thought, so it's a good we have comments on these articles that many users read through for extra info. 

    However, I maintain that the infrastructure needed to run python puts it out of the hand of regular users, so I'm still not recommending it for a beginner. I'm well aware google is a heavy python user, but I wasnt aware yotube is too. But then, they are huge, huge entities that can afford to try something radical on their systems. 

    You simply can't go and get some cheap hosting and start easily running python. 

    • Martín Gaitán
      November 12, 2011 at 4:22 pm

      James, thanks for reply . It's nice to learn something new every day, right?

      However your argument is a bit  weak, it's like "millions of flies can t be wrong".  PHP suffers of a lot (really, a lot: http://www.quora.com/What-are-the-horrors-of-PHP) of problems that turn doing things right a very difficult task. It's possible be a good programmer despite PHP (and for that you need to know other languages), but not thanks to it.

      Python is a  very easy to learn programming language, and hugely more powerful than PHP (and you wouldn't be stucked to the web). Python web frameworks (like Ruby's) encourage the creation of good web applications, although (of course) you could be a bad programmer despite Python. About the infraestructure, it's true isn't comparable with the availability of PHP , but  it's no a real problem: http://wiki.python.org/moin/PythonHosting . Moreover, programming your web in Python you can enjoy Google's infrastructure itself using GAE: [Broken Link Removed] Couldn't be a good idea to update your article?

      • James Bruce
        November 13, 2011 at 12:22 pm

        Hi Martin, I'm definitely agreeing with you here. Python may be a technically better language, but that doesn't put it into the hands of small developers like myself who want to host our own code (not put it on google) with minimum of fuss. There is always a solution to the hosting problem with niche hosts, but having to search out a specific host for your website is not something I count as "for beginners". 

        Anyway, I won't be updating the article because it would cause a discontinuation with the comment stream - but I think we've had a fantastic of valuable input from yourself and others in the comments here, so hopefully readers will be sure to read all this too.  

        • Marlon Davis
          May 3, 2012 at 12:27 pm

          Hi James, I know this as been a long string but I get the point you are saying in that PHP allows one to be less dependent on the likes of the"big names". Keep up the great work you are doing. Thank you.

  28. Zanguinette
    November 11, 2011 at 1:41 pm

    I am sorry but Python is not a strongly-typed language at all . 

    The rest is just personal experience 

  29. Jack Cola
    November 11, 2011 at 1:37 pm

    James, while writing for MUO for a year, over a year ago, on thing that was poorly done was authors couldn't bounce topics/idea's off other people before publishing. 

    Reading the backlash you've got in this, having a platform where other MUO writers could have an input in the story (E.g finding websites that use Python), would be very beneficial.

    Although I completely agree with you in your argument/point of view, other commenters actually do provide a valid argument.

    • James Bruce
      November 12, 2011 at 9:24 am

      Yep, they do have great input, which is why I love our commenters for the most part. 

      Unfortunately, I dont think such a system would be feasible realistically. We know roughly what each other is wrong about, but I for one don't want to start reading through all the articles we publish checking for something I dont agree with. I guess that's the editors jobs, but they can't be expected to be technical in everything we write about either. 

      In this case, it's my fault for asking more about python. I think overall the system works though. That's why we have comments after all!

      • Jack Cola
        November 12, 2011 at 11:33 am

        Nothing to complex, something like a forum, or a Q and A style site where you can say "What do you think of this" Should I focus on this, or this", "Am I right to say this" etc.

        This way articles are more thorough, there's less incorrect information, therefore, won't get negative posts from expert readers.

        10 people's inputs are better than 1

  30. VirNeto
    November 11, 2011 at 11:53 am

    James Bruce!
     I’ve just came across reading your full sequence on this matter.
    Although I have no base for a specific/technical critic I must say: this is great information (the whole series) for beginners. The comments of all articles are also very enlightening. Thanks!!! I’ll be waiting for your next!!! I’m just a beginner but keep on writing and I’ll get there;)))
    Best Regards to you all.

    • James Bruce
      November 12, 2011 at 9:16 am

      Thanks VirNeto. I'm taking a break from programming for a bit, but will be starting with PHP I expect, as that's most likely to give immediate benefit to readers in terms of making webpages and playing with WordPress. 

  31. Ilya Shmygol
    November 11, 2011 at 8:15 am

    Sorry, James! I was wrong about deleted messages. )

    • James Bruce
      November 11, 2011 at 8:54 am

      I only delete messages with profanity or deliberate trolls. I dont delete comments just for disagreeing with me, you are allowed to do that ;)

      I'm not trying to hate on Python, I'm sure it's a great language to learn and clearly has many fans, as well as very heavy support from Google. It's obviously fast and very scaleable. 

      I just don't think our average reader is going to find it that useful if they wanted to actually make a webpage, right now, and host it on their godaddy account. I also chose PHP because *the* most popular web platform right now, WordPress, runs on PHP - so by learning even just a small amount of PHP, a beginner will be able to do some pretty amazing stuff without having to work completely from scratch. 

  32. Ilya Shmygol
    November 11, 2011 at 7:41 am

    The author deletes comments! My and another guy, who disagree with the phrase about the python.

    • Aibek
      November 11, 2011 at 10:13 am

      We don't deleted comments unless they're abousive. Please send a copy of the comment that you believe was deleted so that we can investigate.

  33. halfas
    November 11, 2011 at 7:40 am

    Can you tell all the arguments you have about python and this quote: "Just don’t expect to be making any actual webpages with this" ?

    • James Bruce
      November 11, 2011 at 8:50 am

      Sure, go buy some cheap web hosting and let me know how hosting python apps on there works out for you.

  34. Ilya Shmygol
    November 11, 2011 at 7:29 am

    >>Just don’t expect to be making any actual webpages with this (python), and there appears to be a rivalry with the Ruby community.

    Ha! Did you hear something about the Google? There is such a company and they have opposite opinion about the Python. Python has some great web frameworks: Django, Pyramid, Flask.

    Google offers  hosting for python applications (Google App Engine).

    PHP and MySQL are not the best solutions. Very popular (and it's very good sometimes), but not the best.

    I agree with Tim C. You should read something about the topic before teaching people what to learn.

    • James Bruce
      November 11, 2011 at 8:47 am

      Thanks, I know Google uses Python and I know they run the app engine, as I've already said in the comments. 

      PHP/MySQL may not be the *best*, but they are the easiest to pick up immediately and the cheapest to get running with such widespread support and real world applications.

      If I had Google's money and willingness to innovate and built an entire infrastructure to run Python site then perhaps I would. Most of us have considerably less resources than Google. 

  35. Kris
    November 11, 2011 at 3:11 am

    If you are curious which language you should learn, might I suggest you make a pit stop at https://github.com/languages.  Github is currently the most popular place to host an open source project, and likely is the busiest in terms of current contributions.

    The language James recommended PHP, averages in at about 7% of all projects.  The current champion PHP project on github is Symfony 2, a project that demonstrates good object oriented design sense such as dependency injection, model-view-controller based web framework, and many other useful utilities and a thriving community.

    Some of the other languages are fine choices as well, Ruby and Python are very mature, and have great pluggable components, and a healthy choice of training materials available.  

    One of my main criticisms of PHP is that it's object-oriented design features feel bolted on, which they were, and there's plenty of design consistency problems in it's standard libraries.  Many experienced PHP developers often have to refer to the manual for function parameter placement for example.  PHP is great for simple one-off projects, but it starts to feel cumbersome once a project matures.  

    f you plan to make an international site, PHP lacks default unicode strings, which makes doing localization a pain, just avoid it and go with Python or Ruby which both have first-class support for unicode.

    Many beginners start off with PHP.  The syntax isn't completely horrible, it looks similar to C/Java/Javascript.  There are some annoyances, for example all variables have a $ dollar sign in front of them, and if you want to call a method you have to use the cumbersome dash-rocket "->" as an accessor instead of the usual "." dot in most other languages.  I believe this decision harkens back to the original language designer's preference for C++.

    If you are ever asked to maintain an existing PHP project, just say no.  Most of it will be beginner level code, and likely be a huge plate of spaghetti.

  36. Gabor Szabo
    November 10, 2011 at 10:05 pm

    I am surprised you picked a deliberately obfuscated piece of Perl code instead of beautiful examples of modern web frameworks in Perl. Just take a look at either Mojolicious http://mojolicious.org/ or Perl Dancer [Broken Link Removed]
    If you are wondering about high visibility, high perfomance sites built on Perl then you might want to take a look at http://booking.com/ or http://www.ticketmaster.com/

    • James Bruce
      November 11, 2011 at 8:43 am

      I chose it because I thought it was beautiful! I'm not a Perl hater, but it's use isn't exactly widespread on the modern internet. It's nice to nice it is still kicking though, and thanks for the real world examples. 

  37. Rick
    November 10, 2011 at 2:51 pm

    Wow, stay away from Asp.net? Really? I program in PHP, Java and Asp.NET and I can tell you programming in Asp.NET is heads above the rest in the Dev experience. Not only that, but compare contractor or salary rates between PHP and Asp.NET and it's a no brainier which one I would recommend a newby to learn. In fact I'd rate Java and Asp.NET above PHP for the pure earning potential alone. PHP developers are a dime a dozen and the demand shows.

    • James Bruce
      November 10, 2011 at 4:44 pm

      So I guess ASP applications are real easy for a beginner to get started developing, like out of the box on any old (free) linux server stack? 

  38. Nigelboor
    November 10, 2011 at 1:02 pm

    To try to keep the fanboi element out of this I just did a quick job search on jobsite.co.uk using PHP and .NET.
    PHP returns 600
    .NET returns 2000

    • James Bruce
      November 10, 2011 at 4:42 pm

      Just digging up some numbers is not helping anyone. I already addressed the issues of getting a job in the article. If you're looking for a corporate job then java would be a great way to go (or .net). If you're looking to develop your own next-best-thin web application - at home, right now - you should choose PHP over .NET, because it'll work on any web host you can find and there's a world of support and tutorials out there. 

  39. Dean Pugh
    November 10, 2011 at 10:54 am

    Can I add that most people here are not considering the cost side either? As this article is clearly aimed at a beginner, most would not want to spend too much money while learning. PHP can be run from your current desktop using various software for vary little, if any, cost. 
    ASP.net does come with free versions, as well as the very expensive versions, but their limited and getting a development area set up is tricky.

  40. Tobiás El?d-Zoltán
    November 10, 2011 at 10:45 am

    What about Java? I've recently taken to the idea of distancing my learning curve from pure web based languages and Java seemed like the optimal choice. But from what I understand the alternative to ASP.Net is Java. And LinkedIn uses it.

    • James Bruce
      November 11, 2011 at 8:57 am

      As Jeff said, I covered Java last week in the article on software (not web) development. I can't recommend it myself. 

      Commenters have said that c# is now cloned to be on linux and mac too in the form of Mono, so I might actually be inclined to recommend that over Java. I certainly enjoyed making some educational classroom games in c# a few years ago. The tools MS provides are great for code completion and rapid development, and the software is reasonably fast. Perhaps I just havent touched java lately, and it's no doubt evolved since I played with it, but in general the java apps I do have on my system run like crap. 

  41. Stan
    November 10, 2011 at 3:57 am

    How about Java ?
    Converting variable/data type in PHP (e.g. string, integer, boolean) is a problem.
    And another big problem is lack of the Application Scope variable, while ASP, .net, and Java haven't.

  42. Jack Cola
    November 10, 2011 at 2:32 am

    "Stay away from ASP.NET" - I wish I could!

  43. Jeff Fabish
    November 10, 2011 at 12:35 am

    You couldn't get the users to agree what day it is, in other words - feedback is usual. The article could have been completely satisfactory and conformed to the users opinions entirely, but they see ONE thing they disagree with and suddenly you're a piece of shit who needs to go die (and your mother's a whore). There are going to be disagreements in the technical community, more so specifically amongst programmers. 

    It was a good read, James. Any hints on what the next programming related article will be?

    • James Bruce
      November 10, 2011 at 8:42 am

      I'm struggling with what language to start on. I think Jessica would be a good choice to write a java beginners series as she's still in college and active with it, so I won't touch that. I thought perhaps a "My first web app" would be good, but may need to do a primer on PHP, mysql etc before tying it all together. 

      • Jessica Cam W.
        November 11, 2011 at 3:24 am

        Hi James,

        By all means, write the Java series if you'd like. :) I've only used Java in one class so I don't feel expert enough to do a whole series. 

        • Jack Cola
          November 11, 2011 at 1:31 pm

          While I did my one Java class as well, to help me learn, I wrote an eBook for myself based on the topics in the lectures, but using my own example and wordings. But back then, MakeUseOf didn't want it, and I never published it as PDF Editor (because of that), so it's still sitting on my hard drive not being read.

        • James Bruce
          November 12, 2011 at 9:18 am

          That's a shame, sorry to hear that Jack. I think MUO has changed a lot in a year though. I'm already writing tons of stuff that I was original banned from writing. I wonder if submitting your book to Justin might get it looked at again in a new light. 

        • Jack Cola
          November 12, 2011 at 11:30 am

          Nah, that's cool. I will have a think about it - I haven't spoken to Justin for a while though.

  44. Jeff Fabish
    November 10, 2011 at 12:25 am

    Unsubstantiated comments make me sick.

  45. Chuck Elliott
    November 10, 2011 at 12:22 am

    James, thank you for the article.  I think your explanation of the scope of PHP is justification enough for the recommendation.

  46. Mustafa
    November 9, 2011 at 10:08 pm

    Great topic for discussion, but not something that will ever be settled. Having working on  web/e-commerce projects (from mid 1990s), I have to say that one should learn the about the environment that you feel most comfortable with. 

    As many of you have very rightly said your goal should also be taken into consideration. If you are learning web development to create the next big thing, apache, mysql and php are great options. If you are learning it to look for a job, you may be better of on the Microsoft platform/Oracle platform(s).Also keep the big picture in mind, that all the web application engines will accomplish your goals. You may want to consider the maintenance issues (the number of lines of code it would take, time taken for a project and so on).

    • James Bruce
      November 10, 2011 at 8:40 am

      Good input, thanks Mustafa. That's a fair summary, I think. 

  47. Eric Miller
    November 9, 2011 at 8:23 pm

    There are a few new kids on the block. One of the nerdier is Node.js, Coffescript, and (since you mentioned MySQL) the various NoSQL databases. I'm a M$ developer by trade but I've recently started learning this stack.

    • James Bruce
      November 10, 2011 at 8:39 am

      Thanks Eric. Do you see them really taking off? Any examples of where they're being put to good use? Server side javascript with node.js certainly sounds intriguing.

  48. Rich Curry
    November 9, 2011 at 8:06 pm

    If you're looking for a job go with .net or Java there are tons of jobs right now using these 2 languages. If you want street cred with your fellow hackers/geeks/nerds php and perl are the way to go but there are less jobs (still jobs, just less hiring).

    • James Bruce
      November 10, 2011 at 8:38 am

      But those are also different types of programming. For someone wanting to get into web programming, PHP would be best, no? 

      Also, there may be tons of jobs for Java, but it's highly competitive. I dont think a beginner could get the level required to do anything useful in a short space of time - whereas anyone with a bit of creativity could popularise a website or sell an app on iTunes fairly easily. 

  49. w00t
    November 9, 2011 at 7:50 pm

    What about QBASIC?

    • Jeff Fabish
      November 10, 2011 at 12:29 am

      ^ Owns a musket. 

  50. Mike Olivera
    November 9, 2011 at 7:50 pm


    • Jeff Fabish
      November 10, 2011 at 12:26 am

      If you consider CSS "programming", you need higher standards. It's hardly scripting.

      • Evert
        November 10, 2011 at 1:28 am

        "Unsubstantiated comments make me sick."... double standards much Jeff?

        • Jeff Fabish
          November 10, 2011 at 3:09 am

          How is that a double standard? You can lookup CSS, I can't lookup why PHP makes him sick.

          From Wikipedia (lazy :)
          Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (the look and formatting) of a document written in a markup language.

        • Evert
          November 10, 2011 at 3:49 am

          In any case the second comment still holds, ""why don't you provide actual constructive criticism". Something more useful than, "you need higher standard."

        • Jeff Fabish
          November 10, 2011 at 3:52 am

          Well played.

      • Evert
        November 10, 2011 at 1:29 am

        + "why don't you provide actual constructive criticism"  ;)

    • James Bruce
      November 10, 2011 at 8:30 am

      Mike, CSS isn't a programming language. I believe it's covered fairly sufficiently in our ebook though: [Broken Link Removed]

  51. Andrew James Tatum
    November 9, 2011 at 7:49 pm

    I began developing web applications in 1996 and started off with Perl/CGI and moved up to PHP a year or so after that. I'd be the first to admit that PHP is easier to "get into" as it's open source and is less expensive to get up and running. However, since working in the corporate world, I've switched gears and moved onto ASP.NET/C# in 2005 and have not once looked back or regretted my decision. While there are certainly pros and cons for any language, it is obvious that this article is completely lopsided. To quote nettuts, "ASP.NET isn’t perfect—there is no such thing. But it is one of the most flexible and powerful server-side technologies available today."

    • James Bruce
      November 10, 2011 at 8:27 am

      Thanks for the input Andrew. I don't come from a corporate background so I'm afraid I am a little biassed there. However, this article wasn't really aimed at people looking to program for a corporate environment - but rather, "what should I learn as an MUO reader who's never really done programming before?". 

      • Jack Cola
        November 10, 2011 at 10:11 am

        I've just learnt ASP.Net and PHP, and I absolutely hate ASP.Net. PHP is so much easier to get your head around. In fact, I have an ASP.Net Exam tomorrow which I am not looking forward too.

  52. jowido
    November 9, 2011 at 7:41 pm

    Why can't you make web pages with Python? I'm pretty sure Django and Pyramid are up to the task.

    • James Bruce
      November 10, 2011 at 8:25 am

      You can. Do you have any examples of real world high-traffic sites running on Python? I'm afraid I can't find any. 

      • Jack Cola
        November 10, 2011 at 10:05 am

        James, I am about 90% sure both Google and Facebook use Python somewhere in their technology, and somewhat, quite heavily. 

        • Tobiás El?d-Zoltán
          November 10, 2011 at 10:42 am

          From what I know Google is running on V8 (it's own framework built in JavaScript) as well as C. Not entirely sure though. V8 got plenty of hype when Node.js entered the playing field. Facebook on the other hand is using PHP through C++ documented in their Factsheet (http://www.facebook.com/press/info.php?factsheet) in the Technology section.

        • James Bruce
          November 10, 2011 at 4:47 pm

          Okay, Wikipedia has this to say. It's not widely used, but google is one of the heavier users. In fact, I think they're the main way other people *host* python apps too on their app engine platform. 

          Commercial uses
          CCP hf uses Stackless Python in both its server and client side applications for its MMO Eve Online[1]
          Google uses Python for many tasks including the backends of web apps such as Google Groups, Gmail, and Google Maps, as well as for some of its search-engine internals
          NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment[citation needed]
          reddit was originally written in Common Lisp, but was rewritten in Python in 2005[2]
          Yahoo! Groups uses Python "to maintain its discussion groups"[citation needed]
          YouTube uses Python "to produce maintainable features in record times, with a minimum of developers"[3]

  53. Jonathan
    November 9, 2011 at 7:30 pm

     Correct me if I'm wrong but surely to create a website we need html at least, and css too. 

    • acc
      November 9, 2011 at 9:23 pm

      Those are markup languages, not programming languages.

    • Jeff Fabish
      November 10, 2011 at 12:25 am

      Kind of took that for granted. Like how they don't teach you how to sit down and be patient in driving class.

    • James Bruce
      November 10, 2011 at 8:24 am

      I did consider including those, but as @df43350123223666edd5f529e7a6edc8:disqus 
       eludes to, those aren't actually programming languages. Sorry if that wasn't clear. We've covered HTML and CSS quite a few times already, as well as got a whole ebook guide on them. 

      • Jack Cola
        November 10, 2011 at 10:09 am

        There is a difference between programming Languages (ASP.Net, C, Java), and scripting languages such as PHP


        • BenEskew
          November 14, 2011 at 11:46 pm

          You obviously didn't read that article. The author starts off saying "no" there's no difference. Then points out that even Java is not a programming language because it runs within another program. But he missed the point.

          The lack of compilation does not mean one is a "programming" language and another is not. 

          "A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer." See: http://en.wikipedia.org/wiki/Programming_language

          Therefor, any "language" which relays instructions directly to a "computer" is termed a "programming language"...therefor, PHP, Java, Asp.Net, etc all are programming languages. Example: JavaScript relays instructions to a web browser application which in turn relays those instructions to the computer it's running on...therefor js is not a programming language. PHP relays instructions to its own interpreter which in turn relays those instructions to the computer it's running on...therefor IT IS a programming language since it's relaying to itself.

  54. Tim C
    November 9, 2011 at 7:08 pm

    What a hugely lopsided post. With no real value except for pointing out the fact that you are a php fanboi. That is fine. However if you are going to write an article like this, you should objectify the facts along with having a greater breadth of knowledge.

    • Jeff Fabish
      November 10, 2011 at 12:09 am

      All rise for the honorable PHP

      Rather than degrading James as an editor, why don't you provide actual constructive criticism which will aid him in writing his next article? After reading your comment about five times, I still have no idea what you're pissed off about.

      PHP code doesn't have bugs, only undocumented features. I think PHP has just one the fight...

      • Christopher Allen-Poole
        November 19, 2011 at 8:55 am

        That's *won* the fight.

    • James Bruce
      November 10, 2011 at 8:22 am

      Wow, we have fanboys of programming languages now? Most of the internet is written in PHP, it comes as standard with web servers, and its easy. Hence in an article aimed at beginners who wish to learn something useful, I recommend it. 

      If you have something further to contribute though Tim, we'd like that. Perhaps make your own recommendation with a beginner in mind based upon your own experiences. 

      • Chris Morgan
        April 17, 2012 at 11:18 pm

        Man you get some crazy comments...to my point, though: you said you recommended PHP over Python because it was easier and cheaper to get it hosted on sites like GoDaddy. I just checked and GoDaddy says they fully support Python application code on their site - sooooo, does that change your recommendation?
        Also, while I've done some programming (VBA, and some other stuff), but not web stuff: I get the impression that if you are going to do web, say web with Python, you still need...what? MySQL, html, xml, CSS, and/or what else? An overview of the complete package necessary to produce a reasonably professional looking website would be very USEFUL, including the part each piece plays, and the best resource for making use of that tool (i.e. WordPress for PHP). I read all your articles, and I'm still not sure where to start; I like Python, so lean in that direction if feasible on a small budget of time and money. Thanks!

        • James Bruce
          April 18, 2012 at 9:57 am

          Doesn't change my recommendation to be honest - web software is primarily done in PHP. Having said that, if you particularly want to learn Python just for the fun of it, then there's really nothing to stop you. I can't really comment on being able to write a full website with it as I've never tried, but it's not going to help you adapt WordPress for instance. For a programming learning web project? Awesome.

          For any web programming, MySQL, JQuery (don't bother with core jaavscript stuff, you'll pick up what you need with jQuery), and obviously HTML/CSS. Nothing else needed.

          Good article idea - an overview of all the web technologies and how they play their role in the web. Thanks! Will try and get something written in the next week or so, published a little while after that ;)