Skip to content

Latest commit

 

History

History
91 lines (47 loc) · 11.4 KB

File metadata and controls

91 lines (47 loc) · 11.4 KB

Metadaten

Verglichene Sprachen: Java, Kotlin Seniorität: Senior Domäne: Android Applikationen

Transkript

I: So you are working as a software developer?

B: Yes iam a senior software engineer for **** and working on the android projects here.

I: Which programming languages were you using in the past for a longer term and regularly.

B: I started of with java, then i used C# for a little while, then i moved to web so javascript an PHP, then i returned back to Java and nowiam Working with Kotlin and Dart.

I: SO you just recently started using Dart?

B: Yes.

I: The Idea of the next questions is to compare to languages to each other. Which languages would you thing would be an interesting pair to compare it to each other.

B: I Think Java and Kotlin

I: Ok that works for me. Which one do you use more right now.

B: Its mostly kotlin. I still ocasionally have to use java but its not as much.

I: And which one would you say is your prefered Language of those two

B: Kotlin, definitetly by a very wide margin

I: And what are the reasons for that.

B: I Kind of feel that kotlin is more expressiv. It allowes you to solve more compley problems in a simpler fashion. And i think as well that i started really enjoy coding again when i was writing in koltin. And as a software engineer you have to try to enjoy the work you are doing so java became just a tool. it became a little bit boring. Where as koltin because its undergoing constant devolopment it was quite exciting and quie curious because new thing were coming out at all time. And that wasn't just me. its the community as well with the ongoing adoption of kotlin. And People coming up with new ideas and paradigms and architecture so its just a much more exciting field.

I: Is it interesting to discover these new features and find more elegant ways to solve a problem or is it just so that the new features wokr better then the old ones.

B: I would say both acutally. To try and archive the same solution using java would be much more complex and you would have to use a lot more code. And all of it would be boilerplate. And you wouldn't necessarly even think about doing that, or wouldn't even necessarly think about trying to archiev it that way to you would end up with a lot of convoluted confusing code that would be very quickly made redundant. Where as with kotlin a lot the complexity is abstraced away so you are sort of working with a litte bit more high level code and its much more functional and its much easiert to read and write

I: But isn't that sometimes you are working on a high abstract level and something doesn't work that you still need to understand what happens behind the curtain.

B: Yes thats true but in the realtionship with java and kotlin with kotlin for android it still compiles to JVM so in essence its an abstraction of Java Code so coming from a java backgorund you can understand what kotlin is doing. And when something is a bit more tricky or difficult or when you are trying to chase down a bug something like this then yes absolutly it does make a lot of sense and it does become helpful to understand what it is doing behind the curtain as you say. But the Benefit come more from not having to repeat yourself.

I: When you compare the Standartlibrary from kotlin and Java do you have there some kind of a difference.

B: (überlegt) i think the standarlibrarys from java, or i wouldn't n call them standartlibrary i would consider them more framework. they seem very conservative and whilst they are progressing its very kind of slow pace. we are not as lucky with android because we don't have the latest version of Java but there are a lot of things that take quite some time to become available in Java. And with Kotlin it feels much more progressiv because it think thats more because the JetBrains Team are workong actively on the codebase. So with the release frequency as well there are new versions of the librarys, new versions of the actual core programing language itself coming out quite regularly, it feels much more of an active language.

I: You use the terms progressiv and conservative quite often, how would you define that in the aspect of programming languages? ...

B: I think conservative would be apprehensive i guess, or just kind of beeing cautious about introducing new features and really making sure that there is a very high demand for that feature before its even considered to be introduced and taking a long time to make sure its battletested and betatested. Because, well obviosly Java is used by a lot of corporate frameworks and all over the banking sectore as well so it sort of has to be really robust in that respect, so i understand it and then i guess progressiv is where its much more involved with the community and with open source development so you can go from ideology or the ideation of a concept to becoming available in alpha or prerelease in a matter of month and that seems really active and really progressive, we are just moving very quickly.

I: You just talked about the community and the culture of the community, how would you compare those to each other from java and from kotlin.

