Wie finde ich heraus, in welcher Programmiersprache eine Anwendung geschrieben ist?

... komplette Frage anzeigen

3 Antworten

Du musst Reverse Engineering betreiben - bei Skriptsprachen wie Python, PHP, Ruby, etc. ist das sehr einfach - man braucht nur die Datei öffnen, die Skripte werden nicht kompiliert, sondern zur Laufzeit interpretiert (ausgeführt). 

Java, C, C++, Swift, Objective-C,... sind die Sprachen, die in den Maschinecode kompiliert und dann ausgeführt werden. Java macht etwas anderes, nämlich wird der Code in den Maschinencode, der im JVM (Java Virtual Machine) ausgeführt werden kann und weil JVM auf allen Plattformen gleich implementiert ist, ist binäre Javacode plattformunabhängig. 

Das in Java geschriebenes Programm sehr häufig mit .jar (das ist ein Container) und dort liegen die kompilierten Sources. Es gibt einige Decompiler Tools, mit dem Du zurück compilen kannst - ob es so gut funktioniert, kann ich nicht sagen, ich habe damit nicht beschäftigt. 

Die in C, C++, etc. geschriebene Programme kann man nicht so schnell erkennen - man braucht mehr Verständnis in die Maschinecode, um die typische Ausdrücke ableiten zu können. 

Für Windows Anwendungen wird meist C# oder C++ (Visual Studio) genommen. Für Android Java (Android Studio, JetBrain IntelliJ IDEA) - für iOS Objective-C oder Swift (Xcode). 

Und eine kleine Anmerkung noch:

 *.txt für Html ~> das stimmt nicht. *.txt steht für eine Textdatei, also ohne Struktur - einfach nur Text. HTML Dokumente enden meist  mit *.html oder (früher) *.htm.

Bestimmt weisst du das schon, aber trotzdem: HTML / HTML5 ist keine Programmiersprache - es ist nur ein Dokument so wie XML Dokument oder Word Dokument. Mit dem HTML kannst du die Dokument mit einem Struktur aufbauen. Die HTML Datei wird vom Webbrowser interpretiert und dargestellt. HTML kann JavaScript beinhaltet und das ist eine Skriptsprache, die von Webbrowser JavaScript Engine ausgeführt wird. 

Welche Editoren zu welchen Sprachen:

Es steht jedem frei, welches Editor man dafür nimmt. Man braucht einen Interpreter und eventuell einen Compiler dazu. Manche nehmen gerne einfaches schlankes Editor - ohne die ganze Komplexität eines IDEs mitschleppen zu müssen. Ein schlankes Editor nehme ich sehr gerne, um kleinere Skripte zu schreiben - es geht schnell. Programm öffnen, neue Datei und dann loslegen. Ich mache das gern mit vim oder halt Sublime Text bzw. Atom. 

Wenn es um grössere Projekte geht, dann nehme ich schon ein IDE. 

Für Java/Scala: IntelliJ IDEA (Ultimative)

Für Python: vim / Sublime Text (mit netten Plugins für Pythonentwicklung z.B. API, Syntaxvalidierung, etc...)

Für PHP: PHPStorm / Zend Studio

C/C++: Je nach Plattform (Visual Studio, Xcode oder halt vim / Editor) man muss dann selbst Compiler bzw. Linker konfigurieren und ausführen. 

Swift: Xcode

Und wenn man Grundverständnis vom Programmieren hat, dann fällt einem leichter, auf andere Sprachen zu wechseln. Man muss Grundlagen verstehen, z.b. was ist objektorientierte Programmierung, funktionale Programmierung (was die Idee dahinter ist), etc. diverse Entwurfmuster sollte man kennen - jede Platform hat eigenes API und dafür muss man Zeit nehmen, das ganze API näher kennenzulernen - mit einem Projekt lernt man es am besten und dadurch kriegt man die Expertise. Einfach so auswendig lernen, hilft kaum. 

Viel Glück!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Starjuice
29.07.2016, 10:04

Vielen Dank für die ausführliche Antwort, das werd ich mir erst mal auf der zunge zergehen lassen und einige Begrifflichkeiten näher anschauen ;)

0

Um das herauszufinden, musst du die Dateien auseinander nehmen.

Wenn du z.B. eine Android Datei anguckst. Das ist ja eine .apk

Das apk ist aber noch nicht die Programmiersprache, sondern nur die Aplikation, also die App. Die Programmiersprache dahinter kann alles mögliche sein, Java, C etc.

Um das herauszufinden muss man die .apk mit nem Programm, z.B. WinRar öffnen und einen genaueren Blick reinwerfen.

Die Dateien dort können dann ausschlaggeben sein, welche Programmiersprache genutzt wurde.

Bei anderen Geräten ist das ähnlich.

Allerdings ist bei Minecraft ja z.B. die Datein .jar und .java , da ist das relativ einfach rauszufinden womit das gemacht wurde ;)

Antwort bewerten Vielen Dank für Deine Bewertung

Wenn der Quellcode vorliegt erkennt man das oft an den Endungen: .c .cpp .py .java .js usw.

Oder ein Blick in die Doku, da steht wie man es kompiliert - und da steht oft auch die Compiler-Aufrufe und Version drin.

Bei den IDEs bin ich bei Jetbrains und seiner Familie gelandet (ok, kostet Geld sind aber gut). Alternativ: eclipse (an ide for everything and nothing in particular).

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Starjuice
29.07.2016, 08:17

Hey, ja Eclipse hatte ich mal kurz getestet wegen Java und für welche Programmiersprache benutzt man Jetbrains?

0

Was möchtest Du wissen?