Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is Kotlin harder to reverse engineer than java

I am deciding which one to use for an Android Studio project and I am willing to use Kotlin. If there is an advantage in terms of being harder to reverse engineer than java.

like image 668
user8062843 Avatar asked May 25 '17 04:05

user8062843


People also ask

Which is easier Kotlin or Java?

Java is fairly simple to handle and removing bugs from it becomes easier when compared to Kotlin. The standards of safety in Java are of higher quality than Kotlin.

Is Kotlin more powerful than Java?

Syntax is one of Kotlin's strongest advantages. As described earlier, Kotlin requires significantly fewer lines of code compared to what would be required in Java. This makes the code more readable and simpler, which generally also leads to the code being of better quality because bugs and errors are easier to find.

Is Kotlin slower than Java?

Java is a faster programming language than Kotlin. As one test revealed that Java has ~13% faster compilation speeds (with Gradle) than Kotlin (14.2 seconds vs 16.6 seconds) on average. However, the difference in speed is only for full builds.

Is Kotlin better than Java for Web development?

Kotlin application development is faster to compile and prevents apps from increasing size. Code written in Kotlin is smaller compared to Java, which means fewer bugs. Kotlin includes coroutines and interoperability with Javascript for web development.


1 Answers

No. Kotlin doesn't have such intention. Unlike Scala or Groovy (and many other more magical JVM languages), Kotlin's bytecode structure isn't too much complicated, which means using kotlin has no advantage over plain Java when it comes to avoiding reverse engineering.

Anyway, you shouldn't pay attention to this unless your app contains something magical, e.g. a special method to skip some security constrains taking advantage of a certain android bug, a special code containing your private key (which is bad practice), etc..

This SO post on avoiding reverse engineering may interest you.


Off-topic: Scala is harder to reverse engineer because Scala is hard to understand. Its generated bytecode often has nothing in common with its source code. I once want to explain what's happening behind all those implicit and other, yet I just found a pile of mess. (you shouldn't use javap for understanding scala code, scala has other utilities) And groovy is because it's a dynamic language and it has a whole lot of magic in its bytecode form just to make it dynamic. I knew this because I went to discover how my gradle build script worked during the development of a gradle plugin. I did find the resulting class file but I can't even find where dependencies block is in its deassembled form.

like image 174
glee8e Avatar answered Oct 25 '22 10:10

glee8e