• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

C/C++ - IDE - Zeit sparen? Tips für Lernende

guru

Well-Known Member
Themenstarter #1
Guten Tag mitsammen!

Ich habe das Problem, dass beim Lernen und Arbeiten relativ viel Zeit draufgeht, zwischen Terminals zu wechseln, unterschiedliche Quelltextdateien abzuspeichern, unterschiedlich zu nennen, jedesmal ein

Code:
cc -v -o blabla work14.c
./blabla
eintippen und ausführen zu müssen. Gibt es IDEs, bei denen ich einfach auf ein Knopfern drücken kann? Besonders, wenn man testen will, wie Code sich verhält, wenn man mit der Syntax spielt, wenn man wo ein Semikolon weglässt etc., stell ich mir das sehr praktisch vor. Oder empfiehlt Ihr, davon abzuraten? Die Eigenheiten eines Compilers zu kennen, sowie die Manpage durch öftermaliges Anwenden der Inhalte zu verinnerlichen, ist sicher nicht unpraktisch ... Wie habt Ihr gelernt? Welche Tips könnt ihr mir geben?

Und Ihr hattet recht. Die meiste Lernerei findet abseits des Computers statt.

Ich erarbeite derzeit das Buch "C von A bis Z" von Jürgen Wolf. Könnt ihr mir Tips geben, wo ich noch gut studierbaren Code finde? Hab's bis jetzt mit den Quellcodes von xclock und so probiert, aber auch ls hat gut 4700 Zeilen.

Danke für Euren Input!
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#2
Gibt es IDEs, bei denen ich einfach auf ein Knopfern drücken kann?
Ich sehe eine Editor-Diskussion auf uns zukommen. :) Seit dem Aufkommen des Language Server Protocols (https://langserver.org/) ist in meinen Augen die unendliche und in den wenigsten Fällen zielführende Debatte zwischen einfachen Programmiereditoren auf der einen und kompletten IDEs auf der anderen Seite weitgehend beendet, da jeder halbwegs brauchbare Editor das Einbinden von Language Servern ein vollständiges Sprachverständnis erlangen kann und es nicht mehr länger ein Killerfeature von kompletten IDEs ist. Damit ist erst einmal, abgesehen von z.B. Projektvorgaben, das einzig relevante Kriterium der Arbeitsfluss des jeweiligen Entwickler und der ist sehr individuell.

Anfängern würde ich aber dazu raten nicht allzu viel Gedanken an die Werkzeuge zu verschwenden. Ein Handwerks-Azubi im ersten Lehrjahr kauft sich auch nicht gleich die teuren Werkzeuge. Editoren wie Vim, Emacs, Sublime und co. sind extrem mächtig und ermöglichen eine so perfekte Anpassung, an den eigenen Arbeitsfluss, dass sie buchstäblich das Rückenmark verlängern. Aber die Lernkurve dahin ist extrem, die Zeit ist besser ins Lernen vom Programmieren selbst investiert. Komplette IDEs wiederum haben so viele Funktionen, dass man ohne Programmiererfahrung darin verloren gehen kann. Nimm irgendeine weitgehend 'Out of the Box' fertige Umgebung in der Mitte zwischen reinen Editoren und kompletten IDEs und verschwende erst einmal keine weiteren Gedanken daran. Dafür ist später, wenn du deinen eigenen Workflow, deine Vorlieben und Schwächen kennst, immer noch mehr als genügend Zeit.

Wenn du einen konkreten Tipp willst: In der örtlichen Berufsschule nehmen sie im Moment VisualStudio Code. Und auch sonst scheint es inzwischen neben vielleicht Atom die verbreitetste Lösung in der Mitte zwischen reinen Editoren und kompletten IDEs zu sein. Ich selbst habe es mir mal angeschaut, sah nicht schlecht aus. Wirklich produktiv genutzt habe ich es aber nicht. Seit einiger Zeit ist es als editors/vscode auch in den FreeBSD Ports.

Die Eigenheiten eines Compilers zu kennen, sowie die Manpage durch öftermaliges Anwenden der Inhalte zu verinnerlichen, ist sicher nicht unpraktisch ...
Vergiss die mindestens 1000 Kommandozeilenoptionen von gcc und clang. Die kennt bis auf die wenigen, ständig genutzten Optionen wie z.B. die Optimierungslevel niemand auswendig. Ich habe gerade vor 3 Stunden den Unterschied zwischen -fPIC und -fPIE nachgeschlagen... Wichtiger ist zu wissen, was Sprachstandard ist, welcher Compiler welche Standards unterstützt und was compilerspezifische Erweiterungen sind. Außerdem, welche Möglichkeiten der jeweilige Compiler abseits des reinen Übersetzens bietet. Alleine Address Sanitizer (https://clang.llvm.org/docs/AddressSanitizer.html) kann das Leben extrem viel einfacher machen. Im nächsten Schritt, wenn du sicher programmieren kann, kann es sich lohnen zu verstehen, was der Compiler eigentlich macht, also welchen Code er generiert. Dabei kann https://godbolt.org/ helfen.