B: I think think java is quite established as a platform and the people sort of use it day to day are generally working on large code bases. this is more a generalization so that doesn't speak for all people. so they are working on large code bases and doing it for a very long time and obviosly quite expierienced but maybe aren't as involved in community events like meetups and events.There are of course still conferences that involve java. But its less of a niche, or less of a exciting topic so its not excactly the same were as something like kotlin were its more exciting and vibrant and you get a lot of android developers and a lot of very , i dont want to say opinionated but i mean very passionate developers who are very keen to adopt the leading technologys, who want to try out new things, who then go to champion these features and become advocates for them in a community, so it seem that there is more involvement in the community.

I: When we are now talking about solving problems, have you ever had the situation where you couldn't solve a problem in one languages where you would knew excactly how to solve it in the other one?

B: (überlegt) I think not so much. Because it would still be possible in one or the other it would just be very difficult but thats more by design of these two langauges in particular. So it might be the case if a think of something in dart and i want to use it in kotlin i wouldn't be able to do the same. But with Java and Kotlin beeing backwards compatible and interoperable the idea is that any concept can be translated in either language. But there are certain times where i would want to do something in Java or Kotlin to just achieve the same effects i would have to work trough a lot of code. And it basically makes that requirement non feasable because it would take to much time and effort and testing [...]

I: How would you compare the webtechnologies with kotlin and Java.

B: i think they are not very easiliy comparable, because those are fundamentally so different in weather they operate, i mean the endresult is similar. You have things like react native and ionic which allows you to use web technologies to build a native applications. The endresult is the same. But actually the way of getting there is totally different because you rely upon the framework to actually do a lot of the heavy lifting for you so the main purpose or benefit for doing something like that is to allow people to reuse the same skillset they have for the web in the context of mobile. That is exactly what makes them incomparable because if it was easy enough for a web developer to just apply there skillset to something on mobile, i mean you can still migrate some skills but because the languages are so different, this is why the things exist. Like react native and ionic. (...)But there are frameworks like javascript which are loosely typed and they are much more flexibel in that environment and you can do a lot more strange things and you can target different platforms in that way. I doesn't have a lot of the same type safety and a lot of the same kind of suggestiv architectural patterns as java or kotlin for android does. The nice thing about kotlin is that it sort of gently encourages you to use clean code and clean architecture just by the nature of its design where as javascript is so flexibel and you can build anything you want in it really.

I: Ok and that effects the user expierience of using this languages heavily? Or is it just that you have to get used to it?

B: So my personal opinion here is that it does effect them quite heavily because the current technologie that is available is limited by hardware. It is not a limitation in the way the software runs or the way that people write programming languages because generally you can write one and have the same effect. but (...)

I: How do you think Dart and the Flutter Framwork is changing that.

B: (...)

I: Do you think you can compare the feeling of using kotlin and using dart as both have that new ways of doing things and that makes it interessting

B: I Think in both plattforms you can really feel how the authors intendet it to be used and the mindset of the authors because in writing kotlin you can really be quite expressiv and you can write code that it becomes really enjoyable and almost beautiful to write and it solves a lot of architectural problems where as flutter is much more UI focues so the language itself feels much more efficient not in a abstraction of concern in the same way that kotlin is efficiently where kotlin can do a lot of things for you dart is efficient in a way that it does only what it needs to. Its very kind of barebones in a way. So you are focussing only on the Design.

I:But when you compare the community or the culture. do you see similarities about that what we talked before. To discover new things and discover new ways of solving problems.

B:(überlegt) I think yes in some way, but not in a coding aspect because the coding aspect is "oh i found a new way to store preferences" "i found a new way to abstract a repository" where as flutter would be " i found a new way appliy this animation" " i found new way to import UI resources" or this dependencie is reusable here or there. Like i said its much more focused on the visual aspect. rather then the coding aspect

I: Did you ever choose a job because of the programming languages used there? Does it have a big impact on you choosing jobs which programming languages are used there

B: Very much so. i would never consider that wasn't involved with kotlin because i actually enjoy it so much and i feel thats something i need to have to get that enjoyment out of my work. So its very importend that the techstack is used. But i also would be flexibel if the company had said we are using this this and this and would think ok, "as long as those are not outdated technologies. "But i think that decision is very personal and probably that answer only applies to me.

I: So it matters to you that the technologie you are using is bleeding edge or really new?

B: Yes because i feel like i always need to be learning somethin new. I felt like i have to be on the forefront of technologie. So i would be very uncomfortable to use a technology that i think is dated or deprecated so to me thats quite important