Slashdot Mirror


Tapestry Making Web Development a Breeze?

An anonymous reader writes "IBM DeveloperWorks has an interesting article on how to simplify your Web-based development with Tapestry, an open-source, Java-based framework that makes developing a breeze. The article shows you around Tapestry, from installation to file structure. See for yourself how Tapestry facilitates servlet-based Web application development using HTML and template tags."

24 of 268 comments (clear)

  1. Rapid web development getting out of hand? by Escherial · · Score: 3, Insightful

    Is it just me, or does anyone else feel that all the "rapid development" frameworks that are all the rage lately may be harmful to the current crop of new developers? There should always be a balance between development speed and flexibility, and I fear that crutches like rapid web development frameworks trade ease of use for the ability to do something novel. Of course, one can say "if you don't like it, don't use it", but the fact is that people new to the field will use it regardless, simply because it's the path of least resistance. True, some clever ones will extend the range of what was thought possible, but most will end up with the same cookie-cutter projects for which these frameworks are always tailored (look to scaffolding in Ruby on Rails for an example of the omnipresent "database browser").

    I suppose this is just the next step in the constant progression toward appeasing laziness; no matter how easy an interface becomes, there will always be demand for something or someone to fill the gap of applying actual effort to learn it.

    1. Re:Rapid web development getting out of hand? by evn · · Score: 4, Insightful

      but most will end up with the same cookie-cutter projects for which these frameworks are always tailored (look to scaffolding in Ruby on Rails for an example of the omnipresent "database browser").

      Scaffolding is a tiny portion of Rails, only a few dozen lines of code out of thousands. There's more code wrapped up in pluralization than scaffolding yet for some reason everyone's remains fixed on "scaffod :foo". DHH has said time and time again that scaffolding is there just so that you can get a quick way to get you running, by the time you're done the scaffolding code should be long gone.

      Think of it as the 'genie' effect in OS X: easily recognizable but mostly for show. People may not 'get' things like Unit testing, database agnostic schemas, MVC patterns, domain specific languages, duck-typing, or any of the other things that make rails really productive but they sure as hell get "1 line of code and I've connected to a database to perform CRUD functions." Once you've got them with the scaffolding hook people are receptive to the things that really make Ruby on Rails cool.

      Scaffolding makes for a nifty screencast but the real joy comes when you actually learn how to use the language and framework.

    2. Re:Rapid web development getting out of hand? by Ridgelift · · Score: 2, Insightful
      True, some clever ones will extend the range of what was thought possible, but most will end up with the same cookie-cutter projects for which these frameworks are always tailored (look to scaffolding in Ruby on Rails for an example of the omnipresent "database browser").
      Do you realize scaffolding is less than 1% of what Rails is about? To cite Rails as a tailored cookie-cutter system isn't some great insight on your part, it's rather a profession of ignorance.
    3. Re:Rapid web development getting out of hand? by misleb · · Score: 5, Insightful
      Bulletin: Easy programs are easy to write. Hard programs are hard to write.

      Meaningless tautology.

      Language doesn't matter at all.

      Baseless assertion.

      There's difference in functionality between one language and another, true. That's because different languages were built to different specifications and purposes:

      And here you contradict your own baseless assertion.

      no first-person shooters written in assembly,

      Ok, here is a good example. Lets say all you had was assembly language and perhaps FORTRAN to perform some "high level" math operations. Lets say someone asked you to create an FPS. Now, it could probably be done. You'd have to figure out how to interact with the graphics hardware at the register level. You'd have to write almost every single function by hand from aside from whatever math functions you can utilize from FORTRAN. So 6 months into development someone comes along an says, "Hey, here is this new language called C and a library called OpenGL. These will make your FPS development a whole lot easier. It solves the really hard problems of dealing with hardware and makes your code work on many different kinds of graphics cards." Are you saying that you would run screaming from this offer because it couldn't possibly make your work easier? Unless you are some really f'ing hardcore assembly programmer, I bet you coudl cut your development time by an order of magitude at least. You could probably even afford to complete dump that previous 6 months of development in the trash and STILL come out ahead because you found a new tool/language which makes a perviously hard program relatively easier.

      Contrary to your initial baseless assertion, language DOES matter. Frameworks matter. Libraries matter. There are, in fact, all kinds of things that can make a particular project easier.

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    4. Re:Rapid web development getting out of hand? by zr · · Score: 2, Insightful

      this is a way too simplistic a view. language does matter, and on many levels.

      when you study programming, it shapes your mind. when building software, it shapes the universe in which you model your target system. not to mention realities of software development in real life (here on earth, may be on your planet its different). you have to train people, you have to get people to work together. and different languages and environments have different devices to support (or, frankly, to discourage) these things.

      sure, i get your point, its not all language. and i agree with you there. there are activities in software developmeent that have nothing to do with coding. and, of course, one can write crappy code in any language. but having said that, when it comes to coding, importance of matching language to the job is tough to overestimate.

    5. Re:Rapid web development getting out of hand? by SomebodyOutThere · · Score: 2, Insightful

      No doubt people said the same thing about the development of high-level languages. I know Plato said it about writing (which he thought would damage people's ability to remember). These things don't prevent the gifted from learning or working, they just let average people do some kinds of work they couldn't do without them.

      --
      Everyone but you is telepathic.
  2. Re:Great another web framework by mustafap · · Score: 4, Insightful

    >The solution is definately more involved than the problem.

    I'd love to say "amen to that". I hate frameworks.

    But the thing is, there are often classes of problems to which these things apply. It's just that you and I dont have them. A framework is a tool; use it when it suits.

    --
    Open Source Drum Kit, LPLC deve board - mjhdesigns.com
  3. Written backwards by Anonymous Coward · · Score: 5, Insightful

    IMHO, this article is really poorly written. When reading an article on this kind of topic, I want the first couple of paragraphs to tell me what is new/unique about this tool. Instead the author wastes endless column space describing how to install the software, then more space describing the sample applications that you could look at yourself once you downloaded it anyway. I want to be given a reason to try it out: What makes this tool powerful; how can it save me time/help me to produce cleaner code? Maybe he got to this by the end of the article, but I had given up by then.

  4. Re:Easy web development with Java? by TapestryDude · · Score: 4, Insightful

    Rails has a lot going for it, and the entire Ruby concept of focusing on code has influenced many frameworks, including Tapestry. Tapestry uses abstract properties combined with annotations (or auxillary XML files) to do the kind of meta programming that is done using class methods in Ruby, but nonetheless.

    In terms of dependencies, being an Apache project causes some distribution problems w.r.t depenencies, especially when you use non-Apache projects like OGNL and Javassist. The next major release of Tapestry will build using Maven, which will make nearly all of part 1 of this article irrelevant (or at least, standard). I'm looking forward to part 2 myself, which should identify why Tapestry is so special.

    Finally, within the Java community, Tapestry is fairly well known, though a regrettably small percentage have used it. The majority of the targetted readers of this article would have objected to wasting too much space describing Tapestry and its goals, just as others in this thread have objected to the lack of that introductory material. You can't please everyone (exception on Slashdot, where you can't please anyone).

    --
    Howard M. Lewis Ship -- Independent J2EE / Open-Source Java Consultant -- Creator, Apache Tapestry and HiveMind
  5. Re:Great another web framework by Decaff · · Score: 4, Insightful

    I realized long ago that frameworks were a waste of time, I'd already authored several by then. The last framework I wrote generated static html and now we just edit these pages by hand or write simple shell scripts. The solution is definately more involved than the problem.

    Not necessarily. The right framework can produce the HTML for you, and can save you a lot of time because you can use components that generate things like fully-tested portable JavaScript. Some frameworks allow a lot of re-use. JavaServer Faces (JSF) will allow the possibility of rendering HTML, XML, WML or a range of other client presentation technologies from the same tags.

    The solution may only be more involved that the problem is simple, and it is hard to tell when a problem will grow to be complex. Using a framework can not only save time but can be a form of insurance against future growth in complexity of the website.

  6. Re:Wearing grandfather's clothes getting out of ha by kfg · · Score: 2, Insightful

    This is no longer our father's web so why should our tools be our fathers?

    Because they work.

    KFG

  7. Re:Tapestry Making Web Development a Breeze?.... by Decaff · · Score: 2, Insightful

    Why other frameworks like Seaside http://www.seaside.st/ doesn't receive the attention of Slashdot?
    Seaside is technically superior, it uses continuations to mantain state and this make it really transparent...
    Maybe because Seaside runs in Squeak http://www.squeak.org/, is open source and...
    Wait is not sponsored by any big name (like IBM, or Sun)... mmm both IBM and Sun publishes its ads in slashdot...
    Ahhh now I see why


    No, it is because systems like Squeak, no matter how technically wonderful it is (and it is!) is not a production-ready system for high volume websites.

    If you want to use continuations (which are surely the future of web development), there are Java frameworks that allow you to do this - WebWork is a good example.

  8. Don't be put off by Budenny · · Score: 3, Insightful

    Don't be put off by the comments. If you already know about it, how to install it etc, this is not for you. But if you don't, its clear and informative and interesting. Looking forward to the next part.

  9. Way too many HTML frameworks. by CaroKann · · Score: 3, Insightful
    In my opinion, the appearance of yet another framework to help alleviate HTML development is a symptom of the flawed HTML web page application paradigm. Every time I grit my teeth over the tedious complexities and limitations involved in developing an ordinary, half decent web page, I long for the days of Visual Basic, or even MFC. Does anybody even develop GUI widgets anymore? It seems like to me that, after everything became webified, we stepped into some kind of GUI dark age, and we can't seem to emerge from it.

    I am aware of the dangers associated with poorly designed rich clients, but rich clients work well, as long as you use some discipline in the system architecture. I know some rich client architectures exist, such as Curl, but in general, it appears there is very little activity in this arena. I wish this industry would focus a little more on interesting GUIs, instead of beating the same horse over and over again.

    1. Re:Way too many HTML frameworks. by MemoryDragon · · Score: 2, Insightful

      I agree the whole web development paradigm is utterly broken and giving this idiocy entirely the boots and unlearning the people who learned this dreck will take another 10 years. Fortunatly there are at least some frameworks which try to brigde the gap between having a decent ui programming model on top of the broken paradigm. Tapestry is one of them html.net is the other JSF being the third.
      But most frameworks try to go along the route of plain actions and boilerplate mvc on top of it without any event mechanism and componentization that is one thing which I really call idiotic.
      HTML webapp programming has pushed back application programming at least 20 years, alternate technologies are there which could be used (applets, xul, ...) but they are mostly ignored and now we get the next boilerplate idiocy instead of fixing the system (ajax) and then Microsoft will wipe the W3Cs backside with their xaml system which was derived out of xul and will fix the probelm and everybody will be wailing and in the end we will end up with 3 incompatible next gen html replacements and have to bridge them again with frameworks.
      The whole thing reminds me on the early eighties when people moved over from plain vt220 rendering to rich client uis and everybody had its different technology and you had to bridge the gaps again with frameworks.

  10. TANSTAAFL by angusmci · · Score: 5, Insightful

    I've worked with Tapestry. Is it a decent framework? Yes. Did we end up choosing it over JSF for our project? Yes, we did. Did it make development "a breeze"? No.

    In my experience, Tapestry simplifies some complex tasks and helps you write reasonably clean, well-structured code. This is, I think, all anyone should realistically hope for from any framework. However, it isn't a magic bullet and we did find that things became a little gnarly as soon as we tried to do stuff that the Tapestry developers hadn't really anticipated or designed for (and the things we were trying to do weren't really very exotic).

    Of the frameworks I've seen lately, Ruby on Rails is the one that bends the curve the furthest in the trade-off between 'what you can do' and 'how easy it is to do it'. Tapestry is a way behind that, but it's nevertheless a solid addition to anyone's toolkit, so long as you don't have unrealistic expectations of what it can do for you.

  11. True, but irrelevant to Tapestry. by melquiades · · Score: 4, Insightful

    I agree with the sentiment of this comment -- but Escherial, I think you saw the word "rapid" and made a bunch of bad presumptions about Tapestry. Tapestry is not a crutch; it is an excellent framework, one you're obviously ignorant of.

    What Tapestry is emphatically not is a whizzy-ooey drag-and-drop autogenerated no-coding-necessary whiz-bang shill. Those are, by and large, a bunch of crap: they usually just make the easiest 90% even easier, and the "last 90%" even harder.

    What Tapestry is is a very nice web framework, which has a lot of the same MVC capabilities as Struts and the code reuse possibilities of JSF, with far less configuration and unnecessary complexity than either of those options. The Tapestry team, much like the excellent Rails folks, have looked for ways to reduce redundancy, boilerplate code, and messy configuration -- especially in this 4.0 release. Roughly speaking, Tapestry is about 80-90% of the streamlined simplicity of Rails, but with a much richer framework underneath and all the existing libraries and machinery of Java at your disposal. It has the best mechanism for HTML fragment reuse I know of.

    What the Tapestry team has not done is try to make an app that thinks for you. You've still got to code. It's just a lot less tedious than with most other frameworks.

    My two latest webapps have been all Tapestry 4, and it's great how little code/config I have to write that isn't conveying useful information. I'm really quite impressed with the framework.

    So yeah, I agree with your rant, but it's not appropriate to Tapestry.

  12. Please, for the love of GOD..... by melquiades · · Score: 4, Insightful

    ...will people stop pretending that "Java" is one giant monolithic thing that only works one way.

    Look, these flagships specs like J2EE and EJB are designed to solve problems of writing massively distributed apps that need to have transactions spanning multiple servers running different OSes -- horrendous problems that you never, ever, ever want to have to solve. And if you do have to solve them, Java is the best way -- but if you take all that machinery and try to write a "hello world" webapp, of course it's going to take 30 bazillion lines of code.

    Somebody writing the webapp he describes in 3000 lines of Java is either (1) utterly ignorant of how to use the Java frameworks (like Tapestry) that are appropriate for the task, or (2) deliberately spreading FUD on behalf of Python.

    That is not to slight Python or the framework he's using. Python is very cool. I'm just sick of people complaining about "Java" when what they're really complaining about is "Java abuse."

    1. Re:Please, for the love of GOD..... by jazir1979 · · Score: 2, Insightful

      actually fair point, u probably can...

      my main point is to do with things like distributed transactions, etc.

      the comment on scalability and thread-safety was in response to a post way up above implying you needed to be an "uber-organization" to have those requirements.

      --
      What's your GCNSEQNO?
    2. Re:Please, for the love of GOD..... by rjstanford · · Score: 2, Insightful

      LAMP is very good at scaling if your problem domain is shallow, but broad. In LJs case its many people reading the same data, with only one person occasionally allowing to update any given piece of data. This model matches well with a lot of public-facing webapps. It matches very poorly with a lot of enterprise business requirements.

      --
      You're special forces then? That's great! I just love your olympics!
  13. Re:Great another web framework by I+Like+Pudding · · Score: 2, Insightful

    Everything that isn't spaghetti code has an underlying architecture. Frameworks are just standardized, generalized, pluggable versions of that architecture. Practically any off-the-shelf web framework you decide to use is going to be better than what you hand roll, assuming your site is bigger than 10 pages. If it is smaller than 10 pages, stay the hell away from Java and get a decent Perl, Ruby, or PHP framework.

    A framework is less a tool than it is an entire toolbox and a methodology for using said tools. These things are almost always useful.

  14. French is a far more compact language than English by irritating+environme · · Score: 3, Insightful

    Must be slashdot:
    - Uninformed comment near the top? check
    - Pointless flamebait modded to Score 5? check
    - Disingenuous and patently ridiculous to boot? check
    - Complete ignorance to the turing equivalency to all languages? of course

    Wow. I'm making a study. Apparently in french:

    "Voulez-Vous Couchez Avec Moi?"
    In English
    It has come to the attention of my biological subsystems that I find you sexually fit and attractive, and thus would like to engage in procreative attempts in order to further the expansion of my genetic sequences in the Hobbesian environment we live in. Do you find such a query to be to your liking and predilection?

    --


    Hey, I'm just your average shit and piss factory.
  15. Re:PHP seems to work fine by Debiant · · Score: 2, Insightful

    Yeah, I agree.

    I can understand why people choose Java and do J2EE. I've studied J2EE and liked it.

    But as I do work in LAMP enviroment, can't fathom why I should move to Java application servers in the web.
    They're far too complex, many are still buggy and costs are high for then. Jsp doesn't offer much more than does PHP, infact I think to effectively use it, one needs to do lot more.

    It's not that Java is hard or difficult, using it just create lot more work than using PHP. Unless you have some uber organization that needs lot of scalability and thread safety, then the sacrifice for java is not justified.

    --
    Nobody knows the trouble I've seen, nobody knows has the trouble seen me, even I sometimes wonder why I write these line
  16. Re:High learning curve by Decaff · · Score: 2, Insightful

    However, more I have done programming and web pages, more I think simplicity is best. More there are layers and neat tricks, more there is confusion and something that you have to debug.

    Not really. There can be nothing as confusing as dozens of JSP/PHP pages with lots of repeated code and no central map of how the navigation is done.

    Often structure gives clarity.