Slashdot Mirror


Choice of Language for Large-Scale Web Apps?

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?"

801 comments

  1. Hmmmm by bryan986 · · Score: 0, Funny

    I prefer english

    --
    There is no sig
    1. Re:Hmmmm by Anonymous Coward · · Score: 0

      dumbass moderators, he means as opposed to Indian or Pakistani

    2. Re:Hmmmm by stoph+ct · · Score: 1

      the moderators aren't dumb. he started with -1 and was modded up +1 funny.

    3. Re:Hmmmm by Surt · · Score: 1

      We use a lot of english where I work, but the main problem is that we have to hire so many expensive people just to get the darn thing to compile. Those MWM people really need to work on their toolset.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  2. Polyglot by FTL · · Score: 3, Insightful
    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.]

    --
    Slashdot monitor for your Mozilla sidebar or Active Desktop.
    1. Re:Polyglot by l33t.g33k · · Score: 2, Informative

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

      --
      My sig is permanently on strike.
    2. Re:Polyglot by Anonymous Coward · · Score: 0

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

    3. Re:Polyglot by newspeeker · · Score: 0

      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.

    4. Re:Polyglot by ScytheBlade1 · · Score: 4, Funny
    5. Re:Polyglot by cratermoon · · Score: 1

      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 probably wishes he could have a do-over on that one.

    6. Re:Polyglot by PotPieMan · · Score: 5, Informative

      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.

    7. Re:Polyglot by Curien · · Score: 1

      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).

      --
      It's always a long day... 86400 doesn't fit into a short.
    8. Re:Polyglot by Anonymous Coward · · Score: 0

      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.

    9. Re:Polyglot by connsmythe96 · · Score: 2, Informative

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

      Example

      --
      if(!cool) exit(-1);
    10. Re:Polyglot by fossa · · Score: 1

      A good carpenter has lots of tools and uses the most suitable tool(s) for each task.

      But he'll also often use a metal bit to drill wood... Who has wood bits anyway? There's a lot of overlap in tools. And not every task has a tool. Improvisation and creativity will always be important.

    11. Re:Polyglot by Tablizer · · Score: 5, Insightful

      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.

      Noooooo!

      It will just produce a job ad that says:

      Required: 3+ years experience in PHP, Perl, JavaScript, Euphoria, Moo, and Python.

      Then when they can't find any individual to fit the bill (surprise!), they will lobby Congress for more visa workers so that they can hunt the entire globe for the "best and brightest".

      (Hmmmmm. What the hell is "Moo"?)

    12. Re:Polyglot by maomoondog · · Score: 1

      Yes, yes! This way, you can double your development time and bugs as you get your apps to talk to each other.

      And then toss on another 50% re-implementing object structures in each language.

      And get ready for your performance to suffer by doing a lot more inter-process communication through the OS than you really have to.

      And virtually ensure terf wars between developers in different languages with slightly different ideas of the most elegant solution.

      Yeah, an individual developer should have a lot of languages under his belt. It stretches your mind, enables you to give good advice about choice, and gives you security by making you useful in a lot of situations. But a project itself should be well organized. KISS.

      (BTW, I'd rather have a programmer who knows 2 languages well than a self-described hacker who can program something badly in everything from Perl to PostScript).

      Most projects can gain a lot from a little bit of tool mixing -- for example, a rapid prototyping language for frequently changing parts of the app, and performance oriented language for the back end. Pick ones with well designed and well tested partnerships. A great example is python and java through jython. (Does anyone else know some really good partnerships?)

      Sorry to flame -- I'm sure you're a good developer, but this felt like a classic case of a surprising answer that sounds deep but is actually quite bad.

    13. Re:Polyglot by baadger · · Score: 1

      Just to add to the plethora of overly reactive responses to parent and to sneak a little clever remark in myself..AJAX doesn't even require a backend server-side program (other than a web server) to function. You can use it with static XML files too (for example basic processing of a RSS feed)

    14. Re:Polyglot by Anonymous Coward · · Score: 0

      After the Michael Lynn precedent, I can't tell you the flaws (weaknesses) in the programming languages. Thanks, FBI!

    15. Re:Polyglot by tricore · · Score: 1

      Largely you are right, but a couple of things you said implied that programs written in multiple languages must be run as multiple processes. Any non-bytecode language compiles down to a bunch of machine code with labels. Thus one can link any number of different languages into one binary. Every bytecode language I know of has a way to interface to this system as well. Java for instance has the JNI, (and in fact can be compiled with gcj), python has some equivelent whose name I don't know, and again is also compilable. Anyway, I do agree with your basic point, fewer languages simplifies code in most cases, unless there are good reasons to use multiple languages. In response to your query. My dad's favorite mix was QB and Assembly, but I supose that's not so relevent anymore :-b

    16. Re:Polyglot by Anonymous Coward · · Score: 0
    17. Re:Polyglot by Anonymous Coward · · Score: 0
      From dictionary.com

      To emit the deep, bellowing sound made by a cow; low.

    18. Re:Polyglot by Anonymous Coward · · Score: 0

      Absolutely, a developer should have as much knowledge in as many languages as possible.

      However, design like what you propose is a nightmare. Heck, it is difficult enough to parse your post. Such a proposal is just silly.

      And the analogy of a carpenter seems a little narrow. A coder is not simply a carpenter. She is an architect, a carpenter, an interior designer and several other roles.

      And, from a guy who has done WAY more house work than I ever imagined, to think that the carpeter runs back to his tool box for that absolutely, specific and targeted tool is somewhat ignorant. He does everything he can with a hammer...and a couple things that everyone else thought he couldn't. It is a matter of efficiency...and just common sense. Why run back to get something just so I can look cool to the other carpenters when I have a tool that will do the same darn thing??!? It is the Tim Allen approach versus the common sense one.

    19. Re:Polyglot by FooAtWFU · · Score: 3, Informative
      Last I checked, a MOO was a MUD, Object Oriented. Most MOOs are probably based off the LambdaMOO server, which was initially developed at PARC; the original LambdaMOO is available via your favorite telnet or MOO client at lambda.moo.mud.org port 8888.

      However, I would find such a system to be extremely unsuitable as a general-purpose database.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    20. Re:Polyglot by Anonymous Coward · · Score: 0

      " a classic case of a surprising answer that sounds deep but is actually quite bad."

            I'm freelance now but I used to work for big blue in application support, as a programmer and even as a business analyst. This is what I learned (or think I learned) viewing enterprise applications from different perspectives.

            Although granted there can be hidden costs, performance metrics ultimately needs to be looked at from a financial standpoint. (Hidden costs eventually become apparent at which point they are no longer hidden) On the enterprise level, the business people are going to allocate funds for two main buckets-- support and development. They are usually not enough but that's all your going to get (if you want to keep your job).

            I think your both right depending on the particulars of the situation. The article is about large scale web development. We need to be clear on semantics though. "Performance" to me is business level decision balancing

      a. how quick (and accurate) results return to the client (deep pockets to fill a very specific business need)

      b. service level/supportability (bang for the buck that adequately fills a need)

      "Large" can also mean many things but usually means one of the following two scenarios.

      1. Large development budget AND large application management budget.

      2. Large development budget but crappy support bucket.

          If application performance (in terms of client speed) is absolutely critical and there is an application support budget afterwards then I believe there is no question that the original poster is correct. More languages and complexity equals faster (but costlier).

            If performance is critical (in terms of client speed) and there is NOT enough support afterwards then less languages is desirable as you are left with an unsupportable monster afterwards.(bang for the buck)

      So as with most things... it depends.

    21. Re:Polyglot by pyite · · Score: 4, Funny

      "All tools are hammers. Except screwdrivers which are chisels."

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

    22. Re:Polyglot by Anonymous Coward · · Score: 1, Insightful

      Boy you sure are an idiot, it is possible to dominate all the languages, if you know how to program one you know the rest, if you know how to read documentation and api's you can take advantages from each, get your sorry ass of the sofa and learn someting will ya, the specialization era is not appreciate it any more, give with the times.

    23. Re:Polyglot by Anonymous Coward · · Score: 1, Interesting

      Each language has strengths and weakness. However, using several languages based on this premise can be a bad idea. None of us are as dumb as all of us.

      Consider some of the downsides. Interlanguage interfaces are often more complicated to use, setup, and maintain. Having multiple languages means it is more difficult to do things like use a debugger across the application. If you have some kind of standard error handling mechanism that gives the callstack you have to implment that in every language.

      Your people also have to maintain a high competency level in multiple language platforms. This will probably come at the expense of expertise with a particular platform. For example, with multiple languages there will be some overlap in the functionality they provide. You might find yourself spending time learning Php/Pear/Db and Perl/Cpan/Db libraries which provide nearly indentical capabilities. In the same period of time, you could have learned Php/Pear/Db and Php/Pear/DataObject (an OO library on top of Pear/Db). Or maybe you could have learned JDBC and Hibernate.

      Even if you don't have that kind of higher level overlap (because all business logic code is in one language, all data access layer code in another, etc), you're still having to learn and maintain knowledge about things like
      foreach my $item(@list) {}
      vs
      foreach ($list as $item)
      or
      preg_match vs m//

      In addition, by strictly separating out functionality (db code here, presentation code here), you miss out on many of the synergistic capabilities of a language. For example, Pear's DataObject libraries have QuickForm integration to make it easy to create web forms for database objects. If your DB code is separate from your web code, you can't use this kind of thing. If you decide to go around your DB codes back and use this anyway, then you're back to learning/maintaining database access knowledge in two separate languages. Since we're talking about data access at different levels of abstraction, it's not quite as bad as spending time learning Pear/Db and Cpan/Db, but there is still going to be duplication of effort because you'll need to know a little about the stuff that DataObject is built on top of.

      A lot of people like to talk about languages and the right tool for the right job. You wouldn't use a hammer on a screw. To some extent, this is true for programming languages. You wouldn't want to write a web application in C or Cobol.

      However, unlike simple tools like hammers and screws, programming languages are inherently flexible multi-purpose tools. If you try to hammer a screw into the wall, it won't work correctly. If you try to make a web app in C, it's possible. There is probably even an entire community of crazy folk making C web development libraries. In some cases, it may be easier for you to make a web app in C than in some language like PHP depending on your invested expertise.

      There's some server monitoring software called Nagios, formerly Netsaint, whose core functionality was written in C. It also has a CGI interface that was written in C. Personally, I think it is daft to write CGI's in C. Everytime I think about it, I remember that seen from the holy grail, "everyone said it would be daft to build a castle in a swamp, but I built one anyway." However, if the author of Nagios had decided to spend lots of time learning new web programming platforms instead of creating a good server monitoring program with a basic CGI/C interface, maybe his project would never have achieved the status it has today.

      Don't get me wrong, using multiple languages can be beneficial. If there's an overwhelming case for adding a new language/tool into the mix or if it's the only way to get something done, then by all means do it. But don't don't diversify uneccessarily.

      Just a because a language is the best tool for a particular class of tasks does not mean it is the best tool for the job at hand. Perl is the undesputed leader

    24. Re:Polyglot by Anonymous Coward · · Score: 0

      I don't know anything about AJAX, JAVA, or JAVASCRIPT, but judging by the other responses to your post, neither do you.

    25. Re:Polyglot by DeadSea · · Score: 1

      The job descriptions do get a bit weird, but looking for people with arcane experience is something a lot of companies do.

      In addition to knowing Java and having a CS degree, the ideal job candidate for my employer would know XSLT (xml transform language), m4 (braindead unix template language), and three scripting languages (csh, bash, and perl).

      Incidentally, if you know this stuff and you are looking for a job in the Boston area, send me a note. We'd like to hire 7 to 10 of you.

    26. Re:Polyglot by Anonymous Coward · · Score: 0

      Right. It's because of people like the grandparent that I can't get half of the so-called cross-platform projects out there to compile with MinGW.

    27. Re:Polyglot by Lord+Ender · · Score: 4, Insightful

      If I were your boss, I would hire an intern and have him rewrite your apps from scratch with a single, maintainable language. Once he is done, I would hire him for half of what I pay you, then give you the boot. Job security through incompetence?

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
    28. Re:Polyglot by Tim+C · · Score: 1

      A good carpenter has lots of tools and uses the most suitable tool(s) for each task.

      Yes, that's exactly what he does - he does not use "as many as possible". Sometimes, a single tool will suffice, sometimes several are called for.

      So it is with programming; blindly using as many languages and technologies as possible is as foolish as knowing only one.

    29. Re:Polyglot by dtfinch · · Score: 1

      A good developer knows how to learn on the fly.

    30. Re:Polyglot by Tablizer · · Score: 1

      Boy you sure are an idiot, it is possible to dominate all the languages, if you know how to program one you know the rest

      The job ads usually want *experience*. Are you suggesting one lie? (even if one can cram enough to pass the interview tests)

    31. Re:Polyglot by Anonymous Coward · · Score: 0

      The fibers in wood wear the shit out of metal bits to the point where they don't work especially well on steel.

      If you like to drill hard metals and not sharpen your bits all the time it's best to get a set for metal and a set for wood. If you do cheifly Aluminimum, no biggie.

    32. Re:Polyglot by jefp · · Score: 1

      >and three scripting languages (csh, bash, and perl).

      Writing scripts in csh is a mistake in any context. I still use csh as my login shell (well, tcsh with some settings changed to make it compatible), and even so I never write scripts in csh, aside from .login and .cshrc.

    33. Re:Polyglot by MighMoS · · Score: 1

      w00t! Nothing like coding in m4!

    34. Re:Polyglot by DeadSea · · Score: 1

      No kidding. m4 can be a bear. Ever used it as a preprocessor for java, sh, bash, xsl and csh scripts? ;-)

    35. Re:Polyglot by DeadSea · · Score: 1

      sh is certainly more powerful than csh, and perl almost infinitely so. We have a group of devs that use csh when they get away with it because they are more comfortable with the syntax. This includes the most senior dev who is in all other respects a most excellent coder.

    36. Re:Polyglot by Anonymous Coward · · Score: 0

      I do not agree: LARGE SCALE means MANY DEVELOPERS, not ONE single developer knowing any technology and language on this plantet.
        the main problem in large scale applications is managing the TEAMWORK.
        You will never get any good product if you pretend that any programmer in the team knows any language any other programmer wants to use: you must stick as much as you can on ONE language, and train all the developers in using that language at best. Otherwise you will have a team where each part of the project belongs ONLY to the team member that best handles the language the part was written with.
        I am team leader of a program that works on 300 database tables and 850 forms.... and this is a "medium" scale project.

    37. Re:Polyglot by xanalogical · · Score: 1

      And for the Python programmers, we have LivePage, as part of the Twisted framework, distributed with Nevow.

      http://www.divmod.org/projects/nevow

      It attempts to do what AJAX does, albeit at a simpler level.

    38. Re:Polyglot by Anonymous Coward · · Score: 0

      JavaScript and Java have NOTHING to do with eachother. They are seperate things.

    39. Re:Polyglot by ChrisMaple · · Score: 1

      Moo is the land that Alley Oop lives in.

      --
      Contribute to civilization: ari.aynrand.org/donate
    40. Re:Polyglot by dickko · · Score: 2, Informative
      (Hmmmmm. What the hell is "Moo"?)

      I'm guessing he probably doesn't know either. More likely this is what he meant:

      "I'm going to mention a lot of obscure project names so you'll think that (a) my kung fu is stronger than yours and (b) my penis must be huge!"

      As to your question I found this:

      MOO stands for "MUD, Object Oriented." MUD, in turn, has been said to stand for many different things, but I tend to think of it as "Multi-User Dungeon" in the spirit of those ancient precursors to MUDs, Adventure and Zork.

      MOO, the programming language, is a relatively small and simple object-oriented language designed to be easy to learn for most non-programmers; most complex systems still require some significant programming ability to accomplish, however.

      For more info, http://mirrors.ccs.neu.edu/MOO/html/ProgrammersMan ual_9.html#SEC9

    41. Re:Polyglot by SeventyBang · · Score: 2, Interesting



      And...ASP is not a language.

      You can write for ASP using PHP, PerlScript, JScript, oh, and what those with an overwhelming trait of ignorance presume ASP to be: VBScript.

      It's no more difficult to write an ASP-based website using the other (non-VBScript) languages than it is VBScript. And for that matter, those are the scripted languages. You could code in practically any language you choose if you can compile it and plug it into IIS appropriately.

      What has seemed to be an interesting pattern is those who write IIS|ASP web sites and are wearing blinders - believing VBScript is the only tool they can use, generally write slow, sloppy sites. It doesn't mean VBScript alone makes the site projects so bad, but the people who are so shortsighted seem to not fully comprehend the architecture they're dealing with. These are the same people who think they've invented something no one else has thought of: stashing various ADO objects in Application() and Session() variables. Almost without exception, if you sit down with access to source code on a poochy site and grep for "Set Session" or "Set Application", you'll see a slew of hits. And the reason those two statements will appear is because the only people who do those things are VBScript-only people. Oh....anyone whose code which contains such statements should be taken out back, have their peepee whacked, then die a death of a thousand cuts in return for the grief they cause the users of their web sites.


    42. Re:Polyglot by mrlpz · · Score: 2, Insightful

      "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."

      The above statement is PRECISELY why the state of software development across this country is as it is......I nominate this person as the FIRST person to vote OUT of a Software Engineer's Union when it comes down to that to protect the state of the business that the politicians and the beaners won't. It's precisely because nimnuls like this abound across this country that we're in the state that we're in. This is why HR departments are the hell holes that they are today. Because no one in their RIGHT MIND would think that ANY solution like this is truly viable.

      I don't remember who to credit with this ..but it DEFINITELY applies....

      Just because one CAN do a thing, means that one SHOULD do a thing.

    43. Re:Polyglot by SeventyBang · · Score: 1




      There are two [obvious] good uses for multiple languages, even within the same work enviroment:

      1) Never write what you can steal. If you can find the code you need in another language and you know enough of the source language to understand and follow the algorithm, you're avoiding a complete reinvention of the wheel.
      2) Frequently, there are concepts you can steal from one language or platform and use them where you need them now. Similar to #1, but in a more generic sense.

      As far as using as many languages as possible - do it on your own, homegrown material. And when you try to sell it, you're going to find the price isn't as high when they find out they're going to have to either support or rewrite an octopus. If you're doing it to show off, then you're going to have to get in line behind those of us who have used many different languages but know when to use which languages as well as when to use one, two, or more.

      If I find more than one language in a single tier, it means someone's been off doing something with too much free time and needed|needs to be a bit busier. I hate micromanagement - regardless of whether I'm the one doing it or on the receiving end - but if someone's off playing cowboy, it may be time to lock down their PC so they can't keep installing new toys as well as time for more frequent checks as to what's really being done with their time. There are far too many things which have a way of interfering with schedules as it is; we don't need people finding ways to make people work eighty hour weeks because they could have taken on more work during regular hours.



    44. Re:Polyglot by FredFnord · · Score: 2, Funny

      Who has wood bits anyway?


      I'd have to guess it would be people who got theirs shot off in the war.

      -fred
      --
      Sign #11 of Slashdot overdose: You see the phrase 'moderate Republican' and you wonder if that would be a +1 or a -1.
    45. Re:Polyglot by Tablizer · · Score: 1

      A good developer knows how to learn on the fly.

      Yes, but HR wants *experience*. It is easier to test for experience than ability to learn fast.

    46. Re:Polyglot by ImagistTD · · Score: 1

      C/C++ and Assembly is still a very viable combination.

    47. Re:Polyglot by NotBorg · · Score: 1

      A good carpenter has lots of tools and uses the most suitable tool(s) for each task.

      A good carpenter also has favorite multi-use tools. He will often choose a favorite over a specially designed tool. Sometimes the tool isn't available or quickly accessible. The carpenter can save time by using a more general purpose tool in a skillful way (After all he's very good with his favorite tool and knows it's capabilities and limitations).

      When you start getting close to the limitations of a tool, by all means use a better one. I've known carpenters who would rent a tool when it obviously would make the end product better or more time effective. He didn't own the tool and wasn't necessarily a master of the tool, but he was able to use it just the same. General purpose skills enabled him to learn quick.

      I don't remember the name of the tool--something to do with wood floors (Good thing I'm not a carpenter). When I asked him why he didn't own one for himself he just kind of shrugged and said that he wouldn't use it often enough.

      --
      I want this account deleted.
    48. Re:Polyglot by kjcdude · · Score: 0
      --
      http://DiabloHeat.com | http://Kyle.TheOCSucks.com | http://TheOCSucks.com
    49. Re:Polyglot by po8 · · Score: 1

      I have 3-5 of them as a students. I'll see if they're interested. I have the skillset you're looking for, but I'm not willing to move to Boston and I doubt you'd want to pay what I'm worth.

      There's nothing braindead about m4. I've used it as a metalanguage tool to design 3 or 4 highly successful little application-specific languages. See, for example, the first version of what eventually became XML-XCB.

      What's braindead is csh---I wouldn't use it as a scripting language on my most desperate day. Horrible syntax and semantics, a variety of error-prone features, and a really buggy reference implementation (last I checked).

    50. Re:Polyglot by LarsWestergren · · Score: 1

      Agh! That is terrible advice! Learn many languages, yes, but on one project, try to use as FEW languages as possible. A language has strengths, but it also has weaknesses, and the join between languages can also lead to weaknesses.

      To continue your carpenter and tools anology, what do you think a master carpenter would say to someone who said "I created this bridge by gluing together as many different materials as possible because they all have their own strengths!"?

      --

      Being bitter is drinking poison and hoping someone else will die

    51. Re:Polyglot by xero314 · · Score: 1

      Amazing how a simple, and poorly thought out comment sparks up such controversy.

      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 togethe

      Where in I agree with the commentor statement elsewhere that "there is no killer language" I beleive that the inverse is also true that "All languages are capable of all things." It may not hold 100% true but most languages, those called general purpose languages, are capable of meeting the needs of most programs. If you need to do something truely time sensitive or real-time, then you will have to leave out interpreted or VM based languages. If you are really worried about performance, your just choking your own chain if you are using anything other than assembly. On the other hand, if performance is not the issue and maintance is more important, then use something like Java.

      The important thing, in todays market, is to maintain a versatile team. If you are going to use to many languages (basically more than 3 that don't atleast have something in common, and XML/HTML do not count as languages) you are going to either lose versatility, by having specialized developers, or lose expertise by having unfocused developers.

      The best bet, IMO, is to chose the one CORE language that is best suited for your company/projects (notice that is pluar not possesive) needs. If you need to use a different language for a specialized purposed make sure it is a very small piece, actually needs to be implmented in a different language and is VERY WELL DOCUMENTED. And remember that using similar languages (Java, C#, JavaScript) is better than using languages that have little in common (Java, C , Assembly, Basic).

      On a more personal note, find me a native compiler for JavaScript and you can pretty much throw all other languages right out the window (excluding assembly which could be argued is or is not a language).

    52. Re:Polyglot by WebCrapper · · Score: 1

      See, most see this and complain there are too many languages and that its too hard to maintain. I see this as job security....

    53. Re:Polyglot by WebCrapper · · Score: 1

      I found a telecommuting job where I thought I could lie and get away with it... Sure its not programming, but its telecommuting: http://portland.craigslist.org/ret/86698211.html

    54. Re:Polyglot by the+quick+brown+fox · · Score: 1

      They do use Java on the server side for gmail and most other non-hardcore-search things (according to my friend who works there).

    55. Re:Polyglot by Rytsarsky · · Score: 1

      AJAX makes an HTTP request (using Javascript) which returns XML.

      One more clarification... The HTTP request does not even have to return xml, it can return plain text, or html. anything, really...

      --
      God became man to enable men to become sons of God. -C.S. Lewis
    56. Re:Polyglot by Anonymous Coward · · Score: 0

      The AJAX helpers in Rails render the JavaScript to the client page.

      Just like ASP.Net's AJAX-ish JavaScript calls back to the server, which the ASP.Net page classes send to the client first.

    57. Re:Polyglot by connsmythe96 · · Score: 1

      Yeah, but you probably wouldn't want to call it "Asynchronous Javascript And XML" anymore, then, would you? ;)

      --
      if(!cool) exit(-1);
    58. Re:Polyglot by PotPieMan · · Score: 1

      I was simply pointing out to the OP that Ajax can do more than "asyncronously [call] JAVA functions without needing a page redraw". I thought the client-side aspect of Ajax was implied.

    59. Re:Polyglot by MikeFM · · Score: 1

      It depends what you are doing. If you're implementing a very OO sort of system where you want persistant objects over a long period of time then using MOO could work very well for you. Of course you'd want to get rid of the majority of the default DB but besides that there is nothing at all wrong in using MOO for other web projects. It's stable, easy to work in, works well for large complex problems, and has more than a decade of running online systems under heavy load. Before there were such things as ASP, PHP, CF, and Java there were MOO backends powering websites.

      Ooooh those were the days! :)

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    60. Re:Polyglot by ACORN_USER · · Score: 1

      And your problem is? I've had it up to 'here ( somewhere near the international space station )' with half-hearted-developers who learn one technology and use it until the end of their lives without care for fitting a correct solution to a particular problem. You guys get into work at 9am and leave at 5pm, spending the intermin period pretending to be software engineers, whilst developing bloated code which others will have to puke over for the next 10 years. There are so many of 'you' out there, it makes me noxtious! As someone further down pointed out, read the f** man pages. Read the API docs, use the tools you have to. When your company says 'we develop in perl,' point out the benefits of interfacing this with C or Java. When you're asked to correlate everything in the universe against everything in the universe, write it in C, or tell them that it's dumb. When an API is only available in Java, use it. When you're forced to write in VB, tell them where to stick it. Be an engineer again and make informed decisions when designing your software, forsake dogma and be a good developer - in any language. Even lisp is fun when you can talk mangement into letting you use it. Go home and be a 9 year old again - code if you're a coder. If you're not, there are a hell of a lot of other functions out there, but do quit complaining. The 'best and brightest' are simply the open minded. Peace.

    61. Re:Polyglot by dubl-u · · Score: 1

      As many as possible. Use PHP for the front end, Perl for input parsing, [...]

      I disagree. You should use as many as necessary, but as few as possible.

      Maintenance cost is a huge portion of any ongoing software project. Requiring a maintainer to be an expert in 6 or more languages is a lot of training. What you're more likely to get is somebody who's an expert in one or two and might be willing to dabble in the rest.

      Instead of picking the most appropriate language for the task, a large-scale web app has to build the team most appropriate to the project. Sometimes the cost of a new language is worth it. But the costs can be huge: in many shops there's a huge chasm between the database guys and the rest of the developers, and a lot of productivity goes down that chasm. You see similar problems, although not usually as dramatic, in places that do XML->XSLT->HTML.

    62. Re:Polyglot by Tablizer · · Score: 1

      You seem to be stereotyping programmers into those who use multiple languages and those who don't. I don't think it is that simple. But you have to realize from a management, hiring, and globalization perspective; multiple languages can complicate the scene, especially for smaller companies.

    63. Re:Polyglot by ahowl · · Score: 1

      Maybe he meant the Cow programming language?

  3. Perl. by Anonymous Coward · · Score: 5, Funny

    For everything.

    1. Re:Perl. by Anonymous Coward · · Score: 0

      (Score: 5, Jihad)

    2. Re:Perl. by ArcticFlood · · Score: 1

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

      --
      This is here so you don't ignore the last two lines of my posts.
    3. Re:Perl. by hahafaha · · Score: 2, Insightful

      I absolutely agree. The only danger with Perl is speed. Perl is not the fastest language, but unless your web application needs speed, Perl will work 99 percent of the time

    4. Re:Perl. by Samhain138 · · Score: 2, Informative

      mod_perl is fast enough.
      It's also fast enough for Amazon (they use mod_perl with HTML::Mason AFAIK).

    5. Re:Perl. by hahafaha · · Score: 1

      That is true.

      I was, however, speaking in more relative terms. For example, compared to C, Perl loses (speed-wise). The difference in speed might not be significant enough to cause a problem and there are other factors involved.

      One is operating system. running Perl under Windows when speed is an issue is not a good idea. Running any web application under Windows is generally not a good idea, but that is a topic for another debate.

      It is also important to see what your program is doing. I have found that Perl is very fast with arrays and various array functions and slower with files.

      In the end I think that it boils down to "What program are you writing and what is it going to do?"

    6. Re:Perl. by Anonymous Coward · · Score: 1, Interesting

      Maybe if you want to write an app that will never be updated. Unless you get coders who are very anal about neat code, perl would be a mess.

      Why do you think slashdot hasn't had any big change in its layout in years? The whole house of cards would fall down! Have you ever looked at slashcode? 'Cause I am scared to!

    7. Re:Perl. by jadavis · · Score: 2, Insightful

      We're talking about web applications here. I'm a great fan of C, particularly for manipulation of binary data and so forth, but your post makes no sense.

      You would have to be doing something quite unique as far as web applications go for perl to be different speed-wise than C. Web applications are basically text processing and database queries (usually). Perl has highly integrated, optimized text processing routines that even a good C programmer is unlikely to match without years of development. And database queries aren't going to be any different at all... they just depend on the database.

      Next, why do you say that perl is fast with arrays and slow with files? If you mean appending something to the end of a list in RAM (maybe a microsecond) is faster than waiting for a disk seek time (millseconds), well, duh. That is not language-dependent at all.

      If that's not what you meant, it makes no sense either. Perl is designed and optimized for processing text and files. Perl's arrays are designed for flexibility, not speed.

      And why did you ask what the application was? It's a large scale web application. You can infer a lot from that. Lots of text processing, use of many libraries, validating user input, database queries, and caching. Maybe some image processing. Lots of security concerns.

      The obvious choices here are Java (many highly developed web frameworks, many libraries, many security features) and then PHP, Perl, Python, Ruby (which might add rapid application development to that list). C/C++ would be special purpose. Anything else is a platform-dependent solution that's an "all or nothing" approach.

      I think most people would agree with the above statement, and the discussion should be mostly within that context. Not whether or not you can use C to marginally improve performance doing something that a web app doesn't need to do.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    8. Re:Perl. by Anonymous Coward · · Score: 0

      (sniff sniff)

      Smells like a Java addict talking. Not someone who knows the slightest thing about Perl. Just repeating old canards that they gleefully found on google.

      We have 10+ year old Perl code that is well documented and easy to read. We have multi thousand line Perl codes doing some amazing processing tasks, and these codes are easy to manage and understand, as we took significant time/effort and pains to implement them sensibly.

      You can write garbage in any language. Java is not only not immune to this, but I would posit that its structure forces you to hide the garbage within it, and you don't run into it until crunch time.

      Perl is one of the best languages you can implement in because it gives you many ways to express your algorithm clearly and concisely. If you need speed, hook into C. If you need other libraries, you can use them. Perl is a great front end and glue language.

      Python is ok as well, though I strongly reject the argument that it is easier than Perl. I have been programming for more than a quarter century. Unlike other languages that are solutions looking for problems to solve, uniquely qualified to solve none, but forced onto the masses by marketing efforts of corporations, Perl is tremendously powerful and allows you to express your solution in the most appropriate manner, as verbosely, or as concisely as required.

  4. PHP is only popular because.. by dotdan · · Score: 0

    ..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.

    1. Re:PHP is only popular because.. by Foofoobar · · Score: 1

      And that's the only reason people use it because it's popular? well how the hell did it get popular? It must have been good for soemthing to get so popular.

      The reason PHP is popular is because it is not a swiss army language; it is good at one thing and does that one thing well... dynamic web pages. Sure you CAN do other stuff with PHP but that would mean making something that won't scale.

      Personally, I let PHP handle the dynamic web page building and all othwer functions I pass to other languages. For instance if I want dynamic image generation, sure there is a PHP module for it but then I can't separate that functionallity and my code won't scale so instead I use ImageMagick which is written in C and can be easily moved to another server at a later point in time.

      PHP is also good for small to medium web sites as a stand alone (with modules of course). But again, I would only recommend PHP for handling the dynamic generation and population and nothign else; for those things, pass it along to another language or app.

      --
      This is my sig. There are many like it but this one is mine.
  5. Perl? by hanshq.net · · Score: 2, Interesting

    Perl is also a nice choice. Sites Running mod_perl

    1. Re:Perl? by Anonymous Coward · · Score: 1, Interesting

      Perl is a write-only language

    2. Re:Perl? by vivekg · · Score: 1

      Slashdot also runs on perl...

      --
      The important thing is not to stop questioning --Albert Einstein.
    3. Re:Perl? by rascal1182 · · Score: 2, Informative

      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.

      --

      "Yarrgh! I be just a paintin' of a head..."
    4. Re:Perl? by NutscrapeSucks · · Score: 1

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

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:Perl? by eyeye · · Score: 1
      Ruby is another write only language if you dont know it (actually arent they all!).
      This is I presume simple example code. God only knows what kind of code a ruby "haXX0rzzzz" would produce:

      class KaraokeSong
      --
      Bush and Blair ate my sig!
    6. Re:Perl? by haystor · · Score: 1

      I think Perl gets put down a lot for being unmaintainable because it has allowed people to complete projects they otherwise could never have completed. I've been witness to several Java rewrites of to replace Perl projects and not one as been successful. This is despite the fact that the original Perl programmers "didn't know what they were doing" according to the java "software engineers".

      I've maintained Perl for years and have taken over projects written by system administrators that grew from scripts to multi-million dollar revenue streams. These are projects that never would have been completed and never would have become profitable products if produced by the usual set of java software engineers, architects and developers.

      Perl isn't unreadable, I read and fix bad Perl every day. I'm thinking most of the java crowd just can't figure things out for themselves.

      Then answer to the original ask slashdot is, of course, LISP.

      --
      t
    7. Re:Perl? by rascal1182 · · Score: 3, Insightful

      Ruby is another write only language if you dont know it (actually arent they all!).
      This is I presume simple example code. God only knows what kind of code a ruby "haXX0rzzzz" would produce:


      The thing about this is, skilled Ruby programmers (that I've seen) produce beautiful, simple code, devoid of silly things like conditionals. These programs aren't hard to understand.

      OTOH, the Perl mentality seems to be "I can do that in fewer keystrokes!"

      These are obviously over-generalizations. I have seen good Perl code and lousy Ruby code. I just think that Ruby is more condusive to good code (personal preference, really).

      --

      "Yarrgh! I be just a paintin' of a head..."
    8. Re:Perl? by Anonymous Coward · · Score: 0

      Phah! Such ignorance. I can generate clean HTML4 or XHTML with Perl.

    9. Re:Perl? by VGPowerlord · · Score: 2, Interesting
      I do some Perl programming, and I try to avoid the "I can do that in fewer keystrokes!" mindset. The only exception to that is using the ternary operator to set variables that could only have two possible values based on a condition. Another thing I hate seeing in perl is this:
      sub change_it() {
      s/something/nothing/i;
      return chomp;
      }
      This sub is oversimplified, but it isn't immediately obvious to a non-Perl coder that the substitution and chomp are happening on the first argument to the function. The same goes for the "diamond" operator <>. It's not immediately obvious that an empty diamond operator works on STDIN... unless @ARGV is populated, in which case it works on those instead. Which probably isn't what the author intended.
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    10. Re:Perl? by rascal1182 · · Score: 1

      I think Perl gets put down a lot for being unmaintainable because it has allowed people to complete projects they otherwise could never have completed. I've been witness to several Java rewrites of to replace Perl projects and not one as been successful. This is despite the fact that the original Perl programmers "didn't know what they were doing" according to the java "software engineers".

      I have seen Java projects fail because of the language, but for performance issues, and not because the language is inadequite (unless the project was written in Brainfuck). These projects probably had other reasons for failing.

      I think my point is, if we're going back to the original question, is that, although Perl has its place (I don't like it, so I use Ruby instead), that place isn't large-scale applications with performance and upkeep demands. If a project grows from a small perl script to a "multi-million dollar revenue stream," then I don't recommend changing the language (read my other post below). However, the original scope of these projects were obviously not to be large-scale web applications. They simply became that.

      I hate Java, too. The hype is such that management seems to think it's the answer everything, but it's really just the (somewhat broken) syntax of C++ with less flexibility and the added fun of a VM.

      Captain Negativity to the rescue. If you've got any other programming languages you'd like to throw out there, I'll be happy to bash them too...

      --

      "Yarrgh! I be just a paintin' of a head..."
    11. Re:Perl? by NutscrapeSucks · · Score: 1

      I have seen Java projects fail because of the language, but for performance issues, and not because the language is inadequite

      The biggest problem I've seen with Java projects have been cost issues, not performance. For some reason Java tends to attract "architects" who have "patterns" that require 12 different objects for every simple operation. And then you need a large group of people generating cookie-cutter code to fit the architecture. And then you end up with this thing that looks nice on paper, but nobody can make the Back Button work properly.

      Of course, one could write PHP code that's as complex as J2EE architecture, and Java code that's along the lines of PHP templates. But cultural tendancy in the Java world seems to be Lots Of Code, Lots of Programmers, Lots Of Overhead.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    12. Re:Perl? by Fjornir · · Score: 2, Interesting
      Your point about the default operands is well received -- but it's a handy feature included in the language primarily to support a specific scenario: one-liners. A small change in your mindset will help you tremendously with these -- think about Perl as being rather like an RPN calculator.

      As to the diamond operator it has an ecological niche which is part of Perl's philosophy of cooperation -- in this case the cooperation is making it easy to write Perl programs which exhibit similiar behavior to a whole slew of unixish shell utilities. Say you wanted to make a special kind of 'cat' utility -- the diamond operator would prove quite handy for this.

      In both cases these default behaviors are there to make certain sorts of tasks easier to perform with Perl. Use them when appropriate. Use the more explicit longhand format when appropriate.

      I'm pulling for you. We're all in this together.

      --
      I want a new world. I think this one is broken.
    13. Re:Perl? by Anonymous Coward · · Score: 0

      No *you're* a tool ... I'm sorry I couldn't resist that one. I'm sure you're a nice person and good points btw

    14. Re:Perl? by rascal1182 · · Score: 2, Interesting

      This thread is really starting to make my point for me. Perl is just too idiosyncratic. There's too much to remember, and I'd quite frankly rather spend my time thinking about design problems and algorithms than niche features.

      Yes, there are some nice features for writing shell utilities (which is where Perl should be). But if we're talking large scale apps, my thoughts always go to object orientation, when things get more complex than processing text and command line options. Don't go telling me that Perl has superb OO features.

      As much as webtrash gets a bad beat, developing a good application is a really complex problem, simply because of the limitations of the web.

      I swear I'm done. I'll go piss off some Java people now, unless any Python junkies want to step up (I haven't yet seen much of that yet, and I'm surprised)...

      Also, your sig is awesome.

      --

      "Yarrgh! I be just a paintin' of a head..."
    15. Re:Perl? by rascal1182 · · Score: 1

      The particular project I was talking about simply put performance evaluation too late in the plan (in an embedded environment). Some people seem to think Java is a magic button you can push that does everything for you.

      Perhaps the moral is "Java breeds mismanagement."

      --

      "Yarrgh! I be just a paintin' of a head..."
    16. Re:Perl? by Fjornir · · Score: 2, Insightful
      This thread is really starting to make my point for me.

      I dunno. Unless your point was that you shouldn't use features of a language you don't understand I don't think this made your point at all.

      Perl is just too idiosyncratic. There's too much to remember,

      Funny that... Once you understand the key philosophies which made Perl the way it is, it doesn't really seem that odd -- and given that its backgrounds are in UNIXish operaring environments and C programming culture it maps to my own experiences quite well. As to the "too much to remember" I'd answer, "No. Not really.". It's neat that a lot of the one-off stuff is there but you don't really need to commit it to memory.

      and I'd quite frankly rather spend my time thinking about design problems and algorithms than niche features.

      Hm.... I don't spend my time thinking about the niche features at all. I spend my time looking at how to write the program and then writing the program. Take the comments about the diamond operator, for instance. I know it's there, I know I can use it if I want to, but until VGPowerlord brought up its magic behavior in the no-filehandle-given case I hadn't thought about that aspect for... Oh, six years.

      And that was just correcting a newbish misunderstanding about the language -- if you know of a language where new programmers don't make any mistakes or misunderstand anything I'd love to learn it.

      Don't go telling me that Perl has superb OO features.

      Well, you don't want to hear it so I won't say it. I will say that Perl's OO mechanisms are quite nice and dovetail quite simply with the way Perl does everything else. For sharp contrast look at how C++ handles OO behaviors.

      I swear I'm done. I'll go piss off some Java people now, unless any Python junkies want to step up (I haven't yet seen much of that yet, and I'm surprised)...

      Well, if you were trying to piss someone off I think you failed miserably. You made well reasoned arguments and presented them without being inflammatory. I happen to disagree with you but that's not enough to piss me off.

      I'll close by saying that the important thing to me about Perl isn't if it's the perfect programming language or not. No, the important thing is that it let's me do the work I need to do quickly and easily while I get paid a handsome sum to do something I enjoy.

      --
      I want a new world. I think this one is broken.
    17. Re:Perl? by Tassach · · Score: 1

      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.

      Paul Graham would disagree with you. Languages are tools, true. But not all tools are equally powerful. Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages:

      I'll begin with a shockingly controversial statement: programming languages vary in power. Few would dispute, at least, that high level languages are more powerful than machine language. Most programmers today would agree that you do not, ordinarily, want to program in machine language. Instead, you should program in a high-level language, and have a compiler translate it into machine language for you. This idea is even built into the hardware now: since the 1980s, instruction sets have been designed for compilers rather than human programmers.

      Everyone knows it's a mistake to write your whole program by hand in machine language. What's less often understood is that there is a more general principle here: that if you have a choice of several languages, it is, all other things being equal, a mistake to program in anything but the most powerful one.

      He goes on to say tha the most powerful language around is Lisp:

      Many languages have something called a macro. But Lisp macros are unique. And believe it or not, what they do is related to the parentheses. The designers of Lisp didn't put all those parentheses in the language just to be different. To the Blub programmer, Lisp code looks weird. But those parentheses are there for a reason. They are the outward evidence of a fundamental difference between Lisp and other languages.

      Lisp code is made out of Lisp data objects. And not in the trivial sense that the source files contain characters, and strings are one of the data types supported by the language. Lisp code, after it's read by the parser, is made of data structures that you can traverse.

      If you understand how compilers work, what's really going on is not so much that Lisp has a strange syntax as that Lisp has no syntax. You write programs in the parse trees that get generated within the compiler when other languages are parsed. But these parse trees are fully accessible to your programs. You can write programs that manipulate them. In Lisp, these programs are called macros. They are programs that write programs.

      Programs that write programs? When would you ever want to do that? Not very often, if you think in Cobol. All the time, if you think in Lisp. It would be convenient here if I could give an example of a powerful macro, and say there! how about that? But if I did, it would just look like gibberish to someone who didn't know Lisp; there isn't room here to explain everything you'd need to know to understand what it meant. In Ansi Common Lisp I tried to move things along as fast as I could, and even so I didn't get to macros until page 160.

      But I think I can give a kind of argument that might be convincing. The source code of the Viaweb editor was probably about 20-25% macros. Macros are harder to write than ordinary Lisp functions, and it's considered to be bad style to use them when they're not necessary. So every macro in that code is there because it has to be. What that means is that at least 20-25% of the code in this program is doing things that you can't easily do in any other language. However skeptical the Blub programmer might be about my claims for the mysterious powers of Lisp, this ought to make him curious. We weren't writing this code for our own amusement. We were a tiny startup, programming as hard as we could in order to put technical barriers between us and our competitors.

      A suspicious person might begin to wonder if there wa

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    18. Re:Perl? by NutscrapeSucks · · Score: 1

      Sure, but look up at your titlebar. The thing about webapps is that (unlike embedded), one can throw hardware at the problem. When Java webapps have performance issues, it's usually due to application architecture and not the VM/runtime.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    19. Re:Perl? by rascal1182 · · Score: 1

      As to the "too much to remember" I'd answer, "No. Not really.". It's neat that a lot of the one-off stuff is there but you don't really need to commit it to memory.

      The problem is, a good portion of people who loudly support Perl cite these kinds shortcuts as reasons they can write code quickly (and with as few characters as possible). If that's the case, then they probably use them. If I have to deal with their code, then I'm going to have to remember this stuff, or go look it up. Not every programmer has the luxury of not working with others.

      And that was just correcting a newbish misunderstanding about the language -- if you know of a language where new programmers don't make any mistakes or misunderstand anything I'd love to learn it.

      I'm starting to sound like a bit of an evangelist, but of any language I've seen, Ruby is the closest to what you've asked for. The behavior is very consistent. After a few chapters of the "Pickaxe" book (available online here - http://www.ruby-doc.org/docs/ProgrammingRuby/), you should be up and running.

      I'll admit - I'm no Perl guru. I could make better arguments if I were. Because of my interest in languages, I'll get to it one of these days. I'm definately subject to some of the newbish misunderstandings. However, if I'm really going to learn a language, it's either needed (I learned Java for a course in distributed systems), or I'm excited about the features and design of the language.

      For sharp contrast look at how C++ handles OO behaviors.

      C++ is not the pinacle of OO design, it's just the one everyone knows. Like Perl (although, as you state, with a different approach) it has been added to a language which was not inherently object based.

      Contrast this with Smalltalk, Eiffel, or Ruby, and you might understand why I don't like it.

      Well, if you were trying to piss someone off I think you failed miserably. You made well reasoned arguments and presented them without being inflammatory. I happen to disagree with you but that's not enough to piss me off.

      No, I wasn't trying. I actually enjoy having serious, non-inflamatory discussion about programming languages (hence the reason I've posted here quite a few times). I'm glad you're here backing up your side maturely.

      I rarely go into a situation looking to piss people off, I just do anyways. Glad to hear I'm ineffective.

      I'll close by saying that the important thing to me about Perl isn't if it's the perfect programming language or not. No, the important thing is that it let's me do the work I need to do quickly and easily while I get paid a handsome sum to do something I enjoy.

      That's a good sentiment. I feel exactly the same way about Ruby (which I use at home and at work, whenever I'm not writing production code that has to be in C). But if we're talking about which language to use for a task, then these kinds of things should be the focus.

      --

      "Yarrgh! I be just a paintin' of a head..."
    20. Re:Perl? by rascal1182 · · Score: 1
      Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages.

      Indeed. But the best drill press in the hands of a baker is just going to send someone to the hospital.

      I'd suggest that anyone who's serious about developing software read this essay. It's highly enlightening.

      Thank you for pointing to this - It's a great read. I have bookmarked it for later in-depth consumption.

      In re-reading my post, I don't think I really said in this last bit what I intended (ironic, in a discussion about language). The language is important, but no language will handle design for you, despite any claims of the vendor. Even with a good language, you can write bad things. Also, many languages cater to particular programming styles.

      Sometimes, it's also acceptable to use an inferior tool if:
      • It's all you've got.
      • Other parts of the system alreay use it.
      • Your people already know it. (the cost of learning something new is never small)
      • It's already proven to be good enough (to inspire confidence in those funding you).
      Language choice is always a tradeoff. Most projects don't have the freedom to explore this, but those that do should.
      --

      "Yarrgh! I be just a paintin' of a head..."
    21. Re:Perl? by Fjornir · · Score: 1
      The problem is, a good portion of people who loudly support Perl cite these kinds shortcuts as reasons they can write code quickly (and with as few characters as possible).

      The people you hear saying these things are probably people who write "one shots" and "one liners" a lot of the time, and this is one of several scenarios where Perl excels. If you're writing a program (or a series of programs) on the command-line fewer characters quickly becomes a major asset. But that really becomes a matter of "Perl as a better shell" and not "Perl as a programming language".

      But if you're working on a larger program and not just a few quick lines to do something now you quickly learn about the Right Place. Face it, every language has a number of things where you can say, "just because you can doesn't mean you should". To put it another way: you can write brainfuck in any language.

      We do regular and thorough code reviews at my shop. If I see an idiom I'm not familiar with or a shortcut which detracts from readability I always flag it and propose a more verbose solution. My co-workers do the same for my code. After a few months of this it happens much less frequently -- by a sort of "reverse acclaim" process we've settled into the subset of the language we feel is appropriate for the tasks we're performing.

      I'm starting to sound like a bit of an evangelist, but of any language I've seen, Ruby is the closest to what you've asked for.

      I'll definately have to check it out. Thanks for the heads up.

      I'll admit - I'm no Perl guru. I could make better arguments if I were. Because of my interest in languages, I'll get to it one of these days.

      Do that. I think you might be happily surprised. Perl's an awesome tool for a lot of things and it can be a lot of fun to work with.

      C++ is not the pinacle of OO design,

      If you'll take a quick second to re-read what I'd said you'll note that I didn't claim it was. In point of fact my assertion was pretty much the opposite. :)

      I'm glad you're here backing up your side maturely.

      I'm glad I posted on a language discussion and didn't need protective clothing for it. One thing though: I don't really have a side on the choice of language issue because I have no personal stake in it. At my most recent interview I was asked if I'd be willing to learn Python after I started -- I said, "Sure -- Perl's a job skill, not a religion."

      --
      I want a new world. I think this one is broken.
    22. Re:Perl? by Jackmn · · Score: 1
      The problem is, a good portion of people who loudly support Perl cite these kinds shortcuts as reasons they can write code quickly (and with as few characters as possible). If that's the case, then they probably use them. If I have to deal with their code, then I'm going to have to remember this stuff, or go look it up. Not every programmer has the luxury of not working with others.


      Just about every language out there has little nuances for which understanding will only come when one has a great deal of experience with the language involved. Things like Duff's Device that will catch you completely off guard if you are not expecting them.

      If you are maintaining a Perl program, then you really need to know Perl. Not just the basics, but all the little nuances that make it such an incredibly rich language. Rather than trying to learn-as-you-go with maintainance, grab a copy of the Camel book and a handful of good JAPNs, and tinker away.
    23. Re:Perl? by Tassach · · Score: 1
      In re-reading my post, I don't think I really said in this last bit what I intended (ironic, in a discussion about language). The language is important, but no language will handle design for you, despite any claims of the vendor.
      I agree entirely. However, while no language will handle design for you, the language can make good design easier (or harder). Object-oriented languages tend to encourage better design patterns than procedural ones. Languages that prevent entire classes of bugs simplify the design. Languages with rich function/class libraries and solid application frameworks make good design easier. And so forth.

      the cost of learning something new is never small
      True. But the cost of *not* learning something new can be high too. Sometimes the cost of learning something new is lower than the cost maintaining the status quo. If learning a new language/tool can increase your produtivity/effectiveness, than you have to look at the total cost.

      Let's say you're in a typical Visual Basic shop. You estimate that a project is going to take the team 12 month to complete in VB. Now, let's say that it would take 3 months for the team to learn a more efficient language well enough to complete the project. Because the new language is so much more efficient, you'll be able to finish the project in 8 months instead of 12. So by learning a new language, not only do you have the project complete a month early, but you'll be able to do future projects that much more efficiently.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    24. Re:Perl? by rascal1182 · · Score: 1

      Let's say you're in a typical Visual Basic shop. You estimate that a project is going to take the team 12 month to complete in VB. Now, let's say that it would take 3 months for the team to learn a more efficient language well enough to complete the project. Because the new language is so much more efficient, you'll be able to finish the project in 8 months instead of 12. So by learning a new language, not only do you have the project complete a month early, but you'll be able to do future projects that much more efficiently.

      What makes this decision hard is not knowing those numbers before hand. Projects that jump on new(er) technology at the drop of a hat tend not to fare so well, even if the developers have lots of fun playing with the newest toys. It's rare that a new language/framework holds up to its initial hype.

      --

      "Yarrgh! I be just a paintin' of a head..."
    25. Re:Perl? by nicodaemos · · Score: 1

      Paul Graham would disagree with you. Languages are tools, true. But not all tools are equally powerful. Some languages are better designed than others, and allow you to do things easily that are difficult (if not impossible) in other languages:

      I am a big fan of Paul Graham's work -- read Hackers and Painters for an insightful series of essays that cover topics ranging from the education system to startups to Lisp. But I would disagree with him on the concept that good people can use Lisp effectively .... based on the type of people I've seen in a number of software companies, I would say that excellent people would be needed to effectively use Lisp as an advantage.

      Paul had that small talented team working on Viaweb and Lisp was the tool that magnified their talent to effectively compete with companies using scores of engineers in their development shops. But then, Paul had a world class software team ... how many projects have that kind of firepower at their disposal?

    26. Re:Perl? by rascal1182 · · Score: 1

      Just about every language out there has little nuances for which understanding will only come when one has a great deal of experience with the language involved. Things like Duff's Device that will catch you completely off guard if you are not expecting them.

      Yes, but I prefer languages that minimize these nuances and unexpected behavior.

      One of the reasons I love Ruby (standing in for Perl) is the sheer consistency of the libraries. Since all objects inherit from the same base class (with a good set of features), if I come across something new, chances are pretty good I know how to deal with it. There's no second guessing, no special types with extra functions you need to learn (yes, new classes have new member functions, but the basics don't change). Messages are handled uniformly to objects - it doesn't matter if it's actually data or a function, so they can be interchanged if the design warrants it. The list goes on...

      These kinds of features allow you to fight less with the language and more with the problem.

      --

      "Yarrgh! I be just a paintin' of a head..."
    27. Re:Perl? by doom · · Score: 1
      I like Paul Graham's essays well enough, but you really need to realize that he's a guy who got rich on his second job. His experience is actually pretty limited, but he's not shy about working up genralizations based on it...

      You might take a look at some of the criticisms of that article, for example: David Ness comments on "Beating the Averages".

      Myself I would say that technical issues like choice of language do matter, but no where near as much as techies like to believe.

    28. Re:Perl? by Jackmn · · Score: 1

      Extreme orthagonality makes learning and reading a language easy for the uninitiated, but does naught but limit those already familiar with it.

      For example, take tied hashes in Perl. They are certainly not orthagonal by any means, but they provide an unparalleled method for interacting with databases in Perl.

    29. Re:Perl? by Jackmn · · Score: 1

      Err, database access is not the only use for ties in Perl.

      I just realised my post could be interpreted to mean that.

      Apologies.

    30. Re:Perl? by Anonymous Coward · · Score: 0

      Lisp code is made out of Lisp data objects.

      Bah. Go look at SETF sometime and notice how many nasty special forms and cases -- including macros -- there are to deal with. This "code == data" thing hasn't held up for a loooooooong time.

      The cubs will win the series before Paul Graham says anything critical about Lisp and any actual weaknesses it has.

    31. Re:Perl? by rascal1182 · · Score: 1

      I don't see how consistency in behavior and interface actually preclude anything, especially to those more familiar with the language. It is a Good Thing(tm) to be consistent, even if it means the language is still accessable to "the uninitiated." In fact, it makes someone already familiar with the paradigms more productive, because they have to look less stuff up, and have a clear idea of what to expect.

      Look at Ruby's Og (which is in the same vein as tied hashes):
      http://www.nitrohq.com/view/Og

      Yes, it does some interesting things, but the interface to it doesn't have to be strange.

      --

      "Yarrgh! I be just a paintin' of a head..."
    32. Re:Perl? by Tassach · · Score: 1
      I would say that excellent people would be needed to effectively use Lisp as an advantage
      I think that Graham's underlying concept is that the people who are capable of grokking Lisp are excellent programmers. Lisp is so far out of the mainstream that only the true hacker elite are going to bother learning it.
      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    33. Re:Perl? by rascal1182 · · Score: 1

      Yeah, I did some more looking into ties, and the example I gave before is probably not the best one. However, learning about the feature has been a good experience.

      As I understand it, ties are essentially ways of intercepting messages to make more complex structures look like standard types. This has a lot of application in databases, but could be used anywhere. It's a lot (if not exactly) like a Proxy Pattern, which I will return to.

      However, I think the Ruby language itself removes the need for the need for this, because of the uniformity of objects - there's nothing special about a hash, array, etc. If I wanted to do the same thing, I would just write a simple interception class, and handle this kind of thing with the method_missing functionality.

      Take a look at this Ruby implementation of a Proxy Pattern to get an idea of what I'm talking about:
      http://www.rubygarden.org/ruby?ProxyPattern

      This is an implementation of distributed system calls, but you can imagine (and I have done on several occasions) caching calls to a database abstracted through the same idea, making a database look like an Array. Heck, Ruby is so dynamic, you can even redefine the class method so that your interceptor class appears to have the right type!

      --

      "Yarrgh! I be just a paintin' of a head..."
    34. Re:Perl? by haystor · · Score: 1

      And just as Java failures are generally due to poor development, so is hard to maintain Perl. The key difference is that often the end result is usable, hard to maintain Perl vs a completely failed java project.

      Java has a lot of people saying it's more maintainable. Really? Is it more maintainable than that 40 year old COBOL mess? I'm not buying it, that COBOL mess is still doing work after 40 years and the java replacement will be lucky to see version 1.0.

      Now, maybe someone may say java is readable by idiots. I welcome the competitors that aspire to development by idiots.

      All the languages can accomplish the same things for the most part. Java just makes you do it in a java style. I suppose this is good for someone that can't manage their own succesful style.

      --
      t
    35. Re:Perl? by NutscrapeSucks · · Score: 1

      Java just makes you do it in a java style. I suppose this is good for someone that can't manage their own succesful style.

      Well, I don't know if you were expecting an intelligent response, but yeah, that's kind of the point of Java -- there's One Way To Do Things and patterns and methodologies are standardized. That makes programmers cheaper and more replacable from a management standpoint.

      For most business programming, Capital don't want style, especially unique style.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
  6. Who do you have? by rob_squared · · Score: 3, Interesting

    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.

    --
    I don't get it.
    1. Re:Who do you have? by John3 · · Score: 1

      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.

      --
      "We make our world significant by the courage of our questions and by the depth of our answers." Carl Sagan
    2. Re:Who do you have? by rascal1182 · · Score: 1

      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.

      True. But in the same vein, if you have lots of code already in a particular language, think long and hard before switching languages, even if your people are partial to a different one.

      It can be especially unproductive to mix languages unnecessarily; you end up with lots of code just to get them to work together, and duplicate even more code.

      --

      "Yarrgh! I be just a paintin' of a head..."
    3. Re:Who do you have? by Anonymous Coward · · Score: 0

      ColdFusion... no spaces.

    4. Re:Who do you have? by zCyl · · Score: 1

      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.

      Why? If the people you have can't adapt their skills to a new programming language, then you might need to hire new people anyway. The idea of "use what you know" just causes people to use less effective tools for the job, which can often result in more clunky, less flexible, or less secure code.

      The better solution is to, first, have good people around who know a lot of languages and know a lot about design, then discuss the specific parameters of the project WITH them, and have them work out proposals for which languages should be used to match those specific design requirements. And then choose the language that's best for the job, and everyone who works there should adapt to it and learn it, since that's most of what a coding job is about anyway.

    5. Re:Who do you have? by Lord+Ender · · Score: 1

      ... i think you mean reflect photons.

      --
      A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  7. FORTRAN! by Anonymous Coward · · Score: 0

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

  8. WebObjects by lightningrod220 · · Score: 5, Interesting

    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.

    1. Re:WebObjects by Pius+II. · · Score: 2, Interesting

      I started using WO last week, and I have to say, it's great. I was able to go from "I don't know what a database is" to deploying my own Java client for my web page interface in about two hours. Of course, knowing Cocoa, Cocoa Bindings and the corresponding patterns helped a lot.
      BTW, according to the blurb on the (German) Apple home page, other large users of WO include the Deutsche Bank, O2, Consors, Bayer and T-Systems.



      Fuck T-Systems!

    2. Re:WebObjects by FlyerFanNC · · Score: 1

      Yeah, I just bought a Mac mini a week ago so I could try out WebObjects, since the development tools are included with it. From what I've read, you can deploy on any standard J2EE server, but to be proper you still have to buy a deployment license from Apple, whether or not you use OS X as the server platform. If it works as well as I've heard, it should be more than worth the $500 or $1000 that the license costs (down from $50k a couple years ago). BTW does anyone out there have any experience deploying WO on a non-Apple platform? I'd love to hear about your experiences.

    3. Re:WebObjects by Alex+Zepeda · · Score: 1

      If you're going to suggest/consider WebObjects, I highly recommend you guys look at Ruby on Rails.

      -
      alex

      --
      The revolution will be mocked
    4. Re:WebObjects by bnenning · · Score: 1

      BTW does anyone out there have any experience deploying WO on a non-Apple platform? I'd love to hear about your experiences.

      We deploy on RedHat. It works fine once you have the startup scripts in place to launch the WO services.

      --
      How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
    5. Re:WebObjects by FlyerFanNC · · Score: 2, Interesting

      I've looked at Ruby on Rails, and I'd love to use it because I *love* Ruby. My problem with Rails is its poor Oracle support. This may have changed in the couple months since I checked it out, but it doesn't seem likely (to me anyway). The impression I got from the design of the database API is that it's very MySQL-centric and provides little flexibility for databases that do things in other ways. Unless the API itself changes, I don't see how it could adequately support Oracle, and for me, poor support for Oracle is an automatic disqualification.

    6. Re:WebObjects by Anonymous Coward · · Score: 0

      Yes! Ruby on Rails! Because the last thing we want is an efficient system.

    7. Re:WebObjects by laffer1 · · Score: 1

      Yes, and if you can afford an Xserve it would be really great. The 5.3 release is now Mac OS X only. Previous versions let you develop on Mac OS X or Windows and deploy on Windows, Mac OS X Server or Solaris. Now only Mac OS X server is supported for deployment. You must buy the OS X server license to get a deployment license for 1 server. (minimum 500 dollars) Also, 5.3 is free to develop with on OS X, but OS X server still does not ship with 5.3 licenses. There are many bugs in 5.3 as well, although it is a development version and only available through ADC right now.

      I bought 5.2 around christmas hoping to switch to it from PHP and ASP.NET. It was a big disappointment.. by the time i started learning it, apple released 2 new versions that had new problems. Everyone on the mailing list (apple's) claims its dead and to move on. Its been frustraiting..

      If you already get apple's cocoa environment i'm sure i'd be great. Coming from a MS background, i'm struggling with it at every step.

    8. Re:WebObjects by Paradox · · Score: 1
      My problem with Rails is its poor Oracle support. This may have changed in the couple months since I checked it out, but it doesn't seem likely (to me anyway). The impression I got from the design of the database API is that it's very MySQL-centric and provides little flexibility for databases that do things in other ways.
      The Oracle driver has gotten better. That doesn't mean it's as good as the MySQL driver. But there is another driver you might be willing to settle with, the postgres driver. I know it's not oracle, but it addresses a lot of feature deficits that I hear as common arguments against MySQL.
      Unless the API itself changes, I don't see how it could adequately support Oracle, and for me, poor support for Oracle is an automatic disqualification.
      Well, the API doesn't take advantage of much of anything in terms of the calls. Its the job of the driver writer to make use of the underlying functionality. Since you can extend the drivers, nothing stops you from exposing the functionality you need and using that. You can keep it around as a component and reuse it on your projects without much cost in terms of interoperability.

      In fact, I know some folks would cheer you for it. It's always possible to use Ruby and basic SQL to mimic more complex database features at a performance hit to less featureful dbs.

      --
      Slashdot. It's Not For Common Sense
    9. Re:WebObjects by kwerle · · Score: 1

      Yes, and if you can afford an Xserve it would be really great. The 5.3 release is now Mac OS X only. Previous versions let you develop on Mac OS X or Windows and deploy on Windows, Mac OS X Server or Solaris. Now only Mac OS X server is supported for deployment. You must buy the OS X server license to get a deployment license for 1 server. (minimum 500 dollars) Also, 5.3 is free to develop with on OS X, but OS X server still does not ship with 5.3 licenses. There are many bugs in 5.3 as well, although it is a development version and only available through ADC right now.

      To clarify a few points:
      1. It is dev on OSX only - yup.
      2. They only sell deployment licences for OSX Server - yup.
      3. BUT! At WWDC they stated that you can deploy the development version on any java platform. They also stated that they were not lawyers, so whatever.

      The learning curve is steep!
      I have yet to find any new bugs in 5.3 - though the new webobjects builder (web UI design) is certianly more flakey (save early, save often).

      I don't read the apple mailing list, so I don't know what they say there, but there has been a point releast for the first time in a couple of years, so I don't think it is dead.

      What I *do* think is that the company isn't sure what they are going to do with it - the fact that the developer version is free and can be used for deployment on any platform makes me think there have been changes in strategy recently.

    10. Re:WebObjects by FlyerFanNC · · Score: 1

      Just to settle the Oracle v. whatever DB issue: I've paid for an Oracle perpetual license, so it's not an option for me to use anything else.

      The main thing I noticed about the database API in Rails regards automatically generated IDs as primary keys. It assumes that you have a datatype that generates this for you. Now I suppose that the writer of the particular database adapter--in this case Oracle--would have the option of doing something clever in order to use an Oracle sequence. I poked through the code in the supplied Oracle driver, and it appeared to be a reasonable implementation. But I couldn't help but think that it would be a lot more efficient to provide for that functionality in the API itself somehow. I admit that I don't recall the details of some other complaints that I had about it, but there were a few other things I noticed, related to foreign keys I think, that made me wonder how much development time it would take to get the Oracle driver working the way I wanted.

      FYI, I wrote a Ruby Oracle class library (http://ruby9i.rubyforge.org/) a few years ago as an exercise in learning Ruby. I even wrote one in C++ (http://jimcain.us/orapp/) a couple years before that.

      Also, I've had several cocktails tonight before writing this followup, so who knows what other details I've forgotten or obscured. :)

    11. Re:WebObjects by Paradox · · Score: 1
      Just to settle the Oracle v. whatever DB issue: I've paid for an Oracle perpetual license, so it's not an option for me to use anything else.
      Not many people have something like this, or the cash for it, or even the need for it! So you're in a unique position.

      Since you know Ruby, Rails and Oracle, and you have an ideal testing ground, I strongly encourage you to contribute to the oracle driver. Start by making the guts of the oracle driver meet your expectations.

      You can work on exposing other API aspects once you've gone through and made the driver work the way you expect. I'm sure this will help clarify things.

      Is this "a lot of work?" That depends. Consider that there is a ton of rails consulting work out there. Being an active developer for the project is worth more than the time investment you'd put into it. Also consider how neat it would be to work with an Oracle-saavy Rails.

      --
      Slashdot. It's Not For Common Sense
  9. Java Java Java! by FortKnox · · Score: 4, Informative

    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.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    1. Re:Java Java Java! by Surt · · Score: 4, Insightful

      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).

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    2. Re:Java Java Java! by hexed_2050 · · Score: 1

      [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 =)

      --
      Valkyrie is about to die! Wizard needs food -- badly!
    3. Re:Java Java Java! by hexed_2050 · · Score: 1

      lol, I can't believe I just used bb code there.

      --
      Valkyrie is about to die! Wizard needs food -- badly!
    4. Re:Java Java Java! by Lumpy · · Score: 0, Troll

      WRONG!

      your choice of Language to use for the large scale website is usually determined by what the IT nimrods or management deemed as the Database backend. If you are stuck with MSSQL for your database backend then forget about anything but ASP. If you are able to use Oracle, PostgreSQL, mysql or any others that do not use a conviluted nightmare for connecting to it then use Java,PSP,Perl,Python,C, hell even assembly if you desire to torture yourself.

      but if you are forced to use MSSQL then you are also forced to use ASP or ASP.NET unless you have months to dink around with special patches to compile into your favorite scripting languages to connect to MSSQL.

      Personally we use a hybrid, java where it's greatest strength is , php where it's greatest strength and ASP where it is useful. with iframes I can embed an ASP page into a PHP generated portal page that has a java function as well.

      picking one makes you limited, picking them all gives you power.... LOTS of power, It only makes the maintaince of that site a bit more tricky and require skilled personell to take care of it.

      --
      Do not look at laser with remaining good eye.
    5. Re:Java Java Java! by chris_eineke · · Score: 0
      Actually, odds are that hand written assembly will underperform compiled c these days.
      If your hand-written assembly looks like compiler-generated assembly, then yeah; you'll be right.

      Hiring or training people that can write better assembler than a modern compiler is very very difficult.
      Just as difficult as was writing assembly back in the 60s and 70s? If you can hire a particular person to optimize your code to squeeze that last 5% or 10% of speed out of it, your product will sell better, i.e. computer games and 64k code contests.
      --
      "All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
    6. Re:Java Java Java! by Anonymous Coward · · Score: 0

      Yeah, but to bad AMD knows assembly so poorly they can't even write a compiler...

    7. Re:Java Java Java! by NutscrapeSucks · · Score: 1

      If you are stuck with MSSQL for your database backend then forget about anything but ASP

      We have no problems using Java and the open source JTDS driver with MS-SQL. (But then again, we're not particularlly high load or anything, so ymmv.)

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    8. Re:Java Java Java! by HuffMeister · · Score: 0, Troll

      I write web apps for a small media conglomerate in the united states. I'd say that java is a pretty poor choice. I have yet to see a java app that wasn't as clunky and slow as all get out. On the backend, these days, you might as well use php/perl/anything but java, because, well, it's still slow as butt, and really where the real cutting-edge stuff is being done is in javascript/client-side stuff anyway.
      for example: gmail, google maps, etc.

      Call me a troll, but I took the original java for a test drive back in 96, and have yet to be impressed by it.

    9. Re:Java Java Java! by Tablizer · · Score: 1

      Cost of development is heavy in initial development, but pays for itself in maintenance

      Bullshit! I have not seen one inspectable example of this from similar claimers. Show me a peice of real or realistic web-site code that was made significantly more maintainable by Java.

    10. Re:Java Java Java! by Curien · · Score: 1

      Huh? ASP talks to MSSQL using ODBC (or OLEDB). You can do the same from anywhere else.

      --
      It's always a long day... 86400 doesn't fit into a short.
    11. Re:Java Java Java! by sykjoke · · Score: 1

      And if your using Java on x86, don't forget to use jrockit from weblogic It's quite a bit faster than standard Java

    12. Re:Java Java Java! by dougmc · · Score: 1
      If you are stuck with MSSQL for your database backend then forget about anything but ASP.
      Those who say something cannot be done should not interfere with those who are actually doing it.

      With the right JDBC driver, java talks to MSSQL just fine. Even java running on *nix has no problems working with a MSSQL database on Windows box. It just works, and lots of `large scale websites' use java and MSSQL together.

      Personally, I run perl code on my Linux box that works on a MSSQL database. It works fine too, though I've been a little frustrated that FreeTDS doesn't support placeholders yet. (But this is a limitation of FreeTDS, not MSSQL. And apparantly you can work around it by using ODBC, which I'm not going to do. But either way, it does work fine.)

    13. Re:Java Java Java! by Anonymous Coward · · Score: 0

      moron, what do you think all those cutting-edge AJAX sites is talking too... can you say JAVA. This is not 96 anymore and no JAVA isn't slow... seems to be good enough for wallmart and many other big sites. I'm not talking about your small piss crappy sites..

    14. Re:Java Java Java! by shmlco · · Score: 1
      but if you are forced to use MSSQL then you are also forced to use ASP or ASP.NET unless you have months to dink around...

      I have several companies that I consult with that have been running ColdFusion and SQL Server for 5-6 years now.

      Yeah, there's almost no third-party support for what has to be one of the most popular commercial databases out there....

      --
      Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    15. Re:Java Java Java! by Rakishi · · Score: 2, Insightful

      Just as difficult as was writing assembly back in the 60s and 70s?

      Probably a lot more difficult, CPUs are a lot more complex (to make them faster, just look at the transistor count) and have more instructions/quirks. To get the most speed you'd need to know most of them I assume, since that nice looking instruction which seems to do just what you need may actually be slower than using 5 other instructions.

    16. Re:Java Java Java! by Rakishi · · Score: 1

      Next time learn what you're talking about before insulting others, Javascript != Java and AJAX uses Javascript. The backend AJAX connects to can be fuckin anything, even a room full of monkeys.

    17. Re:Java Java Java! by tricore · · Score: 1

      Wait! wait! For performance there's also OCamel! With lots of C bindings for using C libraries, compiles to be nearly as fast as C, faster in some cases, and it's typesafe! ... Now if only any developers new it... There are many wonderful languages that I'd claim are much better than java, but no-one uses them outside of a lab, so the point of what language is best is moot. It's really dependant on what your developers are willing to use. One of many reasons I never intend on programming commercially (not bitter, really).

    18. Re:Java Java Java! by Surt · · Score: 1

      What you're talking about is much more front end development. Java is not well suited to that task. For back end database apps, it's hard to get php to scale to hundreds much less thousands of threads. It's in this area where J2EE is the dominant platform, and where factors like group development capabilities become really important.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    19. Re:Java Java Java! by drgonzo59 · · Score: 5, Insightful
      You are right, performance from the language point of view is won by assembler, but often it is the choice of the algorithm that will make the big difference. A bubble sort in assembler of 1 million items might be slower than a quicksort of the same million items in python.

      Often when someone asks the question "what languages do you know?" or "what languages are the best?" it shows a lack of CS background and experience. The right question is "what programming paradigm would you use?" or "what programming paradigm is better?" (Of course when you come down to a specific problem, then the choice of libraries might determine the language, but the original poster only specified "large web application" as the requirement so talking about a specific language is pointless).

      The difference between the two questions underlies the difference between the two types of education most programmers have. Some have gone to 4 year colleges and got a "Computer Science" degree, while some learned a language in their spare time, or went to technical college. The people from the technical college will know just one language and ask others what langues are the best, what languages they use etc. To them learning a new language hard. What a CS degree teaches (or should teach) is different programming paradigms - procedural, functional, object oriented, along with an algorithms and data structures. So if someone knows how to think in terms of objects when they solve the problem they can program in java, c++, python, ruby and other object oriented languages.

      I used C++ in college, then I learned Java, now I use primarily Python. All I had to do is learn the syntax and some of the common library functions -- all can be done with a good reference book and/or Google in a couple of weeks.

      Or if a problem can be better solved with a functional approach, I would use Prolog or Lisp (you can use Lisp for websites too!).

      So, I think the original question should have specified the problem more exact or ask about what paradigm would be better. Rather than give a general requirement ("large web application") but then then ask for a specific language. This is bound to lead to nothing but arguments of why everyone's favorite language is best and that's about it.

    20. Re:Java Java Java! by Surt · · Score: 4, Insightful

      Actually, if your hand written assembly doesn't look like compiler generated assembly, you're probably missing out on things like multi-functional unit parallel scheduling etc. The number of people who can code in a way that will feed instructions to a modern cpu successfully is very small.

      Writing efficient assembly code today is at least 3 or 4 orders of magnitude harder work than it was in the 60s or 70s, and there are far fewer experts available to hire today than there were back then. There are maybe 3 or 4 major computer game developers still doing hand assembly optimization these days, and those guys would be extremely hard to hire away from their current jobs. Most games are just developed in c, and are bound by the performance on the video card anyway, so that optimization on the CPU just isn't that important any more.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    21. Re:Java Java Java! by rascal1182 · · Score: 1

      Here! Here!

      OCaml (notice the spelling, for people who are interested in learning more) is awesome. I'm too lazy to look up specifics, but I know it's been the tool of choice for several competitions where speed was a major factor. We had to use it for a programming languages class (a while ago), and I couldn't be happier about it.

      The problem is, many people just can't wrap their minds around functional programming...

      --

      "Yarrgh! I be just a paintin' of a head..."
    22. Re:Java Java Java! by Anonymous Coward · · Score: 1, Insightful

      Thank you for depicting what computer science really is. Sure, I may know a good 50 languages, but does that mean I know which sorting algorithm to use, or to use an adapter over a factory for making any arbitrary wrapper class. I completely agree with you, in that it really is what you know about paradigms of programming and the system, not what language you use to control it.

      If any of you have ever worked in the corporate environment, the company does not say "Use C++ to build us a backend server that incorporates this functionality." Rather they say "Build us a backend server that incorporates this functionality," and never specify a language.

      So to those of you who ask what the best language is my response is every one. It's not what language you use; it's how you use it.

    23. Re:Java Java Java! by xarak · · Score: 1

      I quite agree. J2EE platforms are big chugging things which admittedly give lots of session control and connector pools and such stuff, but as a server admin, I find I get less hassle from the process-then-feed-the-page PHP sites than the heavy Java sites.

      Just restarting our Websphere instances fully with all connectors takes 20 minutes, and it does need to be done regularly. PHP/Apache does not need to be restarted, or takes less than a second to do so, thus enabling higher uptimes. Uptimes being the variable part of my salary, I'll stick with Apache any day $-)

      That's an admin, not developper view.

      --
      Atheism is a non-prophet organisation
    24. Re:Java Java Java! by Anonymous Coward · · Score: 0

      Huge scale website it doesn't work. Been there tried it. I even tried the coldfusion setup and it can not work under huge loads like slashdot would get or other large sites like CNN,ESPN,Etc...

      MSSQL+ASP can work (let's forget all security holes in that mix for a second) But if your PHB's have enough brains they will not have you use MSSQL but a real database such as oracle or postgre or even (Gasp) MySQL (yes mysql is a real database.. anytihng you can do in your favorite I can do in mysql)

      but lumpy is right... if you are stuck with MSSQL you really have tyo use ASP unless you have lots of development time. mssql + php = gobs of hours getting that working that could have had the site 1/2 finished by the time you got the SQL connection working.

    25. Re:Java Java Java! by timeOday · · Score: 2, Funny
      Writing efficient assembly code today is at least 3 or 4 orders of magnitude harder work than it was in the 60s or 70s
      4 orders of magnitude - so if it took a whole week to master assembler back then, it takes 192 years now? I'm just glad today's experts had the foresight to begin studying assembly back in the year 1813.
    26. Re:Java Java Java! by Surt · · Score: 1

      I hope it didn't take a week to master assembler back then. It wasn't all that complicated. More like going from a couple of days to 7-8 years to really master assembler work today.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    27. Re:Java Java Java! by Anonymous Coward · · Score: 0

      "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."

      This statement is simply not true. You probably won't find many CS grads straight out of school, but don't believe for a second that good programmers can't learn to optimize code in assembler in a couple of weeks time.

      I mean gcc is horrible at generating good code for all of the SSE registers...hell no compiler is really very good at it because it is just to hard for a compiler to know what parts of a code can be optimized that way.

      Howver you are right it is a dying art...and that is sad. Maybe just maybe processors will reach a limit and assembly language programmers will be worth there weight in gold again....ah those were the days.

    28. Re:Java Java Java! by dougmc · · Score: 1
      Huge scale website it doesn't work. Been there tried it. I even tried the coldfusion setup and it can not work under huge loads like slashdot would get or other large sites like CNN,ESPN,Etc...
      So, you couldn't do it, so it can't be done?

      In any event, lumpy didn't say anything about huge scale websites.

      Probably a bigger limitation is that MSSQL just runs on PCs (and Windows, for that matter.) So that limits the hardware you can throw at a problem.

      MSSQL+ASP can work
      I'm sure it can. Just like MSSQL+perl or java can work. (Actually, you can do perl in ASP if you wish, and probably java too. ASP doesn't force you to use virtual basic ... you can use other languages.)
      yes mysql is a real database.. anytihng you can do in your favorite I can do in mysql
      That's nice. Irrelevant to people saying that MSSQL only works with ASP, but nice.

      but lumpy is right...
      Sorry, but lumpy was flat-out wrong. He said
      but if you are forced to use MSSQL then you are also forced to use ASP or ASP.NET unless you have months to dink around with special patches to compile into your favorite scripting languages to connect to MSSQL.
      It took me about 30 minutes of googling to figure out how to talk to MSSQL from perl. (Mostly because I didn't realize that MSSQL was based on Sybase at the time, so I didn't realize that it was FreeTDS and DBD::Sybase that I needed.) Once I found that out, everything just worked. No special patches or anything.

      Under java, it's even easier. Just put Opta2000.jar into your CLASSPATH, and use the correct database URL, and it all just works. (For the record, I do perl programming and not java programming, but I work with lots of people who write java programs that work with MSSQL, Oracle or DB2 with no changes beyond the database URL, and am I familiar with the basics of it.)

      mssql + php = gobs of hours getting that working that could have had the site 1/2 finished by the time you got the SQL connection working.
      PHP's database problem is that it doesn't abstract the database layer away from anything. If you write an application to work with MSSQL, it'll only work with MSSQL. At least this was the case last time I looked ... it's been a while.

      Either way, it's not MSSQL's fault. It's PHP's. An application written on a language with proper SQL support will generally work on a new database with only some very minor changes.

      Any time I'm forced to defend Microsoft or one of it's products, I feel like I should be looking for the Candid Camera guys ...

    29. Re:Java Java Java! by chemistry · · Score: 0

      What? 3 or 4 major game developers? what are you smoking crack....most assembler these days, as in day's past, is done by scientific programmers. I can assure you that the art is alive and well.

      "Actually, if your hand written assembly doesn't look like compiler generated assembly, you're probably missing out on things like multi-functional unit parallel scheduling etc. The number of people who can code in a way that will feed instructions to a modern cpu successfully is very small."

      Yeah maybe if you write the whole program in assembler. Most people, game developers, scietists, etc only optimze specific functions. It isn't even that hard to do. Takes maybe 1-2 weeks to get pretty good at writing descent SSE code. I hand optimize functions probably once maybe twice a month and I can see significant performance gains when I do so....regardless of the compiler.

      No way in hell do modern compilers give the most optimised code in all situations.

      Granted not many people write code this way but believe me there are those of us who do...and it isn't a black art as some might have you believe.

    30. Re:Java Java Java! by Surt · · Score: 2, Insightful

      The problem is, if you're 'just' writing sse/sse2 etc, you're missing out on potential parallelism. You want to deliver some of your work to the sse, some to the main adders, etc. I've done some of this, and it is fairly complicated work. Again ... I think this is sufficiently complicated that trying to find well qualified people to do it is going to be pretty challenging. And we started out with the premise that we were writing a whole program in assembler, rather than say just optimizing in a narrow area, where you can probably afford to try a large number of different possibilities and actually benchmark the different options to prove whether or not you've succeeded.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    31. Re:Java Java Java! by Surt · · Score: 1

      Well, out optimizing gcc isn't hard, but try out optimizing the intel compiler, which is what anyone who cares enough about performance is using.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    32. Re:Java Java Java! by Anonymous Coward · · Score: 0

      " The problem is, if you're 'just' writing sse/sse2 etc, you're missing out on potential parallelism. "

      I totally agree. In fact most times, for my work at least, the biggest gains are from threading the application first...then if need be hand tuning some loops or function.

      "And we started out with the premise that we were writing a whole program in assembler,"

      Sorry I missed the initial premise...but I certainly agree. I don't know anyone who could write a large app in assembler, well actaully I do know one guy...but he is different...really different. Anyway I wasn't trying to sound pompous in my previous post. It just seems that a lot of people think of assembler as a balck art, when in fact it isn't really any harder to learn how to do inline assembler than it is to manage a massivly threaded app....contrary it is actually easier.

    33. Re:Java Java Java! by quickword · · Score: 1

      I started off in a program that taught paradigms: (divide-and-conquer, greedy, backtracking, branch-and-bound), computer organization, OOP, fundamental data structures, principles of programming languages, computer architecture, etc. I then finished my BS in CS with a C++ emphasis at a school that was more like a tech school. Oh how I wish I wish I wish I had done those two in the reverse order!!!

      All of my classmates who had ability to program and only needed the fundamental backing BREEZED through the courses because the fundamental concepts are NOT DIFFICULT!!! They never had to go to class, they didn't spend 20 hours a week in the computer lab trying to figure out how to demonstrate the concept we'd just learned. I GOT the concepts, I just didn't get the language. The Teacher's Assistants wouldn't help, they'd give you the RTFM attitude.

      My Professors didn't know the languages as well as my fellow students. As it turns out, now that I know what great code looks like, my fellow students weren't all that great either. I bought books on the side, one semester I bought six C++ books, none of which were really any good. (I hate the C++ Master Reference.) You try learning C++ in the first three weeks of a required class when you only have a tenuous understanding of Java from your previous three classes! (It's exactly the same, everyone told me. The only difference is pointers. BS!!!)

      Anyways, my point is that both styles of education have their place. From my experience, the fundamentals are essential. Knowing at least one language fairly well to get your foot in the door first is almost essential.

      P.S. I finally found some GREAT books though. Accelerated C++ by Koenig and Moo, C++ Primer by Lippman and Lajoie, and The C++ Standard Library by Josuttis. I LOVE these books.

    34. Re:Java Java Java! by Anonymous Coward · · Score: 0

      See you're the typical wanker that never was interested in computers; then went to university to get a degree in umm.. computer science! Now you think you know something.. but unfortunately the text of your comment shows you know jack all. Have you ever stopped to try and understand the underlying logic, the bits and bytes, the assembler underneath the machine? Or are you too caught up in your lofty views of the abstract world? Try getting an engineering degree before you even START thinking you have any idea what computers/programming is about.

    35. Re:Java Java Java! by Anonymous Coward · · Score: 0

      Prolog for a functional approach? Forget it. Prolog does not fit the functional programming paradigm at all.

    36. Re:Java Java Java! by Anonymous Coward · · Score: 0

      Engineering vs. science, clashing again.

      Frankly the best engineers should recognize that for general purpose computing all the bit twidling and pipeline ordering the world will probably just cut down on a tiny constant time overhead.

      Maybe it's still relevant in embedded systems or the innermost loops of complex algorithms, but when dealing with large volumes of data it doesn't really matter what the endianness of your processor is or how many registers it has: it's the big-O time that'll make or break you.

      Think about Google's architecture, and how they minimize latency not at the processor level, but at the granularity of entire machines or even clusters of machines. I'm sure the code that runs on those individual machines is really fast, but at some point you have to take a look at the big picture and spend time optimizing the real bottlenecks.

    37. Re:Java Java Java! by HuffMeister · · Score: 1

      Well, we do close to a million page views a day in an all PHP/MySQL shop, and we haven't had many complaints. We've home grown a lot of our infrastructure, but it seems to be working pretty well. On top of that, we use php for a lot more hard-core networking stuff too... I wonder if it's not one of those "right tool for the right person at the right time things."

    38. Re:Java Java Java! by miknight · · Score: 1

      "P.S. I finally found some GREAT books though. Accelerated C++ by Koenig and Moo"

      Ah! So that's what Moo is ;)

    39. Re:Java Java Java! by bigbinc · · Score: 0


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


      I agree with this. I am stretching...but I am seeing the oppurtunity for SOA type of applications, so the entire application doesn't have to be written in one language. You don't have to write a million lines of J2EE app. You modularize your systems. You deploy on multiple machines. It is not being utilized, right now, but it makes sense.


      You could have your number crunching portion of the application written with Python, on a seperate machine. The business logic written in Java on a seperate machine. The interface(possibly) written PHP, possibly Java.


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


      Slow down...


      1. It doesn't deliver performance at all, at least compared to other server-side technology.


      2. Scalability. Sort of, performance, buy a bigger machine. Software engineering wise, maybe.

      ...the others, Java is a little better at.


      --
      ---- Berlin Brown http://www.newspiritcompany.
    40. Re:Java Java Java! by Anonymous Coward · · Score: 0

      I can't believe you said "lol"

    41. Re:Java Java Java! by thej1 · · Score: 1

      Client side :- Java Script Front end :- Struts, JSP Backend DB :- My-Sql Appserver :- JBoss. Developement tool :- Eclipse This should work for you.

    42. Re:Java Java Java! by Ian+Bicking · · Score: 1
      A bubble sort in assembler of 1 million items might be slower than a quicksort of the same million items in python.
      I'd go even further -- it's almost certain to be faster in Python, because you'll be using a highly optimized sort algorithm that someone else wrote in C (99.9% of the time you should use the built-in sorting methods in Python). Unless the assembly programmer is really obsessing over their sort implementation, in which case that programmer should really find Real Work To Do and stop messing around. Did the programmer even check if that sort is a bottleneck?

      There are people in this thread who are saying you should carefully understand all your algorithms and know how the big O complexity of sorts and all that; these people are being rather dense. While web application programming does use the occassional "algorithm", the bulk of programming isn't about algorithms at all. It's about designing good abstractions, refactoring, careful error handling, etc. Algorithm design is, for most cases, a solved problem that is only a distraction.

      In a high-level language like Python, almost all good algorithm design is figuring out how to map your problem onto the powerful data structures and algorithms already built into the language.

      Modern computer science for application developers is about design and methodology, not mathematical algorithms.

    43. Re:Java Java Java! by drgonzo59 · · Score: 1
      Ian, I agree with you. That is why I use Python, it has a good library and takes less time to map a problem to the Python language than it does to map it to C++, or Java.

      But I was replying to someone who said that "some languages are faster than others". I mentioned that very often it is the choice of the algorithm that matters. Granted, in a web application there will not be too many algorithms with nested "for" loops and such, but since we don't know what the "large web application" does I was talking in general about programming practices. When I think of programming in my field I usually have to implement an algorithm or come up with a new one. I was working in C++ then Java then I found Python. I can spend less time coding in python and think more about the overall complexity.

      Unfortunately (or fortunately) for me, application development for me still has the mathematical and complexity part, I do like it...

  10. ...and one glue language to bind them all by Anonymous Coward · · Score: 0

    perl

  11. The only thing that counts... by Qui-Gon · · Score: 3, Insightful

    And you said it...

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

    --

    We are blind to the Worlds within us
    waiting to be born...
  12. Consider the employment market by Brento · · Score: 2, Insightful

    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.

    --
    What's your damage, Heather?
    1. Re:Consider the employment market by Tablizer · · Score: 2, Insightful

      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.

      If you are building something that large and asking for advice from slashdotters, you have faaaaaar bigger problems, dude :-)

    2. Re:Consider the employment market by WindBourne · · Score: 1

      Note, that the really smart move is not to check what is currently hiring. After all these shrinking fields (.nyet/java) have an over abundance of ppl. Instead, be looking at what is up and coming.

      --
      I prefer the "u" in honour as it seems to be missing these days.
  13. Nothing like... by KJE · · Score: 0
    a nice little flame war on a Saturday afternoon.

    Ready, set, go!

    1. Re:Nothing like... by clunis · · Score: 1

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

    2. Re:Nothing like... by ResQuad · · Score: 0

      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.

    3. Re:Nothing like... by kryten_nl · · Score: 1
      For your flaming convenience, upcomming Slasdot items include:
      • Star Wars vs Star Trek
      • Old BSG vs New BSG
      • THGTTG vs everything else
      • Which Linux distro is best
      • Mac vs all other OS's

      And of course:
      • Red vs Blue
      --
      For the perfect anti-Unix, write an OS that thinks it knows what you're doing better than you do and let it be wrong.
    4. Re:Nothing like... by VGPowerlord · · Score: 1

      Actually, it was afternoon in Europe when he posted it. It just wasn't in the Americas, Eastern Asia, and Australia. ;)

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    5. Re:Nothing like... by VGPowerlord · · Score: 1

      Eep, ignore that. I just found out that my timezone on my /. settings was 7 hours off (-12 instead of -5).

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    6. Re:Nothing like... by andreyw · · Score: 2, Funny

      You forgot -

      VI vs EMACS
      GNOME vs KDE

  14. One word: by OblongPlatypus · · Score: 1

    Erlang!

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

    --
    -- If no truths are spoken then no lies can hide --
    1. Re:One word: by d_strand · · Score: 1

      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.

  15. Seconded! by XanC · · Score: 2, Informative

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

    1. Re:Seconded! by Anonymous Coward · · Score: 0

      It does it all, and it values the most expensive component of software: programmer time.

      I love perl, but it only seems to save programmer time up front. It is very easy to write very messy perl in multiple styles making it very difficult to maintain. Also, with the influx of development tools with features like inline help and context completion, the short, powerful, and often inexplicable syntax of perl coupled with a tradional text-editor no longer has a clear advantage in programmer authoring time.

      Sure, there's ide's out there for perl, but it's just never seemed like a natural fit. It just goes against the culture. Also, you think of an IDE like Visual Studio or Eclipse, you think of a widely accepted standard. You think of an IDE made for perl say by activestate, it just feels like kind of software you don't want to touch. Single non heavy-weight company, closed source, expensive application in an otherwise free platform, etc.

    2. Re:Seconded! by rascal1182 · · Score: 1

      If your main concern is programmer time, find a framework. You will take a performance hit, but you'll have most of the tedious work out of the way, letting your programmers focus on the stuff that matters.

      --

      "Yarrgh! I be just a paintin' of a head..."
    3. Re:Seconded! by Anonymous Coward · · Score: 0

      Try a real editor that understands perl (like Komodo). Likewise, there are amazing tools to re-factor and check perl code in CPAN - look them up.

      Perl is not the little scripting language you knew back in the days of 4.0 - its a wonderful and mature framework that supports everything most people need.

    4. Re:Seconded! by Tablizer · · Score: 2, Interesting

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

      I don't know about that. Perl has a reputation for being a "write-only language". Even if initial development is faster, long-term maintenence may be at risk. It is not that Perl is inherently tangled as a language, it is just that it seems to attract the kind of people who *like* obfuscation, for unknown reasons.

    5. Re:Seconded! by cahiha · · Score: 3, Insightful

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

      Programmers also have to debug and maintain that software, and that makes Perl one of the most wasteful languages in terms of programmer time.

    6. Re:Seconded! by grcumb · · Score: 1

      "Programmers also have to debug and maintain that software, and that makes Perl one of the most wasteful languages in terms of programmer time."

      This is insightful only to those who have no exposure to Perl other than the odd two-bit script.

      Well-written Perl features inline documentation, built-in unit tests, strong interaction with more powerful languages where optimisation is required and complete access to the Apache API. Not to mention a very useful debugger. And Perl apps can benefit from the vast wealth of experience that is CPAN, not to mention some of the best-designed web development tools available today.

      Someone help me out here: Does PHP (for example) have any of these?

      I'm not one to disparage other languages. There are plenty of desirable features in each. But when people cast aspersions based on nothing but roadside rumour, I feel it's important to correct the record.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    7. Re:Seconded! by Anonymous Coward · · Score: 0

      Only when fucktards write the program in the first place.. like one particular team leader at an investment bank in Australia does..

    8. Re:Seconded! by cahiha · · Score: 1, Interesting

      But when people cast aspersions based on nothing but roadside rumour, I feel it's important to correct the record.

      My "aspersions" are based on using Perl since Perl 3 days--roughly 15 years. Perl has numerous severe problems that make testing and debugging in it unnecessarily hard. People like me picked up Perl back then because it was a slight improvement over sh/awk/sed scripting, but fortunately, lots of better open source scripting languages have come along since then.

      I'm not one to disparage other languages. There are plenty of desirable features in each.

      Sorry, no go. One can debate the relative merits of Ruby, Python, REXX, PHP, and VB, but Perl clearly is inferior to all of those. For small projects, Perl's libraries still may tip the balance, but for any kind of large project, the severe deficiencies of the Perl language make it a poor choice.

      Perl6 perhaps may re-enter the race, but it is effectively a different language from the Perl we all know and despise, and Perl6 doesn't seem to be happening.

    9. Re:Seconded! by qw(name) · · Score: 1

      Perhaps, but Perl is versatile (and fast) enough to allow the programmer to write readable code. I've only seen a few times where a little "obfuscation" was needed to produce the kind of performance necessary to get the job done. Those cases are rare, however.

    10. Re:Seconded! by snorklewacker · · Score: 1

      > Perl has a reputation for being a "write-only language"

      Among people who only ever learned perl by rote from 1-day trainings and copying and pasting CGI libraries. Yes, you can do some severe golf in perl, and a schwartzian sort is baffling, but a good 90% of perl is easier to grok than most C code. If it were really a write-only language, it would not have the traction it has.

      THIS is a write-only language. A gold star to whoever identifies it first.

      group:{[t;k;f;o].+(k,{`$($x),"_",$y}'[o;f];,/(k;f) {(. z)[t y]. x}[link[t;t;k]]''`last,,o)}

      --
      I am no longer wasting my time with slashdot
    11. Re:Seconded! by snorklewacker · · Score: 1

      Perl6 perhaps may re-enter the race, but it is effectively a different language from the Perl we all know and despise, and Perl6 doesn't seem to be happening.

      www.pugscode.org

      Virtually the whole language has been implemented. Now they're working on porting it to itself, leaving only a small haskell core. Perl6 aims to be ready by the end of 2005, and it's quite on schedule.

      And yeah, it's quite a different language, and a whole new kind of ugly.

      --
      I am no longer wasting my time with slashdot
    12. Re:Seconded! by chromatic · · Score: 1

      Pugs really hasn't implemented the whole language, but it's possible to write useful, practical, usable Perl 6 programs with it. (See Porting Test::Builder to Pugs, an article I just wrote about my experience doing so.)

      I think I'm pretty good at Perl 5, but Perl 6 is amazingly nicer.

    13. Re:Seconded! by Anonymous Coward · · Score: 0

      "and that makes Perl one of the most wasteful languages in terms of programmer time."

      LOL I rewrote this response so many times.

      I have worked at the #1 portal as an engineer for 2 1/2 years, and now own a mod_perl site with over 80M pageviews daily. 10 years experience in large dynamic commercial sites overall.

      I can absolutely, positively, without question say C/C++ has about 10X as much debugging and code management overhead than Perl.

      Hell when I was at the portal we would spend 5-6 hours (each!) just debugging and compiling our copy of the weekly development build so we could *start* coding!

      Now I write mod_perl between bites of lunch and take the afternoon off. Production Perl feels like cheating compared to C/C++!

    14. Re:Seconded! by glenstar · · Score: 1
      THIS is a write-only language. A gold star to whoever identifies it first.

      Christ... a language that makes perl look like a Hemingway novel. I wouldn't have thought it possible.

    15. Re:Seconded! by Evil+Pete · · Score: 1

      One company I worked at I decided I finally (after all these years) ought to learn Perl. So I walk up to the resident perl guru and ask what he'd recommend for a quick intro (no the Camel book is not a quick intro). He says "Don't use Perl. I don't even understand the commented code I wrote 2 years ago. Use Python or better still use Awk ... awk is available for just about any platform". Bit disappointing but I picked up Python again. Probably should get around to Perl, though looking at some of the examples in Mini Golf I think the perl programmers are missing a vital factor in their programming.

      --
      Bitter and proud of it.
    16. Re:Seconded! by MikeFM · · Score: 1

      It makes no difference. Not that I'm crazy about PHP either.

      Perl is still a bad language for large apps. Perl encourages dense coding and more than one way to do a job which is bad for maintainability. It's not that you can't code Perl well.. it's just that it makes it really easy not to. I've been using Perl for years and I still hate any big project that requires me to switch back to it.

      My experience is that most programmers don't really know what they are doing. If you give them enough rope they'll hang themselves and effectively leave others a minefield to wade through to fix every damn little bug.

      Perl is great for small scripts that just need to make some quick use of one or two CPAN modules or do something with strings. It's the perfect tool for those kinds of jobs. You'd be insane to write a 10,000 line program in it though.

      Of course I wouldn't write a 10,000+ line program in PHP either. :) I'd probably suggest looking into something more structured for big complex projects. I like Python but Ruby or Java would also be okay.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  16. ASP.NET w/C# by gfody · · Score: 2, Insightful

    this should've been a survey

    --

    bite my glorious golden ass.
    1. Re:ASP.NET w/C# by Kethinov · · Score: 1
      this should've been a survey
      This article actually would have made a nice Slashdot poll, IMHO.
      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    2. Re:ASP.NET w/C# by Anonymous Coward · · Score: 0

      I've written a ASP.NET web application that did almost $200 million in the last 12 months. We use a SQL Server 2000 backend and five web servers under Windows 2003 Web edition using WLBS. (Think do-it-yourself moving in North America)

      ASP.NET and C# make it easy in my opinion although it makes the barrier of entry lower and many incompetent people think they're software engineers now!

      Quality people will make any language work very well. Java and C# are both very well suited for large-scale ecommerce.

  17. Microsoft by Anonymous Coward · · Score: 0

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

    1. Re:Microsoft by nxtw · · Score: 1
      The differnece is more than that.

      ASP.NET contains so much more functionality that makes many tasks easier (although you can still use just the basic functionality that was in ASP, if you prefer.) ASP.NET is also compiled.

      Also, a minor nitpick -- ASP can use any Windows Scripting language, which includes JScript and I think a few others via third party software.

    2. Re:Microsoft by minus_273 · · Score: 2, Informative

      yeah, there is a huge difference between the two. With Visual Studio ASP.net has been by far the simplest web dev environment i have used. It seems the story submitter didn't bother doing any research becasue of the MS factor. That unfortunate becasue ASP.net is actually really fast and really good.

      --
      The war with islam is a war on the beast
      The war on terror is a war for peace
  18. Language Choice is critical to the evolution by Anonymous Coward · · Score: 0

    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.

    1. Re:Language Choice is critical to the evolution by thrillseeker · · Score: 1
      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.

      Modularization is not always the cat's meow. All problems don't come pre-formed to fit into ready made bins.

      Discipline can either be enforced by a programming language that shackles you to only its way of doing something, which costs what might be critical flexibility sometimes, or it can be self enforced by competent programmers who can use a flexible language with their own application of structure, knowing how and when to deviate to accomplish a task.

      PHP is a fine language. It allows a great deal of expression, just like English, because each has borrowed as desired from other languages. The attitude that only "modern modularization" is suitable for everyone to use is the same kind that would force everyone to only learn and use Esperanto, because "it's designed".

      Of course, APL is the only true way to fly.

  19. all these new languages are hype by Dysenteryduke · · Score: 5, Funny

    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.

    1. Re:all these new languages are hype by deaddrunk · · Score: 5, Funny

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

      --
      Does a Christian soccer team even need a goalkeeper?
    2. Re:all these new languages are hype by Ryosen · · Score: 4, Funny

      >>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.

      --

      Ryosen
      One man's "Troll, +1" is another man's "Insightful, +1".
    3. Re:all these new languages are hype by darc · · Score: 1

      Hey, what about ASP and Fortran.NET backend? Don't forget about it. Fujitsu worked really hard to bring Fortran to the .NET CLR and it shouldn't go to waste.

      --
      Tired of legitimate data sources? Try UNCYCLOPEDIA
    4. Re:all these new languages are hype by Doctor+Memory · · Score: 1

      As everyone knows: "Real programmers can write FORTRAN in any language". I'm currently working on a large project, and it's all monolithic Java. Everybody just creates an EJB for their part of the system and everything goes into a method in the EJB. Polymorphism? Can't do it -- parameter passing is done by stuffing everything into a hash table and passing the hash table, so all methods would have the same signature. Subclassing? Nah, just throw some declarations in a file and use Source->Generate Getters and Setters; voila, instant JavaBean, and there's your class. "Everybody knows" that "all business logic belongs in an EJB", including (apparently) input validation, range checking and other field-level sanity checks. I predict there's going to be some high-visibility tankage when this dog gets released.

      Seriously, use whatever's appropriate for your shop. If you're writing something seriously big, I'd stick with Java or .NET since Java's made to scale and .NET's just a warmed-over Java...;) That's for ERP-scale systems (think SAP), though; if your app can be implemented with lots of mostly-autonomous servers (a la Google), then you should be able to use PHP or Python. Just make sure your base IPC structure is tight (database, message queues, whatever).

      --
      Just junk food for thought...
    5. Re:all these new languages are hype by Kethinov · · Score: 1

      Kobal?

      Old news.

      Battlestar Galactica visited that place last season...

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    6. Re:all these new languages are hype by Tablizer · · Score: 1

      You should really check out mod_fortran.

      GOTO HELL

    7. Re:all these new languages are hype by TheDauthi · · Score: 1

      Hell, I'm using it to replace my company's screen-scraping applications, one-by-one, with something a little more computer-friendly.

    8. Re:all these new languages are hype by cpghost · · Score: 1

      Oh yeah, Apache + mod_cobol running on a mainframe! Say an S/390 running Linux, and on top of that another mainframe emulation to support the legacy cobol runtime environment!

      --
      cpghost at Cordula's Web.
    9. Re:all these new languages are hype by Anonymous Coward · · Score: 0

      One man's "Troll, +1" is another man's "Insightful, +1".
      You're right.
      I'm tired of all those insightfull posts being modded down to troll, just because they criticize a subject at hand. Even this post could/will be modded either Troll, -1 or Offtopic, -1.
      Slashdot moderation is the best I've ever seen, but it allows for some self-protective morons to put cencorship upon some comments that might actually show a diffirent point of view to a comment reader.
      There was a time when I dared to post some criticizing posts without having to use the "Post Anonymously" option, hoping that people with modpoints would understand that my point of view is not an intended flamebait, but rather an attempt to discuss something that I'd like to discuss.
      There really is nothing to do about this, other than whine silently under the cover of an anonymous post.

    10. Re:all these new languages are hype by Anonymous Coward · · Score: 0

      If you are hosting your application in .NET, then you choose any language.

      If you happen to have a lot of legacy code or just have some COBOL programmer handy.. then you can use Micro Focus's COBOL (Net Express with .NET)

      http://www.microfocus.com/products/NetExpress/inde x.asp

    11. Re:all these new languages are hype by iGhost · · Score: 1

      Mainframe... I thought Microsoft were moving everyone off the mainframe onto Windows...
      Checkout...
      Mainframe Migration Alliance Assists Customers Looking to Move Off the Mainframe http://www.microsoft.com/presspass/press/2004/sep0 4/09-28MainFrameMigrationPR.mspx
      http://www.mainframemigration.org/

    12. Re:all these new languages are hype by Gaewyn+L+Knight · · Score: 1

      May I be the first to say...

      YOU SICK BASTARD!

      That is all...

      --
      Telcos have alot of dark fibre in the States. Most people assume that's optical fibre...but it's actually moral fibre.
    13. Re:all these new languages are hype by bluGill · · Score: 1

      I always post with my real name. My +1 bonus normally means that the controversial things don't get modded all the way down, and I can burn a little karma. Karma is meaningless, and the next post won't be so controversial and thus when modded up gets me back all the karma I lost.

      Which reminds me, I gotta meta-moderate again. Seems every day there is at least one unfair moderation in the list.

  20. What about security? by foobarra · · Score: 1

    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.

    1. Re:What about security? by jadavis · · Score: 3, Interesting

      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.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:What about security? by Krunch · · Score: 1

      Since Jython is all Java, I guess you can still use JNI to use C modules.

      --
      No GNU has been Hurd during the making of this comment.
    3. Re:What about security? by shrewtamer · · Score: 1

      Why isn't everyone screaming this? I'm facing a similar question at the moment. My site is going to be pretty much a hobbyist thing so I probably don't need to worry about performance and scalability too much at the moment. Security is my biggest concern. I can't believe it doesn't even feature on the list of concerns.

  21. Where are the best practices for each language? by Alderete · · Score: 2, Insightful

    I've been getting into Ruby on Rails 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.)?

    1. Re:Where are the best practices for each language? by FortKnox · · Score: 1

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

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    2. Re:Where are the best practices for each language? by Anonymous Coward · · Score: 1, Interesting

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

    3. Re:Where are the best practices for each language? by beware1000 · · Score: 1

      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.

    4. Re:Where are the best practices for each language? by ThinkComp · · Score: 1

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

    5. Re:Where are the best practices for each language? by nxtw · · Score: 1
      After using ASP.NET and Web Forms, I couldn't go back to something simpler (like PHP without a framework.) Although, the object oriented nature of .NET and Java makes both much more appealing than PHP to me.

      I've found PRADO to make PHP development much more tolerable, although I still prefer to use .NET, and I plan on learning Java soon.

    6. Re:Where are the best practices for each language? by Tablizer · · Score: 1

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

      RR is still too new. Let it be road-tested for a few years before you bet an ebay-size biz on it.

    7. Re:Where are the best practices for each language? by matbot · · Score: 1

      yep, its ruby

    8. Re:Where are the best practices for each language? by CryBaby · · Score: 1

      The best guidance I've found for large-scale PHP development is the book Advanced PHP Programming from George Schlossnagle.

      However, not long after reading this book (along with stuff like Fowler's PoEAA) I switched to Java because I realized that all of the large-scale application design and maintenance problems I was trying to solve in PHP were already addressed in various Java tools, frameworks and features of the language itself (highly object-orientated, packages, etc.).

      Whether or not Java is the best choice for large-scale systems is debatable. What seems to be more important is Java's position as a de facto standard for such systems. "Cutting edge" or even non-existent concepts in PHP like O/RM, unit testing, caching, OO component-based web development, and so on are mature and commonly used in Java. If you get into truly large-scale, clustered systems, then there is an entire laundry list of mature Java technologies that literally do not extist in PHP: distributed transactions, RMI, clustered caching, session replication (I mean actual session replication - not a central repository), JMX, application servers that deal with cluster deployment and management, etc.

      In PHP, you are free to invent these things for yourself or use some of the Java project clones (propel, creole, phing) that don't see much use, but this is a far cry from having widely used, tested and in many cases standardized and vendor supported solutions at your disposal.

      My point is that you might consider saving yourself a lot of headaches and "am I the only one trying to do this?" scenarios by switching to Java sooner than later. I can say with near certainty that if you move far enough in the direction of enterprise or large-scale development, you will not be doing it in PHP anyway.

    9. Re:Where are the best practices for each language? by SendBot · · Score: 1

      Mod the parent up! I still like using PHP for having used it so long and developing my own frameworks and "best practices". The new OOP features of PHP5 are nice, and the Schlossnagle book does a great job of utilizing those features with practical examples for such useful topics as error handling.

      I might have to check into Java as a web dev language!

    10. Re:Where are the best practices for each language? by feamsr00 · · Score: 1

      I remember there was a project called PHP.NET or some such but i cant remember where it where I saw it. Anybody remember such a thing?

    11. Re:Where are the best practices for each language? by feamsr00 · · Score: 1

      (and no, its not www.php.net)

  22. You only need one thing for it all... by Anonymous Coward · · Score: 0

    Emacs

    1. Re:You only need one thing for it all... by Anonymous Coward · · Score: 0

      If you don't know what you're talking about why did you bother to reply?

    2. Re:You only need one thing for it all... by kd5ujz · · Score: 1

      Yeah, what a dumbass, everyone knows that nothing is scalable as Vi.
      [/joke]---( for the people that can not see an obvious attempt at humor.)

      --
      -William
      God is everything science has yet to explain.
  23. You forgot Perl by ResQuad · · Score: 1

    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.

    1. Re:You forgot Perl by Anonymous Coward · · Score: 0

      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?

    2. Re:You forgot Perl by ResQuad · · Score: 1

      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.
    3. Re:You forgot Perl by Anonymous Coward · · Score: 0

      Amazon, IMDB, and other big sites use perl.
      Alot of people think perl isnt usable in large projects, unmaintainable(see above), it can be, but isn't if the programmer doesn't want it to be.

  24. python by Anonymous Coward · · Score: 0

    Python of course.

    1. Re:Python by Ian+Bicking · · Score: 1
      Of course there's lots of options for Python besides Zope. Some say too many options, but there's a standard for smoothing out those differences, and there's been a lot of progress on that front in the last six months or so. Coming into Python this won't mean much, except that you won't find yourself in a dead end if you choose wrong from the available options.

      Besides the Wiki page, this is a subjective but amusing review of the options.

  25. Python by g-to-the-o-to-the-g · · Score: 3, Informative

    Python is the way go to. 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.

  26. Lotus Domino by Kenja · · Score: 5, Funny
    Hell, if I have to suffer so should all of you.

    (yes I program with this monstrosity of a system)

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Lotus Domino by NutscrapeSucks · · Score: 1

      I ran away screaming from Domino years ago, but just to give folks an idea of how bad it was, most of the HTML generation was done using a spreadsheet-like formula language. Imagine programming your webapp in a combination of Excel and VB6 Forms, and that's Domino.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    2. Re:Lotus Domino by legLess · · Score: 2, Funny

      Suddenly, your sig makes much more sense.

      --
      This isn't as much "normalization" as it is "don't take so many drugs when you're designing tables."
    3. Re:Lotus Domino by VGPowerlord · · Score: 1

      You mean it isn't as easy as 1-2-3?

      Oh wait, maybe that's the problem...

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    4. Re:Lotus Domino by LS · · Score: 2, Funny

      run away from your job... NOW!!! If you are able to get a functional system out of domino, you are definitely skilled enough to use a real environment to build web-apps. run now before your resume is subsumed!!!

      --
      There is a fine line between being a cultivated citizen and being someone else's crop. - A. J. Patrick Liszkie
    5. Re:Lotus Domino by Anonymous Coward · · Score: 0

      I feel your pain. I had to administer some Domino servers for (thankfully) a very short time. I've never seen anything like it. It's like IBM took Apple's "think different" motto, but instead of "thinking innovative", they went the "think anti-intuitive" route instead.

      Most half-assed, backwards platform I've ever seen. I can't believe people still use it!!

      And I think the Lotus Notes client speaks for itself.

    6. Re:Lotus Domino by tigersha · · Score: 2, Informative

      Holy mother of Jesus. I have to program that heap of tripe for years now. And my boss decided to write a large system in Notes with a mathematics student and I had to take the project over. The last five years have been hell.

      Notes's web part is not too bad and its unbeatable for putting up a really quick form for people to use if the looks are not too important but the database is utterly atrocious.

      the other problem with Notes is the horrifying development environment. You cannot, for instance, search your code and while it throws out line numbers in errors you cannot see them! And it does crap like no functionn (despite being in different modules) mmay have the same name in a system. The linker does not work. It does not support CGI hheaders properly. And you have to predefine ANY search through the database, there is no dynamic query language like SQL. This is probably the worse part of the whhole piece of shit.

      Notes as a mail system is not too bad however. It really handles the case where mmails are not sent correctly quite well, because it remembers the mail it send in a database.

      The notes client itself is not too bad, there are things it does OK.

      Anyways, stay away. Far, far away. Don't be like me and be trapped in this cesspool of horror.

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
    7. Re:Lotus Domino by Anonymous Coward · · Score: 0

      The problem many people have with Notes/Domino is that they often don't take sufficient time to really understand the product well. There's definitely an "Aha!" factor involved, especially if you're coming from a relational database background. I know it took me about six months (!) before the Big Moment finally arrived. Then it all began to fall into place, and I was able to start appreciating some of the things Domino can do very well, and stop trying to make it behave like a relational database, which it isn't.

      There are many applications which can be nicely done in Domino, but would be an absolute BEAR to develop in a strictly relational setting. Think of all the unstructured or semi-structured information which flows into a modern business -- e-mails, threaded conversations, instant messages, voicemails, customer correspondence, engineering drawings, manufacturing instructions, repair orders, etc. Documents which require constant collaboration, workflow, and replication between many different users and departments in an organization, with multiple levels of access control.

      This stuff for the most part isn't transactional in nature, but more like a huge, unstructured data warehouse or knowledge base. It's an entirely different facet of an organization's informational assets, which can be used to complement or even enhance the traditional information coming from the relational database resources. I think that's where IBM is going with Domino, Workplace, WebSphere, DB2, etc. -- an integrated, activity- or project-centric approach using portals, portlets, etc., to bring it all together.

    8. Re:Lotus Domino by NutscrapeSucks · · Score: 1

      It's like IBM took Apple's "think different" motto, but instead of "thinking innovative", they went the "think anti-intuitive" route instead.

      Notes really was an innovative product, but that was back in the 80s. It was a distributed Hypertext system years before the WWW came around.

      The problem was that when the web appeared and got popular, they just hacked HTML generation into the system. The goal wasn't to create a good web development environment, it was to keep Notes relevant after it had been obsoleted.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    9. Re:Lotus Domino by henni16 · · Score: 1

      the other problem with Notes is the horrifying development environment

      That's why I was glad that I was allowed to write my agents in Java;
      could write them in a Java IDE and then simply import a jar file.. ;-)

      And you have to predefine ANY search through the database, there is no dynamic query language like SQL

      I am not sure I understand what you mean by that (maybe because I had to do the Java part of the Notes projects and it was a few years ago).
      Doesn't NotesScript support that? Isn't there the "formula"(?) language for doing that?
      I remember using "formula" expressions in a very SQL-like way to search the database via the Java-API.
      So I guess..you probably meant something different with that?
      The notes client itself is not too bad, there are things it does OK.
      Yes, crashing. Every Notes-programmer had the "Notes Zapper" on the Desktop.. ;-)
      And I was really happy to notice that between version 4.6 and 5 of the client someone got the idea to use threads for some stuff and not locking the complete GUI..

    10. Re:Lotus Domino by tigersha · · Score: 1

      If you have a query , say form="member" and age > 40 this is farily easy, but you still have to build a special purpose view to iterate through the docs.

      Also, there is no equivalent of a join in Notes, and if you have, say transaction docs for each person eacch of the transaction docs need to actually store the member's name if you ever want to display the transaction docs listed by surname in a view.

      There is no way to loookup this info inn another doc in a view, unlike SQL.

      This is so dumb I have diffiiculty to begin too express it.

      One thing about Notes that is pretty good is the replication system though

      --
      The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  27. C/C++ by Anonymous Coward · · Score: 1, Insightful

    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.

    1. Re:C/C++ by Anonymous Coward · · Score: 0

      YES! GREAT! THIS ANSWERS IT ALL! May I use your post in my personal home page? Greetings!

  28. Depends by boner · · Score: 4, Insightful
    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?

    1. Re:Depends by SnAzBaZ · · Score: 1

      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.)

      While I agree with you that hardware is cheap, I don't think many developers are quite lucky enough to be earning $100-$200/hour :)

    2. Re:Depends by morten+poulsen · · Score: 2, Insightful

      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.)

      I guess that you are NOT a system administrator?

      "No, I don't need to think before I code, you can just buy more servers. I also killed the database server? Can't you just buy a larger database server too?"

      God damn programmers.

    3. Re:Depends by Tablizer · · Score: 1

      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.)

      It seems this would depend on the nature of the application. With something like a blog where each user is mostly independent from other bloggers, it is realivitly easy to toss cheap hardware at the problem. Each machine can serve a different region of the country or IP address space, for example. (Or availability pooling.) Periodic replication downloads your latest software to each machine, perhaps with staggered delays of a 30-seconds or so.

      However, where there is great interaction and intercommunication among users, such as on Ebay, then coordinating the sharing can become the bottleneck. If you use one big database, it better have the best hardware and software; Most likely the top-of-line Oracle or DB2 stuff.

    4. Re:Depends by boner · · Score: 1

      They might not be earning it, but they certainly can cost that much. Cost of an developer to a company is on average twice the salary he takes home. This is due to insurance, equipment, (healthcare) and expenses. I have found that with developers you get what you pay for, therefore I admit to a biased view.

    5. Re:Depends by boner · · Score: 1

      In my original posting I refer to the design aspect of the system at least for times! IF the web-app is well designed THEN they can add hardware to compensate for performance issues.
      Also I say should be as opposed to is, again referring to the design problem. I sympathize with your pain, I have the scar tissue too, but I have found that every hour spent in the design cycles saves at least ten hours down the road.

    6. Re:Depends by Anonymous Coward · · Score: 0

      If you want to scale to huge sizes you'll find that anything that can't be scaled independantly will become the bottleneck.

      Build the system, not just the software. Multi level caching, multiplexing searches etc. Buying the 'best' gives you a few percent better performance and uptime. Designing a better system will give you orders of mangitude better performance.

      This is just classic systems engineering.

      Once the system is designed, build the individual pieces independantly as quickly as possible. Choose the language/software that enables you to do that. PHP, perl, java, C#, it doesn't really matter. Once the system is running, you can see where the bottlenecks are, scale them, or redesign them.

    7. Re:Depends by rsynnott · · Score: 1

      I hope you mean ASP.NET.

      --
      Me (Blog)
  29. Depends on what you want to do... by Foofoobar · · Score: 4, Insightful

    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.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:Depends on what you want to do... by Space+cowboy · · Score: 4, Informative
      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.

      What people mean by 'it doesn't scale' is that it doesn't scale. Not that it doesn't run fast enough or have enough functionality for pretty much anything at the small-to-medium sized website...

      I have a set of 200 or so websites all running though a self-built PHP template-based content-management system (hey, this was 8 years ago, they were rare then! :-) that has stood the test of time admirably. It's only got a few million pages in it's CMS, but it's pretty cool:
      • Typical page-creation is ~0.01 secs for complex pages
      • Copes with (currently) several million users
      • Handles email list management (opt-in only, don't flame me :-)
      • Separates the content from the formatting. Formatting is by recursive template instantiation.
      • Can embed run-at-page-delivery-time PHP modules as CMS elements
      • Has an Ad-server (flash, DHTML or images) which guarantees ad-placement in slots at a pre-paid rate
      • Copes well with binary data (PDFs, images, movies, etc.)
      • Handles image galleries from both user/admin perspective
      • Has sections where extranet companies can "own" part of the sites
      • Complete messageboard system, any number of boards, skinnable.
      • Manages products, shopping basket etc. and integrates with online purchasing providers
      • Provides newsfeeds in a variety of formats (RSS, XML via FTP, etc.)
      • Provides a *fast* fulltext search that uses phrases, booleans, etc.
      • Layers facilities on top of search (eg: site-editor can embed results of a search into an email (s)he composes. Preview, then deliver to opt-in list.)


      And will all those features it's still not scaleable. I can't split the system over multiple webservers and begin a transaction on one webserver, have a hardware failure, and have it complete on a different webserver. ..

      I server about a million page-impressions a day (less at weekends) so I'm hardly "big iron", but at the moment it's all serving from a single machine(*) with a manual backup ready-to-go. We're (probably) about to triple our daily throughput (time to splash some cash :-), so scalability has become more important, and I'm looking into the best way of doing this.

      I can't have the above level of scalability but I can divide up the work over (say) 4 cloned webservers, and use round-robin DNS (low TTL) or transparent-proxy load-balancing to share the load. Then at least if one of the machines goes down (not the proxy ;-), I can have it automatically react and recover.

      We're probably going to have 2 database servers as well - one in slave mode, one in master mode (all writes to the master, because we use MySQL). The single point of failure then becomes the proxy gateway (because RR DNS is a bit of a pain), so we can have a spare standing by - the configuration of a load-balancing proxy is pretty trivial, and doesn't depend on anything else, so it can be sitting ready to run and swapping ethernet patch cables ought to be all that is necessary.

      And that's about as "scalable" as I can make it - not very. All I'm doing is duplicating hardware for speed and reliability. I can have robustness against a machine dying, but that's about as far as I can go. True scalability allows the operation the machine was doing when it died to complete successfully, and PHP ain't there (yet). I guess you could implement it in s/w using lots of state tables, and perhaps get 80% of the way there, but it's an add-on not a built-in, and not a complete solution. Better to go with something that works if you need it...

      Just MHO.

      Simon

      (*) It is a bit of a beast of a machine though :-)
      --
      Physicists get Hadrons!
    2. Re:Depends on what you want to do... by golgafrincham · · Score: 1

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

      php comparable with java? you wish. does php offer things like jndi, jta and jca? before you answer, the java solutions are stable and have production quality.

      --
      beer as in "free beer"
    3. Re:Depends on what you want to do... by VGPowerlord · · Score: 1
      I dislike PHP because:
      1. You can't rely on things that worked just fine to work in a later version.
      2. You can't rely on the same settings on different servers
      3. There isn't a Database Astraction Layer that is reliably installed by default.
      Examples:
      1. $HTTP_GET_VARS vs. $_GET.
        • 4.0.x: $HTTP_GET_VARS was supported.
        • 4.[1-3].x: $_GET and $HTTP_GET_VARS were supported
        • 5.0.x: Only $_GET works "out of the box", although $HTTP_GET_VARS can be enabled in php.ini
      2. You have to check get_magic_quotes_gpc() and get_magic_quotes_runtime() to know whether or not you need to remove from slashes from input / add slashes for output
      3. The dbx module isn't compiled by default, PEAR can be disabled, and ADODB isn't part of the PHP distribution.
        Of the three, most projects I've seen use ADODB or roll their own, simply because you can't rely on the other two being present.
      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    4. Re:Depends on what you want to do... by unixbugs · · Score: 2, Interesting
      I probably write some of the ugliest code you've ever seen in any language, and using PHP, JavaScript, and MySQL with XMLHTTPRequests made me the sole developer of an intranet server for use by over 100 employees around the world.

      OK, not large scale, but large enough to be a major pain in the ass when features and departements need to be added - but that was my fault for coding first and then checking to see if it works at all. Ive rewritten the thing a couple times since and can say that the system is now modular enough to where functional additions are a breeze.

      Knowing nothing about any of these 'languages' I whipped up a beta in about a week with over 2000 lines of code. Its a real monster now with around 7500 lines of code, and does everything from manage employee information to providing a web based time clock and report generator. It even does some graph generation for employee performance analysis and has levels of logins where 'managers' can use the CMS front end to edit the site dynamically. Why would I go looking else where and waste time trying to implement a new system or language when this one has all these goodies right out of the ./configure?

      Employee records, procedural and technical documentation, timeclock stuff, schedules and search features, its all there in no time. The idea was to replace the endless stacks of paperwork on my immediate supervisors desk, and now we wonder how we got along without it and why we didn't get someone to write it sooner.

      If this does not say anything about the flexibility of these languages I don't know how to. My point is that if I can do this, anyone reasonably technically inclined can.

      As I dig into the world of web based application design and engineering I'm finding more and more possiblities for how to handle events and situations where data should be presented and handled in a specific manner to and from the user. The PHP language is AWESOME for this kind of stuff , and as time progresses its track record will only improve.

      I like telling people about this because it lends credibility to a language many of our customers don't see as a viable solution to any serious web based business endeavor. Its all in how you implement it, obviously. If I had to write this thing in C, Bash, or God forbid, Perl, it would have been written so, but since PHP was available and my initial attempt at managing user logins to a small test site was a great success, it was all down hill from session_start();

      --
      You are about to give someone a piece of your mind, something which you can ill afford...
    5. Re:Depends on what you want to do... by Anonymous Coward · · Score: 1, Interesting

      You might want to read about LiveJournal's and Wikipedia's setups if you haven't already. They've had to scale a lot in a pretty short time. I somehow doubt your numbers though, what's your company called? :)

    6. Re:Depends on what you want to do... by Anonymous Coward · · Score: 0

      And will all those features it's still not scaleable. I can't split the system over multiple webservers and begin a transaction on one webserver, have a hardware failure, and have it complete on a different webserver. ..

      I server about a million page-impressions a day (less at weekends) so I'm hardly "big iron", but at the moment it's all serving from a single machine(*) with a manual backup ready-to-go. We're (probably) about to triple our daily throughput (time to splash some cash :-), so scalability has become more important, and I'm looking into the best way of doing this.

      Sorry to break this to you, but the kind of scaling you're looking for won't come from changing languages. It'll come from learning how to build applications that can be distributed across multiple servers.

      PHP ain't got nuttin' to do with your problems, bro.

    7. Re:Depends on what you want to do... by Anonymous Coward · · Score: 0

      [sigh] yes it does. PHP doesn't have the constructs to do what I want to do. Some of the java enterprise frameworks do. How much more plain can it be ?

      Simon

    8. Re:Depends on what you want to do... by Space+cowboy · · Score: 1

      It's not my company, I'm just the webservice provider. It's a large(ish) publishing house in the financial sector, and until they tell me they're happy for me to advertise that I do all their work, I'm going to let it lie.

      No offence meant, but a regular income is worth more than proving my statement on /. :-) If you doubt me, take a look at my posting history and see if you think I lie on this site - I assure you I do not.

      Simon.

      --
      Physicists get Hadrons!
    9. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      If you don't plan a project with scalability in mind from the start, the project will more than likely NOT SCALE.... and this is regardless of what language you use.

      Again, I point to Sprint, IBM, Oracle, Disney, Avaya and many other that are running PHP based applications and CMS's that get millions of hits a day.

      If PHP didn't scale, how they hell do they do it? It's because they plan their projects with scalability in mind. Unfortunately, PHP has alot of hobbyists that don't take this into consideration and as a result, when you try to move their applications to a larger environment, they don't scale.

      Don't blame the language for the lack of foresite of the developer. It is up to the developer to plan for his application to scale.

      --
      This is my sig. There are many like it but this one is mine.
    10. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      Check it out again sometime. You'd be amazed at how PHP5 is so similar to java. The OOP, the engine. In alot of ways they are very similar. In fact I learned OOP from PHP and then took Java classes later and was shocked to see that what Java was teaching was what PHP was doing. Of course, they stole it straight from Java... there is no denying it and there are some differences. But they are becoming quite similar.

      --
      This is my sig. There are many like it but this one is mine.
    11. Re:Depends on what you want to do... by esconsult1 · · Score: 4, Informative
      Wow!

      Then I guess you never heard about using database driven sessions. The way how you've designed that bad boy, it would'nt scale in any language.

      Here's what we do:

      • 8 Apache Webservers
      • 3 Million pageviews per day
      • Distributed PHP sessioning (Postgresql based)
      • PHP module
      • Postgresql (no worries with MySQL write locks)
      Scaling? We add new machines in the mix, tell our load balancer about the new machines, and we've scaled linearly. A machine goes down? The load balancer redirects to another machine and the session continues without a beat.

      Bottleneck? The database, but then you throw big iron at that.

      Look, the web is stateless, if applications are designed from the get-go realizing that fact, heck, you can get a shell script sitting in cgi-bin to scale with your server pool.

      There's absolutely nothing in PHP that inherently causes it not to scale. Sure, other languages have easier and sometines better features built in, but if you're already using PHP, implementing those features are usually worth the few programming hours of effort instead of switching to another language/platform.

    12. Re:Depends on what you want to do... by cahiha · · Score: 1

      And that's about as "scalable" as I can make it - not very. All I'm doing is duplicating hardware for speed and reliability

      That's mostly all anybody can do.

      True scalability allows the operation the machine was doing when it died to complete successfully, and PHP ain't there (yet).

      Are you willing to pay the price for that? An order of magnitude more hardware, much larger risk of software faults, much higher training costs? How much more reliable would your "non-scalable" system become if you through all those resources at it?

      In the end, you probably scale better with the platform that is "less scalable" than with the platform that is.

    13. Re:Depends on what you want to do... by fupeg · · Score: 1
      The way how you've designed that bad boy, it would'nt scale in any language.
      Not true. Just flip a switch on Weblogic (for example) and you'll have session sharing across application servers. That's scalibility. Now the author should probably learn about sticky-sessions, but maybe he already realizes the potential pitfalls of that anti-pattern. Bottleneck? The database, but then you throw big iron at that. All you've done is put off your scailibility issues to your database. That's not a terrible move, but does not mean you've achieved scailibility. Databases are generally more efficient than most application languages like PHP, Java, etc. Still it's only a temporary solution.
      Look, the web is stateless, if applications are designed from the get-go realizing that fact, heck, you can get a shell script sitting in cgi-bin to scale with your server pool.
      You sound exactly like Microsoft when they were promoting the original ASP. They were wrong, and you're not right just because you're using PHP instead of VB.
    14. Re:Depends on what you want to do... by Anonymous Coward · · Score: 0

      I was under the impression that LiveJournal scaled by totally rewriting their code.

    15. Re:Depends on what you want to do... by digidave · · Score: 1

      The fact that Java web app servers can 'talk' to each other is very cool, but that does not mean that what the GP was talking about isn't real scalability, it's just different. In most PHP apps, the scalability 'problem' is sessions and there are multiple ways of avoiding this pitfall, one of which is to use the database to store sessions. This is perfectly valid and in most cases no less efficient than using the app server. FYI, a high-end database can scale better than an app server, so in some very high-end cases it may be preferable to use PHP's session scaling vs. Java's.

      --
      The global economy is a great thing until you feel it locally.
    16. Re:Depends on what you want to do... by Anonymous Coward · · Score: 0

      True scalability allows the operation the machine was doing when it died to complete successfully

      Uhhh, no, that's not scalability.

    17. Re:Depends on what you want to do... by Space+cowboy · · Score: 1

      Ok, so you're halfway through a PHP script, and you get a memory fault, or you run out of a resource (sockets, memory limit, processes, any hard limit) - what do you do when the http process crashes ? How do you recover *that transaction* without loss ?

      This isn't a jibe - if there are ways to get PHP to do it I'd like to know - I'm always open to things I've missed.

      Simon

      --
      Physicists get Hadrons!
    18. Re:Depends on what you want to do... by Space+cowboy · · Score: 1

      I sort of resent being labelled a hobbyist... I wrote the first Illustra database module for PHP back in 1997. I'd been coding PHP professionally for a while then, and ever since...

      Perhaps the sites you mention don't care about the sort of scalability that I'm talking about - it tends to be an issue for financial people, not for websites. If a transaction (read: complex script with multiple DB accesses or other interactions, NOT just a SQL transaction) is underway, and the HTTP process crashes, the user's browser will reflect that. I don't think there's much the developer can do to prevent that. You may be able to write an Apache module that wraps PHP as a submodule or something... In any event, it's outside the language. As far as I know, even the Exception class requires a valid interpreter...

      Using WebObjects or (insert random enterprise system), the currently failing process will be adopted by another server and processed to completion. That was the sort of scalability I was saying was missing - not the ability to throw servers into a pool and cope if a machine dies - if you read my post, I'm already planning on doing that!

      Simon

      --
      Physicists get Hadrons!
    19. Re:Depends on what you want to do... by Space+cowboy · · Score: 1

      It's probably worth pointing out that I already use the database to store sessions. All that is passed between server and client is a cookie/URL variable indicating the current session id. I've been using databases with PHP on commercial websites for a long time now (I wrote the PHP Illustra module, back in '97).

      My point-of-failure argument was in fact the out-of-resource or memory-failure event when halfway through processing a page's script - I've made the same point above, so I won't repeat it.

      Simon.

      --
      Physicists get Hadrons!
    20. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      I apologize. It wasn't to say that you are a hobbyist (not that there is anything wrong with that... after all the WWW was created by a hobbyist) but that hobbyist are the most common people to make those mistakes.

      And now I better understand your post as well. Usually when scalability is mentioned, it is in the context of your application being able to move (in time) from a small business to enterprise level without anything more than hardware upgrades. That is the context that I was understanding 'scalability' in.

      But to answer your point in regards of what you meant, yes, PHP doesn't handle that. Was never meant to. That's what other languages are for. PHP focuses on one task and that's dynamic webpage building and while you CAN add modules for it to do other things as well, it is generally best to separate your applications for scalability purposes.

      So in this sense (if I'm understanding you properly and this isn't merely an issue with exception handling), it's not really PHP's responsibility to handle that kind of thing and it was never designed to.

      Again, sorry if I offended.

      --
      This is my sig. There are many like it but this one is mine.
    21. Re:Depends on what you want to do... by stesch · · Score: 1
      Plus with the improvements in the ZEND engine and it's object oriented programming, PHP is now comparable and even sometimes faster than Java.

      I wonder why so many PHP programmers are so crazy about object oriented programming and are still using PHP.

    22. Re:Depends on what you want to do... by Anonymous Coward · · Score: 0

      you can always patch PHP to handle hard failures better... :)

    23. Re:Depends on what you want to do... by esconsult1 · · Score: 1

      Well, what you do it roll back your database transaction. In this case, you don't want PHP doing that stuff.

    24. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      Just because they like OOP, it means they should switch to something else? What if they don't want to build desktop apps, programs for watches, cellphones and moon rovers? What if all they want is to server dynamic webpages?

      If thats the case then PHP is all they need.

      HOWEVER... if they want PHP to do more than that, they should definitely consider letting another language handle that so PHP stays focused and doesn't get bogged down by unnecessary processes which could be moved to another server.

      PHP has matured alot since 3.0... just like Java has since it's first launch. If you want to fault a language for evolving to the need of the developer, look first to your favorite language and you will see that it went through the exact same growing pains.

      --
      This is my sig. There are many like it but this one is mine.
    25. Re:Depends on what you want to do... by stesch · · Score: 1

      But PHP programmers nowadays dig OOP and templates to seperate code from design. There's no reason to continue to use PHP except that they are afraid of something "new".

    26. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      So your point is that since they are learning OOP, they shouldn't stick with PHP... because why?

      Why is it that because they are now doing OOP, they would need to change? PHP is actually better than JSP in several benchmarks. But Java is better than PHP in handling additional functionallity.

      I know that alot of developers want to stick with one language for everything but for web dev, it's not the best decision. Let Javascript handle front-end user interaction, let PHP handle dynamic page generation and form submission and let Java and C/C++ handle everything else.

      Some languages do things better than other languages and PHP does dynamic page generation better... but that is it. It can do more but you risk scalability in the process by not separating your processes.

      And just because someone learns OOP doesn't mean they should switch languages for development. You use the right tool for the job and if a PHP developer needs more than dynam,ic page generation, I personally would hope that their OOP programming would cause them to bridge a gap to another language for the solution.

      Just for the record, I myself am a PHP programmer who learned OOP through PHP and then learned Java as a result. And so now I am for using the right tool for the right job and not one tool for all jobs... but I'm not switching all of my code to java just because I know OOP now; there are some things PHP does better and there are a whole lot of things that Java does better and I use each to my best advantage.

      --
      This is my sig. There are many like it but this one is mine.
    27. Re:Depends on what you want to do... by stesch · · Score: 1
      Some languages do things better than other languages and PHP does dynamic page generation better... but that is it.

      Funny thing is, that PHP programmers use PHP and templates instead of the "dynamic page generation" feature. So there's really no need for using an inferior tool for the task.

      Just for the record, I myself am a PHP programmer who learned OOP through PHP and then learned Java as a result. And so now I am for using the right tool for the right job and not one tool for all jobs... but I'm not switching all of my code to java just because I know OOP now; there are some things PHP does better and there are a whole lot of things that Java does better and I use each to my best advantage.

      So you know Country and Western? :-)

    28. Re:Depends on what you want to do... by Foofoobar · · Score: 1

      Country and western? No, I don't sleep with my cousin.

      --
      This is my sig. There are many like it but this one is mine.
    29. Re:Depends on what you want to do... by crazydeer · · Score: 1

      Simon,

      Aren't you confusing scalability and availability?

      My understanding is that scalability refers to the performance, and to improve scalability you look for bottlenecks that are causing slowness. Frequently these bottlenecks are helped by scaling up (buying a bigger, faster server) or scaling out (building a load-balanced cluster)

      Availability is avoiding downtime and protecting against software faults (e.g. Apache crashed) and hardware faults (e.g. failed harddrives).

      Sometimes certain configurations provide both scalability and availability, such as load-balanced clustering and certain RAID configurations. More often, scalability and availability are independent or even opposing goals. Having a standby database server will improve your availability but will not make your website any faster. The data replication would likely degrade performance just sightly.

      Hardware faults can be protected against by using redundant electric circuits, redundant UPSes, redundant power supplies, redundant servers, RAID arrays, ECC memory, etc. Software faults are a little bit tricky. You can use something like Serviceguard clusters and a SAN to configure software packages that will detect software faults and failover between nodes, but even this wouldn't provide the automatically compensating transaction you described.

      -David

    30. Re:Depends on what you want to do... by Space+cowboy · · Score: 1
      My understanding is that scalability refers to the performance, and to improve scalability you look for bottlenecks that are causing slowness. Frequently these bottlenecks are helped by scaling up (buying a bigger, faster server) or scaling out (building a load-balanced cluster)


      I don't disagree with anything above, but I think that when you have scaled out, and built your larger cluster, you want some software that can take maximum advantage of the parallelism you now have.

      All I was saying is that with some of the enterprise software available, you *can* do things that you can't with PHP - restart a transaction (transaction as in user-experience loading a page, not just SQL) transparently to the user, which you struggle to do just in PHP.

      The original article was about the advantages/disadvantages of different languages. I think PHP is excellent - I've long been an advocate, but it does have some limitations (which may not be relevant to most people) that make it fall short of other environments. On the other hand, due to the lack of these things, it's simple to learn and efficient at what it does. Roundabouts and swings...

      Simon
      --
      Physicists get Hadrons!
  30. Let your developers decide by Dominic_Mazzoni · · Score: 2, Insightful

    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.

  31. .net anyone by filesiteguy · · Score: 1

    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.

  32. ASP.NET by Anonymous Coward · · Score: 1, Informative

    Microsoft ASP.NET is also an alternative. It's fairly new but the new MSDN 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.

    1. Re:ASP.NET by nxtw · · Score: 1

      Mono works, now. I'm not sure how well a large application would work, but it definitely does serve ASP.NET pages and has some pretty significant followers.

    2. Re:ASP.Net by buraianto · · Score: 1

      This is true until the IIS server is restarted, or the compiled page is removed from the cache.

  33. I like c# by sevinkey · · Score: 1

    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.

  34. languages by hungrygrue · · Score: 1

    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.

  35. Java (gmail) by vic128 · · Score: 1

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

    1. Re: Java (gmail) by Anonymous Coward · · Score: 0

      I was quite concerned for a moment that it was Java.

    2. Re: Java (gmail) by Anonymous Coward · · Score: 0

      You're stupid. It uses J2EE in the backend.

  36. If you are a singlehanded developer by 00_NOP · · Score: 2, Funny

    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 :)

    1. Re:If you are a singlehanded developer by kraut · · Score: 2, Insightful

      The corrolary is that you have to maintain it, and you never get to do the fun new stuff.

      --
      no taxation without representation!
    2. Re:If you are a singlehanded developer by Darth_Burrito · · Score: 0, Flamebait

      Or you leave the company, and some poor unsuspecting sucker with Perl on their resume gets hired and handed your old code as a by-the-way and then they end up spending every waking moment plotting your demise. I'm not bitter.

  37. Let me get this straight... by Anonymous Coward · · Score: 2, Interesting

    PHP is only popular because it's popular?

    1. Re:Let me get this straight... by Anonymous Coward · · Score: 0

      Behold the power of marketing.

    2. Re:Let me get this straight... by bar-agent · · Score: 1

      That's the leader's advantage.

      q.v. Power Law

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    3. Re:Let me get this straight... by eyeye · · Score: 1

      Its popular because people believe its easy. Where I work the most useless programmers program in PHP in their spare time. Its a reliable pattern.

      --
      Bush and Blair ate my sig!
  38. ColdFusion by Anonymous Coward · · Score: 0

    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.

  39. Microsoft by minus_273 · · Score: 2, Informative

    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

    --
    The war with islam is a war on the beast
    The war on terror is a war for peace
  40. You forgot Yahoo by carlivar · · Score: 1
    I would call Yahoo a "large scale web app" (to put it mildly). Yahoo uses PHP and the founder of PHP works for Yahoo.

    Carl

    --
    Vote Libertarian
    1. Re:You forgot Yahoo by the+eric+conspiracy · · Score: 1

      When Yahoo was looking for a replacement for its in-house developed system they evaluated a bunch of languages - they rated Java higher than PHP, but had problems with Java on FreeBSD so they went with PHP. So I'd be careful with touting PHP because Yahoo uses it - they have a strange allegiance to BSD that colors their technology selections.

    2. Re:You forgot Yahoo by Anonymous Coward · · Score: 0

      Yahoo also uses Python and Perl at places. And Yahoo Store is a gigantic application written mostly in - here it comes - Common Lisp.

    3. Re:You forgot Yahoo by dtfinch · · Score: 1

      Too bad Java wasn't cross platform enough.

    4. Re:You forgot Yahoo by the+eric+conspiracy · · Score: 1


      The problem has nothing to do with Java. FreeBSD has very bad threading support. Everyone who tries to use it runs into problems. For example the Apache apr team is always complaining about it.

    5. Re:You forgot Yahoo by Anonymous Coward · · Score: 0

      You're stupid. All of Yahoo!'s business logic is done in C++. PHP doesn't have any of the scalability concepts necessary to handle it (messaging architecture, connection pooling, object caching, etc.) Yahoo! uses PHP as a simple templating engine, nothing more.

  41. PHP by AVryhof · · Score: 3, Interesting

    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.

    1. Re:PHP by Tablizer · · Score: 1

      We have a small website (85,000 hits a day)... So here's the rundown of what we use...

      Your signature URL has appearently been slashdotted, not a good selling point ;-)

    2. Re:PHP by AVryhof · · Score: 1

      Actually, that's just me being lazy. It used to go to a Geocities site I made a long time ago as a gag.

      Holstein World

      That's the company site, I have plenty of my own personal sites all over the place,

  42. Java != Javascript by gunpowda · · Score: 0, Redundant
    Google uses C/C++ (search), Java (gmail)

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

    1. Re:Java != Javascript by OblongPlatypus · · Score: 1

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

      --
      -- If no truths are spoken then no lies can hide --
    2. Re:Java != Javascript by berndtj · · Score: 1

      No, no my dear friend, I believe Java is correct. You are thinking of AJAX, which is javascript, but that is just front end. It is really just a link between the front an back ends of the application. You would have to be mad to code a webserver backend in javascript. I don't even know if it's possible. Is there a mod_javascript module. I hope not.

      Anyway. The xmlhttprequest object, which is essentially what people mean when they say AJAX, just sends requests to the server which can be running any sort of language. The server then generates an xml response and sends it back. The reason that there is so much hype right now, is that it allows communcation to happen between the client and the server asynchronously and without submitting a form or redrawing the whole page. I'm pretty much knee deep in that stuff right now, and it's pretty cool.

      As for best language? I don't know. But I like ruby on rails best. I just don't think the performance is quite there yet.

    3. Re:Java != Javascript by astrosmash · · Score: 1
      This is wrong. They use JavaScript, not Java. Completely different entities.

      This is a disussion on server-side development, not client-side. I don't know what Google uses to implement GMail on the server; a few people are suggessting Java and that's completely reasonable.

      --
      ENDUT! HOCH HECH!
    4. Re:Java != Javascript by Orrin+Bloquy · · Score: 1

      For what it's worth, the X in AJAX is hype. The first AJAX app (ColdFusion adapted from PHP code) I coded sent generic text which updated the contents of a DIV element. Until you're actually building apps which use node management in JavaScript on the client side, it's a generic behind-the-scenes HTTP method.

      --
      "Made up/misattributed quote that makes me look smart. I am on /. and I must look smart."
  43. Why you shouldn't use php by Anonymous Coward · · Score: 0

    http://tnx.nl/php
    * 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

  44. What the ...? by Anonymous Coward · · Score: 0

    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.

  45. I prefer by surfpnk · · Score: 1

    Duh, Visual FoxPro of course. Where would Egghead.com be without it today?

  46. Ruby on Rails by threaded · · Score: 3, Informative

    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.

  47. PHP + Perl + C by degraeve · · Score: 1

    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.

  48. j2ee by golgafrincham · · Score: 1

    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).

    --
    beer as in "free beer"
  49. Unicode, please by ewg · · Score: 1
    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:
    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.
    --
    org.slashdot.post.SignatureNotFoundException: ewg
    1. Re:Unicode, please by cbrocious · · Score: 1

      This is what the mb (multibyte) string functionality in PHP is for.

      --
      Disconnect and self-destruct, one bullet at a time.
    2. Re:Unicode, please by dtfinch · · Score: 1

      That's what UTF-8 is used for, and even without that, you can still specify unicode characters in html with &;. That way the language isn't doing constant ascii/unicode conversions to screw thing up and slow things down. If I want to build up a string of raw binary and send it, other languages will destroy it in the conversion. If I read an ascii text file in other languages, they'll remap all the extended characters to different values depending on the locale, again, royally screwing things up. 1 byte character strings are efficient and predictable.

  50. Wrong by dereference · · Score: 5, Insightful
    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.

    1. Re:Wrong by Anonymous Coward · · Score: 0

      I believe he was speaking about gmail, which uses java on the backend. Read the entire thread.

    2. Re:Wrong by 1000StonedMonkeys · · Score: 1

      Ajax asyncronously calls JAVA functions without needing a page redraw.

      Wrong.

      Uh... you fail to explain how this statement is wrong. It is in fact correct, unless you're telling me that Ajax can't asynchronously call server-side java code.

      Just because you're on the internet, doesn't mean you get to be a pompous ass.

    3. Re:Wrong by Citizen+Gold · · Score: 2, Insightful
      Ajax asyncronously calls JAVA functions without needing a page redraw.

      Wrong.


      Uh... you fail to explain how this statement is wrong. It is in fact correct, unless you're telling me that Ajax can't asynchronously call server-side java code.

      Just because you're on the internet, doesn't mean you get to be a pompous ass.
      The emphasis was put on the word JAVA. I also read it as the commenter thinking server side Java was the only option.
    4. Re:Wrong by Anonymous Coward · · Score: 0

      Uh... you fail to explain how this statement is wrong.

      He was also specifically claiming that gmail called out to Java via Ajax. Is there any evidence to support this? Keeping in mind that Java is only one option of many for Ajax. I'd be interested in knowing.

    5. Re:Wrong by Fulcrum+of+Evil · · Score: 1

      Just because you're on the internet, doesn't mean you get to be a pompous ass.

      Then what's the point?

      --
      "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
    6. Re:Wrong by Anonymous Coward · · Score: 0

      Ajax = Asynchronous JavaScript and XML.
      It has NOTHING to do with the Java language!

      It's just an alternative way for a client to send a request to a server. The server could be running anything (eg. static XHTML/XML, dynamic CGI scripts ...)

      Please read the up on the frickin basics before touting your ignorance.

  51. Mason by GryMor · · Score: 1
    --
    Realities just a bunch of bits.
  52. Python, Zope, and Plone Are Good by blueZhift · · Score: 2, Informative

    I still use PHP for a lot of personal work and quick stuff, but I've been leaning more and more on Python, Zope, and Plone 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 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.

  53. Quick takes by Dominic_Mazzoni · · Score: 1

    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.

  54. PHP is viable by Bob+Wehadababyitsabo · · Score: 1

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

    --
    fsck -u
    1. Re:PHP is viable by Anonymous Coward · · Score: 0

      You're stupid. Yahoo! only uses PHP to do simple page templating. All their business logic is done in C++. If they had to do it again now, they would almost certainly use J2EE. Their backend would be much quicker to develop, and their entire web application would need only a single technology.

  55. Our standard enterprise stack these days by BigGerman · · Score: 5, Insightful
    (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.

    1. Re:Our standard enterprise stack these days by THEbwana · · Score: 1

      .. just curious; when you reach 5 or so nodes - how does hibernate scale ? - this considering the db will be under considerable load due to having to handle persisted sessions from all nodes, transactions from all nodes etc. etc.
      - Has anyone heard anything about Hibernate becoming a bottleneck under heavy load (between nodes and db(s))?

    2. Re:Our standard enterprise stack these days by BigGerman · · Score: 1

      one thing - since nodes share nothing, your eventual bottleneck will be the database not the application server. Latest versions of Oracle allow setting up clusters of cheap Linux boxes and such setup can take enormous beating.
      Another thing - Hibernate now has very nice caching abilities so your database load will not be as high as you think.

    3. Re:Our standard enterprise stack these days by rblum · · Score: 0

      Yes, getting something out of the door is important. That's why Spring/JSP are not exactly a good solution. (I've got to change 8 files or so to add a new field? Java and XML? Puleeeze!)

      For small stuff, my money is on Ruby-on-Rails. For large stuff, I've got to suck it up and do Spring/JSP/Hibernate. It's not a good environment, but it's the best one out there...

    4. Re:Our standard enterprise stack these days by not_sleepy · · Score: 1

      Depends on what is ment by "large" - large as in # of users or large as in functionality. Oracle's HTML_DB is highly scalable for websites that have high traffic but is not highly complex (95% of the websites out there). Java and such for highly complex websites (like Amazon!). HTML_DB is also about to receive a bunch of new functionality in September. I think Google and now Yahoo are a little different then most business. They are attracting the best talent and therefore, may wish to allow them to program in whatever they want - at least to a point. Note on Hibernate: We use it in my office and I know a little bit about it. It's fine as long as it is the only application touching the DB frequently. Because it caches the data, frequent updates to the DB from another source will cause high network traffic and extra work for the app server, negating the cache advantage (actually worse). Found out during testing right before go live - eerrr.

    5. Re:Our standard enterprise stack these days by THEbwana · · Score: 1

      That was what I meant (expressed in some convoluted way I guess ;-).
      Since the load would be on the DB, I was considering the consequences of using RAC - would I be hitting a bottleneck in Hibernate itself?

    6. Re:Our standard enterprise stack these days by Zangief · · Score: 0

      I know that yes, you have to change a couple of files to get a new field (the jsp to display it/enter it, a java bean to move it around, and an hibernate config file, at least), but they all are small changes. Almost any other framework will make you change even more things.

      Yes, RoR is the best thing around, but, come on, Spring isn't bad. It is actually pretty fast. I always have around a blank web application that I can hack around as much as I want, so I have something running almost instanstly.

    7. Re:Our standard enterprise stack these days by Anonymous Coward · · Score: 0

      That's why Spring/JSP are not exactly a good solution. (I've got to change 8 files or so to add a new field? Java and XML? Puleeeze!)

      Huh? An example please, otherwise I'll be inclined to think you're blowing smoke.

    8. Re:Our standard enterprise stack these days by rblum · · Score: 1

      Add field to Object Model: Modify hibernate config & DomainObject.java. Futz with XML file for Java Bean/Spring.

      Now make it visible, so go edit your JSP file. You actually want a validation action on it? Back to java.

      Show me a Spring/JSP solution where I can add a field by just changing a single file (or two, if we separate presentation and object model) - otherwise I'll be inclined to think *you* are blowing smoke.

    9. Re:Our standard enterprise stack these days by Anonymous Coward · · Score: 0

      With annotations you can get everything in the Java code. However, sometimes having those things separated isn't bad, either.

    10. Re:Our standard enterprise stack these days by Decaff · · Score: 1

      (I've got to change 8 files or so to add a new field? Java and XML? Puleeeze!)

      Haven't you heard of 'refactoring'? Available in all major Java development tools. Adds or changes the field everywhere.

    11. Re:Our standard enterprise stack these days by Anonymous Coward · · Score: 0

      Add field to Object Model: Modify hibernate config & DomainObject.java. Futz with XML file for Java Bean/Spring.

      Huh? That's a three step process:

      1) create field "private String foo";

      2) tell Eclipse to autogenerate getters and setters. For the getter have it put @hibernate.property in there

      3) run an ant task to generate the XML files

        Now make it visible, so go edit your JSP file. You actually want a validation action on it? Back to java.

      Well you're going to have to display it somehow, I'm not sure how this is painful.

      For validation, assuming that you've already made a class that implements Validator, that's just one more field to put in there.

        Show me a Spring/JSP solution where I can add a field by just changing a single file (or two, if we separate presentation and object model) - otherwise I'll be inclined to think *you* are blowing smoke.

      Done in two files! Validation is a third. I can't think how anything else would be shorter as you have three totally different concerns to deal with. I suppose if you mash them all together (hello maintaince nightmare) then you could do it in whatever framework you're using.

    12. Re:Our standard enterprise stack these days by rblum · · Score: 1

      I've heard of refactoring, and I'm using it. It's news to me that it automatically *adds* fields everywhere, though. That's a damn smart tool your using!

    13. Re:Our standard enterprise stack these days by rblum · · Score: 1

      "For the getter have it put @hibernate.property in there"/"run an ant task to generate the XML files" - Thanks! That's a great idea, and I can't believe I didn't think of it myself.

      I'll blame it on the fact I only do Java once every blue moon - but still, that's extremely useful..

    14. Re:Our standard enterprise stack these days by Anonymous Coward · · Score: 0

      No problem! Hibernate without xdoclet is, to put it mildly, painful.

      Hibernate without Spring is a try/catch nightmare.

      I'm not overly found of JSP, but it gets the job done. I'm currently using freemarker and XMLC -- the later has some great potential.

    15. Re:Our standard enterprise stack these days by Decaff · · Score: 1

      Yes, RoR is the best thing around

      On the contrary, it is a very old-fashioned way of doing things. Having your code so strongly tied in to the database tables, as required by Rails, is something most development languages started moving away from in the late 90s.

      RoR is a huge step backwards.

    16. Re:Our standard enterprise stack these days by Space+Cow · · Score: 1

      Could you elaborate on this please? I have been following ROR for a while now and it looks like an interesting approach. What languages or frameworks used to work this way and what were the drawbacks?

    17. Re:Our standard enterprise stack these days by LarsWestergren · · Score: 1

      No J2EE fluff

      Er, JSP/Servlets are part of the J2EE specification. So is classes for handling XML, and so is JDBC, which you are almost certainly using with Spring/Hibernate.

      Funny how many think that J2EE EJB.

      --

      Being bitter is drinking poison and hoping someone else will die

    18. Re:Our standard enterprise stack these days by BigGerman · · Score: 1

      funny how many people jumped on it.
      What I meant was the "fluff portion of J2EE" which is to say EJBs - what makes J2EE development bloated, slow and painful.

    19. Re:Our standard enterprise stack these days by Anonymous Coward · · Score: 0

      Uh... since when is JSP not J2EE ??

    20. Re:Our standard enterprise stack these days by gedhrel · · Score: 1

      It's a sensible tool. It might be a worthwhile educational process developing and deploying java "by hand" - once - but given the wealth of decent IDEs out there with integrated J2EE support, it's only a fool who'll go through that pain on a regular basis. Use the tools, lose the pain.

  56. Language is mostly irrelevant by PhotoBoy · · Score: 2, Insightful

    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...

  57. COULD SOMEBODY PLEASE MOD THAT FUCKTARD DOWN?! by Anonymous Coward · · Score: 0, Insightful

    AJAX != Java, ass faggot!

  58. Java all the way by Anonymous Coward · · Score: 0

    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.

  59. The only way to hire a good architect by melted · · Score: 1

    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.

    1. Re:The only way to hire a good architect by the+eric+conspiracy · · Score: 2, Insightful

      I wouldn't hire an architect

      I am a lead or senior architect for a medium sized software company - and I have a big problem finding/recruiting good architects. Internal candidates want to do it for all the wrong reasons- thier project manager is a jerk, etc. The good programmers really enjoy coding so they want to stay as programmers, and are afraid once they take on the role of architect they will be just paper pushers. The experienced 'architects' out there are almost all centered on business analysis these days, very few have enough code skills left to really be able to do a good job designing code.

    2. Re:The only way to hire a good architect by Cederic · · Score: 1


      Oh man, tell me about it. I've interviewed more people than I care to remember so far this year for an architect position, and so very few of them have a clue.

      Still, bodes well for me when I'm ready to move on.. :)

  60. mod_perl + HTML::Mason by Lost+Found · · Score: 1

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

    1. Re:mod_perl + HTML::Mason by Anonymous Coward · · Score: 0

      Until they claim they started using it first....

  61. hmm by Anonymous Coward · · Score: 0

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

    sorry, couldnt resist!

  62. Pure Javascript by leptons · · Score: 1

    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 ;)

    1. Re:Pure Javascript by AutopsyReport · · Score: 1

      Yeah, Javascript is great until someone disables it :)

      --

      For he today that sheds his blood with me shall be my brother.

    2. Re:Pure Javascript by wk633 · · Score: 1

      You have to plan for that anyways. They can't disable it on the server side, and javascript is the only thing going client side. Ok, Flash, but people disable that even more.

    3. Re:Pure Javascript by Maian · · Score: 1
      Yeah, Javascript is a great language once you get over its oddities, such as its ambiguity with types, leading to a weird ! operator and null == undefined (which led to the mostly unnecessary === operator). However, it's lack of static classes does make it harder to maintain (and I don't mean those pseudo-classes taking advantage of closures - those just look funky).

      How does a good server-side JS engine compare with PHP in performance though?

  63. Missing the most important criteria... by (H)elix1 · · Score: 1

    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.

  64. "C/C++" is not a language by alan_d_post · · Score: 1

    "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++".

    1. Re:"C/C++" is not a language by wk633 · · Score: 1

      Well, if you want to get anal about it, C++ is a superset of C. A C++ compiler had better be able to compile pure C.

      I think the important distinction for this discussion is compiled (C/C++/Pascal) vs. byte code/interperted/managed.

    2. Re:"C/C++" is not a language by Anonymous Coward · · Score: 0

      Well, if you really want to get anal about it, C++ is not a superset of C.

  65. Do not forget supportability by synchrostart · · Score: 1

    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.

  66. ASP.NET... no, really by adolfojp · · Score: 3, Informative

    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

    1. Re:ASP.NET... no, really by adolfojp · · Score: 1

      Did I forget to mention vastly doccumented? :-)

    2. Re:ASP.NET... no, really by golgafrincham · · Score: 0, Troll

      Easier to use and deploy than J2EE :-P

      that, my friend, is a lie.

      --
      beer as in "free beer"
    3. Re:ASP.NET... no, really by jtwJGuevara · · Score: 2, Informative

      Pardon my ignorance here, as I'm a very junior developer who's only written small time apps using .NET and has dabbled in Java, but what exactly is so hard about deploying a .NET app compared to one developed for J2EE.

      A vice-versa question could be asked of the grandparent as well, since neither of you provided any factual evidence either way.

    4. Re:ASP.NET... no, really by Gta-Klue · · Score: 2, Informative

      Actually, not it's not. I support a somewhat large scale site for a stock firm, and we average thousands of hits a day. It's built on ASP.NET, and SQL Server on the backend.

      To deploy any changes, is just a matter of dropping 1 or 2 dll's into the bin directory and viola, it's deployed. Tell me again how hard that was?

      --
      This is PURE EAU DE TROLLETTE
      09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
    5. Re:ASP.NET... no, really by Anonymous Coward · · Score: 0
      To deploy any changes, is just a matter of dropping 1 or 2 dll's into the bin directory and viola, it's deployed.

      Tell me again how hard that was?

    6. Re:ASP.NET... no, really by NutscrapeSucks · · Score: 1

      Sure, but that's a 2-Tier application. Write something in .NET that's done "J2EE-Style", and then you can enjoy the fun of deploying things into COM+.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    7. Re:ASP.NET... no, really by Anonymous Coward · · Score: 0

      What do you mean "That's 2 tier". .NET with SQL can be as many tiers as you want? COM+ doesn't make something 3 tier.

    8. Re:ASP.NET... no, really by NutscrapeSucks · · Score: 1

      Are you replying to me? I'm talking about "tiers" in terms of process isolation. And with .NET, the "enterprise application server" is COM+/MTS.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    9. Re:ASP.NET... no, really by adolfojp · · Score: 1

      That hasn't been my experience at all.

      My last project involved two different ms access databases distributed accross a couple of laptops and a web server, a MySql dabatase, some rich clients (windows apps) and two ASP.NET server apps all connecting through .NET web services for interoperability and disconnected syncronization.

      The system works in conjunction with a legacy system involving a web app developed in PHP, a MS SQL server and a non .net c++ windows app.

      It couldn't have been smoother or simpler and didn't involve any COM+ style programming.

      My next project involves, besides the standard database, a multi tier app that includes load balanced web servers, a session management web server, a server dedicated to web services and a .NET WinForms app distributed across n number of computers.

      After my last experience with .NET I am not going back to java unless I really really really have to :-).

      Cheers,
      Adolfo

    10. Re:ASP.NET... no, really by sheldon · · Score: 1

      Why wouldn't you use Enterprise Services?

      I'm familiar with configuring COM+ from the olden days, and it was a pain. You have to script it. Once you've done that, it's really not that big of a pain to deploy.

    11. Re:ASP.NET... no, really by Anonymous Coward · · Score: 0

      The hardest thing about deploying a dotNET app is deploying Windows servers to a production environment and keeping them up. There are some immature projects to get dotNET apps running on more robust platforms, but none of them are production ready.

      Java, at least, has the maturity of multiple VMs and application environments on a variety of system platforms. None of which need be Windows for a first-class deployment platform, so robustness is implicitly higher.

      Frankly, the deployment process for Java apps sucks pretty badly, too, but at least it can be done with advanced tools and not require the high degree of baby-sitting that a Windows platform does.

    12. Re:ASP.NET... no, really by NutscrapeSucks · · Score: 1

      EnterpriseServices is COM+.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    13. Re:ASP.NET... no, really by NutscrapeSucks · · Score: 1

      I guess I should have said "Enterprise Beans" instead of "J2EE". True that web services are useful, but they don't solve the same problem as COM+.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    14. Re:ASP.NET... no, really by sean23007 · · Score: 1

      Not necessarily. J2EE is certainly easier to get working on Linux (I haven't tried getting .Net working through Mono recently, but it used to be pretty darned close to impossible). However, on Windows, deploying an ASP.NET app is basically a click and a drag away.

      I'm not getting into which is easier to actually code the app in, but my guess is that they're both pretty good. I've heard that ASP.NET creates XHTML 1.0 Strict code, which is good, and in my experience of programming in C# and Java, I personally find C# to be the better, more powerful, and easier to use language.

      But since ASP.NET pretty much requires that you're running Windows on your server, I'd stay away from it.

      --

      Lack of eloquence does not denote lack of intelligence, though they often coincide.
    15. Re:ASP.NET... no, really by sheldon · · Score: 1

      Enterprise Services is a series of wrappers around COM+ which help to eliminate some of the COM+ pains when doing .NET development. For instance, auto registering the package and settings, which is one of the big headaches.

  67. Peaple and no technologies by dual0 · · Score: 1

    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

    --
    Damiano Vedova
    http://dual0.mine.nu/
  68. php & mysql but take caution by dindi · · Score: 1

    while I would go PHP with confidence, read mysql dox before putting a real big (large scale) application on mysql.
    While mysql can be pretty nice, it has issues with
    one thing i really needed in a project:
    Full text indexing.... this is only supported in myisam tables, however i would not suggest using myisam tables for anything large scale if you have lots of deletes and create "holes" in your tables because of the aggressive locking (locks whole table including selects)...

    just a warning, i might also be wrong, i just found out some weird things while working with a database of 3-4 million records stuffed with varchar 255 and text fields and some updates locked my DB for 3-4 hours....

    and again i never used myisam on that big full text indexed tables before, so if you know better just ignore this .....

    also you can get an oracle personal for a $500 or so, (it needs more machine too and limits you L into redhat/suse unless you want lots of hacking during installation on other distros ....) by the way ehre is the freebsd port .....

  69. ASP.NET by TiggertheMad · · Score: 1

    I'm sure that this will get drowned out by people yelling the name of their favorite language without explaining why it might be good to solve your paticular problem, but you might look at asp.net. You can use any dot net language to build the asp pages, so the actual language that you pick is sort of moot, but IIS has some interesting features designed to make building a scalable web farm simple. That was one of your major criteria, right? Be sure to look up what Apache has to offer there too, since it is as much a part of PHP as asp is connected with dot net.

    Personally, I find asp.net to be a mixed bag. It's pretty good, but there are still a lot of things that could be improved on.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  70. Profanity by Anonymous Coward · · Score: 0

    Definately.

    If you've worked on a large scale app, you'd know what I mean.

    1. Re:Profanity by Alphabet+Pal · · Score: 1
      Definately

      Bwahahahaha!

      --
      Because you can't spell "slaughter" without "laughter"
    2. Re:Profanity by Anonymous Coward · · Score: 0

      Because you can't spell "slaughter" without "laughter"

      I bet parent could.

  71. Lisp by vladd_rom · · Score: 1

    Lisp is the answer. Paul Graham explains it at http://paulgraham.com/icad.html .

    1. Re:Lisp by Anonymous Coward · · Score: 0

      Good read, thanks. Might have to start programming some Lisp :-)

    2. Re:Lisp by gedhrel · · Score: 1

      I think the point (that should probably be conceded) is that if you hire a team of professional lisp developers there's a rather good chance that they are really going to know what they're doing. But you'll probably find that you can get decent "commodity" programmers at a lower cost and more readily.

  72. Read this... by suttree.com · · Score: 1

    http://naeblis.cx/rtomayko/2005/05/28/ibm-poop-hea ds And then start on something with a LAMP setup

  73. What is the application? by Titusdot+Groan · · Score: 1
    This question is impossible to answer without knowing the application being developed.

    For a complex app with lot's of business logic, I'd use Java and the related frameworks. Unless my team had a lot of Windows developers than I'd use .NET (shudder :-).

    For a dynamic app with many users probably php.

    For something simple with a big bunch of users, probably python or C/C++.

    Again it would really depend ...

  74. The question is too general. by jonadab · · Score: 1

    What's going to be the big cost? What kind of thing is this "web app" doing? Does it involve a lot of CPU activity? Once you get the thing developed, how much will it change? These factors matter enormously, because different languages have different strengths and weaknesses. Consider, for instance, just two languages: C and Perl. C, competently used, will be able to squeeze more performance, in some cases quite a lot more, out of the hardware, but you're going to spend 10+ times as many developer hours on everything, because there's no CPAN, no taint checking, no CPAN, no testing framework, no CPAN, no highlevel data structures, and no CPAN. You really need to evaluate how your costs are going to break down and where you need to save and where you can afford to spend, to come out ahead overall.

    Every language has its own strengths and weaknesses. Is everything going to be on the web, or are you going to want to branch out to the desktop GUI? In the latter case, should you be looking into a language with good GUI tools, such as Java? Perhaps the problem you are wanting to solve lends itself particularly well to a fully object-oriented approach, and you'd like to consider Python. Or maybe 80% of your application is text processing and interfacing with a database? Perl is really good for those things.

    Do you see the problem? The description you gave, "Large-Scale Web Apps", tells us almost nothing. We're answering out of complete ignorance, taking shots in the dark, telling you... whatever pops into our heads (Perl pops into my head for most things...), but our answers are basically useless to you, because they don't have anything to do specifically with what you're doing.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  75. Please stop insulting python. by Some+Random+Username · · Score: 4, Interesting

    You can certainly make a large, high traffic site in python. But not with zope. Zope is brutally slow, and the only thing you can do about it is shove a cache infront of it, which does nothing to help speed up user-specific content.

    Just use a decent python web framework with a real webserver, zope is a waste of time.

    1. Re:Please stop insulting python. by cpghost · · Score: 1, Flamebait

      When was it since you've last tried Zope? They've made some pretty good improvements as of lately. Or are you referring to Plone, which IS really, really slow?


      --
      cpghost at Cordula's Web.
    2. Re:Please stop insulting python. by axaroth · · Score: 1

      Stop talking about things you don't know. Zope is slow only if you use it without Pound and ZEO, that is the right solution for high load system.

    3. Re:Please stop insulting python. by Just+Some+Guy · · Score: 1
      Zope is brutally slow

      I run a rather largish web application written in Zope, and it's not slow at all. All the computationally expensive stuff is handled by the databases or external programs, so Zope is mainly left with rendering the XHTML on the way out the door.

      ZEO is a Godsend, though. We were having some scaling issues [0], so I decided to try moving our object database out of a Zope instance and into ZEO. The whole process, start to finish, including time to RTFM and triple-check everything, took less less than an hour. Once that was done, I made another five Zope instances that run off the same ZEO backend, and set each to listen on a different port. Finally, I set the Apache frontend that we'd been using since the beginning (to serve PHP out of different locations on our site) to pick a Zope port at random whenever a client request comes in.

      The net result is that our server can now handle roughly six times the load with basically no penalty whatsoever other than the memory required to run the extra instances. It looked great on paper, and worked great in practice. Given how trivially easy it was to migrate to a ZEO setup, I'd never hesitate to use it again (and will probably start all new projects with a similar arrangement).

      [0] Our site uses a Foxpro backend. No, really. Any way, I wrote SOAP interface to Foxpro so that we could access it through Zope. The problem was that some of the queries took so long to execute that the Zope instance was eventually blocking on the results and freezing the non-database parts of the site. Running several parallel Zope instances didn't guarantee that'll never happen, but it certainly decreased the odds.

      --
      Dewey, what part of this looks like authorities should be involved?
    4. Re:Please stop insulting python. by Some+Random+Username · · Score: 1

      I am talking about things I do know. Zope is slow as hell. Distributing the load across several zope instances is a way to try to cope with its terrible performance, it is in fact evidence that zope is slow, otherwise you wouldn't require a dozen servers to run a moderately busy site.

  76. App-Servers : Seperation from logic and presentati by markpapadakis · · Score: 1

    Here is a brief overview of what we do here:

    We use what we call web-terminals and app-servers. Web-terminals run web servers ( Apache and Zeus, currently ).

    App-servers run our custom-built application servers. Those servers host modules. The modules are writen in C/C++. They export methods and events, which are made available through the AppServer via a, what we call, 'binary XML-RPC' interface, as well as plain XML-RPC. Each module provides functionality for a single service, for instance 'search' or 'membership' or whatever. Each App-Server usually hosts over a dozen modules. The modules are implemented as DSOs/DLLs, and (Re)loaded dynamically.

    The AppServers offer a lot more : sessions, 'virtual clusters' ( where app servers can talk to each other ), caching and so on, so forth.

    We use PHP for the frontend. For interfacing with the App servers we use a PHP 'module' which takes care of invoking methods on the app servers, retrieving results and other related operations.

    There is a load balancer ( custom made, which is actually used for managing all our services ) which also manages our Web Cluster. It also manages the 'AppServers cluster'.

    So, we have X web terminals and N app-server nodes. Here is what happens when an HTTP request hits our LoadBalancer

    1. HTTP-REQUEST reaches Load Balancer
    2. Load balancer determines which web-terminal is least busy
    3. The least busy web-terminal receives the HTTP request.
    4. The PHP script responsible for rendering the page talks to the app-servers cluster by connecting to a node ( via connecting to the Load Balancer which in-turn picks the least busy app-server node ) and invokes methods, which return results, and then it simply renders whatever based on the results set.
    5. The load balancer sends the HTTP response to the user.

    There is no practical limit to the scalability of the system. Whenever we need more power, we simply add new web-terminals or new app-server nodes.

    Our company runs the second most visited site in Greece ( pathfinder.gr ). We decided to go for this architecture after having tried many other 'popular' models. This solution is almost perfect, for us. We get complete power ( C/C++ for the modules ), allow the web-designers/developers to do whatever they want extremely easily and transparently by using a very simple PHP API for invoking methods, there are zero scalability issues, and we can isolate our backend from 'newbie' developers since they can only access it through methods on modules ( coded by our 'experienced' developers ).

    Last but not least: the web-developers can use PHP, C/C++, Java, Python, Ruby and whatever else they wish to use for building web-applications, because all they need is an API for communicating with the AppServers cluster.

    There is lot more to it, but thats what we do, more or less. We couldn't have been more happy with it.

    --
    Technology ramblings : Simple is Beautiful
  77. C/C++/PHP? You mjust be kidding! by Zx-man · · Score: 1
    Which language...
    • is Object-Oriented...
    • is Cross-Platform...
    • is Web-based...
    • is Easy to deploy...
    • Stood the test of time...
    • & has loads of libraries availible at the same time?


    Your guess is right: it's Javascript!
    1. Re:C/C++/PHP? You mjust be kidding! by kd5ujz · · Score: 1

      I think you should consider the growing, non-techsavy fear of javascript. IIRC, MS Iexplorer has JS disabled by default. Cant remember, as it has been months since I have been on a windows box.

      --
      -William
      God is everything science has yet to explain.
  78. frameworks (patterns,devel tools) play a big part. by maddev · · Score: 1

    framework which supports powerful patterns, and have nice toolset with it is very crucial for choosing a certain language. PHP, java, perl, python has lots of good frameworks and new kid on the block is a ruby framework rubyonrails (http://www.rubyonrails.com/ you should certainly check it out.

  79. Don't forget the rest! by auauau · · Score: 1

    Any programming can do their good! Of course with well managed server (and sane administrators) and other supportive applications. If you're one of the world's top 10 programmers but your code for 50,000 customers will be running on a crumpy box of Pentium III server (can be found anywhere in my country) your program will definitely mean nothing!

  80. Web Apps are not just serving pages by tezza · · Score: 1
    Sure there IS the part that responds to HTTP with content.

    But this is not a web application, it is a simple application that could have been a command line program.

    For a scalable robust web application, you need the ability to deploy and undeploy portions. You need to be able to share objects around each webapp instance and you need a database abstraction/cache. You need a robust operating system which behaves. You need robust server hardware.

    For me the language portion is Java, Linux and pre-built x86 servers. Java with libraries, java with a nice J2EE container. It is all there to pick up and use.

    JBoss
    Eclipse
    Hibernate
    C3P0
    Tomcat
    Some MVC framework like struts, you choose.

    Then you'll need squid upfront and probably balance, an open source load balancer. This means you can bring up a new version of your app and switch it over. You'll also need Postgres.

    The one thing you'll notice is that you needed to bring a lot of NON JAVA things in to fit the picture, and that is how it should be.

    postgres, linux kernel, linux threading libraries, linux socket libraries, squid, balance and probably ssh, tar -jc, tail -f /var/log/messages, qmail and everything else are C,C++/ I don't care.

    --
    [% slash_sig_val.text %]
  81. You forgot Mason! by xiphoris · · Score: 1

    Mason is a set of HTTP extensions for Perl. It's what I use at work to develop front end systems at Amazon.com.

    I'm not really a fan of it, but it seems to work quite well for us.

  82. Java by bobej1977 · · Score: 1

    I've used a lot of different things professionally but I consistently find that large projects go a lot smoother with Java. It's easier to find skilled developers, especially web developers.

    The platform is effectively free (Tomcat, MySQL, Eclipse). I never have trouble finding JARs or examples of solutions to any and all common problems.

    There's a wealth of work being done on high-level design and patterns (Struts, J2EE, personal info fave: The Server Side).

    When you're trying to juggle a dozen coders: Java's OO roots, built-in documentation generation and relative ease-of-use all contribute to making things run smoothly.

    And while a great development team is the best resource of all, the reality is you sometimes get stuck with un-experienced, un-talented and/or lazy programmers. If there's an easier language to teach, understand and use than Java, I haven't yet found it.

    --
    The meek shall inherit the earth, in 3 by 6 plots. - Lazerus Long
  83. The Bigger mistake. by /dev/trash · · Score: 1

    There is no language called C/C++ either.

    +++
      My new Home

  84. Java with Spring and Hibernate by isomeme · · Score: 1

    We recently ported an app back end from EJB 2.1 to Spring plus Hibernate. I am incredibly impressed by the latter; this is the simple, efficient, well-architected ORM system Java has lacked for years. I'm still absorbing the beauty and power of inversion of control. And we haven't even begun to (directly) make use of Spring's AOP features.

    I was beginning to have doubts about Java as a biz-dev language/platform. But Spring and Hibernate have made me a happy Java advocate again.

    --
    When all you have is a hammer, everything looks like a skull.
  85. Brainfuck! by Tablizer · · Score: 2, Funny

    Recommend Brainfuck to your company. Sure, they will eventually fire you when they realize what they got into, but you will go out with a hell of a snicker.

    1. Re:Brainfuck! by ta+ma+de · · Score: 1

      Oh god, please please tell me somebody used this. Is there a blog anywhere with BF stories?

    2. Re:Brainfuck! by eneville · · Score: 0

      use and maintain are different things. anyone could do a simple page, with enough time. but no clown is going to honestly maintain a bf project.

    3. Re:Brainfuck! by Tablizer · · Score: 1

      but no clown is going to honestly maintain a bf project.

      You mean *only* a clown would maintain it.

  86. Language choices by Anonymous Coward · · Score: 0

    English, possibly a choice of German/French/Spanish/Italian.

  87. Silly Wabbit by the+eric+conspiracy · · Score: 1

    I've used 'em all.

    Java is the answer if the site is reasonably large sized.

    Scalability, maintainablity, 3rd party support out the wazoo, large pool of experienced developers, proven to work up through the largest applications in the world.

    IMHO Python or Ruby are great for smaller sites. PHP is quite usable by novice programmers, but in my opinion is not really well structured enough to recommend to anyone.

    Perl should be relegated back to where it belongs - parsing, system maintenance tools, etc. Although I find that nowadays I use Python for that because I hate Perl syntax (you call that a syntax?).

    C# isn't a player for me - I refuse to bend my knee to Redmond. I have made a lot of money porting old VB code to Java because of scalability, lack or portability to C#, etc. and don't want to get trapped in that world.

    C/C++ are for specialty applications like EBay that handle 4 billion transactions per day. Nobody else can afford/justify the longer development times associated with these languages.

    1. Re:Silly Wabbit by errxn · · Score: 1

      I refuse to bend my knee to Redmond.

      You don't have to.

      --
      In Soviet Russia, Chuck Norris will still kick your ass.
    2. Re:Silly Wabbit by Anonymous Coward · · Score: 0

      Yeah, right. One lawsuit for patent infringement and you lose your platform? No way.

    3. Re:Silly Wabbit by Tassach · · Score: 1

      Mono, while it has made great strides, is not ready for production use. (IMHO)

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    4. Re:Silly Wabbit by aled · · Score: 1

      Actually EBay does Java. Just go to http://ebay.com/ and look at the upper right for the powered by Java/Sun logo. The application server seems to be Websphere. There's a IIS but seems to be running only as the webserver delegating request to Websphere.

      --

      "I think this line is mostly filler"
    5. Re:Silly Wabbit by aled · · Score: 1

      Even if one would accept that Mono is ready for production times, there don't seems to be the equivalent of JEE (formerly J2EE) in the Mono/.Net world.

      --

      "I think this line is mostly filler"
  88. You are contradicting yourself. by Some+Random+Username · · Score: 1

    First you say you like PHP because it focuses on one thing. Then you admit that it doesn't actually focus on one thing, it has a huge pile of random modules that when enabled clutter the global namespace with crap. Obviously the latter is true, so your first point is wrong.

    And of course, PHP doesn't scale. And yes, it is because of the architecture that PHP forces you into. Being an apache module limits PHPs scalability. With perl or java or anything but PHP basically, you can write a fastcgi application or a servlet for an app server, which will keep your entire application persistant. PHP doesn't offer a way to do this, and if can be a huge problem.

    Lets not forget that PHP has the worst security history of any language, there are constant exploits and there's nothing you as a PHP user can do about it.

    1. Re:You are contradicting yourself. by gregmac · · Score: 4, Insightful

      Lets not forget that PHP has the worst security history of any language, there are constant exploits and there's nothing you as a PHP user can do about it.

      Constant exploits? For PHP, or for crapply-written content management systems (ahem, phpnuke) that happen to be written in PHP?

      CERT has issued two advisories for PHP itself: CA-2002-05 and CA-2002-20. Looking through the changelog I see only a handful of security fixes.

      Like most languages, it's possible to write unsecure code. I've seen code that executes stuff on the command line, right from a GET string. It's just as possible to write secure code.

      One problem with PHP is it's a simple language, and a lot of beginners with no experience pick it up and can use it to write applications. Knowing nothing about software development, or security issues, they tend to write bad, insecure code. This has nothing to do with the language, it simply has to do with the developers. If python or ruby came into incredibly widespread use (ie, available on pretty much any hosting account you can buy, like PHP is), then you'd probably see the same thing happening. It doesn't say anything about the languages, it's simply a matter of inexperienced developers writting bad code.

      --
      Speak before you think
    2. Re:You are contradicting yourself. by NutscrapeSucks · · Score: 2, Interesting

      Like most languages, it's possible to write unsecure code.

      And PHP does a few things that are UNlike other environments that encourage insecure code.

      The database interface pretty much encourages SQL-injection friendly logic, and the "Magic Quotes" hack that PHP came up with is just disgusting. Compare that to Java where programmers are encouraged to use safe Command and Parameter objects, or just abstract the SQL generation away with Hibernate etc.

      And the Register Globals thing was just lamebrained to begin with. Apparently there's still projects that depend on it, so it can't entirely be removed.

      So, yeah, webapps can be insecure in any language, but much of PHP's poor reputation stems from PHP trying to be too smart for their own good, and a community that doesn't really understand good practices.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    3. Re:You are contradicting yourself. by Foofoobar · · Score: 1

      All code that interfaces with the web and a database is vulnerable to SQL insertion attacks. To force addslashes on ALL input regardless is a waste of time if it doesn't need to go into a DB. Therefore it is up to the programmer to enforce and decide how to handle data being input into a DB and this is how ALL programming languages approach this problem.

      True, register globals was a bad idea. And that's why it is disabled by default and has been since the late 90's. Though, depending on how you use PHP, it can come in useful. The problem again is that the untrained programmer uses it improperly.

      You seem to blame the language for the bad programmers alot. Does this mean that I can blame the hammer for bad buildings? Or maybe I can blame the screw driver for a poorly built entertainment center?

      Blaming the tool instead of the person who uses the tool makes just as much sense.

      --
      This is my sig. There are many like it but this one is mine.
    4. Re:You are contradicting yourself. by NutscrapeSucks · · Score: 1

      No, like most PHPers, you just have no understanding how other environments do things. With a decent data layer, SQL quoting and escaping are handled automatically, and web programmers are not worrying about when to "addslashes" (not to mention that / is a DB-specific escape char and shouldn't be anywhere near your processing code).

      Now, obviously a good programmer can work around bad infrastructure, and a bad programmer can always create problems. But for an entry-level environment, PHP takes a hack approach that makes things harder than necessary, and you can blame them for that.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:You are contradicting yourself. by Foofoobar · · Score: 0, Flamebait

      Well like most people who confuse their ass with a hole in the ground, you confuse flexibility with instability. By your definition, yoga instructors would be institutionalized. For shame. What did their spandex wearing asses ever do to you.

      I like being able to manipulate my own data rather than having it manipulated for me. That way I get to decide if I want to be a moron like yourself or follow good coding standards.

      And although you think ALL languages do that, they DON'T... which just goes to show how badlty informed you are; next time try going to a real school rather than the local chapter of IEE.

      And check out the Tiobe index sometime as to what the REAL programming languages are.

      You see how easy it is to flame? Next time try being civil and maybe you'll make a friend or two. I'm sure then you might have an excuse to leave your mother's basement every once in awhile. :)

      --
      This is my sig. There are many like it but this one is mine.
    6. Re:You are contradicting yourself. by Anonymous Coward · · Score: 0

      You're my hero.

    7. Re:You are contradicting yourself. by Anonymous Coward · · Score: 1, Informative

      The database interface pretty much encourages SQL-injection friendly logic, and the "Magic Quotes" hack that PHP came up with is just disgusting. Compare that to Java where programmers are encouraged to use safe Command and Parameter objects, or just abstract the SQL generation away with Hibernate etc.

      PHP's oracle API lets you compile statements and then bind variables to them, which makes SQL injection impossible.

      I've just checked the documentation and the mysqli API and postgresql API also offer variable binding.

      Variable binding is the surest way to avoid SQL injection problems, and it is exposed by the API's for the major databases in use. So, what, exactly, is the problem with PHP's API's again?

    8. Re:You are contradicting yourself. by Russ+Nelson · · Score: 1

      And PHP does a few things that are UNlike other environments that encourage insecure code.

      For example, PHP's 'include' will, when passed in a variable (e.g. index.php?page=history.php and then include $page) will happily, joyfully, and with full honours execute remote hostile code with local privileges. Oh, yeah, I definitely wanted to run psybnc on my webserver.

      No other language's 'include' accepts a URL. Programmers are led down the primrose path by this feature, and the authors of PHP don't understand why this is a problem. Indeed, they blame the victim.
      -russ

      --
      Don't piss off The Angry Economist
    9. Re:You are contradicting yourself. by mjlivelyjr · · Score: 1

      It's fairly trivial to turn off url wrappers to where that is not possible. And again, it's not PHP's fault that people create programs that just blindly accept includes for variables in a POST or query string. If someone is doing that kind of crap we don't call them 'programmers' we call them 'hacks'. Should I say perl is the worst language ever because an old version of agora allowed you to execute shell commands? or maybe I should say that because old versions of AWStats use to allow people to place their own files on your server. Oh wait...no...no...let's say C/C++ is a crappy language because it's soooo easy to write code that allows buffer over runs... Curse Larry Wall and Bjarne Stroustrup

    10. Re:You are contradicting yourself. by Russ+Nelson · · Score: 1

      Actually, it *is* PHP's fault that people create programs that just blindly accept variables for include. The problem with php's include is that it does something very unexpected; something that no sane programmer would guard against; something that no sane programming language would implement: it will fetch somebody else's code and run it on your machine with your web server's privileges. Are you going to try to tell me that that is not insane?? Does Perl do that? Does C do that? Does C++ do that? Does Python do that? Does ANY other language's 'include' fetch remote code?

      Truthfully named, php's 'include' would be called 'include_remote_hostile_code_and_execute_it_with_l ocal_privileges',
      but of course nobody would use PHP if it had such an intrinsic.

      Google for: php security flaw. Google shows you pages that a lot of people think are authoritative. If a lot of people think something is true, it'll show up as the first page. If I was a lone madman insisting that php had a security flaw in 'include', that Google search would come up empty. Instead there are nearly 3/4 of a million pages that talk about php security flaws. "Hello?? Anybody home at php headquarters?? You have a problem that can't be explained or documented away."
      -russ

      --
      Don't piss off The Angry Economist
  89. What is your definition of compiled and interprett by Foofoobar · · Score: 1

    PHP is as interpretted as Java and C# are. It uses a 'Virtual Machine' just like they do and it can also be compiled as a binary before execution. So calling in interpretted while allowing Java and C# to be called compiled is a contradiction. Either they ALL are compiled or they ALL are interpretted.

    They way C# handles compiling is NOTHING like how C++ handles compiling. To call both of them compiled does an injustice to the term.

    --
    This is my sig. There are many like it but this one is mine.
  90. Yes, almost irrelevant by dtfinch · · Score: 1

    I almost always use javascript (ASP) on the server side. It's much more powerful than vbscript, allows me to write everything in the same language, and is somewhat portable, though the mod_js project seems to have been abandoned many years ago. Javascript gets bad reviews from people who barely know it and have seen ugly spaghetti scripts written by other people who barely know it. PHP is also fun, and I really like its string performance, object serialization, and vast selection of built in libraries for every conceivable need. It makes me wish my keyboard had a dedicated '$' key though. ASP.NET, whichever flavor you prefer, is very fast for serving complex pages, and probably very good for RAD-developed intranet apps where appearance and bandwidth are not important, but for normal web development I haven't been interested by any of its silver lining like
    For normal websites that are database driven but where the data doesn't change much, I've been moving away from server side scripts except where absolutely needed, and writing site generator scripts instead whenever possible. The pages are served faster. The server scales better. They aren't penalized as dynamic by search engines. I can put as much processor time and memory as I want into generating them. And they're hacker proof. A lot of functionality like building up a shopping cart or customizing a product can be done better and faster on the client side and still work for 98% of visitors, with usable alternatives for the other 2%. If I want to port a website, I'll only have a few pages to rewrite.

    1. Re:Yes, almost irrelevant by Anonymous Coward · · Score: 0

      you don't use Javascript, you use JScript.

    2. Re:Yes, almost irrelevant by dtfinch · · Score: 1

      Wikipedia quote: "When web developers talk about using JavaScript in the IE browser, they silently mean JScript"

  91. Jython + JSON + JavaScript by JPyObjC+Dude · · Score: 1

    With Java and Jython on the server side, you have many solid libraries and full scalability. By leveraging Java side, you will also have fantastic multi-threading support for large deployments.

    By using Python as probably your templating layer on the server, you could easily utilize JSON to transport data from your JavaScript application on the client and the server. The nice thing about Python and JavaScript is that they both natively interpret JSON which will allow for more compact data transport and rapid interpretation. Throw in JSO/XML-RPC and you will have some really sweet UI's for your users (ie google maps).

  92. I use them all; it's my job... my stance: by jesuscyborg · · Score: 1

    I know quite a few languages, and I write web apps for a living. I love them all, and don't think I'm going to tell you anything is 'dying' here... but here we go:

    PHP 4.3 - Works well for small projects because you can pump scripts out REALLY FAST. However, if you want to make something big and complicated, you have to REALLY know how to hack around the language. Has FANTASTIC documentation and a large community of developers making great extensions. PHP is the kind of langauge that you can be assured that your code won't have much of a problem getting setup wherever you take it.

    However, PHP runs pitifully slow, is buggy, and brain dead design features such as magic-quotes, register-globals, object assignment copies instead of references (REALLY BAD), segfaults on stack overflows, inconsistent naming conventions (Ex: nl2br(htmlspecialchars(str_replace($x, $y, $z)))), etc. PHP is what I like to call a, "good enough" langauge and isn't a bad choice, just don't shoot yourself in the foot with the bad features.

    (Off-topic: I pretty much think the only reason this language became so popular is because Perl was far too steeped in Unix culture for people who grew up on Windows and ASP costs money and was less availible)

    JSP/Servlets - Difficult to setup, consumes a lot of memory, but runs faster than all the scripting languages. Unlike PHP, if you're distributing your code, your users won't be able to just throw it in a directory and have it work.

    Because you're using Java, you get all it's plusses. For example, Java has a very, "there is only one way to do it" philosophy, making it great for a large team of developers and future developers. Definately the best for scalability, speed, and complicated applications.

    Perl: Like PHP, this is also widely supported. The catch is Perl isn't a friendly language to Windows culture and is losing popularity. It has great documentation, but people these days just can't seem to figure out man pages. Perl is also quite fast relative to PHP. Perl doesn't scale well because it's not intended for large-scale OOP development. Perl's "there is more than one way to do it" philosophy is not great for a large team of developers, because the last thing you need is individuality in a corporate team setting (must... not... betray... hacker values...) But for small to medium applications, it's a solid choice.

    C/C++ - Development time and bug-fixing time is VERY HIGH compared to Java/Perl/PHP. C is really only appropriately used for writing speed-critical functions that you can link in to your scripts. C++ is a tolerable choice for writing the bulk of the application.

  93. Lisp by Anonymous Coward · · Score: 0

    Then answer to the original ask slashdot is, of course, LISP.

    It's written "Lisp" these days, and yes, it could well be a suitable answer for the original ask slashdot question. Common Lisp has quite a decent set of Lisp-based web libraries, servers in lisp, and app. frameworks. e.g. Get Uncommon Web here - Watch the Video!

  94. Agree with most, however... by Phil+John · · Score: 1

    However, PHP runs pitifully slow

    I've not found that to be the case at all, in fact, if you are running PHP as an apache module with a bytecode cache and optimiser (like the free eAccelerator for instance) PHP positively flies.

    --
    I am NaN
    1. Re:Agree with most, however... by jesuscyborg · · Score: 1

      Of course I use it as an Apache module... And to be honest. It's good that you mentioned the optimizer; however, when reviewing a language, I don't think it's a great idea to include third-party 'bails-you-out' software in the judgement.

      I've written big apps in PHP where there can be about six parent classes for a page's class and it will end up taking 200 ms to load on load-free P4 Prescott machine. It's acceptable because this app isn't going to be used by thousands of persons simultaneously.

  95. Language != module by Foofoobar · · Score: 5, Insightful

    You are mixing up the language with the modules. There is a reason why PHP comes without all those additional modules... so you can decide what you want it to do. If you want to add all those modules to PHP and make it do all that, then you have to do it yourself. But the base install does not include them. In fact it no longer includes MySQL support in it and that too must be added as a module.

    As far as your opinions on PHP not scaling, tell that to IBM, Avaya, Hewlett Packard, Disney, Sprint and the others who get millions of hits a day using PHP. Seems to me if sites that get millions of hits a day can handle the bandwidth using PHP, that it JUST MIGHT be able to scale. :)

    And as far as worst security history, you again confuse bad programming with the language it is written in. For this analogy, C# and VB still hold that title. Just because the language allows you to make mistakes in your programming, does not mean it is the languages fault when you create a recursive function that loops perpetually.

    I suggest trying a course in logic; it makes your programming better and your argumentative rhetoric make more sense. :)

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:Language != module by ephex · · Score: 1

      if you need to go to school to learn logic, then you are definitely in the wrong fucking field.

    2. Re:Language != module by Anonymous Coward · · Score: 0

      You're stupid. The sites you listed: ibm.com, hp.com, and sprint.com use J2EE; avaya.com uses asp.net; and disney.com uses ASP. Seems to me if sites like that can handle the bandwidth, that doesn't say anything about PHP.

      PHP has a well-deserved poor security history. It doesn't even have the concept of a prepared statement.

    3. Re:Language != module by the0ther · · Score: 1

      A course on logic? That is hilarious. You are not a nice person, based on this post. And you're clearly an anti-MS zealot. Kinda like a Mac-zealot, but you know enough to cause serious trouble.

    4. Re:Language != module by Anonymous Coward · · Score: 0

      PHP has a well-deserved poor security history. It doesn't even have the concept of a prepared statement.

      What bearing does that have on security? That's a performance issue.

      PHP is only at fault in the sense that it allowed lazy programming. You have always been able to build highly secure applications in PHP. The problems with security in PHP-based web apps were caused by two different things:
      - overriding of global variables due to automatic registering of global variables from GET and POST, which eases the burden on the developer's back, but is generally a bad idea security-wise, which is why it has been off by default for a while
      - sql injection problems, due to developers building the variable values from GET or POST requests straight into their SQL queries, instead of compiling the queries and then binding variables. This is a problem you can have in any web-dev environment, and it is not fair to single out PHP over it.

      I think overall it is fair to criticize PHP for having shipped so long with a defaultt configuration of register_globals set to on. But to then take that and conclude that PHP is inherently poor at security, that for me is a bridge too far.

    5. Re:Language != module by jrumney · · Score: 1
      As far as your opinions on PHP not scaling, tell that to IBM, Avaya, Hewlett Packard, Disney, Sprint and the others who get millions of hits a day using PHP. Seems to me if sites that get millions of hits a day can handle the bandwidth using PHP, that it JUST MIGHT be able to scale. :)

      Even if you were right about those companys' use of PHP, there are certain applications, like serving stateless dynamic web pages, where scalability doesn't matter. PHP may be able to handle those cases, but for a complex web application, nothing touches J2EE for scalability and ease of development.

  96. OOP Sucks by Anonymous Coward · · Score: 0

    There is no objective evidence that OOP is better for web apps; Only anecdotes from overcharging zealots. Yeah, go ahead and mod me down, I am just the Anonymous Messager of Truth. Prove me wrong with evidence, not modding if you have any balls.

  97. focus on programmer productivity by Anonymous Coward · · Score: 0

    Unlike a lot of folks here I've used all these languages for web dev.

    In order from "fastest" to "slowest", my experience shows:

    Perl (mod_perl), Python (mod_python), PHP, Ruby

    In order from "most productive" to "least productive":

    Ruby (BY FAR), Python, Perl, PHP

    So you should pick your sweet spot. It's usually cheaper to buy machines rather than talented programmers, so I personally stick with Ruby whenever possible.

    However I have a very high performance app written in mod_perl which gets hundreds of hits per second on a single slow one-process box, MySQL included, I'm pretty proud of it. You can do a lot of cool stuff with mod_perl although it's painful to code in Perl.

    As soon as Ruby gets a real VM, it will kick so much ass! But until then you gotta make the trade-offs.

  98. Code management by sterno · · Score: 2, Insightful

    Another aspect of Java for dealing with large sites is that it lends itself to cleaner code and better organization. PHP pages end up being a bunch of pages which means you get UI and business logic all entangled. In java, there's a lot of ways to avoid that mess and make a more organized and more readily maintained system.

    --
    This sig has been temporarily disconnected or is no longer in service
  99. Smarts Language. by baadger · · Score: 1

    Smart, well thought out design is more important than the language you use, just pick one from the list of languages that will offer you most of the features you need and get thinking.

    Wikipedia is powered by PHP and, although can be slow at times, makes good use of PHP bytecode caching and, probably, HTTP caching as well. Caching isn't a silver bullet but for web overheads and interpreted languages it is a pretty magical thing.

    You haven't said what type of web application you are building, like so many Ask Slashdot questions there isn't really anything specific enough in your submission to offer decent guidance.

  100. The real problem in comparing Java and PHP by amarodeeps · · Score: 4, Insightful

    Java is called a language but in this context it is more of a platform which, frankly, is older, more robust and better thought-out than anything PHP has to offer--at this point. I believe PHP is great for small to medium scale web sites, but once you start to deal with the large structures that enterprise systems require, PHP is just not an option--if you want packages already available to you which are thought-out, mature and stable, like all the various J2EE solutions available.

    PHP very well may be faster for an individual page--but what are you comparing that to? Tomcat set up to use JSP? Well, there's a lot of infrastructure there that a PHP developer is probably not going to use for a simple dynamic page. And the fact is, PHP is incorporating a lot of 'heavier' OO features now whose effective use is debatable when considering web apps tied to the HTTP protocol--why build and tear down your entire OO structure every time you load a page? To do that intelligently you want an application server caching these objects...and then we start talking about Java and all the years it has on PHP there.

    So, I'm really just saying--some things are right for some projects, others for other projects. Choose wisely.

    1. Re:The real problem in comparing Java and PHP by mbyte · · Score: 2, Interesting

      I could not agree more. I used php extensively before and often laughed at J2EE as oversized and overblown for web sites. But i constantly hit the wall with every more compley web application. The fact that your goal is to build up your data structure as quick as possible only to display them and destroy them one moment later makes any real programming a pain. I even investigated in building PHP application servers, but they are far, far from mature. Most are just trying out the possibilities.

      Compare to java now, many new technologies emerging to make J2EE simpler and less painfull (no need to edit XML config files of 2k sizes just to display a simple page). One nice ones i found was wicket (with hibernate and possible spring in the middle)

      Still PHP has lots of uses, its enough by far for your average CMS. Use the right tool for the job !

    2. Re:The real problem in comparing Java and PHP by Anonymous Coward · · Score: 0

      > Java is older...

      Older? I started using PHP in 1995, and started using it for everything after its second rewrite in 1997.

      When I worked at Sun, the first time we were introduced to Java was in October 1994 when HotJava (the web browser) became stable enough to use. Sun formally announced Java at SunWorld in 1995. I was there. I was also already using PHP at that point.

      What do you mean by older?

    3. Re:The real problem in comparing Java and PHP by Decaff · · Score: 1

      Older? I started using PHP in 1995, and started using it for everything after its second rewrite in 1997.

      When I worked at Sun, the first time we were introduced to Java was in October 1994 when HotJava (the web browser) became stable enough to use. Sun formally announced Java at SunWorld in 1995. I was there. I was also already using PHP at that point.

      What do you mean by older?


      Because Java was developed in 1991.

    4. Re:The real problem in comparing Java and PHP by Anonymous Coward · · Score: 0

      > Because Java was developed in 1991.

      You need to do more research before posting. Remember when Sun made the first public alpha of Java available? It was in 1995 just after SunWorld '95 in May in San Francisco. I've still got the program and name tags on my shelf.

    5. Re:The real problem in comparing Java and PHP by OpenServe · · Score: 2, Insightful

      ..why build and tear down your entire OO structure every time you load a page? To do that intelligently you want an application server caching these objects..

      Thank goodness somebody mentioned this. For this and other reasons, PHP is an architectural disaster when it comes to trying to write real world applications (vs. dynamic web pages and ultralight web apps like blogs, wiki's, etc.) PHP fanatics continually ignore the fact that their language of choice is nothing more than a glorified form of CGI. Indeed, PHP is great for doing CGI, but beyond that it's the most useless language on the planet. This is 2005, not 1995.

      The worst part is that, within the Open Source community, PHP has diverted enormous resources and man-hours away from Java in cases where Java is the obvious right tool for the job. As a result, we still have virtually nothing in the category of quality core business applications. (finance, accounting, payroll, ERP, CRM, document management, etc.) The distraction of immature Python has been to no gain either. I firmly believe that if the Open Source community had co-opted Java 5+ years back, nobody would be talking about .NET today and we'd be seeing far more large scale Linux/BSD rollouts across corporate America. That includes desktop rollouts too, because once your core apps are web-enabled, who needs Windows?

      ok.. off my soapbox. :)

    6. Re:The real problem in comparing Java and PHP by BeachFogg · · Score: 1

      I'm pretty new to PHP, but I know it's possible to store objects in PHP sessions. Does this solve the issue of having to re-build OO structures from the db with every PHP page load?

    7. Re:The real problem in comparing Java and PHP by amarodeeps · · Score: 1

      Well, think about this: if you save that object in a PHP session, what are you doing? You're either writing it to a file (session file in /tmp) or to a database entry. So, that makes any sort DB caching mechanism it may be providing you pointless, right?--'cause ideally you'd have that sucker sitting in memory waiting for you.

      But, what about speeding up object instantiation? Well, you've still got to create a 'new' object in memory even if you have the data structure mapped for the 'old' object--then you've got to repopulate it. Perhaps they've got some shortcuts going here in the Zend engine but it seems to me that this is marginally better and, again, caching in memory is what you really want--you want an object life-span not bound to the HTTP protocol. It might even be slower because you have to do some lookups to a DB or a file and it's faster to pull data from memory every time. I'm sure there are app servers out there doing this for PHP, but last I looked they were in their infancy--especially with so many new features being added to PHP--and that was my main point: PHP just ain't there yet.

    8. Re:The real problem in comparing Java and PHP by Anonymous Coward · · Score: 0

      Well, think about this: if you save that object in a PHP session, what are you doing? You're either writing it to a file (session file in /tmp) or to a database entry. So, that makes any sort DB caching mechanism it may be providing you pointless, right?--'cause ideally you'd have that sucker sitting in memory waiting for you.

      You could just put your session storage on a ram drive. But you don't even need to, because any kernel worth a damn will have a VM subsystem that caches the sessions you need most in memory.

      I think the "but it's not in memory" argument is a red herring. The "but it needs to be instantiated" argument, now that has value. But on the other hand, the difference with fetching your stuff from the session instead of rebuilding it from scratch is that the instantiation happens in PHP's own binary code there (unserialize), and not in your interpreted code, meaning you should get a clear speed boost (somebody ought to benchmark this).

  101. Programming language is NOT a success factor!! by koenkam · · Score: 2, Interesting

    The critical success factors for a large webapp are: 1. The programmers ----- The differences in popular OO web programming languages (Java, PHP, .NET) are really small. It's good programmers who make all the difference. Programming languages: - don't make scalable applications. - don't draft designs or requirements. - don't make code that is easily readable and maintainable. - don't create bugs or do poor optimization or create application bottle necks. These things are done by programmers. 2. Persistant data ----- For large-scale websites, speed is mostly determined by disk access. Database queries may take up to 50% of your total page execution time. Master databases can only handle a few hundred database writes per second and can easily become a bottleneck. Downloading uncached files can create 100% waits on your disks. Programming languages matter on large scale websites, but only after the point where the persistent storage problem has been fully addressed.

    1. Re:Programming language is NOT a success factor!! by Tassach · · Score: 1
      Programming languages:
      - don't make scalable applications.
      - don't draft designs or requirements.
      - don't make code that is easily readable and maintainable.
      - don't create bugs or do poor optimization or create application bottle necks.

      These things are done by programmers.

      True, but language choice make can make a huge impact in software quality and programmer productivity / effectiveness.

      While I'm a fan of having good requirements, realistically it's often impossible to know the requirements up front for most applications. Very often, the only way you'll know all the requirements up front is if the application has already been written (EG reverse engineering or refactoring). Detailed requrements are FANTASTIC for imbedded systems and similar well-defined tasks (EG Compilers, operating systems, device drivers), but most applications are not in this category. Business applications (and the business processes they automate) are rarely that well defined, and they tend to evolve rapidly, especially in a small/startup company.

      For this reason, I've come to the conclusion that a rapid prototyping approach with short (daily to weekly) release cycles and lots of user feedback is usually the right approach for most business apps. Scripting languages and a web architecture make this development methodology a lot more feasible. Compiled languages work better for the same kind of well-defined tasks that benefit from exhaustive requirements.

      Scalability is also hugely impacted by language choice. Some languages don't handle threading well (or at all). Some have huge run-time overhead. Etc.

      Readability and maintainability is also a function of language choice. You can write obfuscated code in any langugage, but in some languages (cough *perl* cough) it takes a deliberate effort to write *UN*obfuscated, maintainable code while others (SQL) make obfuscation fairly difficult.

      Some languages make it easier to introduce bugs than others. For instance, in C/C++ it takes a lot of effort to prevent memory leaks and buffer overruns; languages which have native garbage collection and bounds-checking completely eliminate those kinds of bugs.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    2. Re:Programming language is NOT a success factor!! by koenkam · · Score: 1

      I am currently CTO for a website with 100 mio pageviews/month, doing about 10 queries per page at 1 million members.

      When you program on the scale of several 100.000 lines of code per year, maybe 1.000.000, running on 100 servers, YOU WILL NEED REQUIREMENTS AND DESIGNS ...


      and testplans, unit testers, UML, patterns, and so forth and so on...

      or you will perish. Just doing incremental coding, XP, won't get you to a stable release when you're doing big projects.

      Then, in the end, the programming language matters, but not for technical reasons. Price, is one thing. Continuity of the language, another. Programmer availability, very important. For these reasons I would stick to one of the most 5 popular languages and don't go into any exotic new scripting language.

    3. Re:Programming language is NOT a success factor!! by Tassach · · Score: 1

      I am currently CTO for a website with 100 mio pageviews/month, doing about 10 queries per page at 1 million members.

      That's nice. I administer the world's largest public database of genomic information.

      If you were paying attention, you'll notice that I said *most*, not *all*. There are always exceptions to every rule and outliers on every trend. Your system is NOT a typical business application and is representitive of neither the bulk of software being developed nor of the type of work most programmers do on a daily basis. Neither is the system I currently administer. What's appropriate for special boundry cases is not necessarily appropriate for the median case.

      Without knowing specifics, I'll tentatively agree that *YOUR* application probably benefits from good requirements and a very formal development methodology. That kind of method works fine if you have a well-defined task, a seven or eight-figure budget, and a staff of 50+ people. It's totally inappropriate for most start-ups as well as for most in-house business applications in established companies. What works for you does not necessarily work for everyone.

      If you're writing a compiler or device driver, your requirements are pretty clear and the language/hardware specifications aren't going to change rapidly. When you're supporting scientific research or developing a new buisiness concept, your requirements can (and often do) change daily.

      If you're writing an embedded system, be it the flight controls for an airliner or the controller for a microwave oven, your requirements are well defined (as they are dictated by the hardware) and will definately benefit from a formal development methodology. If you're automating an existing business process in a large (or even medium-sized) company, you'll be hard-pressed to find two people in the organization who even agree what the requirements are. When half (or more) of the project is *identifying* the actual requirements, an incremental rapid prototyping approach often lets you get to a workable solution faster. The prototype itself becomes a tool for gathering the requirements and building consensus.

      I'd advise you to remember that business is rough, and you are always in danger of being outclassed by a smaller, more agile startup. Consider for a moment that it might not be necessary to have hundreds of servers and write hundreds of thousands of lines of code per year to do the same job, if you used a more efficient technology and development approach.

      Then, in the end, the programming language matters, but not for technical reasons.

      I have to disagree with you. It's almost entirely technical (although we might have different definitions of what "technical reasons" are).

      Price, is one thing

      My experience has been that software licencing costs generally are only a very small percentage of the total cost of a development effort. Hardware cost is significant, and is hugely impacted by technical efficiency. YMMV, but my experience has been that the biggest expense in the vast majority of development projects is human resources. Programmer time is expensive; using more efficent/powerful languages means you need fewer man/months to deliver the same results. More maintainable code means lower support costs. More elegant technology is easier to administer and has less downtime, resulting in lower operational expenses. Etc.

      Continuity of the language, another

      Overrated, IMHO. Even if you've saddled yourself with some propriatary monstrosity, your current set of development tools will keep working exactly the same way they do now in perpetuity. Bits don't rot. Visual Studio 6 may be unsupported now and won't get any further updates, but there's nothing that's going to prevent you from using it IN IT'S CURRENT STATE for the next 20 years. If it's not good enough *now*,

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
    4. Re:Programming language is NOT a success factor!! by koenkam · · Score: 1

      In the end we seem to be on the same sheet regarding what you call hackers and code monkeys. My whole point is that finding the hacker instead of the code monkey is way far more important than choosing Java or PHP.
       
      So although you seem to disagree with me I think we actually share the same opinon
       
      I am not in favor of doing classical 'waterfall' cycles. Writing requirements doesn't mean you can't develop iteratively or incrementally. I am all in favor of continuous refactoring.
      But you can't work on a large-scale website without doing a proper database design, a security plan, a test plan, applying suitable patterns, and decoupling. But methodology and producing documentation is a supportive activity, not a goal in itself. It should be done on a very minimal level, but it should be done. And methodologies and language choices are, again, in my opinion not tightly coupled.

      As for startups doing large-scale websites, in general I don't think that the programming language choice will make the business succeed or fail. I think that Ebay, once a startup, could have been written in ASP, PHP, C++, Java or Perl and still it would have been where it is today.

  102. Re:Smarts Language. by baadger · · Score: 1

    The title was supposed to be "Smarts > Language", pray tell me why Slashcode doesn't encode html entities.

    If it were a PHP application I suppose it'd be doing "$subject = htmlentities($subject);"

  103. CafeSpot uses Common Lisp by Anonymous Coward · · Score: 1, Interesting

    CafeSpot is a pretty fancy Web 2.0 type app and uses Common Lisp along with a bunch of CL libraries.

  104. ColdFusion anyone? by flotek · · Score: 1

    There are advs and disadvs for every language. But my choice of language is ColdFusion. Very simple to learn for programmers new to a project. One can use the OO standards or Modular standards, or a combination of both to help organize the code for scalability. My favorite features of it is that you can easily and I mean easily integrate Java Objects or C++ with it, it has an almost flat learning curve, and it takes fractions to code in cfml over some of the other server-side languages. Other cool features include Flash forms to have a more Rich Internet App feel. There are also tones of free API's, functions, modules,... out there to use. Our team uses Dreamweaver and CFEclipse to make life even more easier. And we also coding using the model-view-controller structure, and it works great with CF. Now, off course I'm biased towards CF, that's b/c I use it every day! But I'm still willing to mention the bad things about using it. It's not free :( there I said it. But if you're talking about large scale apps, the cost is relatively nothing. Something that's questionable about CF is its future. It has come a long way and it now kicks ass and there's lots of potential. But a lot of ppl are a bit worried about its future since Adobe bought Macromedia. But, Hey!! It's not going anywhere, it's only gonna get better. CFML integrates very well with Flash and web services. And on a side note, if you have the money Macromedia's Flex is a pretty cool tool as well for building Rich Internet Apps. there's my 2 cents!!

    1. Re:ColdFusion anyone? by Tablizer · · Score: 1

      It seems to me that CF is more targeted to intRAnet and B-to-B apps instead of public sites so much. Integration with Flash and Adobe should make it even better for "cubicle work" where paper-friendly printing and rich GUI's are more in demand.

    2. Re:ColdFusion anyone? by JeremiahX · · Score: 1

      I was scrolling down the comments going "please someone throw CF out into the mix"

      I have been coding with CF for about 6 years now and people seem to forget that it was the product that Microsoft ripped off to create ASP. CF is 10 years old now and is a very mature product that can be deployed in a very large scale enviroment. Everyone needs to remember that MySpace.com is running off a 3 year old version and it STILL handles major load.

  105. Not all true (imo) by QQ2 · · Score: 1

    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).

    With all due respect this is simply not true IMO. Allthough I have never worked with Idea for a prolonged period of time it did in deed seem like a verry good IDE. But the latest (stable)version of Eclipse is not as good as Idea or even Visual Studio 2003. Now I don't know how asp performs on large sites because I have never worked with it on large sites. But as an IDE Visual studio i really find Visual studio to be better than Eclipse.

    Idea on the other hand is IMO at least as good as visual studio. (and maybe even better but once again i don't have nearly as much experience with it as I have with eclipse and VS).

    I know this is all MY oppinion and peaplo will certainly bash me fo using VS but I like it and claiming Eclipse is 'a steap ahead' is simply not true. (allthough Idea most likely is a steap ahead)

    1. Re:Not all true (imo) by Surt · · Score: 1

      I've use vs, eclipse, idea for over a year each. I think eclipse is a bit ahead of vs. It maybe depends on what features are most important to you. VS has some nice team stuff going for it, while eclipse to me seems better from the individual developer perspective (which is more important to me). But it certainly could be a toss up. IDEA, though, is definitely a step ahead of both.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    2. Re:Not all true (imo) by Westley · · Score: 5, Insightful

      You say it's "simply not true" but don't actually give any reasons.

      Now, I've never used IDEA for a prolonged period of time - I couldn't get into it, and was happy enough with Eclipse not to worry. (The fact that Eclipse is free helps - it would be difficult to persuade my company to pay for loads of licences for IDEA when Eclipse is perfectly all right and free.)

      I do, however, use Visual Studio .NET 2003 and Eclipse in daily work. Here are just a few reasons I much, much prefer Eclipse to VS.NET:

      1) Refactoring. Yes, there are tools available to help - but it's free and bundled into Eclipse.

      2) Organise imports. Even with VS 2005 having some limited support, it doesn't help nearly as much as it should.

      3) Built-in unit testing tools. Using TDD.NET to fire up NUnit GUI (or any of the other things it can do) is much, much uglier than the built-in support for JUnit in Eclipse.

      4) Ant support in Eclipse. Our Java build script is *so* much nicer than the nastiness VS.NET encourages. I'm looking forward to investigating the VS 2005 integration with MSbuild.

      5) "Hold down ctrl to make anything a hyperlink" - want to go to where a method, variable, class etc is declared? Just hold down ctrl and click. Navigation was never simpler.

      6) Search for all references (etc) - in theory there's "go to definition" in VS.NET 2003, but half the time it doesn't work when you're in a large solution, and I don't believe there's any way of finding all references.

      7) The VSS plugin for Eclipse is actually better in my view than the VS.NET support... much easier to understand the configuration, change it on a per project basis etc.

      8) Launching Tomcat in a debugger with Eclipse (even without any extra plugins) seems a lot more reliable than trying to make sure that IIS has actually caught up with changes. Why do web projects need IIS to be running even to open in VS.NET? It's crazy.

      9) Quick Fix and other source options - get Eclipse to write code for you, fix code for you, extract constants, etc. Fantastic stuff - especially in test-first development, where you can write code which uses the API you *want* to exist, then tell Eclipse to create the shell of that API for you.

      10) Compile on save with a really good incremental compiler. This saves huge amounts of time. Oh, and changes really do happen, unlike in VS.NET where if you change an embedded resource, a normal build sometimes picks up the change but sometimes doesn't. (Not to mention VS.NET locking access to files it's built quite often, meaning you can't rebuild them without restarting VS.NET - particularly in terms of XML documentation.)

      These are not esoteric features which are hardly ever used - although I could list loads of those too, if you want. These are things I use *every day*. My pair programmer and I are *always* saying how much easier our C# work would be if VS.NET supported the features above. Half of them aren't even in VS 2005 beta 2, as far as I can see - or at least aren't as well implemented. Funnily enough, I can't remember the last time we said something similar the other way round...

      So, I've given some of my reasons why I think Eclipse isn't just a step ahead of VS.NET, but leaps and bounds. Now, why do you think VS.NET is better than Eclipse, and do you really not care about the above features?

    3. Re:Not all true (imo) by Anonymous Coward · · Score: 0

      Oracle just made JDeveloper free, which is based on Borland's JBuilder suite. I've never used it, but considering how much effort Oracle puts into Java for web development, I'd expect it to be quite nice.

    4. Re:Not all true (imo) by Westley · · Score: 1

      Out of interest, could you tell me what makes IDEA better than Eclipse? I'd like to know whether or not I should invest some time in giving it another go. There are very things I *notice* I miss in Eclipse, but that's not to say there aren't 101 things I don't know I'm missing :)

    5. Re:Not all true (imo) by Surt · · Score: 1

      I think the biggest advantage to IDEA is the amount of stuff you can automate. Between the macros/refactoring/intellisense type stuff, there's a significant productivity gap vs eclipse. Eclipse can do a lot of the same things, but not as fast, and what I want in an IDE is something that will help me churn out code faster. I think about things pretty quickly and when I go to code them I'm looking for a tool that will help me produce what i'm thinking about very quickly. vc/eclipse are better than notepad for that reason, but don't measure up to the speed you can get out of idea. I can't think of a specific feature that I think particularly wins in idea, it's just that everything works together just that much better. And in fairness to eclipse, i've not yet tried out 3.1 to see how much they've caught up yet. I'll probably have to evaluate 3.1 vs idea 5 later this year.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    6. Re:Not all true (imo) by Anonymous+Brave+Guy · · Score: 1
      5) "Hold down ctrl to make anything a hyperlink" - want to go to where a method, variable, class etc is declared? Just hold down ctrl and click. Navigation was never simpler.

      6) Search for all references (etc) - in theory there's "go to definition" in VS.NET 2003, but half the time it doesn't work when you're in a large solution, and I don't believe there's any way of finding all references.

      In fairness, both of these are trivial in any recent VS.Net version. Jumping to definitions/declarations has been around forever (right-click and go to definition, or click in the name and hit a shortcut key). There are a few usability gremlins -- constructors in C++, for example -- but these have been improved in more recent versions.

      Also, there's a specific find references command (under the Edit menu by default, IIRC) in VS.Net, which works very well. That lets me forgive them just a little for removing the Browse toolbar that was one of the most useful features in VC++ 6.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    7. Re:Not all true (imo) by Jord · · Score: 1

      I have compared them and Eclipse is still unfortunately behind IDEA. The templates, import management and code completion are the biggest areas. While Eclipse has these features they just do not run as smoothly as they do in IDEA.

      As the parent poster said, it is all about the little things. There are so many little things that add up to make IDEA a great IDE. My only complaint with it is its speed on slower machines. I wish they would spend some more energy on performance over features.

    8. Re:Not all true (imo) by the+way · · Score: 2, Informative

      FYI, features 1, 5, 6, and 9 are all supported in VS.Net by using Resharper. I couldn't imagine using VS.Net without it...

    9. Re:Not all true (imo) by Westley · · Score: 2, Interesting

      It sounds like you have a lot better luck with "Go to definition" in VS.NET than I do. With the large C# projects I work on, it very rarely works. At home with smaller projects, it seems to be okay - but still less convenient than in Eclipse. (I didn't mention the Declaration view in Eclipse, which shows you the declaration of whatever you've got selected - no need to even navigate there half the time.)

      As far Find References, I've just trawled through VS.NET 2003's menus and I think I've found it - is it the "Edit -> Find and Replace -> Find Symbol" option? I'll admit I hadn't seen that before. Thanks for pointing it out. Even though I prefer the way Eclipse does it (finding uses of that particular identifier, rather than any identifier with the same name) it's now not a big enough issue to get on the list, as it were :)

      Oh, I forgot to mention something else which VS 2005 really should have pinched from Eclipse - the idea of combining class view and solution explorer. Being able to expand a .java file to see what classes are in there, then expand the classes to see the methods (and refactor against them etc) is very handy - I'd forgotten about it until I started navigating around a project to try to use Find References in VS :)

    10. Re:Not all true (imo) by Anonymous+Brave+Guy · · Score: 1
      It sounds like you have a lot better luck with "Go to definition" in VS.NET than I do. With the large C# projects I work on, it very rarely works.

      FWIW, it's generally pretty good for C++. The only annoying bug I hit regularly is that sometimes it fails to parse what's under the cursor correctly, and offers you the wrong choices in the dialog; this can be avoided by highlighting the name you're searching on first.

      As far Find References, I've just trawled through VS.NET 2003's menus and I think I've found it - is it the "Edit -> Find and Replace -> Find Symbol" option? I'll admit I hadn't seen that before. Thanks for pointing it out. Even though I prefer the way Eclipse does it (finding uses of that particular identifier, rather than any identifier with the same name) it's now not a big enough issue to get on the list, as it were :)

      Yes, that's the one. The feature is context-sensitive, too: if you use the same label for multiple things, you should get a dialog box asking which one you want references for, and then only see references to that version of the label afterwards.

      Oh, I forgot to mention something else which VS 2005 really should have pinched from Eclipse - the idea of combining class view and solution explorer.

      I think quite a few of the... erm, sub-optimal... UI decisions in Visual Studio since 2002 have been driven by the need to support multiple languages. For example, as I mentioned earlier in the thread, they dropped the browse toolbar that worked so well in VC++ 6 during the move to Everything.Net, apparently because they couldn't yet support the equivalent functionality in VB or C#. I'm guessing the whole Solution Explorer thing is similar: since you have more than just classes in C++, you can't easily tie the UI to a fundamentally class-based design such as you mention to support C# better, say.

      IMHO, this points to an unfortunate design decision that needs to be reversed. Not all languages work the same way, so not all IDEs should provide the same tools to view and manipulate code. I think the whole "making it all work the same way" approach has gone a bit too far now.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    11. Re:Not all true (imo) by dubl-u · · Score: 1

      Now, I've never used IDEA for a prolonged period of time - I couldn't get into it, and was happy enough with Eclipse not to worry. (The fact that Eclipse is free helps - it would be difficult to persuade my company to pay for loads of licences for IDEA when Eclipse is perfectly all right and free.)

      Unfortunately, you have to use it for a prolonged period of time to see the difference. It also helps if you pair with somebody who's comfortable with it, as you can pick up the tricks they use. It's roughly equivalent to the difference between the Windows and Mac UIs. IDEA is polite, deferential, and wants to help you get work done. Eclipse has the same checklist of features, but doesn't have the same attention to usability.

      I think this is especially valuable for people building UI code, be it web, GUI, or whatever. I can certainly get things done in Eclipse, but I have to crank up my pain tolerance to do it. Keeping the ambient level of pain down makes it easier to see UI problems in my own apps, and makes me more willing to fix them.

      Of course, I'd still take Eclipse over any other IDE I've used. Last I did a comparision, it was still far superior to products like Borland's JBuilder, which a friend rightly called RageBuilder.

  106. ODD by WindBourne · · Score: 1

    I could have sworn that Yahoo with its PHP, google with its C/C++ were considered much bigger than any enterprise site, which shows how to really scale a site at a much lower cost.

    --
    I prefer the "u" in honour as it seems to be missing these days.
    1. Re:ODD by FortKnox · · Score: 1

      lower cost? JBoss for the production server, Eclipse and tomcat for development...

      Which costs are you talking about? The only cost I see is man-hours worked.

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    2. Re:ODD by NutscrapeSucks · · Score: 1

      Yahoo with its PHP, google with its C/C++ were considered much bigger than any enterprise site

      Much bigger in terms of traffic, but much simplier. The definition of an "enterprise" app is one that integrates with multiple systems -- application servers, databases, web services, mainframes, etc. Java has tons of solutions to those problems.

      Yahoo is huge, but they are simply splatting some news and stock quotes into a template. Their primary problem is scaling, not complexity.

      So if you are working on corporate systems rather than a big dotcom, what Yahoo uses isn't really all that relevant. And even then, Yahoo even came out and said they'd rather use Java than PHP, but had problems with FreeBSD compatibility.

      (Ignoring the search engines of course, which are their own kind of complexity.)

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    3. Re:ODD by Foofoobar · · Score: 1

      Oh ... scaling. Like Disney and Sprint and Avaya and IBM and Oracle do with their PHP apps. Wow. My question is that if PHP scales so badly, how come these sites that get millions of hits are running it for their entire sites? Hmmm...

      Got news for you buddy, though you been spreading the C# message around the forums, C# only scales as well as it's platform and unfortunately, even Microsoft has to use Linux to handle the load bearing on their front end (not to mention twice the number of required servers to handle the load and even then they crash).

      So don't come in here talking about scaling and praising .NET in every other post when Microsoft has yet to make a server that can scale itself (much less a language).

      Faced.

      --
      This is my sig. There are many like it but this one is mine.
    4. Re:ODD by NutscrapeSucks · · Score: 1

      Apparently your reading comprehension is so poor that you failed to understand the thread was about Java (not .net), and that I stated that PHP works great for huge sites like Yahoo, You, sir, are living proof why PHP programmers are the lowest paid in the industry.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:ODD by Anonymous Coward · · Score: 0

      Disney uses ASP. IBM, Sprint, and Oracle use J2EE. Avaya uses ASP.NET. Where is that PHP scalability again?

      Yahoo! uses PHP only in the presentation tier. All the business logic is done in C++. With J2EE, you can do all your tiers in the same language, one that is much faster to develop in than C++.

    6. Re:ODD by Foofoobar · · Score: 1

      Really? ASP on Redhat Linux running Apache??
      http://toolbar.netcraft.com/site_report?url=http:/ /www.disney.com

      Also try checking out Zend.com's website to sell who is running enterprise level PHP installations.

      You'd be amazed to know how wrong you are.

      --
      This is my sig. There are many like it but this one is mine.
    7. Re:ODD by Foofoobar · · Score: 1

      Oooh... flamed on thread specifity. Ouch. Truly that stings. You are a master of the wit and a demon with your tongue... or so your mom says.

      And actually it's .NET developerws who are paid the least. Haven't you read Microsoft's propaganda? Linux developers cost more and .NET developers cost less.

      Guess you picked the wrong horse again, my friend. But that's ok. I'm sure your mom will pay for a few more years of community college.

      --
      This is my sig. There are many like it but this one is mine.
    8. Re:ODD by Anonymous Coward · · Score: 0

      Disclaimer: I develop enterprise applications -- both heavy-traffic web applications and middle tier business applications with web frontends -- so I know what I'm talking about.

      oracle.com (J2EE):
      Oracle's website runs on Oracle Portal on Oracle iAS, a J2EE server.

      avaya.com (ASP.NET):
      http://esearch.avaya.com/r/results.asp?SITE=com&qu erytext=blah
        1 HTTP/1.0 200 OK
        2 Server: Microsoft-IIS/5.0
        3 Date: Sun, 31 Jul 2005 07:24:24 GMT
        4 Content-Length: 45927
        5 Content-Type: text/html
        6 Set-Cookie: ASPSESSIONIDQCDDRQBQ=...

      ibm.com (J2EE):
      IBM's website runs on IBM Websphere Portal on IBM Websphere application server, a J2EE server.

      sprint.com (J2EE):
      http://www1.sprintpcs.com/explore/ExploreHome.jsp? refurl=uhp_personal_wireless
        1 HTTP/1.1 200 OK
        2 Server: Netscape-Enterprise/4.1

      disney.com (ASP):
      Last but most, if you actually request a disney.com page, you'll hit an Apache server that redirects you to disney.go.com, an IIS server. Observe:
      Resolving www.disney.com... 199.181.132.250
      Connecting to www.disney.com[199.181.132.250]:80... connected.
      HTTP request sent, awaiting response...
        1 HTTP/1.1 301 Moved Permanently
        2 Date: Sun, 31 Jul 2005 07:32:01 GMT
        3 Server: Apache/2.0.40 (Red Hat Linux)
        4 Location: http://disney.go.com/
        5 Content-Length: 229
        6 Connection: close
        7 Content-Type: text/html; charset=iso-8859-1
      Location: http://disney.go.com/ [following]
      --00:32:07-- http://disney.go.com/
                            => `index.html.1'
      Resolving disney.go.com... 198.187.190.83, 198.187.189.83
      Connecting to disney.go.com[198.187.190.83]:80... connected.
      HTTP request sent, awaiting response...
        1 HTTP/1.1 200 OK
        2 Server: Microsoft-IIS/5.0
        3 P3P: CP="CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONi OUR SAMo OTRo BUS PHY ONL UNI PUR COM NAV INT DEM CNT STA PRE"
        4 Connection: keep-alive
        5 Set-Cookie: SWID=...
        6 Cache-Expires: Sun, 31 Jul 2005 07:36:36 GMT
        7 Cache-Control: max-age=300
        8 Date: Sun, 31 Jul 2005 07:32:07 GMT
        9 Content-Type: text/html
      10 Accept-Ranges: bytes
      11 Last-Modified: Sun, 31 Jul 2005 07:31:36 GMT
      12 ETag: "92eec6e1a195c51:936"
      13 Content-Length: 8896

      You'd be amazed to know how stupid you are.

    9. Re:ODD by Foofoobar · · Score: 1

      Omigod! LOL.

      First off, just because they use other tools doesn't mean they don't use PHP, dumbass. What? Do you think that people are as limited in resources as you are in brains. Just because you hand pick servers to show your point doesn't mean that another server out there is strictly LAMP.

      Second, you grabbed a completely different URL (the redirect) for Disney. My first one obviously shows that they are running a LAMP architecture. So again I am right. You just happened to have picked a 'go.com' server (which happens to be in Seattle under the MS shadow) and they still run ASP.

      Third, check out the Zend.com customers page. Zend only makes one product... PHP. And they proudly list their customers with pictures so even illiterate monkeys like yourself can discern who uses their product.

      So again, if www.disney.com, the main portal for disney on the web, is running a lamp architecture and getting millions of ahits a day, how the hell do you figure PHP doesn't scale?

      And I truly am amazed at how stupid I am since, I'm STILL right.

      --
      This is my sig. There are many like it but this one is mine.
    10. Re:ODD by Anonymous Coward · · Score: 0

      First off, just because they use other tools doesn't mean they don't use PHP, dumbass.

      These companies may use LAMP on some piddly internal servers, but they clearly do not run LAMP on their world-facing high-traffic portals. I didn't hand-pick these servers -- I simply used the list of companies you gave me. Not one of them uses PHP on their web site.

      Second, you grabbed a completely different URL (the redirect) for Disney. My first one obviously shows that they are running a LAMP architecture.

      The whole point of the www.disney.com demonstration is that disney.com doesn't server any PHP pages. It simply redirects to disney.go.com, which hosts their portal (and runs ASP). Try it yourself. ANY page you request from disney.com will be redirected to disney.go.com. (The page I requested was http://www.disney.com/ .) Netcraft just gets the server type of the redirecting server, but you and I are smart enough to know that the redirecting server doesn't actually do any heavy lifting, aren't we?

      Third, check out the Zend.com customers page.

      The Zend.com customer page just says that those companies use PHP somewhere. It doesn't mean they use PHP on their high-traffic sites, which is what we're discussing. Indeed, companies like JBoss claim thousands of customers, but most of them use JBoss's server internally, not on mission-critical high-volume servers. Invariably, people buy a real J2EE server for that purpose.

      how the hell do you figure PHP doesn't scale?

      So again, if www.disney.com doesn't actually server any pages (only serves redirects), is running on LAMP and getting millions of hits a day, how the hell do you figure that PHP scales?

      And I truly am amazed at how stupid I am

      So am I. You keep thinking you're right when you're so easily shown to be wrong. There are enough technical reasons for why PHP is unsuitable for high-availability highly-scalable sites to fill a book. It's merely a presentation-tier templating engine, and a poor one at that.

    11. Re:ODD by Anonymous Coward · · Score: 0

      Hmmm ... all silent on the moron front. The zookeeper must have locked up the monkeys for the night. :)

    12. Re:ODD by Foofoobar · · Score: 1

      1. ah I see your logic (if that's what you call it). If you don't see it, it must me incopnsequential... much like your brain tumor. Again, you manage to ignore the fact that Disney.com is strictly LAMP. And while you didn't do the footwork to track down the others, you immediately disqualify them. Yeah, I'm sure Zend puts up partners who just use PHP for about 5 lines of code... that makes sense. Buy a couple thousand dollars of tools and services for maybe 5 lines of code. I'm sure companies do this all the time. By the way, that's irony in case you didn't notice.

      2. Disney.com doesn't serve page? How do you know? Ever heard of redirects? name based virtual hosts? How ignorant are you? And do you honestly think that's their only server besides g0.com? Yeah I'm sure Disney only has two servers... that and go.com and the Linux server ONLY handles redirects... yeah that makes sense.

      3. Yeah, this is your five lines of code argument again. Especially when Zend is backed by Oracle and IBM. I'm sure that major backing by tech leaders is causing Disney and Sprint and Avaya and others to only use PHP for a 'hello world' and nothing else.

      4. Again, you make the assumption that no pages are served off that server just because one URL redirects? Must be that Disney only has two servers huh? Bet they can't afford more.

      5. Again, if ignorance was a bucket of worms, you'd be crawling with them.

      --
      This is my sig. There are many like it but this one is mine.
    13. Re:ODD by Foofoobar · · Score: 1

      Ok, since you are obviously one of the slow kids that fell off the bus, I've done the research for you.

      webticketing.avaya.com - ooh... only their entire support system. That doesn't need to scale at all, does it? I mean how many people could they be supporting at once? 15?

      global.sprint.com - Looks to be administrative login for global sprint communications. This isn't that important. Global dministrative tools aren't mission critical after all.

      jkent.dfw.ibm.com
      jktv2.dfw.ibm.com
      jkwcs.dfw.ibm.com
      jkwcs54.dfw.ibm.com- all of IBM's electronic vendors support. And how many vendors could they have at best... 10? 20?

      And because you are too stupid too notice as well, Zend is helping Disney set up their family fun sites. I'm sure all of two people check that out as well.

      I could go on but your ability to process anything that proves you wrong is in serious question adn I doubt you would be able to process this anyway.

      Do you ever get tired of being wrong, cause I don't get tired of proving you wrong. It's fun to tease the stoopid. :)

      --
      This is my sig. There are many like it but this one is mine.
    14. Re:ODD by Anonymous Coward · · Score: 0

      You're stupid.

      I did the footwork to track down what the other sites are running. Look at the great great grandparent post. http://ask.slashdot.org/comments.pl?sid=157313&tid =156&cid=13206516
      If you think the companies you listed are using PHP for anything substantial, show me the proof. As I've shown, their biggest sites certainly aren't running PHP.

      I have actually seen the intranets for IBM and Oracle. Both of their intranets are also powered by their respective portals running on their respective J2EE servers. The only reason they're backing PHP is to use it as another vehicle for driving database sales. They don't actually use it themselves. I dare you to find one application that either company sells that is written in PHP. For J2EE: IBM Websphere Commerce, IBM Workplace Web Content Management, IBM Websphere Voice Server, Oracle Collaboration Suite, Oracle Financials, Oracle E-Business Suite, etc., etc., etc.

      Disney.com IS NOT LAMP! How many times do I have to say that to get it through your skull. Give me one page on disney.com that you think is served by LAMP. Just one is all I ask. I will request that page and show you where the response really comes from. (Before you try, let me make a prediction. You won't find any. ALL requests to disney.com are redirected to disney.go.com.) I already showed you their main page is always redirected to disney.go.com, which uses ASP to generate pages. I AM NOT saying that disney.go.com is one server. It is quite possibly several servers behind a load balancer; however, all of those servers generating responses are running ASP. It would be stupid to develop the exact same web application in both ASP and another language and load balance across servers running two different implementations. That would be twice the development cost and twice the administrative hassle.

      You're arguing with somebody who has been developing enterprise apps since he was a teenager. I've used PHP and Python and all the other fads. I've evaluated them from the standpoint of enterprise development. Meanwhile, you probably don't even know what connection pooling or messaging services or declarative programming are. I'll give you a hint: PHP doesn't support any of those features.

      How many more times do you want to get smacked around?

    15. Re:ODD by Anonymous Coward · · Score: 0

      Ah. Now you've gone an order of magnitude lower to medium-scale single-function sites. I'll agree that PHP can handle that application (doing simple templating of support database accesses or handling the load of maybe 5 IT adminstrators), but that isn't what we were arguing about.

      How many times have you visted any of the sites you've just now listed compared to the sites you originally listed? Myself, I have visited all of the sites you originally listed several times. I haven't visited any of the sites from the parent post at all.

      How advanced of a server platform do you need to send a couple of flash games to a browser anyway? For now, even that is ASP:
      Resolving familyfun.go.com... 199.181.134.95
      Connecting to familyfun.go.com[199.181.134.95]:80... connected.
      HTTP request sent, awaiting response...
        1 HTTP/1.1 200 OK
        2 Server: Microsoft-IIS/5.0

      You can continue thinking PHP is the cat's pajamas for all I care. I was making more money when I was 20 than you'll make when you're 45. It's fine with me if the field I work in doesn't get overrun by morons.

    16. Re:ODD by Foofoobar · · Score: 1

      The sites originally listed? Duh... moron. I didn't list sites... I listed companies. Companies have many sites.

      Do you get more stupid with each post or is it just you?

      --
      This is my sig. There are many like it but this one is mine.
  107. PHP Cake? by Refrozen · · Score: 1

    Why not PHP with Cake? Basically, an MVC based approach to PHP, plus all the goodies of a clean, rapid app development library.

  108. Python + PHP + XML-RPC by MikeFM · · Score: 5, Interesting

    A solution I like is to write a Python backend that is exposed to the frontend as XML-RPC. Then use the language your designers find easiest to work in for front-end coding.. usually PHP.

    Python is great for the backend because it has good namespace support which helps a lot for big complex programs. PHP on the other hand is well known and extremely easy for doing various web-scripting type tasks. I have a little PHP function that gets called by the PHP server for every page (without needing to be in the code exposed to the PHP coders) that simply passes the page inputs to Python over XML-RPC and puts the response into a global variable. Then the PHP coders jut display the results however needs to be done based on the inputs and outputs.

    Some nice benefits of such a split system is that it's easy to keep UI logic sepperate from application logic and it's easy to split your application up over multiple servers so that it can scale to any load. For example you might have two PHP servers, three Python servers, and a DB server dividing the load. Normal load balancing techniques work just fine for deciding how the machines talk to each other. Pretty nice to be able to just throw another server in where it's needed if you suddenly find a 9/11-type day where your site is getting unexpectedly high loads.

    Of course you can split your processing up in more levels if you need to. I like to abstract out all my queries into their own XML-RPC interface that sits in front of the DB so as to not allow direct access to the DB for security reasons. Anyone trying to hack the DB would have to use my stored queries and work through my XML-RPC interface rather than being able to access the DB directly. If your dealing with sensitive information it's just another layer of protection. If you have to access third-party systems that use some unstandardized method of communicating then it can help to keep your code clean if you create a proxy interface between those systems and your own that speaks XML-RPC. This way the code for speaking to that other system is a completely sepperate code base and your main code base is kept clean.

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    1. Re:Python + PHP + XML-RPC by PhiRatE · · Score: 1

      Another huge benefit of the middleware layer which you didn't outline is the ability to significantly boost the performance of your database layer by storing transient information and cached information in a memcached or equivalent mechanism.

      Without the presence of a middleware layer, maintaining a consistent (and therefore more valuable) cache is more difficult, especially if you have reporting software accessing the database outside the regular web systems.

      A middleware layer that is the exclusive access point to the data is able to ensure its own consistency for transient data and therefore pull it out of faster cached access when practical.

      It is important of course not to store transaction-important data in such a thing, but session information, caches of processed information and regular queries are all relatively easy to transfer to memcached or other distributed shared memory environments for easy multiple-machine consistent caching.

      This reduces the load on your database server signficantly, meaning less iron needed for transaction support (which doesn't distribute nearly as easily).

      --
      You can't win a fight.
    2. Re:Python + PHP + XML-RPC by MikeFM · · Score: 1

      I've found that since XML-RPC is usually transported over HTTP it's easy to use a normal proxy server such as Squid as a cache layer. Just use normal HTTP headers to let the proxy know how to cache the information. Really simple since web programmers should be familiar with HTTP caching already anyway.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  109. My choice is Java by Iloinen+Lohikrme · · Score: 1
    My choice is Java for developing a large scale web-application.

    I have to confess that I haven't yet done/compleated any large scale web-application. Actually I'm developing now one, a data analyzing tool for enteprises, with my friends (a start-up building up). The application communicates with many systems and involves some complex calculations to archieve it's goals. Thought it's not as complex or large as Google, in my mind and experience it's definately larger than your average web-project.

    The reasons why I use and would recommend using Java to develop web-applications are that
    • you can easily build different applications from your source library (web, desktop, mobile)
    • you have plenty of ready technologies and libraries to use (JDBC, EJB etc..)
    • there are lot's of competing Java tools and applications from IDEs to application containers (competition = good)
    • you can be asured that if your Java application works with JVM 1.X it will work with later versions
    • you can aquire new information about Java easily (quite many Java books out there)
    • when you need helping hand, there are plenty of Java developers out there (allmost every university teaches Java)
    • everybody knows Java, it's easier to sell a Java based product to enterprises (even PHBs have heard of J2EE)
    • there are large commercial entities taking care of Java (with IBM and Sun, Java won't be disapering)
    These are just some of the reasons why I use and would recommend Java for developing web and enterprise applications. Personally I like Java as a language because it gives enough freedom to express fairly complex datastructures with ease and has a very readable syntax. Of course sometimes Java can be very brain dead, but that is the price you have to pay. There isn't any perfect language, and Java isn't even close, but it's enough to get the job done, and in the end of the day that is what counts.
  110. MOD PARENT UP! by Anonymous Coward · · Score: 0

    - Valid point, methinks.

  111. Re:What is your definition of compiled and interpr by boner · · Score: 1

    Java compiles byte codes and is deployed as byte codes, PHP is deployed as a script and C/C++ can only be deployed as a program to the webserver. From a developers point of view PHP is probably much easier than C/C++ in the develop-test-debug cycle. That is why I chose to name PHP interpreted.

    While I agree that C# compilation and C++ compilation are completely different, I state in my posting that Java and C# are in-between compiled languages like C/C++ and interpreted languages like PHP. My original posting is therefore correct and we are in agreement on the issue of their compilation.

  112. Lotus Domino & Java by henni16 · · Score: 1

    Actually, you can do some fun stuff with Domino as you can program your WebApps in Java, using either Servlets or even Domino Agents that use the Domino-Java-API (careful with that..).

    I did the Java part for some quite big applications that were part Notes, part Java; example:
    for a big company - already using tons of Notes - we designed the Intranet, associated with a CMS and some workflow managment
    (for example: page changes or publishing of some reports had to be approved or edited by the right persons before going online etc.) .

    So all the data input was done in Notes (personal data, product info, reports,..whatever; even the template for the Webpages could be modified there, complete with an inclusion concept),
    dito of course the workflow stuff.

    The webapp for searching, displaying etc was done with Servlets that used not only the template blocks (edited in Notes) to create web pages according to preferences (edited in Notes);
    also, for some sensitive parts you could easily fall back to the already existing Domino users (>20000) and ACLs to restrict the access.

    P.S. Yes, Domino/Notes sucks (don't get me started on the memory issues in the Java/Corba-API..); but it sucks with some powerful possibilites..;-)

  113. SQL -- C++ -- XSLT -- JavaScript by Anonymous Coward · · Score: 0

    This is the pattern that I have used for a couple of quite substantial applications:

    1. PostgreSQL database. Don't try to get too clever with programing in SQL; a few triggers and views work, but if you find yourself writing pages of plpgsql, think again.

    2. C++ for the logic in the middle. How much of this there is depends on your application. Find or write some good generic interfaces to the adjacent layers. Don't be scared of STL and "fancy" object oriented stuff. A smart algorithm here is what makes "wow" stuff possible.

    3. XSLT to generate the HTML. Hmm, well, this is possibly the bit I'm least happy with at the moment. It is certainly preferable to doing it long-hand. As with SQL, I think that the danger is trying to do too much in this layer. Push anything algorithmic back into the middle bit. Worry about the size of any intermediate in-memory XML documents.

    4. Javascript for anything client-side. Use a library like Sarissa or IE7.js to help multiplatform support.

    Run it all on Linux with Apache2. Don't be afraid to write it as an Apache module, rather than a CGI, if you find that startup time is poor. Use apache modules like mod_disk_cache and mod_deflate. Make sure you generate appropriate cache-friendly headers.

    Don't worry much about optimisation until you've benchmarked the system and found where the bottlenecks are. Consider memory capacity and I/O bottlenecks as well as processing time bottlenecks.

    Good luck!

  114. Anyone use JSF? by Stone316 · · Score: 1

    I'm starting to hear more and more about it lately...

    --
    "Thanks to the remote control I have the attention span of a gerbil."
    1. Re:Anyone use JSF? by MemoryDragon · · Score: 1

      JSF is absolutely great, but has a steep learning curve. If you have a good component set (like myfaces has one) you can get significantly work done in a relatively low time. People first bitched about JSF because they did not see some stuff which they were used to in other frameworks (Action mappings in Struts for instance) but all this stuff is there, but solved more logically. JSF is a wonderful framework and component model, but the learning curve is one of the biggest there is, currently, but hand in hand with that comes a huge flexibility which is not obvious at the first glance. The whole framework is developed like a huge toolset instead of a tight framework, and once you think things become really complicated you find another shortcut the developers have put in there.

  115. Works for Microsoft by ThreeDayMonk · · Score: 1

    It works for Microsoft. Let's face it, their chief asset is ubiquity, not quality.

    --
    If your comment title says 'Re: Foo', I'm not likely to read it.
  116. Are you sure about E-Bay? by psykocrime · · Score: 3, Informative

    saying that E-Bay uses ISAPI / C may be oversimplifying things. I see that some of their url's still include isapi.dll, which does suggest using ISAPI. But they had gone on the public record a few years ago as saying they were migrating to Java / J2EE, specifically IBM WebSphere software.

    http://computerworld.com/softwaretopics/software/a ppdev/story/0,10801,63692,00.html

    I would guess that they're actually using a mix of technologies. Any insiders have any insight they can share? Even anonymously?

    --
    // TODO: Insert Cool Sig
    1. Re:Are you sure about E-Bay? by TPoise · · Score: 1

      That URL and also the really big logo in the upper right hand corner of the site that says Powered By Java/Sun would probably be a hint.

  117. Repeat after me... by Anonymous Coward · · Score: 0

    Real programmers don't care.

    Whatever language is eventually used is chosen is done so by a CSP with a weighting function.

  118. My two cents by MAdMaxOr · · Score: 1

    ASP.net -- Some good ideas, but I like the OSS paradigm too much to go back to proprietary stuff.

    perl, PHP -- Great for small to mid-range stuff. Both excel at library support. Perl with CPAN, PHP with the many built-in functions (yes, they're unorganized, get over it) and third-party modules available. But they don't naturally lend themselves to disciplined structure that a large app requires. I started to feel the stress at around 20k lines in my last web app.

    I'm not sure I can put C and agile in the same sentence. Wow, I just did.

    Java -- All around great once you get up to speed, but man do you have to learn a lot. If you're using a pretty standard "lightweight" stack, you might have to be intimately familiar with Hibernate, Spring, and Struts, all of which have a huge variety of configuration options, gotchas, etc. You try to simplify with AOP tools, and more gotchas. It feels like there's too much software to keep track of.

    Ruby on Rails -- feels halfway between Java and PHP. You get the benefits of that huge Java stack, with more unity and cooperation (and all of the docs in the same place!). The language is very flexible. I'm definitely working it into my smaller web projects, and every time it works, then I feel comfortable using it on a bit larger project. Once I got past the gotchas, I became about 50-100% more productive than with PHP.

    Downside to Rails is the lack of thrid-party libraries, when compared to perl, PHP, or Java. And since we're talking about large projects, its unproven when it comes to scaling. DHH argues that it's boring to scale with rails.

    I have a large web project coming up, and at this point I intend to use Rails for it. I'm going to have to drop out into C, or maybe use web-services RPCs for some of the heavy stuff (notably PDF generation). But I anticipate that the productivity will outweigh the cons.

  119. I will tell you what matters by betelgeuse68 · · Score: 1

    Legacy, whether a company is a *NIX shop or an MS shop. In my experience whether you can walk on water or not, generally has mattered little. Go into an MS shop strutting your *NIX stuff and you're likely to be disliked and labeled as an "icehole" or "arrogant" and everything else. Go to a *NIX shop with MS preaching and you're likely to be seen as a lover of everything "evil" there is about Microsoft.

    Frankly, all these arguments are childish... it's about business folks... something I've said time and time again. Yeah, Google uses LINUX and Yahoo! uses FreeBSD... but outside of all the technical arguments for why they use it, the fact that they don't have to pay any company for an OS license every time they setup a server is a big deal.

    It's about business, simple as that, pure technical arguments rarely win.

    -M

  120. Ruby on Rails? by tmornini · · Score: 1

    I've been hearing a LOT about this lately. What do Slashdoters think?

    --
    -- -- Tom Mornini
    1. Re:Ruby on Rails? by Anonymous Coward · · Score: 0

      I'm in process of getting up to speed on it and will post more, looks amazing so far!

    2. Re:Ruby on Rails? by gattster · · Score: 2, Interesting

      I've been using it professionally for a few months and LOVING it. My experience breaks down like this: PHP 1998-2003 Java(Spring/Hibernate) 2003-2005 Ruby/Rails - 2005-???

    3. Re:Ruby on Rails? by Anonymous Coward · · Score: 0

      I've experience in PHP and JSP. I was interested in an OSS project, and the developer wanted to use Rails. I didn't feel like learning another architecture, so I passed on it. A couple months went by, and I saw Curt Hibb's article on ONLAMP "Rolling with Ruby on Rails" (http://www.onlamp.com/pub/a/onlamp/2005/01/20/rai ls.html). My jaw dropped just skimming the tutorial. I fired up Rails when I got home that night, and was amazed. I've since converted 2 projects to Rails, cutting my code base down (even with adding new features), and the projects are much easier to maintain. I highly recommend looking into it.

    4. Re:Ruby on Rails? by Colol · · Score: 1

      I dig it. I rolled myself a CRM application in a week from zero knowledge of Ruby or Rails, and I'm currently developing an application I'm hoping to launch to the public by the end of next month.

      It's a nice, speedy way to get to whatever ends you want to achieve. Agile Web Development with Ruby on Rails is very helpful so far as getting started goes. Wish it had been around when I was getting started.

      Scalability's a component I haven't dealt with yet, but there are a bunch of high-traffic Rails-based sites out there and servers are cheap.

  121. Don't choose a language, choose a framework. by systems · · Score: 1

    Nowadays, there are plenty of frameworks to create webapps, choose the one you think have all you need,

    Most frameworks have one primary language used to extend the framework

    That what makes the language relevant in your choice, if you will be working on the site yourself, choose the framework with the language you know best, else choose a framework that is exensible using the so called commercial languages, Java or C#; to make it easy to find programmers.
    I can't count the time where I've on programming forums, think like ... "for work I use Java". And the forum would be pro OSS or pro Perl etc....

  122. Hmmm.... by einhverfr · · Score: 5, Interesting

    I actually like PHP for large-scale web apps. However, I agree that many PHP programmers do create unmanageable code. This is, however, a programmer issue rather than a language issue.

    I started writing HERMES (a CRM framework/app) in PHP and it is now over 20k lines and when I have time to add enhancements it will grow again. The code is incredibly manageable simply because the complexity of the application meant that I had to divide the code into four main areas (each handled in different sets of files):
    1) Main engine(s)/UI framework
    2) UI generation code/data input screens
    3) UI event handling code
    4) Core object logic.

    This way, if you want to change the user interface, you just change the user interface. System-wide changes get made in one place where screen-specific changes get made somewhere else.

    Everything is relatively well abstracted, so the code is very manageable.

    Now, other languages have very specific problems associated with them:

    1) Scripted languages in general: slow performance

    2) Compiled languages in general: Requires rebuild before changes take effect, so testing and retesting is slowed down.

    3) Java/.Net/Byte-code languages: Worst of #1 and #2 above.

    4) Python: Performs a little better than most scripting languages, but there are times when its reference-based structure can cause bugs to be very difficult to find.

    5) PHP: Many PHP programmers write readible but unmaintainable code.

    6) Perl: Many Perl programmers write maintainable but unreadible code.

    7) LISP: See Perl only even more so.

    8) ASP. ASP is only really useful in large apps when paired with COM objects written in C++ or VB. So you have the problems with a scripted language combined with the problems of compiled languages.

    But again, many of the worst issues are programmer rather than language issues. Then again, depending on your project, you may have to eliminate possibilities because of language capabilities.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Hmmm.... by NutscrapeSucks · · Score: 1

      8) ASP. ASP is only really useful in large apps when paired with COM objects written in C++ or VB. So you have the problems with a scripted language combined with the problems of compiled languages.

      That was the conventional wisdom. But the fact is you could write OO-ish code in VBScript or JScript just as easily as you can in PHP.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    2. Re:Hmmm.... by einhverfr · · Score: 1

      That was the conventional wisdom. But the fact is you could write OO-ish code in VBScript or JScript just as easily as you can in PHP.

      I am not saying you can't. But the languages don't support certain concepts which can allow large applications to be easily written. The most important one involves code modularity...

      For example, take the following line of code in PHP:

      include($config['ui_dir'] . "/$form.php");

      This allows one to dynamically include any file one might want. Doing the same in ASP is not possible within the basic framework.

      --

      LedgerSMB: Open source Accounting/ERP
    3. Re:Hmmm.... by mla_anderson · · Score: 1

      I would take issue with your comments on Java (no experience with .Net). It's actually got very decent performance, and if done properly the UI portion which gets changed the most can be built in-system so testing doesn't take as long.

      A good multi-tier java web application is very maintainable and with the natural split between data model, view and control the code is easy to understand and to implement. The views (generally JSPs) look almost entirely like the HTML they generate. The control (serlvets) become very straight forward linear "programettes". And the data model (beans) can be very elaborate yet simple to use.

      Combine a java backend with good standards based CSS and possibly javascript frontend and you have one awesome web application that is still quite easy to maintain. Do it the wrong way and you get a mess much like most PHP/Perl/... web apps.

      --
      Sig is on vacation
    4. Re:Hmmm.... by NutscrapeSucks · · Score: 1

      Dynamic includes don't really substitute for COM or other objects, nor do they seem to be a very sound "large application" strategy, so I don't get your point.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    5. Re:Hmmm.... by sterno · · Score: 3, Informative

      But again, many of the worst issues are programmer rather than language issues.

      While that's true, each language has semantics that either encourage or discourage their worst behaviors.

      As far as Java in regards to your comments above. Java's scripted aspects are actually compiled into code and turned into byte code before run. So the first time a page runs, it will be slow because of conversion. Once run the first time it will be as fast as the compiled code.

      As far as the issues of compiled code, development evironments for java really make a lot of this process quite easy. If you make changes to your code that don't require changes to method signatures, just the chunk of code you modified can be re-compiled. In NetBeans, what I use, I just click a button, and my code is ready to test in less than second.

      --
      This sig has been temporarily disconnected or is no longer in service
    6. Re:Hmmm.... by MourningBlade · · Score: 2, Interesting

      6) Perl: Many Perl programmers write maintainable but unreadible code.

      7) LISP: See Perl only even more so.

      Hmm...having read quite a bit of code in modern common lisp packages, I'm going to have to disagree. For the most part, the code was quite readable and understandable. Some of it took a while to get the hang of (Aranaeda, for instance), but this was because what it was doing was large.

      That's the average. On the other side of it I've seen code of blinding clarity that expressed its intentions so straightforwardly that it was amazing. This was done using a system of macros to create the way to describe these things.

      On the lower end I've seen some lisp code that would make you puke, yes, but it's been by far the exception.

      I find that the ability to express things in an ideal way in common lisp and the fact that programming by that method is the easiest one (if you're experienced in it) leads to very clear code.

      Scheme, on the other hand, has been a bit more nasty to me. I have found scheme programs to be a lot larger and quite a bit more complex than their equivalents in common lisp. I think it's mostly because scheme is like talking using small words: it doesn't affect the brilliance of the ideas, it just takes more words to say them - though no one will require a dictionary to understand it, whereas they might with common lisp.

    7. Re:Hmmm.... by einhverfr · · Score: 1


      As far as Java in regards to your comments above. Java's scripted aspects are actually compiled into code and turned into byte code before run. So the first time a page runs, it will be slow because of conversion. Once run the first time it will be as fast as the compiled code.


      Correction-- it will run as fast as compiled byte-code. It will still require all the overhead of the JRE and the translation into machine language. Also note that Python has a similar way of handling this.

      OTOH, something like C and C++ will execute as native code and will have very little overhead when compared to Java. When I say "as fast as compiled code" I usually mean "as fast as compiled machine language" rather than "as fast as compiled intermediary language" which is what Java or Python does.

      --

      LedgerSMB: Open source Accounting/ERP
    8. Re:Hmmm.... by Anonymous Coward · · Score: 0

      so I don't get your point.

      But it's oh so clear that you get bill gates' "point"

    9. Re:Hmmm.... by sterno · · Score: 0

      C will be faster than either C++ or Java, but C++ and Java are on par for most things. The one exception I will note is in the realm of the GUI API's for Java which have an excessive amount of overhead and have always been slow.

      Also with Java, your development time is going to be far lower than C++ because you don't have as much worry about memory leaks, pointers, etc.

      --
      This sig has been temporarily disconnected or is no longer in service
    10. Re:Hmmm.... by FunkyMonkey · · Score: 4, Informative

      20k lines of code? That is miniscule. I've got a mid-sized enterprise system that's got 20k FILES containing millions of lines of code integrating a dozen desparate systems over a network of 50 or so servers. It handles thousands of concurrent users performing transactions - not just viewing content. That's just a mid-sized system. Some large scale systems use clusters of hundreds of servers. Not to bash what you're doing but I think you could use a little perspective on the size of your application.

      I don't care if you've got a freakin army of PHP programmers, you're never going to build a system that can scale like Java.


      1) Scripted languages in general: slow performance

      2) Compiled languages in general: Requires rebuild before changes take effect, so testing and retesting is slowed down.

      3) Java/.Net/Byte-code languages: Worst of #1 and #2 above.


      Don't believe the hype about Java's performance. Today's just-in-time compilers can optimize code as well as hand optimized code and they don't waste resources optimizing paths that don't get executed. There are many benchmarks out there that confirm that Java's performance is comparable to C++ and even better in some areas.

      http://www.javaworld.com/javaworld/jw-02-1998/jw-0 2-jperf_p.html
      http://www.tommti-systems.de/go.html?http://www.to mmti-systems.de/main-Dateien/reviews/languages/ben chmarks.html
      http://java.sys-con.com/read/45250.htm?CFID=29694& CFTOKEN=101A9EF8-9F8D-153A-37A5E0A40D3EE24A

      I agree with your point though, there are a huge number of crappy programmers out there. Good programmers write good code in whatever language they are using.

      So, what is good code?

      IMHO, good code performs well and is easy to understand and use.

    11. Re:Hmmm.... by einhverfr · · Score: 1

      20k lines of code? That is miniscule. I've got a mid-sized enterprise system that's got 20k FILES containing millions of lines of code integrating a dozen desparate systems over a network of 50 or so servers. It handles thousands of concurrent users performing transactions - not just viewing content. That's just a mid-sized system. Some large scale systems use clusters of hundreds of servers. Not to bash what you're doing but I think you could use a little perspective on the size of your application.

      Fair enough, but I don't expect that my code would be any harder to maintain if it were 100 times larger.

      I don't care if you've got a freakin army of PHP programmers, you're never going to build a system that can scale like Java.

      I don't agree with you. Half the battle is to have a computing framework that can scale. This can be the infrastructure of a server farm or a single large system. Many people like Java for big apps, and that is OK. But there are ways of working around any scalability issues you can have on any other environmnets.

      After all, it is very likely that in a transactional environment, your system that will horizontally scale least will be your database system. Everything else can probably be horizontally scalled as much as you want.

      --

      LedgerSMB: Open source Accounting/ERP
    12. Re:Hmmm.... by telbij · · Score: 1

      C will be faster than either C++ or Java, but C++ and Java are on par for most things.

      Don't know where you are getting this, but Java is slower than C++ because all object-oriented niceties are always on. In C++ you only pay for what you explicitly need. The whole point of C++ is if you need the performance, otherwise you are much better off using Java.

    13. Re:Hmmm.... by slumberer · · Score: 1

      6) Perl: Many Perl programmers write maintainable but unreadible code

      If it's unreadable I would have thought that it would also be unmaintainable.

    14. Re:Hmmm.... by noda132 · · Score: 1

      I actually like PHP for large-scale web apps.

      I can't help but think that everybody who says PHP scales simply has never gotten to know Java before. PHP was started as a hack and it's had new features tacked on ever since. Its extensions all have different function naming conventions and argument ordering (pop quiz: which parameter to is_array() is the needle, and which is the haystack? What about strstr()?). PHP4's objects copy themselves at the slightest provocation, leading to all sorts of problems. And while PHP's arrays are handy, they're nothing compared to Java's incredible Collections.

      Obviously, the developers are aware of this, and along comes PHP5. But looking at The changes since PHP4, all you'll find are a whole bunch of changes which make PHP more like Java (oh, and PHP's "unique" overloading and object iteration features, which are truly bizarre).

      I dunno about you, but the fact that PHP's developers are trying to make it more and more like Java leads me to suspect that Java has done something right.

      I interpret your post to say that you worked on your 20k-line project alone; try working in a team in both PHP and Java and you'll understand why people say PHP doesn't scale.

    15. Re:Hmmm.... by Anonymous Coward · · Score: 0

      Of course unreadible is unmaintainable, but how does that help him build his cute little 8-point ignorant stereotype list?

    16. Re:Hmmm.... by jrumney · · Score: 1

      Java has not used "translation to machine-code" for 8 years. JIT compilers compile to native code on the fly and cache the results, continually optimizing based on actual run-time data. In a web application, you are generally running the same code over and over without restarting the JVM, JIT compilation is very efficient under these conditions.

    17. Re:Hmmm.... by fingerfucker · · Score: 1

      I started writing HERMES (a CRM framework/app) in PHP and it is now over 20k lines and when I have time to add enhancements it will grow again. The code is incredibly manageable simply because [...]

      I am sorry. Your code is not managable just because you might have separated it enough, but mainly because your application is most certainly NOT a "large-scale web application". If you wrote only 100 lines of code per each file, your project is mere 200 files.

      I am not discounting the quality of code you may or may not have produced, but 200 files is certainly not a big application...

    18. Re:Hmmm.... by Anonymous Coward · · Score: 0

      "Don't believe the hype about Java's performance. Today's just-in-time compilers can optimize code as well as hand optimized code and they don't waste resources optimizing paths that don't get executed. There are many benchmarks out there that confirm that Java's performance is comparable to C++ and even better in some areas."

      If i run several times the same portion of code (like benchmarks), i think that JIT compilers can make it fast, but with big applications, always-changing execution, the benefits of JIT optimization are lost making those optimizations.
      And JIT compilers tend to use too much memory that slows down any other process running aside.

      Now, on dedicated servers, java can run very well.

    19. Re:Hmmm.... by MikeFM · · Score: 1

      The major problem with PHP is poor namespace support.

      IMO performance is a moot point because almost any language will give you reasonable performance on todays hardware and a well written app can easily be divided across multiple machines.

      Using compiled languages seems quaint IMO. Like gee you have to compile it before you can see if your minor change fixed it or broke it wide open? How lame is that.

      Pick the best tool for your specific job and things will be fine. Don't pick tools based on what magazines tell you is what REAL companies would use.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    20. Re:Hmmm.... by MikeFM · · Score: 1

      I wouldn't use PHP for millions of lines of code but I hardly think Java is that great either. In general it is way to verbose a language which makes it only slightly better than languages with poor namespace support such as PHP. Java is good for certain types of problems that require fast processing but aren't very sensitive to load time or memory usage. In some of those tasks it can process almost as fast as native C compiled apps.

      Almost any programming language can be used for scalable apps if that's all you need. The real pain is in writing maintainable apps. 1,000,000 lines of Perl for instance would make me commit suicide whereas 1,000,000 lines of Java is more managable. Still the same 1,000,000 lines of Java could be reduced to 500,000 lines of Python or Ruby and still be as easy to manage. Python or Ruby load faster and use less resources but usually (without special effort) can't run code quite as fast as Java.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    21. Re:Hmmm.... by wangii · · Score: 1

      That's true. Lake of supporting namespace is a big problem for PHP. But my point is, only because of without those considerations, developers can use PHP finish a project so fast (well, medium- project).

  123. Re:What is your definition of compiled and interpr by Desert+Raven · · Score: 1

    PHP is as interpretted as Java and C# are. It uses a 'Virtual Machine' just like they do

    Wrong. PHP is interpreted. Java is partially compiled. It may seem a small difference, but it's big difference in performance. With PHP files, the file is interpreted from scratch, every time, including syntax checks, etc. With Java files, part of this is done the first time the file is run, then never again unless the file changes.

  124. My recommendation... by Anonymous Coward · · Score: 0

    I recommend Esperanto...

  125. I make my money doing this by Qbertino · · Score: 1

    and I say there is more than one way to do it.

    If your building from the ground up you should stick to one technology, and one only. It's more scalable in the long run, even if you'll have to write stuff the plattform hasn't got yet.

    These comply to what you need:
    Java
    Python
    PHP

    PHP is the most advanced SSI solution in existance, but can suck for larger specific apps. PHP 5 has changed that, but you still want to keep this problem in mind.

    Java has something like 10 Million webappserverwhatnot solutions available - check apache to see what I mean - but has one downside: It's not pure OSS. And this IS a downside if you're into large scale custom developement.

    Python has Zope, which is something like 5 years ahead of any other web application server/database out there. It's object database is a slowpoke by relational standards, but loadbalancing with Zope Farms is a piece of cake. And the ease of developement and the absence of ancient SQL crap make data drive development a trip to the theme park. You definitely want to check this out.

    I'd recommend Python/Zope based on what you said, but of course you'll have to look into the details.

    --
    We suffer more in our imagination than in reality. - Seneca
  126. Currently Java by Fujisawa+Sensei · · Score: 1

    Cuttently using Java, JSP on the front end and Middleware being Spring/JDBC. Hibernate can't handle the query's we're going to have to write.

    In the past I've done ASP VB/JavaScript, and TCL. I help other out with they're PHP stuff.

    --
    If someone is passing you on the right, you are an asshole for driving in the wrong lane.
  127. Good approach by ThreeDayMonk · · Score: 1

    I've used the same approach, albeit with a Ruby backend:

    PostgreSQL <-> Ruby <--SOAP--> PHP

    PHP is a reasonable templating language, which is really what it should have been all along. The business logic goes into something saner and more maintainable, and everyone's happy.

    Don't get me started on the problems of SOAP interoperability, however. Each implementation has its own quirks and foibles. I'd have chosen XML-RPC, but my boss was enamoured with the SOAP buzz....

    --
    If your comment title says 'Re: Foo', I'm not likely to read it.
    1. Re:Good approach by MikeFM · · Score: 1

      I agree that PHP is great for what it was really designed for.. templating and light web scripting. It gets painful only when you try to implement a lot of app logic in it and a lot of that is just because PHP programmers tend not to have any sepperation between their frontend logic, app logic, and db logic which is something of a nightmare for big programs.

      I like XML-RPC. It's simple enough to implement and gets the job done just fine. Each implementation still has it's little quirks but I've not had any problem adjusting to them.

      Really your choice of languages isn't that important so much as how you choose your language. Something with good namespaces and object support for the app logic and something easy to use and modify with good string handling for the frontend. As long as they all speak XML-RPC you can mix and match for whatever works best for your individual tasks. It might be fun to implement some sort of knowledge base in something like Prolog and expose it as XML-RPC. A heavy duty portion of your app logic might be done best in Java. Lighter app logic can be done well in Python or Ruby. You could use Perl for an interface that does a lot of string parsing such as exposing a credit processing interface as XML-RPC. And of course you can provide interfaces as PHP or even as Javascript if you wanted a more dynamic (AJAX) interface.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  128. Java? Sweet? by ThreeDayMonk · · Score: 1

    Ruby on Rails is just so sweet, just like the original Java alpha was all those years ago.

    Bah! I tried the original Java back in nineteen-ninety-whatever. It sucked then, and I haven't been back since. (Yes, I know it's improved since, but that initial exposure prompted me to take my focus in other directions.)

    Ruby, on the other hand, is a lovely language, although the speed issue has caught me out a couple of times.

    --
    If your comment title says 'Re: Foo', I'm not likely to read it.
  129. C++ best choice for larg-scale apps by Anonymous Coward · · Score: 1, Informative

    With confidence I can say that C++ is the best choice of a language for developing large-scale applications. As any experienced developer know there are numerous reasons: portability, scalability, performance, etc. etc.

  130. Visual FoxPro and West Wind Web Connection by codered82 · · Score: 1

    I've had a lot of success over the last 3 years developing in Visual FoxPro and West Wind Web Connection. I've created large web apps for everyone from Real Estate to Medical Clinics to Publishing. It allows me to have multiple apps running on the same server and scales very well. I've used my share of php/mysql, but this has been my dominate language for the last year or so.

    --
    History does not long entrust the care of freedom to the weak or the timid. ~Dwight D. Eisenhower
  131. Everything, huh? by LibertineR · · Score: 4, Funny
    And people wonder why geeks dont get laid.

    It is Saturday, and instead of being out in the sunshine, taking in rays, talking to women, GOING OUTSIDE, here we are, in front of our screens debating about which language to build our web apps with? Can we suck enough?

    Dont bother replying, because when this damn compile is done, I am going outside if it kills me. I wont be here to read any replies, dammit.

    1. Re:Everything, huh? by cornface · · Score: 1, Funny

      I wrote a perl script to go outside once.

      It worked!

    2. Re:Everything, huh? by LibertineR · · Score: 4, Funny

      Thats funny. No, the fuckin compile broke. I'm still here.

    3. Re:Everything, huh? by Jeremi · · Score: 4, Funny
      and instead of being out in the sunshine, taking in rays, talking to women, GOING OUTSIDE, here we are, in front of our screens debating about which language to build our web apps with?


      The problem with talking to women is that so few of them have anything interesting to say about whether or not C++ is better than Perl... ;^)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    4. Re:Everything, huh? by Anonymous Coward · · Score: 0
      Dont bother replying, because when this damn compile is done, I am going outside if it kills me.

      Well with all the lightning I'm seeing outside, it just might. I live in South Florida, we don't see the sun that much (compared to other times of the year) in the summer. And even if it wasn't raining right now, I get my tans in the winter when the temps are better suited to sunbathing, mid 80's and lower humidity.

    5. Re:Everything, huh? by fcw · · Score: 1
      The problem with talking to women is that so few of them have anything interesting to say about whether or not C++ is better than Perl... ;^)

      Yeah, but the ones that do have something to say are hot.

    6. Re:Everything, huh? by telbij · · Score: 1

      The problem with talking to women is that so few of them have anything interesting to say about whether or not C++ is better than Perl... ;^)

      I'd be surprised if any geeks have anything interesting to say on the subject either.

    7. Re:Everything, huh? by bluGill · · Score: 1

      I am outside. Just finished supper on my deck, and enjoying the cool of the evening.

      Most geeks own a laptop and WiFi (at least most of us done with school), so we can be outside.

      Sadly there are no women with me.

    8. Re:Everything, huh? by PsychoBrat · · Score: 1

      And people wonder why geeks dont get laid.

      Nerds don't get laid. (i.e. the sort that scoff at the idea of making something user-friendly because it's not only its developers that will eventually use it!)

      --
      Invisible to moderators.
    9. Re:Everything, huh? by Anonymous Coward · · Score: 1, Informative

      I just asked a female. She said pearls were definitely better than a C+.

    10. Re:Everything, huh? by Anonymous Coward · · Score: 0

      The problem isn't that we don't have anything interesting to say about it.

      We're just not interested in saying it _to you_.

    11. Re:Everything, huh? by Anonymous Coward · · Score: 0

      And people wonder why geeks dont get laid.

      Geeks are the only ones who wonder. Everyone else knows.

    12. Re:Everything, huh? by Pseudonym · · Score: 1
      It is Saturday[...]

      I live in Australia, you insensitive clod! Lots of things are closed on Sundays.

      and instead of being out in the sunshine [...]

      I live in the Southern Hemisphere, you insensitive clod! It's the middle of Winter.

      And people wonder why geeks dont get laid.

      It's because I have kids, you insensitive clod!

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    13. Re:Everything, huh? by damyan · · Score: 1

      Well if you're in NSW the weather today was lovely! Not all that wintery at all...

      (dammit, I still spent most of saturday in front of my computer though)

    14. Re:Everything, huh? by MikeFM · · Score: 1

      Some of us have alreayd been laid several times and are taking a break.. thanks for asking.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    15. Re:Everything, huh? by Brandybuck · · Score: 1

      Funny. It's monday morning at work as I read this. Maybe YOU are spending your saturday mornings posting about Slasdork, I'm not.

      --
      Don't blame me, I didn't vote for either of them!
  132. Re:Use ASP If You're A Microsoft Shop by Anonymous Coward · · Score: 0

    You are right, but _NOT_ the queries you used, before submitting links atleast check your results...

    ASP http://www.google.com/search?q=site%3Amicrosoft.co m+filetype%3Aasp&hl=en&lr=&as_qdr=all 1,050,000 Matches

    ASPX http://www.google.com/search?q=site%3Amicrosoft.co m+filetype%3Aaspx&hl=en&lr=&as_qdr=all 793,000 Matches

  133. Actually, eBay uses Java. by markv242 · · Score: 4, Informative

    The only reason people think they use ISAPI is because that's what they originally used, and an executive decision was made to not break any existing links at any time, ever. Check the Powered by Java image. The /ws/eBayISAPI.dll that you see in all of the requests just invokes a servlet.

  134. Pike by jlo · · Score: 1

    Interesting that nobody has mentioned Pike. It's a very nice interpreted OO-language with C-like syntax. Here are some apps developed with Pike, including the Roxen WebServer.

    --
    To steal my idea you'd have to make me forget it. Otherwise you'd just be copying it.
  135. PHP SCALES!!!! by Anonymous Coward · · Score: 0
  136. Re:ColdFusion runs one of the top 5 internet Site. by dpd_30 · · Score: 1

    As far as scaleing CF runs the number 5 site on the internet MYSPACE.COM. CF is very fast for development. It currently runs on CF 5 and is moving over to New Atlanta's Bluedragon .Net implemtation of CFML. On the question of CF's future I don't see that as an issue there are now 3+ other implementations of CFML by other companys. 2 in full release Coral and BlueDragon. Coral is a desktop implementation and BlueDragon is a full J2EE and .NET implemtation of CFML. It is the fastest and easyest language to build and consume web services. And easyest for publishing content to the web. If you need heavy lifting that you want more speed you can develop directly in java or .NET or C or C++ and make calls to that from CF.

  137. Perl and C++ by Dog135 · · Score: 1

    Almost all my home programs are written in Perl or C++. Perl gives me great tools to write quick programs on web or the CLI. C++ gives me sheer speed and control.

    One of these days I'm going to learn how to make web pages with C++. Though I have a feeling I'm better off sticking with Perl.

    Speed wise, isn't Perl one of the fastest script languages? (vs PHP, etc)

    --
    "That's so plausible, I can't believe it!" - Leela
    1. Re:Perl and C++ by jadavis · · Score: 1

      Speed wise, isn't Perl one of the fastest script languages? (vs PHP, etc)

      Perl is fast for many things. In the end, it basically comes down to how much built-in functionality you're using vs how much you're writing. If it's less code, that means it's probably using more built-in, optimized functionality, and it's probably faster.

      If you wrote everything from the ground up in perl, python, ruby, etc, it will probably be slow. But if you make use of the built-in facilities and C libraries, they'll all be fast.

      In java, many of the libraries are written in Java. That shows you how fast java is: it's java all the way down to the core, and yet it still is very fast for many things.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    2. Re:Perl and C++ by Unordained · · Score: 2, Insightful

      Last time I tested speed (very simple timing of a large increment loop), ... compared to some simple C/C++ (at this point, the difference is moot) ... perl, php, and python were all in the range of 1/10 to 1/14 the speed of C (pretty much equal.) Ruby was 1/40, which ... sucked. But that was ... let's see ... four years ago? And a really icky way to test speed anyway?

      But really, it doesn't matter. You can write good and bad code in any of them, and raw looping speed rarely matters. Most of our apps are just glue, talking to databases, networks, files -- all bottlenecks. The CPU isn't our problem. And where speed does matter, pretty much all of these languages rely on C libraries that -are- speedy. Most of them seem to compile to some form of bytecode at the very least, and will cache that bytecode to avoid a recurring cost.

      These days, we pick languages more on features and libraries than speed. And most people just pick by features, because they're not interested in building -new- architecture where features matter. I still am, and C++ does that for me. But for web apps? I'm not coding architecture with really neat stuff going on ... I just want to grab from a db and spit it out. PHP does that for me, so it's fine. Perl would too. So would python, and ruby, and probably COBOL if I were willing to ever do that again. I think the only reason I went with PHP was the db function set, and that's not much to go by, considering that most of these languages rely on similar/same C libraries, so it's just a matter of time before they all have the same library features -- just the time required to write wrappers to make C functions available in the scripted language itself.

      If you do write web-apps in C++ ... apache modules aren't that bad, but there's a certain amount of "getting started" cost. Find yourself a good set of CGI functions if you're doing it the CGI way -- C++ doesn't hand you your $_POST stuff neatly the way PHP does. Beyond that ... meh? It's pretty much all the same.

  138. You're way behind by Anonymous Coward · · Score: 0
    the most expensive component of software (for all but the biggest Web apps): programmer time.

    Back in the 1990s that was probably true - programmers worked in OECD countries and made good money.

    Now, programmers work in India and China and think themselves lucky to get 20 yuan a day (in China). The cost of programmer time is no longer important. Marketing costs much more.

  139. Re:Use ASP If You're A Microsoft Shop by wk633 · · Score: 2, Insightful

    ASP is a better environment than ASP.NET???

    I don''t normally ask things like this, but are you on crack? I have worked with both ASP and ASP.NET. No way in hell would I pick to do a new site in ASP over ASP.NET unless there were overwhelming reasons to do otherwise.

    significant training to learn .NET's arcane vocabulary and squirrely architecture

    Any web developer worth anything will take to ASP.NET like a duck to water. Same goes for J2EE or PHP or anything else. And any developer worth anything will understand and appreciate the seperation of code and content that ASP.NET provides.

    Disclaimer: I'm as anti M$ as anyone on /., but I refuse to let religion cloud my view on a good technology.

  140. Think database and architecture by tootlemonde · · Score: 1

    The language you use for development isn't so important as the database you use and project's architecture.

    In general, the most flexible architecture is lots of small modules that interact with the database. These modules may initially be written in one language but over time may be rewritten in various languages, depending upon performance requirements and the evolving skillset of the staff.

    Pay careful attention to what functionality you can put into the database's stored procedures. Stored procedures can provide a standardized and simplified interface to access the content of the database and solve some of the performance issues.

    Concentrate the complexity of the design in the database as much as possible. Document the interface well. Then chose whatever development language the staff is comfortable with.

  141. Java by kisrael · · Score: 1

    I get paid to program Java.
    Sometimes for the web.
    But whenever I see a popular site with incredibly slow response times (early Friendster, several inranets) there's a 3/4 chance that I'll look up to the URL and see a .jsp or .do that indicates it's a Java site.

    And PHP is showing up more and more often...when I looked at it in 1992 it seemed definately not ready for prime time, bug-wise, and even weird conceptual stuff like having to reset an array to walk it twice, but now it seems to be making huge strides. I prefer Perl, but there is something neat in how all the libraries are RIGHT FRICKIN' THERE with PHP.

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  142. Fortran by herve661 · · Score: 1

    for everything. Fast and reliable.

  143. where is java in use? by bad-badtz-maru · · Score: 1


    I see suggestions to use Java but I'd be hard pressed to come up with an example of a large scale web site that uses Java. Perl and PHP are all over the web. Amazon, Yahoo, Sportline - sites that get serious traffic.

    1. Re:where is java in use? by Eternal+Cynic · · Score: 1

      walmart.com is Java-based; there was an article on theserverside.com a while ago about their process for upgrading from Java 1.4 to 1.5.

    2. Re:where is java in use? by Anonymous Coward · · Score: 0

      amazon uses java and oracle for the transaction processing using a middle tier. due to the volume of traffic amazon gets, they pregenerate pages, so it's served up statically. it's called being smart and building scalable applications. go ahead and try to build a transaction monitor in PHP and Perl. unless someone writes a top notch transaction monitor for Perl and PHP, it simply won't scale to support amazon's traffic.

  144. Java for Gmail...? by loyukfai · · Score: 1

    Heard and knew that Gmail uses a lot of JavaScript and XMLHTTPRequest (the so called "AJAX" thing). But the underlying codes are in Java or it's running on a Java platform is unheard of...

    Somebody please advise...

  145. The Endless Debate by i_ate_god · · Score: 1

    And here is my take on it...

    Most of the well known languages, if not all, have proven themselves as enterprise ready, because they are used in enterprise level applications. These languages can be used efficiently and cleanly, and applications can be built with them that are scalable, portable, maintainable, ect.

    There is no "best" language. Everyone will come up with valid arguements to support their personal preference. This is like argueing whats better, a Lambourhini Diablo or a Ferrari F50. The dragsters will tell you the F50 because it has faster acceleration, the racers will tell you the Diablo because it is faster. So which one is the better car?

    This question is a failure. It has been asked so many times and there never has been a clear answer, though I'm sure many will respond to this with a "THERE IS A CLEAR ANSWER YOU IDIOT, USE [insert language here] BECAUSE [insert reasons here]". Meh...

    --
    I'm god, but it's a bit of a drag really...
    1. Re:The Endless Debate by DemonSlayer · · Score: 1

      True, there are no "best" language, just good/bad programmer and good/badly design applications.

  146. You forgot Poland! by Anonymous Coward · · Score: 0

    You forgot Poland!

  147. Multiple Languages by yintercept · · Score: 1

    I find that using multiple languages helps enforce the n-tiered architecture. One architecture I like is to wrap an Oracle Database in a layer of PL/SQL objects, then to generate the web pages with PHP or Java. PL/SQL seems optimized for scribing business rules. PHP is optimized for generating web pages. Using two languages seems natural.

    Having two languages involved forces a cleaner separation of the layers.

    In the real world, we often end up interfacing with applications written in a wide variety of languages. Designing web applications with a variety of languages makes the system more robust.

  148. TCL and AOL server by Anonymous Coward · · Score: 1, Insightful

    Read AOL's documentation for their opensource AOL server. Yes, AOL, the big company.

  149. Re:What is your definition of compiled and interpr by Foofoobar · · Score: 1

    Wrong. PHP has the ability to be compiled prior to launch. You have the OPTION to compile before it is interpreted or not. Most people just use the default which happens to be interpretted but saying that PHP does not have this ability is incorrect.

    --
    This is my sig. There are many like it but this one is mine.
  150. Learn by example? by hedgehog2097 · · Score: 1

    What do Ebay, Google (let's insert Amazon in there too) and Microsoft's web sites actually use?

    (I don't know.. I'm just asking...)

  151. eBay, Technorati, Simpy, Indeed, etc. by otisg · · Score: 1

    I thought eBay used Java, no?
    Technorati uses Java and is pretty big [1].
    Simpy [2] uses Java.
    Indeed [3] uses Java.
    All 3 use Lucene [4] (Java search engine)

    [1] http://www.alexa.com/data/details/traffic_details? q=&url=technorati.com
    [2] http://simpy.com/
    [3] http://www.alexa.com/data/details/traffic_details? q=&url=indeed.com
    [4] http://lucene.apache.org/

    --
    Simpy
  152. Re:What is your definition of compiled and interpr by i_ate_god · · Score: 1

    How can PHP be compiled? I have never seen this feature. It almost sounds like the PHP to C++ translation thing.

    --
    I'm god, but it's a bit of a drag really...
  153. Re:WebObjects (DON'T!) by Anonymous Coward · · Score: 1, Interesting

    WebObjects (still) can't handle even medium stress without an insane amount of machines and machine power. Also, it is (again still) full of strange edge case bugs that pop up when you least want it. Apple can afford to run their stuff on it, because they can throw insane amounts of machines at it, and they have the source code so they can fix the bugs they encounter. No such luck for most of the rest of us.

    Add to that, that WO costs money, is closed source, and good luck getting any support whether you've paid for it or not... it's not a very good deal.

    It is kind of bad though, because the idea and architecture behind WO makes more sense than most things from a developers perspective. It is fun and fast to develop in and the tools are good. It's just that in the end, it usually won't work because of something intricate... or just that the machine dies under load. Oh, and the build systems use tons of magic, so if anything breaks (or you just upgrade WO)... you probably will have to start over with a new project. And so on, and so on...

    Don't take my word for it, see any relevant (non-Apple controlled) mailing list or forum.

    Some other poster mentioned Rails, and I have to agree on that, so far. It builds somewhat on the same idea, but better - this is simply next generation. What lacks there is actual builder tools, but they aren't as needed. It still may need some maturing, but unlike WO it is actually doing that constantly, which is a plus. =)

    If you really like WO, I seem to recall other alternatives like Tapestry as well.

    Oh well, just don't say you haven't been warned... WO is a great idea in theory, but hopeless for any practical use.

  154. PHP and Java by Aldric · · Score: 1

    For small or medium applications, I'd use PHP. I find it more productive. For large applications I'd use Java, simply because it's more maintainable using design patterns. I suppose design patterns could be applied to any object oriented language but it's usually best to use a tried and true development technology.

  155. Re:What is your definition of compiled and interpr by Anonymous Coward · · Score: 0

    caching

  156. Java + Open Source = Some Good by YumYumClownMonkey · · Score: 1

    I do a fair amount of development, and I like using:

    Apache
    Jakarta Tomcat
    JBoss
    MySQL

    I'd like to say I also use Linux, but my company doesn't care for it as much as Windows, so I'm usually stuck putting this stuff on Win2k3, which isn't really a bad option - Of the security holes in Windows, half are in IIS, half are in SQL Server. The other half are in the OS itself. (Gotta love Yogi!)

    I don't like to do alot of client-side scripting in the web pages, but when I do, I stick to JavaScript and Applets. The nice thing about this setup is that you only need to learn 1 & 1/2 languages, (SQL counts as 1/2.) JBoss handles scalability with EJB's, and Tomcat handles the rest of your business logic.

    It should also be noted that paying for some of the non-open alternatives to these platforms is just silly - Yeah, you can use WebSphere or WebLogic for your App. Server parts, but you're STILL using Tomcat, you're just not paying for it! Under the hood, they're both just using Tomcat, under the auspices of the Apache Software License. (More liberal than the GPL, the ASL permits you to rip off their code, and not even include the source, provided you just ADMIT to it!)

    As for an IDE, I'm sorry I can't help you. I use emacs, (well, TextPad in MS Windows,) as my IDE. Frankly, IDE's are for p#$$!3$.

  157. Problems with Java by arevos · · Score: 1
    But for web development, Java is generally the right choice for the backend. Lots of competent people available who will require no learning curve.

    I'll have to disagree somewhat with this. Firstly, I have to take issue with the premise that because a language is well known, you can hire more competant people. For a competant programmer, the time needed to learn a new language is negligible. A competant python programmer, for instance, will be a competant java programmer.

    The other difficulty I have with Java is the syntax. Java is a low level language, and thus generally unsuitable for tasks where a high level language can be used. Java's use of primatives and its reduced syntax are perfect for applications such as J2ME, but on more advanced architectures, this low level behavior becomes more of a hinderance than a benefit.

    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).

    Now this I happen to agree with. Java has a lot of good tools, and most are very robust. I wouldn't really class them as a step ahead, as RoR seems a more efficient development environment, but Hibernate and Java servlets seem pretty good for designing large, complex systems.

    If you combined these tools with Nice, I'd agree further. Nice is a high-level programming language that compiles into native Java bytecode. With Nice, one gets all the benefits of the Java library, along with the advantage of working in a strongly typed, high-level language with similar capabilities to Ruby or Smalltalk.

    That all said, for the majority of web applications, RoR seems the better choice.

    1. Re:Problems with Java by Jicksta · · Score: 1

      Java is a low level language, and thus generally unsuitable for tasks where a high level language can be used.
      I can't believe you just said that. I'm sorry, but you've just ruined any credibility you may have had to discuss Java ever again. From the Wikipedia defintion of High-level programming languages: "A high-level programming language is a programming language that is more user-friendly, to some extent platform-independent, and abstract from low-level computer processor operations such as memory accesses."

      Can you possibly think of a more HLL than Java? That description couldn't fit Java better. Hell, that page even uses a comparison between Java and ASM! Where the hell did you get this Low Level Language shit? I know. From the tasty propaganda everyone loves.

      Moving along...
      Java's use of primatives and its reduced syntax . . . becomes more of a hinderance than a benefit.
      I hear this all the time and it's completely wrong. As of Java 1.5, Sun has implemented a handy feature called "Autoboxing" and "Autounboxing" which makes primitives and their object wrappers intercompatible. What does this mean exactly? Here's an example:
      private void foo(Integer i) {}

      public static void main(String[] args)
      {
      foo(10);
      Integer y = 3;
      Integer x = new Integer(3);
      System.out.println(x > 1);
      System.out.println(y++);
      }

      When using a Java 1.5 compiler, all this is perfectly legal. How, you ask? Java's autoboxing will automatically wrap and unwrap primitives as needed. So, Arevos, you were talking about a "hinderance"? Sorry, once again, that's bullshit.

      I swear, the amount of anti-Java horse shit flying through the airwaves is enough to drive me insane.
    2. Re:Problems with Java by Mysteray · · Score: 1
      Can you possibly think of a more HLL than Java?

      Um, how about Haskell?

    3. Re:Problems with Java by Ian+Bicking · · Score: 1
      Java is high-level compared to C, but compared to any modern programming language it is distinctly low-level. This includes even C++. Java has almost no metaprogramming abilities. Instead it needed Aspect Oriented Programming to accomplish what real high level languages have built in. AOP is about as elegant as doing high-level programming using C macros -- it has to resort to brutally low-level transformations (on the source and bytecode level) because Java doesn't support syntactic or even good object-level abstractions.

      Here's a good rule for what a HLL is in 2005: In a high level language you will not need to automatically generate source code to express your programs in a concise way.

      As a specific example, what Hibernate does with source code generation and tons of XML configuration files, other programming languages can do purely with programmer-written source code.

      When using a Java 1.5 compiler, all this [autoboxing] is perfectly legal. How, you ask?

      Why, no, I wouldn't ask that. In high level languages this isn't and has never been an issue. Java is working hard to get caught up with Smalltalk-80. Shiny new features like generics just look like arcane cludges to those of us who do use HLLs.

    4. Re:Problems with Java by arevos · · Score: 1

      I can't believe you just said that. I'm sorry, but you've just ruined any credibility you may have had to discuss Java ever again.

      Aside from being a professional Java developer? I use Java more than I use any other language, but that doesn't mean that I am blind to its flaws. Compared to other languages, Java is low level, though admittedly a little less so with 1.5. I shall explain my reasoning in a moment.

      Can you possibly think of a more HLL than Java?

      There are many languages that can be considered to be higher-level than Java, although I suspect you have not had experience with any of them. The best way to illustrate this, then, is to point out the features that Java lacks:

      A complete object model:

      Java has an incomplete object model. Yes, even with autoboxing, which is a nice little workaround that solves most of the primative problems pre-1.5 Java had, but it a workaround never-the-less. Consider, whilst in Java I can do this:

      Integer x = 3;
      String y = x.toString();

      In a truly OO language, like Nice, where everything is an object, I can do this:

      String y = 3.toString();

      The latter piece of code is, of course, not possible in Java. Now, whilst this is a trivial example, it does demonstrate that Java is not truly OO. A theoretical technicality, you may very well reply. Well, hang on a moment and lets get to some more juict bits.

      Higher order functions:

      Higher order functions are a way of treating functions, or methods, if you prefer that lingo, as variables. Higher-order methods can be passed as arguments, or returned as the output from other methods. Another feature that goes hand in hand with this is anonymous methods.

      What practical use do anonymous methods have? Well, recently I came across the need to use a tree data structure in some of my code. It so happened that I required the ability to recursively iterate over all of nodes in the tree. This task is made much simpler with the use of higher level methods:

      class Tree {
      int value = 0;
      Tree[] children = [];

      void each(Tree->void method) {
      method(this);
      for (Tree child : this.children) {
      child.each(method);
      }}}

      Now what if I wished to find the sum of all of a tree's values. Well, in Nice I can do thus:

      // Create a new tree
      Tree t = new Tree(value: 10, children: [
      new Tree(value: 3),
      new Tree(value: 4, children: [
      new Tree(value: 23) ])
      ]);
      // Find the total of all the vales
      int total = 0;
      t.each(Tree tree => { total += tree.value; });
      println(total);

      Neat, no? Granted, without indentation it's tricky to follow (stupid slashdot ecode), but I hope you can appreciate the power of anonymous methods. They're like anonymous objects, but without the bulk.

      Multiple inheritance

      Need I say more? Most high level languages support this, or the equivalent thereof. Python supports multiple inheritance. Nice supports interfaces that can contain methods; Ruby calls this feature "mixins".

      The practical benefit of this is obvious, of course. Just the other day I was going through the sourcecode of HTTPUnit, and noting the amount of copy-and-pasted code where multiple inheritance would make such redundant

      Value dispatch

      In Java you can overload methods based on type. In Nice you can overload methods based on value:

      String foo(int x) = x.toString();
      foo(1) = "one";
      foo(3) = "three";
      void main(String[] args) {
      for (i : 1..3) {
      println(foo(i));
      }}

      And the output:

      one
      2
      three

  158. Some of us build more than one app. by LibertineR · · Score: 2, Insightful
    Code reuse, baby.

    Some of us want to consume services from other apps.

    Some of us dont want to reinvent the wheel every time we code.

    Design Patterns, baby.

    I could go on, but I know I am typing to deaf eyes.

  159. JSP/Tomcat Sucks by N8F8 · · Score: 1

    Running your enterprise app on Tomcat is like building your house out of crepe paper. Sure it can be elegant but sooner or later the rain is gonna come.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
    1. Re:JSP/Tomcat Sucks by Anonymous Coward · · Score: 0

      I guess that is why Walmart's website sucks so bad and doesn't scale... It runs compeletly on tomcat...

  160. Pfft by defile · · Score: 2, Insightful

    For small web site, it really doesn't matter.

    Same is true for a large site.

    A good way to define "large site" is "beyond the hardware capabilities of a single computer". For example, if you made a hand optimized assembly version of Slashdot that had its own network driver, TCP/IP stack, etc. its load would still probably be beyond the role of any one commodity computer.

    When you throw this kind of a load at computers, many basic assumptions start to break -- you inevitably exercise a use case that is quite uncommon with no off-the-shelf solution that fits the bill quite right.

    Of course, since large sites mean big business, vendors want you to believe that their solution can grow towards infinity. But don't be fooled: there are no silver bullets.

    Getting into a religious war over what RDBMS, language, OS, etc. to use is pointless -- you just cannot avoid refactoring/rewriting major chunks of a project through its lifetime. It is undeniable.

    Better to pick what your group is most comfortable with and just take it from there.

  161. Re:What is your definition of compiled and interpr by senzafine · · Score: 1

    php can be cached into bytecode. very similar to jsp pages on a first run basis. there are a few op code caches available for php including one from zend (which costs money) and a few free ones such as mmcache (which we use at FotoFlix and it's great).

    --
    Better than Flickr - Manage, Share, Archive
  162. VHDL? by rthille · · Score: 1

    Or what ever they use to program FPGAs...

    Ok, weak joke I know.

    --
    Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    1. Re:VHDL? by Anonymous Coward · · Score: 0

      Yo Robert, ex SWCM co-worker in the house. You still have that NeXT cube?

      (funny joke BTW)

    2. Re:VHDL? by rthille · · Score: 1

      Yeah, though I'm getting ready to get rid of it...

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
  163. I'm surprised no one mentioned ColdFusion MX by chrisrockshard · · Score: 1

    Not only does CFML streamline many of your common tasks in middleware/front end processing, but the runtime deploys as a J2EE application on any J2EE-certified application server. This means that you can write all of your backend processing in Java and use those Java classes directly in ColdFusion. I have experience with .Net, Java, and PHP and must say that you can get much more done much faster with ColdFusion.

  164. Smarty and other templates by PhYrE2k2 · · Score: 1

    Look into Smarty and other great PHP template engines. They make that separation for you.

    Otherwise HEREDOC's help a lot in large blocks of easily updatable code.

    -M

    --

    when you see the word 'Linux', drink!
  165. [blank] rocks! by Tablizer · · Score: 4, Funny

    [fill_in_the_blank] is the way go to. See [blank].org for more. For anyone who's built custom sites based on [blank], I think they would agree with me. [blank] is really easy to use for building big apps for use in web stuff, and [blank] provides an easy-to-code-for application framework that saves lots of time and money.

    Best of all, it is [blank]-oriented so that you just snap functionality together like Lego blocks to get an instant app that runs at the speed of light almost right out of the box! And [blank] scales to every user on the entire planet. And it plugs into XML.

    Only a Devry graduate would use anything different. Go with [blank]!

    1. Re:[blank] rocks! by Dr.+Photo · · Score: 1

      Tell me more! :-D

    2. Re:[blank] rocks! by aled · · Score: 1

      No way! everyone should know that [blank] is better than [blank].
      To say it uncertain terms: [blank]

      --

      "I think this line is mostly filler"
    3. Re:[blank] rocks! by Tablizer · · Score: 1

      [Blank] you! :-)

  166. PHP - Perl + Python by Anonymous Coward · · Score: 0

    The United Nations are moving to this...
    spider
    It's new, like PHP but based on Python, not a subset like Zope.

  167. PEAR DB's QuoteSmart && SPRINTF by PhYrE2k2 · · Score: 1

    PEAR::DB encourages $db->quoteSmart(...) that will properly quote it with the database-specific escaping.

    Plus teach a newbie to use sprintf when making their SQL and you'll find that it's a lot easier to remember that.

    magic quotes should always be disabled. The language shouldn't make up for the lack of information the developer has.

    -M

    --

    when you see the word 'Linux', drink!
    1. Re:PEAR DB's QuoteSmart && SPRINTF by NutscrapeSucks · · Score: 1
      I still think you guys don't get it, so here's some sample C# code:
      SqlCommand cmd = new SqlCommand("INSERT INTO Table (IntVal, CharVal) VALUES (@IntVal, @CharVal)", conn);
       
      cmd.Parameters.Add("@IntVal", SqlDbType.Int).Value = 3;
       
      cmd.Parameters.Add("@CharVal", SqlDbType.NVarChar).Value = "Yo' Mamma's";
       
      cmd.ExecuteNonQuery();
      Notice how the programmer only needs to specify the SQL datatype and can ignore SQL quoting rules? I think this is much easier for the newbie than learning how and when to use sprintf.
      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    2. Re:PEAR DB's QuoteSmart && SPRINTF by Foofoobar · · Score: 1

      LOL! Oh yeah. C#. The little lanmguage that couldn't. Talk about cross platform compatibility.

      You talk about security and a decent language and then you throw C# at us? Puh-lease. That's like talking about decency and morality and pointing to Jerry Falwell as an example.

      C# isn't compiled, it's pre-cached. It has more holes than swiss cheese and is slower than even PHP 4.

      There's a reason why the LAMP architecture is more widely deployed than .NET... and it's not because a multi-billion dollar corporation is funding marketing bozos like yourself; it's just plain better. Deal.

      --
      This is my sig. There are many like it but this one is mine.
    3. Re:PEAR DB's QuoteSmart && SPRINTF by cortana · · Score: 1

      And here's how we do it in PHP:

      $db->query ("INSERT INTO Table (IntVal, CharVal) VALUES (?. ?)", array (3, "Yo' Mamma's"));

      Of course, most PHP coders (especially newbies) don't seem to know about this. :(

      I wish the PHP developers would put their feet down and remove deprecated shit like register_globals, magic quoting, etc, from the language entirely. That stupid config file can go to. I don't need an /etc/C.ini, or /etc/python.ini to run C or Python programs, do I? "Safe" Mode should go as well.

    4. Re:PEAR DB's QuoteSmart && SPRINTF by Foofoobar · · Score: 1

      Heck, I can build a query even easier. But yes, PHP was made for database integration.

      But don't take away my config file. It just wouldn't be a LAMP architecture without a config file for each :)

      --
      This is my sig. There are many like it but this one is mine.
    5. Re:PEAR DB's QuoteSmart && SPRINTF by NutscrapeSucks · · Score: 1

      Of course, most PHP coders (especially newbies) don't seem to know about this. :(

      Wow. As a newb PHP programmer, I certainly never saw this syntax example (which is a good deal easier than the usual suggestions).

      I suppose part of the problem is that PHP has now developed a subcult of "smart" coders that have figured out their own workarounds.

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    6. Re:PEAR DB's QuoteSmart && SPRINTF by cortana · · Score: 1

      It's all here. :)

      Of course it's not perfect. The DB classes should be a part of the PHP core libraries, not implemented in PHP themselves.

      Here is PHP's problem:

      The guy who started the whole thing hates programming. So PHP was a simple macro language for knocking together Personal Home Pages. But then, people who were too lazy/stupid/whatever to learn a real language and recognise PHP's faults started to use it, and started buliding on it... and it grew, and grew, and now we have what we have, enormous inefficient and insecure warts and all.

    7. Re:PEAR DB's QuoteSmart && SPRINTF by Anonymous Coward · · Score: 0

      Here is Basic's problem:

      A long time ago someone thought that there ought to be a computer language that was easy to learn in order to teach students the "basics" of programming. Bill Gates took a class in it at Havard and (when not playing poker) started selling it has a be all end all language. Later he built an entire company based upon BASIC and even designed and OS around it. It just grew and grew and grew and now we have what we have, enormuous inefficient and insecure warts and all.

  168. About Java Performance by vhogemann · · Score: 1

    Actually I can tell you that the major performance hit comes from the database, not from the Web Application itself.

    Bad designed databases, and insanelly large queries can be quite a performance hit.

    On our devellopment server, Java itself account only for 0% to 1% of processor usage, while database activity sometimes accounts for 99%! That's because there's a lot of legacy code there, and a lot of spaguetty SQL...

    --
    ---- You know how some doctors have the Messiah complex - they need to save the world? You've got the "Rubik's" complex
  169. Get a real language. by UberLame · · Score: 1

    There are really only two choices. Erlang or lisp. For smaller projects, Smalltalk in the Seaside environment may be acceptable.

    All three support the best time proven techniques, and have withstood the test of time.

    Some people seem to like Ruby on Rails. I haven't tried it myself, but it looks acceptable.

    --
    I'm a loser baby, so why don't you kill me.
  170. Re:What is your definition of compiled and interpr by NutscrapeSucks · · Score: 1

    Probably more accurate to say "similar to ASP/VBScript". The Java HotSpot compilier is vastly more sophisticated than anything available for PHP.

    --
    Whenever I hear the word 'Innovation', I reach for my pistol.
  171. The only thing that counts...Aspirin. by Anonymous Coward · · Score: 0

    Know any large scale apps done in Brainfuck?

  172. EJB != J2EE by Anonymous Coward · · Score: 1, Informative

    I hear people saying all the time that they are not using J2EE when in fact what they mean is that they are not using the very bloated and usually difficult to develop (and slow) Enterprise JavaBean platform - EJB. When you are using the stack you mentioned you are using a very large part of J2EE - JDBC, JSP, and JNDI most likely. There is a whole suite of technologies that fall within J2EE - most are just fine, EJB being the primary exception.

  173. ASP.Net by xswl0931 · · Score: 1

    Your characterization of asp.net is incorrect. The way it works is you write it as though it was ASP (like a script), but it gets compiled during runtime (the first time) and from then on runs as compiled code (you could also precompile everything beforehand as you mention). Now that MONO supports asp.net, seems that it is a good choice.

  174. Choose Freedom by linuxdoctor · · Score: 1

    In any programming project the choice of language always becomes an issue. One choice is, for me, easy. I would never choose a language that in any way supports Microsoft. Period. That means no ASP, no C# or anything else that M$ may have up its sleeve, including M$ extensions to things that they have `embraced.'

    It's the moral thing to do. Each time I choose Free Software, make Free Software or contribute to Free Software we all grow just a little bit more free.

  175. Templeet by pooly7 · · Score: 1

    I would have a look at the nice ideas behind Templeet http://templeet.org/ that make any dynamic website runs as fast as astatic one. Worth the headache of learning it and saves you money on hardware and development cost (quick and dirty but it works)

    1. Re:Templeet by pooly7 · · Score: 1

      To add to this two website : http://linuxfr.org/ webzine rock metal indus : http://www.w-fenec.org/

  176. Java, Ruby on Rails, Python, Smalltalk,Common Lisp by MarkWatson · · Score: 2, Informative

    I think that Java is the gold standard for small and large web portals in terms or reliability, good performance, etc. I have done portals that simply use Tomcat with either Prevayler or Hibernate/JDBC for persistence that basically run forever, until we want to do a software upgrade.

    That said, for CRUD applications, RoR is good - the scaffolding gets you up and running quickly, and views, controllers, etc. are easily customized.

    I used to use Python and Common Lisp a fair amount, but not recently. The UnCommon Web Common Lisp package looks good; I would like to check it out in some detail when it is more mature. It uses continuations (like Seside for Squeak and VisualWorks Smalltalk) to manage state between web pages.

    Sure, there is some overhead for using multiple langauges and frameworks, but I have always believed that it is best to be a "generalist" who can drill down when required.

  177. Why dynamic includes are necessary... by einhverfr · · Score: 1

    Dynamic includes don't really substitute for COM or other objects, nor do they seem to be a very sound "large application" strategy, so I don't get your point.

    I tend to do a lot of data driven programming, and dyanamic includes form a large part of my strategy for handling modularization of large PHP or Perl apps. This allows the application only to run the code it needs to for the action necessary, and to include an extensible set of possibilities without having to maintain separate decision trees.

    You are right that they are not a substitute for COM. But in ASP apps, I would have to use COM as a substitute for dynamic includes.

    Let me give you an example. Imagine if you could specify from the URL the type of interface you needed, the data entry screen required, etc. and have the application only execute the code necessary to build these. Dynamic includes make this sort of thing possible without sacrificing maintainability.

    So for example... I can handle authentication and make sure that a user is authorized to access the application and then do something like:

    include $config['callback_dir'] . "/$form.call.php";

    Thereby processing the event buttons. As I add new data entry screens, I don't have to add new switching mechanisms. I could do this using COM and ASP, but I can't do it maintainably without COM.

    Again in HERMES, there are several portions of the application which are separate and distinct from eachother, Dynamic includes are only necessary for two of them (i.e. the core application server and the UI engine). Revising my set of modular components, we have:

    1) Core app server (dynamically includes appropriate UI engine).
    2) UI engines (dynamically include UI and callback scripts)
    3) UI scripts.
    4) Callback scripts (paired with UI scripts).
    5) Core data object model.
    6) Utility/Library Object Model.

    4, 5, and 6 are largely OO. 1 and 2 are pretty much procedural/data driven. 3 and 4 are lightweight automations of 4, 5, and 6 with some data driven aspects as well. Each UI script is paired with a callback. Also, note that the callback can change one variable which will determine which UI script will be called next.

    The whole 20k-line app is such that someone with a one hr introduction to the source code can probably start programming quickly and be reasonably productive immediately.

    I expect that when HERMES 1.0 is fully complete, it will be approximately 50k lines and still be as easy to maintain as it is today.

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Why dynamic includes are necessary... by NutscrapeSucks · · Score: 1

      This allows the application only to run the code it needs to for the action necessary, and to include an extensible set of possibilities without having to maintain separate decision trees.

      OK, I think I understand what you are getting at, but I'm not clear if you are doing this only because PHP doesn't cache bytecode without a 3rd party piece.

      I've done something similar for one application where users could create and publish their own forms. The approach was to use dynamically loaded ASP.NET controls, which keep a nice interface between the "UI/Form" code and the application logic.

      (Cue my stalker pal with some more random incoherant flames.)

      --
      Whenever I hear the word 'Innovation', I reach for my pistol.
    2. Re:Why dynamic includes are necessary... by einhverfr · · Score: 1

      OK, I think I understand what you are getting at, but I'm not clear if you are doing this only because PHP doesn't cache bytecode without a 3rd party piece.

      Not just that. It also allows for some interesting hooks, for example, allowing the client to specify the UI generation engine. This may allow, for example, for one to specify that one wants a PDF generated instead of HTML, or maybe requires an alternate layout for a handheld, or a web service. The client can then specify the data entry form requested, and the data entry form submitted (permissions are enforced in ways that the client cannot circumvent however).

      I've done something similar for one application where users could create and publish their own forms. The approach was to use dynamically loaded ASP.NET controls, which keep a nice interface between the "UI/Form" code and the application logic.

      This is much more similar to what I am doing here--- allowing the client to specify exactly what parts of the program need to be run. Note that permissions are deeply enforced to prevent an exploit from compromising data.

      --

      LedgerSMB: Open source Accounting/ERP
  178. FORTRAN!!! by Banner · · Score: 1

    Okay, I know, but I just couldn're resist :-)

  179. English by Dpaladin · · Score: 0, Offtopic

    It's the most commonly-used language on the Net.

    --
    Bad puns gave me bad karma. =(
  180. Re:What is your definition of compiled and interpr by Foofoobar · · Score: 1

    Nope... more similar to PHP...

    Here's news for the .NET crowd -- you've finally caught up! Microsoft's use of the word "compiled" in regard to .NET is not what a C++ coder would call "compiled". Zend, the corporate face of the PHP project, have been doing this for a while now with PHP Accelerator (for a free equivalent, try php-accelerator.co.uk). Unfortunately for Zend, they chose to describe what Accelerator does as "advanced caching" (read more on what Zend means by "caching").

    So you see, .NET is not compiled. You've only been fooled into believing Microsoft rhetoric and in comparison benchmarks by Oracle (not Zend or IBM), even PHP 4 is faster than ASP.NET.

    Do you ever get tired of being wrong? Because I sure as hell don't get tired of showing you how wrong you are. It's fun! :)

    --
    This is my sig. There are many like it but this one is mine.
  181. For Web Apps: LAMP+XML+C by v3xt0r · · Score: 0

    Save tons of money by using Linux (or FreeBSD) Clusters (instead of Windows * Server or Sun Solaris).

    Save tons of money by using MySQL Clusters (instead of oracle or sql server).

    Create scalable object oriented web interfaces with PHP5.

    Make your web applications inter-operable with Java/Oracle and .NET/MS-SQL platforms by using XML.

    Create Programs in C/PERL/Python that can be integrated into your web application.

    Access TONS of free online resources for all of these technologies, including support from other developers via IRC.

    Laugh at the rest of the comments below... =p

    --
    the only permanence in existence, is the impermanence of existence.
  182. Machine Code by yintercept · · Score: 1

    In a computing environment dominated by servers and networking equipment, I am a bit surprised that there isn't more of an effort to move back to machine level code to tweak that extra throughput out of the server.

    To an extent, the driver for the higher levels of abstraction was to shield the programmer from the vagaries and peculiarities of individual machines. One could imagine this new world of big servers under the complete control of the programmer could reverse the historical trend to greater abstraction in code back to the machine level.

    Perhaps the handling of millions of random events is better served at the abstract level.

  183. Tiny. by C10H14N2 · · Score: 2, Insightful

    If your code is at 20,000, you haven't even begun to get to the point where manageable code is truly problematic. A skilled developer can get a grip on that (about 400 printed pages) in a day unless it is utterly obfuscated.

    Now, with respect to #1 and #2 as applied to #3? The WORST of execution and compilation time generalized to _all_ bytecode? WTF?

    With a proper J2EE development environment (no .Net here), my compile/build/deploy cycle on most projects takes one command and, guffaw, 20k lines would compile in a few seconds. As for execution speed, this has been disproven so many times at this point that it is laughable.

    In any organized production environment (that is, not just Rinkydink, Inc), changes will NEVER be immediate, usually they'll take at LEAST several weeks or months to implement, so this idea that somehow a 30-second build process is an impedement to large applications is just a joke. In such an environment, anyone who would just run in and perform a quick-and-dirty "fix" on the production server would be escorted out of the building before they got up to get their next cup of coffee.

    However, we seem to agree that with any language, the problem exists between keyboard and chair...

    1. Re:Tiny. by Gorobei · · Score: 1

      Hmmm... my group oversees a 20,000,000+ line code base. I see about 100 changes to the production servers each day. Many changes hit production after less than ten minutes of testing and review.

      You'd be surprised what you can do with a seriously powerful language (think Lisp-like) and an infrastructure that has had 1000+ man-years of effort put into it.

  184. Not at all by Anonymous Coward · · Score: 0

    Perl is meant to minimize typing. It is neither easy to maintain or debug. While it may be possible to write code with perl which is easy to maintain or debug, no perl coders will do it because then they might as well use another langauge. Poor coding practices are encouraged from the top down. Look at CPAN. Some of its modules are composed of a single 3000 line nested regular expression.

    1. Re:Not at all by Anonymous Coward · · Score: 0

      >Some of its modules are composed of a single 3000 line nested regular expression.

      A link would be nice...

  185. Re:What is your definition of compiled and interpr by Anonymous Coward · · Score: 0

    Your use of terminology is wrong. You may understand the concepts, but using words wrong just confuses people. Java is still considered an interpretted language even though it is compiled into byte code. It is run on a JIT compiler and suffers from many of the same overheads as a souce-code interpretter. The JVM is the Java interpretter.

    Read through Wikipedia on these subjects to get a better grasp of the terms: http://en.wikipedia.org/wiki/Interpreter_(computer _software)

  186. Re:What is your definition of compiled and interpr by NutscrapeSucks · · Score: 1

    Well, I wouldn't expect a PHP programmer to understand that Java and .NET are two different things. So, I will attribute your reply to the intense gay lust you have for me and my super l33t programming sk1lz. (Cue "Can't Touch This" by MC Hammer.)

    --
    Whenever I hear the word 'Innovation', I reach for my pistol.
  187. Orders of magnitude are base 2 in assembly lang. by SimHacker · · Score: 2, Funny
    Orders of magnitude in assembly language are measured in base 2, not base 10. So four orders of magnitude more than 7 days would be only 112 days (a bit more than 1/3 of a year), not 70,000 days (almost 192 years).

    Of course you also have to adjust for a few orders of magnitude in the other direction, now that registers are larger.

    Here's how to add two 32 bit numbers on the 8 bit 6502 (C = A + B):


    CLC
    LDA A
    ADC B
    STA C
    LDA A+1
    ADC B+1
    STA C+1
    LDA A+2
    ADC B+2
    STA C+2
    LDA A+3
    ADC B+3
    STA C+3

    Oh man, that was exhausting.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  188. That's what deprecation means... by Foofoobar · · Score: 1

    Ever heard of deprecation? You'd be surprised to know that it happens in ALOT of languages, databases and more. No matter what language you move to, this will happen. Even HTML has parts that have been marked as deprecated.

    So please don't blame little ole PHP unless you are also going to blame practically every other language out there.

    --
    This is my sig. There are many like it but this one is mine.
  189. Re:What is your definition of compiled and interpr by Foofoobar · · Score: 1

    Wow. Java and .NET are two different things? Alert the newspapers! How long did it take you to have this little brain fart of a realization? Major Duh award to you, my friend.

    Heh. Yep, all 13 year olds think they are s00p3r l337. Puberty gives them all huge egos and sparse crotch hair. Soon you'll be finding out that girls don't have cooties too. :)

    --
    This is my sig. There are many like it but this one is mine.
  190. Re:Use ASP If You're A Microsoft Shop by karmakillernz · · Score: 1
  191. Well, duoglot or triglot, anyway... by fyngyrz · · Score: 1
    Oh yeah, I know that one. First, you step on the fly...

    Oh, wait...

    Python and C (not C++) are the two that are required for someone to get a job with us. If they have actual assembler experience, they get priority, because I am confident that this makes for a much better C programmer. I have a short assembler test I abuse prospective employees with; it is designed to see if they understand how stacks work more than anything else, because that is the key to not screwing up a lot of C programming. If they can tell me how a basic microprocessor system works, as in the hardware design, then that gets them even more priority. Aside from that, pixels need to be their subservient little bitches.

    --
    I've fallen off your lawn, and I can't get up.
  192. photobucket.com by Raunch · · Score: 1

    Photobucket.com uses php, and a little perl (but not for serving pages). Objectify your php so that things remain very maintainable, write your perl so that someone can read it. What it comes down to is the fact that bad code can be written in any language, and good code can be written in any language.

    Oh, yes Large-Scale.

    --
    George II -- Spreading Freedom and American values, one bomb at a time.
  193. Re:What is your definition of compiled and interpr by Foofoobar · · Score: 1

    And what does that have to do with how right I was and how wrong you were about C# not being compiled? Hmmm?

    Ever notice how stupid people like yourself often like to open their uninformed mouths?

    --
    This is my sig. There are many like it but this one is mine.
  194. Re:Lotus Domino-what's the problem? by dogugotw · · Score: 2, Interesting

    Guess I must be using a different Notes than you folks. OK, I only write apps using the native gui, no web browser stuff yet but I love this thing. I can put up a fairly complex workflow app in about a day that scales nicely, is secure, and is easy to maintain. I've pretty much written an entire manufacturing quality system using Notes. It's a breeze to support. We have no admin so I double duty as developer and admin. I support 50 apps or so and 150 users solo and go home every night on time, don't work nights or weekends, and actually take vacations.

    If you need to search code, use addins like Team Studio Configurator. It does have a query language built in, you just need to know how to use it. You can build adhoc user driven queries without a lot of effort. (check LDD's FAQ of FAQ for the 'friendly query' article).

    It's not a relational db and that drives some folks nuts. Once you get your head wrapped around an object db model, and use it for what it's good for, you can do wonders in almost no time at all.

    It does support large web based apps (see IBM's Notes Developer Domain and the forums) that use JavaScript, html, xml, java, whatever you want.

    User rights management, heavy duty encription, replication (second to none) all come standard. Every app is web enabled without doing anything special (yes, the apps won't be very pretty or friendly but the point is the app works using the Notes client or a browser by without doing any extra programming).

    And that's just for starters. Your piece of shit is my palace of gold. It's kept me happily and gainfully employed for almost 10 years now and my company keeps looking for new and more interesting places to use it.

    One man's opinion.

    dogu.

  195. You'r dead wrong about Lisp by SimHacker · · Score: 2, Informative
    Lisp code is extremely easy to read and maintain -- it's just the opposite of Perl, not "more so".

    Are you going to trot out the "parenthesis are hard to read" argument? Well take a look at XML: that has TWICE THE NUMBER OF PARENTHESIS, only they're pointy instead of curved. That old "I'm afraid of parenthesis" argument is bullshit.

    Now look at Perl code: instead of seeing the explicit, unambiguous parenthesis in the code, you have to remember and resolve all of the implicit and complex special syntax rules, punctuation, precidence order, left/right evaluation, contextual quirks and special cases, etc.

    If you think Lisp is harder to read than Perl, then you obviously don't know either language, and you're just basing your beliefs on rumors you heard ignorant people distort and repeat, without learning those languages for themselves.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
    1. Re:You'r dead wrong about Lisp by snorklewacker · · Score: 1

      Are you going to trot out the "parenthesis are hard to read" argument? Well take a look at XML: that has TWICE THE NUMBER OF PARENTHESIS, only they're pointy instead of curved.

      No one programs in XML. Well, XSLT is almost a programming language. A decent language at that, but with awful syntax.

      The fairer comparison is to say C has nearly as many parenthesis as lisp, they just come in different shapes. I mean look at it:

      void foo(int a, char *b) {
            int z = blah(b,a);
            woof(z - a);
      }

      (defun foo (a b)
        (let ((z (blah b a)))
          (woof (- z a))))

      Yes, granted that's more. But hey look, no semicolons. No commas. You don't even need to use indentation to do it. About the only thing cooler than sexp syntax is haskell ("putStrLn $ show $ foo bar baz" ... mmmm)

      --
      I am no longer wasting my time with slashdot
    2. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      No. If Perl is hard, Lisp is harder. Sure, Lisp may be more elegant or powerful or whatnot, but the human brain takes more naturally to a straight-forward imperative languages.

      XML, by itself, is not a programming language, so the equating it's '' to Lisp's parenthesis clutter is invalid. The couple of times I've seen programs represented by XML, they were incomprehensible except for machines.

    3. Re:You'r dead wrong about Lisp by Dr.+Photo · · Score: 1

      "but the human brain takes more naturally to a straight-forward imperative languages."

      Read: "But I learned (BASIC/C/Pascal/FORTRAN) as my first language."

    4. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      Yes. And I'm still right.

    5. Re:You'r dead wrong about Lisp by SimHacker · · Score: 1
      It sounds like you don't actually know Perl or Lisp, because the assumptions you're making and the conclusions you're reaching are all dead wrong.

      If you don't actually know Perl and Lisp, then you're not qualified to make unsupported statements comparing them like that. So please share your source of wisdom that tells you that "the human brain takes more naturally to a straight-forward imperative languages"?

      If you've only seen programs represented by XML "a couple of times", then how are you qualified to understand them? I'm sure you would find Perl and Lisp programs incomprehensible too, if you only saw those languages "a couple of times". Your own ignorance and incomprehension are not valid arguments that a language is flawed.

      You declare that Lisp is unnatural for the human brain, but maybe it's your brain that's impared?

      Your mistaken belief that declarative languages are hard to understand might have been caused by learning BASIC as your first language.

      Edsger W. Dijkstra observed in Selected Writings on Computing: A Personal Perspective that "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    6. Re:You'r dead wrong about Lisp by SimHacker · · Score: 1
      Read: "But I learned (BASIC/C/Pascal/FORTRAN) as my first language."
      "Yes." -sonamchauhan

      Yes what? Which was it: BASIC, C, Pascal or Fortran?

      What are you still right about?

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    7. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      BASIC was first, then Fortran, Pascal, C and Lisp in that order.

      I am right about what I posted: http://slashdot.org/comments.pl?sid=157313&cid=132 07751

    8. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      > It sounds like you don't actually know Perl or Lisp,

      You make a lot of wrong assumptions. I noticed that about you.

      I know them both. I use Perl regularly, and I haven't used Lisp for a few years.

      > So please share your source of wisdom that tells you
      > that "the human brain takes more naturally to a straight-forward imperative languages"?

      Gee, why don't you ask, you know, programmers! If Lisp was easier than Java, don't you think, it would be, like MORE POPULAR - maybe.

      Instead you've got cases like where Yahoo ditches Lisp. For what? PHP! Oh, the humanity.

      > If you've only seen programs represented by XML "a couple of times",

      Sorry - that was my mistake - I meant a couple of 'programming environments' - one called 'JMeter' (http://jakarta.apache.org/jmeter) and one called 'webMethods' (proprietary - webmethods.com). Both represent programs as XML, but have visual IDEs on top. I've had to read and modify these XML programs on a few occasions (IDE bugs/ convenience etc) and it was painful.

      > Your own ignorance and incomprehension are not valid arguments that a language is flawed.

      They're missing, and so is your argument.

      > You declare that Lisp is unnatural for the human brain, but maybe
      > it's your brain that's impared?

      Your Lisp fanboy-hood is showing.
      This is a case of bad tools blaming the carpenter.

      > Your mistaken belief that declarative languages [c2.com]
      > are hard to understand might have been caused by learning
      > BASIC as your first language.

      What is this 'childhood trauma by exposure to Basic' nonsense you're spouting? Are you serious? Dijkstra wasn't (at least I hope so... unless he is mentally damaged himself).

      Do you think there some conspiracy to damage people's brains by teaching them imperative languages first? Break out the tinfoil hats people!

      You really _so_ underestimate the human brain.

      > Edsger W. Dijkstra observed in Selected Writings on Computing:
      > A Personal Perspective that "It is practically impossible to teach
      > good programming style to students that have had prior exposure to
      > BASIC: as potential programmers they are mentally mutilated beyond
      > hope of regeneration."

      He's wrong. :) And since you so uncritically accepted his hyperbole, you're wrong.

      Here's wikiquote on Dijkstra:
      http://en.wikiquote.org/wiki/Edsger_Dijkstra
      "Object-oriented programming is an exceptionally bad idea which could only have originated in California."

    9. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      > You declare that Lisp is unnatural for the human brain, but maybe
      > it's your brain that's impared?

      Your Lisp fanboy-hood is showing.

      Instead of
      XXXXX - "This is a case of bad tools blaming the carpenter." - XXXX

      please modify to "giving a carpenter unsuitable tools, then blaming the carpenter". Lisp is, as I said, powerful and extensible, etc., but it's patently unsuitable for many programming tasks, which is why other languages were invented after it.

      It's not a big world conspiray out there, no matter what you or D'stra think.

    10. Re:You'r dead wrong about Lisp by Dr.+Photo · · Score: 1

      Wow. Talk about spooky accuracy in predictions... From your comment I unwittingly picked the first four languages you learned.

      If you think imperative==natural, at least you have a really good excuse! :-)

    11. Re:You'r dead wrong about Lisp by SimHacker · · Score: 1
      You're living proof that Edsger W. Dijkstra was right when he said: "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

      And no, you're not right about what you posted. Where did you ever get the silly idea that declarative programming was unnatural for the human brain?

      You shouldn't use your own brain as a yardstick: it's mutilated beyond hope of regeneration because you learned Basic as your first language. It's no big surprise that you use Perl regularly, due to your unfortunate brain damage.

      Please post references backing up your claims about declarative programming, instead of just repeating yourself.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    12. Re:You'r dead wrong about Lisp by SimHacker · · Score: 1
      Ok, so now you're arguing that the ease of use of a language is directly related to its popularity, and that Dijkstra didn't mean what he said?

      What makes you think Dijkstra wasn't serious? You're just guessing and hoping he wasn't serious, but you're still acting like you're hopelessly brain damaged, so that certainly supports his statement.

      You're the one who brings up conspiracy and tinfoil hats -- I certainly didn't imply there was any conspiracy, so you're jumping to conclusions and attacking a straw man, because you have no better argument.

      I think you're a wonderful example who perfectly illustrates my point: that many Perl advocates enjoy that vile language, because they're brain damaged beyond redemption. They hate Lisp with a passion, because their brain damage makes it impossible for them to understand such a simple, elegant language.

      Do the responsible thing, and stop advocating Perl. Go ahead and use it yourself, since you're beyond hope, but don't try to drag anyone else down into the pit you've fallen into. That's simply irresponsible.

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    13. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      > Ok, so now you're arguing that the ease of use of a language is
      > directly related to its popularity,
      Yes. This is OBVIOUS.
      Do men wake each morning and say: "Today I will do things ... THE HARD WAY"?
      People seek the easy way out - it's human nature.

      > and that Dijkstra didn't mean what he said?
      Yes. Anyone who says: "Teaching BASIC should be a criminal offense." is a loudmouth spouting off.

      You're treating Lisp like a god, and Dijkstra as it's prophet.

      > You're the one who brings up conspiracy and tinfoil hats
      > -- I certainly didn't imply there was any conspiracy,
      I freely admit to hyperbole, but if you truly believe what you think, that's a justifiable suspicion - isn't it? With Lisp being so old, and so so easy, what else could turn the bulk of the world's programmers away from it?

      > so you're jumping to conclusions and attacking a straw man,
      > because you have no better argument.
      Haha! It's funny.

      > many Perl advocates enjoy that vile language, because they're brain
      > damaged beyond redemption.
      I say this with no malice:
      You are a fool. Please correct yourself.

      > I think you're a wonderful example ...
      > They hate Lisp with a passion ...
      No. I am fond of Lisp. I learnt Perl after I learnt Lisp. Lisp is suited for certain problems. For most, it's the wrong tool. That's why other languages were invented.

    14. Re:You'r dead wrong about Lisp by SimHacker · · Score: 1
      If you know so much about Lisp, then why don't you take a crack at addressing the issues I raised in the following post titled "Higher Order Perl trying to be more like Lisp".

      While you're at it, why don't you back up some of your baseless claims with references to your sources of information, instead of simply repeating them?

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    15. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      Because:

      1. You do not fix your flaws even after OBVIOUS one are pointed out; rather you're scrambling from point to point attempting to salvaging your pride. As long as you do so, you remain a fool.

      2. I have no issues with article you linked to - it's a good one. The author calls Perl a "really good tool" (you quoted him on this!) and reiterates the same different-tools-for-different-tasks point I've been telling you:
      "I do think that all programmers should learn as many different languages as they can, and I'm puzzled when they don't want to. It's like being a carpenter and saying that the hammer and the chisel are good enough for you, you don't need to learn to use a saw or a screwdriver."

    16. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      > And no, you're not right about what you posted.
      > Where did you ever get the silly idea that declarative
      > rogramming was unnatural for the human brain?

      Market Economics.

      i.e. Popularity among programmers.

      Other issues addressed in my replies to you below.

    17. Re:You'r dead wrong about Lisp by sonamchauhan · · Score: 1

      No. It's just the order I studied the languages you listed + Lisp. :)

      I also learnt an expert system and assembler around the time I was learning Pascal.

    18. Re:You'r dead wrong about Lisp by Dr.+Photo · · Score: 1

      Whew! You had me worried, there. :)

  196. Good worker by Propaganda13 · · Score: 1

    A good worker knows that it's easier to repair something that has common parts. You don't switch between screws with different heads, just because one works slighlty better in a given situation.

    1. Re:Good worker by acvh · · Score: 1

      "A good worker knows that it's easier to repair something that has common parts. You don't switch between screws with different heads, just because one works slighlty better in a given situation."

      oh, how I wish that were true. as it is my toolbox has torx, flathead and phillips head screwdrivers, and I often use all three working on one entity, such as my Jeep, or my PC.

  197. A Lisp Machine is the best Fortran dev tool by SimHacker · · Score: 1
    If you really want to develop Fortran code, then you should get an old Lisp Machine, compile your Fortran code into Lisp, and debug it with the most advanced software development tools of the time.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  198. Not so much by Anonymous+Brave+Guy · · Score: 1

    While your criticism of Perl is entirely valid, I think you're missing the main problem (such as it is) with readability in Lisp. In fact, the other example you gave, XML, suffers much the same problem.

    In neither case is the problem the vast number of () or <> pairs you've got in the code. That's tedious and doesn't help readability, but it's not the end of the world.

    Rather, the problem is that (up to a point), that is all you've got. Languages evolve syntactic sugar for a reason. Of course you can create a very pure, very small language without much syntax at all. Indeed, classical Lisp is about as pure and small as you can get. But in doing so, you force all concepts to be represented in the same uniform notation, even if that notation isn't necessarily the most natural or readable.

    Lisp-like languages with more friendly syntax don't suffer the same problems here of course, but I suspect these are rarely what people are complaining about when they attack the readability of "Lisp".

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Not so much by SimHacker · · Score: 2, Interesting
      Good Lisp code is zen-like in the way it uses white space and indentation to express structure, instead of cluttering the code up with a bunch of punctuation. Lisp macros let you program with meaningful words and phrases, which are much easier to understand than punction.

      Lisp doesn't require excessive punctuation to write understandable code, because it has a real macro system. Lisp's macro system is vastly more powerful than "syntactic sugar" or string substitution macros like the C preprocessor. It enables you to deeply customize the language for the task at hand (including extend the surface syntax by adding punctuation, if you insist).

      Throwing in a bunch of punctuation marks doesn't automatically increase readability. But at least the base Lisp lanuage doesn't use up all the punctuation marks itself like Perl, and it even allows you to define your own for application specific purposes. All that and a kick-ass macro system: What more could you ask for?

      The problem with messy, nuanced, ambiguous, punctuation-heavy "Do What I Mean" languages like Perl is that it's much more difficult to figure out exactly what the code is doing just by looking at it, because there are so many special context sensitive rules and special cases (like scalar versus list context, etc), which intricately interact with each other.

      Perl has a much higher "syntactic surface area" than Lisp (they're at different ends of the spectrum). High syntactic surface area makes a language hard to learn and understand. All of the effort pointlessly wasted struggling with Perl's fractally complex syntax would be much better spent solving real problems that weren't solved decades ago by Lisp.

      Many Perl evangelists actually prefer to program in Perl because it allows them to show off how studly and ingenious they are to handle such a pointlessly complex language, and it gives them job security because it's so impossible for anyone else to understand or maintain their code. So of course those people hate Lisp for its simplicity, and spread misinformation about it like "too many parenthesis".

      -Don

      --
      Take a look and feel free: http://www.PieMenu.com
    2. Re:Not so much by Anonymous+Brave+Guy · · Score: 1

      I agree with many of your points about Lisp, and the fact that these can be advantages. However, there is also an argument that having a very generalised core and almost inventing mini-languages using macros for every little thing makes code hard to find your way around at first.

      Just as C projects rightly get attacked for needing UGLY_PROJECT_SPECIFIC_MACROS everywhere, and Perl takes flak for being able to write the same logic half a dozen different ways, and C++ takes flak for all the implicit behaviours it can hide, so Lisp takes flak for defining its own mini-languages all the time. In all of these cases, the power provided by the feature is useful to a good programmer, and won't unduly compromise readability and maintainability when used skilfully. Also in all of these cases, the power and flexibility result in dreadful code when used by less skilled programers, getting the feature a bad name.

      Since, in the real world, a lot of programmers aren't great, there's some justification for that criticism in each case. But, in each case the negatives must be balanced against the need to provide real tools for real programmers. Personally, I'd much rather have a language like C++ or Perl or Lisp, where the developer has options available if they're needed, but then I'm also the kind of programmer who will make the effort to learn how to use each feature properly and how they interact before diving in. I get the feeling most programmers aren't.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:Not so much by einhverfr · · Score: 1

      Many Perl evangelists actually prefer to program in Perl because it allows them to show off how studly and ingenious they are to handle such a pointlessly complex language, and it gives them job security because it's so impossible for anyone else to understand or maintain their code. So of course those people hate Lisp for its simplicity, and spread misinformation about it like "too many parenthesis".

      Actually, with LISP, I was thinking "Hmmm... I gotta learn the dialect thatt his programmer decided to create on the fly for this project."

      It is easy to maintain once you get up to speed with it but it is a slow process. Very much like Perl.

      Similarly with Perl I have seen many programs written with extreme clarity and care. These programs are such that *even without comments* it becomes easy to read and understand the code.

      I have seen extremely easy to read and maintain PHP apps too.

      Finally you should note that I said that these were programmer issues not language issues. The problem is simply that computer languages are very well defined (prescriptive rather than natural languages which are descriptive). Therefore, when we see the way someone programs, we see the way someone things.

      Unfortunately, most programmers don't think too clearly and so the code ends up either being unmaintainable, unreadible, or both. I think that most Slashdotter's who have maintained other people's code will agree with this assessment.

      So stop pretending that I am attacking your language of choice and realize that I am attacking the programmers who have trouble writing good code. Yes, sometimes that even apples to me...

      --

      LedgerSMB: Open source Accounting/ERP
  199. Compiler by pommiekiwifruit · · Score: 1
    Hiring or training people that can write better assembler than a modern compiler is very very difficult.

    Ooh! Ooh! Can you give me a link to this fabulous optimising compiler then? Because gcc ain't it!

    BTW it must support the proprietary instruction set architecture that our chip supplier invented.

    1. Re:Compiler by Surt · · Score: 1

      That doesn't sound much like mainstream web backend development to me. Most of that work is done on one well known architecture.

      I'm sure there are many platforms for which no compiler whatsoever is available, and I'm guessing people outperform the compiler on those too.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  200. Flash and J2EE... by cubicleman · · Score: 1

    On the large-scale web application my company has been working on for 3 years, we used Flash for the front end (Flex for some front end parts), and JBoss on the middle tier with EJBs and an Oracle database. A big, complex system with thousands of moving parts, so to speak..

  201. 4 lanuages is the minimum... by Marc+Rochkind · · Score: 2, Informative
    ... for serious web sites:
    1. HTML,
    2. Client-side scripting language, usually JavaScript,
    3. Server-side language,
    4. SQL for database access.

    #3 is where there's the most flexibility. Speaking very generally, there are two ways to go:

    a. Lightweight scripting systems that depend only on the web server (probably with a loaded module) for support. Typically PHP, Perl, Python, or JSP/ASP using Java or a Microsoft language.

    b. Heavyweight systems, of which the two most common are J2EE and .NET. J2EE uses Java as its language, and .NET usually uses C# or VB.

    The usability, performance, etc., of the heavyweight systems depend as much on the middleware as the language itself. .NET is .NET, but for J2EE there are several choices. In my own experience with heavyweight systems, I found Java to be wonderful, but our J2EE server (Oracle's) very difficult to work with operationaly, and way too complicated for what we needed. So, in my opinion, one has to have much education, experience, and patience if one is to use a heavyweight system.

    My conclusion, however, would be that a heavyweight system is the correct choice for a big web application. My bias is towards J2EE because it's more open (and even has open source choices available), but the complexity of J2EE servers is a big concern.

    From what I hear, .NET has superior development tools and better support. I don't know whether this is (a) true and (b) worth the disadvantages of using a proprietary system.

    1. Re:4 lanuages is the minimum... by Anonymous Coward · · Score: 0

      Actually since Google uses C++, does that mean that you think Google is not heavyweight?

    2. Re:4 lanuages is the minimum... by Marc+Rochkind · · Score: 1
      The Google user-interface for searching (not the crawling/indexing part, or any of the other Google products) is an exceedingly simple application. There's no e-commerce, very little user-customization, almost no options, very simple layout.

      Let's not confuse the size and importance of an application with its implementation complexity.

      This part of Google is "heavyweight" in its significance, but it uses what I would call lightweight implementation technologies.

  202. Quisp? by cdcarter · · Score: 1

    I have heard a bit abut QUISP (Quick Server Pages). Does anyone have an opinion/information about it?

    --
    "Love is like a trampoline, first it's like "SWEET!!" then it's like *BLAMM!*"
  203. Re:ColdFusion runs one of the top 5 internet Site. by Tassach · · Score: 1
    As far as scaleing CF runs the number 5 site on the internet MYSPACE.COM
    How much development effort went into make it handle that load? How much hardware is needed to support the load compared to other sites with similar volume that use different technology?

    Hotmail originally ran on (IIRC) FreeBSD & Apache. When Microsoft accquired them they started switching over to an Windows/IIS architecture in an eat-your-own-dog-food move. It took a long time to complete the transition (if they ever have) as they found that it took something like 3x as much hardware to handle the same load using Win[NT|2K].

    --
    Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  204. Hammers and screws by bluGill · · Score: 1

    I have used a hammer to drive a screw before. It works much better than you think it would. Not nearly as good as a screwdrive would do the job, but it gets the job done. It may hold better than a nail would (again, not as good as if you had done it right).

    In short: you can use the wrong tool for the job, and it might work better than you would think. It is still the wrong tool for the job, so get the right tool if you can.

  205. Re:Orders of magnitude are base 2 in assembly lang by bluGill · · Score: 1

    The X and Y registers on the 6502 were called index registers for a reason. Index X to A, and Y to B, and you can not do it in less lines.

    My way is slower, but uses less bytes (I can't recall the syntax of 6502 asm, so I'm not going to write it). Since we are talking about a processor that could deal with more than 64K at a time this is a critical concern.

  206. tossing in my bits by tacocat · · Score: 1

    Well, it's hard not to start a flamewar with all of this, but here's my opinion on the matter.

    Perl

    Definitely not Java

    Why Perl? HTML::Mason and mod_perl provide a great means of integration to the Apache web server. It has an extensive history and development effort in web applications with a very large set of libraries available.

    Why not Java? There's a lot of stuff that Java can do that Perl can do. But there are two points that I think are important to consider when looking at making a real website. First Java is a fundamental memory hog in comparison to Perl. The really nasty experience that I've been having with Java is that a majority of the developers who you can hire cheap are very poorly experienced developers who really don't know how to do any serious design.

    And now for my segue into why I would really not recommend Java and I would recommend Perl. The entrance barrier to Java is much lower than the entrance barrier to Perl mainly as the result of Java being pushed as a Corporate Standard. It's much easier for me to get a certificate in Java than I can a certificate in Perl. Similar in concept to the MCSE certs I can get as well. What do they really mean in the real world? That's for the developer to sell and you to buy.

    These languages are rather close in performance capabilities, but the quality of developers you would find in Java I would expect to be lower than the quality of developers you would find with Perl experience.

    1. Re:tossing in my bits by Anonymous Coward · · Score: 0
      Why not Java? There's a lot of stuff that Java can do that Perl can do. But there are two points that I think are important to consider when looking at making a real website. First Java is a fundamental memory hog in comparison to Perl. The really nasty experience that I've been having with Java is that a majority of the developers who you can hire cheap are very poorly experienced developers who really don't know how to do any serious design.

      And now for my segue into why I would really not recommend Java and I would recommend Perl. The entrance barrier to Java is much lower than the entrance barrier to Perl mainly as the result of Java being pushed as a Corporate Standard. It's much easier for me to get a certificate in Java than I can a certificate in Perl. Similar in concept to the MCSE certs I can get as well. What do they really mean in the real world? That's for the developer to sell and you to buy. smoke that crack pipe. it's clear you've never had to write a website with tons of dynamic content that had to scale to support moderate concurrent load. For that, Perl simply hits a bottleneck. You're better off using C/C++ if you really want to go the CGI route. Having worked on medium and large applications, the key is hiring good developers. A good developer will be able to use any language or tool. Of course, if the HR department is full of morons, then sure get perl guys. But the thing is, the Perl application will rapidly reach a bottleneck and fail to meet the requirements of a large site.

    2. Re:tossing in my bits by tacocat · · Score: 1
      For that, Perl simply hits a bottleneck. You're better off using C/C++ if you really want to go the CGI route.

      I never considered CGI as being scalable. I was thinking of tools like mod_perl or architecture frameworks like HTML::Mason.

      I wouldn't consider C/C++ for a new product development. I think it would be better to get the initial release in a different language that is easier to code and then once you have proven the concept in terms of business and programming you can rewrite it in C/C++. But I believe that every application needs to be rewritten after you get it working initially. This may be at a level of a lab proof of concept or post market release, I don't know.

      When it comes to software development where I work, we don't run them through HR. They go through purchasing. We outsource 100% of our software development to a bunch of H1B visa holders and these guys are truely frickin' idiots. Their code sucks ass, they can't scale worth shit, yet they all hold a Java Cert to grant them access to the repository.

      As for Perl hitting a bottleneck, you might want to tell Amazon, TicketMaster, Yahoo that their applications can't scale. Meanwhile you might consider cleaning your own crackpipe and putting it back in the drawer.

  207. Assembly is not slower.... by phantomfive · · Score: 1

    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.

    Have you written much assembly? Modern assembly focuses a lot on memory access optimization (caching, etc), and parallel programming, and compilers tend to have trouble with that. On a webpage by Paul Hsieh you may find this quote:

    Most assembly programmers are neither knowledgable or good, but those who are knowledgable and good have little trouble beating compilers.

    http://www.azillionmonkeys.com/qed/optimize.html

    --
    Qxe4
    1. Re:Assembly is not slower.... by Surt · · Score: 1

      That's pretty much my point exactly though ... those who are both knowledgeable and good at assembly are few and far between. It would be a challenge to hire enough well skilled assembly programmers to write a whole application that would outperform the c version.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  208. obvious answer !! by keyshawn632 · · Score: 1

    esperanto....

  209. That's incorrect by Anonymous Coward · · Score: 0


    eBay uses several languages. While C/C++ plays a large role, nearly all new development is in Java and there is still a good bit of Perl hanging around .

  210. Re:I disagree by symbolic · · Score: 1


    Language differences are about a lot more than just syntax. If all you want to do is crank out code without respect to whether or not it's implemented well in the chosen language (based on its own idiosynchrasies), then I suppose that learning the syntax alone might be enough. I dare say though, that most people will have a rough time becoming proficient using C++ templates after only two weeks, or settling on a reasonable memory management scheme after spending most of their time with Java.

    I'd say that once you know the syntax, you've only mastered the least common denominator. Then you have to factor in the time required to master the language itself.

  211. Re:ColdFusion runs one of the top 5 internet Site. by Gavin86 · · Score: 1

    Right.. but you seem to be forgetting that Myspace.com is just a terrible mess.

    --
    "Progress comes from the intelligent use of experience."
  212. AOLserver by deusued · · Score: 1

    T - 32 seconds before the flames start.

    http://aolserver.com/

  213. Use a platform, not a lanugage by Anonymous Coward · · Score: 0

    You should choose a platform rather than a language, such as .NET or J2EE.

    PHP is a great small-to-medium project language, which is why it became so popuar. It was very easy to make a guestbook or send an email, and as the Teach Yourself PHP in 24 Hours "programmer" learned more, it had modules to do more. We use PHP and MySQL at work for intranet applications and I hate them.

    RubyOnRails looks like a decent platform but I think the mass-hysteria buzz it is getting is what is pushing it more than anything.

    AJAX anyone? Remote requests have been around forever but is now suddenly discovered since someone put a buzz term on it that gets the friendzy started.

    Rails Day: http://railsday.com/blog/ 24 hours to come up with the best application? The winner is something I could have written in [insert language here] in 6 hours. Use ASP.NET, slap some validators on it and a few editable datagrids. Time? What, 2 hours? Use PHP and do it manually, OO or not. 10 hours?

    Scripting languages are becoming very popular (PHP, Python, Ruby) on the Internet lately. They're easy to use but are per-request scripts, not a platform with caching, persistence, and other platform technologies. I din't mention Perl since it has been around forever.

  214. PHP, PERL or Python for starters by digitalgimpus · · Score: 1

    Several reasons why this is a no brainer:

    - Low cost. You can do all of them on open source platforms, no penalties. To scale java well, you often need third parties in the mix. ASP? Yea.

    - Fast development. You can push out a webApp in much less time than you can in Java, or C++ no question about it.

    - Scales (on the lower end) just as well, if not better than Java or C++, which requires a much higher investment (look how many shared hosting enviroments support Java well enough to actually use).

    If you make it to being an amazon.com or an eBay, you can likely afford to re-engineer your app into something better. But if you spend to much on scaling at the start... you have nothing.

    People forget that to have a successful business you need a business plan and the tech. Not just the tech.

    That's what the dot com bubble was partly about. Lots of tech and jargon. But no business plans (except for a small few).

    Think business plan

    Example: Did a large chain like Subway, McDonalds, or Walmart start out with thousands of stores? Or build to that specification from day one? Or did they build a solid business first, then work on restructuring for that type of growth? Yea that's right. In fact, Sam Walton (Walmart founder) used to have a niche in a wall for each store he opened. That's how the accounting was done. Each store had a hole in the wall. That was the start of their accounting. Now they have a giant department, servers, computers, and certified accountants managing their accounts. But guess what. They didn't purchase that when he opened his first store.

    Scalability only means something when you have a business plan

    1. Re:PHP, PERL or Python for starters by gedhrel · · Score: 1

      You describe your reasoning as a "no brainer".

      "To scale java well..." means what? You can "scale" java just as trivially as PHP if all you're after is what you get from a no-brainer "scaling" of php. If you're talking about session migration, etc: actually, that's pretty simple. What does PHP give you in that regard?

      "Fast development..." again, I suspect you've done no more than trivial java deployment without taking advantage of any of the many IDEs that assist with this. By-hand java webapp deployment is actually pretty simple: drop a file onto a server. If you're talking about the effort involved in packaging, then perhaps you should try not doing it by hand?

      And finally: looking at "Enterprise" scaling of PHP, you'll find that Zend's stuff doesn't come free. Or even cheap.

      In a nutshell: my experience of the provisioning and deployment of java apps is not the same as yours. Your comments lead me to believe I've done it a lot more than you.

  215. Re:Use ASP If You're A Microsoft Shop by Anonymous Coward · · Score: 0
    Any web developer worth anything will take to ASP.NET like a duck to water.

    Not really. It's totally different from most other web development systems. First off it has an IDE!-)) And the architecture is both arcane and designed to tie you into Microsoft's toolkit forever. While any PHP or Perl developer will understand how ASP works, ASP.NET will require some retraining (blinding them in one eye, hobbling them and hitting them in the left hemisphere with a hammer will also help).

    I meant what I said about Microsoft's squirrelly architecture and terminology: most Visual Studio.NET developers don't understand the WWW and the Internet at all, they drop and drag controls onto a form.

    The "separation of code and content" that you speak of has always been optional. And in the latest release Microsoft has changed it so that the default is _mixed_ code and content. So you get some idea of how popular that was.

    This isn't religion, this is a non-MS developer's view of MS technology. ASP.NET is a bad implementation of OOP and a bad WWW implementation. It will never supplant ASP.

    ASP.NET is quietly dying. Do you think you can save it?

  216. Awe Shit... by CarnivorousCoder · · Score: 1

    ...another language-x-is-better-than-y holy war disguised as a thoughful, coherent discussion!

    --
    What are you doing now, you lazy drunken obscene unsayable son of an unnameable gipsy obscenity?
  217. Which language is best? by NerdENerd · · Score: 1

    I always give the same answer to this question as I do to the question which OS is best. The one you know how to use! If you know ASP use it, if you know PHP use it. If you don't know one already and want to learn one then the next question to ask is what infrastructure are you going to be using. If you are going to be deploying your application into a Microsoft environment then use ASP.NET, if its Linux then PHP. Don't expect to start working for a corporation that is a Microsoft shop and have them install PHP on their web servers for you, it wont happen. My experience as a web developer for the last 6 years is that ASP and PHP are easy to learn but hard to master. Many of the projects I have worked on I have had to support code written by other developers and most of the difficulty in getting up to speed on a new project is understanding the mess created by the previous contractors. The problem is not the choice of language. If the original design was constructed well then the people who make modifications to the application generally follow the original framework and keep the project maintainable. When the original project was constructed by inexperienced developers who have no idea about good design or code reuse then each contractor who comes in just makes the project that bit more unmaintainable until the point where you get 5 year old applications that have reached that point where maintaining them is more expensive than starting again from scratch. The worst thing is when the project managers have no idea how bad the code they have is. Trying to convince project managers that scrapping what they have already spent hundreds of thousands of dollars on is hard for them to swallow. In the end a good web application development comes down to good design with well structured classes that encourage easy code reuse and maintainability. The language that is best suited to this is the one you know well. If you don't know the basic principles of object orientated design and code reuse then these are the things you are really in need of learning. You can only create a massively unmaintainable beast with whatever language you use without these skills! No matter how much you want to argue the merits of Java or .NET over ASP I would much rather maintain a well designed ASP application over a bug filled poorly designed Java app any day. P.S. My recommendation to a newby looking to start developing web applications would be ASP.NET. I don't care what you anti MS zealots have to say about that, that is my opinion.

  218. Re:Use ASP If You're A Microsoft Shop by wk633 · · Score: 2, Insightful

    most Visual Studio.NET developers don't understand the WWW and the Internet at all, they drop and drag controls onto a form.

    I guess our millages varry. I have yet to meet an ASP.NET developer (including myself) who didn't already have a background in other areas. Probably myself least of all, but I don't see the big deal with dragging/droping controls. That's just the tool. You can write ASP.NET in vi if you want to :-) Actually, often as not, I work in HTML view. I am equally fluent writing server side Perl or classic ASP. Give me a nutshell book, and I'll do PHP or Zope or tack your pick.

    Time will tell which of us is correct about the direction ASP.NET takes. I'm not going to try to save it, I'll just use it because it's a lot easier to design maintanable web sites in it than in the classic ASP/PHP model.

  219. Urdu and English are Most Common Languages... by Anonymous Coward · · Score: 0
    for Indian developers.

    Of course, they all write in Java, since they're paid by the number of Lines of Code (LOC) generated.

  220. The right answer: who cares. by doom · · Score: 1
    Currently I'm working for a company with a large mod_perl code base that's been around for awhile. They've got the kind of code that makes perl-haters hate perl, but it hardly matters: it's a successful business, and the lousy code in the back end just doesn't matter that much.

    Myself, I'm a perl loyalist... what problems it has can largely be avoided if your programmers are any good, and it has in my opinion a spirit of cooperation going for it that most other languages can only hope for (it's *extrememly* difficult to think of an idea for some general purpose code that has been implemented on CPAN six times already).

    But when you really come down to it, it just doesn't matter that much... the idea that you're going to win the battle by technical superiority is a standard sci-fi geek fantasy, but it just doesn't play out that way in the real world all that often.

  221. Re:Use ASP If You're A Microsoft Shop by The+MESMERIC · · Score: 1

    I prefer ASP over ASP.NET

    ASP.NET and its WebForms are abhorring - it doesn't comply to standards. Which means you have to go down the XML/XSLT route. Complexity then shoots up astronomically from there.

    For *tiny* applications ASP is ideal, you can edit run-time.
    For *big* applications you really can't use ASP unless you have your own dedicated server. Many separate logic from presentation by using Components, some even use WebClasses.

    I suspect most huge website using ASP uses components and MTS.

    I seriously wished I knew JSP.
    It seems to be better than ASP / ASP.NET / PHP by many leaps and bounds.

    ASP however, seems ideal for the quick website though, you can put something up (searches, email forms, etc) in a matter of minutes.

  222. In terms of stability of the language, yes. by amarodeeps · · Score: 1

    With just the differences between PHP 4 and 5 one could say these are two different languages--and I won't even go into previous versions. The change in OO features has been dramatic, I don't think you can debate that. While Java has also changed significantly over the years, entire basic syntactical structures have not received nearly as dramatic changes--I've mostly seen upheaval in libraries and additions to syntax, including evolution in the way design patterns have been approached as people have learned to use the core syntax of Java effectively. But I digress...

    For this and this alone I will make the claim that Java is 'older,' whether or not this is absolutely true. It certainly is more mature, and does not suffer as dramatically as PHP from the "language by committee" problem.

  223. And all I can say to that is... by amarodeeps · · Score: 1
  224. tomato tomato by valeski · · Score: 1

    I work for a large-scale ISP/Media/Publishing company and we just went through about 12 months trying to analyze this question. In the end, we resolved that no language stands out of the pack once you put them in a scale, heterogeneous, production environment, that connects to a wide variety of backend services. If your developer pool knows one language over another, you're likely better off just going with that lang. If you're C#'ing it, you're stuck w/ MSFT VMs and servers. If you're Java'ing it, you have to wade into all the different VM/app-server providers, though we concluded they're all the same over a six-month period; the engines themselves are commodities at this point.

  225. Re:What is your definition of compiled and interpr by boner · · Score: 1
    My use of the terminology is not wrong it is sloppy. The point I was trying to get across is that there are less stages for deployment for PHP (which is parsed by the environment and then cached), while Java and C# are compiled first and their bytecode is deployed and executed in the JVM, and C/C++ are fully functional after compilation. From a productivity point of view Java and C# are compiled languages because they require compilation before deployment.

    Your point about the necessity of communicating precisely what is meant by using the correct terminology is well taken and I stand corrected. You however could benefit by including elements of civil discourse in your postings.

  226. Maybe not as bad, but close by SkiifGeek · · Score: 1

    My final year undergrad project at University was to write a two-dimensional flight simulator (really only one dimension of control - pitch, the second is throttle) in Macromedia Director (using the inbuilt scripting language Lingo).

    It was the pet of the head of the Aeronautical and Mechanical Engineering School, and I took over from a PHD student who had managed to mangle it pretty badly, and it was still not workable after two years.

    The intent was to provide a learning tool for first and second year Aeronautical Engineering students to provide practical display of the theory being studied.

    When I started reading the code, I quickly decided that the easiest way to refactor it was to nuke most of it and start again. The logic was very poorly presented, and poorly documented, but there were some inspired elements which were worth keeping.

    Inside of six months, I had managed to deliver above and beyond what the School Head was expecting, and had a fully functional simulator, with some interesting additions. Unlike MS FS, which uses approximations and predetermined limits for a flight model (which doesn't really exist), the simulator used the base theoretical models as applied to a true NACA aerofoil. The difficulty was determining the lift curve when the aerofoil was travelling in a reverse flow (i.e. backwards), allowing demonstration of tail slides and horizontal aircraft movement when the aircraft is pointed straight up or down.

    One of the best moments came early in testing when the model demonstrated a pilot induced oscillation recovery perfectly, telling me that the model worked. At the end of the project, even I was amazed that such a piece of crap as Director could be hammered into submission for such a project, but just because it can be done, doesn't always mean that it should.

  227. Shivver me timbers - tell me you're joking! by Anonymous Coward · · Score: 0

    I've seen code that executes stuff on the command line, right from a GET string.

    If there was a Darwin Award for programming...

    Maybe like a "Bonehead Code Resulting in Job Loss" for people who (for the better) have been removed from the labour market for programmers. Kind of like a Black-List if you will.

    I'd say this is the strongest case for such a title. Anyone else got any other nominees?

  228. Another inane "one true religion question". by Anonymous Coward · · Score: 0

    Good job on the moderation. Always nice to see pointless demonstrations of ignorance,

  229. PHP, Perl, mod_perl, C mod_apache, Javascript by fprog · · Score: 1

    "As many as possible" => Not really.

    Use the best tool for the best job, it really comes down to what is the language that easily support the feature you may need.

    If you use perl, then force everyone to
    "use strict; use vars qw{GLOBAL_VARS}; sub main { ... } main; exit; 1;" and document code with POD, divide things into modules and document any non-trivial regexp, like you would do in a sensible language. Then when the project is done do a code review, if people say:
    "I don't wanna do or care about a code review", they probably wrote some crappy code. You may want to use mod_perl for speed, just wrap your thing into modules and call the "main" loop.
    Don't forget to free up any resource.
    You may also want to use the Perl Template Toolkit, see the books by O'reilly.

    "Use PHP for the front end",

    PHP or Perl both are good and simple to maintain, *if* written properly. Any source code is hard to maintain especially if temp() and V was supposed to be called getInventoryStock() and StockEntryVector, respectively, but were not because the 'incompetent programmer' decided to use these since that part never worked and once it worked *by magic*, he didn't clean up the code...by fear that it will break again. [True story]

    For one project we used both, since it was easier to create 3D pie chart on-the-fly in PHP then it was in Perl. So, Perl called PHP with a generated DB array... [Another true story]
    There is a sample 3D pie chart tutorial here:
    http://www.peters1.dk/webtools/php/lagkage.php?spr og=en

    "Perl for input parsing," => Yes.

    "Euphoria for the graphics," => Probably better off with Flash... or with Perl/GD, PHP/GD... depending how simple/complicated it is.
    Next bet would be SVG, but it's not widespread enough yet.

    "JavaScript on the client-side," => Yes, that was straight-forward, unless you think about IE-specific VBScript... which is a big no-no unless you work for Microsoft.

    "Moo for the database" => PHP/PEAR or Perl/DBI or or Perl/Class-DBI or similar please. [Did you really ever use that?! or you simply search google for a weird technology to look cool?!]

    "and Python for the glue to hold things together."
    Perl is the mother of all glue language... for more than a decade, check CPAN.
    [Personally, I find Perl more readable then Python, even cryptic Perl]

    As for if you want true speed and write a GUI front-end for a locked-down kiosk machine, you may need to interact with device drivers
    and therefore C mod_apache modules may come to the rescue... [Another true story, was better than X11, since they planned to move it to Windows CE in the future!]

    mod_apache modules are also much more faster then
    mod_perl, but unless you're dealing with millions of queries per day, it should not be needed.

    I never saw a 'huge' commercial project done in Python, Ruby, Moo or Euphoria, in the last 10 years...

    Also, there is JSP and J2EE, they seems also to be good technology, even though I never used them
    personally. But maybe for secure e-commerce website, I heard some good comments about it...

    In general, I have seen tons of website done in:
    Perl, PHP, ColdFusion, Flash, legacy C/C++, JSP,
    and more recently tons of .NET, ASP, ASP.NET, C# and similar IIS crapt... thanks to MSCE and MSDN Universal licenses...

    As a side note, the 5 companies which were using .NET were "over budget, over 12 months late on their release date. At least one of them changed often their 'incompetent' MSCE employees... while the other seems to have perpetual MSCE job offers.

    The word 'incompetent' came from the mouth of a .NET manager, who fired the 5 out of 6 "Junior MSCE" and who was still looking for some "Senior MSCE"... [Another true story]

    What is funny is that 2 weeks later, the "average MSCE" decided to quit for a better

    1. Re:PHP, Perl, mod_perl, C mod_apache, Javascript by Ian+Bicking · · Score: 1
      I never saw a 'huge' commercial project done in Python, Ruby, Moo or Euphoria, in the last 10 years...
      Several 'huge' web companies use Python extensively. Specifically Google and Yahoo both use Python a great deal. Google does all their frontend stuff in C++ and Python (C++ for the speed, obviously). Yahoo is much more eclectic, but they've used Python a great deal in their products for a long time now. Python isn't used a great deal by code monkeys, nor in institutional environments where Java and .NET is popular, but Python has been used in some very large projects.
    2. Re:PHP, Perl, mod_perl, C mod_apache, Javascript by |<amikaze · · Score: 1


      I've also seen python used in non-computer-science academia, because of the simplicity and cleanliness of the syntax. It really just looks like executable pseudocode (well, until you get into some of the more exotic features of the language)

  230. MOD PARENT UP TO +5!!! by Futurepower(R) · · Score: 1


    MOD PARENT UP TO +5!!!

    "For small projects, Perl's libraries still may tip the balance, but for any kind of large project, the severe deficiencies of the Perl language make it a poor choice."

    The developers of Perl wanted to save time in script programming, and that worked when all other tools were worse. But trying to make Perl a full language has exposed design deficiencies that were always there.

  231. Re:Lotus Domino-what's the problem? by tigersha · · Score: 1

    I agree there. Lotus Notes is and always has been a very good workflow, mail and colllaboration system. It is not very good at anything else though.

    Thhe problem is exactly that "pretty" part in the webappp. That is an issue if you site need to have some kind of actual coorporate design, as quite often it does. Notes is great for small internal dev apps if nobody cares too much about the looks and its great for quick jobs. I once wrote a app for sommeone to upload a set of files with comments while I was on the phone and the chick was very seriously impressed.

    As for the normal Notes client, I am not convinced that it belongs in the User Interface Hall of Shame (where it occupies a honorary position). Lotus Notes's interface is somewhat different fromm amyn other (and its the only thing that look like crap on my Mac) but in general its really not that bad and it has some very good iideas. Not if only the iidiiots would let you select alll the doocuments in a category by clicking next to the twisty...

    If you develop for the Notes cllient in the collaboaration space Notes is fine. Using it for most others things is a bit of a disaster though, and that is sadly what happenns to it.

    And I have nothing to say except negative things as to the friggin need to BUY a plugin to SEARCH your codebase. What else do they want, buying a plugin to display on the screen??!! Searching your code should comms standard and iits s damn shame because Notes already has a very good search engine built in. Notes has quite a few quirks like that, things that should have been obvious but not put in, the whole API seems to be a set of hacks appended to a non-too-bad base.

    --
    The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
  232. The right language... by mcrbids · · Score: 1

    The right language depends on who's doing the work. That's right. Today, there really is NO right language. There are many languages. Some of them are very comparable.

    But the language doesn't really matter. Look at the developers, your staff. What are they proficient in?

    I once had an executive ask me about buying Sun hardware. I told him that Sun was irrelevant. Take a look at his staff. What were they familiar with?

    I'm personally very familiar with RedHat on Intel - so I'll buy Intel Hardware, and run Fedora or Whitebox on it. I'll do a good job, and what I put together works very well.

    I know Windows admins who do a good job with Microsoft tools. Not my boat, and I'm not floating in it - but they do a competent job.

    Don't look at the language, look at your staff, and compare that to what you're trying to accomplish. Trying to ask what's the "best" language is like asking what's the "best" car.

    What are you trying to do? A car that goes 0-60 in 4.5 seconds is probably going to suck if you have 5 children in your family that you need to transport from soccer games!

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  233. Re:Ruby on Rails... python by CarpetShark · · Score: 1

    It's OK. Basically, what's nice about it is the automatic database layering, but any dynamic language like python can do that, and in fact, does do that. Even PHP5 has similar options, afaik. However, RoR doesn't scale as well as it looks in examples: things get complicated quickly. Also, if you're not used to the syntax of Ruby, it can be hard to get to grips with. Personally, I'd recommend Python. It's a modern, powerful, well-supported language, and it's incredibly fast language for development: building complex features that would take a day in C++ takes about an hour in python, yet it still encourages most of the best practices for good programming, unlike languages like PHP. It's much more readable and maintainable than Perl, and modern APIs and refactoring tools like Eric3 make it a pleasure to work on, too.

  234. To me there are currently two real options by MemoryDragon · · Score: 1

    If you want to stay cross platform. Java with JSF/MyFaces for big sized webapps (the component model slashes development time significantly although the learning curve is very steep)

    Ruby/Rails for small to medium sized apps with small dev teams. Active Recordsetzs and other nifty things slash also development time down to nothing, but do not scale very well once teams get bigger of apps more complex.

    All other interesting options (Tapestry) either lack tool support or lack crossplatform support or are crippled by deployment licenses. (ADF Faces, Webobjects, .Net Webforms)

  235. Yeah, testing and review... by C10H14N2 · · Score: 1

    There's the rub, babe. Particularly the "review" part.

    The point, which you've obviously taken into account yet discarded for the sake of being contrarian, is that in an environment of any large application, there is a "testing and review" stage in the lifecycle.

    Certainly the vast, vast majority of major deployments contain varying degrees of Byzantine or worse "review." If your environment does not and you are managing such a large codebase, you are in for one hell of a CYA session (perhaps resume polishing, even) should anything not go as expected if that is not the case as the sole responsible party will thus be the developer who last typed "commit, deploy."

    If you happen to have such a rapid turnaround as is implied, the next question is, what species of beings occupy your organization? If "minutes" is truly the turnaround, clearly it is not "humans."

  236. Re:php & mysql but take caution by Anonymous Coward · · Score: 0

    Someone is getting PHP and MYSQL confused...

  237. Re:Use ASP If You're A Microsoft Shop by Anonymous Coward · · Score: 0

    Wow! You clearly don't have the least fucking clue waht you're talking about.

  238. Re:Use ASP If You're A Microsoft Shop by The+MESMERIC · · Score: 1

    care to elaborate?

  239. Re:Use ASP If You're A Microsoft Shop by Anonymous Coward · · Score: 0

    What bollocks, WebForms have nothing to do with standards, and comply with the abilities of the browser recieving them. If the abilities cannot be ascertained, a safe fallback set of HTML is output. This scales from the latest IE right down to web enabled phones if you do it right, as evidently you are not.Scalability has little to do with what language you use, and plenty to do with how you use it, and how well seperated your logic and presentation tiers are. Ideally a well crafted presentation tier will use so much caching and work avoidance that you can add plenty of them and still not tax your database machines limits.

    *That* is how you scale. Another good trick I use is decoupled database writing using a message queue, and then optimizing for fast reads with indexes. If you design your application so that fast comitting is not nessecary, you gain a large performance boost straight off the bat.

  240. erlang brings life back to programming by root-a-begger · · Score: 1

    PHP and Ruby have lots of easy to use code libraries. But for secure, scalable, solid performing, provable code...I just can't get over my happiness with erlang. http://www.erlang.org./ I worked with Java for over 7 years. We developed very scalable network oriented apps. We built our own frameworks and used others as well. Much of the code was well engineered, but at a high cost of dev time and testing. The problem of massive concurrency was a continual worry. We could be very diligent in making things thread safe, but little things would pop up every now and again. Things that were very difficult to debug. New server, more CPUs...get ready for new found concurrency bugs. As I started over last year to build a new system, I wanted completely away from concurrency problems. I also wanted frameworks that were more lightweight that J2EE ('nuff said). In addition, I wanted something new that made me enjoy programming again. I ended up choosing erlang...yes, it has everything for developing web apps...and then some. It is very scalable and the code is provable to be correct for concurrency issues. Security is top notch and performce is very good. In addition, HTTP server, a good object/relation db, Jabber server, HTML script engine...everything is all written in erlang. No need for mixing code to get a complete solution!!!. Venture out a little...try something new...you might be very surprised.

  241. Don't let your developers decide by midnighttoadstool · · Score: 1
    The developer doesn't have as direct a responsibility for a project as those above, and is much more likely to make a risky choice out of convenience or some other poor motive. A developer is a grunt, and they will be thinking of the effect a language has on day to day grunt work, and not the higher and more important aspects of the project (such as the goal). I've seen this happen.

    Certainly it makes sense to involve the developers, but not to give them that degree of power. And further : to involve them in such a way that the eventual choice is not resented, or not resented much; and I think that giving them the impression of choice is one way to eventually get a lot of resentment.

    I should also add that allowing developers to choose the language is an unhealthy precendent that has a significant potential for eventually undermining management. Don't give an inch...

  242. Re:Use ASP If You're A Microsoft Shop by The+MESMERIC · · Score: 1

    Seems like it is you who dont have the foggiest idea what I am talking about .. go and revise some textbooks.

  243. HTML not a replacement for Crystal by Tablizer · · Score: 1

    Oh and instead of wasting time and money for Crystal Report, reuse those HTML reports and batch print them directly to the network printer from your user-friendly C++Builder application by embedding InternetExplorer using DCOM.

    But Crystal is "paper friendly", HTML is not. Getting the margins, borders, and page-breaks to work right with HTML is a major PITA, if even possible.

    1. Re:HTML not a replacement for Crystal by fprog · · Score: 1
      You never use MS Office CSS extension and InternetExplorer HTML did you? =^D

      Page-break, you print 1 page per HTML file. *safer approach*

      If your report is a template, and you know that your invoice can print as many as 50 lines per HTML page,
      at line 51 you continue on to the "next page HTML template".

      Margins and borders can be fixed with the help of MS Office HTML extension that works just fine in InternetExplorer and Mozilla.

      p.MsoNormal, li.MsoNormal, div.MsoNormal
      {
      mso-style-parent:"";
      margin:0in;
      margin-bottom:.0001pt;
      mso-pagination:widow-orphan;
      font-size:10.0pt;
      font-weight:400;
      font-style:normal;
      font-family:"Arial";
      mso-fareast-font-family:"Arial";
      }
      @page Section1
      {
      size:11.0in 8.5in;
      mso-page-orientation:landscape;
      margin:.6in .6in .55in .6in;
      mso-header-margin:.5in;
      mso-footer-margin:.5in;
      mso-paper-source:0;
      }
      div.Section1
      {
      page:Section1;
      }

      As for paper margins, these can be fixed via PageSetup in the Windows registry quite easily.

      //getRegistryValue...
      TRegistry *reg = new TRegistry;
      reg->RootKey = HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER;
      reg->OpenKey( KeyName, false );
      value = reg->ReadString( StringName );

      //ReadRegistryKey...
      AnsiString key = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";

      // for loop
      margin_left, margin_top, margin_right, margin_bottom, header, footer, printer, orientation, paper_size, paper_source, ...

      The only tricky thing is printing landscape on a network printer, since you don't have the orientation priviledge using software, but that can be "fixed" easily by pre-setting or prompting page setup via DCOM or toggling using:
      .landscape
      {
      mso-rotate:-90;
      writing-mode:tb-rl;
      }
      and now your 8x11 page is "landscape" by being rotated sideways. Don't forget to rotate any gif/jpeg/png, since that only rotate text.

      Have a nice day!
    2. Re:HTML not a replacement for Crystal by Tablizer · · Score: 1

      But things like breaking sub-totals at the right spot are still problematic. And, if a line is longer than expected, it may throw off the estimated size of the page. You almost have to deal with positional coordinates to get those things right. Without it, it is like trying to find the outhouse without a flashlight by counting your steps. Otherwise, how do you know *where* to put the page-break for dynamically-generated content?

  244. Ruby? Smalltalk? by Anonymous Coward · · Score: 0

    There are some interesting frameworks, like Ruby on Rails, and Seaside.

  245. Brainf*ck! by Anonymous Coward · · Score: 0
  246. Programming web apps in XML with OpenLaszlo by SimHacker · · Score: 1
    I program in XML all the time with OpenLaszlo, and I love it.

    XSLT is a weak, horrible programming language, which gives other XML based programming langauges a bad name. It's only useful for performing simple XML text transformations, but not for programming interactive networked XML data driven graphical user interfaces, which OpenLaszlo is great at.

    OpenLaszlo is an excellent open source web programming language based on XML and JavaScript. Your class declarations, object instantiations and configuration constraints are all defined in XML, with JavaScript expressions in attributes and JavaScript methods in text content.

    OpenLaszlo strikes an elegant balance between XML and JavaScript, so Laszlo code is quite clean and easy to read and maintain. IBM has developed an Eclipse IDE plug-in for creating Laszlo applications with drag-and-drop and XML outline editors.

    You can see for yourself how easy it is to develop interactive graphical web applications in XML+JavaScript with OpenLaszlo: Laszlo in 10 minutes. You can actually see, modify and run Laszlo scripts over the web, to learn how it works.

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  247. Re:Perl for everything by tgv · · Score: 1

    Yes, especially for lame bugs, like trying to find out why "while ( && )" doesn't work.

    No, PERL was badly defined, just to hack a few scripts and then extended by people who knew absolutely nothing about syntax, orthogonality or readability. A horrid language.

    By the way, there's only one language for building large scale web-sites: AWK!

  248. My take,,,, by kg4czo · · Score: 1

    I'm a PHP programmer learning Java right now, but I've also dabbled in python and C++. So far, I can see making general useful tools with both. PHP was written for the Web. Hands down it is the easiest language to learn I know of. Very little can compete with the MySQL/PHP for web applications involving the need for a database.

    Java and Javascript, on the other hand, can be mighty powerful. The main problem I see is that serverside implementations like Tomcat and JBoss don't use the same, or even similar syntax, so you're pretty locked into whatever you start with.

    PHP is probably the most common, cross-platform, out-of-the-box running web scripting language, besides maybe perl(ack!), I've found. Did I mention it's fast? Also, most of the webhosts running on *nix systems support it, but very few also support JSP's. (I've been on the webhost "scene" for more than 2 years now)

    Another problem I've seen in my place of business is that most of the JSP/Java programs are really, really, really slow. We're talking about a program that takes MINUTES to load, or a web/database frontend that takes MINUTES to find what it wants, format it, and present it. This is rather annoying if you ask me. Especially when there's a customer on the phone also waiting for the data. bleh! We also run multiple Java backends (JBoss, Tomcat, and Resin) which always seem to crash for one reason or another.

    Chances are, if you're hosting your own site(s), do whatever you want. Any language is scalable and fast if the developers do it right. Otherwise, I'd probably go with PHP on the frontend, and use any number of SQL servers freely available if it's needed.

  249. Re:Lotus Domino-Small apps only?? by dogugotw · · Score: 1

    Let's see...
    I know that Abbott and Bayer use Notes for worldwide applications in an FDA regulated environement. They scale, they're secure, they meet FDA's Part 11 rule, they're easy to build, easy to deploy, easy to maintain...hardly the stuff of small time intranets.

    Look and feel - that's not a Notes thing. You can make Notes apps as pretty or as ugly as you want. Like everything else, it's just time and money. I prefer quick, easy, native and am more than willing to live with ugly if it gets the job done.

    Re the 'must buy addin to search'; I'll concede this point. On the other hand, Notes does provide several native ways to find code so you don't actually have to buy Team Studio.

    Doug

  250. Higher Order Perl trying to be more like Lisp by SimHacker · · Score: 1
    First of all, Lisp is just as useful for imperative programming as any other language, so it's not a question of Lisp=declarative, Perl=imparative -- it's a question of other languages catching up to Lisp.

    Perl has been gradually tacking on closures, declarative programming, metaprogramming and other lisp-like features to the language, in a piecemeal fashion. But Perl will NEVER have a powerful, simple macro system like Lisp, since Perl's fractal syntax makes that totally impractical.

    -Don

    Interview with Mark Jason Dominus

    The Perl Review: Why did you write Higher Order Perl?

    Mark Jason Dominus: My main reasons were as I explained in the preface of the book: It had become increasingly clear to me that most Perl programmers seemed to be writing C programs in Perl, and that it was possible to do a lot better than that. We have a really good tool, and it's a shame that we're using it the same way that we have to use the old crappy tool.

    [...]

    TPR: At the start, you compare Perl, Lisp, and C and say that Perl is more like Lisp than C. Do you think Perl would be as powerful if it was closer to C? Could it be more powerful if it was closer to Lisp?

    MJD: I don't think anyone thinks that Perl would be more powerful if it were closer to C. In the 1980s, Unix sysadmins wrote in C and in Bourne Shell, and Perl has largely replaced both of those for those sorts of tasks, leaving C a fairly small niche.

    In the preface of Higher-Order Perl, I said that Perl shares six of Norvig's "seven features that make Lisp Different". The seventh one is the one that Norvig calls "uniform syntax". That's the one that led Larry to say that Lisp looks like oatmeal with fingernail clippings mixed in. But it enables language features that are so powerful that they're almost unimaginable to people who haven't studied Lisp. It's really hard to do justice to the huge benefit that Lisp gets from its simple and uniform syntax, which Perl just doesn't have at all. Any attempt to construct Perl code dynamically is fraught with error, and we take it for granted that it won't work. For example, in the documentation of the Perl6::Subs module that was recently released, Chip Salzenberg says "This module is a source filter. Source filters always break." And I think that's true. But source filters in Lisp are easy to write, and they never break. Lisp's main assignment operator, "setf", is implemented with a source filter. So if Perl were more like Lisp in that sense, I think it might be more powerful. On the other hand, I don't think it would be very Perl-like.

    --
    Take a look and feel free: http://www.PieMenu.com
  251. Re:Orders of magnitude are base 2 in assembly lang by pommiekiwifruit · · Score: 1
    Yeah, but compare 6502 to MIPS:

    JSR routine

    as compared to:

    MOVE high 16 bits to register

    OR 16 bits to register

    Branch and link register

    Dang, branch delay slot?

  252. Re:Lotus Domino-repeat after me by dogugotw · · Score: 1

    Notes is not a relational database. If you need relational systems, don't use Notes. The lack of joins is not dumb, it's a result of Notes' object database structure.

    Views are not tables - the SQL join thing really doesn't exist in Notes. If you need joins, don't use Notes.

    Thing is, I've found most apps can be built without the need for relational structures. Sure, there's data redundancy required (store user name in ever doc/record if you need to look up results for the user later) but disk space is cheap.

    Use the _right_ tool for the job. Notes excels at quick development of workflow type apps (approval systems, doc control, discussions, action items, etc) which turns out to be a major class of apps used by businesses. Throw in the fine grain security (down to encrypted single fields in one record) and you have a great development platform for lots of apps.

  253. Why are session and application variables bad? by gknoy · · Score: 1

    It's been a while since I did anything remotely like a web application. For those of us that don't know, why are Application and Session variables bad?

    I'm not saying they're good -- I don't know anything about them, and am looking for better understanding. :)

    1. Re:Why are session and application variables bad? by SeventyBang · · Score: 1




      Um, someone needs to mod you down for not reading very carefully. ;)

      I didn't say the Session() and Application() collections (or variables) are bad. I said stashing ADO objects in them are bad.

      The reason why is threading. When you toss something such as an ADO connection object into one of those two collections, you're in essence locking that process space to a single thread.

      And if you have multiple web sites running in the same process space....

      As I said, it's in---credible how many people think they are the first to conceive of such a technique: "Hey! Instead of creating, opening, using, closing, releasing ADO objects, I'll create one, open it, toss it into a Session() variable and all will be well - I'll be able to use it on any page!"

      The real smart ones take it one step further: "Hey! I'll create one connection, pack it into an Application() variable and everyone can use it!"

      I followed behind one guy who littered these things all over the servers and on top of that, he did it in a six week application written in six months (using VBScript, which is no big deal) which used no subroutines, no functions, massive #include files, nested #include files to the point where I found them nested six deep. Every trip to the server meant 20k lines were played with. Yes, the server loaded them up the first time and processed them, but quad processor servers running the fastest chips at the time with vast quantities of memory were pegged with ca. fifty (yes, 50) users.

      On a side-by-side comparison, fixing the threading issues produced gargantuan returns in response time compared to semi-fixes to the code.

      That's not the only place I've dealt with it. When dealing with a "regular" ASP site and performance has been an issue, the best and first thing has always been (for me) to grep for the Set Session and Set Application strings. Inevitably, Set Session turns up more times than not. As cited above, the Set Application only turns up when someone who was really smart worked on the app.

      Things like this are what have given ASP a very, very, bad rep.

      Oh, these are also the people who use Access as their database because "they already own it" (or it's inexpensive) and don't want to pay for SQL Server. They've never heard of MySQL - or anything else, for that matter. If you tell them MSDE is free and supports five concurrent connections, they interpret this to mean, "only five people can use the web site at a time." and nothing can educate them beyond that mindset.

      So I'll amend my earlier statement:

      When dealing with super-slow ASP-based web sites, grepping Set Session (and possibly Set Application) will show up as will the use of Access.

      Does this clear things up?


  254. Irony. by gknoy · · Score: 1

    The senior programmer (manager of our department) where I used to work wrote an entire web application (seemed small, but was VERY robust) in COBOL. He ended up writing his own HTTP replies by hand, etc.

    Crazy stuff.

    We had built several Java-based web apps, and the sheer amount of things he had to do that were done 'automagically' for us (such as getting/parsing input parameters, hehe) was staggering.

    So yes, you *can* write web apps in COBOL. If you're a programming GOD. (Jim is ;))

  255. Oracle by cerberusss · · Score: 1
    Oracle!!! Or rather its interpreted language PL/SQL; pascale with lots of SQL-like features. This big bad-assed database has a bunch of libraries and an apache module that puts requests through to stored procedures!!

    Think about it, man!! YOU'LL BE THE ONLY ONE TO MAINTAIN IT!

    --
    8 of 13 people found this answer helpful. Did you?
  256. Are you trying to be obtuse? by Some+Random+Username · · Score: 1

    PHP does not seperate modules from language, that is the problem. If you add a module, it is just a mess of shit shoved into the global namespace. Reasonable languages have namespaces.

    As for scaling, you are talking out of your ass. Please, go ask those people about scaling PHP. They are using it as a template language, and wasting money on lots of extra hardware to do it. It does not scale well at all compared to better languages (pretty much everything but PHP) when used to create web applications.

    And I am not confusing anything, you are just ignorant. PHP itself has had DOZENS of stupid security problems. There is even a hardened PHP project in an attempt to address the fact that the PHP developers are incompetant, constantly create trivial exploits in PHP, and do not care enough to learn to do things correctly. This has nothing at all to do with writing code in PHP, and everything to do with all the exploits in PHP itself.

    I suggest hooked on phonics, it will help you understand the words you read so you don't respond with a pile of complete and utter bullshit.

  257. Look harder and assume less. by Some+Random+Username · · Score: 1

    Look harder, PHP has a horrible security track record, no other language is even close to as bad.

    I said nothing about writing insecure code in PHP, although it does encourage that with its idiotic configuation (register globals, magic quotes, etc), and with even zend putting up example PHP code to teach people that is insecure and full of SQL injections.

    1. Re:Look harder and assume less. by digitalstruct · · Score: 1

      This is obviously not about the PHP Language itself as you are definitely looking at your alternative as better... While I can program java, I can program python, etc etc... I use PHP for the web, and in an enterprise environment as that! You claim PHP is the root of all evil, take a look at an operating system, whose job is it to make sure that any type of security whole is plugged? Yours. Next lets talk about scalability, PHP is highly scalable as long as you understand the structure and logic of the language, which is not like your current language. That is why it bugs you. Currently I have around 30 files that operate 70 websites (and no this is a single set they are not mirrored on all the sites). Pretty much they are mainly objects and a few controllers which the user can override the global scope in site of their local scope for pages. The configuration is easy and sql injections can happen in just about any language. Programming for the web I can pretty much show you vunrible applications everywhere. This is not just a PHP thing. How about the infamous buffer overflows with Java? Had that one happen? This thread is mainly all opinionated with no factoral history. And if you are going to call out something as huge security risks without providing a fact then you are just blowing steam up everyone for no reason. Get a job, learn more about secure computing, and stop trying to advocate other languages as better than this or that when it is simple opinionated with out any benchmarks, security advisories, references. Now heres my turn. Java has security problems because people code them in according to your philosophy, as for the tutorial on writing secure php code... well here is one for java: http://www.javaworld.com/javaworld/jw-12-1998/jw-1 2-securityrules.html Meanwhile here are the latest records for programming languages (latest versions) php: http://secunia.com/product/3919/ asp.net: http://secunia.com/product/2173/ java jdk: http://secunia.com/product/4621/ j2ee: http://secunia.com/product/2644/ python: http://secunia.com/product/4604/ As for scalability : http://www.onjava.com/pub/a/onjava/2003/10/15/php_ scalability.html http://www.oreillynet.com/pub/wlg/5155 there are numerous resources on the net on writing secure code for all programming languages, everything you mentioned in this entire "rant" is worthless and doesn't do anyone any good. Please go crawl back in your hole.

  258. Boy, how old are you? by Anonymous Coward · · Score: 0

    I guess you never worked professionally in a BigCorp(tm).

    The number one concern in the CS field for the last decades has been to manage complexity. To use as few different kinds of technologies as possible is one way of helping reduce complexity. To use a bunch of different techs (languages, middleware, hardware, network configurations etc.) increases complexity and is A BAD THING. Any experienced architect or programmer thinks both once and thrice before introducing any new tech for a variety of reasons of which complexity ranks at the top.

    If you use different techs to get a performance boost, I'm must certainly sure you are tackling the problem the wrong way. The number one reason for bad performance is by using sub-optimal algorithms. Start by profiling and using better algorithms for your bottle-necks. After that you throw more iron at the problem (one server costs about the same as about 10-20 developer hours, i.e. dirt cheap). Introducing new techs comes when alternative 1 and 2 isn't enough. Usually only done under very special circumstances and most likely shows you did a poor tech selection early on, going with the wrong tech for the problem at hand to begin with.

    Just because many of us wants to keep complexity low by standardizing on as much as possible doesn't mean we don't know a lot of different languages and arhitectures. Your basic reasoning is flawed as you assume

        A is a subset of B <-> B = A

    (where A are the techs we talk about for the propose of application to a specific problem and B are the techs we know)

    Perhaps it's time to realize that it's probably more likely the following is the case

        A is a subset of B <-> there exist n which is an element of A such that for all n, f(n) is a good solution

    (where f is a problem domain)

    Note, this says nothing of the number of techs we know, only that we chose to talk about selected ones which we deem suitable to the problem domain.

  259. language identity by WhiteDragon · · Score: 1

    well, you stumped me. I tried haskell, ocaml, python, forth, erlang (although I don't know enough about erl to see anything, even an error message), tcl, perl, bash, csh, and DCL, and none of them liked it.

    --
    Did you mount a military-grade, variable-focus MASER on an unlicensed artificial intelligence?