tinlash — 2005-08-04T15:37:47-04:00 — #1
I'm in the process of getting a website developed that accesses a large database. My database will be a large relational with lots of reads and many, many users. We'll be using mySQL.
Could someone point me in the right direction regarding the pros and cons of PHP v. Ruby v. ASP.net v. JSP v. Phython? Which is more mainstream? Which are more secure? Which is faster? Which has more capabilities? I looked for other threads on this, but couldn't find much of use. Any links to other sites or other posts would be appreciated. I'd prefer stuff will less jargon because I don't want to have to go to my CTO to keep asking him to explain things to me.
Thanks in advance.
thereddevil — 2005-08-04T16:31:18-04:00 — #2
The question here is "define mainstream".
As there is a difference depending on who requests the site/solution. I.e. by a corporation, smaller company etc.
When we starts talking about the "big bucks" projects, you will see ALOT more asp, .net, jsp sites than php ones (if you will even see one with php).
However the answer to your question depends on the project in question. Depending on the specs some languages might be better than others. And of course your budget can also have a deciding factor in the choice of languages in some cases.
tinlash — 2005-08-04T17:37:22-04:00 — #3
I'm looking at the languages based on a small budget for a small business. The site should be able to handle millions of users. We hope to get approximately 6,000,000 users within 3 years, though it could grow much much faster (or slower). From a development standpoint, which languages are easier and faster to implement? Which languages are more secure? Which languages will I be able to get a lot of programmers for? I eventually hope to migrate the database to another larger, more sophisticated database like Oracle. So, which language allows me to easily move to other databases. Sorry I can't give too much information on the project.
zfade3 — 2005-08-04T18:13:29-04:00 — #4
To put my comments into context, I only have experience with Java (jsps) and php.
When it comes to speed of development/implementation, php requires much less development time. Java always requires more code.
When it comes to security, Java seems to be the most secure and trusted language as your application is usually restricted to certain behaviors, unless security settings are specifically changed. There is nothing insecure about php itself, although bad practice by the script writers can open up holes. As long as best practices are followed, php can be very secure.
Java's JDBC database connectivity allows applications to switch databases very easily. If you use a good database abstraction class for your php, you should also be able to change databases in php.
The jsp and php models are different when comparing the lifetime of the application. In php, when you request a page, the server will run your application and then it ends with the end of the request. With Java, your application will continue to run over multiple requests, allowing you to share the same data and memory until you close or reset the application. What this means is that you can have a cache of data in main memory to hold record information without having to hit the database each time there is a new request.
Php is a hot technology, and because it is so easy to use, it has a large following. But beware, not all people who "know php" know good programming / design principles.
Php5 gives good support for Object Oriented design, which if done right, can allow your new application to be much more flexible and better suited as an enterprise application.
That is my 2 cents.
stereofrog — 2005-08-05T05:04:39-04:00 — #5
That's easy. PHP is the worse. It's slowest, ugliest and least secure.
However, it's simplest and cheapest.
shrike — 2005-08-05T05:30:01-04:00 — #6
I'm not sure I agree with 'simpler', .NET and Java provide a class library for dealing with alot of situations, which PHP does not. In a sense solving a problem with PHP can be alot more involved than the other two.
stereofrog — 2005-08-05T06:09:25-04:00 — #7
Yes, but one needs to understand what "class" and "library" mean before using any class library. In php you can start "programming" with absolutely no background and "learn on the fly". Results are usually pitiful, but as they say, "this works doesn't it"...
printf — 2005-08-05T07:42:03-04:00 — #8
I don't even see Perl in there, I wonder why! If you or anyone for that matter thinks one technology such as in a single scripting or development language is your best way of doing the complete project then you had better rethink that logic because your design will be flawed from the outset!
Even large companies like Microsoft understand that one technology no matter how grand it is prodded to be it will never get the job completely done.
As a developer you are limited to your own personal knowledge or your development teams over all knowledge. But remember this, a good developer always needs to bring the best back end designs that can survive in a high usage web environment to their client. If you limit your knowledge to only one or two technologies then you are not going to survive in the corporate web design field!
In case you might still be wondering why I wrote this. It is only to tell you...
Why settle for one language when and if you can use many so your over all design will be the best that it could ever be!
But on a side note, The power of Perl has proven it's self to still be the most trusted used development language when the corporate world wants development work done that will tie into both front end (web) and back end development!
macadangdigety — 2005-08-05T11:22:33-04:00 — #9
Because the maintance of the site would be exponentially harder. Finding a programmer who knows all those languages would be much harder than finding a programmer who knows a few, but knows those few languages well.
dylan_b — 2005-08-05T16:18:54-04:00 — #10
It's also a really ugly language.
thereddevil — 2005-08-05T16:38:45-04:00 — #11
If your buget is limited, go with PHP as you will get more for your money. Though you need to be sure that the chosen programmer(s) knows their trade. There is alot of bad PHP programmers, actually Ill go as far as saying that 90% out of 100% is bad programmers, which dont know the language good enough to make fast and secure applicationes.
Of course this applies nomatter what language you chose, be sure that they know the language good enough to fulfill your project.
Do I sence a dislike towards php?
A well programmed php script is as secure and at least as fast as any of the alternatives.
However if the programmer is not good, then nomatter what language you chose the result will be slow, sloppy and unsecure.
Are there any reasons why you cant start programming without any background in the other languages? You have the same crowd of people in any language, however your correct in there is more unskilled PHP programmers due to alot more people try to grasp PHP than the other languages.
Perl is a very nice language, but its lacking some of the fitness you can find in PHP imo. And due to it usally require more resources to run simular kind of scripts, its not as used anymore as it was 5 years ago.
Though I agree with you that its nice to use two languages in a project to fulfill each others weaknesses. I usally use php/perl or php/java.
mwolfe — 2005-08-05T18:02:38-04:00 — #12
90% out of 100%
at least thats only out of 100% and not like 110%
extras — 2005-08-18T11:20:24-04:00 — #13
Speed (of language):
My personal opinion based on the Langauage shoot out and other data.
Fastest >> C > Ocaml > Perl > Python > Java > Ruby > PHP >> Slowest
I don't know where to put ASP. Probably in the Perl, Python, Java, Ruby group.
In the real use, it all depends on the implementation and server setup, I guess.
Main stream (For mission critical, huge setup):
In my imagination only, as I don't know of any valid statistic for this one.
Mainstream >> Java > Perl > C > ASP > Python > PHP > Ruby > Ocaml >> Very minor