Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Choice of Language for Large-Scale Web Apps?

Cliff posted more than 9 years ago | from the dilemma-of-many-choices dept.

Programming 801

anyon wonders: "PHP is the most popular language for the web. eBay uses ISAPI (C), Google uses C/C++ (search), Java (gmail), and Python. Microsoft uses ASP (what else?). For small web site, it really doesn't matter. What's your take on language choice for large-scale web applications? Maybe language choice is irrelevant, only good people (developers) matter? If you can get the same good quality people, then what language you would chose? Considering the following factors: performance, scalability, extendibility, cost of development (man-month), availability of libraries, cost of libraries, development tools? Has there been a comprehensive comparison done?"

cancel ×

801 comments

Sorry! There are no comments related to the filter you selected.

Hmmmm (2, Funny)

bryan986 (833912) | more than 9 years ago | (#13202964)

I prefer english

Polyglot (3, Insightful)

FTL (112112) | more than 9 years ago | (#13202966)

What's your take on language choice for large-scale web applications?

As many as possible. Use PHP for the front end, Perl for input parsing, Euphoria for the graphics, JavaScript on the client-side, Moo for the database and Python for the glue to hold things together.

Every language has strengths and weaknesses. There is no killer language. A good carpenter has lots of tools and uses the most suitable tool(s) for each task. Likewise a programmer should be skilled in many languages and should pick the most appropriate one for each task. Learn as many programming languages as you can, and when you've done that, learn a few more.

[The feeling of job security is also rather nice.]

Re:Polyglot (2, Informative)

l33t.g33k (903780) | more than 9 years ago | (#13202974)

Google uses Java (gmail) Not really. They use JavaScript for that, which is quite different.

Re:Polyglot (0)

Anonymous Coward | more than 9 years ago | (#13202999)

You are confusing client-side scripting with server-side web applications.

Re:Polyglot (-1, Redundant)

FortKnox (169099) | more than 9 years ago | (#13203006)

gmail and google maps are written in Java and take advantage of AJAX (look it up).
They are why Ajax is making such a big splash now (even though its been available for years).

Re:Polyglot (4, Funny)

ScytheBlade1 (772156) | more than 9 years ago | (#13203067)

Re:Polyglot (-1)

FortKnox (169099) | more than 9 years ago | (#13203088)

I'm a Java developer. Please read the docs about Ajax before telling me something that has nothing to do with it.

Ajax asyncronously calls JAVA functions without needing a page redraw. When you see that "Loading..." red box in the corner in gmail, its actually using JAVASCRIPT to make an asyncronous call to JAVA and getting the results back.

Java is not Javascript, but AJAX brings the two together.

Wrong (5, Insightful)

dereference (875531) | more than 9 years ago | (#13203131)

Ajax asyncronously calls JAVA functions without needing a page redraw.

Wrong.

AJAX asynchronously calls any server-side technology without needing a page redraw. It could be PERL, ASP, or anything else that can respond to an HTTP Request.

Please read the docs about Ajax before telling me something that has nothing to do with it.

Please follow your own advice.

Re:Polyglot (5, Informative)

PotPieMan (54815) | more than 9 years ago | (#13203144)

Ajax, which stands for Asynchronous JavaScript and XML, does not necessarily imply Java on the backend. Many Web application frameworks, such as Ruby on Rails, include Ajax helpers. I'm sure many Java Web app frameworks have also added support for it.

Adaptive Path has a nice article introducing Ajax called Ajax: A New Approach to Web Applications [adaptivepath.com] .

Re:Polyglot (1)

Curien (267780) | more than 9 years ago | (#13203152)

Um... no. Well, maybe. The whole point of separating the client and server via a transparent, transaction-based protocol (ie, HTTP) is that it doesn't matter what the server uses -- hell, the client can't even tell. The best it can do is guess based on spurious clues like file extension or HTTP headers.

Gmail's server code could be implemented in bash script for all we know, and it would function the same (well, slower maybe).

COULD SOMEBODY PLEASE MOD THAT FUCKTARD DOWN?! (0, Insightful)

Anonymous Coward | more than 9 years ago | (#13203154)

AJAX != Java, ass faggot!

Re:Polyglot (0)

Anonymous Coward | more than 9 years ago | (#13203163)

I'm a Java developer as well and you aren't understanding what everyone else is saying.

The point the grandparent is trying to make is that Java is not necessary for AJAX. The server on the other end could be written in BASIC for all the AJAX app cares. The server only needs to be able to return something that the javascript library running in the browser can understand. That's it. Just so you know, there are several AJAX libraries for a number of languages including VBScript, C#, ASP.NET, PHP, Ruby, Perl and Python.

Stop being dense.

Re:Polyglot (2, Informative)

connsmythe96 (576445) | more than 9 years ago | (#13203172)

AJAX makes an HTTP request (using Javascript) which returns XML. The backend can be written in any language (Java, PHP, Perl, whatever).

Example [phpbuilder.com]

Re:Polyglot (1)

cratermoon (765155) | more than 9 years ago | (#13203091)

The commentor and OP are confusing Java and Javascript. The two share a C-like syntax, that is all. The only reason they even have a confusing name is because Netscape renamed Livescript at the same time the Java-for-applets alliance with Sun was driving the browser. Brendan Eich [netscape.com] probably wishes he could have a do-over on that one.

Re:Polyglot (0)

newspeeker (681967) | more than 9 years ago | (#13203037)

I'd say: Use just one language. .NET, Java, whatever.

As long as it contains enough features and you can run your code on the webserver AND as a backend process.

With just one development environment you keep it simple and you save lots of time. Should also be easier to test.

Perl. (5, Funny)

Anonymous Coward | more than 9 years ago | (#13202968)

For everything.

Seconded! (2, Informative)

XanC (644172) | more than 9 years ago | (#13203011)

It does it all, and it values the most expensive component of software (for all but the biggest Web apps): programmer time.

Re:Perl. (0)

Anonymous Coward | more than 9 years ago | (#13203031)

(Score: 5, Jihad)

Re:Perl. (1)

ArcticFlood (863255) | more than 9 years ago | (#13203047)

Agreed. Perl is nice, especially when you need a module for something special and can easily find it on CPAN.

PHP is only popular because.. (1)

dotdan (902253) | more than 9 years ago | (#13202978)

..almost every web host supports it. I'd say 99% of hosts that market to online audiences support PHP/MySQL.

How many of them support Python/PgSQL, for example?

None. That's why PHP is popular--if you code in anything that isn't PHP, most people on LAMP won't be able to use it. People not being able to use it = people not buying it. Which is bad.

Let me get this straight... (2, Interesting)

Anonymous Coward | more than 9 years ago | (#13203076)

PHP is only popular because it's popular?

Perl? (2, Interesting)

hanshq.net (671857) | more than 9 years ago | (#13202983)

Perl is also a nice choice. Sites Running mod_perl [apache.org]

Re:Perl? (1, Interesting)

Anonymous Coward | more than 9 years ago | (#13203033)

Perl is a write-only language

Re:Perl? (2, Informative)

rascal1182 (729393) | more than 9 years ago | (#13203145)

Perl is a write-only language

O, if only mod points hath I.

AC is right. Perl is not the best choice as far as upkeep goes. This is especially true if you get those l33t p3rL haXX0rzzZ who feel the need to program in circles.

What is a better language than perl? Why, Ruby! (and not just because of Rails) However, for large projects where performance may be a significant factor, the answer for many of the back-end logic stuff would be something more like C/C++.

I agree with many other people posting. The language itself is not important. Good design and good people are what leads to good code. The language is only a tool.

Re:Perl? (1)

vivekg (795441) | more than 9 years ago | (#13203079)

Slashdot also runs on perl...

Re:Perl? (1)

NutscrapeSucks (446616) | more than 9 years ago | (#13203201)

Yup, Perl is the language of choice to generate non-conformant HTML 3.2.

Who do you have? (3, Interesting)

rob_squared (821479) | more than 9 years ago | (#13202984)

Smarter people than myself have said it, if the people you have know a certain language, use that, don't force them to use something else even if it is conceived to be better. Now if you're going out and specifically hiring people for this project, things get a whole lot more touchy-feeley and you'll be forced to do much research. But then again, you're probably expecting to do a lot of that anyway.

Re:Who do you have? (1)

John3 (85454) | more than 9 years ago | (#13203069)

We support PHP, Perl, and Cold Fusion on our web servers and the choice depends on who's coding it and who's going to support it. I've got several people who grew up with HTML and CFML and they like that whole "world", and their comfort level makes it easier for me.

FORTRAN! (0)

Anonymous Coward | more than 9 years ago | (#13202986)

You ignorant fools! FORTRAN! The only real uppercase language!

WebObjects (5, Interesting)

lightningrod220 (705243) | more than 9 years ago | (#13202987)

Apple uses WebObjects for its online store and the iTunes store. Consider that those go under a lot of stress. Those seem to be the biggest examples of its use, so I don't know what kind of performance it does in other situations. But for an all-around package, it seems to be pretty good.

Java Java Java! (4, Informative)

FortKnox (169099) | more than 9 years ago | (#13202988)

No question about it!

performance, scalability, extendibility, cost of development (man-month), availability of libraries, cost of libraries, development tools

Performance? Assembly will give you the best performance followed by C and C++. All three of do not have that great of support for web apps..
However, Java is almost exclusively being used for large enterprise websites. Its powerful enough to handle the big jobs, and using the appropriate app server will give you great performance.
Cost of development is heavy in initial development, but pays for itself in maintenance. Most libraries and APIs are free in java (struts, spring, hibernate, tapestry, etc etc etc...). I'd say they are second to perl in terms of freely available and powerful libraries and APIs.
Development tools? Just check out the (free!) eclipse platform.

In my mind there is no question that Java (more specifically J2EE) is the best option for general large scale enterprise applications.

Re:Java Java Java! (4, Insightful)

Surt (22457) | more than 9 years ago | (#13203087)

Actually, odds are that hand written assembly will underperform compiled c these days. Hiring or training people that can write better assembler than a modern compiler is very very difficult.

But for web development, Java is generally the right choice for the backend. Lots of competent people available who will require no learning curve. The support tools available for java on the backend are also clearly the best right now, as you pointed out (hibernate etc.). The tools for working in java are also a step ahead of anything else right now (idea and even its slightly retarded younger brother eclipse are both way ahead of the tools for any other language).

Re:Java Java Java! (1)

hexed_2050 (841538) | more than 9 years ago | (#13203196)

[i]Hiring or training people that can write better assembler than a modern compiler is very very difficult.[/i] Even Intel can't seem to optimize the correct set of instructions for AMD processors on their Intel compiler =)

...and one glue language to bind them all (0)

Anonymous Coward | more than 9 years ago | (#13202989)

perl

The only thing that counts... (3, Insightful)

Qui-Gon (62090) | more than 9 years ago | (#13202994)

And you said it...

Maybe language choice is irrelevant, only good people (developers) matter?

Consider the employment market (2, Insightful)

Brento (26177) | more than 9 years ago | (#13203000)

You're using examples of Ebay, Google and Microsoft's web sites as your "large-scale" web app description. If you truly do want to build something as large-scale as that, then you're going to have a lot of hiring to do. Take a look at your local market - or even better, place ads for architect-level people in each of the languages you're considering. See what kinds of people you get, and that should weigh into your decision.

The only way to hire a good architect (1)

melted (227442) | more than 9 years ago | (#13203156)

The only way to hire a good architect is by poaching. We had a tester on our team, and he was lazy, clueless motherfucker. He left the company and joined a startup which his drinking buddies founded. Guess what's his title now? Yup, he's a Software Architect, no less.

If you want to hire one of those smooth-talking fellows, go ahead do it. I wouldn't hire an architect if I was starting a company. I'd hire a few good developers and then see which one of them is the best (as in "writes the best code") and promote him to an architect.

Nothing like... (0)

KJE (640748) | more than 9 years ago | (#13203001)

a nice little flame war on a Saturday afternoon.

Ready, set, go!

Re:Nothing like... (1)

clunis (62681) | more than 9 years ago | (#13203045)

it isn't saturday afternoon in Europe or Asia, you insensitive clod! ;)

Re:Nothing like... (0)

ResQuad (243184) | more than 9 years ago | (#13203048)

Ya - Basically. "Slashdot, home of programmers and nerds and other opinionated people, which is best?"

Doesnt matter what they ask - its going to be a huge flamewar. I'm going to go for cover now.

One word: (1)

OblongPlatypus (233746) | more than 9 years ago | (#13203009)

Erlang!

I would elaborate, but I'm afraid it would go straight over the heads of all you imperative programming dweebs. </smug>

Re:One word: (1)

d_strand (674412) | more than 9 years ago | (#13203075)

Well while I love the elegance of a well designed functional implementation, functional languages are easy to abuse creating unreadable code (that might work but is hell do maintain)

Though i admit to never having used Erlang, I have used others.

ASP.NET w/C# (2, Insightful)

gfody (514448) | more than 9 years ago | (#13203013)

this should've been a survey

Microsoft (0)

Anonymous Coward | more than 9 years ago | (#13203017)

Lets not forget ASP.NET, but since we are talking langages and not frameworks/platforms i would say "C#"

Language Choice is critical to the evolution (0)

Anonymous Coward | more than 9 years ago | (#13203019)

You must choose a language which is actually maintainable. By maintainable we mean the language must supports modern ways of modularization etc.

This means PHP is a poor choice due to the lack of namespaces and poor resolution of includes.

all these new languages are hype (5, Funny)

Dysenteryduke (903867) | more than 9 years ago | (#13203021)

For large scale applications, java, c/c++, perl, PHP just don't cut it. You should really check out mod_fortran. Everything you love about fortran with none of the hype.

Re:all these new languages are hype (5, Funny)

deaddrunk (443038) | more than 9 years ago | (#13203082)

Even IBM COBOL has web extensions and an XML parser these days; I've used them to generate reports.

Re:all these new languages are hype (4, Funny)

Ryosen (234440) | more than 9 years ago | (#13203147)

>>Everything you love about fortran with none of the hype.

I read that as "Everything you love about fortran with none of the hope."

Fortran? Seriously, what's the matter? Was Emacs not available?

Just because you can, doesn't mean you should.

What about security? (1)

foobarra (869305) | more than 9 years ago | (#13203024)

anyon has some good questions on building a web application, but once the thing works, it must be audited regularly and updated to secure poor coding. Perl and Python are excellent choices for this - build the front end in whatever you want, utilize the huge libraries of Perl and Python modules for back-end functionality, and keep tabs on updates to the modules to keep the application from being exploited.

Re:What about security? (3, Interesting)

jadavis (473492) | more than 9 years ago | (#13203107)

Perl, Python, and Ruby are handy because they have an interface to C. You never find yourself without a module if you can just make a wrapper for C.

Although I haven't tried it, you can get similar benefit from using Jython. Having two languages like Python and Java at your disposal has got to be a godsend for a large web app. I'm not sure if you still get to use C modules if using Jython.

Where are the best practices for each language? (2, Insightful)

Alderete (12656) | more than 9 years ago | (#13203025)

I've been getting into Ruby on Rails [rubyonrails.com] recently, and am most excited by how Rails makes it very clear what the "best practices" for organizing and building your application is.

I have long despaired of learning that same information for PHP (with which I have much more experience). I've not yet found a book or other documentation that provides a concrete approach. And looking at existing large-scale projects, e.g., WordPress and others, reveal a myriad of different philosophies. It leaves developers basically trying different things out on different projects, and picking up their own favorite best practices as they go along.

While it's great that the languages are so flexible, well, sometimes it's nice to be guided to a known solid approach. It leads to consistency among and across many developers and time. This makes it easier for new developers to join or take over a project, or even for the original developer to do maintenance on components which were written long ago.

So, where are the recommended approaches for organizing and constructing large-scale applications for PHP (and Python, etc.)?

Re:Where are the best practices for each language? (1)

FortKnox (169099) | more than 9 years ago | (#13203058)

Just an FYI, there is a trails [java.net] project that mimics the ruby on rails project for Java (I've worked with the guy that developed it).

Re:Where are the best practices for each language? (1, Interesting)

Anonymous Coward | more than 9 years ago | (#13203062)

If you like the ruby framework there is Cake [sputnik.pl] which is a port of it to php.

Re:Where are the best practices for each language? (1)

beware1000 (678753) | more than 9 years ago | (#13203095)

I'm in the process of working on a largish scale rails project now (I took a break from laying down the SQL work to visit /.).

How do you find it performs? and any hurdles you have come across sofar?

-Offtopic I realise, but I am curious and I am sure afew others are.

Re:Where are the best practices for each language? (1)

ThinkComp (514335) | more than 9 years ago | (#13203175)

PHP is probably the easiest way to go in my opinion; Lampshade [thinkcomputer.com] gives it some structure. No objects, just very, very fast and consistent.

You only need one thing for it all... (0)

Anonymous Coward | more than 9 years ago | (#13203028)

Emacs

You forgot Perl (1)

ResQuad (243184) | more than 9 years ago | (#13203032)

Slashdot uses perl! Regardless, If I were to choose any web language I would use Perl. Lib's? Free! Tons of dev's out there too.

Re:You forgot Perl (0)

Anonymous Coward | more than 9 years ago | (#13203063)

I slashdot farts with all sorts of errors on a weekly basis. Not to mention the code is famously unmaintainable. When's the last time a major feature was added?

Re:You forgot Perl (1)

ResQuad (243184) | more than 9 years ago | (#13203101)


the code is famously unmaintainable

That may be true. But code maintainability isnt the fault of the language, its the fault of the programmers. I'm not trying to speak bad against Taco or anyone that has worked on slashcode, I'm just saying that it isnt the language.

So slashdot has issues from time to time, what sites dont? (Minus Google). If you start from the begining designing for scalability, you should have less issues latter on. Its when you start with a "small" project that grows and becomes something it was never designed to handle that you start to have big issues.

python (0)

Anonymous Coward | more than 9 years ago | (#13203034)

Python of course.

Python (3, Informative)

g-to-the-o-to-the-g (705721) | more than 9 years ago | (#13203039)

Python is the way go to [zope.org] . For anyone who's built custom sites based on Zope, I think they would agree with me. Python is really easy to use for building big apps for use in web stuff, and Zope provides an easy-to-code-for application server.

Lotus Domino (5, Funny)

Kenja (541830) | more than 9 years ago | (#13203041)

Hell, if I have to suffer so should all of you.

(yes I program with this monstrosity of a system)

C/C++ (1, Insightful)

Anonymous Coward | more than 9 years ago | (#13203042)

Your OS is written in it. Your server is written in it. Your browser is written it. Your database is written in it.

Get the point?

Bottom line: C is the lingua franca of computing.

Depends (4, Insightful)

boner (27505) | more than 9 years ago | (#13203049)

What you are asking is a dilemma that has been around since the invention of different programming languages. My personal opinion is that the best investment of your time is designing the web-app itself. Once you understand the feature set you require/desire then it makes sense to start looking at how the feature set requirements map to the available languages from a development and performance point of view.

Most people tend to forget to take a productivity point of view and let themselves be guided by whatever is available or what's cool. If you follow a productivity approach it will help you make the trade-off decisions between interpreted languages like PHP and compiled languages like C/C++, with ASP and Java somewhere in between.

There is a balance between development and production, when you go live and your web-app is well-designed it should be easy to add additional hardware to compensate for performance issues (server is about US$ 2000,- , or the equivalent of 10-20 hours of developer time.)

The single most important piece of advice after recommending that you spend more time on designing the app: don't get married to the language. Be prepared to use PHP to develop quickly and understand what works and what doesn't for your web-app. Once you have solved the usability bugs, investigate how you can drive efficiency by choosing a different language or not.

There is no template for what is the best environment, only your common sense, and oh... did I mention that you should spend more time designing your app?

Depends on what you want to do... (4, Insightful)

Foofoobar (318279) | more than 9 years ago | (#13203050)

I use PHP myself because it focuses on one thing and doesn't get distracted by trying to do more than it's build to do... that being, serve dynamic web pages.

Sure you can use it to dynamically generate images, PDF's and alot more but these things tend to slow down and detract from what it is meant to do and should be handled by third party apps preferably on a different server that way you separate your processes and keep PHP focused on it's task.

Plus with the improvements in the ZEND engine and it's object oriented programming, PHP is now comparable and even sometimes faster than Java.

People will say that it doesn't scale but they base this opinion on a preset prejudice or on the scalability of the underlying architecture. But PHP's engine is actually more compact than the JVM because it has less to focus on and thus can scale along side Apache, the entire way.

And with tons of larger companies moving to PHP, it has proven it can handle the load.

My only complaint though is developers who try to do EVERYTHING in PHP. With all the added modules, it does have the potential but do you really want to waste processing power letting PHP handle all these extra tasks? Use PHP for dynamic webpages and any added processing you need to do, I suggest moving to a secondary app preferably built in C/C++ or even Java. That way you get the most bang for your buck.

Let your developers decide (2, Insightful)

Dominic_Mazzoni (125164) | more than 9 years ago | (#13203052)

You didn't make it clear who is doing the development.

If you're doing the development by yourself, then obviously you should weigh the choices and pick the language that will work best for you. Development time, for example, is highly dependent on how well you already know the languages.

However, if you already have a developer, or a team of developers, to do this development, then whatever you do don't force them to use what you think is the best language. That's a guaranteed way to lower productivity and morale if they think it's a poor choice! Ask them to make recommendations. Maybe even spend a couple of days prototyping various things in different languages first.

One of the nicest things about back ends is that it doesn't matter what language you use (nobody can tell from the outside) and you can easily mix and match languages. There's nothing wrong with writing the majority of the code in PHP or Python for rapid development, but using Java or C++ extensions for a few of the computationally-intensive algoritihms.

.net anyone (1)

filesiteguy (695431) | more than 9 years ago | (#13203053)

How about asp.net on the front end and vb.net on the back end...

/me ducks...

...seriously, I think it only matters in terms of what the culture will accept. I've been trying to push PHP on the front end and Java (running on our zSeries) on the back end. So far, the answer always comes back - .net.

ASP.NET (1, Informative)

Anonymous Coward | more than 9 years ago | (#13203056)

Microsoft ASP.NET is also an alternative. It's fairly new but the new MSDN [microsoft.com] is written in asp.net 2.0. It's a mixed application between parsed stuff (like traditional asp and perl) and compiled stuff like Java, C++. Couple benchmark proved that this was faster that Java. Not platform independant for now, but it's a mather of time with mono [mono-project.com] .

I like c# (1)

sevinkey (448480) | more than 9 years ago | (#13203057)

I like the language... Microsoft took java, added language features I was missing from Borland's C++ builder (events, properties, delegates), let you call an windows dll.

I've also enjoyed the platform. It was rather trivial to change our logging system to use non-blocking calls to send these logs over the MessageQueue, and then to have an NT service receive those messages for later processing.

When the database CPU load went up to 70% we implement caching using their intrinsic ASP.Net Cache objects on often used and rarely changed data. This immediately dropped the load down to 2%.

Also, I work in a LAMP shop (mysql/perl, not the lightbulb kind), and we've had no problems interfacing our systems using SOAP.

I don't think c# is always the best tool for front-end websites in all situations, but for the backend I've been extremely happy with it. Even for the front-end I've been happy.

languages (1)

hungrygrue (872970) | more than 9 years ago | (#13203066)

PHP/Perl/Python are all good choices where performance is not critical, those particular parts would be better written (or re-written after design and prototyping are completed) in C or C++. I like Python in particular as a prototyping and glue langaugage. I would avoid Java at all costs as it is not a standard commodity language but a single companie's product. The same, of course, applies to C#/ASP only more so as you are then locked in to a particular vendor's platform - not just a particular vendor's whims pertaining to the language.

Java (gmail) (1)

vic128 (848568) | more than 9 years ago | (#13203071)

Java (gmail)
Gmail does not use Java, it uses Javascript ( AJAX).

If you are a singlehanded developer (2, Funny)

00_NOP (559413) | more than 9 years ago | (#13203074)

Perl is a great choice. You can do anything with it and nobody else understands what your code does so they have to get you to maintain it :)

ColdFusion (0)

Anonymous Coward | more than 9 years ago | (#13203077)

ColdFusion is always getting dismissed, but it's actually very easy to learn and maintain, has much better debugging than PHP and can scale to very large web sites - yes it can - the most widespread misconception about CF is that it doesn't scale, but just take a look at myspace.com it's currently ranked 24 on Alexa and it runs entirely on CF.

Microsoft (2, Informative)

minus_273 (174041) | more than 9 years ago | (#13203081)

Microsoft uses ASP (what else?).

err, no. MS does not use asp, they use ASP.net. There is a BIG difference between the two. The former is VB and the latter is C#,VB.net,J#,managed c++ etc etc. basically any language that runs in .net

You forgot Yahoo (1)

carlivar (119811) | more than 9 years ago | (#13203083)

I would call Yahoo a "large scale web app" (to put it mildly). Yahoo uses PHP [internet.com] and the founder of PHP [wikipedia.org] works for Yahoo.

Carl

PHP (3, Interesting)

AVryhof (142320) | more than 9 years ago | (#13203084)

We have a small website (85,000 hits a day)

So here's the rundown of what we use...
CGI/Backend: PHP

Client Side: Javascript

Presentation: CSS/HTML 34 (Somewhere between 3.2 and 4)

Then of course there is the PHP and static generated RSS feeds.

Java != Javascript (0, Redundant)

gunpowda (825571) | more than 9 years ago | (#13203085)

Google uses C/C++ (search), Java (gmail)

This is wrong. They use JavaScript, not Java. Completely different entities.

Re:Java != Javascript (1)

OblongPlatypus (233746) | more than 9 years ago | (#13203179)

And they use C++ for the backend, as indicated in this Q&A [postneo.com] .

Why you shouldn't use php (0)

Anonymous Coward | more than 9 years ago | (#13203096)

http://tnx.nl/php [tnx.nl]
* Re^2: Is Perl a good career move? by Juerd, 2005
o Still no namespaces
o No closures, not even anonymous functions
o No good HTML parser
o No easy MIME builder
o No good WWW library
o No CPAN
o No arrays
o Less useful logical operators
* Yaywoo! by Dave Brown, 2004
o No way to avoid the (unsafe) shell with system()
o XY-problem
o Huge proliferation of different functions to do more-or-less the same thing with minor variations
o Second parameter and return value make no sense
o Bad spelling in function names
* Why PHP sucks by Edwin Martin, 2004
o Bad recursion support
o PHP is not thread safe
o PHP is crippled for commercial reasons
o No namespaces
o Non-standard date format characters
o Confusing licenses
o Inconsequent function naming convention
o Magic quotes hell
* Perl vs. PHP - octo's subjektiver Vergleich by Florian Forster, 2003 (German)
o Perl is faster than PHP
o Perl is more versatile than PHP
o Perl has better documentation than PHP
o PHP lacks support for modules
o PHP's here-docs are useless for Windows users
o PHP lacks a consistent database API
o PHP dangerously caches database query results
o For graphics, PHP is practically limited to GD
* I hate PHP by Keith Devens, 2003
o Idiotic call-time pass-by-reference deprecation
* Experiences of Using PHP in Large Websites by Aaron Crane, 2002
o PHP promotes interweaving presentation with business logic
o Not having namespaces causes problems
o Global configuration with php.ini
o Oversimplification leads to excessive complexity
* PHP Annoyances by Neil de Carteret, 2002
o No real references or pointers
o No idea of namespace
o No componentization
o Wants to be Perl, but doesn't want to be Perl
o No standard DB interface
o All PHP community sites are for non-programmers
o No chained method calls (Not true anymore --tnx.nl)
o No globals except by importation
o Both register_globals and $_REQUEST bite
o Arrays are hashes
o PEAR just ain't CPAN
o Arrays cannot be interpolated into strings
o No "use strict" like checking of variable names

What the ...? (0)

Anonymous Coward | more than 9 years ago | (#13203098)

I am sure even the average Slashdot visitor's English is good enough to have the feeling this submission was translated from English to Russian and then back to English? I mean, "good quality people"? "What language you would chose?" ROFL.

I prefer (1)

surfpnk (727424) | more than 9 years ago | (#13203100)

Duh, Visual FoxPro [west-wind.com] of course. Where would Egghead.com be without it today?

Ruby on Rails (3, Informative)

threaded (89367) | more than 9 years ago | (#13203108)

Ruby on Rails, try it, you won't want to use anything else. Ruby on Rails is just so sweet, just like the original Java alpha was all those years ago.

PHP + Perl + C (1)

degraeve (780907) | more than 9 years ago | (#13203109)

I use PHP on the front end and call Perl and C programs when necessary. The results of the Perl and C programs are then rendered to the screen with PHP.

I've had problems with the scalability of some of my back end stuff that was written in Perl. Some image processing modules had to be rewritten in C for speed.

j2ee (1)

golgafrincham (774723) | more than 9 years ago | (#13203113)

for real applications which are more than a database backed dynamic website.

when it comes to critical features like 2face commits when speaking whith cics and ims at the same time, nothing beats j2ee. perl is unmaintainable at a large scale, php is to much front-end-oriented, and .net has no feature that j2ee couldn't provide and it has nothing like jca).

Unicode, please (1)

ewg (158266) | more than 9 years ago | (#13203123)

PHP is hugely popular, but it's one of the few modern software systems lacking native support for Unicode. Unicode is important because of the first W in WWW: even if i18n is not part of the initial ploject, I would be wary of architecting a big new system in 2005 using a language whose string support is based on 1-byte characters [php.net] :
In PHP, a character is the same as a byte, that is, there are exactly 256 different characters possible. This also implies that PHP has no native support of Unicode.

Mason (1)

GryMor (88799) | more than 9 years ago | (#13203132)

Amazon uses Mason [masonhq.com]

Python, Zope, and Plone Are Good (2, Informative)

blueZhift (652272) | more than 9 years ago | (#13203136)

I still use PHP for a lot of personal work and quick stuff, but I've been leaning more and more on Python [python.org] , Zope [zope.org] , and Plone [plone.org] for building stuff at my day job. If you need to quickly and easily implement role based security, Zope makes it drop dead easy because it's built in and through ZEO [zope.org] , zope apps can be highly scalable. Of course as with most things, use whatever technologies get the job done. For example, my Zope apps live behind an Apache server that I use for SSL as well as access control.

Quick takes (1)

Dominic_Mazzoni (125164) | more than 9 years ago | (#13203140)

ASP: Advantage - one of the largest pools of experienced developers. Disadvantage - ties you to Windows; can't take advantage of much free/open-source software.

PHP: Designed specifically for web programming but not proprietary like Microsoft. Disadvantage - it's rarely used by anyone outside of Web programming, so it's hard to find PHP software libraries or example code to do anything not commonly done on a web server.

Python: Some would argue, one of the nicest languages for rapid prototyping, but scales quite well to large applications. Disadvantage - smaller pool of experienced developers, plus unique syntax that some people don't like.

Java: Very large pool of knowledgeable developers, powerful class libraries, and better performance than scripting languages. Disadvantage - very verbose syntax; it often takes a lot more code to accomplish something than any of the scripting languages (above).

C: No good reason to use C to develop the whole backend. Use C to implement a few extensions where performance is critical, and use a higher-level language to implement the rest.

C++: Advantage - Huge developer pool, great performance, a little less verbose than Java, and lots of free software to re-use. Disadvantage - you have to compile your code before running it, you worry about memory management and buffer overflows, and in general it's not as nimble as scripting languages.

PHP is viable (1)

Bob Wehadababyitsabo (629809) | more than 9 years ago | (#13203142)

Don't forget Yahoo!, which swears by PHP.
What kind of app are you building?

Our standard enterprise stack these days (5, Insightful)

BigGerman (541312) | more than 9 years ago | (#13203146)

(for those who actually care to get something out of the door)

Java:

front end - Tomcat running JSPs (JSTL or Velocity for templating)

in the middle - Spring and Spring MVC

Closer to database - Hibernate.

Ideally, everything running in same JVM. Add more servers for scalability front-ending them with load balancer with sticky sessions.
No J2EE fluff, easy to find people, good productivity.

Language is mostly irrelevant (2, Insightful)

PhotoBoy (684898) | more than 9 years ago | (#13203149)

It's been my experience that language is mostly irrelevant when building a large, scalable web app.

There is certainly a difference in performance between various web languages/libraries but the most important aspect is how well you design your app to scale across multiple servers. Even if you were to spend years writing the most tightly coded app in Assembly that is 99.9% efficient you will still reach a point where you need to use more than one server.

As long as your app is designed with scaling to multiple servers in mind the choice of language should merely be down to what your team is best able to work with and support. It's no good doing everything in ISAPI just because eBay does it if your team is mainly experienced in Perl. Building the app to work well with multiple servers that are clustered according to their function (e.g. a DB cluster, load balanced webservers, large scale storage solution, etc) is the best way to ensure a scalable solution. Picking a database server for example that easily allows you to add a new machine to the cluster should be more important than language choice. Picking high availability software that doesn't require downtime every time you need to add a new server is very important.

Maybe I sound like I'm advocating writing sloppy code and just throwing lots of servers at the solution, but it's worth considering how today's top of the range server will be the cheapest low range machine in a few years. This means you can either pile high with cheap boxes or buy fewer but more powerful servers which have double the capacity of the cheaper server. It's certainly the solution that's worked well for Google...

Java all the way (0)

Anonymous Coward | more than 9 years ago | (#13203155)

I'm currently developing an web application using Java as the core language. I've decided upon JavaServer Faces (JSF) as the view, the Spring Framework (with Acegi Security) for the application layer, and Hibernate (and Lucene) for the database abstraction layer. That's combined with a number of smaller frameworks, like SiteMesh, to fill in any gaps.

I made the choice because there is significant community knowledge and support, as well as an abundance of open source projects. My entire application stack is open source, which greatly reduces my costs. They are also mature and quite robust, with the benefit of not being stale yet (e.g. Struts). I'm pretty happy with my choice, but there are many alternatives and you have to do a cost/benefit analysis based on your background and situation.

mod_perl + HTML::Mason (1)

Lost+Found (844289) | more than 9 years ago | (#13203157)

Amazon.com has it right... mod_perl + HTML::Mason are a very, very potent combination.

hmm (0)

Anonymous Coward | more than 9 years ago | (#13203158)

your mom is a good choice when i want to do something large-scale

sorry, couldnt resist!

Pure Javascript (1)

leptons (891340) | more than 9 years ago | (#13203168)

Lately I use Javascript on the front-end as well as the back-end, and with each passing day my skills grow stronger with the language. I've been programming for 25 years and using Javascript for about 7 of those.

You don't need 5 different languages to get a job done, thats insane, and nobody could ever really master any of them that way.

The javascript functions I write can be used on the front-end or the back-end, and that not only saves me a huge amount of time and effort, it also makes it very easy to port to any platform. Hell, i can even run it on my cellphone.

Using 5 languages for one job is of no use to me. Even having to use two seems burdensome. I've used many other languages in the past, but now i'm pretty much set with Javascript for web development projects.

For anything else, Assembly Language is a good choice ;)

Missing the most important criteria... (1)

(H)elix1 (231155) | more than 9 years ago | (#13203182)

Money. How much is the customer willing to play? Screw the other bits. I like C++, but it is hard to find a lot of gigs out there doing it. PHP is common, but folks don't pay much for the code. Java - now there are folks who have fat wallets and easily seduced by shiny things. C#/ VB.NET/ASP.NET is somewhat in demand, but I've got the feeling it is going to end up 'priced' like it is easy.

"C/C++" is not a language (1)

alan_d_post (120619) | more than 9 years ago | (#13203191)

"C/C++" is not a language. C is a language. C++ is a language. Each have various versions and implementations, with various quirks.

There is no "C/C++".

Do not forget supportability (1)

synchrostart (93516) | more than 9 years ago | (#13203194)

Meaning do not forget what happens once it goes into production. Are the people who can troublshoot, maintain or update your app and source code redily available? Personally, this narrows it down to codes and applications using standard app servers like Java and ASP. Being able to hire most any java web developer to maintain your code, for example, is a good thing. Coding it in a language like C++ that many people know, but few know well, would nto be my prime choice.

So I put to you to be part of your decision, think down the road a year or 2, when new features need to be rolled out or there are bugs and perhaps your contractors are gone and/or not available.

ASP.NET... no, really (3, Informative)

adolfojp (730818) | more than 9 years ago | (#13203200)

Large standard library
Excellent MVC model
Integrated caching capabilities
You can compile your libraries before uploading
Excellent Web Services model
Free tools
Works on Linux (through mono)
Large third party support
Very Fast
Easier to use and deploy than J2EE :-P

Peaple and no technologies (1)

dual0 (447231) | more than 9 years ago | (#13203202)

I can say that application are made from peaple. I thing that large entrprises like Google, Microsoft or Apple can pay good programmerus with strong knoweledge, thus they use whatever tecnology they want.
The point is very simple: if your are good you'll success with php, java, .net or whatever alese, if your are you'll miss even if you use the best techno in the world!
Just an advice: if you plan a project, don't choose the technology first, choose the peaple! If you choose right they will know what to do, if not...
I'am shure that apps like Google, or AppleStore can be done pretty the same way with other technologies if you choose the right peaple.

Dual0
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?