Vaadin – component based back-end friendly web framework

in #vaadin7 years ago

vaadin.png

I have been diving into software programming and engineering for more than ten years. I jumped from C/C++ in the University, to PHP for some small side projects to Java for most of the time – with professional experience. My designing skills where never good, but I have been involved in front-end development and I learned the technologies on that side of the wall – HTML, JavaScript, CSS. I also tried Java Applet programming, also a little bit of Flex ( Flash based Application Framework ). As browsers mature, so the JavaScript has become bigger and complex and the others 3rd party stuff are fading away.

Over the years I had several colleagues that hated JavaScript programming – because of the watman core of the language. Also it is interpreted language (the machines of the clients throw the same computation over and over again just to get started with the actual business logic. It has Dynamic Typing system (like old versions of PHP) and if the documentation of some library is poor, it is easy to shoot yourself in the foot. It is also theoretically open for the client to see and edit although some optimization and obfuscation may slow a hacker or intruder that seeks holes in the systems.

Today exist many technologies that bring type safety, object oriented methodologies and design patterns to the Front-End and the Back-End developers have the opportunity to fight their own technical mindset limitations, and spread to more areas of programming. Today also exist several technologies that hide the need to learn all these technologies and paradigms all together. One of them is Vaadin. Here are some pros and cons:

  • With Vaadin Framework you could write entire web applications without writing a single line of HTML, CSS or Javascript.

  • It is Java Component framework. You could use object oriented features - state and functional encapsulation, inheritance and design patterns for writing less code – code reuse and optimization.

  • A marketplace exists with a lot of ready Vaadin components and Vaadin ports of other frameworks and technologies https://vaadin.com/directory.

– For some more specific stuff that the framework doesn’t provide ready solution, you’ll need to dive deep – how the hiding of the web protocols is done and implement it on your own.

  • and – It is server based. Depending on the target area this can be a feature or disadvantage. For applications in the security area – it is good idea that the server controls everything. In the normal / build-in / case, every state change is handled to the server. In some other cases this can hurt performance or user experience – where the client should make some changes and submits them in bulk. For this business case you could use the technology beneath Vaadin (Google Web Toolkit). I’ll write about it some other time.

+/ – It is a advantage that it is already User Interface technology that could “talk” to the others server-side layers and technologies without additional layers. In the same time, if you want to expose the data and use some other User Interface – like Mobile Application, export the data for use by other desktop or server-side clients – you’ll have to write additional Socket/HTTP/REST/or some other/ interfaces.