Slashdot Mirror


Ask Slashdot: Tips For Designing a Modern Web Application?

New submitter sdoca writes "I am a Java developer and for the past number of years I have mainly been working on server side code. I have an idea for a webpage/application that I would like to develop. For the general public, it will be a site where they can view upcoming events, filter them by type, date etc. and view details of events they're interested in. There will also be an admin section to the app where organizations who want to post their events can log in and set them up. In the long term, writing a view-only version as an Apple and/or Android app is on the radar, but I want to focus on the generic web app for now. I'm not sure what languages/frameworks to look at using for the webpage portion of my project. Many (many!) years ago, I wrote some applets. After that I did some work in WebObjects and after that I tinkered with Wicket. I have no experience with PHP and would like to stay in my Java comfort zone as much as possible, but want to use the right tool. I'm concerned about browser compatibility issues. Chrome didn't exist when I last did web page development. I'm looking for good resources (books, internet) that will guide me through the potential issues and your recommendations for a web development framework."

409 comments

  1. Most important by Skal+Tura · · Score: 0, Flamebait

    FORGET java, forget everything you know about JAVA development.
    Go with PHP, and CodeIgniter or similar framework which does not force you to their patterns (ZFW used to be like this...)

    and keep it simple - keep everything as simple as possible.

    And "PHP Templating" is *NOT* templating, it is spaghetti some ate yesterday and came up today.

    1. Re:Most important by Anonymous Coward · · Score: 0

      Agreed.

      I recommend Synfony2. Fabien Potencier wrote a great series of articles on building your own framework on top of Symfony components which is awesome for someone who knows programming but has no experience with PHP.
      http://fabien.potencier.org/article/50/create-your-own-framework-on-top-of-the-symfony2-components-part-1

      Many would argue that PHP is not even an actual language as Java is a complete one. But that's not what the web is all about. You cannot build a 'modern' webapp using java anyways. While PHP should be the obvious choice, Ruby and Python are also worth considering.

    2. Re:Most important by Cyberax · · Score: 1, Flamebait

      Yep, that'd be great advice. After we shoot all living PHP developers and go back in time to change PHP to be something decent.

      ANYTHING is better than PHP. Anything. Even CGI scripts in Perl.

      And Java is fine for web development. In particular, Wicket + JRebel + IDEA can allow one to write code waaaay faster than stupid PHP coders.

      Also, I might recommend Scala and Typesafe stack: http://typesafe.com/stack - it's quite nice and powerful.

    3. Re:Most important by aztracker1 · · Score: 2

      Honestly, not such a fan of either Java or PHP... I'd probably suggest Python/Django, NodeJS/Express or ASP.Net MVC as more modern frameworks that are faster to get up and running with.

      --
      Michael J. Ryan - tracker1.info
    4. Re:Most important by countach74 · · Score: 5, Insightful

      What do you mean you cannot build a 'modern' webapp using Java? It's done all the time. If memory serves, Gmail is in Java. I also disagree with PHP being the obvious choice. It's a lot like JavaScript: it's everywhere, so people use it. It doesn't change the fact that it's a piece of rubbish. Ruby and Python are much better suited towards modern web development. PHP is glorified template system that is extremely inconsistent and overall ass backwards. The whole notion of mapping a URI to a file is so 1990's.

    5. Re:Most important by Anonymous Coward · · Score: 5, Interesting

      Google is not a PHP/Python shop. The four development languages are C++, Java, Python, and Go.

      Gmail is indeed written in Java.

    6. Re:Most important by spacenet · · Score: 3, Funny
    7. Re:Most important by spacenet · · Score: 2

      Sorry, meant to reply to the above post. Gmail is not written with the Google Web Toolkit, but other Google applications (which can be considered "modern") are.

    8. Re:Most important by Anonymous Coward · · Score: 0

      Yes because google is a small company that only uses 2 languages across the entire organization. Derp.

    9. Re:Most important by Anonymous Coward · · Score: 0

      What do you mean you cannot build a 'modern' webapp using Java? It's done all the time.

      Done all the time...as in many Java web projects are started and slog on for years until the money runs out.

    10. Re:Most important by Jane+Q.+Public · · Score: 4, Insightful

      I second countach74.

      Python, or my personal preference Ruby, are vastly superior choices. Django and Rails are intentionally -- and more to the point, well -- designed to be friendly web frameworks, built on top of their respective languages.

      I don't even call PHP a "language". It is just a hodgepodge of inconsistent utility functions bundled together. PHP was originally designed with the Web in mind, and only later added pretensions of being a general-purpose language, with Object Orientation kind of bolted on even later as an afterthought.

      Because Python and Ruby are far more internally consistent than PHP (Ruby even more than Python, in my opinion), they are also easier to learn. However, learning the language and also the framework entails some serious work. That is just the nature of the beast... there is no getting around it. You need to know the language, the framework, HTML, CSS, and JavaScript.

      Nobody said serious web development was easy.

    11. Re:Most important by thisisauniqueid · · Score: 2, Informative

      You're right on the list of four languages. But Gmail (at least the frontend) is written in hand-coded Javascript. The whole point of the Closure javascript-to-javascript compiler was to optimize and obfuscate hand-coded Javascript for Gmail.

    12. Re:Most important by XaXXon · · Score: 1

      You extremely forgot javascript. They do TONS in javascript. Including gmail.

    13. Re:Most important by countach74 · · Score: 1

      I'm not a big fan of complex frameworks, myself... It's too much "magic" for my tastes. Have you experimented with CherryPy? I find it absolutely fantastic. It's not a web framework, but HTTP framework.

    14. Re:Most important by Jane+Q.+Public · · Score: 1

      I admit that it took a while to get my head wrapped around what that "magic" was doing behind the scenes, which is really necessary if you are serious about developing with it.

      But I have, and now, given the graphics, I can get a basic site up and running very quickly, the majority of the time being spent on the layouts: HTML and CSS.

      I have only one objection to Python, but it is a serious objection: most of the sites for which I develop have been on hosted servers. And most of those support Rails these days, but relatively few actively support Python and its frameworks.

    15. Re:Most important by countach74 · · Score: 1

      Ahh... I run my own AWS instances and host things that way.

    16. Re:Most important by Anonymous Coward · · Score: 0

      You're right on the list of four languages. But Gmail (at least the frontend) is written in hand-coded Javascript. The whole point of the Closure javascript-to-javascript compiler was to optimize and obfuscate hand-coded Javascript for Gmail.

      Uhh, he said Java, which is quite a bit different than Javascript.

    17. Re:Most important by PCM2 · · Score: 4, Informative

      You're talking at cross purposes here. Obviously the front-end UI of any modern Web application is going to be written using a lot of JavaScript. Java, Python, and PHP -- and many other languages -- are primarily for the back-end code. Gmail is certainly not accessing its database or implementing IMAP and SMTP in JavaScript.

      --
      Breakfast served all day!
    18. Re:Most important by Anonymous Coward · · Score: 3, Informative

      Maybe it was JavaScript after all?

      At the USENIX annual conference last month, Gmail engineer Adam de Boor surprised the audience by noting that the company's Gmail service was written entirely in JavaScript, and that all of its code, around 443,000 lines worth, was written by hand.

      http://www.infoworld.com/d/developer-world/google-executive-frustrated-java-c-complexity-375

    19. Re:Most important by jmerlin · · Score: 2

      GMail, and much of Google's stuff is written with GWT, which is a platform for developing the client-side of web applications that compiles Java code into JS. You can't really make a modern web app with Java and run it as java (you know, through a JRE, unless someone makes a JRE in the browser, and lol @ that), but you can cross-compile. GWT is like Coffeescript on steroids with a framework behind it as well. These meta-compilation schemes are becoming more and more popular. Look at Facebook, they write their website in PHP and compile it to C++ for efficiency with Hiphop. Google's Traceur compiles code from ES5+ down to ES3 so you can write code with advanced ES5 features on modern browsers that still only have ES3 support.

      It is still pretty common to write Java back-ends (primarily on Tomcat and a few other major players), but that's becoming less and less common in newer more modern web apps. I have no citation for this outside of my own observations, and I surely haven't seen everything so I might just be horribly wrong.

    20. Re:Most important by countach74 · · Score: 1

      Right... and my comment towards Java for web programming was directed at back end programming, because that's the only *real* choice one has as far as language is concerned. Yes, I realize one can compile other languages in JS, but in the end you're still dealing with JS. And I agree with you completely about Java back-ends losing popularity; perhaps it's because of all the negative opinions of Java? I know I for one stay away from it because of its proprietary nature.

    21. Re:Most important by outsider007 · · Score: 1

      That's actually some other weird language that nobody uses. But it compiles to javascript.

      --
      If you mod me down the terrorists will have won
    22. Re:Most important by outsider007 · · Score: 1

      This. If your client doesn't want to move to aws just mention free micro tier for 1 year for new customers. I steer my web clients that way and nobody has ever complained.

      --
      If you mod me down the terrorists will have won
    23. Re:Most important by Anonymous Coward · · Score: 0

      Javascript is amazing, but I've noticed some lackluster minds criticizing it recently, and I guess it says more about you than the language...

    24. Re:Most important by mangu · · Score: 2

      most of the sites for which I develop have been on hosted servers. And most of those support Rails these days, but relatively few actively support Python and its frameworks.

      I haven't noticed this. The only thing that Ruby has over Python is that it has one framework, Rails, that predominates. With Python there is Django, TurboGears, Zope, and a bunch of others. However I've never found a hosting company that offers Rails but not Python.

    25. Re:Most important by dvice_null · · Score: 1

      I would like to add that Javascript can be used to write back-end code also: http://nodejs.org/

    26. Re:Most important by countach74 · · Score: 1

      Then please explain to me why JavaScript is amazing, because I certainly do not agree. In fact, I think it's apparent that Google does not agree with you this, either or they likely would not have invested so much in Dart.

    27. Re:Most important by Jane+Q.+Public · · Score: 1

      Maybe it's just my personal opinion, but I can't stand using AWS. Relatively speaking, it's a pain in the ass (and slow) to maintain compared to updating my Rails sites using Git. And if you want it to be efficient for an international site, you pretty much have to use S3 for your static content and then CloudFront, which costs extra and adds another level of Pain In The Ass.

    28. Re:Most important by Jane+Q.+Public · · Score: 1

      And I almost forgot to mention: I got a call last year from someone wanting me to save their Rails site because they had gotten an email from Amazon saying that the server it was on was suffering from a hardware failure, and they would be taking it down in 3 days so they should grab everything off of it while they can.

      Unfortunately, they received the email a day after those 3 days had already expired. Other than an old backup, their site was a total loss, and the database (also hosted by Amazon) was gone. So all their data from the time of the backup (which had been too long, admittedly) was lost.

      And without a service contract, Amazon was exactly zero help. Yes, it was their server, and yes, the hardware problem was their responsibility, but no, they would not lift a single finger to assist without a service contract.

      Also, if you recall, just about all of AWS went down for a period last year. As did Microsoft's cloud service, and Yahoo, and in fact just about all the "big solutions" that I can recall. Every single one of them had far more downtime last year than any of my sites.

    29. Re:Most important by Anonymous Coward · · Score: 0

      And even when they do build front end javascript applications they usually use GWT which means they're actually writing they're javascript in java.

    30. Re:Most important by Skal+Tura · · Score: 1

      Yet PHP is chosen by the largest web applications time and time over again, it simply scales, it's easy to utilize due to brilliant documentation and community.
      And mapping a URI to a file is not necessary with PHP. You've probably never used PHP for anything actually good.

      Ruby on web applications is basicly a rigid framework (RoR). Try to make Python to scale as efficiently.

      PHP is specifically designed, and built for web applications. You can't say the same for any of the other choices.

      I've actually built some large, extremely high performance, very scaleable projects on PHP, and almost always the bottleneck turns out to be on the database side due to sheer volume of data and features customers have insisted upon requiring more database servers than frontend.

    31. Re:Most important by DocHoncho · · Score: 1

      This is the same Dart that compiles down to JavaScript, yes? If anything they've invested so heavily into Dart because it rounds off some of those nasty little corners and edge cases folk are always bitching about W.R.T. JavaScript. So Google could re-write Gmail entirely in Dart and it would end up being compiled into JavaScript, taking it's fair place amongst the rest of "web 2.0." Does that make Google a "non-JavaScript shop"? Possibly, but in the end it's JavaScript, all the way down.

      The lay of the land at this time is JavaScript as the WWW/HTML scripting language, no matter how you want to dress it up. Is is perfect? Nope. Are there initiatives out there to work around the perceived issues with the language? Yep. So until the Python Gods smile upon web browsers everywhere and release us from our JavaScript bondage, we'll just keep working around the problems laid upon us by our forebears. As for JavaScript... it ain't going anywhere fast.

      --
      Celebrity worship is a poor substitute for Deity worship and costs more to boot.
  2. Use a Framework! by Anonymous Coward · · Score: 1

    It will save you a ton of time. Some people here would argue that you should build from scratch, but ignore them.

    There are a lot of good frameworks out there. Here is a list: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

    1. Re:Use a Framework! by AuMatar · · Score: 5, Insightful

      Frameworks are good only if all of the following are true:

      1)You want to do exactly what the framework was set up to do. (in other words, everything about your app is cookie cutter)
      2)You aren't a very good programmer
      3)You already know the framework
      4)You don't want to do something wild and crazy, like write an sql query (the framework way tends to use 3 objects which define interfaces and require you to jump through hoops, all so it will automatically grab the data and unbox it for you in the format it assumes you want it in, rather than the format you actually want it in).
      5)You absolutely don't want to use any advanced database functionality whatsoever, since most frameworks these days assume that they can create and alter tables at will.

      If those first two things aren't true, you're going to spend an order of magnitude more time working around the framework's limitations than you will save by using it. If 2 and 3 aren't true, you'll spend more time learning how to use the framework than you'd save by using it.

      Frameworks are good for getting low to moderately skilled developers to pump out cookie cutter type apps quickly (so long as those apps don't need to worry about little things like scale and performance). They're absolutely horrible if you want to do anything novel, you need performance, or you actually know sql and just want to write a simple god damn query.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:Use a Framework! by ZombieBraintrust · · Score: 3, Informative

      Given the description of what he wants to do I would encourage him to use a framework. Web Frameworks are setup to do what he described.

    3. Re:Use a Framework! by muon-catalyzed · · Score: 1

      Always surprised how many people use ton of spaghetti code to deploy a simple GET replier (aka the web server). Take the security implications of running megabytes of mostly unknown 3rd party server-side code and services. Best of luck using those "frameworks".

    4. Re:Use a Framework! by rev0lt · · Score: 3, Insightful

      While I do understand your point (and agree to a certain extent), frameworks usually provide you a nice set of consistent components that have been used and TESTED by a ton of people before you. Shure there are bugs, and for simpler applications they may be overkill, but you also get the benefit of a (mostly) tried-and-true library. If your task is designing an application, it makes no sense wasting your time developing, testing and debugging every single core funcionality you need (eg. database api, routing, caching, locale handling, etc). If even the code produced by some (very smart) framework programmers has bugs after extensive testing and usage by third parties, imagine your own code.

    5. Re:Use a Framework! by ultranova · · Score: 0

      More importantly, use MongoDB. MongoDB handles web scale. You turn it on and it scales right up. MongoDB runs circles around your framework. Also, it inspires you to castrate bulls.

      For more information, see this.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    6. Re:Use a Framework! by Raenex · · Score: 1

      What a dumb post. You're going to end up spending an inordinate amount of time re-writing what the framework already gives you. Requiring that it exactly matches what you want to do is just an excuse to start from scratch and write your own in classical Not Invented Here fashion.

    7. Re:Use a Framework! by story645 · · Score: 2

      Since Mongo is a database and not a framework, it should be used with a framework (for example the big Python ones, Pyramid and Django, support it), not a in place of one. This of course assumes that Mongo is more suited for his task then a plain old relational database, which I'm not so sure since it seems like the app is pretty well structured and the fields are more or less fixed.

      --
      open source modern art: laser taggi
    8. Re:Use a Framework! by Eponymous+Hero · · Score: 1

      i'd like to qualify this by pointing out there is a difference between full-stack and glue frameworks, and that your point applies to full-stacks. a glue framework is flexible enough to make life easy and let you use only what you want to use. there is no point at all in writing your own app from scratch, as you will inevitably write your own hobbled framework and deal with the same problems frameworks have already solved. your choice of language might limit your glue framework options, though. i do enterprise development, building custom apps (natch) and i've only ever had to work around limitations in full-stack frameworks. RoR is a good example of your cookie cutter epic fail.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
  3. There's quite a few options out there, but... by pushing-robot · · Score: 4, Insightful

    If you're familiar with Java but not web development, it sounds like Grails might be a good place to start.

    --
    How can I believe you when you tell me what I don't want to hear?
    1. Re:There's quite a few options out there, but... by jasenj1 · · Score: 4, Informative

      I'll throw in a vote for Grails. It is a convention over configuration app framework that has you code your domain objects and then it generates CRUD pages for you.

      The documentation is pretty good. There's lots of tags for the web page side.

      It lives on top of Spring, Hibernate, & JQuery so it has some solid frameworks at its core.

      It uses Groovy as its language rather than Java, but Groovy is 100% compatible with Java and is mostly syntactic shortcuts & convenience tricks on top of Java (like no need for semicolons). So it is very easy to learn if you're a Java guy; you can slowly start using more idiomatic Groovy while still writing very Java-esque code.

      If Groovy scares you, try Roo (http://www.springsource.org/spring-roo). It's a pure Java based app framework also from Spring that uses the Spring libraries.

      Now, having said all that. If you plan to deploy to iOS or Android, you may want to consider RhoMobile (http://rhomobile.com). It is a Ruby-on-Rails environment that runs on top of the native OS. So developing a RoR app for the client-server PC side and then porting to RhoMobile should be very easy. I don't know of a solution on the Java side that will take a Java servlet based app and move it over to the mobile OSes conveniently.

    2. Re:There's quite a few options out there, but... by c0lo · · Score: 4, Informative

      If you're familiar with Java but not web development,...

      +

      In the long term, writing a view-only version as an Apple and/or Android app is on the radar

      +

      I have no experience with PHP and would like to stay in my Java comfort zone as much as possible, but want to use the right tool.

      In my opinion, give GWT a try. Why should make it exciting for you: the entirely dev cycle (this includes debug) is Java based - including the code in the "views" that will be shown in the browser (even if this code will be transpiled to javascript - a very compact one for the functionality it implements).

      Using GWT, the "presentation logic" is totally separated by the lower layers (in both "architectural" and "exploitation" senses): i.e. your business logic will implement only "services" type of functions, the "presentation logic" - in browser - will be in charge to render the data the way you see fit - no more server-side resources to be consumed by layouting the page, applying "data model basic consistency validation", etc - (oh, how I hated JSP at their time). Let the "client CPU" do a bit of this effort - if your application will be highly used, a bit from every client-side that takes some care about itself will get you some serious server-side savings.

      As I write, I'm digging into a piece of GWT that promises to take care of the integration with JPA entities, e.g. bringing Hibernate into the picture without the need of heaps of "plumbing code".

      --
      Questions raise, answers kill. Raise questions to stay alive.
    3. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      I have to agree. Grails is amazingly fast and simple; i switched from LAMP development to Grails years ago and haven't regretted it.

    4. Re:There's quite a few options out there, but... by DustDevil · · Score: 0

      As has been mentioned, Spring Framework/Hibernate/JQuery or Grails would be excellent options

      If your plan is to acquire skills to become more marketable then Spring MVC/Hibernate/JQuery would be a good choice as there are plenty of opportunities that require those skills. The Spring Framework alone is used by over 50% of Java developers worldwide according to VMware. See http://www.vmware.com/products/application-platform/vfabric/overview.html.

      Another great choice would be Grails. Grails is written with Groovy which is easy to learn if you have a Java background. It uses Spring/Hibernate/Sitemesh/JQuery behind the scenes. Because it emphasizes convention over configuration you won’t spend much time “wiring up” the parts of your application and you will start off by using many best practices for web development which could otherwise have taken you a long time to learn. Grails, however, is not as marketable as Spring/Hibernate/Jquery.

      I have personally worked with both choices and prefer Grails. But, like I said, many employers have not warmed up to it yet.

    5. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 1

      Groovy is 100% compatible with Java? No. Nothing all that hard to work around, but there are important differences. For instance, anonymous classes and array initialization in Java source code would both be broken if executed as Groovy.

      Groovy redefines the meaning of braces in some contexts. This allows for closures, which makes it totally worth it, but it is a compatibility issue.

    6. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      Grails is webscale because it does not use joins.

    7. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      ...the entirely dev cycle (this includes debug) is Java based...

      This is only true up to a point - where you want to implement your own UI components. Then it becomes a sticky mess of Javascript and Java.
      On the other hand - if you're happy with off-the-shelf components (out-of-the-box ones, GXT's, etc.) - you could have long and happy development cycles without seeing a single Javascript line.

      On the other hand, there are rumors about GWT future demise and Google not supporting it anymore. And then there are declaration to the opposite (see http://blog.oio.de/2011/12/08/future-of-gwt-and-gwt-2-5/ ).

      I do recommend on GWT, from personal experience. But do read and see the various architecture presentations and videos. It's easier to go wrong with GWT than it is with other, more structured frameworks (e.g. Grails).

    8. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      +1 for Grails. I switched to Grails a little over two years ago, and I've been extremely happy with it. Whatever you decide to use, there is going to be a fairly steep learning curve to it. There are a tremendous number of tools, languages, techniques, etc.. that go into making a modern web application (HTML, CSS, Javascript, REST, SSL/TLS, etc...).

      As a close second, I would suggest looking at Drupal. It doesn't use Java, but you get an amazing amount of functionality from modules contributed by other users.

    9. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      I am throwing this up high here so all can see it. This is not a flaming or start of war.

      If you know java then design the system as 2 tier with web services in java. Then when you build the client side in Web, iOS, Android, WhatEver, you can go get some monkey to make it for you based on a logical design.

      The orgasmic spluge of acronyms and frameworks, for what sounds like a 5 page (not including admin) or less site, that came off this post is a bit concerning. You will be better off learning the basics, then some hokey framework that will be passé in 6 months. The key is that you want to have the client side for web be HTML5, CSS3, Javascript compatible across the spectrum of browsers. Also, if you design the website properly you wont need to make a custom app in iOS or Android.

    10. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      wtf gwt is garbage. It carries over a lot of the Swing-type baggage, relies on a magic translation layer. I'm not a fan of JavaScript, but it's been a helluva lot easier to write jquery, dojo or such versus gwt. ExtJS is definitely better than GWT.

    11. Re:There's quite a few options out there, but... by BooRolla · · Score: 1

      One thing I'd not is that Google themselves don't use GWT for much of anything these days. They're doing a lot of jQuery though...

      A lot of things MS don't agree with me, but making sure you "eat your own dogfood" is something I can get behind.

    12. Re:There's quite a few options out there, but... by Anonymous Coward · · Score: 0

      GWT + AppEngine is awesome. Spend a little time with Objectify and you've got a massively scalable system right out of the box that will leverage the crap out of your Java experience. If you can stick to a framework like GWT-P or GWT-Dispatch, you can force yourself into good architecture that is testable without too much additional overhead.

  4. Coldfusion by Anonymous Coward · · Score: 1

    Okay, okay, stop laughing. Take a look at Railo. It's open source, cold fusion, and runs on Java.

    1. Re:Coldfusion by QuebecNerd · · Score: 2

      I agree with you and I frequently use Railo on AWS/EC2 images. I really don't know why people are so judgmental on ColdFusion. Many of them never tried it. It's fast, mature, easy to deploy and plays well with others (java, .net, etc). I first used ColdFusion in 1995. I was bundled FREE with Oreilly 'website pro' web server software back in the days when they were making software.

    2. Re:Coldfusion by Kalriath · · Score: 1

      I think people are judgemental because it's Adobe. I'm surprised it doesn't bug every third web site visitor to call the sys-admin and ask them to run Adobe Update, and have 4 security vulns a day.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    3. Re:Coldfusion by QuebecNerd · · Score: 1

      Indeed but the core of ColdFusion comes from Allaire and after that MacroMedia. Railo is independent from Adobe and also Open Source. It run under Tomcat (ColdFusion also runs on tomcat as of version 10). Open Blue Dragon is also a good Open Source alternative. I've found that Railo requires the least (if any) amount of modification from ColdFusion code.

    4. Re:Coldfusion by Concerned+Onlooker · · Score: 2
      I tried it a few years ago. Admittedly I never got great at it, but I was appalled by the amount of code needed to declare and display a simple variable value. I'm sure it's fine for lots of stuff, but the irritation factor was high for me.

      <cfset variablename="value">
      <cfoutput>
      #variablename#
      </cfoutput>

      --
      http://www.rootstrikers.org/
    5. Re:Coldfusion by aclarke · · Score: 1

      Like most languages, there are a bunch of different ways of writing the same code. You can choose the one that works best for you.

      Dealing with PHP has been like pulling my own teeth in comparison to CFML. In PHP I have to wrap loops and variable outputs in or which just looks like crap and is hard for me to read and keep up with opening and closing loops, braces, etc. CFML seems clean and elegant in comparison.

      CFScript lets you write code that makes it look like it is a real programming language. Tags have their place, but I agree that when you HAVE to use them, they eventually get old.

  5. Lasso by Anonymous Coward · · Score: 0

    You might check out Lassosoft.com. I believe you can customize it with Java and overall, Lasso is a fairly complete tool set for building web applications.

  6. Would anyone else recommend GWT? by WilliamBaughman · · Score: 3, Interesting

    It's been a long time since I've used the Google Widget Toolkit, but it was an interesting shim between Java and WebApps. Would someone with more recent experience than mine please chime in and say whether it would be useful to the original poster?

    1. Re:Would anyone else recommend GWT? by schlesinm · · Score: 3, Informative

      GWT is decent if you are building a web application that will be doing one thing. If you are looking for a more broadscale application, then GWT doesn't hold up well.

    2. Re:Would anyone else recommend GWT? by Post-O-Matron · · Score: 5, Interesting

      GWT is good if you want to create a RIA, when the presentation logic is so complex developing it in javascript is a nightmare, but without having to use Flash or silverlight. If the presentation is simple enough however, I would stick to HTML5 + jQuery. In fact the "simple enough" bar in that last statement is gradually pushed forward.

      As a rule of thumb I'd say if you have a lot of moving parts on the page and you are basically creating a desktop application inside the browser ala Google docs, then consider GWT. Otherwise it will do more harm than good.

    3. Re:Would anyone else recommend GWT? by SplashMyBandit · · Score: 4, Insightful

      GWT is great if you want interactivity. Also fits in well since you are a Java programmer. I've also recently discovered vaadin (http://vaadin.com) which extends GWT and provides much nicer themes than the default. Best of all, all the tools you need for GWT/vaadin development are free (both zero cost and source is available); Java, Tomcat, Eclipse or Netbeans, GWT + GWT plugin (for debugging in your browser), vaadin and the all-important community documentation/forums (that is, you don't have to pay for a subscription like MSDN). Best of all vaadin/GWT handles almost all of the browser variation for you (although there are differences in CSS for advanced styling).

      Since you are already a Java programmer I would say you'd be mad to go past GWT (which you also develop for, and can debug in Java). Other solutions are ok for static page-oriented viewing but for a complex dynamic site it is hard for a competent Java programmer to be more productive than with GWT (except for the smaller sites with not a lot going on). How do I know, well I use GWT daily - including building complex sites for managing medical information for our national-level health ministry.

    4. Re:Would anyone else recommend GWT? by SplashMyBandit · · Score: 1

      That's a fairly broad statement, "GWT doesn't hold up well". I'm curious to see why you think this is the case - my (extensive) experience has been the opposite - GWT scales well and you can do stuff with it that is painful with other technologies (eg. works across just about every browser - even with braindead IE6's limitations; you can also development very modular and re-usable components with GWT). So yeah, I'm interested to hear what general-purpose solution you think is better than GWT and why.

    5. Re:Would anyone else recommend GWT? by SplashMyBandit · · Score: 1

      JQuery, no thanks. GWT does a much better job of insulating you from browser craziness IMHO.

    6. Re:Would anyone else recommend GWT? by Post-O-Matron · · Score: 1

      You are comparing two different things in this context. jQuery isn't meant to insulate you from what you describe as "browser craziness". jQuery is meant to give you browser abstraction, while still speaking browser.

      GWT on the other hand gives you the ability to develop with a desktop-like API and behaviour inside the browser, which comes at a price. GWT is much slower to develop in then simple HTML/CSS/JS and this insulation also means you are too detached from the underlying HTML/CSS which isn't necessarily good when you do want to think in terms of HTML/CSS for validation / accessibility / SEO purposes.

      For people familiar with HTML/CSS/JS doing simple stuff with a couple of jQuery lines is preferable to GWT. In really depends on the context.

    7. Re:Would anyone else recommend GWT? by c0lo · · Score: 1

      GWT is decent if you are building a web application that will be doing one thing. If you are looking for a more broadscale application, then GWT doesn't hold up well.

      Huh? The fact that you can write code to run in browser (and use the client CPU/RAM) and let the server run only the "services" to get/build/process the data should point in the opposite direction - how did you reach the conclusion that "doesn't scale well"?

      --
      Questions raise, answers kill. Raise questions to stay alive.
    8. Re:Would anyone else recommend GWT? by AiTuDou · · Score: 1

      If you're a server side developer coming client side I also recommend GWT. We use it extensively at work as we're Java guys trying to do lush web UIs. GWT allows you exposure to the low end stuff - laying out in HTML and styling with CSS, but also gives you the rigorous high end stuff: coding-to-pattern, interfaces, unit testing, static typing, being able to use the same Java model on the client and server. If you're coming from a server background you'll appreciate the maintainability all those features will give you.

      Even if you're doing something lightweight, GWT will allow you to do it quickly with your skillset. If you just want to try something new and different and care about the same kind of maintainability, try JQuery like many other people are suggesting.

    9. Re:Would anyone else recommend GWT? by c0lo · · Score: 1

      GWT is good if you want to create a RIA, when the presentation logic is so complex developing it in javascript is a nightmare, but without having to use Flash or silverlight. If the presentation is simple enough however, I would stick to HTML5 + jQuery. In fact the "simple enough" bar in that last statement is gradually pushed forward.

      As a rule of thumb I'd say if you have a lot of moving parts on the page and you are basically creating a desktop application inside the browser ala Google docs, then consider GWT. Otherwise it will do more harm than good.

      Haven't played with jQuery, but even so:

      1 GWT is able to handle simple cases. Nothing wrong with leaning another library, except the time you spend on the leaning curve to get productive (getting to know jQuery and, possible, setting your mind on "thinking in Javascript").

      2. Browser compatibility - still a nightmare. GWT seems to transpile to something that will run across the main browsers without getting your mind overheated

      3. the fact that you write your client code in a single programming language, but - more important - you get to debug that (browser) code using the same IDE you used and trace its running in no way differently than your server-side code.

      --
      Questions raise, answers kill. Raise questions to stay alive.
    10. Re:Would anyone else recommend GWT? by Billly+Gates · · Score: 1

      Wasn't GWT discontinued?

    11. Re:Would anyone else recommend GWT? by schlesinm · · Score: 2

      That's a fairly broad statement, "GWT doesn't hold up well". I'm curious to see why you think this is the case - my (extensive) experience has been the opposite - GWT scales well and you can do stuff with it that is painful with other technologies (eg. works across just about every browser - even with braindead IE6's limitations; you can also development very modular and re-usable components with GWT). So yeah, I'm interested to hear what general-purpose solution you think is better than GWT and why.

      Most of my experience with GWT was with pre-2.0. We had issues when trying to bring in stand-alone pages in addition to the web app we had. It was difficult to integrate existing non-GWT pages with GWT.

    12. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      "As a rule of thumb I'd say if you have a lot of moving parts on the page and you are basically creating a desktop application inside the browser ala Google docs, then consider GWT. Otherwise it will do more harm than good."

      This is nonsense. GWT is fine for simple or complex web "sites".

      It really begs the question, why are people still building web sites that function no differently then they did circa 1999 ? With GWT (or Dart for that matter), you can use the full power of the browser to build a much more compelling UI and more desktop like experience. This whole "manage state changes from the server" is just so last century. Build a client application FFS.

    13. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      No it was not. Google is using GWT heavily and while they have not promoted the framework lately, they are continuing to develop it.

    14. Re:Would anyone else recommend GWT? by Hognoxious · · Score: 1

      GWT is decent if you are building a web application that will be doing one thing.

      I'm curious as to what that one thing is.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    15. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      your link says
      "A Rich Internet Application (RIA) is a Web application that has many of the characteristics of desktop application software, typically delivered by way of a site-specific browser, a browser plug-in, an independent sandbox, extensive use of JavaScript, or a virtual machine."

      Could you give me a more information about or an example of the last of these? (Virtual Machine). How can a VM be used as part of a Rich Internet Application?

    16. Re:Would anyone else recommend GWT? by oever · · Score: 1

      The Vaadin demo applications all require cookies to work. That is unfortunate for the user. With stricter cookie regulations in many countries, it means your site is at a disadvantage if it uses cookies.

      --
      DNA is the ultimate spaghetti code.
    17. Re:Would anyone else recommend GWT? by ByteSlicer · · Score: 2

      No. The regulations are for tracking cookies. Cookies for normal operation (storing the state of the site) are still allowed without explicit permission from the user.

    18. Re:Would anyone else recommend GWT? by ByteSlicer · · Score: 1

      Not the parent, but they're talking about VMs that are integrated in the browser, such as a EcmaScript/Javascript VM, Flash VM (ActionScript: Flex applications), Java VM (applets), .NET VM (Silverlight applications), etc.

      Nowadays the term VM is used a lot for visualizations of whole OSes (VMware and others), but the original meaning was a virtualized cpu that could run some sort of bytecode.

    19. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      Citation needed?

    20. Re:Would anyone else recommend GWT? by esarjeant · · Score: 1

      Be very careful with GWT, the transpiling converts your Java to JavaScripted equivalents. If there is a problem with the browser interpreting the resulting JavaScript you're going to have a very bad day.

      Honestly, if you're building a Java based site, I would take advantage of JSF to bind your presentation to your middle tier and then pick a JavaScript framework to help automate some of the trickier pieces of your presentation. I happen to like Dojo although it's been a couple years since I've used it in a project, and jQuery is really quite good also. You'll want a JavaScript library like this to help isolate you from browser JS incompatibilities -- and if something does go wrong you'll have one place to fix it.

      If there is a problem with the resulting JavaScript on something like Dojo, you can open the source code and fix it. This is a huge benefit IMHO and not something GWT offers.

      As far as database goes, if your requirements are fairly basic then you may want to look at Hibernate, this is going to give you an ORM that will eliminate a lot of standard CRUD work.

      --

      Eric Sarjeant
      eric[@]sarjeant.com

    21. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      Vaadin has some benefits above GWT (which is already pretty good!) which makes it the tool of my choice:
      1 Just add a button, add a clicklistener with your action code and you have a working button: 4 lines of code. It is like writting a Swing application but then simpler. no need to write boilerplate code for client -server communication.
      2 This Swing like simplicity allows to write real re-usable Java only components, which are just one class and very compact.
      3 Vaadin has excellent documentation.

      I have written quite some stuff in vaadin and I love it, Have a look at www.cadeau.nl/sophie

    22. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      Hey thanks for that! I had a total brainfart, of course Java, etc is a VM too. I forgot about this. (And I had recently been thinking of a way to put a whole OS vm into a browser tab so you could quickly try out a directx/opengl game without installation or persistance, etc..) Of course there's nothing like that, and they're talking about the Flash, etc VM's. thanks.

    23. Re:Would anyone else recommend GWT? by ByteSlicer · · Score: 1

      Of course there's nothing like that

      Well, if you want OS VMs inside the browser, there is also Linux in Javascript (http://bellard.org/jslinux/), or Google Native Client . NaCl is particularly impressive, since you can use it to run old games inside your browser (http://www.naclbox.com/).

    24. Re:Would anyone else recommend GWT? by Compaqt · · Score: 1

      I think what he's trying to say by "one thing" is you've got one page, and that's where all the action happens (like Gmail, Google Maps, or whatever).

      For a page-oriented application where you're clicking around to different URLs, one of the PHP frameworks with URL routing might be better.

      --
      I'm not a lawyer, but I play one on the Internet. Blog
    25. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      I definitely recommend Vaadin.

      It has one major advantage over most other frameworks: you only write one application (server side) instead of two (server side and client side).

    26. Re:Would anyone else recommend GWT? by HommeDeJava · · Score: 1

      From my experiences, there is two extremes use cases with a gray zone between. For great and complex client-side project (desktop like web app), you should take GWT and MVP (Model-View-Presenter) framework like GWTP (http://code.google.com/p/gwt-platform) with eventbus, activities and places. You've got Eclipse tooling, visual editor, debugger and jUnit testing. As bonus, get a generated JavaScript code that runs faster than handwritten JavaScript. This is the software engineering playground. That said, to write HelloWorld and small cute web apps using jQuery or any JavaScript librairies could do the job quicker and keep the craftman happy.

    27. Re:Would anyone else recommend GWT? by HommeDeJava · · Score: 1

      Few months ago, a couple of key GWT developers have left Google to create a startup. But Google keeps the project alive and well and they will deliver a brand new version 2.5 version of GWT to Google I/O 2012. Futhermore, GWT wrappers for the Google+ API have just been released (http://code.google.com/p/gwt-google-apis/).

    28. Re:Would anyone else recommend GWT? by Anonymous Coward · · Score: 0

      My biggest problem with GWT was that it was designed to build web applications, not web pages with client-side logic. The result is an incredibly high per-page overhead, both in code (.gwt.xml, etc) and otherwise (waiting for the GWT compiler). I also didn't like that they kept a lot of really useful APIs private. For example, we wanted to be able to embed data into pages rendered server-side so that we didn't need an additional round-trip to a RemoteService to pull that data. We could have used JSON, but that somewhat defeats the purpose of having your client-side code in a language with static typing. GWT's serialization is awesome, but they don't expose it as a general purpose tool for developers to use. However, with a little bit of digging, we discovered how to serialize objects using a private API and discovered that any RemoteService is capable of deserializing any type it returns. It was ugly and prone to breaking when they changed their internal API or we changed our RemoteServices, but it worked really well.

      Disclaimer: I haven't used it in close to 2 years, so it has probably improved.

    29. Re:Would anyone else recommend GWT? by SplashMyBandit · · Score: 1

      Well, if you are trying to make a dynamic system fit into a page-oriented system there will be some impedance there. Trying to swim against the tide is always more work - it might have been better to do it "GWT's Way" instead (put the module in the driver's seat instead of a bundle of pages).

    30. Re:Would anyone else recommend GWT? by Salk · · Score: 1

      I'd definitely recommend GWT. Best bet for RIA with component based framework and taking advantage of Java and Java tooling. Also a really well thought out component library.

      Be careful of Wicket/Vaadin. While GWT is a traditional fat client architecture (like Flash etc) Wicket/Vaadin are more like a terminal service with the client being executed on the server. i.e. user clicks/drags etc generally need to go to the server. So I'd stick to fat client (GWT, Flex...) or thin client like Spring MVC etc...

    31. Re:Would anyone else recommend GWT? by SplashMyBandit · · Score: 1

      > While GWT is a traditional fat client architecture (like Flash etc) Wicket/Vaadin are more like a terminal service with the client being executed on the server.
      Both statements here are untrue. GWT is not a 'fat client' at all - it requires no plugin and is compiled to Javascript before deployment (runs like any other Javascript in your browser). Vaadin is an extension to GWT that is also compiled to Javascript and runs client-side. You must be getting your 'wires crossed' and mistaking GWT/Vaadin with some other technology.

    32. Re:Would anyone else recommend GWT? by Salk · · Score: 1

      > While GWT is a traditional fat client architecture (like Flash etc) Wicket/Vaadin are more like a terminal service with the client being executed on the server.

      Both statements here are untrue. GWT is not a 'fat client' at all - it requires no plugin and is compiled to Javascript before deployment (runs like any other Javascript in your browser). Vaadin is an extension to GWT that is also compiled to Javascript and runs client-side. You must be getting your 'wires crossed' and mistaking GWT/Vaadin with some other technology.

      Well going by http://en.wikipedia.org/wiki/Fat_client I think GWT fits this. It can run without a server at all...

      Vaadin is much more than an extension to GWT. Vaadin uses GWT to implement the client side but like Wicket the client component tree is modelled on the server. Vaadin even uses the name Terminal in it's implementation https://vaadin.com/api/com/vaadin/terminal/package-summary.html

      I've worked with GWT, Wicket a lot and recently done a comparison between Vaadin and GWT so maybe my wording is a bit odd but I think it accurately represents the three different approaches.

  7. There's two parts by sribe · · Score: 2, Informative

    For the client side, you want to use at least JQuery (& SASS & CoffeeScript), and learn about non-intrusive scripting. You may also want to investigate other libraries that layer on top of JQuery.

    For the server side, the choice is less clear. I happen to like Rails--it was the first web app framework that felt even remotely "right" to me, but since then there's been a lot of development and a lot of cross-pollination of good ideas across languages/frameworks, such that there's now a number of choices that rate as "pretty damn good" in my opinion.

    1. Re:There's two parts by ohnocitizen · · Score: 2

      Coffeescript: When you want to debug in two languages. Seriously though, it ended up being a bit of a practical bother. If on the otherhand you try coffee and love it, you can use it with nodejs.

    2. Re:There's two parts by aztracker1 · · Score: 1

      I'd say CSS is equally as important... would look at Twitter Bootstrap as a base UI set..

      --
      Michael J. Ryan - tracker1.info
    3. Re:There's two parts by Kergan · · Score: 4, Insightful

      CoffeeScript... That way, when your console tells you you've a JS error on line X, you need to check the code output by CS, and locate whatever code you wrote that could have generated the relevant lines, all the while coping with the fact that CS doesn't cover 100% of JS, and introduces its own set of bugs and quirks on top of those in JS. Good luck with that in the long term.

    4. Re:There's two parts by pipeep · · Score: 1

      Notably, Bootstrap uses LessCSS heavily, which is similar to SCSS. I'd suggest the OP look into both SCSS and LessCSS if he's/she's looking for a CSS preprocessor.

    5. Re:There's two parts by SplashMyBandit · · Score: 1

      Rails is pretty good if all you do is web->DB form stuff. Once you start integrating with devices and complex webservices then Rails is not as good a fit as something like Java.

    6. Re:There's two parts by XaXXon · · Score: 1

      This is not true at all. I do this on a regular basis and it's enjoyable to do in rails.

    7. Re:There's two parts by Jane+Q.+Public · · Score: 2

      "Once you start integrating with devices and complex webservices then Rails is not as good a fit as something like Java."

      Not so. In regard to devices, Rhodes is a cross-platform app development environment entirely built around Ruby and Rails. In fact, as far as I know, it is the only cross-platform mobile development system that has gained any popularity.

      And as for web services, I have no idea where that assertion came from. That was really a rather odd statement to make. It is no more difficult to integrate with web services using Ruby and Rails than with any other language or framework. I should know; I do it all the time.

    8. Re:There's two parts by jmerlin · · Score: 1

      Source maps fix this issue.

    9. Re:There's two parts by Anonymous Coward · · Score: 0

      Will. Someday. Perhaps. Maybe.

    10. Re:There's two parts by WingCmdr · · Score: 1

      Not so. In regard to devices, Rhodes is a cross-platform app development environment entirely built around Ruby and Rails. In fact, as far as I know, it is the only cross-platform mobile development system that has gained any popularity.

      Actually, the MOST popular cross platform mobile development tool is phonegap, or as it is now called, Apache Cordova. Rhomobile is not very good according to my friends who like Ruby. It uses an older version of ruby and has a lot of problems as well.

    11. Re:There's two parts by Anonymous Coward · · Score: 0

      I agree so much. Don't recommend CoffeeScript to someone looking to get in to modern web development. JQuery is plenty of an abstraction for javascript and there are tons of examples out there.

      On the other hand, sass+assetpipeline in rails is great for, at the bare minimum, helping you organize CSS. This is a big win.

    12. Re:There's two parts by Anonymous Coward · · Score: 0

      FUD. Just FUD.

    13. Re:There's two parts by Jane+Q.+Public · · Score: 1

      "It uses an older version of ruby and has a lot of problems as well."

      I can't speak to those "other problems" (unspecified), but RhoStudio uses Ruby 1.9.3, which is the latest stable release.

    14. Re:There's two parts by Jane+Q.+Public · · Score: 1

      I should qualify that:

      While the installation instructions for RhoStudio do specify Ruby 1.9.3, that is of course no guarantee that Rhodes supports all features of Ruby 1.9.3. Apparently (according to forum posts from last year) there were some problems with changing character encoding, which might be an issue if your app requires support for internationalization.

    15. Re:There's two parts by Jane+Q.+Public · · Score: 1

      Please pardon the multiple posts. New information has kept coming to light.

      Phonegap is not a true cross-platform development system at all. It essentially builds web apps with JavaScript that run locally, with some added support for accessing native device functions from the javascript.

      That is not the same thing at all. Rhodes builds native apps (iOS, Android) for the target devices, not web apps.

    16. Re:There's two parts by thePowerOfGrayskull · · Score: 1

      I would argue that if you need yet another layer to simply track the location of errors in a browser-based environment, you've Done It Wrong.

  8. Re:The thing about Java is by Anonymous Coward · · Score: 1

    No! Django is newer, so RoR developers are living on borrowed time.

  9. Ignore PHP by Osgeld · · Score: 3, Insightful

    its the worst thing you could ever attempt to learn

    1. Re:Ignore PHP by longk · · Score: 0

      Because what? Because it seems to work so well for Facebook?

    2. Re:Ignore PHP by Anonymous Coward · · Score: 0

      It's also ubiquitous and well developed. I agree that it's never going to satisfy anybody's programming aesthetic and it is heretical to object oriented approaches. That said, it is legion, there is more support for it than ruby or [insert latest fad programming language used mostly by 20-somethings because it's cool].

      Given the way things are going, you might do the whole thing in HTML5 and Javascript. Neither will disappear anytime soon. Any reason not to?

    3. Re:Ignore PHP by Anonymous Coward · · Score: 1

      facebook does seem to use php. But its just one of its components. "Facebook’s backend services are written in a variety of different programming languages including C++, Java, Python, and Erlang" So I would assume facebook is a NOT typical example of an regular php site.

      source: http://www.makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained/

    4. Re:Ignore PHP by Anonymous Coward · · Score: 0

      > well developed

      LOL

      http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

      Press page down a few times to get to the good parts.

    5. Re:Ignore PHP by Anonymous Coward · · Score: 1

      Facebook is successful *despite* using PHP, not because of it.

    6. Re:Ignore PHP by Anonymous Coward · · Score: 0

      You know php5 is an OO language right?

    7. Re:Ignore PHP by shutdown+-p+now · · Score: 3, Insightful

      Because it's crap. See sig for details.

      And It works so "well" for Facebook that they essentially had to re-implement it as a PHP-to-C++ translator just to get decent perf out of it.

    8. Re:Ignore PHP by countach74 · · Score: 2

      Curious, what's your preferred language for web dev? I have admired your sig for some time, as I couldn't agree more.

    9. Re:Ignore PHP by countach74 · · Score: 1

      Yes, as an afterthought. There's a big difference between a language that's created to be OO and one that just slaps it on later.

    10. Re:Ignore PHP by shutdown+-p+now · · Score: 2

      My preference would probably be ASP.NET MVC, but this is mainly because I'm more intimately familiar with C# than most other options, not because it is necessary the best choice. Really, there are too many good choices to list them all - Python and Ruby both have a slew of frameworks for all tastes, and Scala is also very enticing. Groovy is pretty decent, as well.

    11. Re:Ignore PHP by PCM2 · · Score: 2

      And Facebook isn't using the same PHP the OP will be using, either. Facebook developed its own compilers and other tools that allow its applications to scale in ways that stock PHP applications cannot.

      --
      Breakfast served all day!
    12. Re:Ignore PHP by Anonymous Coward · · Score: 1, Informative

      I read the nice rant in your sig and it's incorrect in a lot of places. I could spend the time to write several paragraphs explaining in detail several areas you got blatantly wrong, but it's apparent you wouldn't listen. One thing I will mention is no interactive debugging. There exists more than 1 interactive debugger for PHP. Yes, one is a commercial product produced by Zend. However, there are free alternatives that are just as good (xdebug is one). Guess what, they also show stack traces on fatal errors.

      You tried so hard to show how superior you are to PHP developers, but the only thing you demonstrated was your ignorance of the language you have an irrational hatred of. Some of your points are correct, but they're overshadowed by your ignorance. I suggest you do more research and update your article so you don't continue to look like a fool.

    13. Re:Ignore PHP by Anonymous Coward · · Score: 0

      I completely agree, but I have started to use it for simple code generation. I am building a C library and sometimes I have to generate multiple versions of the same function, one for each size of integer. For this it is quite useful and simple to use, but if you want to get more complicated than a loop and some placeholders then get something else.

    14. Re:Ignore PHP by outsider007 · · Score: 1

      Php is fast. When you serve millions of requests per second that matters. It's also easy. There is no easier setup for a quick dynamic web site than LAMP. So you've basically got the extreme top tier and extreme bottom tier covered. What it is *not* is fun to write code in.

      --
      If you mod me down the terrorists will have won
    15. Re:Ignore PHP by Spy+Handler · · Score: 1

      his wife ran away with a php developer circus, and now he hates all php with a passion.

    16. Re:Ignore PHP by allo · · Score: 1

      php is everything, because each time a new technology was hip, they put it into php, without ever thinking if its good design to put everything anyone would ever want to use into the core of a programming language.

      So what i want to say: you can use php for programming OO, but it won't be fun.

    17. Re:Ignore PHP by Anonymous Coward · · Score: 0

      A very good article about why PHP is a weak designed language:

      http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

    18. Re:Ignore PHP by Xest · · Score: 1

      "I read the nice rant in your sig and it's incorrect in a lot of places. I could spend the time to write several paragraphs explaining in detail several areas you got blatantly wrong, but it's apparent you wouldn't listen."

      Please do, I'd like to hear where else it's wrong so that I'm not just getting one side of the story. There's an awful lot of bad things in that article, are you saying they're all wrong? or that just because one or two out of hundreds of points are wrong the whole article is invalid?

    19. Re:Ignore PHP by Xest · · Score: 2

      Personally I'd use ASP.NET MVC or something like Java and Spring if you don't want to go the Microsoft route.

      I know others mentioned things like Grails which sit on top of things like Spring, but honestly my experience has always been that if you add yet another layer of abstraction, you're just creating more places for things to go wrong, and putting something else in your way when you start creating something that goes slightly beyond non-trivial such that you'll end up having to put forth ugly hacks to work round it. I haven't worked with Grails, so I can't say if this is the case for it, maybe it's the rare (unique?) exception, but to me the frameworks by themselves usually do the trick just fine, then you can also mix and match - chuck in jQuery and nHibernate if you want, or don't if you don't.

      But honestly, if you're working in a Microsoft shop doing internal web apps, or self-hosted web apps where you have Microsoft hosting, then ASP.NET MVC is a breeze to work with, it's so painless, so easy to extend, and makes it so easy to make sure your site is secure, well tested etc. The more advanced language features of C# just add to this, so if you're comfortable with the contents of a book like C# in Depth, then you'll really be able to do some great stuff really quickly with it.

    20. Re:Ignore PHP by Xest · · Score: 1

      "It's also ubiquitous and well developed."

      How is it well developed? a number of it's features have been developed in such a way that it's clear the developers don't even have a basic understanding of undergraduate level language design material and the libraries can't even get naming conventions consistent.

      I agree it's ubiquitous, and quick and easy to get up and running, but PHP is probably the least well developed mainstream language around. It's largely just been hacked together.

    21. Re:Ignore PHP by countach74 · · Score: 1

      I have no experience with C#, but it's probably something I should spend some time with. Currently though, I've been using Python with CherryPy and Jinja2 for my web development needs (no ORM, as I don't find much reason to use an ORM when connecting to MongoDB). Perhaps it's my lack of experience, but I just can't imagine being any more productive in anything else. Do you by chance have any experience with similar solutions to compare with ASP.NET MVC? I'm always open to learning new things, which is why I like to ask what others like to use.

    22. Re:Ignore PHP by Zero__Kelvin · · Score: 1

      It boggles the mind that people actually think that "Facebook has some PHP code in its implementation is an argument in favor of PHP. Ignoring for the moment that you can create marvelous things with inadequate tools, and the fact that the Facebook system is by no means implemented in purely in PHP (or even primarily in PHP), do you really think that Facebook is some marvel of engineering? Really?

      If you actually had an argument in favor of PHP it would be based on the actual merits of the language rather than a reverse strawman attack. But, of course, no such argument can be made by you or anyone else on the planet. PHP is a horrible abomination, and this is a well known fact.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    23. Re:Ignore PHP by horza · · Score: 2

      You mean how awful it is that (integer) is a synonym for (int)? There are some points that we've known about for a long time, mixed in with a whole lot of fluff and irrelevance. It's true it is more painfully evolved rather than well developed, however I'm not particularly impressed with that article.

      Phillip.

    24. Re:Ignore PHP by Xest · · Score: 1

      Honestly part the reason C# is so quick to develop with and so much more so than other environments is because of Visual Studio. The IDE's intellisense is so many years ahead of anything else there's just little contest. It seems to match intellisense suggestions based on not just the text you type, but possible types of suggestion that are relevant to the context you're typing, so if you type say:

      int i = user.

      Then after the dot it'll suggest any properties of user that are integers first and foremost for example, but also will consider recently used properties within the same scope etc. - this is an extremely simple answer, when you're working with a more complex line of code it really shines, effectively because of the way it let's you type and select suggestions you can type a fairly long line of code in literally a handful of keypresses, for example, the following line of code, the first I stumbled across after I fired up the IDE:

      this.EditorForm.PaintPanel.ChangedCliffTexture += new PaintDockingPanel.CliffTextureChangeHandler(PaintPanel_ChangedCliffTexture);

      Can simply be entered with:

      this.[enter].[enter].[enter] += [tab]

      So, typing this, pressing full stop and enter three times, += then tab and it did all that for me. It basically does 90% of the typing for you and does so so fluidly and seamlessly as you type. This series of characters is much more easy to type than the full line of code, so you're looking at a massive relative time saving for just one line of code - extrapolate that to nearly all lines of code and you get the idea.

      A lot of IDEs can't even offer intellisense suggestions quick enough to be useful for fast types (i.e. Eclipse), let alone come close to automatically suggesting the most likely option.

      But it's not just that, C#'s support for lambdas, and things like LINQ (to objects, or XML) let you do common tasks with data so quickly and with so little code that not a lot matches it. The .NET framework uses a sensible and consistent set of naming conventions, so knowing what function you may need to perform a particular operation doesn't take much effort - again, zero documentation needed really, chances are intellisense will find list it within a few keypresses - even if you don't know how a function starts, enter a key word in the name and it'll still do a good job of finding it, you don't even have to enter the first letters to get a suggestion which is how some intellisense implementations work in other IDEs.

      It's really the combination of C# + Visual Studio + the .NET framework combined that makes you that much more productive. They just fit together so well.

      This said, even the language itself has some pretty cool stuff, the C# team have spent a lot of time trying to add in useful language shortcuts. For example, the lock statement which uses the monitor pattern to implement a mutex works as:

      lock (someItem) { your code here }

      Is a shortcut for:

      System.Threading.Monitor.Enter(someItem);
      try {
            your code here
      }
      finally {
            System.Threading.Monitor.Exit(someItem);
      }

      There are quite a few examples of this.

      I haven't worked with Python, but I've done a lot of work with PHP and Zend, Java and Spring, and Ruby on Rails. I'm still far and away more productive with Microsoft's development stack than any of them, even when using Zend's full stack - PHP, Zend Server, and Zend Studio and Spring's Eclipse based IDE etc.

      One point I'll note if you do decide to learn C# though, is that whilst learning the basic statements most languages have is easy (for, if, else, blah blah) it is worth taking the next step with C# and learning the more advanced stuff - a book I always recommend once you've got the hang of the basic language is C# in depth. It'll really help you understand how the language has evolved, where it's going, and also where other languages such as Java nowadays are also following.

    25. Re:Ignore PHP by countach74 · · Score: 1

      Hey thanks for the detailed answer. I'm actually going into an interview tomorrow morning for an entry level programming position. The shop uses Visual Studio extensively, I believe. It's a long shot that I'd get the position, as all of my programming background is with open source languages. But if for some reason they offer it to me (and I decide to leave the system administration world), I may have an opportunity to dive into all this. It sounds interesting.

  10. codeigniter + datamapper by Anonymous Coward · · Score: 0

    bro, if you are an adequate java developer, i promise you you can learn php fast. I wouldn't hesitate too much with telling you to just dive in full-on with a php solution. the php manual is really quite good and loaded with examples, plus if you are starting with a framework as you definitely should be, there are higher-level examples and even full walkthrough tutorials that make it incredibly easy.
    i suggest you use codeigniter with the datamapper package: http://datamapper.wanwizard.eu/
    I have developed my share of java as well, and i think it would be much easier coming to php framework development than for someone who has only known php to go to java. I think a good programmer of any lanuage with no php exposure should be able to run with these suggested packages and their manuals.
    You may likely run into some speedbumps with development environment and server config issues, but nothing a sysadmin friend cant set you straight on in the beginning.
    my experience: cis degree, 8 years pro web developer experience, +freelance years before that

    1. Re:codeigniter + datamapper by MisterSquid · · Score: 2

      (I'm going to make my reply here as it's about midway on the page and I haven't seen anyone make this very obvious point.)

      You can teach just about anyone to write usable Python, PHP, or Ruby. Fast. You can teach people with high school diplomas how to code in these languages especially if you have a framework in place.

      Java not so much.

      If you want to get started fast and have access to potential talent, go with the more accessible skill set. If you want to do it *just* right (and have, imo, a needlessly complicated code base) you can go with Java, C++, or PERL.

      --
      blog
    2. Re:codeigniter + datamapper by Eponymous+Hero · · Score: 1

      it's good to learn a language with a low barrier to entry. but what that means is you can get a jump on the advanced stuff like security and design patterns -- don't neglect this. too many php coders shame me because they never bothered to learn any best practices. php is horrible only in the hands of a horrible coder.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
  11. Play framework (Java) by Anonymous Coward · · Score: 5, Informative

    I just started playing around with the Play framework (Java/Scala) I'm loving it, and I'm coming from *gasp WebObjects, and .Net. I can't speak too much about its features but it's really simple to get up and running connected to a database and serving content, as well as creating REST api. Deployment is a single command.
    This is what I'm using for a tutorial: https://github.com/jamesward/play2torial/blob/master/JAVA.md

    1. Re:Play framework (Java) by terjeber · · Score: 1

      +1 for Play. It makes Java almost as much fun as Ruby and Rails. Stick with Java for a while and when you are comfortable about moving out of your comfort zone, you move onto Scala. You will never look back. The people recommending PHP are nuts. Don't listen to them. You'd be better off with Visual Basic.NET (which is terrible).

    2. Re:Play framework (Java) by SpazmodeusG · · Score: 1

      This really is what you want exactly. A lot of development frameworks have a code->redeploy->view cycle for every change. Play on the other hand dynamically compiles everything when in development mode so it's just code->refresh. It also lays everything out in nice MVC pattern so you're really just filling in the blanks as you code.

    3. Re:Play framework (Java) by akeeneye · · Score: 1

      +1 on Play. +1 on Scala too but, coming purely from Java (as I once was) that's a bit to bite off *on top of* a whole new web framework. Play is fantastic.

      --
      The man who dies rich dies disgraced. -- Andrew Carnegie
    4. Re:Play framework (Java) by McDee · · Score: 1

      Play is in a bit of a transition, however. The 'new' play is Play 2, and it's still missing a lot of functionality when you start to dip under the hood and try to build out a real application (as I did over the last week or so). A number of basic features around DB integration, user management and other 'core' features aren't where they were in Play v1.

      I ended up going with Python and flask for the early stages of my app, and figure that I can worry about moving back to Play 2 as/when it's ready and needed. As long as the backend database and model is the same it shouldn't be that painful a transition and prototyping with Python is *quick*.

      Note that the above comments apply to the Java side of things, it's different if you're working with Scala as it uses different underlying technologies.

    5. Re:Play framework (Java) by Will+Sargent · · Score: 1

      Seconded. It takes a while to get used to some of the fine details of Play, but it's very much worth it.

  12. Even more important by Anonymous Coward · · Score: 4, Insightful

    Forget PHP. The language has seen very little progress lately. But even that wouldn't matter, as PHP is slow and horrible. Very inconsistent as well, as the it's little more than glue between some libraries.

    1. Re:Even more important by Anonymous Coward · · Score: 2, Funny

      Ghaaa! GHAAA!! I eat your face for saying "forget PHP".

      PHP is superior.. I say this because you can do damn near anything in PHP. I can generate dynamic SVG in PHP, I can post dynamic encrypted AJAX-script in PHP, I can communicate with my server's serical port in PHP, I eat your face in PHP!!!

      Nothing you can do in any language is superior to any other except for SIMPLICITY! The more human-readable the code is, the more PHP ZOMBIES EAT YOUR FACE OFF!!!

    2. Re:Even more important by Kergan · · Score: 2

      Yeah, you can do a lot of weird things, too.

      $a = array('7.1');
      var_dump(in_array('7.10', $a)); // true

      http://www.phpwtf.org/

    3. Re:Even more important by Anonymous Coward · · Score: 0

      PHP is superior..

      Bullshit. ASP.NET is.

    4. Re:Even more important by rev0lt · · Score: 2

      The notion of "human readable" varies from human to human. I have a friend that *loves* haskell, but for me the code looks like a corrupted text file. On the other hand, I've identified and corrected errors in programs made with high-level languages from an assembly dump of the code. What I find simple and easy to read may not be that easy to you, or vice-versa.
      Oh and I do work with PHP, and I hate the ambiguity of the code.

    5. Re:Even more important by Anonymous Coward · · Score: 0

      I think the fact that it is named after a venomous snake probably ought to be a clue about something there. I'm not quite sure what though.

    6. Re:Even more important by Kalriath · · Score: 1

      Go tell that to Python.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    7. Re:Even more important by Anonymous Coward · · Score: 0

      Active Server Pages is a type of snake? Who named that species?

    8. Re:Even more important by MightyMartian · · Score: 1

      You can do that with any language that writes to standard output. Jeezus, I've never heard anyone try to describe PHP as unique.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    9. Re:Even more important by SplashMyBandit · · Score: 1

      nb. Python are not venomous. They kill their prey by crushing (which is how you oughta feel right now - just kidding - nice joke you made).

    10. Re:Even more important by SplashMyBandit · · Score: 2

      Whatever snake that can only live in one environment, kinda moves backwards, and is not very dynamic compared to other more recently evolved snakes :)

    11. Re:Even more important by shutdown+-p+now · · Score: 4, Insightful

      TL;DR version is that PHP is crap. For a lengthy treatment of the subject, see my sig.

    12. Re:Even more important by Anonymous Coward · · Score: 0

      I can communicate with my server's serical port in PHP

      And then I jizzed in my pants.

    13. Re:Even more important by Billly+Gates · · Score: 1

      What do you recommend then?

      A 100% interpreted language like python or ruby? Php with Apache DSO runs inside the web server engine that is written in C++. The other languages run in CGI interpreted. THough, Zend is coming out but I do not know if web hosting companies support it yet through CPanel?

      Php's strength is you can get something done with 1/8th the code size and in 1/4th the time than in Java. It is a rich not overly engineered langauged.

    14. Re:Even more important by shutdown+-p+now · · Score: 3, Interesting

      If you didn't get so carried away by a rant of your own, you might have noticed that the linked article is not written by me. I do happen to agree with most of its points, however, and certainly with the overall conclusion.

    15. Re:Even more important by Bitsy+Boffin · · Score: 1

      RTFM, if you want to avoid the dynamic typing, then you can...
      http://php.net/manual/en/function.in-array.php

      $a = array('7.1');
      var_dump(in_array('7.10', $a, $STRICT=TRUE)); // false

      I won't say PHP doesn't have it's faults, but dynamic typing is more feature than fault IMHO. Just use it properly.

      --
      NZ Electronics Enthusiasts: Check out my Trade Me Listings
    16. Re:Even more important by purpledinoz · · Score: 0

      PHP is great for hacking together a small website that's fairly static. But I can't imagine doing anything substantial with it.

    17. Re:Even more important by DarwinSurvivor · · Score: 1

      Python is named after MONTY PYTHON. In fact, if you read through the docs, you'll start the notice quite a few libraries named after various skits the group did (bicycle-repairman being the most well known).

    18. Re:Even more important by Anonymous Coward · · Score: 0

      Your .signature doesn't show up anywhere.

    19. Re:Even more important by History's+Coming+To · · Score: 1

      Pythons aren't venomous.

      --
      Please consider this account deleted, I just can't be bothered with the spam anymore.
    20. Re:Even more important by wertigon · · Score: 1

      That page is really, really dumb.

      The author does not seem to know, for instance, the difference between "protected" and "private" keywords in class-based OOP languages (protected is available to all inherited objects, private is not; the example he gives works in C++ and Java too).

      PHP does have it's warts, yes, but that page more points out the author's own lack of understanding than PHP warts.

      --
      systemd is not an init system. It's a GNU replacement.
    21. Re:Even more important by deniable · · Score: 1

      The problem is that a lot of those hacked together solutions get adopted and put into production. PHP / MySQL are a little too accessible. They're the VB / Access of the Internet. Everyone can have a go and then some of us get to clean things up.

    22. Re:Even more important by Anonymous Coward · · Score: 0

      good point - that is why Facebook programs in PHP

    23. Re:Even more important by Anonymous Coward · · Score: 1

      Yeah I work with PHP too. All the criticisms are true, yet my shop is very productive with it nonetheless. Might we be more productive with something else? Doesnt' matter! Too much investment in the legacy codebase.

    24. Re:Even more important by Tenebrousedge · · Score: 1

      I just spent a year learning PHP. Then I read your sig. My next project will be in a different language.

      PHP is easy. For small scripts it's no worse than other languages. It definitely has a wider adoption on the Net than Perl, and if you want to work in New Delhi it's the way to go.

      I don't exactly consider it wasted time, but I wish I'd seen your sig a year ago.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    25. Re:Even more important by Anonymous Coward · · Score: 0

      "If the third parameter strict is set to TRUE then the in_array() function will also check the types of the needle in the haystack."

      PHP is a language where you have a bit more to know what you are doing, it is easier to make mistakes (in the sense of expecting the wrong result)...

    26. Re:Even more important by Zero__Kelvin · · Score: 1

      "What do you recommend then? A 100% interpreted language like python or ruby?"

      The question is flawed, since Python is not a 100% interpreted language. From stackoverflow:

      The classical implementation, CPython, is often called just "Python" for short -- but it's just one of several production-quality implementations, side by side with Microsoft's IronPython (which compiles to CLR codes, i.e., ".NET"), Jython (which compiles to JVM codes), PyPy (which is written in Python itself and can compile to a huge variety of "back-end" forms including "just-in-time" generated machine language). They're all Python.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    27. Re:Even more important by Zero__Kelvin · · Score: 1

      Exactly! See ... there is hope for you yet. Also, Facebook doesn't program.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    28. Re:Even more important by Raenex · · Score: 2

      But I can't imagine doing anything substantial with it.

      Right. It would be unimaginable if sites like Facebook or Wikipedia were based on it.

    29. Re:Even more important by duguk · · Score: 1
      I too could spend the time writing several paragraphs explaining in detail why this article is incorrect and the misunderstandings and misapprehensions the author is under. I'm fed up of seeing this propaganda going unargued.

      Thankfully, someone has already detailed this for me:

      Just a few errrors in the article:

      Operators are very fragile in the parser; foo()[0] and foo()->method() are both syntax errors. The former is allegedly fixed in PHP 5.4, but I can’t find mention of a fix for the latter.

      The latter doesn't need a fix because it always worked. Honestly, how hard is it to test that foo()->method() works?

      Objects compare as greater than anything else except other objects, which they are neither less than nor greater than.

      Strict-equals on objects compares the references; but regular equals compares the contents of the objects. Two objects compare equal if the contain exactly the same fields and values. Seems pretty reasonable to me.

      • is always addition, and . is always concatenation.

      This is a good thing; JavaScript gets this wrong.

      There is no way to declare a variable. Variables that don’t exist are created with a null value when first used.

      Variables that don't exist issue a notice. You can deal with that just like any other error.

      Global variables need a global declaration before they can be used.

      Actually there is also the $GLOBALS array for this. I'll agree that's not much a solution. Globals should just not be used; if you want to use static class variables, it's a much better choice with a sane syntax.

      there’s no pass-by-object identity like in Python.

      I'm not sure if I understand this but all objects are passed-by-reference in PHP (since 5) and PHP references act appropriately when used as function parameters, etc.

      A reference can be taken to a key that doesn’t exist within an undefined variable (which becomes an array). Using a non-existent array normally issues a notice, but this does not.

      An attempt to use the reference will result in a notice but isset() and empty() operate it on it correctly.

      Constants are defined by a function call taking a string; before that, they don’t exist.

      You can declare constants in classes and namespaces with the const keyword.

      There’s an (array) operator for casting to array. Given that PHP has no other structure type, I don’t know why this exists.

      You can cast scalars to single element arrays and objects to arrays with the same structure. Both are actually very useful.

      include() and friends are basically C’s #include: they dump another source file into yours. There is no module system, even for PHP code.

      PHP is interpreted -- namespaces and autoloaders are PHP's module system.

      Appending to an array is done with $foo[] = $bar

      This is a good thing.

      empty($var) is so extremely not-a-function that anything but a variable,

      Empty is equivalent to the not operator but will also work on undefined variables -- that's why it requires a variable.

      There’s redundant syntax for blocks: if (...): ... endif;, etc.

      Useful inside of templates where matching { } is much more difficult.

      PHP’s one unique operator is @ (actually borrowed from DOS), which silences errors.

      Sometimes you don't care if a functi

    30. Re:Even more important by Skal+Tura · · Score: 1

      LOL, those arguments against PHP are hilarious at points :D

      Not sure where these arguments against PHP were, haven't seen it, but who ever made those arguments clearly is not a very capable programmer.

    31. Re:Even more important by Kalriath · · Score: 1

      Touche.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    32. Re:Even more important by Kalriath · · Score: 1

      I dunno whether I'd prefer my programming language trying to crush me or trying to poison me.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  13. Re:The thing about Java is by Man+On+Pink+Corner · · Score: 0, Redundant

    It's useful if you want to sue people for stealing your patented copyrighted proprietary implementation of "if / elseif / else."

    Beyond that, well....

  14. CherryPy by elamdaly · · Score: 2, Interesting

    I'm long time Java developer myself and I find Python to be a natural transition. We've been using CherryPy at work and it's a pleasure to use. Clean, concise and simple. And it has a number of templating languages to use as well.

    @WilliamBaughman GWT is nice, but it's different than most web frameworks. It's Java code compiled into Javascript. The times I've used it I've come away thinking it has some great features, but it's a little heavy for my taste. Haven't used it in about 3 years though.

    1. Re:CherryPy by countach74 · · Score: 1

      +1 ... I'm not sure why CherryPy hasn't gained momentum. It is such a fantastic tool.. and because it's an HTTP framework and not a "web framework," it is both easy to learn and does not lock you into what the web framework is designed to do (cough, Django). It's seriously taken the "work" out of web programming, in my mind... well, except for JavaScript being awful.

    2. Re:CherryPy by WilliamBaughman · · Score: 1

      Thanks for that tip. I'll have to check CherryPy out now that I'm find myself writing web apps again. One of the things I liked about GWT was that not all of the Java compiled to JavaScript, if that makes sense. You could leave parts of your app as Java classes that would communicate with the pages, but execute server-side. In my (admittedly limited) experience, GWT was the easiest way to hook up active Java to a web GUI.

  15. here is the most important tip... by Lumpy · · Score: 1, Informative

    If it does not load perfectly every time, you failed.

    for example? Any of the Gawker Media websites, some times you have to reload t hem 3 times to get the fricking hyperlinks to work.

    any usability bug is an epic fail.

    --
    Do not look at laser with remaining good eye.
    1. Re:here is the most important tip... by Jah-Wren+Ryel · · Score: 4, Insightful

      Any of the Gawker Media websites, some times you have to reload t hem 3 times to get the fricking hyperlinks to work.

      A little tangent....

      Gawker's websites suck in other ways that relate to usuability too. I use noscript religiously, there is nothing about the gawker websites that need javascript, but all you get is a nearly blank page if you don't enable javascript. UNLESS you change your brower's user agent to something Gawker doesn't recognize as supporting javascript (I change mine to an old version of googlebot). Then they send you pages that work perfectly well without javascript.

      So clearly they can do non-javascript pages, but if they recognize your browser they won't give them to you and even worse, they won't even explain what's going on, it just silently fails with a blank page. They can't even be bothered to tell you to enable javascript, which is really just pathetic.

      --
      When information is power, privacy is freedom.
    2. Re:here is the most important tip... by Jane+Q.+Public · · Score: 1

      "They can't even be bothered to tell you to enable javascript, which is really just pathetic."

      This is a pet peeve of mine. Even the Twitter site does this wrong. If your javascript is turned off, it redirects you to a completely different page, with no history, so you can't just turn javascript on and hit the back button. No, you have to turn javascrpt on, then find the original link you clicked on, and click it again to get to the Twitter page you were trying to visit.

      Hint, Twitter: That's a really, really bad user experience.

    3. Re:here is the most important tip... by Anonymous Coward · · Score: 0

      Funny you should say that. I had to reload this very Slashdot article 4 times before it loaded correctly. It happens at least once per day. I guess even Slashdot has its "epic fail" moments.

    4. Re:here is the most important tip... by Purity+Of+Essence · · Score: 2

      I use noscript religiously, there is nothing about the gawker websites that need javascript, but all you get is a nearly blank page if you don't enable javascript.

      Best argument for noscript I've ever read.

      --
      +0 Meh
  16. Re:The thing about Java is by ElectricSpit · · Score: 0

    I have never enjoyed anything I have ever used with Java, the only way I can stand it now is because I bought a brand new gaming computer which doesn't crash when I run the JVM.

  17. CMS and done. by adosch · · Score: 3, Informative

    Just use a CMS and call it good. I remember the days before very customizable templating where you hand-roled all that web site crap yourself. There are plenty of CMSs out there (TomatoCMS, Wordpress, Joomla, LightCMS, ezPublish, etc) that will do exactly what you want in about 20 minutes of your time. There's also lots of customizing and add-on's you can get for the more popular CMS's that I mentioned, too. And to keep to your Java roots, you can do all the client side stuff you want in JQuery or equivalent.

    That's my $0.02.

    1. Re:CMS and done. by Lehk228 · · Score: 4, Funny

      QDB.us #307623 wordpress is an unauthenticated remote shell that, as a useful side feature, also contains a blog

      --
      Snowden and Manning are heroes.
    2. Re:CMS and done. by victorhooi · · Score: 1

      heya,

      Sorry, this is just a niggle, but Java != Javascript!

      Argh, I don't know where this meme came about, but the only thing similar between them is the "Java" part - and that was just Sun/Netscape trying to cash in on the Java hype back then.

      Syntactically, sure, you can argue they're similar (and even then, only a a very basic level) - but then so are all the C-class languages.

      If he really wanted to stick to his Java roots on the UI side, he could use something like GWT (Google Web Toolkit).

      Cheers,
      Victor

    3. Re:CMS and done. by Jane+Q.+Public · · Score: 1

      CMS is fine for a small, static site or blog. But for anything more sophisticated, they are terrible to maintain.

      One big company recently asked me to estimate what it would cost to move their cite from one CMS system to a different, more modern one. But the site is relatively old, with literally thousands of pages. And because there is no automated tool to migrate from that particular CMS system to another one, it would have to be done manually and it would take a very long time. I told them so. I never heard from them again, which is fine with me.

      Another site I work on is in 5 different languages. But because the CMS they use doesn't support a language plugin (as does, say, Ruby on Rails), each language is effectively a DIFFERENT site, and has to be maintained as such.

      I simply don't recommend that my customers use a CMS at all anymore, unless as I say they are just doing a blog or a small, simple, static site. My experience with CMS has been overwhelmingly negative. They may be relatively easy to set up, but in the long run they are far more trouble than they are worth.

    4. Re:CMS and done. by bobetov · · Score: 0

      I'm sorry - "keep to your Java roots" and "jQuery"?

      They have nothing to do with each other. Syntax, programming paradigms, typing... how the heck did this comment get upvoted?

      And using a CMS... god. I'm a contractor. About half my work is taking fugly sites hacked together using "plugins" for WordPress and making them actually work (using Rails, in my case). You'll learn almost nothing from putting up a WordPress site, except how frustrating it is to try to pick a set of plugins that mostly get you what you want done without making a mess of the site.

      WordPress is a blogging platform with delusions of general purpose usage. Can't speak to Joomla etc., but I'd be amazed if you didn't regret trying a one-and-done CMS solution to a custom web app problem.

      WordPress is the DreamWeaver of our age.

      --
      Looking for a Rails developer in Chapel Hill?
    5. Re:CMS and done. by Jane+Q.+Public · · Score: 1

      "You'll learn almost nothing from putting up a WordPress site, except how frustrating it is to try to pick a set of plugins that mostly get you what you want done without making a mess of the site."

      Agree. See my own comment just above, to pretty much the same effect. If those sites had been on Rails or some other sane platform, I could (or could have, in the one case) maintain them far, far easier and with fewer headaches.

    6. Re:CMS and done. by Anonymous Coward · · Score: 0

      The little that the OP posted about his requirements (multiple authenticated users posting content, users filtering content, mobile interface later on) maps really well to a very simple Drupal usage scenario. Just create an event content type that is rich enough to match filtering needs, maybe enrichen the model with tags and taxonomy, set up the usage rights for different user roles and create a separate Drupal theme for mobile browsers and you're basically done. Most of the development time can be used to optimize the user experience and the look & feel-part of the site.

      I know, Drupal is in PHP, but I suspect that in such a simple situation not much custom code is needed.

    7. Re:CMS and done. by Anonymous Coward · · Score: 0

      Not all CMS are created equal, though. The summarized description of the site's purpose really makes it look like a good candidate with a CMS with a flexible content model. Sadly, most of them are written in php, not Java ( ;-) )

    8. Re:CMS and done. by Anonymous Coward · · Score: 0

      You may also consider Drupal...

    9. Re:CMS and done. by Anonymous Coward · · Score: 0

      That's funny, I transfer CMS based sites (wordpress, joomla) with literally hundreds of thousands of pages to another CMS (drupal) all the time, typically in the span of a weekend + database imports. Granted that kind of turnaround requires client to have their own QA staff, and it helps that 99% of the functionality required is handled either through contributed or custom modules I've wrriten, but if it takes you a very long time, it sounds like you're doing something dreadfully wrong.

    10. Re:CMS and done. by Jane+Q.+Public · · Score: 1

      "... if it takes you a very long time, it sounds like you're doing something dreadfully wrong."

      The CMS in question was an old one that was not being maintained anymore, which was why they wanted to migrate to a newer one. I don't even remember the name anymore of the CMS they used. It isn't popular today.

      Regardless, unlike with most other CMS systems today, there were no available tools for migrating from that CMS to anything else. I would have had to figure out the internal code and data organization of the CMS from scratch completely on my own and write my own code, also from scratch. Which, yes, would have taken quite a bit of time.

      Had it been a more modern CMS like Wordpress or even Radiant, it would probably have been a breeze. But it wasn't.

    11. Re:CMS and done. by Jane+Q.+Public · · Score: 1

      Just for example, take Wordpress and Joomla, the 2 that you mention.

      There are already migration tools for those platforms, so most of your job is already done for you.

      That was simply not true for me, in the case I mentioned.

    12. Re:CMS and done. by Xest · · Score: 1

      This got modded informative? Look, it's nothing against you adosch, you're obviously trying to be helpful, but your post is very low quality, and if mods think it's informative it really shows how far Slashdot has fallen.

      It sounds like you don't really have much experience in web application development, as those suggestions you put forward simply aren't viable if you want any degree of flexibility. Joomla for example is brutally inflexible, and painful bloated and slow. The real problem is though that you believe Java is somehow similar to Javascript, jQuery is a Javascript library, and Javascript is about as similar to Java, as Afghanistan is to America in terms of culture. They really couldn't be much more different, curly braces is about the only thing they share.

  18. Here's some advice regarding Java by Anonymous Coward · · Score: 0

    Don't use it for the web. Period. You will force a really undesirable and clunky dependancy on people which will most likely scare away loads and loads of users from the application. Go learn Javascript if you must have something that isn't just HTML on the client side. If you want to stick with Java for the server side of things, fine, but don't throw Java in the face of the users.

  19. Nothing wrong with PHP. Don't be a language bigot by Anonymous Coward · · Score: 1

    staying in your "Java comfort zone" is just silly. PHP, ASP, JSP ... all follow a similar construct. It's called "application for web in language ___".

    Honestly, if you've already learned Java you've got 90% of the knowledge you need for PHP. All you need to know is . = + and variables are prefixed with $. The function names are different, but so what? they're much simpler than this.that.something.else.ghaaa

    Java is not server-centric the way PHP is server-centric. You're basically saying "I want to learn how to drive, but only ONE model/make of car".

    Learn PHP, it's worth it. Your soft, sensitive, tender Java belly will be just fine.

  20. Java Server Side by physburn · · Score: 1

    Java for the web, you mean you don't already know, JSP? You could just write java server pages, or add in the java standard templete library. Its not difficult, but might not be MVC enough for large scale development, So add Apache Wicket or Spring MVC or possibly playframework.

    1. Re:Java Server Side by ancientt · · Score: 1

      Do what you do best.

      Use Java for the server coding and Dart for the client coding. JSP is an obvious choice if you haven't already considered it. Dart is going to feel very familiar but compiles to JavaScript so you can build in an enviornment you are already comfortable in and still avoid the pitfalls of client side Java.

      Personally, I'd like to see you do your project to also work as a plug-in for Vosao. While I am not a fan of Java, it's still what I'm using for my CMS on Google AppEngine because it's good at what I care about. That's kind of key to the advice I'm giving you. Of all the programming languages I've used, and there are several, I'm least fond of Java but what matters is the quality of the result. You'll do your best work if you spend your time on the project instead of on learning new tools.

      --
      B) Eliminate all the stupid users. This is frowned upon by society.
  21. Spring, Scala/Akka/Play by MattW · · Score: 3, Interesting

    I have two suggestions that are close to staying with Java:

    (1) Check out Spring (http://www.springsource.org/); Spring has a bunch of goodies that make developing web apps easier, and the guys from spring (Adrian Colyer, Richard MacDougall) are thinking really hard about scalable web services. This is a foundation that will let you write in Java but still be prepared for the future.

    (2) Even better, don't go with Java, but leverage some of what you learned and pick up Scala. See http://www.scala-lang.org/, or pick up Martin Odersky's book. Think of Scala as what Java would be if someone who appreciated terse, expressive syntax and great convention redesigned Java. Odersky wrote a reference JVM implementation while at Sun, and Scala compiles into Java bytecode and can directly use Scala libraries. (My first Scala project, for example, I used unboundid's LDAP libs directly in my Scala code.) Odersky along with some other luminaries (Viktor Klang, Paul Phillips, etc) have formed Typesafe, and are producing Scala the language + Akka (an actor framework) + Play (a web framework). Outside of play, many people are huge fans of Lift, and it does have some magic that no other framework has.

    Remember how you said "modern" web application? Well, Scala supports functional programming, and you can fix functional and imperative code in the same application, which means you can support massively scalable sites by writing clean, idempotent code where needed.

    If all this sounds bad, then I'd recommend Django+Python, as it is, imo, the best way for a relative web novice to produce decent code, and the amount you can do with a few hours reading docs and then digging in is shocking.

    1. Re:Spring, Scala/Akka/Play by akeeneye · · Score: 1

      Scala rocks. Scala + Play rocks even more. Coming from Java, it's kind of a toss-up to me whether Scala+Play or Python+Django would be more work to wrap one's mind around. I suspect that the latter might be less mind-bending. Both Scala and Python are beautiful languages, Django is very mature, and Play *feels* like "Django on the JVM" to me.

      --
      The man who dies rich dies disgraced. -- Andrew Carnegie
    2. Re:Spring, Scala/Akka/Play by jmerlin · · Score: 1

      Round-trippers (one full page per GET with some sprinkling of JS effects here and there) are going out of style. It seems though that some companies, notably Twitter are heading towards doing more work on the back-end for users who have less capability to render the page, for performance reasons. Client-side heavy apps scale better by default, but if UX is the primary goal, some of the stuff they're doing is pretty cool to consider.

    3. Re:Spring, Scala/Akka/Play by Anonymous Coward · · Score: 0

      +1 on Scala and Lift

    4. Re:Spring, Scala/Akka/Play by mmmmbeer · · Score: 1

      I'll second the recommendation for Spring. Spring MVC is really useful, and the dependency injection is very powerful but also pretty simple to use.

      My other recommendation is to remember KISS: Keep It Simple Stupid. No matter what you choose to do, keep it as simple as possible, but no simpler.

      Also, use JQuery for the front end. It's immensely better than pure javascript.

  22. check what's available by rev0lt · · Score: 2

    What you describe sounds a lot like many different existing applications. You may benefit from checking out what is already out there (opensource) and see if it is a good fit (or a good starting point) instead of building your own. Also, you may get some new ideas for your own design, so you won't waste your time.

    Regarding programming languages, your decision may be conditioned to the deployment options. Do you want to run it on your own infrastructure, or do you want to put it on a shared host/cloud provider? For shared hosts, PHP or Python may be a good option.

    Other aspect to consider is the widget toolkit. Do you have experience with one (or several) that may be more suited to a given language? As an example, GWT is Java-oriented, Dojo integrates well with Zend Framework (PHP), and (AFAIK) both ExtJS and DHTMLX are more language-agnostic. I actually use a lot DHTMLX and their scheduler component may be a good fit for what you're trying to do. Also, (at least) both DHTMLX and ExtJS have a design tool, so you can build your interface without the need for programming or any server-side code.

    Finally, do you have other specific requirements, such as scalability, SGBD to use, multi-language support, big persistent data, complex objects, etc? That may also influence the choice of both the language and the framework. Remember, PHP applications are (mostly) stateless, and at every request your application starts from scratch. You can use cache and other tricks, but it will take you only so far - and if you are used to Java, you may take some time to adapt to these limitations.

    My personal choice would be PHP with Zend Framework (v1.x), but I don't really like Java and don't have that much experience with other fancy web-oriented languages. Zend Framework is quite complete and probably will give you all the funcionality you may need for your application.

    1. Re:check what's available by Anonymous Coward · · Score: 1

      I'd stay away from PHP. It sounds like a language by and for hacks:

      http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

    2. Re:check what's available by rev0lt · · Score: 1

      It is nice to see someone stand by their opinion, mr Anonymous Coward.

      It is amazing how the world hasn't collapsed yet (given the amount of PHP products and the amount of PHP code deployed) by looking at that list. If PHP programmers can work around all those defects and limitations and create applications that work, I wouldn't call them hacks. They must be wizards, right? Or maybe they just try not to think of it as Java and have a coding style that will avoid most of the defects mentioned. Maybe.

    3. Re:check what's available by Anonymous Coward · · Score: 1

      Not sure how a coding style allows you to "avoid" support for multithreading. Or a lack of interactive debugging. Or the absence of support for modules. Or a crazy type conversion system. Or an inconsistent and poorly-designed standard library. Why not just choose a platform that doesn't have these issues?

      That some people have got decent results out of PHP does not mean its a good language. From the article:

      Do not tell me that “good developers can write good code in any language”, or bad developers blah blah. That doesn’t mean anything. A good carpenter can drive in a nail with either a rock or a hammer, but how many carpenters do you see bashing stuff with rocks? Part of what makes a good developer is the ability to choose the tools that work best.

    4. Re:check what's available by rev0lt · · Score: 1

      "avoid" support for multithreading

      Is multithreading absolutely necessary for every application? Well, let's see - you have full blown SGBDs without mulithreading. Can some of those "multithreaded" applications be re-tailored using an event-driven approach? Probably. Can most of that threaded work be emulated by run queues? Shure.

      Or a lack of interactive debugging.

      While interactive debugging is nice, it's not a killer feature. And it's not like there really isn't one available (http://www.php-debugger.com/dbg/)

      Or the absence of support for modules.

      Define "modules". Because I shure can use "modules" - made in PHP code. Binary modules need installation privileges, but it is quite easy not only to add them, but to build them from 3rd party libraries.

      Or a crazy type conversion system

      Hey, no argument there.

      Or an inconsistent and poorly-designed standard library

      It's a work-in-progress. It's getting better, and frameworks help. Smart IDEs also help (do you know the order of every parameter in every C standard library?) It is not enough, but it's a big help.

      Why not just choose a platform that doesn't have these issues?

      You mean, a platform where I need to wait between 15s and 2 minutes until I can actually run a binary? Or a platform that, by having step-by-step debugging promotes laziness (yeah I know, hilarious, right?)? Or a platform that insists on shoving down my throat their way of doing things, and for simple stuff I'd have to instantiate objects like there's no tomorrow.

      That some people have got decent results out of PHP does not mean its a good language.

      It means it's good enough to get the job done. At the end of the day, that is what matters - shipping good and functional product. And usually maintainable, too.

      That doesn’t mean anything. A good carpenter can drive in a nail with either a rock or a hammer, but how many carpenters do you see bashing stuff with rocks? Part of what makes a good developer is the ability to choose the tools that work best.

      Stick with programming, and leave both carpentry and metaphores to the professionals. At least, regarding programming, you raise some valid points.

      As kind of a disclaimer, I have a strong background in assembly (x86). New instructions in almost every cpu. No "typed variables". No objects (but I used to do OO programming in asm). No native support for threading (new generation Intel has some helpful instructions). 500 different ways of doing stuff. No standard library, and the operating system APIs aren't that consistent. You do have interactive debugging, and your app will at least run in native speed. Oh and when I used asm as my main language, I usually had a high level of productivity, so it wasn't really "a rock".

  23. Re:The thing about Java is by Anonymous Coward · · Score: 3, Insightful

    You're talking about desktop GUI development - the submitter is asking about Java for web development. That's quite different. How many GUI apps do you use regularly that are written in Python, Ruby, or even Tcl/Tk?

  24. Re:Nothing wrong with PHP. Don't be a language big by cowdung · · Score: 3, Insightful

    PHP is garbage. Bad design all over the place. And I'm talking both about the language as well as the standard mess it calls a "library". It is the new BASIC.. stay away it'll damage your brain. For details see:

    http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/

    There are better alternatives if you want to go the dynamic route: Ruby on Rails and I hear Python / Django is great too.

    There's nothing wrong with Java as long as you know how to use it. But its always good to learn a new language. ASP.Net is also nice if you don't want to go dynamic.

    The hardest part about moving away from Java is losing all the cool static analysis tools that are incorporated in Eclipse as well as tools such as FindBugs. But our experience with RoR (in spite of it missing some needed feature many Java frameworks have).

    In summary: learn anything but PHP.. it truly is garbage that must die.

  25. Face-eating PHP monster again... by Anonymous Coward · · Score: 0

    Every server-side language has it's problems, but PHP is so face-eatingly wonderful for the web you're just a silly victim for not using it.

    Simplicity... eat the web with PHP.

  26. Need some client side? by rHBa · · Score: 4, Informative

    To be honest you're gong to have to know some HTML/CSS at some point. It's considered impolite these days to insist (or expect) that the client side understands Java.

    In other words, assume that Java ISN'T supported on the clientside.

    1. Re:Need some client side? by rHBa · · Score: 1

      Sorry to reply to my own post but the OP seems (to me) to be thinking along the lines of Java Applets?!?

    2. Re:Need some client side? by Anonymous Coward · · Score: 0

      I agree. After moving into web dvlp after years building C toolkits, I certainly made use of toolkits / CMS such as Wordpress, and until I sat Dow and learned HTML / CSS to the last detail, I was always frustrated by what I didn't know.

    3. Re:Need some client side? by Anonymous Coward · · Score: 0

      Is there any framework that automates some CSS tricks like swapping "tabs" in a webpage using :checked pseudoclass like I saw here?

    4. Re:Need some client side? by Billly+Gates · · Score: 1

      I second that.

      I was given a task to develop a website for a Network Users Group and thought it would be a simple project with Kompozer and some HTML like I did in the Netscape 4.x days. Boy was I in for a surprise.

      CSS is the new thing now in this century. Worse, the code I used from the internet that I modified worked in all browsers but Internet Explorer. IE 6 from what I researched was on crack when it came to CSS!

      I am developing a site .... errr plan to start one. I had to go to a Barnes & Noble and get a few books on CSS and HTML 4 + Css 2.1 with IE hacks and tips. I have been using the books and let me tell you that it is increasingly complex task that web designers do not get fully appreciated for their efforts. Most of the PHBs such as myself figured any teenager could make a website so it wasn't worth to pay anything etc.

      Php I plan to tackle a little more next night because it is superior, but because I do not have to fuss with it to get shit done like I would in Java. When I earn money then I can hire someone to remove the bad code and fix that later etc.

    5. Re:Need some client side? by Anonymous Coward · · Score: 0

      Php I plan to tackle a little more next night because it is superior, but because I do not have to fuss with it to get shit done like I would in Java. When I earn money then I can hire someone to remove the bad code and fix that later etc.

      Dear god, man!! Please do the world a favor and toss your computer and all programming-related books into the nearest fire. You think that it's easy to just go in and "fix" a poorly-written app after the fact?

    6. Re:Need some client side? by sdoca · · Score: 1

      No, I am NOT thinking of developing applets. I mentioned them to illustrate how long it's been that I did web page development.

    7. Re:Need some client side? by Anonymous Coward · · Score: 0

      I never understood that flash/silverlight guys get to expect the client side has certain software

    8. Re:Need some client side? by Anonymous Coward · · Score: 0

      Because he mentioned Applets in the same sentence as two advanced server side Java frameworks? I think he was just showing that he had experience of a few different Java toolkits (and knowing how AWT/Swing works is definitely an advantage when moving to modern event driven frameworks).

  27. KISS by k(wi)r(kipedia) · · Score: 1

    ... if it's design you're after. Or is programming you want to ask about? The title of you submission mentions "design", but your extended explanation focuses on the programming rather than the design aspect. Maybe you should clarify. I'm not at all familiar with web programming. But my biases are against apps that have too many funny looking icons, menu items, and buttons.

  28. Play or Vaadin by Anonymous Coward · · Score: 0

    I'd probably either use Play or Vaadin. (And I'd probably lean towards using Scala with either of those.)

  29. Thought about sticking to a mobile app? by Kergan · · Score: 2

    Depending your project's specifics, consider whether you actually need the web application. If it turns out that you don't, go straight for an Android app (since you know Java). After it's released, toss in a "dumb" (aka no admin area) web site -- it should amount to a couple of new (outsourced) views for whichever framework you picked to create your json or XML API.

    I suggest this because writing complicated/interactive web views is a true mess for the uninitiated. The devil is in the plethora of browser-specific quirks, and you probably want to avoid running into them if you can get away with it.

    If you really must, that said, there are lots of MVC frameworks for web development, including several in Java. Each language has its more popular ones; picking yours is, imho, mostly a matter of taste...

    http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

    For javascript, don't miss jQuery and qUnit.

    1. Re:Thought about sticking to a mobile app? by feddas · · Score: 1

      I completely agree with "The devil is in the plethora of browser-specific quirks", yet companies are moving away from the web based solution to this, which in my mind is plug-ins: Java applets, Flash, & Silverlight. You may have yourself cornered in the future if you stick to the (better) methods of the plug-in/write-once-run-anywhere based past.

    2. Re:Thought about sticking to a mobile app? by Dynedain · · Score: 1

      yet companies are moving away from the web based solution to this, which in my mind is plug-ins: Java applets, Flash, & Silverlight.

      I do UI dev for a big agency, and you're wrong, wrong, wrong. Flash is dying primarily because of the iPhone and iPad, Silverlight is dead with the exception of Netfilx, and Java applets haven't been in the wild for years.

      They're moving to mobile/desktop HTML5/AJAX solutions, using common frameworks like JQuery Mobile. You probably wouldn't believe this, but most of your online-service-apps for iOS and Android (the ones from your banks, phone companies, etc) are all really just in-app browser views to dedicated HTML5/JQuery Mobile powered websites.

      --
      I'm out of my mind right now, but feel free to leave a message.....
  30. ExtJS by Anonymous Coward · · Score: 0

    ExtJS!!

    It has a mobile framework called touch too. You connect to a database using CRUD or the Ext.Direct API (which has PHP and Java libraries available). My favorite framework at the moment.

    Note that it's GPLv3 however...so if you're not paying for a license, your code must also be GPLv3 compatible.

    Check out some of the demos:
    http://dev.sencha.com/deploy/ext-4.0.0/examples/

    Here's the mobile touch demos:
    http://dev.sencha.com/deploy/touch/examples/production/index.html

  31. What kind of Interactivity? by Anonymous Coward · · Score: 0

    Determine what you really wnat you application to look like.

    Do you want something simple (perhaps "old fashioned") that follows the typical conventions of the web? Or do you want a richly interactive application -- something more on par with what you would expect in a desktop application (for example, Google Docs). That choice will largely define what makes the most sense to use.

    Simpler applications can be quickly and easily built in frameworks like Grails or JRuby on Rails -- hell even modern iterations of Struts2 or Spring MVC are reasonable (though not optimal) solutions for that. These frameworks have relatively highly refined processes for generating dynamic content on the server side (JSPs) with bits of JavaScript sprinkled in here and there. In the case of Grails and JRuby on Rails, you're talking frameworks that can generate functional web apps (GUI, controllers and even persistence/db layers) with very, very little custom code.

    More richly interactive applications can still be /plumbed/ with those same technologies if you want, but for that richness you're really looking for a client side asynchronous Javascript framework like DOJO or JQuery, Google GWT, etc. that will be a much more appropriate toolset to use instead of the more traditional approach. This is "web 2.0+" work where more and more of the application is being built and maintained entirely in Javascript/the clientside instead of being generated with server side code (JSP/ASP/PHP/etc.). In the case of Dojo or JQuery, you'd still want some sort of backend framework (Struts2/Grails/whatever) but typically those backends are fundamentally different because instead of generating HTML they are retasked instead to provide data services for a front end.

    Either approach is still valid and has its place -- probably for a long time to come, but the second approach is certainly more "modern" and more capable in terms of generating rich interactivity. It's also much more likely to enable and easy pairing with an Andoid and/or iOS component as you'll be using a similar application architecture and development process in both components -- though Android's dev process is far, far more refined (having borrowed heavily from Adobe Flex) than anything in the HTML/Javascript world.

  32. Keep It Simple, Stupid by TheDarkMaster · · Score: 2

    Keep simple. I are suspect to suggest something, but I think the combo pure Java (no fancy frameworks) + Apache Tomcat + JSP is flexible enought to many web projects. You can use simple JSP, HTML with some JSP "tags", or the entire page created with a Java Class if you wish, and you can do more complex things when you need

    --
    Religion: The greatest weapon of mass destruction of all time
  33. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

  34. Re:Nothing wrong with PHP. Don't be a language big by Stephenmg · · Score: 1

    I completely agree and don't understand the hate that php gets. PHP is a language for web dethronement. You should be fine going from Java to PHP due to PHP being mostly based on Java. I would have modded the parent up, but didn't see the point since it was posted as AC, so decided to post in support instead.

  35. Python :) by countach74 · · Score: 1

    Python with CherryPy and Jinja2 is my preferred backend system. All of these tools can be picked up in trivial amounts of time and allow for excellent organization and maintainability of code. I'd strongly suggest staying away from PHP.

    1. Re:Python :) by Anonymous Coward · · Score: 0

      Any language which has important invisible characters and how your code looks is integral to its operation is something I tend to avoid =P

      I kid.

      Mostly.

    2. Re:Python :) by countach74 · · Score: 1

      Why? It just forces you to indent the way you already indent. Or at least, the way you should already indent. :)

  36. Java programmer here by the+eric+conspiracy · · Score: 1

    Really like static compile time type checking which means a lot of client side programming pisses me off.

    I really like Apache Click. For someone who is really happy working in Java it's a good tool.

    1. Re:Java programmer here by SplashMyBandit · · Score: 2

      GWT is pretty good (as a Java solution). Yeah, once your project (more than a single person for an extended development period) gets big then static compile time checking can save you from a lot of trouble.

    2. Re:Java programmer here by Anonymous Coward · · Score: 0

      Really like static compile time type checking which means a lot of client side programming pisses me off.

      What? Are you being appreciative or sarcastic about compile time type checking?

      Typos in posts are OK as long as people can understand what you meant.

    3. Re:Java programmer here by Anonymous Coward · · Score: 0

      That's interesting. In all of the many many posts I've made to various fora on the internet and on earlier BBS systems over the three decades I've been doing this you are the first person who interpreted one of my posts to be maybe sarcastic when it wasn't intended to be. The number of posts where the reverse has happened must be nearly a thousand.

      It really wasn't a typo, either. I was sort of disinterested and lazy and figured I could get my message across without being particularly fussy about how I expressed it.

      Shit.

  37. Look at Spring Roo. by neiras · · Score: 1

    Specifically, look into the Spring Framework and Spring Roo.

    Here's where you start: http://www.springsource.org/get-started

    Spring Roo is a shell that does code generation and scaffolding for Java web applications. You're basically 5 minutes from a basic CRUD app with a couple of entities (the typical Rails hello-world-I-made-a-blog stuff). It puts together a really nice stack based on Spring MVC, Maven, JPA and your choice of ORM and view technology. It makes heavy use of AspectJ to keep its boilerplate out of your actual code, so if you decide to stop using Roo in the future, you can - there's no hard dependency on it, it just generates code.. If you decide to do something fancy like use GWT for your UI, Roo can help with that as well.

    Quick Roo demo: http://youtu.be/K78vL72XDqw

    Spring is a *huge* set of frameworks based around an excellent IoC container. Roo makes getting started simple, and lets you see how everything is supposed to fit together, which is usually the hardest part in the Java world. Just keep in mind that Spring is not web-focused - it has modules for web stuff, MVC, templating, etc., but also a ton of other stuff you probably don't need.

    Recommend you grab the Spring Tool Suite from http://www.springsource.org/springsource-tool-suite-download (no need to reg, just agree to terms). It's just Eclipse done up nicely with all the extensions you'll need, Roo, and Maven all ready to go. Don't waste time trying to set up vanilla Eclipse.

    One more thing: Ignore all the Java hate. All the PHP/Ruby/Python hobbyists are missing out on the joys of proper typing and top-notch tooling. Duck typing doesn't just *sound* dumb.

    Good luck.

    1. Re:Look at Spring Roo. by claytongulick · · Score: 1

      It's not that we're missing out. It's that some of us have put up with statically typed languages for 15 years, and have had enough of that crap.

      If you don't like dynamic languages, fine, but implying that folks who choose to embrace FP and dynamic languages are "hobbyists" serves no purpose other than to expose your lack of depth as a developer.

      Read this and take a long hard look at yourself.

      --
      Drinking habits can be dangerous. You can choke on the cloth and the nuns will wonder where their clothes are.
    2. Re:Look at Spring Roo. by CyDharttha · · Score: 1

      GWT also gets some Spring Roo love.

      Oh I see you did mention it :)

  38. RoR / Python on Heroku by AncientPC · · Score: 3, Informative

    For reference, I come from a LAMP + CodeIgniter background. I've done some Java stuff for university and at IBM, but nothing on the web side.

    If you're coming from a Java background, I'd suggest a Python + Django (heavier framework) / Flask (lighter framework), or Ruby on Rails on top of Heroku. PHP is cheap for hosting, expensive for developing. What's more important to you?

    You can Google the differences between Python / Ruby. They're roughly the same, with Python requiring you to be more explicit while Ruby tends to do a little more "magic". Also, whitespace code blocks is a deal breaker for some people. I like Python more.

    Heroku is free for a single web worker and a small shared database. They're built on top of AWS and charge a premium for the convenience of abstracting away dev ops. It's cheaper to use AWS directly or using a VPS, but at a time cost. How much time do you really want to spend doing dev ops rather than working on your core product?

    I would worry about the web app first, then expose an API for use with mobile apps when it comes to it.

    Web app development is drastically different from enterprise code. It's about constant iteration and deployment, scaling if necessary. Breaking out of your Java comfort zone will also help you grow as a programmer. You're going to have to learn HAML / LESS / JavaScript anyway for the front end.

  39. .NET by Anonymous Coward · · Score: 0

    ASP.NET

    1. Re:.NET by SplashMyBandit · · Score: 1

      Lol. ASP.NET Is so last century (just like JSP solutions in Java). It is easy to spot these sites designed to be mostly page-oriented and just a bit of a yawn to use. GWT is much much better (plus portable to lots of different server O/S for your big, or little, server farms). The Microsoft research to reproduce GWT, called Project Volta, is stillborn. This is a shame because Volta would have given the .NET dudes some of the goodness of GWT (although still platform-limited, as ever with MS).

    2. Re:.NET by Anonymous Coward · · Score: 0

      It stands the test of time. It scales well. It has garbage cleanup. It's server-side tech that parses and validates buffer overflows and when combined with bind variables plus prepared SQL statements in compiled stored procedures in Oracle or SQLServer, it rocks to industrial scale. It stands the test of time, on many levels, from smallscale to enterprise class mission critical industrial scale systems with low failed projects rates.

  40. Java, Struts and Velocity by TigerTime · · Score: 1

    Get a Tomcat server up and running and deploy your app there. Use Struts/Servlets for you Java structure and navigation, and Velocity to populate the templates. This is Tier 3 development (Keep the Logic, DataAccessObjects, and Templates separate). Velocity takes all of one day to learn and will save you a ton of time in the long run so you can focus on the HTML and the JAVA

    http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html

    Do NOT go the PHP route. As someone that works for a Fortune 500 company and who has been in the business for 12 years, you don't want to get mixed up in the mess that is PHP debugging and updating. With PHP you will have to learn a new language that doesn't extend very well, is a pain in the ass to debug, and you'll have a tendency to intertwine your application logic with your template, which will make it an absolute bitch when you come around a year later and want to change the look and feel of your site.

    1. Re:Java, Struts and Velocity by SplashMyBandit · · Score: 1

      Structs are ancient and pretty yukky compared to the newer tech out there :( I'm surprised anyone would use them for anything new.

    2. Re:Java, Struts and Velocity by TigerTime · · Score: 1

      Well, I'm curious as to what you use on the server side if you aren't using Struts or Servlets because of the technologies I've used, I've found the best success with them. And with struts we don't do any JSTL or TagLibraries. We once tried JSF with horrible consequences. We have grown to detest tools/frameworks that generate HTML/Javascript on the fly via their own libraryset. And, I don't ever feel like it gives me enough control to do what I want them to do.

    3. Re:Java, Struts and Velocity by SplashMyBandit · · Score: 1

      JSF is indeed awful, IMHO. Have you tried GWT+vaadin yet? Pretty fine if you are in the Java space.

  41. Re:Nothing wrong with PHP. Don't be a language big by Anonymous Coward · · Score: 0

    PHP is neutered Perl, and Perl is bad enough (this is coming from someone who was recently working on a large Perl project for several years). PHP has all the messy syntax of Perl (it was originally based on it), but none of the more powerfull metaprogramming features (that exist in cleaner languages like Python and Ruby). Years and years ago it had the one benefit of being embedded in HTML by default, but now every other scripting language has a library that lets you do the same thing. The only possible reason to use PHP is that you want to make use of some web library or CMS that was already written in it, which I hate to admit is actually a pretty compelling reason. The wordpress hacks I've seen are impressive. But doing anything from scratch in PHP is just shooting yourself in the foot.

  42. Re:Nothing wrong with PHP. Don't be a language big by Fnord · · Score: 3, Insightful

    Parent was me, forgot to log in

  43. Stick to your comfort zone, but build on it by laffer1 · · Score: 2

    Modern web applications use ajax. You need to pick a javascript library. Depending on your needs the right answer might be JQuery, Dojo, YUI, Prototype, etc.

    If SQL Database:
    You need to pick an ORM. Most people work with them now. The popular Java solution is hibernate. I'm a big fan of Apache Cayenne. You also need to pick a database. MySQL (or fork) or PostgreSQL are good choices.
    else if NoSQL
    pick a NoSQL database, but avoid CouchDB. Hadoop, mongo, cassandra... there's loads of them.

    You need to pick a servlet container:
    Tomcat, Jetty, ...

    You need to pick a Java web framework:
    There are hundreds of choices. Spring is the hot thing. There are many unpopular choices that are good like Wicket, Click, etc. It really depends on what you're building and how it can integrate with your ORM or NoSQL database. Click + Cayenne work well together. Wicket + Cayenne do as well. Spring works better with hibernate, etc.

    For JSON, SimpleJSON is a good choice.

    You also need to decide how you're hosting it. If you think you're going to do cloud computing, plan for it at the beginning of the project. Different providers offer NoSQL and SQL database options you can just use. It may simplify things. You also need to program significantly differently for a cloud environment to keep costs down. More requests mean more money with some. Lowering CPU load or minimizing database queries might matter too.

    There isn't one right answer now. Young people use Python, PHP or Ruby. I see a lot of interest in Python. I'm not a big fan, but it's not a terrible language either.

    If you think this could take off, sticking to popular software will aid in finding developers later. At work, we have a lot of problems because of our archaic stack of Mod Perl + (Ingres, PostgreSQL, MySQL, BDB and Lucene) + Apache HTTPD + HTML::Mason + DBIx::Class + legacy C apps running on Linux VMs. We're starting to throw in more java projects now. When I say legacy C, I mean pre ANSI C. This stuff was written in the 80s. No one has even heard of Ingres.

    I have oddball tastes in Java like Cayenne and Click and I've made successful projects with them, but it won't help you on a resume and it won't be easy to get people that already know the technologies.

    As for browsers, don't worry to much. If your site works in Safari or Chrome and Firefox, most people can see it. If you throw in IE9, you've got most things covered. Safari and Chrome both use the WebKit rendering engine, but have different JavaScript engines so you will want to test on both, but they do usually render similarly. Bonus points for old IE or Opera. Most browsers are trying to be standards compliant. If you want to target Opera, avoid Dojo javascript library.

  44. Consider PHP by JoeCommodore · · Score: 0

    Because it is so easy to get started with it and actually get something working relatively quickly, do consider PHP, it has a quick learning curve and really does provides ample flexibility and power.

    But with that, keep in mind with the simplicity there are are sometimes no sanity checks - so read up on the tips to secure your PHP code (its not hard - just things you need to be aware of - and also its probably a good way to understand how web apps work and can be vulnerable (with any language).

    PHP Frameworks (Zend, Cake, Smarty, etc) can help a lot if you don't want to get that deep into all of it.

    --
    "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    1. Re:Consider PHP by Jane+Q.+Public · · Score: 1

      "... it has a quick learning curve and really does provides ample flexibility and power."

      Not even close. Due to the gross inconsistencies that plague PHP throughout, its learning curve is terrible. Yes, you can get a "Hello World" app running quickly. But you can get a Rails "Hello World" application up and running just as quickly, with even less knowledge of the language.

      And due to those same inconsistencies, learning PHP entails much more memorizing of a boatload of functions than other languages do, each of them with a bizarre list of parameters that are all different and even in different orders. Python and Ruby, on the other hand, are far more consistent in the way they operate and how methods are built.

      If I wanted something that was easy to learn, PHP is just about the last choice I would make.

    2. Re:Consider PHP by countach74 · · Score: 1

      I wish I had mod points for this. Ruby has a lot more complexity (and in ways, more power because of it) than Python, but with both Ruby and Python, one can get the basics very quickly (especially true for Python, IMO). Shortly after learning basic syntax with Python, I was creating decent-sized blocks of code and executing them without error. It just works--even when you think, "Hmm, can I do this?"

      Now compare that with PHP where bug reporting is in my opinion, not that helpful and bugs are easy to make. Development in PHP takes far longer than it should because the language just plain sucks.

    3. Re:Consider PHP by Anonymous Coward · · Score: 0

      Now compare that with PHP where bug reporting is in my opinion, not that helpful and bugs are easy to make. Development in PHP takes far longer than it should because the language just plain sucks.

      I can say the exact same thing about python.

      Development in python takes far longer than it should because of the whitespace matters issues. The language plain sucks.

      Yeah, the white space thing isn't a big deal to you, because you know how to get around in python. Personally, I have no issue with the bug reporting in PHP, because I know how to get around in the language. Could it be better? Sure it could, but after using it for a while there's no excuse for it slowing you down.

    4. Re:Consider PHP by countach74 · · Score: 1

      I admit, I was not a fan of the white space deal at first... in fact, I'm still not sure I "like" it. Because of the white space issue, it becomes a little more important to use a decent text editor so one can move entire blocks around easily (indent entire chunks all at once), which for me rules out using my go-to editor: vim. Actually, there's probably a way to indent a block of code all at once in vim, but I don't know how to do it.

      The bug reporting in PHP isn't my primary grief about the language, actually. It's that everything is different for no apparent reason and there's little organization to the whole thing. I have enough trouble keeping my own projects sanely organized. Perhaps I gravitate towards Python because it encourages me to program cleanly and maintainably--I recognize that my dislike for PHP my largely be because I am not an extremely experienced programmer. However, from what I've read around the web, the vast majority of programmers who have given Python a real chance have moved away from PHP. Anecdotal evidence? Absolutely. :)

    5. Re:Consider PHP by Xest · · Score: 1

      "Because it is so easy to get started with it and actually get something working relatively quickly, do consider PHP, it has a quick learning curve and really does provides ample flexibility and power."

      None of this is true, the speed of getting something up and running with PHP is a false economy, because you'll inevitably lose hours down the run chasing bugs that result from poor language and library design, and trying to get it to do things it's just not built to handle.

      It doesn't provide anywhere near enough flexibility and power for anything that goes beyond the most basic of websites, for example, it has no real multi-threading support which is an absolute necessity for anything non-trivial and you have to use horrible flawed and hackish workarounds like curl. The end result is that you might as well have just used something like ASP.NET MVC, or Spring, or RoR in the first place, because even if they did take a bit longer to get hello world running, the fact they have far better IDEs and tools backing them, coupled with far better designed languages for writing them in, better libraries supporting them - and important, fundamentally important features like proper multi-threading support from the outset, and that they perform better to boot, means that any time saved getting your hello world app going at the start is long lost in the long run.

      PHP is fine for the most trivial sites, where you don't need anything fancy, and aren't fussed about performance, security, maintainability and that sort of thing, but for anything else? It's just not the right choice at all.

    6. Re:Consider PHP by Johann+Lau · · Score: 1

      I won't lie, I don't use PHP because I think the language is so pretty, but because PHP and MySQL are what runs just about everywhere. But it still cracks me up that RoR and Python of all things are considered an alternative in their current state, that's apples and oranges to me.

      Ruby on Rails is way too much hand holding for my taste (why first spend time breaking out of that, when you can simply start coding instead). And yeah, Python. With the obligatory indendation for no reason *AT ALL*. Just great.

      Let's face it: someone needs to find a way to let people code in straight C on shared webhosts in a safe way. I'm not good at it at all, but I always like the rawness of it... what I don't fucking want is *more* frameworks stacked on interpreters stacked on compilers! I'd rather code something crummy from bare scratch, that has fantastic new bugs and an original idea or two, and enjoy doing it, than just fill out the configuration file of framework X and call it a day.

      When it comes to good, maintanable code, I submit that any language *I* work in would fail to deliver those results, while *others* are surely able to produce perfectly pretty things, yes, even in PHP. Because at the end of the day it's *your* object, variable and function names, and *your* wiring of them, and the end result is either a sparkling city with helpful signs and flying cars zipping by, or a murky puddle screaming in agony. Getting the former result takes a clear vision, maybe experience, maybe something else I'm lacking -- but it has fuck all to do with the language you're choosing. Maybe a little, but it's not the bigger part, even I as quite the noob know that.

    7. Re:Consider PHP by Johann+Lau · · Score: 1

      Having said all that, I love everything I just read here: http://en.wikipedia.org/wiki/Ruby_(programming_language)

      So I'm gonna learn Ruby now, but never touch Ruby on Rails, hah ^^

    8. Re:Consider PHP by Jane+Q.+Public · · Score: 1

      "It's that everything is different for no apparent reason and there's little organization to the whole thing."

      This is exactly the reason I call PHP "a collection of utility functions" rather than a language. Very often -- routinely, even -- there will be two functions that do very similar things but that take different parameters or takes the parameters in a different order, or both, and return results differently.

      And don't even get me started on PHP's "object oriented" parts.

      This may all be the result of how PHP evolved over time, but the results are as you say: an incoherent jumble of "stuff".

    9. Re:Consider PHP by Jane+Q.+Public · · Score: 1

      "Let's face it: someone needs to find a way to let people code in straight C on shared webhosts in a safe way."

      I would never do that myself, or subject other people to it, either.

      Regardless, the fact is that Rails is an "opinionated" framework. They do not deny it at all. And also admittedly, there is a learning curve to using it comfortably. But one of the benefits of that hand-holding is "convention over configuration", which is an awesome idea that has since been borrowed by other frameworks: by default, you already know where everything you need is, and where new things should go. The result is an application that any other decent Rails user can sit down in front of and figure out in a short time.

      Contrast that to PHP, where every application is structured according to the programmer's whim, and sometimes trying to figure out somebody else's idea of "organization" can be a long-term brain twister.

      But having said that: you don't have to do everything their way. Once you know the framework, you can bypass as much of the "hand-holding" as you want, and do things your own way.

      It's a good, flexible framework that uses a good language. Not perfect, but good. I would not even attempt to use PHP to do many of the things I do almost every day in Rails. The very thought is a nightmare. Yes, PHP is capable of doing those things. At great cost in time and sanity.

    10. Re:Consider PHP by Anonymous Coward · · Score: 0

      Wow.

      "learning PHP entails much more memorizing of a boatload of functions"

      Have you never heard of a fucking "IDE"? You don't have to remember shit, you fucking retard.

  45. A front end framework helps too by Ariven · · Score: 1

    Regardless of what back end language you pick, a good front end helps a lot. I have found the twitter bootstrap package to be very helpful..

    You can find it at: http://twitter.github.com/bootstrap/

    They have a nice dynamic setup you can use that allows your page to collapse down to be easily usable by phone browsers, tablets, etc... It also gives you a good display framework to start from to ensure consistancy of your user interface.. and since the display is css based, you can tweak it how you want.

  46. Java is great for websites by htnmmo · · Score: 4, Insightful

    Almost all the sites I've built are written in Java. Stick with Java. I've written sites in PHP and I've also had to work on updates to some PHP sites. If you're already familiar with Java dealing with PHP will feel like a joke. PHP is great when you don't want to write your own software since there are so many publicly available stuff out there in PHP. Don't worry, you won't find a lack of Java libraries that will do anything you want to do.

    Don't bother trying to learn a new language because you'll just slow yourself down trying to learn the semantics of the language instead of the details of the new libraries you'll be using. I know java gets a bad wrap in terms of performance but I've always found that Java kicks PHP's ass in terms of performance in the tests I've done.

    The main issue with java is that when you're using a servlet container like Tomcat, the process runs constantly and takes up memory. It's not that much but it's hard to find Java hosting because the memory issues makes it hard for a webhost to put thousands of websites on the same server.

    Your best bet is going to be to find a cheap VPN when you get started but check the big webhosts to. I remember LunarPages used to offer JSP support in the past.

    There are a bunch of different frameworks. Stick to ones that are popular because you'd rather have some limited functionality now rather than an unsupported framework in the future. Which has happened to me.

    I believe right now that's Spring but Struts is still pretty popular too.

    I've found NetBeans to be a great IDE and it supports Spring.

    1. Re:Java is great for websites by Anonymous Coward · · Score: 0

      I'm just a lowly USER; not a programmer, but let me say MANY,MANY, MANY users keep Java TURNED OFF all the time on account of the real/perceived security risks. I do. I turn it on for one key website only. I would avoid Java, Flash and other frameworks that actual USERS are hostile towards.

    2. Re:Java is great for websites by KermodeBear · · Score: 2

      As someone who develops with PHP for a living, I'm going to go ahead and say: Stick with what you know. It doesn't matter what the back end of your system is written in - as long as it is written well. If you know Java, then use Java. There's lots of Java sites out there and, if it wasn't for the .jsp extension on the pages, I wouldn't ever know the difference.

      --
      Love sees no species.
    3. Re:Java is great for websites by KermodeBear · · Score: 1

      The intention isn't to use Java on the front-end. The OP is intending to use Java on the back end to handle requests (generate pages / JSON / etc.).

      --
      Love sees no species.
    4. Re:Java is great for websites by htnmmo · · Score: 1

      Most sites using java don't serve JSP pages directly. They do it through some sort of MVC framework where servlets call the JSP behind the scenes. I've written sites where the url a user sees is a .html but it's actually just a call to a servlet that parses the url to server up the appropriate content and it uses a jsp for the presentation layer.

      I'm pretty sure Blogger.com is written in java or at least uses java heavily.

      This site I'm pretty sure uses Java because they used to use it in the past. The vendor they used is out of business and I would assume they switched to a different appserver but stuck with java. I could be wrong. An example url on their site is:
      http://www.bhphotovideo.com/c/browse/Computers-Solutions/ci/9581/N/4294542559

      "/c" is the controller servlet. The rest of the url provides information like url parameters that tell the controller what to display.

      Struts is a common Java web framework and by default urls for struts applications end in ".do"

      I agree with what yous say. Just adding information.

  47. First, dont ask in slashdot. by 140Mandak262Jamuna · · Score: 3, Funny
    If you describe your idea in sufficient detail and you don't even know which tool to use, someone else will beat you to it. If you try to hide important details, you would appear to be cagey and would not be taken seriously. So best thing is learn some tool and get to work. A good idea will work even if the tool is less than optimal. A crappy idea would not flourish even with the best tool.

    Most importantly, stop listening to strangers like me.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:First, dont ask in slashdot. by jmerlin · · Score: 1

      Yeah but he's describing Meetup, seems like that battle is already lost.

    2. Re:First, dont ask in slashdot. by CBravo · · Score: 1

      Step 1: Describe something you want done
      Step 2: Say that you can profit from building the site
      Step 3: Publish to slashdot and someone will make it

      --
      nosig today
    3. Re:First, dont ask in slashdot. by Anonymous Coward · · Score: 0

      Too late, I've been working for about a year on a site that does pretty much what the poster described.

      We use PHP with the Yii framework for the business logic and presentation layer. It's a standard LAMP setup.
      For calculation intensive tasks, like PDF generation, we use Java servlets running in Jetty.

      http://www.yesgolive.com

  48. Facebook, Google+ by ZombieBraintrust · · Score: 3, Informative

    For the general public, it will be a site where they can view upcoming events, filter them by type, date etc. and view details of events they're interested in. There will also be an admin section to the app where organizations who want to post their events can log in and set them up.

    Doesn't Facebook, Google, Microsoft, Yahoo, and RSS feeds already have this down? You may want to consider using API's that hook into existing infrastructure rather than reinventing the wheel.

  49. How about Vaadin by Anonymous Coward · · Score: 0

    I have to admit that my preference does not go to Java, however friends of mine who do work in the Java world all seem to like Vaadin https://vaadin.com/home

  50. Spring MVC by Post-O-Matron · · Score: 1

    I work as a Java developer and we're building websites on an SOA architecture with restful backends. In this regard we see the web app as "just another client".

    We use spring MVC for the browser-facing server app, and Jersey for the backend (I use the terms loosely here because this backend is still public-facing since it serves the mobile apps as well, so it is in itself a standalone secure web app).

    We use velocity or freemarker for the web app pages.

    I would warm-heartedly recommend this setup, it's hard to go wrong with it. That said, it's only one valid approach.

  51. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    I find it funny that you think PHP is garbage (granted, most of the nitpicks are true, but nobody is forcing you to use it), but somewhat mention Eclipse as a good thing. From my (limited) experience, Eclipse is a poor excuse of an IDE that can't even handle gracefuly a PHP application such as Magento (a somewhat big PHP codebase, but small if compared to an "enterprise" Java project).

  52. keep it simple by Anonymous Coward · · Score: 0

    There are many, many alternatives, but I really don't see any problem with PHP for doing something simple like this.
    Get a lightwork framework (Cake, CodeIgniter etc.), maybe some jQuery for sorting the tables(a plugin I believe) and go. This doesn't have to be complicated. Add a MySql backend, parse all input to avoid mysql injection attacks and you should be good.

    If you want to go java, then use Tomcat. Personally, I'm not a Java guy, so I avoid that If I can.

  53. GWT or Grails, depending by Anonymous Coward · · Score: 0

    If you have experience using java I would either try grails if you are making a standard webapp, or GWT if you want to make something very interactive. Groovy is pretty nice in that you can just drop back to using your old familiar java libraries and syntax if you want. GWT is nice because the front end javascript ends up being written in java.

    I don't recommend learning a completely new language if you already have the skills for using java.

  54. Re:The thing about Java is by SplashMyBandit · · Score: 1

    lol. Hopefully you are aware that Oracle was defeated on claims of copyright and patent infringement. Just pointing it out in case you weren't aware (or if anyone takes you seriously). Java is *FREEEEEEEEEEEE*!!!

  55. Appfuse by Anonymous Coward · · Score: 0

    One word: Appfuse.org

    It is a set of ready made basic web applications written with just about every possible combination of Java bases web-framework. You can have a basic website setup with each framework in about 30 minutes. Play with them all and see which one you like best.

  56. Stick with Java by htnmmo · · Score: 2

    Don't bother learning PHP it'll just slow you down learning the semantics of a new language and if you're used to dealing with Java PHP will feel like a joke. Java gets a bad wrap but I've found it to be faster than PHP in my tests.

    I build most of my sites in Java using my own MVC framework. I've done some sites in PHP and have had to modify other PHP sites as well as looked into other languages. I still like Java the best and you can find a library to do almost anything you want. The only reason I'd pick something like PHP these days is if I don't want to build a site myself and want to use something prebuilt like wordpress or Joomla.

    The only downside is that your servlet container (ie tomcat) is persistent and will take up a bit of memory. Not a huge amount but it makes it difficult to find cheap webhosting because providers can't throw thousands of websites on a server like they can with plain HTML and PHP. Try and find a good cheap VPS it's more secure and you won't have to worry about your site getting defaced because some other idiot didn't update their PHP software. That's happened to me.

    Don't go with new frameworks. Go with popular ones that have been around for a while. I've been bitten in the ass when I built a website for a client and the framework I used was no longer around.

    Spring is a good choice. I like to use NetBeans as my IDE. I've found it to work the best for me.

    1. Re:Stick with Java by htnmmo · · Score: 1

      oops.. I thought the first post didn't go through.

  57. Re:Nothing wrong with PHP. Don't be a language big by Kalriath · · Score: 2

    It is easier to switch to C# from Java than PHP, which is an ugly hack on top of ugly hacks. Classes, namespaces, type safety, all these are tacked on poorly to PHP, and native in Java or C#.

    Just use ASP.NET if you want to use something familiar to Java.

    --
    For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
  58. Python with CherryPy and Django by tdknox · · Score: 1

    I've been able to build some surprisingly sophisticated and full-featured web applications using Python wrapped inside CherryPy and sending the output through Django. Really amazing how much you can do with this, with the added benefit of portability if you ever want or need to move it across platforms.

    If portability isn't an issue, by using Python's ctypes you can call almost any back-end Linux, Windows or Mac OS X library for the ability to do almost anything you want.

    --
    Did you know that gullible is not in the dictionary?
  59. Re:Nothing wrong with PHP. Don't be a language big by shutdown+-p+now · · Score: 1

    What's the point of abandoning Java that he already knows for PHP he does not? PHP is not any better - in fact, by most metrics, it's worse.

  60. Don't write a mobile app by hawguy · · Score: 2, Interesting

    There's nothing I hate more than going to a mobile web site, getting a nagging popup telling me to download their app, and then finding out that the app gives me less functionality than the web site.

    Just build a good mobile website. Modern mobile web browsers have become quite capable and there are fewer and fewer advantages to an app. And I really don't want to download an app for every webpage I frequent, that's what bookmarks are for.

    1. Re:Don't write a mobile app by Anonymous Coward · · Score: 0

      Just build a good mobile website. Modern mobile web browsers have become quite capable and there are fewer and fewer advantages to an app. And I really don't want to download an app for every webpage I frequent, that's what bookmarks are for.

      A mobile app is still a good idea if you can take advantage of one or more of the following:
      GPS
      Accelerometer
      Camera
      Barcode scanner
      Audio capture

      Modern mobile browsers still don't provide access to these things.

  61. Re:Nothing wrong with PHP. Don't be a language big by znrt · · Score: 0

    I find it funny that you think PHP is garbage

    because it is.

    (granted, most of the nitpicks are true, but nobody is forcing you to use it),

    that's very good, that i'm not forced to use it. because it's still garbage.

    let's define garbage. php works, has low requirements, and is a nice example of community effort. however it's language and api design is a complete improvisation thrown together, with no structure or even central concept at all. even in this world bubbling with brilliant-new-fashion platform ideas every day, php shines as an example of one of those ideas done wrong and gone worse. ok, it works. vb works too. but it's simply not serious.

    but somewhat mention Eclipse as a good thing. From my (limited) experience, Eclipse is a poor excuse of an IDE

    says it all.

    that can't even handle gracefuly a PHP application such as Magento (a somewhat big PHP codebase, but small if compared to an "enterprise" Java project).

    fail. i've done many many web projects in php (don't blame me!) in eclipse with no problem whatsoever. eclipse is a resource hungry beast, but it is manageable and sports features no other ide has. you may not like it, but again, you seem to like php. there could be something to it! .D

  62. Stick with Java by Baba+Ram+Dass · · Score: 2

    First, I'd like to say whoever thinks there's no serious web development in Java simply doesn't know what they're talking about. Probably the same kind of person who believes Java is incredibly slow. This isn't 1998. Things have changed a lot.

    Second, I actually came from a PHP background. I think PHP gets a bad rap because it's so easy to learn, so there's TONS of "developers" out there who never took the time to learn how to properly design and develop software with it. But it can be done. If you go this route, look into an MVC framework. Zend has some really cool stuff.

    Finally, I would personally recommend sticking with Java. Like many here probably, I make my living with Java and so I'm most definitely biased. I work on a "real time" Java team at a major corporation, and we deal with anything that is real time and deals with Java. This obviously includes web development, which is my personal area of expertise. If you name it, we've developed with it. I've used many different frameworks, both server and client side.

    For the server side, I think the best Java framework hands down is Spring. Its MVC module is a dream, and the framework itself is very well designed. The API is well documented. There's loads of resources too. It's really a developer's framework; made by developer for developers. The Spring guys really know what they're doing. For the view, I'd say stick with JSP. The newer versions have a lot of powerful features over their earlier incarnations, and you keep full control over the HTML. Learning how to debug JSF/RichFaces/ICEfaces/etc is a pain in the butt, especially if you're still learning web development with Java. Other good alternatives for view would be lightweight templating frameworks, like Freemarker or Velocity (which Spring has good integration with).

    For client side, you need to brush up on HTML and DOM. You need to make yourself familiar with a good JavaScript framework, my personal favorite is jQuery. Learn how to keep your markup (HTML), your functionality (JavaScript), and your styling (CSS) logically separated. I hate to see these things embedded into one another like a nasty hodgepodge of bad software design.

    --
    Truckin like the Doo-Dah man...
  63. Rails by Anonymous Coward · · Score: 0

    Ruby on Rails. I came from a Java background and learned Rails a year ago. I haven't looked back. Rails is a super fast and easy way to get moving on a web app, and Ruby is a really intuitive and friendly language that's easier to write and more fun to use than Java or PHP. Python/django is another good stack choice.

  64. Java RIA by Anonymous Coward · · Score: 0

    If the man wants to stay as close to the Java stack as possible, then build the app in RichFaces or IceFaces.

  65. Re:Nothing wrong with PHP. Don't be a language big by Anonymous Coward · · Score: 0

    That is simply because PHP has stupid designs no consistent rules. The IDE struggles in the same way that sane developers do. Java has clear rules, a clear syntax, abs is a highly parcable language. That allows you to handle huge projects in the IDE. When you basically make crap up as you go, the IDEs are always going to struggle.

  66. HTML5/JS Plus Backend by swsuehr · · Score: 1

    Hi,

    Well, you're going to need a presentation layer, which may or may not be obvious to you but HTML5 and JavaScript. You'll want to learn JavaScript but shortcut the process with jQuery and jQuery UI. And of course CSS3. So now you've got a pretty frontend, look and feel, behaviors, etc.

    For the backend why not stick with Java? You know it already. If you're thinking PHP then that's fine too but stay away from the frameworks and shortcuts for PHP because they always end up becoming a burden down the road for upgrades, ongoing maintenance, and expansion.

    I've had great luck with LAMP stack and with today's cloud bits and strong hosting providers, getting the infrastructure is easier than ever.

    And if you're looking for books, try my JavaScript Step by Step book for JavaScript related (it includes jQuery too). O'Reilly has some good HTML5 material too.

    Steve

  67. Use WebObjects by Anonymous Coward · · Score: 0

    It's pure java. It's free.You're already familiar with it. You can set up an admin app with DirectToWeb essentially as fast as you can set up your DB model. You can handle millions of hits a day with said admin app on very modest hardware. WebObjects has a thriving community of enthusiastic developers who are all too willing to help on the WebObjects dev and Wonder dev mailing lists. Plus it has a REST framework when you decide to go for an iOS/Android front end.

  68. java based or script based by Anonymous Coward · · Score: 0

    you can leverage your java skills and continue to develop them (spring, hibernate, jsp etc..), java is mainstream and you cannot go wrong sticking with that and you'll be the most productive since you already have a Java background. if you want to look at scripting languages as an alternative there are two routes I would suggest. Ruby/Rails/Angularjs with either Postresql or MongoDB or bleeding edge Node.js/Express/Angular/MongoDB an end-to-end Javascript stack or Meteor.com real-time also end-to-end Javascript framework. something to consider -- the world is going mobile more and more everyday -- you might consider building a web-service and then develop your clients for iPhone, iPad and upcomming TV that Apple will produce -- as for a web-based UI -- you can go a ton of ways -- but mobile is huge and would be a good place to invest your time developing skills/experience. If you look at where money is being invested in terms of infrastructure it has by Ruby/Puppet/Chef -- recently Meteor.com/Javascript received a $9,000,000 infusion of cash. I've need seen an VC funding going into the other scripting languages -- so you could take that into account, i.e follow the money. another thing to do is look at hotspots were tech is growing rapidly SF, NYC and look at the stacks they are hiring for. You'll find the enterprises are locked into mainstream so Java and PHP dominate in the corporate world. Some companies like Amazon have a long history of Perl, but I've not run into any Java folks that are into Perl. Most Java folks I've worked with like Python. Some folks might suggest Scala. It's a niche now, but if you are looking to broaden your desing/coding skills, functional programing might be something to consider.

  69. Try the Drupal framework by Anonymous Coward · · Score: 0

    Why waste time? Drupal will do what you want faster than any other recommendation here.

  70. Many by Art3x · · Score: 1

    Web development takes several languages:

    1. CSS
    2. HTML
    3. JavaScript
    4. Python, Perl, PHP, or some other server-side language
    5. SQL*

    * Yes, or NoSQL, but I'm not sure I would recommend it.

    After working on 40 web applications over 7 years, I have found that it's best to push things to the edges, and do as much as you can in the top layer (CSS, HTML, and JavaScript) or bottom (SQL). The middle layer, where you must decide between Java, Python, Perl, Python, Scala, or several other server-side languages, I try to keep as thin as I possibly can --- more like a glue (or duct tape?) between the client and database.

    It takes the most learning to do it this way. You must know JavaScript, HTML, and CSS well (jQuery helps). And you must also know advanced features of your database (I recommend SQLite or PostgreSQL). But it typically leads to lightweight, efficient apps.

  71. look at vaadin by Anonymous Coward · · Score: 0

    Its a java framework based on GWT, can be completely written as server code. CSS and html knowledge is required only if you want to fully customize the ui and GWT knowledge is needed only to build custom components.

  72. Definitely Grails... by Anonymous Coward · · Score: 0

    Grails brings a lot of the features of Rails on Ruby to the JVM. A Grails app is essentially a Spring MVC app which means you can use lots of your existing Java classes whether they are POJO or EJB3. The main language of Grails is Groovy which may sound scary, but it is really just an extension of Java. In some ways it relaxes syntax rules like semicolons or type declarations which makes the code look cleaner and in some ways it adds features like closures, iterators and so on.
    You can actually take existing Java classes change the name to .groovy and it will compile and run just fine.

    Groovy also supports a scripting mode where there is no class definition in the file. That way even all those background tasks and periodic small jobs can be written in Groovy instead of bash or Perl or whatever.

  73. Re: Agree by Billly+Gates · · Score: 2

    FORGET java, forget everything you know about JAVA development.
    Go with PHP, and CodeIgniter or similar framework which does not force you to their patterns (ZFW used to be like this...)

    and keep it simple - keep everything as simple as possible.

    And "PHP Templating" is *NOT* templating, it is spaghetti some ate yesterday and came up today.

    I second that.

    Java is really nice to have a 1 million line code complex business intelligence CRM and enterrpise app that takes a year to develop and is scalable with real engineering and architecture. But for a simple website? Come on!

    Php has got a really bad wrap like its the Visual Basic of web development. But basic has its purpose for simple client server apps that need to be made quickly with up to medium complexity. Php with the right framework is great in that a good week you can have something ready that would take a month in Java.

    Also what about liability? Will your ISP carrier it forever? How do you know Oracle wont sue for copyright violation for not buying an ORacle RDMS license? Their lawyers have proven to take this extreme view of copyright as a symbol with the same name in the same structure sequence identical to actual copyright infringement. I do not agree with that view and neither did the judge but I do not trust Oracle and this guy can not afford to defend himself.

    Php is run inside the natively compiled web server software engine so it is faster than interpreted languages, though not as fast as .NET and Java.

    It is a shame because I learned real object oriented programing with Java. It is amazing what mismanagement of an asset can do to a language.

  74. Re:The thing about Java is by Man+On+Pink+Corner · · Score: 1

    I hope you're right. However, Larry Ellison won't see it your way. He will see it more in terms of (legally speaking), "Oh, it's on now, bitches."

    So we'll have to wait for the appeals process to run its course. I wouldn't be surprised if Ellison is at least as good at prolonging the inevitable as, say, Darl McBride.

  75. Re:Nothing wrong with PHP. Don't be a language big by Billly+Gates · · Score: 1

    Because it takes 3x the effort and 4x the amount of code with its silly patterns to get anything done. Php is like the VB. Its great to get things done quick if you do not need Enterprise Application Support with its own framework not to mention not all ISPs even support it all.

    Oracle has done so much damage to Java.

  76. Re:Nothing wrong with PHP. Don't be a language big by shutdown+-p+now · · Score: 1

    Php is like the VB. Its great to get things done quick if you do not need Enterprise Application Support with its own framework not to mention not all ISPs even support it all.

    PHP is not the only language that lets you do things quick - there's also Python and Ruby - except with the latter two, things done quick will much more likely be done better, as well.

  77. WebObject - Ruby on Rails by kwerle · · Score: 1

    You mention being comfortable in java, but you also say (essentially) that you don't know a thing about client side coding. You mention WebObjects, which is rare, and I imagine most folks don't have a clue what that is. But you don't mention MVC, which seems odd to me.

    You're going to write a new app using 2-4 new frameworks. As far as I'm concerned, frameworks are more work to learn than a new language.

    As someone who enjoyed WO in the Obj-C days and suffered through it in the Java days, here's my advice:

    Go with Ruby on Rails. Ruby is a fun language. Rails is a reasonable framework. On the client you could do a lot worse than jQuery, twitter bootstrap, and maybe Ember.js or backbone for the fancy stuff. I think that starting out with ember/backbone will give you a leg up when you make the move to non-web mobile platforms. Oh, and I do recommend coffeescript - it feels a lot saner to an OO developer than raw javascript.

    1. Re:WebObject - Ruby on Rails by jimijon · · Score: 1

      Well you can no longer say WebObjects without now mentioning the vibrant WOnder community creating kickass frameworks. And then there still is the secret weapon of the WebObjects developer, DirectToWeb! I now call it DirectToClient as my productivity has skyrocketed with Wonder and D2W. And with some new frameworks on the horizon to sync CoreData with EOModeler and such.... well, WebObjects is looking like it will still be the best kept secret and keep me ahead of the competition.

      --
      Mind | Body | Spirit | Cash
  78. Struts2? by Doc+Ruby · · Score: 1

    Is there anything better for making a fairly simple HTML/appserver/DB Web app than Struts2?

    No "AJAX", but you can add interactive embedded widgets to the page after you have the Struts2 app basically working. Or is there a way to develop full AJAX backed by Struts2 now? Or maybe that's all too complex. I think it's too complex, but I'm not sure what to use instead.

    --

    --
    make install -not war

  79. LET THE USER CHOOSE, PLEASE by catmistake · · Score: 1

    ffs, let the user decide whether they want to see the mobile app or the full site, or a discrete application. Don't put too much weight on what browser they are using and decide for them what they want, fascist-style. Try not to ask them, every single time... make the cookie remember their decision, but also give them the option to change their mind later if they wish. The best apps are utilitarian, not flashy pretty crap. Keep it simple. And don't succumb to feature creep... don't keep adding features just because you can. Pick a function, and stick to it, and make a new app for your new features that have nothing to do with the original intent of your app.

  80. ExtJS + DWR by fzammett · · Score: 1

    You didn't say if you wanted to stick with open-source entirely, so I'm suggesting a 50/50 deal :)

    ExtJS is a fantastic front-end development tool. Yes, you'll have to learn Javascript, but (a) that'll be pretty easy given your Java background because syntactically they're very similar and (b) that will remove all the cross-browser concerns... although it WILL require Javascript on the client, but frankly, while some people do run with it off and browsers on feature phones and such sometimes don't have it, Javascript is fairly close to assumed these days in web development. A lot of people talk about non-intrusive JS and progressive enhancement, which is all fine and good but I for one think the time for that has passed. ExtJS is a commercial product, however, there IS an option to use it in a JPL'd application. If that's okay for your application then you can get it for free.

    DWR on the server-side, a great OSS project, is a Java-based solution that makes your server code SO incredibly clean and simple to write... you wind up with nothing but POJOs, and you don't (typically) deal with session or state of any kind. Best of all, it's a PERFECT match with ExtJS because what you wind up writing is really a service-oriented facade that the client makes use of, rather than coding the navigation logic of your webapp on the server, as is typical in Java web app development with most frameworks. It makes things incredibly simple and easy, cutting out so much complexity you'll wonder why you haven't been doing this all along.

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
    1. Re:ExtJS + DWR by fzammett · · Score: 1

      Oh yeah, it's also worth noting that when you develop the server-side with DWR, creating a mobile app later becomes a piece of cake... you either write one of the numerous "web apps wrapped in a native app" using something like Phonegap (which might be your ExtJS-based app or a plain old HTML-based app), or if you use the latest version of DWR you'll have the ability to make plain REST calls to your server code without the need for the Javascript client portion, so you can write a true native and and just do plain old HTTP requests, no changes to the server-side should be required (so long as you've done it sessionless). I've done this too (both app approaches) and it works amazingly well and cuts development time tremendously.

      --
      If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
  81. meteor.com by TheSimkin · · Score: 1

    If i was starting new today i'd be learning with meteor (http://meteor.com)

  82. Re:Nothing wrong with PHP. Don't be a language big by cowdung · · Score: 1

    I bet GP doesn't even know what "static analysis" is.. hence the lack of knowledge about Eclipse.

  83. A modem web application? by pem · · Score: 1

    Am I the only old fart with lousy eyes mis-read this and thought it was about bandwidth limitations?

  84. Advise about starting modern web application by cowdung · · Score: 1

    Since the original poster wanted advise about web apps (and not mere flamewars re: Java vs PHP) here goes an attempt at some advice on creating a "modern" web app:

    1. Get familiar with CSS3 and other enhancements to make your app mobile friendly.
    2. Get a modern looking design. Usually this means pure colors .. think Sesame Street.com. Of course this much depends on your audience.
    3. Start learning HTML5
    4. Don't write raw JS. Use jQuery or some other JS framework (Dojo, ExtJS/Sencha, GWT, etc..) to keep your JS compatible accross browsers.
    5. Consider CSS frameworks like Blueprint
    6. The Rails tutorial has some good tips on modern sites. Including using RESTful URLs instead of *.jsp, *.asp, *.php file extensions (who cares what language you're using.. why should that be exposed to the user)
    7. Gather detailed stats on your site visitors (info is gold these days)
    8. Simplify your login/registration process. Consider using OpenID, or OAuth for site access
    9. Use a third party library/module for authentication/authorization if a good one is available for your platform.. don't re-invent the wheel
    10. Use a third party library/module for credit card processing (I like Shopify's ActiveMerchant)

    I'm sure others have good tips as well. A lot of this is really language/platform agnostic.

  85. Theory first by antifoidulus · · Score: 1

    I would say that before you go jumping into any particular framework you spend a bit of time up front to learn the low-level details of how web apps actually work(something a lot of devs seem to skip). Learn exactly how HTTP post and get operations work, learn about how sessions and related to that cookies work, learn about SSL and security, learn about how various push technologies(such as web sockets and...sigh....comet) work. Also learn about data interchanges(mainly JSON) work.

    Doing this up front will not only help you develop a better website, it will also make it MUCH simpler for you to develop and maintain your mobile apps, esp. if you really want to go beyond bolting a few buttons to a web view

  86. Mmmm Java by Anonymous Coward · · Score: 0

    What I love about Java web programming is that you can have a professional level stack going pretty easily. I have a Subversion server for my code. I use Maven to build and manage dependencies, Jenkins for building and Artifactory for repository management. I code in Eclipse and publish to my Tomcat production server with one click. The best part is that all these tools are extremely tightly integrated and are a cinch to set up. Plus, monitoring for performance and tuning is waaaay easier than it is for PHP, using JMX tools like jconsole.

    I, like you, was hesitant of using Java for my web application because of its perceived slowness, but it was a great decision to stick to my comfort zone. If you're familiar with JVM internals, great languages to pick up are Scala and Groovy. I write all my POJOs in Scala and maintenance scripts in Groovy and stick to pure Java for the application logic. I use regular old JSP for presentation (tried Spring MVC for a while, but decided it was overkill, although you should definitely look at Spring WebFlow for your app) and Hibernate as my ORM framework. Did I mention all these things are all still tightly integrated?

    For the actual client-side code, I use HTML5/CSS3 with jQuery to give me the snazziness. I had to restructure all of my servlets to work better with AJAX requests (they're of a different quality than regular HTML GETs and POSTs), so plan with a web service in mind, as it'll save you a lot of headache in the long run, especially when you finally decide to implement your mobile apps. I did try the Lift and Play frameworks, but there was little (in my particular case) they offered that I couldn't do myself with a little more code.

    As a final bit of advice, devote at least a third of your time to implement proper security and unit tests. I went with Spring Security, because even if you think you can roll your own, these tools come out of years of security expertise. And for testing I used plain old JUnit. Oh, all very tightly integrated.

  87. Use blink tags by Ranger · · Score: 1

    and Comic Sans, or if you are feeling sophisticated use Papyrus.

    --
    "You'll get nothing, and you'll like it!"
  88. Chill out, my good man... by neiras · · Score: 1

    If you don't like dynamic languages, fine, but implying that folks who choose to embrace FP and dynamic languages are "hobbyists" serves no purpose other than to expose your lack of depth as a developer.

    Read this and take a long hard look at yourself.

    I inject a little (apparently very well targeted) teasing into a thread full of uninformed anti-Java ragefacing, and you're judging *me*?

    My implication served my purpose just fine (hi there!), and may or may not reflect my actual feelings on dynamic languages.

    It's that some of us have put up with statically typed languages for 15 years, and have had enough of that crap.

    I've had enough of this crap.

    Let's be friends! Nay, will you be my pair programming partner? Imagine the insights and perspectives we could share! Imagine the paradigms we could shift, the behavior-driven mocking we could exchange while rebasing our git trees and eating Mongos. Yes, Mongos!

    WILL YOU ACCEPT MY PULL REQUEST?

    So hot.

  89. Java-Android-JSP framework by Anonymous Coward · · Score: 0

    I think what it sounds like the easiest way forward in your project is to write either a JSP or an ASP.NET framework for it. As you are more comfortable with Java JSP would be a natural choice for you. Since you know Java and the server side of the web page the android app would be another natural step towards creating the back end server side and the front end web page with requests of parameters in the code.

    A good book for android development is Reto Meier series of android app development and Googles android development guide for developers. Wikipedia is a good place to start to gain an introduction to the subject in the field of interest. If you want to keep abreast of the latest field in the web technology sphere installing the latest browser helps and chrome actually helps in making anything because of it's developer side panel.

    You could run a web server at home on the Apache system either on the windows or linux framework or if you have it on an apple server and use a Google app engine to handle the requests. You could also use the LAMP framwork to run and scale your application idea.

    Good luck with it and another good book is Bennet and Farmer's object orientated system analysis and design second to fourth edition. Before things get confusing the design of the application is important to be able to scale the works.

  90. Re:Nothing wrong with PHP. Don't be a language big by sdoca · · Score: 1

    OP replying here. I actually stated I wanted to use the right tool. I didn't say I wouldn't learn PHP or any other language, just that I would prefer to stay in my comfort zone (in my case Java). Part of that reasoning is because the end goal is a working website, not adding another technology to my resume. I've come across a number of people who jump from one language/framework to another with each new project they embark on. They end up being a mediocre jack of all trades and master of none.

  91. Java-Android-JSP by Nanboa · · Score: 1

    What it sounds like that if you are comfortable building in Java the JSP framework would be a natural choice for you. Using JSP with a database to get the parameters and plugging them into the webpage would be an obvious choice and would make it easier to create an android app with it. A good book for designing and building android applications is Reto Meier series of books about android development. You could design the front end in something like dreamweaver and use the parameters to design the app with eclipse. These developments programs have excellent query halping hints with the programming and an application can be developed easily. For the apple end you could use a server or an LAMP setup and run the web page after DNS on your own server. A good book to use for designing is Bennett and Farmer's Object Orientated System analysis and design Second to fourth edition as it is important to design a web application fro the start so that you can scale it well. To tend to it run it on one or more servers and load balance it so that you have minimal downtime. Good luck with it.

  92. +1 Scala + Play = awesomeness! by Anonymous Coward · · Score: 1

    +1 Scala + Play = awesomeness!

    Rapid development and iteration, combined with high performance.

  93. OP Replying - "Modern" Web Apps by sdoca · · Score: 1

    Thanks for all of you who took the time to comment. It's very much appreciated. For those whose comments refer to the word "modern" in the title, this wasn't my word choice. My submission title did not include that word (nor "tips"); the editors chose that title.

  94. +1 for Scala/Akka/Play -1 for Spring by Anonymous Coward · · Score: 0

    +1 for Scala/Akka/Play -1 for Spring

  95. Apache wicket + Apache shiro is one way to go .. by armandoxxx · · Score: 0

    Hey man ... I've developed many web projects with many different frameworks (PHP:zend, symfony, cakePhp Java: Spring, Struts ...) .. in the end I ended up working with Apache Wicket and Apache Shiro. Some of the reasons I'm using Wicket over any other java framework are easy to use API, really simple configuration, no template engines and stuff (web designer gives me HTML files and I attach my wicket components to it, thats all), development speed, fast in terms of requests per second. I use Apache Shiro over any other java security framework for the same reasons, simple to use API, simple configuration, speed.. Regards

  96. you can build great Web apps using Java by vsync64 · · Score: 1

    I have had great experiences using the "Java EE" toolkit (basically just a combination of servlet and JPA technologies) and Spring MVC (Spring's front-end Web framework) to build nice clean modern Web sites and applications.

    The great thing about this combination is nothing is too different from the stuff you've done before if you've done any medium- to large-scale Java programming before. Multiple vendors, commercial and FOSS, implement the specifications. JPA is one of the better ORMs I've seen (second only to CLSQL and probably more comprehensive, anyway). Most everything is done with simple annotations. And Spring is very well-mannered; you can take as much or as little as you like. Once I had to hook a Web front-end up to an application with a custom authentication system... it was cake to implement the Spring interfaces and suddenly my application was a fully acceptable auth provider for its own Web interface.

    I have started a write-up on this at http://quadium.net/~vsync/tech/java-servers/ and my goal was to consolidate and smooth some of the information I had to scrounge over the years about the process. There is a lot of Java information out there but lots is outdated and much seems to assume familiarity or use of this or that IDE, and at least online I haven't found many comprehensive sources. That said, sadly once you get past the first bits of my write-up it gets to be more and more of an outline. But your perspective as someone familiar with Java but wanting to get into this aspect of it would be greatly appreciated.

    If you're interested I believe a while ago someone on Reddit gave me some links to some Spring MVC tutorials that seemed decent as well. I can try to dig them up if you'd like.

    --
    TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
  97. node.js the way to go by Anonymous Coward · · Score: 0

    Learn JavaScript, set up server-side with node.js.

    1. Re:node.js the way to go by armandoxxx · · Score: 0
  98. I LOVE this religious flamewar by Anonymous Coward · · Score: 0

    This is a sub-genre of the language war - and I must admit, it gets more and more entertaining every time. Going back to c vs c++.

    Just reading down this thread . . . use java, don't use java, use php, avoid php, it's sooo 1995. Use python, use django, use rails, use jython, use groovy, use spring. Use some pre-canned CMS. Holy fucking shit! Noobs are so fucked. Sorry noobs.

    Anyway, my answer: "it depends". Have fun!

  99. Re:Nothing wrong with PHP. Don't be a language big by Anonymous Coward · · Score: 0

    Doesn't Netbeans handle PHP properly, though?

  100. Go + Ember by jmcvetta · · Score: 1

    I'm thinking my next application will use Go for the API, and Ember.js for a fully decoupled client. The client needs to rely 100% on the public API not any special backend magic. Python & Ruby are both good solutions, and have lots of useful libraries; but both have some performance issues, and I'm getting less & less enamored of dynamic typing. Go gives me all the stuff I liked about Python, plus the typesafety and speed I was craving. Ember.. well, I dunno, it looks cool. Javascript is gross tho.

  101. JSF by Anonymous Coward · · Score: 0

    i wonder why so few people are taking jsf into consideration. i think jsf plus some nice component framework like icefaces or richfaces is most likely very well suited for what you are trying to do.

  102. An even more important tip by Arker · · Score: 3, Insightful

    I dont care what language(s) and toolkit(s) you use on your backend. But when you get ready to send code to my web browser, send HTML.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.
  103. JQuery + existing backends by WombleGoneBad · · Score: 1

    The big change in modern web development is the shift to the clientside for dynamic html. JQuery is now so powerfull, and modern browser now so good at processing javascript, that stuff like applets, silverlight, flash, are undesirable cludge that you can live without. Also a lot of the serverside conditional html generation is also redundant. You should use just pretty much static html pages serverside, but change it dynamically on the clientside with JQuery.
    So do you need the serverside code at all? of course you do, but it should be feeding the client with JSON (or similar) instead of html. For this 'feed client with info' serverside code the traditional web framewords still work fairly well even though their role has changed. there is nothing wrong with using java here if thats what you are comfortable with (i normally use either python wsgi or asp.net).
    Usually the most sensible design for a modern website is a (sort of) MVC structure where JQuery is the controller, the 'views' are static html, and interfacing with the data model is the serverside framework.
    Oh and DOJO is a perfectly workable alternative if you hate JQuery for some reason.

  104. Vaadin, Java only solution by Raylc · · Score: 1

    Check out https://vaadin.com/home, if you want your app to behave like a desktop app. It uses GWT for the front end, but it handles the session states and communication for you, so it feels familiar Java desktop apps. Take a look at what they have for components http://demo.vaadin.com/sampler If you are like me who hates web containers (JBoss, Tomcat). I have an example of embedded web server, where you just give it a port and run like a normal server Java program. http://code.google.com/a/eclipselabs.org/p/vaadin-push-example/

  105. Flaming skullls FTW by Hognoxious · · Score: 1

    Something that does something should look like it doesn't do anything. The only way to discover this should be by right clicking or by putting the cursor over it and leaving it entirely motionless for at least two minutes. The information displayed should never be the same, in both content or form, via the two methods. It must be displayed as far away from the action initiating item as possible. Why not try a ticker tape along the bottom[1] for one and adding a watermark to an unrelated image for the other?

    Likewise, things that do something should look like they don't do anything. As a corollary, every single pixel on the page should do something. Empty spaces and bodies of text are particularly important. Some people click on these to give the browser focus for scrolling, so it's vital that they do something extremely slow. Forcing a reload of the entire page is ideal. Failing that, preload the fullsize versions of any thumbnails present, just in case.

    And you can never ever have too many flaming skulls and rotating logos.

    [1] Clearly, if the action element is in the bottom half, the ticker tape should go at the top. Or the side (in which case it should be in Japanese[2]).

    [2] Unless. of course, it's a Japanese web site. In that case use morse code.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  106. No Client-side Javascript!!!!! Dammit! by Anonymous Coward · · Score: 0

    No Client-side Javascript!!!!! Dammit!

    Javascript is a terrible thing for users most of the time.
    Cut it out.

    The worst things for a client:
    * Javascript
    * Silverslight
    * Flash
    *

    If you don't do it with CSS, then you shouldn't do it at all.
    Test using Lynx.

  107. Spiffy UI by zgrossbart · · Score: 1

    I've got to throw in a plug for the Spiffy UI framework. It's a set of build utilities, security libraries, REST integration and a whole lot more on top of GWT. It scales up well for large teams and large projects and let's you build awesome web applications in a strongly typed environment. http://www.spiffyui.org/

  108. The devil you know... by Anonymous Coward · · Score: 0

    Stick with WebObjects (and Wonder)... The devil you know, etc. our SAAS is WebObjects-based, and works well.

  109. Grails. by Anonymous Coward · · Score: 0

    hands down.

  110. Re:HTML5/JS Plus Backend - MOD PARENT UP! by Anonymous Coward · · Score: 0

    It sickens me that I have to scroll through half the comments to find the only recommendation to use HTML for a web page!

    You are making a web page. Use HTML and perhaps minimal scripting. Do not use languages, frameworks or anything else, FFS.

    Your backend processing, doesn't sound like it will be all that much either. So, I see no reason that a minimal server side Java application making SQL calls won't complete the solution.

    HTML should have been the first recommendation ant the parent post should be the highest moderated post!

  111. Another JVM language? by MattBD · · Score: 1

    If you already have a good grounding in Java, it would make sense to use another JVM language. I hear really great things about both Scala and Clojure, and there are web development frameworks for both.

  112. Hammer factory factory by Anonymous Coward · · Score: 0

    Tried loads of frameworks over the years, learning something like Spring is more work than learning a completely new language. Seriously even getting a hello world app will take you about a month of wading through XML configuration files and dependancy hell. By which time you could have written your own framework.

    What I want from a framework/library

    (1) Parse incoming html requests => URL+ parameters
    (2) Allow me to map events to routes
    (3) Create html response from:
                a) string representing the page
                b) and any cookie parameters
                c) binary data for server side images
    (4) Do this is a highly stable and scalable multithreaded manner.
    (5) Come as single Jar which is less than 200k.
    (6) Be zero configuration
    (7) Don't force me to drink the kool aid and write only in a framework specific way

  113. Vaadin framework by magi · · Score: 1

    I'd really recommend taking a look at Vaadin. It's a server-side Java and Ajax web application development framework that lets you forget most of the web stuff. The Ajax and HTML rendering are all hidden and it's closer to desktop application development than traditional web development. The client-side is based on GWT, so if you want to make new components, you can do it with Java. In addition to the built-in components, there are some 250+ add-ons, so you can most likely find what you are looking for from those.

  114. Re:Nothing wrong with PHP. Don't be a language big by Xest · · Score: 2

    "But its always good to learn a new language. ASP.Net is also nice if you don't want to go dynamic."

    Microsoft implemented the DLR (Dynamic Language Runtime) in .NET 4 that allows you to have dynamic objects. The best part is you can even do your own dynamic implementation quite trivially (it's just a case of implementing certain interfaces, inheriting certain objects). This means you have the best of both worlds, you can go dynamic where it makes sense, whilst stick to the benefits of type safety and better performance where it matters. It's really a pretty cool piece of technology.

  115. Require Disabling all Client Browser Features by Anonymous Coward · · Score: 0

    You need to make sure you include lots of gratuitous Javascript (that is, javascript not required for functionality, but just because, well, it is a buzzword compliance thing). Same goes for Flash Virus and as much remote code as you possibly can. Make it big an gaudy and hardcode pixel, element, and page widths everywhere so that it looks GROOVY on your CGA 320x240x8 colour monitor, but is nothing more that a piss-hole-in-the-snow on a 16000x12000x24bpp monitor. Don't ever design anything to be auto-sizing and to automatically and effectively use the available screen space. Also, remember that everyone always uses 8 point TImes Roman fonts and never uses anything else, and that the pixel width of displayed chartacters never changes.

    Ignore all aspects of client security and do you absolute best to require that anyone using you app has to disable as much security as possible. If you can, make them disable their anti-virus and firewall too.

    Only in this way will you be able to complete with the crap generated by google, microsoft, and all the other anti-sec crap out there.

  116. Java by TheNinjaroach · · Score: 1

    Stick with what you're good at! There's no reason to look at something like PHP if you are skilled in another, arguably more useful language.

    Oracle shenanigans aside, Java is a good platform for web development. PHP may be quicker to put something up, but it has a bunch of rough edges to it (like multibyte character strings, really poor consistency for database drivers) that I wish I didn't have to deal with.

    --
    I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
  117. Time for Maslow's Cluebat by yelvington · · Score: 1

    ... For the general public, it will be a site where they can view upcoming events, filter them by type, date etc. and view details of events they're interested in. There will also be an admin section ...

    There is no earthly reason any of this requires writing code. This isn't 1999, people.

  118. Re:Nothing wrong with PHP. Don't be a language big by Zero__Kelvin · · Score: 1

    "Eclipse is a poor excuse of an IDE that can't even handle gracefuly a PHP application such as Magento"

    Your mistake was in assuming that Eclipse - an IDE designed for competent developers - would cater to PHP - a language that no competent developer would ever use.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  119. Re:Nothing wrong with PHP. Don't be a language big by Zero__Kelvin · · Score: 1

    "I completely agree and don't understand the hate that php gets ... You should be fine going from Java to PHP due to PHP being mostly based on Java."

    PHP is not mostly based on Java, so you can add that to the list of things you don't understand.

    "I would have modded the parent up, but didn't see the point since it was posted as AC, so decided to post in support instead."

    ... and make sure that you add the Slashdot mod system and its purpose to your list as well.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  120. deja vu by Anonymous Coward · · Score: 0

    Sounds excatly like me a little while back!

    I decided to stick with Java for the backend and use Dojo and JQuery inside farily basic xHTML/CSS web pages for the client, using JSON and XJAX to pass data back and forth. As already mentioned the main problem I found was finding (cheap) Tomcat hosting (and finding Glassfish hosting was near impossible) so rent a virtual server (or use your broadband, if it's fast enough), install it yourself and off you go. Servlets are ideal to generate and process JSON, so you can split the functionality over multiple servers if you want - I tend to host the web pages and images with an ultra-fast, ultra-cheap Linux hosting company and provide the server-side bit via one of the other servers I maintain (or even my own broadband). The data being passed back and forth is only a few kb per client (unless you're talking huge lists) and Dojo can handle data transfer very well, even if it's slow.

    Netbeans makes life easier, and just link to the latest Dojo and JQuery libraries on the web page, so they're maintained. As long as you know a bit of JavaScript, HTML and CSS you shouldn't have many problems - after all, I managed!!

  121. Re:Nothing wrong with PHP. Don't be a language big by cavebison · · Score: 1

    ASP.Net is also nice if you don't want to go dynamic.

    Reflection is alive and well in .NET. How is .NET unable to be dynamic?

  122. Love this site!!! by Anonymous Coward · · Score: 0

    Geeks spilling and sharing their brains!

    I moved to PHP back in the day when Classic ASP, CGI Perl, C and Coldfusion were what we had. So PHP was the first "heavy" language I had as a "best candidate" choice for the web. I do agree over a number of its known issues.

    Having your mind etched with Java, I wouldnt advise you going through the pain of learning PHP due to the cited inconsistencies you will "feel" as you learn it. For other developers, like me, who have been writing in PHP for a while, we shrug off most of the issues that relate to how its syntax is defined. As for scaling and "statefulness", thats another long-winding argument.

    You wont go wrong with Ruby/Python

  123. Re:Nothing wrong with PHP. Don't be a language big by Anonymous Coward · · Score: 0

    It's garbage to who?

    The person who can code and is comfortable in it?

    The person who is learning the language with no prior-programming experience(web or other)?

    The person who is a programmer and is already accustomed to a particular pattern of programming and having certain tools and features at their disposal?

    The person who has tried it, failed and gave up taking it seriously?

    You can write bad code in any language. PHP gives you so much liberty to write bad code. Admittedly, it is rather "patchy" in syntax and consistency. But to then paint it all black is rather narrow-minded and ignorant. It is very useful as a language for the web. I may not recommend it for someone who needs to focus on solving a business case, but I would never discourage a person from learning it to add on to their chest of knowledge. RoR/Python would be my recommendation as well.

    Dont be impose your rigidity on others.

  124. team up with a designer friend by Anonymous Coward · · Score: 0

    Stick to Java on the server side which you say you know. (Spring is very convenient for JSON web services, try REST where applicable for cacheability.)
    Make sure your services are secure, can not be tricked to reveal other people's data, etc.

    But from there on, you'll need help. UI design is a completely different ball game. It is also has a 95% weight in determining the usability of the product.

    You can plug in the output of the designer most directly by using a client side templating library. There are many to choose from: underscore templates, mustache, dust.js, etc.

  125. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    So, parsing textfiles isn't really parsing textfiles, and Java source has special magic that only Eclipse can see (since every other multi-language IDE seems to have no problem with it)?

    And your post wouldn't be completely hilarious if - apparently - the Eclipse website resorts to PHP! With urls similar to http://www.eclipse.org/projects/listofprojects.php, it's not like they don't know PHP exists.

  126. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    Yes, because throwing up buzzwords is what programming is all about.

  127. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    says it all.

    Says it? http://www.eclipse.org/projects/listofprojects.php. Well, aparently even Eclipse resorts to PHP.

    fail. i've done many many web projects in php (don't blame me!) in eclipse with no problem whatsoever. eclipse is a resource hungry beast, but it is manageable and sports features no other ide has.

    You didn't specify if your projects were multi-million line PHP projects, or just some wordpress modules. Scale does matter. And manageable is not the same as usable. And resource hungry beast is, to put it simple, an euphemism. And I couldn't care less for extra features I don't use. The mentality of "one size fits all" is very Java-like, people that can't conceive any kind of application without OO concepts, but usually fail to understand basic programming concepts. Maybe that's not your case, but the comment someone made on your comment is the poster for it.

  128. Re: Spring by durdur · · Score: 1

    Spring has a bunch of good technologies, well worth using if you are in the Java world. IMO it is better at the back-end stuff than managing a Web front end (Spring MVC is pretty widely used but it's probably not the best MVC framework out there). Also, Spring by itself is not a RAD environment. Spring Roo does claim to be such a thing and might be worth a look.

  129. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    When you basically make crap up as you go, the IDEs are always going to struggle.

    This is hilarious! So I'm a poor programmer because your IDE can't keep up with my code? So, are you saying that if I try to create a project and add eg. the FreeBSD kernel source, my IDE won't grind into a halt? Just with PHP?

    And NetBeans, and every other IDE that works well with big PHP projects is wrong, because Eclipse can't be a big pile of poo?

  130. Re: Spring by htnmmo · · Score: 1

    I don't believe in RAD. By the time anyone has developed a toolkit that can easily do something, it's not cool enough to do it anymore :)

    RAD frameworks also tend to get bloated trying to do everything for everybody in my experience. At least when it comes to CRUD applications. I find myself more productive and have an easier time developing a site like that to do what I want by just using a good persistance (DAO, JDO, Hibernate, etc) framework or methodology that makes it easy to communicate with the DB.

    Other stuff that i find useful are tools that build the classes you need to interact with various webservices.

  131. As a User some suggestions by RobertLTux · · Score: 1

    1 design the forms so that somebody with a Small Screen can still use them (don't do cute things with iframes so that the scroll bar gets cut off/disabled)

    2 test your ap in low bandwidth setups (does your ap go wonky if the connection snaps mid session??)

    3 be as simple as possible in your interface (small adbar on top and 2 rails down the sides are a MAX)

    4 most folks can't watch a 3 ring circus so please don't make one

    5 make your login/signup thing part of the main page not some sort of popup

    6 KISS is not just something you do to your SO its a very good design principle

    --
    Any person using FTFY or editing my postings agrees to a US$50.00 charge
  132. Web centric development is a seperate ballgame by Qbertino · · Score: 1

    Web development is a whole new ballgame, keep that in mind.

    Since you are a non-webdev guy I strongly suggest you go with the most popular webdev toolkits in existance. Zend, Symfony or Flow3 for the webframework (each in PHP, of course) and jQuery or ExtJS for Ajax client stuff.

    With Zend + jQuery and jQuery UI you're on the super safe side, it's safe to say that they are todays most widespread combination. OO PHP won't be any problem for you, since you're used to Java. PHP is going to be very easy for you ... in a way modern PHP and Java are quite simular. Keep in mind though, that PHP has dynamic typing and tons of web-specific built in functions which let you things with one function call which would take 30 lines in Java.
    Symfony and Flow3 are also very neat Frameworks, you should look into those. Which you choose isn't that important, PHP is way ahead in delivering in this area compared to Java - you'll feel like a whole new world.

    One more thing: What you want to do is a non-trivial web application that takes a lot of work, no matter the technology. You definitely should start out with an architecture model and some abstracts like usecases that leave the technology decisions for later. Maybe you'll feel like doing the whole thing in Java/Wicket and jQuery or something along the way. As far as I know, Wicket is the Java toolkit that comes closest to all the Python, PHP and Ruby stuff out there and has the least XML situp crap to go with it.

    My 2 cents.

    --
    We suffer more in our imagination than in reality. - Seneca
  133. Re:Nothing wrong with PHP. Don't be a language big by Anonymous Coward · · Score: 0

    To be fair, I've yet to come across an IDE that handles Magento well. It's a pain to work on since I end up doing most things in notepad++ simply because it's easier for me when I have to jump from project to project quickly.

  134. Perl, Python, Lamp, ... by freaker_TuC · · Score: 1

    Checkout Perl or Python ; a good book is "Perl 5 by example" and start from there ..

    --
    --- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
  135. Re:Nothing wrong with PHP. Don't be a language big by Xest · · Score: 1

    "And NetBeans, and every other IDE that works well with big PHP projects is wrong, because Eclipse can't be a big pile of poo?"

    I've been working on a large PHP project in NetBeans for about 18 months now, and by works well I'm assuming you mean "Is only a tiny bit better than just using a text editor with syntax highlighting like Notepad++" ?

    Honestly, if PHP and NetBeans is working well then I think it shows the low standards PHP developers have and expect. Compared to something like XCode, JDeveloper, and Visual Studio it's still piss poor. It's not NetBeans fault though, it's simply doing the best it can with a bad language.

  136. Detailed Breakdown of Web App Technologies by defcon-11 · · Score: 1

    If it's going to be a true app providing more functionality than content, I would strongly recommend against the old school server-side html generation approach. Instead, use a front-end webserver to serve static files and bootstrap a Javascript app. The Javascript app can then fetch data from the server using RESTful webservices and update the UI. I have extensive experience building enterprise web apps under my belt and have tried many different strategies. This is by far the best approach, as it is quicker to develop, easier to test, easier to consume your business logic with diverse clients (i.e mobile devices, desktop, Flash), and easier to expose a public api to your customers. Depending on your needs ExtJs, Dojo, and Backbone.js are all capable front-end frameworks. ExtJS and Dojo are nice, because they are monolithic libraries that already have most of what you need, including MVC modularization, UI components, and a production deployment path. Backbone.js is nice because it gives you the bare bones tools to make an app without anything you don't need, but you will have to either add many things yourself or pull in multiple libraries, which can become a maintenance and licensing problem later on down the road. JQuery is also functional, but a large app will quickly turn to spaghetti code if you do not also include some type of MVC framework for modularizing your code. If you use the Javascript front-end approach, there will be some tricky things you'll need to think about, such as how the back button should work (and in your specific example: timezones). It's extremely important to find quality Javascript devs, who have already experienced similar problems and know how to deal with them. Finding good Javascript devs in the current market is much more challenging than finding decent back-end devs, regardless of what back-end technology you choose. I prefer Python for the backend with Ruby as a close second, but IMO it doesn't really matter what stack you pick for the backend. I would try to stay away from PHP, just because of technical issues, and the fact that it annoys me as a dev. Python, Ruby, Java, Groovy, .Net, and node.js are all mature, capable technologies that you will be able to find decent devs to hack on. The reality is that besides the addition of NoSQL databases and asynchronous programming models used for 'real-time' features, backend MVC development frameworks haven't changed all that much in the past 5-10 years. They all work pretty much the same way: you'll have url routers, controller classes, html templates, a model layer, possibly an ORM, and a DB api. Whichever backend you choose, one of the most important things to think about is how you want to host it. If you're going to be using AWS, Heroku, Rackspace, vps, etc,. Stacks have distinct advantages and disadvantages on certain cloud providers. For databases I would choose Postgresql for a relational database. Well supported, great documentation, awesome feature set, open source, and easy to find devs for. For NoSQL databases, I really like MongoDB. Your project sounds like it would work well with either type of database, but remember that you don't have to be stuck with just one type of database. There are plenty of projects that use both relational and NoSQL databases for different services under the same roof.

    1. Re:Detailed Breakdown of Web App Technologies by defcon-11 · · Score: 1

      Dammit, no line breaks. How do I edit?

  137. JavaScript + REST APIs by Anonymous Coward · · Score: 0

    There are some good modern JVN frameworks out there: Play, Grails or even Rails using JRuby (also I like Sitebricks.. but it never take off). Those frameworks will allow you to get up to speed quickly while reusing your Java libraries.

    What I don't like of those frameworks is that they are a kind of all-or-nothing: they follow they own directory structure and build tools, and you have to develop following their conventions so the "magic" happens.

    So if you don't want to cope with a "magic framework", a good combination of Java and JavaScript based tools to me is:
    - For the UI: Use JavaScript with jQuery-or Zepto- and some microtemplate framework (also take a look into LESSCSS, CoffeScript, RequireJS and Backbone.js).
    - For the middleware use REST services: JAX-RS is easy and you can use Java or Groovy directly.
    - You can wire dependencies with Spring or maybe Guice, and setup the security with Apache Shiro.

    In my experience that combination is excellent: If you take care of designing a good REST API interface, you'll end with an API that can be used also from mobile devices with some framework like Sencha, or even from other rich clients.

    The develop/run cycle is fast because you can easily unit test all your REST APIs, and since your UI is JavaScript based you don't have to redeploy on each UI change. Also you can start prototyping your UI using mockjax and jQuery and them design your REST API based on that prototype.

    JavaScript is hard to modularize, but not impossible, and in my experience if you get used to JS the development with that combination of frameworks is faster than with GWT, JSP/JSF and Wicket. The two biggest drawbacks are: gets time to get that combination of frameworks up (start with small things jQuery and REST services with Jersey, and them add other things as needed), and browsers with slow JS engines like IE7-8 will suffer.

  138. Re:Nothing wrong with PHP. Don't be a language big by duguk · · Score: 1

    Second time I've seen that link in this same article. I am absolutely sick of seeing it - there's a *few* errors in it. For example:

    Operators are very fragile in the parser; foo()[0] and foo()->method() are both syntax errors. The former is allegedly fixed in PHP 5.4, but I can’t find mention of a fix for the latter.

    The latter doesn't need a fix because it always worked. Honestly, how hard is it to test that foo()->method() works?

    Objects compare as greater than anything else except other objects, which they are neither less than nor greater than.

    Strict-equals on objects compares the references; but regular equals compares the contents of the objects. Two objects compare equal if the contain exactly the same fields and values. Seems pretty reasonable to me.

    • is always addition, and . is always concatenation.

    This is a good thing; JavaScript gets this wrong.

    There is no way to declare a variable. Variables that don’t exist are created with a null value when first used.

    Variables that don't exist issue a notice. You can deal with that just like any other error.

    Global variables need a global declaration before they can be used.

    Actually there is also the $GLOBALS array for this. I'll agree that's not much a solution. Globals should just not be used; if you want to use static class variables, it's a much better choice with a sane syntax.

    there’s no pass-by-object identity like in Python.

    I'm not sure if I understand this but all objects are passed-by-reference in PHP (since 5) and PHP references act appropriately when used as function parameters, etc.

    A reference can be taken to a key that doesn’t exist within an undefined variable (which becomes an array). Using a non-existent array normally issues a notice, but this does not.

    An attempt to use the reference will result in a notice but isset() and empty() operate it on it correctly.

    Constants are defined by a function call taking a string; before that, they don’t exist.

    You can declare constants in classes and namespaces with the const keyword.

    There’s an (array) operator for casting to array. Given that PHP has no other structure type, I don’t know why this exists.

    You can cast scalars to single element arrays and objects to arrays with the same structure. Both are actually very useful.

    include() and friends are basically C’s #include: they dump another source file into yours. There is no module system, even for PHP code.

    PHP is interpreted -- namespaces and autoloaders are PHP's module system.

    Appending to an array is done with $foo[] = $bar

    This is a good thing.

    empty($var) is so extremely not-a-function that anything but a variable,

    Empty is equivalent to the not operator but will also work on undefined variables -- that's why it requires a variable.

    There’s redundant syntax for blocks: if (...): ... endif;, etc.

    Useful inside of templates where matching { } is much more difficult.

    PHP’s one unique operator is @ (actually borrowed from DOS), which silences errors.

    Sometimes you don't care if a function succeeds; like with the unlink() function which will raise an error if the file you're trying to delete doesn't exist.

    PHP errors don’t provide stack traces.

  139. Re:Nothing wrong with PHP. Don't be a language big by Zero__Kelvin · · Score: 1

    I guess you don't realize how Open Source works. You did know that the person/people who did the website isn't/aren't the same person/people that implement the PHP support for the IDE, right? If the PHP support is sub par, then that is a strong indication that the PHP programmers involved in the development of said support are sub par. Naturally, this is what one would expect since any competent developer is going to eschew PHP in the first place.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  140. Re:The thing about Java is by Max+Littlemore · · Score: 1

    I play minecraft. on linux.

    --
    I don't therefore I'm not.
  141. You're all going to hate me for saying ColdFusion by arete · · Score: 1

    It seems to me that what the OP really should use is a mature framework e.g. Drupal rather than rolling your own regardless of language choice.

    BUT since this thread has evolved into a language choice I'm going to respond to that. I'm also going to come right out and say that this post will be very unpopular on Slashdot. [Hopefully I won't get sunk by too many mods saying -1 "opposite of my fanaticism." ] ColdFusion has a pretty narrow applicability, but it's ideal for the OP.

    Con: ColdFusion per se is not free in source or beer. (allthough there are ports) BUT shared hosting is only infinitesimally more expensive, so this is an issue only if you'relocked into a certain host or you are goign to have aan armada of servers. [The local dev version IS free.]

    Con: ColdFusion is not very popular. There's still a LOT more usage than most people seem to perceive, but it's obviously not up there with e.g. PHP. [Commercially ColdFusion missed its window. In ~1998 database driven web applications were relatively novel and it was awesome. In 2001 it was comparatively unstable at higher traffic values. In 2002 they threw out the underlying server product and now it's an interpreter plugin that runs on any J2EE server you want it to.]

    Pro: CF is a mature, modern flexible, powerful, rapid development toolchain for making websites. Especially as a novice in web apps it's going to support you. It'll let you worry about your app and not the minutia and has automatic capabilities for all sorts of things. It does the right thing by default but lets you override if it you need to. [Aside: These advantages are rather similar to what's advertised for RoR which IS free... If anyone can tell me some awesome thing RoR does for a website that CF doesn't beyond the two "cons" I've listed above I'd really like to know -- so far no one has been able to give me a good one. I'm excluding outdated concerns e.g. that the 1999 version of CF wasn't OOP.]

    Pro: CFML is a pretty ideal language for generating HTML because as a markup language the flow of your HTML remains obvious and readable. [PHP eventually adopted the ability to use a similar paradigm.]

    I've heard some people say that CF is what Java Server Pages should've been.

    Pro: CF IS Java. (server) You're running on a Java server and the things you already know about running that remain true.

    Pro: CF IS Java. (language) Even moreso, you can literally inline Java code into CF code (much like old school ASM into C). In my time writing CF I've done this literally twice:

    a. to use Java's sleep() [Note: I do not recommend using "sleep" when generating a webpage, but it was an exceptional circumstance.]

    b. to use Java's image manipulation libraries from CF templates.

    I'm not saying CF is ideal for all circumstances. Merely being non-free rules it out of a lot! But it really is -- at least in my opinion -- "how to build a web app on a Java server" and that has a lot of suitability as a platform for the OP.

    --
    Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
  142. Bare Java, JSP and JDBC by Anonymous Coward · · Score: 0

    I am so sick of all the frameworks in Java. I've dumped Java and gone instead for ASP.NET with the AJAX tools. I have never regretted it. But if I was still working in Java, I would be eschewing all the heavyweight frameworks. Spring and Hibernate don't actually make life easier, they make it HARDER, and just about every other framework seems to sit on top of those two at least.

  143. Don't ignore PHP by Anonymous Coward · · Score: 0

    You can't ignore PHP - for good reason, it's one of the widest used languages on the web. Wow - I keep forgetting there are anti-PHP ASP.NET fanboysandgirls here. My personal view is that anything .NET is best left for windows, and the web (most of it) doesn't run on windows from the server end. No language is crap, they're just tend to fit better in certain circumstances. PHP is great for building large-scale, well organised object-oriented web apps and database-driven CMS sites. It's also easy to code badly (in any language) - so do lots of homework if you dig into PHP. aharrisbooks.net has a great starter book (although it is supposedly PHP6 which doesn't exist in the real development world, so try to find the PHP5/MySQL edition).

  144. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    I guess you don't realize how Open Source works.

    So, I guess I don't know. Is that relevant? So PHP is fine if it's free and/or opensource? Because I've read here a ton of comments of how Java is "superior" in every way, but the Eclipse Foundation website has parts made in PHP? There is no doubt that Eclipse is heavily Java-oriented, so does that mean that they don't even eat their own dogfood?

    Naturally, this is what one would expect since any competent developer is going to eschew PHP in the first place.

    Oh, you mean a "Java" programmer? We have different ideas of competence. Yes, PHP as a programming language is a big pile of poo, but at least isn't encapsulated poo. People I'd consider "good programmers" usually barf at the idea of both Java and PHP. Programming isn't about APIs and ABIs and what language abstracts better what you are trying to think - programming is about implementing algorithms in restrained environments using instructions that may or may not be machine-oriented. I'd bet you 50% of the Java programmers you know cannot implement simple algorithms they use everyday in a pseudo-language (heaps, garbage collecting, lists, tuples, etc), or explain easily how the OO inheritance works internally. Go ahead, try it and then tell me if I'm wrong.

  145. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    I actually use NuShpere's PHPEdit (give it a try if you use Windows), but if you think NetBeans is bad, try Eclipse and then tell me about it :D
    The latest versions of VS are more close to Eclipse than to NetBeans. That's one of the motives I use SharpDevelop for C# development, instead of VS 2011.

  146. Tinkered with Wicket? by Anonymous Coward · · Score: 0

    If you have tinkered with Wicket before, why not use it again? The upcoming v6 release uses JQuery for its AJAX capabilities, which opens up a large set of possibilities. I was also mostly involved with server side coding and had some Swing experience, and the Object-Orientated nature of Wicket came naturally to me,

    GWT also looks very interesting. There are a number of frameworks built on top of it that looks good too. Like Vaadin. I haven't worked with these frameworks, but I definitely want to give it a shot.

    My opinion though would be to start of with Wicket to help you get back into the swing of things (no pun intended).

  147. Re: Agree by Skal+Tura · · Score: 1

    PHP with some actual software architecture engineering can do some pretty amazing things, in a nicely efficient manner.

    Altho, 98% of PHP "programmers" shouldn't even try to do anything serious without a rigid framework forcing some kind of inefficient, bloated architecture, but forcing the "programmer" to even a partially sane standards and architecture. The last 2% can wrap their own and forget the inefficiency and bloat, and spend less time doing that from scratch than learning all the kinks of the bloated inefficient rigid framework.

  148. Use what you know best by Pf0tzenpfritz · · Score: 1
    Supposed this thing is going to run on it's own server, or on a shared host providing access to an app server instance to you, just get it running on JSP. You know how to handle the backend, the front-end will be not too complicated. Having written a PHP framework for a very, very similar use case some years ago, I dare to say, that the HTML part of it will not be much of a problem. I would -if I had to do it again-:
    • implement the backend in Java or PHP
    • build the main submit/edit/display methods around an MVC
    • use Java/persistance rather than PHP, as entity objects are exactly what you need to map events to (event.date, .place, .promoter, .uri,...})
    • dont fsck around about the framwork. You will need some CSS/HTML and AJAX frameworks for the frontend - pick one, when you'll finish it. For the draft you don't need one
    • keep the backend open for different frontends. iCal, XML, API-access, various calendaring standards will be very useful

    Don't forget. If you're a Java EE guy, you probably know all, you need to. Get the backend running, check with simple text or raw HTML output and then polish the web appearance. I don't know which of the varios CSS/HTML frameworks will integrate best with JSP, but look for one that lets you easily create calendar fields and forms with pulldowns. I remember a useful date selector being a lot more complicated than I'd expected.

    --
    Oh, the beautiful gloss of greality!
  149. Worry about the data format, not the language by Anonymous Coward · · Score: 0

    A key lesson I learnt hacking together an events website using Zope about six years ago is:

        * Start with the data format. Programming languages, frameworks, databases... come and go, but data sticks around forever.

    For an events site, the data format you want is iCalendar (the current version's spec is RFC 5545).

    Instead of fixing my site (www.joeblog.co.za for anyone interested), I've been doing courses on modern web frameworks. I recently finished the excellent Coursera Software as a s Service course which covers Ruby on Rails (https://www.coursera.org/course/saas). While very interesting, it doesn't actually cover the problem of writing a CRUD system for .ics files and pretty printing it in HTML.

    What we've seen at the moment is a proliferation of Data Type Definitions, usually in XML (iCalendar is an interesting example since there are about three XML spinoffs), but little open source software to support it.

    A key frustration I have with frameworks like Zope, Ruby on Rails etc is instead of making it easy to use your desired data format (which maps to the model in MVC) and write it in html (the view), the lead tend to lead developers astray with inhouse, obscure formats. Moving my Zope application from one server to another was a nightmare (oh, yes another key lesson: don't hardwire your time data to the server it's on). Now, if I'd stored my data in .ics files and only needed to change apps...

    I've been trying to gather info on Data Oriented Programing (ie, where you start with the format like RFC 5545 and then develop from there), but haven't actually found much. Interestingly, awk is often cited as a Data Oriented Pograming language, along with xslt these days.

    Anyways, starting an open source project developing an events system built on .ics files is on my to do list. I'm a weekend hacker, with Python my preferred language. But ideally, I'd say the system should be built out of old school unix command line programs that read in .ics files and write out .html without the user caring what the underlying programing language is.

  150. this is what I do by Spiler · · Score: 1

    * implement an MVC pattern but use a servlet, really, don't fall into the struts / faces / sitemesh / tiles / spring ui / crap, it will backfire at you, use a simple templating engine (i.e. freemarker)
    * don't use spring unless you plan to make your code available to everyone and plan to have multiple implementations of the integration tier (data tier), otherwise spring is useless spaghetti XML configuration and if you aren't careful enough you'll be coupling tiers anyway without noticing it, spring is not a silver bullet
    * if you have to use sql use jdbc and/or persist your objects without mapping collections (don't use hibernate / jpa or use it carefully without mapping collections), just don't use SQL for everything, think ahead but not too far ahead. look for a nosql solution if you can.
    * don't store info at the http session, if you absolutely have to make sure it is serializable
    * make http content cacheable always, if you have a crud backend or a dynamic page based on user data use a separated folder for it, it is easier to manage an http reverse proxy to cache that way.
    * use a cdn for static content (images, scripts, use versioning for scripts so you can have some level of control of what's in the user's browser cache)
    * use sticky sessions just to optimize cache but be ready to failover/load balance, make your services stateless
    * use a SOA architecture, doesn't matter if you are going to implement it using web services (i.e. soap, rest, other) or a home made socket/bin protocol make sure tiers are decoupled and that they can be reused, you'll probably want to expose a public API at some point
    * don't build everything on a single .war deployable, divide the app by functionality, i.e. signing, validation etc on one .war web app, browsing / searching cacheable content at another, backend crud app at another .war, etc, use shared libraries to keep your entities model and .war consumer apps in sync
    * log traffic at the balancer(s)
    have fun!

  151. Vaadin for web apps, Struts for web pages by Anonymous Coward · · Score: 0

    In my experience there are two solutions to this:

    If you are producing web pages (i.e. mainly for users browsing pages, following links etc.) then Struts gives you the navigation you need, actions for processing input and JSPs for the output.

    If you are producing a web application (i.e. very interactive, a desktop application made available in a browser) then Vaadin is by far the best option.
    It hides ALL the HTML, CSS and Javascript from you so you can write only in Java; it provides everything GWT provides and more.

    You should also remember that, although your user interface may be a web browser, that is only one part of your overall application.
    60-80% of your code will be processing data, running database queries, reading and writing files, etc.
    You shouldn't let the UI dictate the way your main processing will be performed.

    As a Java developer who has dealt with this issue several times over the last ten years I have worked with most of the frameworks that are supposed to help with these issues (JSF, Spring, Tapestry, etc.) and found major shortcomings in each of them.
    Every time you develop a web application using one framework it is replaced by something new that promises so much more than the last one.
    I will keep looking at new solutions as they come out but, for now, I have come to the conclusion that Vaadin and Struts are the ones to go for.

    Hope that helps.

  152. Another vote for Railo by aclarke · · Score: 1

    Railo is great. After spending the last few months working on a web-based application with a PHP front end and a Java backend, I really miss working with Railo (or ColdFusion).

    Ideally, I'd write the front-end code in CFML, and the business logic with a combination of CFML (with the excellent and unubtrusive FW/1 framework) and Java for the heavy lifting where appropriate. For extra points, package it all up and deploy it on Railo/Tomcat/Amazon Elastic Beanstalk.

  153. Pike & Roxen by Anonymous Coward · · Score: 0

    It's a shame that most people have never heard of the Pike programming language or of the Roxen Webserver. Pike, the language that the Roxen web server is built on, is similar to C and Java. My only complaints is that Pike community is small and that Pike does not have call-by-reference for all types, but you learn to work around that. Check out Pike: http://pike.ida.liu.se/ and the Roxen Webserver: http://download.roxen.com/5.2/

  154. You should acquaint yourself with CalDAV ... by Rambo+Tribble · · Score: 1

    ... and the libraries which support it, given your requirements: http://en.wikipedia.org/wiki/CalDAV

  155. Make it tablet / phone friendly by SCHecklerX · · Score: 1

    Aside from rendering things properly, do NOT rely on hover events for functionality ... to bring up menus, for example. Otherwise, the same things as always ... don't hardcode screen resolutions, don't rely on javascript for form validation, etc.

  156. Don't by Anonymous Coward · · Score: 0

    There is no modern Web Application, and there won't be any until HTML5 is fully supported. The whole web thing, HTML, CSS, JS, SVG ... are just pathetic today, you can't even reliably draw real stuff on that thing.

    Design a normal application, i.e. RIA for desktop, or mobile app instead.

  157. Re:Nothing wrong with PHP. Don't be a language big by Zero__Kelvin · · Score: 1

    "I guess you don't realize how Open Source works."

    So, I guess I don't know. Is that relevant? So PHP is fine if it's free and/or opensource?

    No. Your not getting the point. In the Open Source paradigm solutions get implemented by people who are "scratching an itch", so the PHP support is going to be implemented by PHP programmers. Therefore, the fact that the PHP support is of poor quality is a direct indication that the PHP programmers are of poor quality.

    "We have different ideas of competence. "

    Indeed, we do ;-)

    "Programming isn't about APIs and ABIs and what language abstracts better what you are trying to think - programming is about implementing algorithms in restrained environments using instructions that may or may not be machine-oriented. "

    No. Programming is about recognizing that both are important, but consistency and simplicity are king.

    "I'd bet you 50% of the Java programmers you know cannot implement simple algorithms they use everyday in a pseudo-language (heaps, garbage collecting, lists, tuples, etc), or explain easily how the OO inheritance works internally. Go ahead, try it and then tell me if I'm wrong."

    I believe you are right. You would bet me that ;-) Of course, you haven't followed your own point along its own logical path, which leads to the point that far more than 50% of PHP programmers could not do so.

    Finally, you also accidentally make a point when you keep using the term programmer rather than software engineer. Software Engineers don't design PHP into their systems unless they are incompetent. Web Programmers often do (thus you see it on websites) but Software Engieneers doing Web Design wouldn't touch it with a 10 foot pole.

    Language Design is done by Engineers, not programmers. PHP is a horribly designed language. In fact, I'm being gratuitous when I use the term design at all in that context.

    --
    Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
  158. Re:Nothing wrong with PHP. Don't be a language big by rev0lt · · Score: 1

    No. Your not getting the point. In the Open Source paradigm solutions get implemented by people who are "scratching an itch", so the PHP support is going to be implemented by PHP programmers. Therefore, the fact that the PHP support is of poor quality is a direct indication that the PHP programmers are of poor quality.

    Go see your original message. Fact is that Eclipse *does* use PHP, and I'm not talking about the mentioned PHP support. But, then again, while I'm not familiarized with Eclipse internals, I really doubt that the parsing of sourcefiles is made by an external component - the common approach is to implement a generic parser with a set of pluggable dictionaries, so it doesn't really matter if its parsing Java or PHP.

    Of course, you haven't followed your own point along its own logical path, which leads to the point that far more than 50% of PHP programmers could not do so.

    I see a difference between someone who can write code and a "programmer". I'd expect a good PHP programmer to be as good as a good Java programmer, and equally rare :)

    Finally, you also accidentally make a point when you keep using the term programmer rather than software engineer.

    It's not innocent. I wouldn't go that far as associating PHP with incompetent engineering, there are cases where it is a good fit - or a requirement. And software engineers don't do "web design". But I find the expression "software engineer" rather silly, as often is used instead of "application lifecycle manager". Very few software products are actually engineered (as in planned in detail in every aspect from start to finish before conception).

    Language Design is done by Engineers, not programmers.

    More often than not, is done by mathematicians, physicists and the occasional CS major, not engineers.

    PHP is a horribly designed language. In fact, I'm being gratuitous when I use the term design at all in that context.

    I don't think you'll ever find a PHP programmer/code monkey that disagrees with that. A bit like FTP is a horribly designed protocol, etc. - it exists, many people use it, it gets work done.

  159. JSF by Anonymous Coward · · Score: 0

    Personally I come from a PHP background (at least when it comes to web development) but ever since I've started work, I've been using java on a daily basis. That got me interested in java-based web frameworks (because java is infinitely better than PHP) and I'm currently using JSF and it is absolutely awesome. Note that I mean jsf 2.0, previous versions may not be quite as good.

    Performance is great, frameworks like richfaces etc allow for very rapid development of very complex features (this includes sortable/searchable/pageable/... tables, context menu's, charts, tree structures, popup windows,...) and best of all? You don't need to actually write any javascript/ajax. Ajax has been deeply integrated into jsf 2.0 (not so much for previous versions) and uses jquery in the background iirc. But you don't actually need to know this as it all just works out of the box. Knowledge of html & css is still requisite, especially for styling but javascript can be largely avoided (which is a great plus in my book).

  160. At the risk of recommending something not FOSS by Anonymous Coward · · Score: 0

    At the risk of recommending something that's not FOSS...

    Timothy's proposed web app is data driven, Oracle Application Express fits this scenario like a glove. ...Don't knock it until you've tried it for data driven apps. ...Oracle Application Express does data driven apps really really well.