We are currently building a new social networking platform, and I was wondering everyone's opinion was on what base to build it on. I know this is an age-old debate between .NET and PHP, just wondering what people believe is the best to build. (speed, scalability)
Thanks in advance
If you are a programmer, I would suggest go with a language you are comfortable with. I am a programmer and stared with my product. Some people suggested to go with Ruby on rails, others said php etc etc
The idea is to develop your product at earliest , launch it , validate your business idea and then move forward. If your product succeeds then you can can always come back and fine tune it.
The advantage with language like Java, .NET and php is that you can find lot of programmers. Some more advice can be found here
Tools for startup I used java, Spring hibernate with php
What requirements do you have? What external libraries or functionality do you want to use?
Which OS are you running on, WinXP?
What are you familiar with, how strong are you in these three languages?
Personally I would look at going to Scala, using LIFT, as it runs on the JVM, but, if you don't have anything done yet, then you may want to start with PHP, so you can get something done quickly, and at least have an alpha version up, so you can show potential investors.
Once you know what features you want then you can redo it in a cleaner fashion in .NET or Java, depending on your answers to the questions above.
By going to .NET, if you worry about speed or scalability in parts then you could write those parts in F# and get some improvement, for example, but Scala will compile both CLR and java bytecodes so it can work on either platform, so scalability is less of a concern, if you can design in multi-paradigmic systems (I think that may be a new word, may need to be spelled 'paradimic').
If PHP meets your needs and you can scale it well, then you can continue to use it as your front-end and just look at making changes to the backend.
My point is that all three are used in large websites, so any of them will work well, the correct answer will be based on your answers above.
For example, if you need Comet, so you can have socket connections that stay open for a long time, then PHP will have a problem, then you are using .NET MVC if .NET can do it at all, otherwise you are looking at some other language.
http://www.brightjourney.com/q/pick-platform-startup-web-20-app All those answers will help you.
For a quick rapid prototype to get proof of concept, as a software engineering student I'd recommend Ruby on Rails. It so much time consuming work for you saving you hours and hours doing stuff you need to do else where. Rails also has a lot of "Gems" which add extra functionality to your software with very little effort. Something like Facebook's auto-complete in their search bar.
Once your application takes off, your profitable, and Ruby is no longer fast enough then you could translate some of subsystems to a much faster language. You can leave those decisions for later.
Build your application quickly and easily in Ruby on Rails
See if theirs a market or if you have a quality product people want to use.
Get a large userbase and become profitable.
Move subsystems to a faster language if required.
P.S. This is exactly what Twitter has done.
I can't answer on .NET vs J2EE, since the differences between the two are pretty marginal and asking which is better is usually the same as asking, "What's your preference"?
However, it's been my experience that PHP is not great at scaling in terms of programming, and, as the old adage goes, hardware is cheaper than your engineer's time.
A couple years ago, I worked on maintaining an existing PHP inventory application, and even the slightest change often times meant spending hours combing through a combination of code and HTML trying to find an ending curly brace. Of course, I had to edit the deployed application remotely using emacs, but that's another story entirely.
For small applications, though, J2EE and .NET can really be overkill. In Java, a lot of time needs to be spent configuring and tuning Hibernate, struts-config, etc, so simple CRUD applications are usually done best in PHP.
One very important thing to keep in mind, though, is that both .NET and Java are also meant to be used to implement desktop applications, which is great because you have access to third party packages, system info, etc. from within your web application.
I am a j2EE programmer and prefer Java+Spring+Hibernate on tomcat server. I was not a big fan of php but every since I started used wordpress and its plugins , I have become a big fan. If you look at my site Skill-guru, it is a combination java and php.
I did most of part in java and integrated wordpress for blogging and then integrated a third party forum , jforum.
I managed to pull wordpress posts into java application by connecting two databases.
The best of part of php is that is search engine friendly.
So I am having best of both worlds. Our blog consists of lots of articles and information of how we are doing all this stuff.
But remember do not try to code everything. Jot down requirements and then try to integrate existing applications and componenets
Don't look at just the technical pros and cons of the language, also look at the programmer culture associated with that language.
In my experience, the J2EE folks are very "enterprise-ey". Very process oriented / methodical. Where as the Python / Ruby folks are more dynamic, flexible, improvisational kind. I guess it has to do with the nature of the languages and the availability of toolkits.
Neither style is right or wrong, be aware that there are different styles and consider the one you are comfortable with.
This is more of a religious issue rather than a business one. Go with what your developers are most comfortable with.
Find talented developers and let them tell you what they would like to use. Talented = experienced building apps with challenges similar to yours that were successfully completed and launched, and preferably lived with for a few years. Make sure that it's easy to find other talented developers in whatever languages/technology stack they recommend because they likely won't be around in a year. In my local market, there's a ton more .Net developers than J2EE. In other markets J2EE is more common. Almost any language/platform can be used to build a successful app if the right talent is working on it. So focus on finding the right talent from the largest available pool in your market, not on the technology.
I don't think PHP is scalable enough. The choice of language doesn't matter much. Use whatever you are comfortable with. If you are going to hire local programmers, look at their rates. I think Java/J2EE is the most expensive and it might be hard to find good Java developers.
Also you might want to start with an open source project instead of starting from scratch so whatever language/technology that project is using, that would be your criteria.
Although I don't know your requirements (as another poster pointed out), I would at least consider Google App Engine, the Python edition, that's probably Django, maybe Pylons.
The biggest advantage is zero sysadmin. No configuring boxes, deploy by clicking a button. It also scales, but that's a rarer problem.
The biggest downside is that it is preview release and has limitations. However, that may not be a big downside if what you are trying to do is rapidly find market fit.