Skymarshall: Opensource heißt, jeder kann den Sourcecode einsehen, selbst weiternetwickeln... im Grund genommen tun und lassen was er will.
Kompilieren heißt Übersetzen einer Programmiersprache (die für den Menschen ist) in Maschinensprache (die logischerweise für die Maschine ist).
Und ja, für .NET musst du Unterstützung auf dem System haben, auf dem es laufen soll.
Nur der Teil mit dem "kannst du eine Sprache, kannst du alle Sprachen" stimmt nicht ganz. Es gibt im Grunde 3 große Programmierparadigmen:
1) Imperative Sprachen
1.1) prozedurale Programmierung, das sind Sprachen, die in Funktionen und Unterfunktionen gegliedert sind, sie gehören zu den imperativen Sprachen, also solchen, in denen man wirklich "Befehle" gibt. Beispiele: Pascal, C, Delphi
1.2) objektorientierte Sprachen, das sind Sprachen, die in Objekte gegliedert, also Daten und die dazugehörigen Methoden zum Zugriff, außerdem behandeln solche Sprache die Zusammenhänge zwischen ähnlichen Klassen (z.B. Ein Auto ist ein Fahrzeug, genauso wie ein Flugzeug ein Fahrzeug ist). Sie zählen ebenfalls zu den imperativen Sprachen. Beispiele: Java, C++, Smalltalk
1.3) Assemblersprachen, das sind Sprachen, die im Grunde nur eine Übersetzung von Maschinensprache in einen leichter zu tippenden "mnemonischen Code" übersetzen. In diesen Sprachen schreibt man quasi direkt in Maschinensprache, nur dass man andere Bezeichnungen für die Befehle benutzt wie der Compiler. Beispiele hierfür sind Assembler
2) Funktionale Sprachen. Das sind Sprachen, in denen man im Grunde genommen die Zusammenhänge zwischen einzelnen Teilproblemen beschreibt, eigentlich sehr nahe an der mathematischen Definition einer Funktion dran. Das wichtigste in dieser Sprache sind Funktionen. Beispiele hierfür sind ML, Haskell, Scheme, Lisp
3) Deklarative Sprachen. Das sind Sprachen in denen man das Problem genau genug beschreiben muss, damit der Computer eine Lösung dazu finden kann. Lässt sich schwer erklären. Ein Beispiel wäre Prolog.
Jetzt kann jeder der eine Sprache aus dem Bereich 1.1) kann, sehr schnell jede andere Sprache aus diesem Bereich lernen, weil es wie du richtig sagst das gleiche Prinzip in anderer Ausführung ist. Aber jemand, der nur Sprachen aus 1.1) kann, tut sich mit Sprachen aus 2) sehr schwer, weil er eine ganz neue Denkweise lernen muss, das gleiche gilt für Leute die von 1.1) auf z:B. 1.2) umsteigen, weil es dort ebenfalls andere Konzepte gibt, die erst neu gelernt werden müssen.
Kompilieren heißt Übersetzen einer Programmiersprache (die für den Menschen ist) in Maschinensprache (die logischerweise für die Maschine ist).
Und ja, für .NET musst du Unterstützung auf dem System haben, auf dem es laufen soll.
Nur der Teil mit dem "kannst du eine Sprache, kannst du alle Sprachen" stimmt nicht ganz. Es gibt im Grunde 3 große Programmierparadigmen:
1) Imperative Sprachen
1.1) prozedurale Programmierung, das sind Sprachen, die in Funktionen und Unterfunktionen gegliedert sind, sie gehören zu den imperativen Sprachen, also solchen, in denen man wirklich "Befehle" gibt. Beispiele: Pascal, C, Delphi
1.2) objektorientierte Sprachen, das sind Sprachen, die in Objekte gegliedert, also Daten und die dazugehörigen Methoden zum Zugriff, außerdem behandeln solche Sprache die Zusammenhänge zwischen ähnlichen Klassen (z.B. Ein Auto ist ein Fahrzeug, genauso wie ein Flugzeug ein Fahrzeug ist). Sie zählen ebenfalls zu den imperativen Sprachen. Beispiele: Java, C++, Smalltalk
1.3) Assemblersprachen, das sind Sprachen, die im Grunde nur eine Übersetzung von Maschinensprache in einen leichter zu tippenden "mnemonischen Code" übersetzen. In diesen Sprachen schreibt man quasi direkt in Maschinensprache, nur dass man andere Bezeichnungen für die Befehle benutzt wie der Compiler. Beispiele hierfür sind Assembler

2) Funktionale Sprachen. Das sind Sprachen, in denen man im Grunde genommen die Zusammenhänge zwischen einzelnen Teilproblemen beschreibt, eigentlich sehr nahe an der mathematischen Definition einer Funktion dran. Das wichtigste in dieser Sprache sind Funktionen. Beispiele hierfür sind ML, Haskell, Scheme, Lisp
3) Deklarative Sprachen. Das sind Sprachen in denen man das Problem genau genug beschreiben muss, damit der Computer eine Lösung dazu finden kann. Lässt sich schwer erklären. Ein Beispiel wäre Prolog.
Jetzt kann jeder der eine Sprache aus dem Bereich 1.1) kann, sehr schnell jede andere Sprache aus diesem Bereich lernen, weil es wie du richtig sagst das gleiche Prinzip in anderer Ausführung ist. Aber jemand, der nur Sprachen aus 1.1) kann, tut sich mit Sprachen aus 2) sehr schwer, weil er eine ganz neue Denkweise lernen muss, das gleiche gilt für Leute die von 1.1) auf z:B. 1.2) umsteigen, weil es dort ebenfalls andere Konzepte gibt, die erst neu gelernt werden müssen.
Kommentar