What programming language should I use for a Digg-like web site?
June 15, 2009 11:37 AM Subscribe
What programming language should I use for a Digg-like web site?
I'm no web developer, but I already have a high traffic picture gallery which I want to turn into a digg-like picture voting site.
I'm going to hire a developer and would like your recommendations on which programming language I should target for the site?
My site currently does about 2 million pageviews per month already, so I expect the traffic to go up. The programming language should easily handle a lot of traffic on 1 dedicated server.
I keep hearing a lot about Ruby on Rails. I'm familiar with PHP/MySQL, but not sure if that is the best programming language for this project.
I also keep hearing a lot about cloud hosting. This sounds like a good option as well.
Basically, to sum up my question: I want to post a "programmer wanted" ad for this project. What should I be looking for from a developer?
I'm no web developer, but I already have a high traffic picture gallery which I want to turn into a digg-like picture voting site.
I'm going to hire a developer and would like your recommendations on which programming language I should target for the site?
My site currently does about 2 million pageviews per month already, so I expect the traffic to go up. The programming language should easily handle a lot of traffic on 1 dedicated server.
I keep hearing a lot about Ruby on Rails. I'm familiar with PHP/MySQL, but not sure if that is the best programming language for this project.
I also keep hearing a lot about cloud hosting. This sounds like a good option as well.
Basically, to sum up my question: I want to post a "programmer wanted" ad for this project. What should I be looking for from a developer?
This is only indirectly important. You can get a bad developers to write bad code in any language. Having said that, Ruby guys are likely to be better educated than PHP guys in building a stable site. But it's no guarantee. Also, Ruby guys will probably charge you more, but again, that's no guarantee.
posted by GuyZero at 11:44 AM on June 15, 2009
posted by GuyZero at 11:44 AM on June 15, 2009
Python/Django on Amazon EC2. Minimum configuration will cost around $75/month for a single virtual server, and you can scale up in many directions from there (speed, availability and storage). There are probably existing prebuilt machine images (AMIs) that have Django and MySQL already installed and set up. There are Rails and PHP AMIs as well if Python's not your thing.
Note that this is not a pointy-clicky environment, so you'll want a programmer with some Linux admin and command-line chops.
posted by ldenneau at 11:44 AM on June 15, 2009
Note that this is not a pointy-clicky environment, so you'll want a programmer with some Linux admin and command-line chops.
posted by ldenneau at 11:44 AM on June 15, 2009
If you're looking for battle-tested open source code, there's always Reddit. It's written in python.
Development Page
License
posted by Axle at 11:46 AM on June 15, 2009 [1 favorite]
Development Page
License
posted by Axle at 11:46 AM on June 15, 2009 [1 favorite]
[as a developer myself]
Nth'ing the reuse of existing code/projects, as well as finding a good dev is more important than which language is used.
I'd put more emphasis on a developer who has done similar projects before and has a strong portfolio that you can look at. This project may sound simple, but its surprisingly difficult to do correctly and thus you should be willing to pay for experience and listen to the developer's experience. Once you find a good dev then you can trust their choice of language for the project.
For instance, your current gallery is very popular - what language is it written in? What will it take to port all your current images to a new language/application? Do you want something built from scratch, an extension to your current site, or adapting an existing digg-like app to your needs?
Also, at some point of scale 1 server will not handle your traffic and you *will* need to scale. How will your new application handle running on multiple servers? Can you easily add more capacity? Will there be any consistency problems between the multiple servers?
posted by jpeacock at 12:09 PM on June 15, 2009
Nth'ing the reuse of existing code/projects, as well as finding a good dev is more important than which language is used.
I'd put more emphasis on a developer who has done similar projects before and has a strong portfolio that you can look at. This project may sound simple, but its surprisingly difficult to do correctly and thus you should be willing to pay for experience and listen to the developer's experience. Once you find a good dev then you can trust their choice of language for the project.
For instance, your current gallery is very popular - what language is it written in? What will it take to port all your current images to a new language/application? Do you want something built from scratch, an extension to your current site, or adapting an existing digg-like app to your needs?
Also, at some point of scale 1 server will not handle your traffic and you *will* need to scale. How will your new application handle running on multiple servers? Can you easily add more capacity? Will there be any consistency problems between the multiple servers?
posted by jpeacock at 12:09 PM on June 15, 2009
I think youre looking at this wrong. This isnt a programming question, its a load question. The idea here isnt what language can handle your load, but what combination of software and hardware can handle your load. You developer should be able to help you with most of this. He should be able to write his queries in a way that doesnt pound your database. He should at least be able to tell if your server can handle this load. If not then you may want to talk to an IT consultant. We dont know what features you want to implement so its impossible for us to say "do this, this will handle it." It requires planning and testing. Development is just part of the equation.
You may need to break up your load between two servers, one http server and one sql server. They can be networked together with gigabit ethernet. You can test load with something like Jmeter.
posted by damn dirty ape at 12:15 PM on June 15, 2009
You may need to break up your load between two servers, one http server and one sql server. They can be networked together with gigabit ethernet. You can test load with something like Jmeter.
posted by damn dirty ape at 12:15 PM on June 15, 2009
It doesn't make much difference whether it's built with Python, Ruby or PHP. What's more important is the quality of work and overall architecture, so you need to try to judge the developer's broader skills, expertise and attention to detail.
Any half-decent developer will be itching to bombard you with probing questions about the site, your plans, what type of authentication you'll want, what admin tools you might need, and so on. Don't worry if you can't answer them all, be open about what you're good at and what you need help with. If you don't feel like you've had a bit of a grilling after a detailed discussion of the project then you've got the wrong person.
For a site with millions of page views you'll want to hear plenty of ideas about scaling, database architectures, caching and monitoring. It may also prove necessary/sensible to split the work and involve a third person, e.g. so that one is in charge of app development and the other server setup/monitoring/maintenance, with both collaborating on architecture. Sometimes it's not possible to find one person to do everything well.
posted by malevolent at 12:16 PM on June 15, 2009
Any half-decent developer will be itching to bombard you with probing questions about the site, your plans, what type of authentication you'll want, what admin tools you might need, and so on. Don't worry if you can't answer them all, be open about what you're good at and what you need help with. If you don't feel like you've had a bit of a grilling after a detailed discussion of the project then you've got the wrong person.
For a site with millions of page views you'll want to hear plenty of ideas about scaling, database architectures, caching and monitoring. It may also prove necessary/sensible to split the work and involve a third person, e.g. so that one is in charge of app development and the other server setup/monitoring/maintenance, with both collaborating on architecture. Sometimes it's not possible to find one person to do everything well.
posted by malevolent at 12:16 PM on June 15, 2009
Python/Django on Amazon EC2. Minimum configuration will cost around $75/month for a single virtual server
That's insane. For one thing, you can get virtual servers cheaper (like $19) then that elsewhere, except billed by the month rather then the hour like EC2.
posted by delmoi at 12:55 PM on June 15, 2009
That's insane. For one thing, you can get virtual servers cheaper (like $19) then that elsewhere, except billed by the month rather then the hour like EC2.
posted by delmoi at 12:55 PM on June 15, 2009
As far as load goes, do you have any idea what kind of load you will actually be getting? Unless you're planning to invest a lot in marketing, you probably won't get too much traffic right away, it will take time for traffic to grow organically.
posted by delmoi at 12:56 PM on June 15, 2009
posted by delmoi at 12:56 PM on June 15, 2009
At a current exposure of 2 million hits/month, I'd say that he's already in a place where traffic is going to be an issue.
As a developer, I agree with damn dirty ape. You're looking not so much for a specific platform/code base, as you are for an application that generally scales out with additional users. For that particular requirement, it's largely immaterial whether you're using PHP with RoR, ASP.NET, JSP, etc. They can all get the job done, but they're just the palette; the end painting is still going to depend on the artist.
I also agree that there are a number of third party solutions already available that probably do what you want, or at least get you 90% of the way there. Unless you have a particular reason for rolling your own, I'd start there first.
posted by Brak at 1:52 PM on June 15, 2009
As a developer, I agree with damn dirty ape. You're looking not so much for a specific platform/code base, as you are for an application that generally scales out with additional users. For that particular requirement, it's largely immaterial whether you're using PHP with RoR, ASP.NET, JSP, etc. They can all get the job done, but they're just the palette; the end painting is still going to depend on the artist.
I also agree that there are a number of third party solutions already available that probably do what you want, or at least get you 90% of the way there. Unless you have a particular reason for rolling your own, I'd start there first.
posted by Brak at 1:52 PM on June 15, 2009
From real world experience, your not so much concerned with the language ( though I am partial to Perl ) but more the skills of your programmer.
The site will need to scale, and scalability is a pretty interesting field.
http://ask.metafilter.com/82769/How-is-Facebook-doing-its-queries#1226139
The question above is an interesting read, and will fill you in on some issues when it comes to scalability.
posted by petethered at 2:33 PM on June 15, 2009
The site will need to scale, and scalability is a pretty interesting field.
http://ask.metafilter.com/82769/How-is-Facebook-doing-its-queries#1226139
The question above is an interesting read, and will fill you in on some issues when it comes to scalability.
posted by petethered at 2:33 PM on June 15, 2009
Don't look for a technology, look for who is going to support it. If you're hiring a developer, look for a language and tools that are common, so that you won't have trouble finding someone to do enhancements and bug fixes later on.
posted by blue_beetle at 2:53 PM on June 15, 2009 [1 favorite]
posted by blue_beetle at 2:53 PM on June 15, 2009 [1 favorite]
Python/Django on Amazon EC2. Minimum configuration will cost around $75/month for a single virtual serverIf your metric for a good host is cost above all else, then EC2 isn't what you want (for this size site). If your metric is the speed and ease of scaling out.. then EC2 is worth looking at.
That's insane. For one thing, you can get virtual servers cheaper (like $19) then that elsewhere, except billed by the month rather then the hour like EC2.
posted by justinlilly at 9:53 PM on August 30, 2009
« Older Upcoming one-time/long term expense calculator? | I'm looking for a website about/for people that... Newer »
This thread is closed to new comments.
posted by null terminated at 11:39 AM on June 15, 2009