Welchen Compiler würdet Ihr mir Empfehlen?

5 Antworten

Für C den GCC bzw. Clang oder unter Windows den Compiler von Microsoft. Alternativen wären der Intelcompiler (der neuerdings nur noch ein Clangfork ist), der Tiny C Compiler, oder der Borlandcompiler (seit einiger Zeit Embarcadeo).

Für C++ würde ich zu G++ oder Clang++ greifen, diese beiden sind die besten C++ Compiler, wobei Microsoft in letzter Zeit aufgeholt hat, und kein C++ Compiler schon so viele C++20 Features unterstützt wie der von Microsoft ... aaaaaber, im Punkto Codegenerierung, Effizienz und Fehlerfreiheit, liegt MSVC++ weit abgeschlagen hinter G++ und Clang++!

Das hat sich seit dem kompletten Rewrite des C++-Compilers von Microsoft zwar deutlich gebessert, aber die sind featuretechnisch noch lange nicht da, wo G++ und Clang++ sind.

Bis vor einigen Jahren war Clang++ der Beste, inzwischen wurde er in vielen (den meisten?) Punkten von G++ überholt und versucht gerade wieder aufzuholen.

Wie gesagt, G++ und Clang++ sind die besten, danach MSVC++, dann eine Weile erst mal gar nichts, und dann die wenigen verbleibenden Compiler, die mit Mühe und Not C++11 halbwegs akzeptabel unterstützen.

Für Java würde ich das offizielle Oracle JDK nehmen, aber da alle (zu Recht) Oracle hassen, und Oracle ekelhaft und igittigitt ist, rate ich dir lieber zum OpenJDK oder dem Eclipse-Compiler (ecj).

Bei Python würde ich NUR die Referenzimplementierung nehmen, denn alles, was nicht trivial ist, wird zur Frickelorgie, wenn es etwas komplexer oder größer ist, und du es unter PyPy, CPython, IronPython, usw. zum laufen bekommen willst.

Der Standard-JIT-Compiler von Python hat zwar den GIL (Global Interpreter Lock), den die anderen nicht haben, und deshalb läuft der Code dort auch so langsam, aber dafür haben die anderen alle ihre eigenen Nachteile. Aber egal ... wer Performance will, wird sowieso nicht zu Python greifen. :)

Ach und zu Assembler: NASM ist Portabel und läuft quasi auf jeder x86 bzw. x64 Plattform. Der erweiterte und verbesserte Form YASM untertützt auch ARM.

Unter Windows gibts den MASM von Microsoft, aber der war schon vor 20 Jahren extreeeeem verbuggt, ist es heute noch, und wird es auch in 20 Jahren noch sein. Wenn du Masochist bist, kannst du den aber trotzdem nutzen! Rechne dann aber damit, dass die Hälfte deines Codes aus Workarounds besteht!

Der Assembler mit den mit WEITEM Abstand größten Support für alle möglichen CPUs und den meisten Plattformen ist natürlich GAS. Aber der GAS ist "eigentlich" ein Backend-Assembler und nicht so handzahm, wenn man direkt Code damit schreiben will.

Aber wenn man sich dran gewöhnt hat, ist der GAS der Mächtisgste von allen, und auch wenn er Intel-Syntax kann, würde ich zu AT&T raten, da logischer aufgebaut.

Bei C# steht der Microsoftsche-Compiler weit an der Spitze und irgendwo weiter hinten gibts dann Projekte wie Mono, aber erwarte dabei auf keinen Fall eine Untersützung aller modernen Sprachfeatures, und schon gar nicht die gigantische .NET-Bibliothek.

Microsoft arbeitet offiziell zwar an den C#-OpenSource-Projekten mit und unterstützt die mit Code und Gedöns, aber das ist genau genommen nur ein Feigenblatt.

Delphi unter Windows verhält sich zu Lazarus auf allen möglichen Plattformen ungefähr so, wie C# mit .Net unter Windows, zu Mono unter Linux: Kann man für kleine Progrämmchen nutzen, aber man wird eher früher als später auf unüberwindbare Hürden stoßen.

Trotzdem ist Lazarus toll, wenn man mal schnell eine Plattformübergreifende GUI für Bibliothek XYZ in eine mäßig fette Binary gießen will. (EXE-Dateigrößen von 3 bis 8 MB sind normal, minmal jedoch knapp über 1MB, größere gerne mal 30MB!)

Uuuuuund, auch wenn du nicht danach gefragt hast: Für kleine schnelle Helferlein gibt es nichts praktischeres als eine unixoide Shell (bash, zsh, z. B.). Die PowerShell unter Windows kann man zur Not auch nehmen, die hat aber vöööööööllig andere Konzepte, und bei Nicht-Standard-Aufgaben explodiert die Skriptlänge schnell richtung unendlich groß.

Für GUI-automatisierungen eignet sich AutoIT oder AutoHotkey, letzteres ist portabl. So etwas ist hin und wieder auch mal ganz praktisch.

