Interview with Kai Tödter

„For me, browsers are the new Rich Client Platforms“

Kai Tödter

Elegant web applications can be built with AngularJS, Typescript and Spring Boot. The method will be explained during Kai Tödter’s workshop (Siemens) at the JAX conference; he will also dive into the eternal war between JavaScript and TypeScript and explain the way REST and HATEOAS work. He offered us a preview of what his workshop is all about.

JAXenter: Why do you use a combination of AngularJS, TypeScript and Spring for web applications? What’s so special about these technologies?

Kai Tödter: Spring, especially the combination between Spring Boot with Spring Data Rest and Spring HATEOAS, is very appropriate when it comes to  developing RESTful web services with very little boilerplate code. The Spring Stack provides a good part of the necessary infrastructure, which allows developers to focus solely on their work. I, myself, am a big fan of web technologies for “Rich Clients” that run in browser. For me, browsers are the new “Rich Client Platform”, especially as it’s very easy to support different form factors and devices. AngularJS is one of the many JavaScript application frameworks that can be used for that. A big community and the fact that AngularJS has found its way into the more conservative enterprise domain make it special. AngularJS 1 is already used productively and Angular 2 is just around the corner. I’ll explain Angular’s new concepts during my workshop.

JAXenter: Why TypeScript and not JavaScript?

Kai Tödter: In my opinion, JavaScript isn’t exceedingly qualified for big structured applications. In addition, modern web UIs, with their complex presentation logic, get even more ample. On one hand, TypeScript is very helpful because it provides much needed paradigms from OO fields, like classes, interfaces, generics, enums and annotations (renamed as TypeScript decorators); on the other hand, it provides an optional static type-system. Therefore, it’s now possible to offer good tooling support through IDEs. I’m a big TypeScript fan.

JAXenter: What is still/again a crucial point in the use of REST and RESTful web services?

Kai Tödter: Although most of the REST architecture constraints have prevailed, HATEOAS (Hypertext as the engine of application state) is not implemented in many APIs or is just poorly executed. REST clients can be created through hypermedia deployment and link relations on the server page -making them much less susceptible to URL structure changes of the server page. There are no official standards, but some specifications, like HAL (hypertext application language) or Siren, are a nice gain for several languages or platforms. Spring Data Rest supports HAL out of the box, which is just another reason for me to use it.

JAXenter: When do REST web applications also need HATEOAS?

Kai Tödter: To put it boldly: RESTful services with HATEOAS are quite like my favorite news aggregating sites. I always visit the same bookmarked URL and behind each news item there’s a link with worthwhile information. I don’t care if a link points to a server in the US today, and in Germany tomorrow. HATEOAS is needed if clients want their applications to do exactly that. The only URL a client needs is the root URL of APIs. Everything else is made up of links. The only anchor point is the name of the link relation, which should preferably remain unchanged while the underlying links are free to change.

JAXenter: What could make the development of web applications easier and better? What’s missing?

Kai Tödter: The IDE support for the full-stack developer is pretty good today, but could improve nonetheless. As a developer myself, I want to be able to set breakpoints in client TypeScript and server Java to really implement end-to-end debugging. It’s already possible with some IDEs, but there are just a few available. Nowadays, software developers are preoccupied with DevOps and are also interested in installation, deployment, continuous delivery and operation. Therefore I also hope for better IDE support for Docker and Cloud deployment. Some IDEs are quite innovative and deliver significant updates on a weekly basis, but others are lagging pretty far behind.

Kai Tödter
Kai Tödter is a Senior System Software Architect at Siemens Building Technologies. He has ca. 20 years Java-experience and represented Siemens at Java Community Process (JCP) and Eclipse Foundation. Kai is also a committer for some open-source projects and his current key subjects are web-technologies, microservices and hypermedia-APIs.

comments powered by Disqus