JHUG meetup February 28th 2018
The first JHUG meetup for 2018 was held at the premises of Advantage FSE. Ms Peggy Theodorou-Zoumi on behalf of Advantage FSE, welcomed the members of JHUG at their premises for yet another more time as they are fond supporters of our group and they too believe that people are the most important value in our industry.
After this warm welcome the organizers Thomas and Spyros took the word to motivate members to give talks for the forthcoming events. Since both of them are experienced engineers there was a clear separation of concerns in their calls and one asked for subjects while the other for speakers.
I want you to speak about subjects you don't know anything about but you find interesting and you are curious. Do some research, experiment a bit and come to give a talk. I am sure it will be very good.
Our community is growing and there are many new faces in each meetup. The best way to get to know each other is a lightning talk. Come up and tell us who you are, what you are working on, what you have to tell and what you want to hear. A lightning talk for 10 minutes on any topic is very easy to do and will help to evolve and grow the community even more.
There is a form to declare your interest in giving a talk and we urge you to submit a proposal. Remember that the most important thing for a talk in communities like ours it to create traction and empathy. The value of the talk is important but secondary.
And now the major part, the talks.
The first speaker was Antonis Lilis of Advantage FSE. He is a regular member of JHUG and has given us very interesting talks on mobile computing. For this meetup he chose to talk about
A short introduction to the Kotlin language for Java Developers
Kotlin is a language for the JVM developed by JetBrains. It was released as open source in 2012 and there was a major interest in it when Google announced it as a language for Android development in 2017.
The talk was targeted to programmers familiar with Java. Antonis presented in a concise, sweet and up to the point way the features of Kotlin that make it both attractive and productive. It is not an academic language or an experiment, it is designed for modern applications.
It runs on the JVM but it is not an extension or an upgrade to Java. Familiarity with Java helps a lot to reduce the learning curve but it is not a prerequisite.
Kotlin is a statically typed language that supports both object-oriented and functional paradigms. It has first class functions, type inference, some nice syntactic shortcuts like null check operators, safe casting, companion objects and many more structures that look natural in Kotlin but compared with Java they greatly reduce boilerplate code. Kotlin also supports composition instead of inheritance as the primary mechanism for extending classes and has data classes which in essence are value classes generated by the compiler. It has also a proposal for structure concurrency in coroutines which you can think of as very lightweight threads. The slides are very descriptive and you can start programming in Kotlin just be reading them.
It is supported by all major IDEs. The toolchain for it is quite stable and keeps improving as the language gains interest.
At the end Antonis answered questions about the stability and the future of the language.
In my opinion Kotlin is another language for the JVM like scala, groovy, clojure and it has to answer the same question: It certainly makes programs easier to write but are there any safeguards to preserve the readability? We have seen examples of scala and groovy where programs become completely unreadable because of feature abuse and not forget that one of the advantages of Java is that it has the same readability/writeability ratio. The advantage for Kotlin is that is has a very suitable environment for it as it is a first citizen language for Android and the characteristics of mobile apps favor such high level languages.
Kotlin is definitely a project to track and this talk by Antonis did a great job to promote it.
Pizza, Beers and Networking
This is one of the best parts of every meetup. A break during the two talks for pizza and beers kindly offered by our host Advantage FSE. There was a full round of networking to meet other JHUG members and talk about interesting debugging stories, production failures, upcoming technologies, vim vs emacs etc For this meetup the topic was Kotlin and how Java/Scala/Ruby/Awk does a better job 🙂
Istio - Service mesh
The second talk was delivered by Georgios Andrianakis of RedHat. He chose to present Istio a new and trending technology which most attendees were not acquainted with. The talk was intended for newcomers and it was also a tutorial for service meshes in general.
Georgios started describing microservices architectures and how their essence, that no matter how you design them they are a distributed system and underneath them there is an unreliable network, is the cause of most problems. He then presented and analyzed the major architectural challenges regarding distributed systems like resilience, fault tolerance, load balancing, canary deployments and discussed potential solutions. It seems there are two approaches:
The old one was to use state of the art code libraries like hystrix, zuul, zipkin and embed reliability in the application. That proved inadequate for medium to large installations as code maintenance costs became intolerable even for large organizations.
The modern approach is to develop a _platform_ in which you deploy your microservices and the platform takes care of all the architectural challenges and production issues. An important step towards that direction was Kubernetes which to oversimplify manages your cluster and provides a platform that handles discovery, invocation, elasticity and monitoring. Thaw was important but not enough. The next step is the *service mesh* which in Georgios words is
a decentralized, application networking infrastructure between your services that provides resilience, security, observability and routing control
Then he proceeded to present Istio, its architecture and a typical setup. To demonstrate the benefits he presented a setup with 2 services talking to each other and analyzed the whole request/response cycle between them and how Kubernetes and Istio combined _tame_ the network.
The slides are excellent and repay study. You can find them here.
That was an excellent talk and this what JHUG is about. A good talk on a promising technology that inspires you to explore it and who knows maybe prepare a new talk for it for a next meetup (suggestion: do it!).