Very good Inspection on Ajax!

source: http://www.fridrik.it/blog/echo2-javajournal-interview-translated/

Echo2: JavaJournal interview, translated

As I’ve promised, here is the translation of my interview by JavaJournal, the italian java magazine.

Hope you’ll enjoy it.

  1. Hello Federico, would you like to introduce yourself to JJ readers?
    I’m a posse about information technology and I’ve managed to port the passion to a job. I’ve been working as a programmer since 6 years ago, 1 year and a half coding with java.
    I’ve done things like airline ticket booking, questionnaire management and gps vehicle tracking.I’m currently working with Concept, a promising Italian company, and the next month I’ll go back to Turin, my birth city, where I’m planning to start a new chapter.
  2. What do you think about the emphasis given to Ajax?
    The buzzword “Ajax” is due to a set of terrific components and applications that suddenly have made the browsers doing things never seen before. Since GMail and Google Suggest, the buzzword is in the mouths of half of the IT world.Too bad many developers are missing the point about Ajax, that is, per se, just a way to communicate with a remote server or service: all the cool components and effects are a matter of DOM and CSS manipulation. Once you understand the reality of things, you also see a lot of troubles, particularly regarding the DOM and JavaScript.So it is necessary, since a certain difficulty level, to switch to a tool that will take care of such troubles, relieving the developer of them. A couple of nice tools are GWT, Openlaszlo, ZK and Echo.
  3. How do you compare it to other solutions such as java applets (that seems to discover a new birth) or flash with Openlaszlo or Flex?
    All these solutions produce the same final result: Rich Internet Applications, client-server applications with minimal requirements on the client computer and with characteristics of reactivity, behavior and interaction much more similar to desktop applications than to web ones.
    So you need to evaluate the importance of the following three aspects:
    • the configuration of the client computers that will host your application
    • the architecture each solution bounds you to
    • the current knowledge of your dev team
  4. What’s your favorite Ajax framework?
    Echo2, to me and to my team, has given the best answers to the questions that the three aspects above have arisen.
  5. What do you like the most about Echo2 compared to other solutions such as Google Web Toolkit?
    The only real difference between GWT and Echo2 is architectural: GWT is client-side, while Echo2 is server-side.With GWT, you implement your GUI using java, then you translate it to JavaScript with the GWT compiler and finally it is released to each client that connects to your server.
    That means releasing the GUI code to the client and interact with the server through RPC.Echo2 runs on your server: the client receives the DOM updates therefore updating the GUI appearance.
    That means maintaining the application state on the server (session) and be bound to a servlet container (and therefore java).

    A server-side solution obliges you to keep an eye open on memory consumption but it also gives you a security layer for free, due to the session. Echo2 adds to that a synchronization mechanism that, given a valid session, does not allow you to “press a button” currently invisible to that user. With client-side solutions you need to code such checks manually.

    Finally, Echo2 implements a Swing-like API that can flat down the learning curve.

  6. Is it really like coding with Swing? Can a complex Swing application be mapped to Echo2?
    It is very similar but the API is a subset of the original Swing one. It is like a port of the Swing API, adapted to the web context.
    We’ll find classes with (almost) the same names and (almost) the same interfaces but we’ll miss some fundamentals elements such as the LayoutManager, as Echo2 does not implement it (you’ll code like using the FlowLayout).Therefore it would be difficult to map a Swing application to Echo2: Swing is just too rich.
  7. Is it possible to do the contrary: starting from an Echo2 application, transform it to a standalone client, eventually launching it with WebStart?
    Theoretically, yes. Echo2 starts with this very idea: to keep the widgets jar uncoupled from the jar that contains the info to render them.
    It shouldn’t be hard to implement a mapping, although, as far as I know, there isn’t yet a project with such aim.
  8. Echo2 is open source but there’s a commercial editor for rapid application development. Have you tried it? What do you think?
    EchoStudio is an Eclipse plugin and it wants to help the developer composing the GUI. It is useful for fast GUI prototyping and when you to work together with a GUI designer. Personally, I prefer to write the code.
  9. How is the community? Is it big and active?
    Ouch, this question hurts! Unfortunately Nextapp (Echo creators and maintainers) has set up just a forum to let users and developers keep in touch. I would have left the forum to the newbies and have created a mailing list for developers and contributors along with a bugzilla, to let everyone follow the course of bugs and contributed patches.Between the community, the discontent is arising and probably, on the half of January, some users will set up a project that will have the aim of supporting advanced users and, following the original code base while applying contributed patches, release an experimental version of Echo2, in order to push Nextapp to add the requested features to their code base.
  10. I’ve showed the Echo2 demo to one of my customers, and he said: “Ezio: am I wrong, or the demo you showed me is a bit slow?” What will you answer?
    If that demo was the one of the Nextapp site, yes IT IS slow! It is due mainly to the number of images they have loaded (even if that results in a really eye-candy widgets tour) and to the load the server has to handle for each user.As said, Echo2 stores the application state at the session level. Every user will have its place in the server memory.
    That leads me to suggest to avoid using Echo2 on public applications, for a simple reason: it is difficult to know how many users will use it. If you’ll be linked by Slashdot or Punto-Informatico you’ll probably see your server going down.
    The ideal use of Echo2, for what I’ve said before, particularly regarding security, is for creating backoffices: even if you plan to have tens of thousands of users, you have numbers, so you can react accordingly, avoiding any danger.
  11. How invasive is Echo2? Can it be measured and someway managed?
    A “Hello World” with Echo2 takes about 8k for each user. This is the initial cost, the overhead.
    As long as you add components to your GUI, memory consumptions grows progressively but the growing is slower.Anyway you also have to add the cost of the data the components are containing: if it is true that, for example, the table component will be stored at the session level, the data it is displaying will go to the session too.To have a measure of it, you can serialize the session on a file and check its size.

    As far as I’ve seen till now, an average complex application takes about 30 Kb for each user.

  12. Talking about productivity, how is developing with Echo2?
    I’ve been working with Echo2 for 5 months and I’ve created a couple of support classes to speed the development up: therefore, creating a plain CRUD interface, takes me something like 10 minutes.In the daily activity, writing the code by hand, without an RAD like EchoStudio, obliges you to reload the webapp context at every modification. EchoStudio, that eliminates such issue, actually does the same, by programmatically reloading an embedded version of Jetty.So, at the productivity level, developing with Echo2 is much like developing JSPs, with the great advantage of being able to test our views (the “v” in MVC) and to inherit from our previously created ones.

    Together with the quality of the final result, Echo2 is a tasty solution, surely worth an evaluation.

你可能感兴趣的:(Ajax,swing,Flex,zk,gwt)