Für die Automatisierung von Webbrowsern nehmen heute alle Python-Kinder gerne Selenium, aber im Grunde geht annähernd das selbe schon seit 20+ Jahren mit sog. Userscripts. (GreaseMonkey bzw. ehelmals TamperMonkey & Co)

So, ich glaub das war jetzt erst mal alles. Sorry für den Roman. :)

Woher ich das weiß:Studium / Ausbildung

C/C++: Da wären wohl gcc und clang, da für quasi alle Platformen verfügbar.

Java: Den der bevorzugten JDK, icedtea/openjdk wäre vielleicht eine Option, sonst halt die normale Oracle JDK.

Python: Referenzimplementierung ist Interpreter (cpython), echte Compiler gibt es bis heute AFAIK nicht. (mit cython gibt es sowas ähnliches)

C#: Hier wäre z.B: mono eine Option.

Für C, C++ und C# einfach Visual Studio installieren. Das ist eine komplette Entwicklungsumgebung bestehend aus Editor, Debugger, Formdesigner für GUIs und den Compilern die aus dem Code eine EXE-Datei erzeugen:

#########################################################

Um in Python zu programmieren installiert man sich zuerst einmal Python: https://www.python.org/downloads/ Nach dem Download muss man die Installation als Administrator ausführen. Dazu den Installer mit der rechten Maustaste anklicken und "Als Administrator ausführen" wählen. Dann alle Komponenten installieren. Ein Python-Editor wird mitinstalliert.

Um Python-Programme in EXE-Dateien zu kompilieren muss man die Python-Erweiterung pyinstaller installieren. Das geht so:

Dazu die Eingabeaufforderung als Administrator starten und folgenden Befehl eingeben:

  • pip3 install pyinstaller oder pip install pyinstaller

Und so kompiliert man: Dazu zuerst einmal einen leeren Ordner erstellen. Zum Beispiel Python-Projekte. Dort das Python-Programm abspeichern. Dann von diesem Ordner aus die Eingabeaufforderung starten und folgenden Befehl eingeben:

  • pyinstaller --onefile --windowed programmname.py

Jetzt wird die .py Datei in eine EXE-Datei kompiliert die selbstständig ohne Python lauffähig ist. Wenn das abgeschlossen ist findet man im Ordner Python-Projekte 3 weitere Ordner: Einmal build dist und__pycache__. Die Ordner build und __pycache__ kann man löschen. Im Ordner dist findet man dann die programmname.exe

#########################################################

Um in Java zu programmieren muss man sich OpenJDK JDK installieren. Das ist die Java Laufzeitumgebung und ein Java Compiler der dann aus dem Code JAR-Dateien erzeugt. Diese sind dann mit einer installierten Java Laufzeitumgebung (OpenJDK JRE) ausführbar.

OpenJDK ist die quelloffene Version von Java. Diese ist 100% kompatibel zu Oracle Java.

Hier eine Java Entwicklungsumgebung: https://www.jetbrains.com/de-de/idea/ Der Code wird syntaxhervorgehoben dargestellt. Arbeitet perfekt mit openJDK JDK zusammen.

Mit diesem Tool https://sourceforge.net/projects/launch4j/files/launch4j-3/3.14/launch4j-3.14-win32.exe/download kann man eine JAR-Datei in eine EXE-Datei verpacken und auch Startparameter angeben.

C = gcc, C++ = g++, Java = javac, Python braucht kein Compiler da es eine Interpretierte Programmiersprache ist

Oder Benutz Visual Studio, das ist ne IDE, da ist auch Compiler dabei.


Elias4953 
Beitragsersteller
 11.10.2021, 17:56

Aber Visual studio kostet Geld.

Elias4953 
Beitragsersteller
 11.10.2021, 17:58
@L4ze3

aber nur für die Leute die Open source programme schreiben.

Visual studio code oder community als editor und oder Compiler

Woher ich das weiß:eigene Erfahrung – Bin seit Jahren in dieser Branche tätig

KillerGoldFisch  12.10.2021, 19:00
Visual studio code oder community als editor und oder Compiler

VSCode ist kein Compiler! Es ist ein erweiterbarer Texteditor, der durch diese Erweiterungen Kompiliervorgänge automatisieren kann.

Visual Studio ist ebenfalls kein Compiler, allerdings bietet der Installer an welche mit zu installieren.

Ist in Visual studio code ein Compiler enthalten?

Nein.

Ich willt nicht Open source programme schreiben , Visual studio Community darf man nur Open source programme schreiben.

Mit Visual Studio Community darf man auch für closed-source Entwicklung benutzen, solange gewisse Voraussetzungen erfüllt sind. Siehe https://visualstudio.microsoft.com/license-terms/mlt031819/

Elias4953 
Beitragsersteller
 11.10.2021, 17:53

Ist in Visual studio code ein Compiler enthalten? Ich willt nicht Open source programme schreiben , Visual studio Community darf man nur Open source programme schreiben.