Discussions

News: JPlates 2.1 Object-Oriented Template Language Released

  1. JPlates 2.1 is a fully object-oriented template-processing language that combines many of the best features of Java with great template-processing features to create a terrific alternative to JSP and XSLT. JPlates works great with Struts, and can be used in any Java application.

    Conventional template-based development accounts for 40% to 80% of development and maintenance costs for most dynamic web applications. JPlates helps reduce cost and complexity, increase reuse, and improve productivity with patent-pending standards-based object-oriented technology and uncompromising product quality.

    Visit http://www.jplates.com for information and a free evaluation copy of JPlates 2.1.

    Threaded Messages (17)

  2. I looked at the site and the examples and then glanced at my calendar expecting it to be April 1st. Template engines should make it easier for designers and developers to work together not cause them both to run in horror. Based on the examples JPlates looks like Java with ugly syntax. I keep going back to the examples page as I am writing this to gawk...I feel like I could be on the highway during rush hour looking at an accident. To create a simple table layout they have 14 files!

    And to add insult to injury they claim to have a patent pending on object-oriented template processors!

    JPlates Inc.: I give you the middle finger!
  3. The point of the large example is to show how to construct complex applications from components, rather than monolithically, as is typical of JSP and other non-object-oriented approaches.

    I cannot disagree about the syntax being awkward. All template languages require some sort of delimiters to distinguish between the control language and the output language. With proper editor support, it's not so hard on the eyes. We're working on an excellent editor for the Eclipse platform that makes it much easier to work on both flow-of-control and literal template output.

    Also, I'm sorry to have insulted your injuries, but there are no other object-oriented languages in which the bodies of methods are expressed using template-language syntax.
  4. JPlates Inc.: I give you the middle finger!

    Count my finger too!

    Looks like those guys do not know difference between activity and prodactivity.

    Time wasted on that engine and now on editor for it.

    If somebody needs scriplets than IntelliJ-IDEA provides excellent Java support in JSP(full support for auto-completion of methods, fields, custom tags, data types etc., refactoring works too) and it is WAY to much better than JPlates.
  5. If you want to produce complex applications from components then use Java or some other OO language such as Ruby or Python.

    I think you are confusing a template language and a programming language - they are two different beasts. A template language is not meant to be a programming language rather it is meant to be used as a template with data inserted in specific locations at runtime. Template languages tend to provide a limited number of control structures such as if/else and for loops in order to aid in display of things like lists. Most template languages also have some sort of macro functionality for encapsulating reusable view elements.

    Programming languages on the other hand are used to write complete programs. Most have a rich variety of control structures and a rich set of data structures and types. OO programs in particular also share a common set of qualities such as support for inheritance, encapsulation, and polymorphism.

    When I look at what you have done I would almost be willing to admit that you have created a programming language except for the fact that all you have done is provide an alternate syntax for Java and not a very good one at that. And make no mistake when I see your "templates" I see Java through and through. Thus, given that you are really trying to create a programming language, then the fact that the syntax is awkward is a serious problem. Modern programming languages such as Java, Ruby and Python all have spent a lot of time focusing on making syntax easier to deal with because developers spend so much time using them.

    Just for craps and giggles I would love to know if anyone is using your product and whether they would be willing to vouch for it? And I'm not talking about your company using your product, I mean other companies which have adopted your product because of its supposed merits. Additionally I wonder how difficult it would be to provide alternative views for web applications written with your product? How hard would it be to provide an HTML and WML view?
  6. I'm glad you raised the point about "most template languages" not being programming languages. That's true. That's what's different about JPlates.

    Our point of view is that templates are executable program components, not data. As such they handle complexity better when they're contained in a good object-oriented language, rather than interpreted by something that only performs string substitution.

    It really comes down to managing complexity. If you're trying to build a complex web-application or code-generator, doing that using a template language that doesn't have methods and classes and inheritance and encapsulation is just a lot harder than it needs to be.

    JPlates doesn't provide a different syntax for Java. It is defined using a tag-based syntax for the methods that perform template processing, since that's its focus. The syntax is sometimes awkward for methods that don't do any template processing, but they typically make up a small percentage of most real JPlates classes.

    If you look at the <# Template #> part of the StandardPage example, it's easier to understand why JPlates statements have delimiters.

    Oh, and JPlates does a macro-like facility, referred to as JPlates custom tags. I think it's pretty powerful.
  7. complex web applications[ Go to top ]

    I'm glad you raised the point about "most template languages" not being programming languages. That's true. That's what's different about JPlates.

     
    > Our point of view is that templates are executable program components, not data. As such they handle complexity better when they're contained in a good object-oriented language, rather than interpreted by something that only performs string substitution.

    I'm obsolete: when I want "executable program components" I use Java servlets or filters, Struts actions and other classes instead of a mess of HTML-ridden templates, and when I want "a good object-oriented language" I use Java or Python instead of a strange childish notation.
      
    >
    > It really comes down to managing complexity. If you're trying to build a complex web-application or code-generator, doing that using a template language that doesn't have methods and classes and inheritance and encapsulation is just a lot harder than it needs to be.

    Then forget about the template language and use "methods and classes and inheritance and encapsulation" with a real language.
     
    > JPlates doesn't provide a different syntax for Java. It is defined using a tag-based syntax for the methods that perform template processing, since that's its focus. The syntax is sometimes awkward for methods that don't do any template processing, but they typically make up a small percentage of most real JPlates classes.

    It isn't apparent in the official JPlates examples.
     
    > If you look at the <# Template #> part of the StandardPage example, it's easier to understand why JPlates statements have delimiters.

    JSP scriptlets have a lot less delimiters.

    > Oh, and JPlates does a macro-like facility, referred to as JPlates custom tags. I think it's pretty powerful.

    I don't find the documentation on the JPlates site.
  8. From examples:

    <# Initialize() #>
          <# Call super.initialize(new SampleHeadPart(this),
                                   new SamplePageHeader(),
                                   new SamplePageNav(),
                                   new SamplePageBody(),
                                   new SamplePageFooter()); #>

          <* configure the table border to 1, and width to 100%. *>
          <# Call mainTableAttrs.set("border", "1"); #>
          <# Call mainTableAttrs.set("width", "100%"); #>
    <# End Initialize #>


    Although I'm not an expert in Visual Basic it looks like VB.
    Since when VB is "...a fully object-oriented language..."? ;)
  9. Looks to me VB is much better than the example crap you have shown
  10. I'm sorry to see that there are so many junior programmers that see only the syntax of JPlates, and lack the good manners to hide their ignorance of the semantics.

    The power of JPlates comes from the combination of complete object-oriented programming with template-language features used to define methods. It is designed to empower the best object-oriented developers by providing the same kinds of programming features available for other kinds of applications. JPlates is no better than Java for developers that don't understand objects.

    For those of you that don't understand the benefits of object-oriented programming, or that don't understand the benefits and requirements of template languages, please visit http://www.jplates.com for more information.
  11. I'm sorry to see that there are so many junior programmers that see only the syntax of JPlates, and lack the good manners to hide their ignorance of the semantics.

    First of all I would be careful about calling anyone who responds to your posting a "junior programmer" without knowing who we are. Initial attacks on the syntax are to be expected because your idea of what a templating language is skewed. Additionally, you should be able to accept criticism without claiming that it is the ignorance of others which is the problem.

    The power of JPlates comes from the combination of complete object-oriented programming with template-language features used to define methods. It is designed to empower the best object-oriented developers by providing the same kinds of programming features available for other kinds of applications. JPlates is no better than Java for developers that don't understand objects.

    All you have done is provided an alternative syntax for Java. For what its worth if I want to have a version of Java which provides a way of runtime interpretation without requiring compiling then I use BeanShell. I then have the syntax of Java which I am familiar with along with the dynamic nature of a scripting language.

    For those of you that don't understand the benefits of object-oriented programming, or that don't understand the benefits and requirements of template languages, please visit http://www.jplates.com for more information.

    Your site reads like one big marketing spiel. There are many other sites which one can visit to understand the benefits of object-oriented programming or template languages.
  12. For what its worth if I want to have a version of Java which provides a way of runtime interpretation without requiring compiling then I use BeanShell. I then have the syntax of Java which I am familiar with along with the dynamic nature of a scripting language.

    Which begs the question: Why would someone choose a different language for scripting?
  13. Because each scripting language is different and sometimes a particular language will make more sense. If I happen to be the only developer working on something then I have no problems using BeanShell because it is essentially Java syntax (minus things like strong typing). However there are times when other developers are involved and they may be more comfortable with a language like Python or Ruby and thus I am happy to offer. There are also potential benefits from being able to use libraries from these other languages as well and most of the Java implementations of these other languages have access to at least some of the language's libraries. Finally there may be features from one language which are just not available in another (named parameters are one such example).
  14. so many junior programmers :)[ Go to top ]

    Hi Dan

    > I'm sorry to see that there are so many junior programmers

    Ha-ha-ha....

    In addition to mentioned by Anthony Eden (see msg.#87395), I've to mention the following:
     
    You dont accept the critics, don't you?
    And what makes you think - that person is junior programmer?

    Although I've received MS degree in Software Engineering a bit late than you, that fact does not mean - you're superior to me.

      
    Net time, please don't go personally, and concentrate on technical stuff, OK?


    Regards,

    Sergey Litsenko
    /senior software enginner/
  15. Net time -> next time

    enginner -> engineer

    Sergey
  16. Ugly Visual Basic in Java world[ Go to top ]

    Not to get off track, but ... It is more like VBS/VBA. I've done VB for almost ten years and never used 'Call'. ASPers and VBAers do all the time. So I guess this goes more to proving your point.
  17. Although I'm not an expert in Visual Basic it looks like VB.

    > Since when VB is "...a fully object-oriented language..."? ;)

    To do justice to Visual Basic, it would be as ugly as the Java in the example or any other reasonable language.
    Explicitly creating objects to specify template assembly and calling one long-named method for each HTML attribute is language-independent ugliness.
  18. Have you implemented more and better web application with this patent-pending standards-based object-oriented technology than junior develpers with free simple opensource tools ?
    How much it was easier and faster to learn than JSP, XSLT, or Velocity ?