Skip to main content
  1. Posts/

Ask Away: Language choice on a potentially high-traffic site

·386 words·2 mins
Joe Erickson
Author
Joe Erickson
Senior software developer specializing in web development, AI, and helping others learn to code.

Welcome to Ask Away where I answer some of the questions sent to me or found on the web. Today’s question comes from a comment on one of my Reddit threads that I answered recently about language selection for high performance:

NakedHowler: I’m thinking about creating an app that hopefully one day will have tons of people using it. My problem is should I learn Python and Django or just stick with PHP and advance further to learn Laravel? I want this app to be like Instagram, or something like imgur but better.

wat do ?

When talking about scaling at that level, the real discussion is on server architecture, not programming language. Programming language performance differences at that point are trivial compared to the massive amount of processing and storage needs you’ll run into. You’ll need to worry about spinning up multiple servers with multiple databases, not the fact that with this language you’d only need 20 servers but with this other language you’ll need 21.

So if you know PHP (and yes, learn Laravel or a similar framework), go with it. In fact, imgur is built with PHP, Wikipedia is built with PHP and even Facebook is built with PHP and they don’t crash and burn from heavy usage. (Not to poke too much fun, but reddit does crash and burn from time to time and it’s written in Python.) Facebook has also released their custom runtime for PHP called HHVM that really speeds up PHP execution times, a big advance in the language.

At some point it will probably make sense to write some of the complex image processing code in a functional language like Scala or Erlang, but I would even recommend you not worry about that now. You’ll get to that when the time comes.

In the end, if large applications like Twitter and Basecamp can get Rails to scale (one of the slowest languages in most benchmark tests) then picking a language is not the important part of scaling an app up to a large amount of users.

So stick with what you know if you like it. If you’d rather learn Python, go for it. In the end, it won’t matter. Every popular language has a big website using it and you’ll be able to get it working too.

Related

How It Started: Ravelry

·793 words·4 mins
Welcome to “How It Started”, a feature where I talk about how different sites around the internet were built to give an idea of what’s involved in a real world web application. I hope to illustrate that some of the biggest websites today had very humble beginnings that are achievable by learning the basics of web development.

What to learn when you want to learn web development

·1067 words·6 mins
I’ve seen a lot of posts on /r/learnprogramming and other places wondering how to get started with web programming. I’ve been doing this for about 15 years now and I’m here to give you some good news. Everything that I’ve done, from bill pay sites for Fortune 100 companies to lead tracking applications for small businesses, is essentially based on one simple concept and that’s CRUD.

How to learn programming quickly

·782 words·4 mins
Having been in web development for over 15 years, I’ve had to learn a lot of new technologies. When I started, JavaScript was something you avoided and no one had heard of CSS. Now, you’re nothing it you don’t know both of those like the back of your hand. Things change fast on the internet and you better be able to learn programming quickly. Most of that was on the job training and that means picking things up enough to be productive now.