Davide Cerbo is Software Architect with EmmInformatica, and he has a strong knowledge about Java development. We asked him what he thinks about Kotlin, the main alternative to Java for Android mobile apps.
At the #AperiTech meetup you delivered the talk entitled “Kotlin, but why?”. What motivated you to speak about this specific topic?
Basically because Kotlin language has brought tons of new concepts and features. Kotlin runs on a Java Virtual Machine and has all the advantages of a modern programming language compared to Java, which is now already 20 years old. I’m used to developing on the Java Virtual Machine, it’s an environment that I know very well and I really like it.
I think Kotlin will also be good for web development as it made developing Android apps far more enjoyable, especially after the official adoption of the language by Google.
There are still some problems and challenges we can encounter while adopting Kotlin on the web, as it’s not the native language of the Java Virtual Machine. Furthermore, it’s not the only modern programming language that aims to create a new JVM environment, such as Scala or Groovy. The weak point of Kotlin could be its strong link with Java because as a language created for JVM, it could cause integration problems for developers who use languages such as JavaScript.
In your opinion… Why is it useful to study the topic you dealt with during your talk?
I’ll talk about this topic again. In fact, I’ve already delivered a talk at Codemotion Milan 2018 all about Kotlin. I think it’s a very interesting topic because Java is a programming language that carries with it at least 20 years of constrained choices to guarantee a functioning backward compatibility. As a result, some innovations in software development have been introduced but in a forced manner, and it’s often difficult to use them correctly. Kotlin, on the other hand, by leaving out such imposed backward compatibility and being a language with a modern structure, has allowed the introduction of new paradigms in the proper way; for example, functional programming and reactive programming.
As a result, Android programmers can develop with a reactive paradigm in a simpler and more effective way, also with regards to UX, compared to what’s possible with Java. The same thing can also be said about the Java back-end side. On the front-end you can develop with Kotlin and have a final product in JavaScript, which was the topic of my talk at Codemotion.
Personally, I think it’s a good programming language for developing in the front-end, even if it causes some difficulties on the part of the front-ender, as it’s a typed language.
Thank you, Davide, for sharing with us your opinion – could you tell us a little bit about yourself?
I’ve been working as a developer in the IT industry for more or less 15 years. I’ve always been engaged with the tech communities from the very beginning; first I attended JUG Torino and JUG Roma meetups, then Java Day and Codemotion conferences.
I’ve recently changed the company I work for. My current role is Software Architect for EmmInformatica, which works in the field of optimisation of pharmaceutical distribution for a large American multinational. We develop software that deals with managing orders for pharmacies, and we’re based in Naples. I develop mainly in Java, back-end side and integrations; I have good front-end experience with React and Angular. Recently I got super interested in Kotlin. In fact, the talk that I delivered at one of the #AperiTech meetups and at the last Codemotion in Rome were precisely about Kotlin.
Could you tell us why you decided to become a developer?
I became passionate about the world of programming as a teenager. Since my father used to work on computers, I always had lots of computers at home, whole or disassembled. So it began like this… I started to develop on my own, and then I decided to turn my passion into work. Maybe when I’m older I’ll change my job but, for now, programming gives me lots of job satisfaction.
We both know that the technology changes fast, what do you do to stay current in tech?
To keep me updated I attend different meetups, I’m a member of the communities, and actually, I am the founder of the community called DevDay. Even though I’m a slow reader, I read many blogs and I often read different books as well, Even though I’m a slow reader.
I attend some online webinars but only when I have a lot of free time; given that I’m already in front of the computer at least 8 hours a day for work, it is not that appealing for me to do it in my free time. I try to attend more conferences, finding them a great way to learn and also to network with the others.
In your opinion what are the fundamental requirements to become a really good developer?
First and foremost, you need to have a great passion for this job. Without passion, it’s a rather unpleasant job, as you spend endless hours in front of the computer, and you’re often on your own. If you are not willing to learn something new or experiment, sometimes you can hardly find meaning in what you do. If you want to become a really good programmer, I would like to share with you one more tip: join the tech communities. For me, joining some of them was a turning point in my life, even on a professional level, because it allowed me to grow professionally much faster. Also networking and getting to know other developers who face the same difficulties as you do, gives you a “support network” and makes you more motivated at work.