Verglichene Sprachen: Java, Dart Seniorität: Senior Domäne: Android Applikationen
Hinweis: Ab der zweiten Hälfte des Interviews hat die Aufzeichnung der Stimme des Interviewers nichtmehr funktioniert. die Fragen wurden soweit es ging aus dem Gedächtniss und den gegeben Antworten rekonstruiert
I: Which Programing Languages are you using right now?
B: So going back chronologically , Currently iam mostly using Dart within Flutter and also using Kotlin in the Android part and also using some Java also in some older Android part. It also depends on how you define programming languages. Do you think HTMl is a programming Language.
I: I would say thats more markup Language.
B: Ok so those are the current. Of course some groovey because its needed for Android. So iam going back. So Groovy also vor CI. Now iam going back to my previous jobs. Qt so together with C++. Also i did some Javascript with WinJS under Windows. Then Symbian Software with C++. Yes thats all what i did professionally.
I: So the idea is now to pick two of those languages. It would be interessting to compare Kotlin and Dart to each other because there are both "new"and both modern. So wich one of those two would you prefere or maybe even consider it you favorite language.
B: Kotlin. Definetly Kotlin
I: And could elaborate that a little be more. So what are the reasons for that.
B: (überlegt) Kotlin seems like a bit more mature language. Meening it has much more tooling inside of it. So beginning with extension functions. which is think the biggest benefit of the language itself compared to Dart. Because things like better collections are part of additionall tooling, additional framework. Its not the language itself.
I: Yes but it still effects the way you are using the language, right?
B: Yes, So the biggest things are extension functions, proper collection handling. I dont have that much more classes for it. For Dart for example i dont like it as much as Kotlin because it seems to be stillt quite and early language, really crude, except for lets say different ways of making asyncronous calls wich is the "async await" which i prefer over any mechanism that kotlin has. Which is basically doesn't have any mechanism except for coroutines which i don't consider mature.
I: So its more like that when you are using dart you are feeling that the language is in an early stage and not that well developed as kotlin is right now?
B: I wouldn't say thats an early stage but its not as utilitarian as kotlin is. Kotlin hast much more tooling around it and even within it.
I: So the standart library is more complete and ecosystem is more usable. Is it those two factors?
B: Yes, but ecosystem more usable is quite vague. How can i say it. Of course i can in both languages do the same thing. Kotlin can exactly do the same thing as Java, but you can to the same things but which much less code. This is usally why i like languages where you don't have to care about language specific stuff. Play around i don't know in old C++ with 16 types of String. I don't care. I need to write my logic and under the hood the things should be solved by the language they should be solved be the actual creators of the language. They shouldn't offload the decision on to me.
I: Ok but isn't i like that, abstracting all the things away makes it hard to figure out why something doesn't work if it doesn't work.
B: Might be, thats true. The problem sometimes is that if you learn a language like kotlin. If you know a bit bytecode,then you can figure out how that weird thing works. (...)
I: (unverständlich)
B: Actually i did not have any problems with dart what it does underneath. Because it doesn't really do a lot underneath. A Lot of time in needed to see what actually bytcode kotlin genereates compared to Java. because actually i wanted to compare those and why this one behaved differently. But in Dart i dont' have any comparison and because its so simple and it behaved in a just normal way. But i didn't look at the assembler because i did't have yet the need for that.
I: (unverständlich)
B: (überlegt) Depends. Because in the beginning i dind't have that much experience with async_await. I was playing in C# with it but never in production code. So you need a bit of getting into dart to unterstand how async_await works and whats async with a star etc... In the beginning i had some problems but as soon as you get the switch on how it works and learn it, i din't have any problems and it was rather predictable
I: Have you ever had a problem where you would know how to solve it in one language but didn't know how it would work in the other one
B: I din't really have those problems. The benefit from going from java to kotlin that you still can use the things that you remeber from java within kotlin. They are the same languages. Its for me just a different framework. Otherwise going from Kotlin of Java to Dart The language are mostly very similar. The designers of next languages base on the previous languages usually. and they did similar here. So if i want to go to check how reversing works . So i google, ok in Dart its that. So Most of the paradigms are exactly the same in Java, Kotlin and Dart. And there need to be no magic in Dart. Ok except the mirror package, which is the reflection might be working differntly, but iam not using it because its not allowed in Flutter.
I:
B: SO it wasn't a problem to jump from Kotlin because its the same class of languages. Its not like going to Clojure or Haskell, which provides lots of issues for somebody who never did it. If its the same class of languages its just a different toolkit, ... different Hammer.
I: What would you say are the different classes of languages
B: Ah for me (überlegt) ok iam now making it up as i go. Imperativ Languages, functional languages and all other weird shit, like brainfuck
I: How would you describe the community/culture of the languages comapred to each other
B: Koltin seems to have more fanboys, Much much much more, everybody that i know and that i convinced to play with flutter, because before the did'nt ever dart. They say,"i wished that google choose kotlin instead of dart" etc etc. everybody, every single person So i see that people using dart out of a necessity because you can do that rather then "its a nice language i want to use it" That only thing that works with both, just in time and a head of time compilation and even there was this guy at the meetup we both attendet who wrote this articel about flutter and kotlin native on the logic side. And first stuff he looses is hot reload so of course he can play with his favorite language but he then looses all the things that are really meaningful for the way of creating flutter apps. So i noticed people want to shoot themselfe in the foot just to come back to kotlin.
I: So you say that its more importend that the language itself is comfortable to use then all the other things around it.
B: Exactly, its totally the right conclusion. Actually not because they have to because rather people shoudl stay... So in the beginnig people where jumping on the even unreleased kotlin version unsupported by google on android and risking quite a lot of things, stability of the application, support, tooling, compile time, they are loosing it because they where fed up with sticking to Java 1.6 or 1.7 for ages. They wanted something new.
I: Why do you think people that developers want to have the new stuf.
B: The people who want to have something new, because there are peopel and softwaredeveloper, not that much, who want to stay with old stuff and don't want to learn new stuff. But in our community of android developers in Berlin, most of them are young and they are still keen on learning new stuff, and thats amazing, and the problem with android was that you really didn't have the opportunity that much to learn new stuff. The language didn't change for so long, so people wanted, including me, a breeze of new fresh air
I: Ok lets come to another topic. Did you ever declined a job because of the programming language.
B: Yes, i declined jobs because of languages and i left jobs not just because of the language but it was one of the bigger things that i consider when i was considering staying of leaving
I: Would you leave your current job if you would have to change to another language
B: Yes, if i now would be forced go back to java, i wouldn't say that i quit the job but it would be a strong motivation for quitting a job
I: (unverständlich)