Hallo,<p>
Hagen hat Recht. Da C# nichts anderes als Java unter Microsofts Deckmäntelchen ist und absolut fast nichts neues enthält, was nicht Java auch schon hätte, verhält es sich in dieser Beziehung vermutlich genauso.<p>
Während eines Java-Kurses im Januar diesen Jahres hat sich ein Kollege kurz mal einen der vielen zum Download bereit stehenden Java-Decompiler heruntergeladen und ihn auf unsere und andere in Java Bytecode vorliegende Dateien losgelassen. Das Ergebnis war verblüffend. Es fehlen zwar die Kommentare und die lokalen Variablen werden nach einem Schema durchnummeriert, aber ansonsten wunderbarer Quellcode, der sofort mit dem Compiler erneut fehlerlos übersetzt werden konnte.<p>
Solange man eine Server-Applikation hat und die Clients lediglich kleine Java-Applets zu sehen bekommen, ist das alles kein Problem. Aber ich würde nicht gerne eine komplette Applikation in Java oder C# ausliefern wollen.<p>
Natürlich gibt es auch ein Mittelchen dagegen, das diese Schwäche etwas mildert. Beim Entwickeln werden wir Programmierer immer angehalten sprechende Klassen- und Methodennamen zu verwenden. Das ist in diesem Fall natürlich eher schlecht. Damit man diese löbliche Gewohnheit nicht aufgeben muß, gibt es sogenannte "Scrambler bzw. Obfuscatoren", die vor der Auslieferung aus den schönen sprechenden Namen wirre Bezeichnungen machen, so daß nun im decompilierten Quellcode sich der Sinn nicht mehr so leicht erschließen lassen soll.<p>
So hat eben jede Technologie auch ihre Schattenseiten.<p>
Gruß<p>
Wolfgang Rolle
Hagen hat Recht. Da C# nichts anderes als Java unter Microsofts Deckmäntelchen ist und absolut fast nichts neues enthält, was nicht Java auch schon hätte, verhält es sich in dieser Beziehung vermutlich genauso.<p>
Während eines Java-Kurses im Januar diesen Jahres hat sich ein Kollege kurz mal einen der vielen zum Download bereit stehenden Java-Decompiler heruntergeladen und ihn auf unsere und andere in Java Bytecode vorliegende Dateien losgelassen. Das Ergebnis war verblüffend. Es fehlen zwar die Kommentare und die lokalen Variablen werden nach einem Schema durchnummeriert, aber ansonsten wunderbarer Quellcode, der sofort mit dem Compiler erneut fehlerlos übersetzt werden konnte.<p>
Solange man eine Server-Applikation hat und die Clients lediglich kleine Java-Applets zu sehen bekommen, ist das alles kein Problem. Aber ich würde nicht gerne eine komplette Applikation in Java oder C# ausliefern wollen.<p>
Natürlich gibt es auch ein Mittelchen dagegen, das diese Schwäche etwas mildert. Beim Entwickeln werden wir Programmierer immer angehalten sprechende Klassen- und Methodennamen zu verwenden. Das ist in diesem Fall natürlich eher schlecht. Damit man diese löbliche Gewohnheit nicht aufgeben muß, gibt es sogenannte "Scrambler bzw. Obfuscatoren", die vor der Auslieferung aus den schönen sprechenden Namen wirre Bezeichnungen machen, so daß nun im decompilierten Quellcode sich der Sinn nicht mehr so leicht erschließen lassen soll.<p>
So hat eben jede Technologie auch ihre Schattenseiten.<p>
Gruß<p>
Wolfgang Rolle
Comment