.NET vs J2EE/JAVA vs PHP


4

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

Software

asked Dec 17 '09 at 05:29
Blank
Sthomps
46 points

11 Answers


3

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

answered Dec 17 '09 at 06:31
Blank
Skillguru
344 points
  • I myself am not a programmer, but I am trying to learn the pros and cons for each in order to effectively build the best platform. Thanks so much for the link and comments, I appreciate it. – Sthomps 14 years ago

1

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.

answered Dec 17 '09 at 05:57
Blank
James Black
2,642 points
  • +1 especially for: They all work. – Jason 14 years ago

1

See here:

http://www.brightjourney.com/q/pick-platform-startup-web-20-app All those answers will help you.

answered Dec 17 '09 at 07:41
Blank
Gabriel Magana
3,103 points
  • beautiful, thanks so much! – Sthomps 14 years ago

1

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.

Summary:
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.
Matt

P.S. This is exactly what Twitter has done.

answered Dec 17 '09 at 12:05
Blank
Espinet
221 points
  • This is a good idea. For example, if you wanted to build a prototype of LinkedIn, how long would it take to do with Ruby? Obviously after the prototype you would switch to a .NET or Java platform, but could you bang out a quick prototype in about a month or so? Thanks – Sthomps 14 years ago
  • Ruby is a programming language like PHP, its nothing to special. The beauty of it is the Rails framework. I haven't used LinkedIn but an application similar to Twitter would literally only take a couple of ours to finish (im disregarding all design elements). Rails takes a lot of elements common to most web application and does all the hard work for you. – Espinet 14 years ago

1

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.

answered Dec 17 '09 at 16:42
Blank
Raymond Giorgi
61 points
  • The main problem with PHP isn't that it's not scalable. The problem is that the majority of PHP coders don't have a clue about OOP, design patterns, coding standards and simply don't know how to write scalable code although it's perfectly feasible in PHP. – Olivier Lalonde 14 years ago
  • Ya, what you are saying makes a lot of sense. Our project is large, so a quality .NET coder is probably the best thing after what I have read through all of the comments. Thanks so much for your time. – Sthomps 14 years ago
  • Using a much higher level language like PHP or Ruby would probably be a lot more effective than using .NET or J2EE initially. You just need to make sure that you have someone who understands software architecture and general software engineering principles. Like olalonde said, majority of php coders are script kiddies and will hack something together. If you did this first and then tried to translate it to .NET or Grails (J2EE on Rails (similar to Ruby on Rails)) it would make life really difficult. – Espinet 14 years ago
  • sthomps, you mentioned your project is large. You may want to really focus your main functionality and polish it and release that first and after that add more functionality on top. Don't throw in tons of features that took you 10x longer to do, that are 60% done then release it only to find that no one wants to use your product. Remember your 1 or 2 main selling feature that are high quality is a lot better than having 15 features that are all partially broken. – Espinet 14 years ago
  • @olalonde I did speak too harshly about PHP. When programmed correctly, PHP can be used and programmed effectively by a wide number of developers. In fact, I think Facebook still uses PHP. However, there is a great temptation (especially in the early days of a start-up) to program quickly. A hacked together prototype can quickly become the production version. If you commit to following the best programming practices from the start, PHP can be an effective solution. But this rarely happens even with managerial oversight much less when you're your own boss, which makes expanding difficult. – Raymond Giorgi 14 years ago

1

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

answered Dec 18 '09 at 02:33
Blank
Skillguru
344 points
  • Cool, I like how you combine both Java and PHP. I will be sure to have a more in depth look at your site later on today. Thanks for your comment! – Sthomps 14 years ago

1

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.

answered Dec 18 '09 at 13:25
Blank

0

This is more of a religious issue rather than a business one. Go with what your developers are most comfortable with.

answered Jan 9 '10 at 06:04
Blank
Oleg Barshay
2,091 points

0

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.

answered Jan 9 '10 at 06:44
Blank
Scott Drake
176 points
  • thanks so much Scott. I agree with everything you said here. We ended up going on a .NET framework coding in C# with SQL as the database. – Sthomps 14 years ago

0

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.

answered Dec 24 '09 at 06:20
Blank
Abdu
384 points

0

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.

answered Dec 19 '09 at 02:14
Blank
Dan
303 points

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Software