soot-oss / SootUp

A new version of Soot with a completely overhauled architecture
https://soot-oss.github.io/SootUp/
GNU Lesser General Public License v2.1
553 stars 65 forks source link

FutureSoot in Kotlin #52

Closed linghuiluo closed 5 years ago

linghuiluo commented 5 years ago

@ericbodden @bhermann @mbenz89 @anddann @swissiety Hi everyone,

our new WHB-student Christian just suggested that we should build future soot in kotlin, which is 100% java-compatible, with simpler syntax and easier to be maintained than java. Here are studies he found about better code quality with kotlin https://dl.acm.org/citation.cfm?id=3267186 https://arxiv.org/abs/1808.00025

What do you think?

ericbodden commented 5 years ago

Interesting idea. I think that’s something we can and should discuss in the next meeting :-)

Cheers Eric

On 17. Oct 2018, at 15:10, Linghui Luo notifications@github.com wrote:

@ericbodden @bhermann @mbenz89 @anddann @swissiety Hi everyone,

our new WHB-student Christian just suggested that we should build future soot in kotlin, which is 100% java-compatible, with simpler syntax and easier to be maintained than java. Here are studies he found about better code quality with kotlin https://dl.acm.org/citation.cfm?id=3267186 https://arxiv.org/abs/1808.00025

What do you think?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

bhermann commented 5 years ago

Indeed we should... I thought we finalized the implementation language discussion already. Although I like Kotlin, there are indeed some very valid arguments against using it in SootReloaded. (Also against Scala btw)

mbenz89 commented 5 years ago

Hi.

I actually already employed Kotlin in parts of the Testify project. Its easy to mix with Java as well. However, I felt that my productivity and coding style suffered by quite a lot by using Kotlin due to not being used to the „simple“ syntax and the different standard Library. Also, writing code in a language we are uneducated in, might also lead to additional refactoring effort at the point were we realize, we used it in an „unorthodox“ way when we were new to in. Furthermore, I think we can expect our user base to be probably more used to Java than Kotlin and, therefore, even if they are 100% compatible, having Soot implemented in Kotlin would rise the difficulty for users to actually understand how Soot works also quite significant.

On the other hand, Kotlin seems to be a nice language and might allow us to do some nice things here and there which are much more inconvenient in Java.

So, generally, I’m not opposed to it, but I would assume that it slows us down quite a bit before we really learned the language.

Best, Manuel

Am 17.10.2018 um 15:10 schrieb Linghui Luo notifications@github.com:

@ericbodden https://github.com/ericbodden @bhermann https://github.com/bhermann @mbenz89 https://github.com/mbenz89 @anddann https://github.com/anddann @swissiety https://github.com/swissiety Hi everyone,

our new WHB-student Christian just suggested that we should build future soot in kotlin, which is 100% java-compatible, with simpler syntax and easier to be maintained than java. Here are studies he found about better code quality with kotlin https://dl.acm.org/citation.cfm?id=3267186 https://dl.acm.org/citation.cfm?id=3267186 https://arxiv.org/abs/1808.00025 https://arxiv.org/abs/1808.00025 What do you think?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/secure-software-engineering/soot-reloaded/issues/52, or mute the thread https://github.com/notifications/unsubscribe-auth/AHUHCajjMSjODGkKsg4FQ3e_G3grA7JXks5ulyxfgaJpZM4Xj4Zb.

linghuiluo commented 5 years ago

I will invite Christian to our next FutureSoot meeting.

linghuiluo commented 5 years ago

I think Java has much better readability than kotlin. For soot clients, maybe they want to look into the code and try to understand. If they don't know about kotlin, it causes difficulties for them. However, i am open to kotlin and i think the null-safety of kotlin is for example a good point for maintenance. I don't program in kotlin and i think Christian will tell more about it and why he thinks it's good choice for future soot.

ericbodden commented 5 years ago

I wrote that we should discuss this in person because I wanted to avoid longish discussions here.

Cheers Eric

On 17. Oct 2018, at 16:03, Linghui Luo notifications@github.com wrote:

I think Java has much better readability than kotlin. For soot clients, maybe they want to look into the code and try to understand. If they don't know about kotlin, it causes difficulties for them. However, i am open to kotlin and i think the null-safety of kotlin is for example a good point for maintenance. I don't program in kotlin and i think Christian will tell more about it and why he thinks it's good choice for future soot.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.