Hallo carstencs,
zur Beruhigung ich hatte 14 oder 15 Punkte im Mathe LK Abi.
Respekt. 10...
Ich arbeite auf der Arbeit mit Visual Studio in der Vollausgabe und programmiere mit C#. Oder Powershell. Oder JavaScript. Oder Batchfiles. Oder - ächz - COBOL. Dann aber mit ISPF/PDF, der Alptraum aller Großrechnerentwickler.
Das .net Framework ist ein Teil von Windows, also kostenlos verfügbar, und als .net Core auch multiplattformfähig. Da hat sich in den letzten Jahren einiges bei Microsoft getan; so viel, dass manche schon behaupten, Microsoft würde als nächsten Schritt den Unterbau von Windows gegen Linux austauschen. Hmmm. Aber für Webseiten bei Billighostern ist PHP das Mittel der Wahl, weil es da kaum was anderes gibt.
Es hat eine Komponente, die CLR (common language runtime), die so ähnlich ist wie die JRE. Programme, die dafür geschrieben wurden, werden in einem Zwischencode übersetzt, beim Laden flugs in Maschinencode übersetzt und dann ausgeführt. Die Freiheit des Programmierers hat Grenzen, was dazu führt, dass ein für oder JRE geschriebenes Programm viel weniger Möglichkeiten hat, die Maschine zu crashen oder Speicherlecks zu entwickeln wie eins in C, C++ oder einer anderen echten Compilersprache. Microsoft nennt das "managed code". Dieser Code ist natürlich langsamer als maschinennaher Code mit C++, der ohne ständige Wachhunde auskommt. Aber es gibt auch eine Schnittstelle, mit der man zeitkritischen Code in C++ schreiben und einfach verwenden kann.
Bei Java kann ich nicht richtig mitreden, da weiß ich von SWING für den Desktop, und es gibt die JSP (Java Server Pages) für's Web. Es gibt auch JNI (java native invoke) für den Aufruf von Bibliotheken die nicht für die JRE sind.
Aber eins gibt's nicht: Eine Brücke zwischen .net und Java. Eine .net Assembly und ein JAR sind kaum zu koppeln. Weil sowohl CLR als auch JRE der Boss im Prozess sein wollen. Die meisten Versuche, CLR und JRE-Module zu koppeln, laufen auf Interprozess-Messaging mit IP-Sockets oder Named Pipes hinaus.
In .net gibt es außer der CLR die klassische Windows Forms Bibliothek und die Windows Presentation Foundation mit XAML für den Desktop, es gibt ASP.NET Web Forms, ASP.NET Webpages und ASP.NET MVC für den Browser, und es gibt Xamarin als Multiplattform-Framework für Mobilgeräte und Desktop. Microsoft hat allerdings die unangenehme Angewohnheit, den heißesten Scheiß von heute schon ein Jahr später durch's Klo zu spülen und was neues als die ultimative und einzige Lösung anzupreisen. Windows Forms oder ASP.NET Webforms sind, wenn man nach Dokumentation bei Microsoft sucht, fast nicht mehr existent, funktionieren aber nach wie vor prächtig und werden auch fleißig benutzt.
Jedes dieser Frameworks bringt seine eigene Art mit, Oberflächen zu designen, und auch eine Menge Komponenten dafür.
.net und JRE sind aber noch mehr, gerade .net bringt für fast alle Windows Funktionalitäten Bibliotheken mit, um sie im gemanagten Code zu kapseln
Wie die HSHT (hot shit half time) bei Java-Frameworks ist, weiß ich nicht. Bei JavaScript im Browser beträgt sie ca. ein halbes Jahr (d.h. nach anderthalb Jahren sind die meisten superkallifragilistischen JS-Libs für die Tonne).
Oder - wie mal ein Fortbildungstrainer zu mir sagte: Als Programmierer muss man alle 5 Jahre brain.reset() durchführen. Naja. Meine C# Kenntnisse halten seit 20 Jahren. Aber der Rest der Welt hält mehr von Java.
Wenn Du wissen willst, welche Sprachen aktuell sind, schau Dir den Tiobe-Index an. Oder PYPL Index. Oder andere Rankings. Die sehen alle anders aus. Aber C++, Java, Python, Javascript, C# und PHP sind immer oben dabei.
Ich persönlich bin ein Fan von Visual Studio. Weil ich seit 25 Jahren mit unterschiedlichen Versionen davon arbeite. Es gibt eine kostenlose Community-Version, die auch alle Programmiersprachen enthält, und die Business-Versionen, die sehr teuer sind. Visual Studio Code ist eine kostenlose, auf mehreren Plattformen verfügbare Version davon, die ich selbst aber noch nicht benutzt habe. Es gibt eine Menge Plugins und Tools für Visual Studio, allerdings bin ich nicht so der XML Profi und kenne XSLT gar nicht, deshalb kann nicht beurteilen, wie gut Studio oder generell .net da ist. In .net Programmen gibt es etliche Komponenten zum Umgang mit XML, und sicherlich auch Drittanbieter mit Libraries.
Mit Eclipse hatte ich nur am Rande zu tun und fand es schrecklich. Andere lieben es. Als IDE für die JRE gibt es auch IntelliJ von Jetbrains in einer Community Edition . Apache Netbeans hatte ich mir auch mal als PHP Plattform angeguckt, das ist auch kostenlos und unterstützt PHP, Java, JavaScript und C++. Aber im Moment habe ich keine PHP Projekte und bin da wieder raus. Vermutlich werde ich mit für's nächste PHP Projekt, wenn nochmal eins kommt, ein PHP Plugin für Visual Studio anschauen.
Was man bei Java beachten muss, ist das Lizenzmodell. Java 8 wird nicht mehr gepflegt, und Java 9 und 10 waren Kurzzeitbrenner und ab Java 11 ist das Oracle-JDK kostenpflichtig. Es gibt auch andere Bezugsquellen, z.B. von Eclipse - aber wer im Unternehmen eine Java-Umgebung mit Support haben will, kann das nicht mehr kostenlos tun. Ich habe das Konzept, das Oracle sich da ausgedacht hat, allerdings nicht wirklich verstanden. Vielleicht erklärt dieses Chaos jemand ein anderer besser.
Rolf
sumpsi - posui - obstruxi