Forum: PC-Programmierung Programmieroberfläche für C-Anfänger


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jonatan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo, jemand im Bekanntenkreis will C lernen und fragt nach einer guten 
Programmieroberfläche für sein Vorhaben.

Hat jemand eine Empfehlung, die ich weitergeben kann?

Wäre Anjuta eine gute Wahl?

von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Für welches Betriebssystem?

Linux: QtCreator oder Eclipse CDT.
Windows: Visual Studio Community Edition.

Wobei natürlich die Frage ist warum C und nicht C++. Für PCs gibt es 
sehr gute C++ Compiler und aufs letzte Byte Speicher achten muss man 
auch nicht.

von Jonatan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Programmierer schrieb:
> Für welches Betriebssystem?

Danke für die schnelle Antwort!

OS ist Win10.


Programmierer schrieb:
> Wobei natürlich die Frage ist warum C und nicht C++.

Ich glaube, es geht um die private Vorbereitung auf einen späteren 
C-Kurs im Rahmen einer Ausbildung.

von Programmierer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Jonatan schrieb:
> OS ist Win10.

Da läuft Anjuta gar nicht, das ist Linux-Only.

Jonatan schrieb:
> Ich glaube, es geht um die private Vorbereitung auf einen späteren
> C-Kurs im Rahmen einer Ausbildung.

Nagut... Für Komplett-Anfänger ist ein komplettes Rundum-Sorglos-Paket 
wie Visual Studio am Einfachsten, auch wenn dessen Compiler nicht der 
Beste ist.

von zitter_ned_aso (Gast)


Bewertung
2 lesenswert
nicht lesenswert
Ich würde einen guten Texteditor empfehlen. Eine IDE ist für den 
Anfänger weder nötig noch sinnvoll.

von Programmierer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Ich würde einen guten Texteditor empfehlen. Eine IDE ist für den
> Anfänger weder nötig noch sinnvoll.

C ist schon kompliziert genug mit seinen diversen Fallstricken. Da muss 
man den Anfänger nicht auch noch mit dem Aufrufen von Compilern, 
Schreiben von Makefiles usw. erschlagen.

von c-lover (Gast)


Bewertung
2 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Ich würde einen guten Texteditor empfehlen. Eine IDE ist für den
> Anfänger weder nötig noch sinnvoll.

Sehe ich auch so. Erst die Grundlagen lernen, denn solange kann man die 
ganzen bunten Knöpfe in der IDE sowieso nicht bedienen ;)

Ich habe vor Jahren noch mit "Bloodshed Dev C++" angefangen. Für einen 
C-Anfänger ganz OK. Würde ich heute aber nicht mehr machen.

Später bin ich auf Linux Mint umgestiegen. Und ich muss sagen: Ein 
Traum. Da hat man direkt alles was man benötigt, vor allem weil auch 
viele Tutorials auf Linux Tools basieren.

Damals hab ich mich nur nicht getraut, weil ich vor der "bösen" Konsole 
"Angst" hatte. Aber völlig unbegründet.

von Programmierer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
c-lover schrieb:
> Später bin ich auf Linux Mint umgestiegen. Und ich muss sagen: Ein
> Traum. Da hat man direkt alles was man benötigt, vor allem weil auch
> viele Tutorials auf Linux Tools basieren.

Unter Linux ist es auch viel einfacher einen Compiler ohne Alles zu 
installieren. Einem Anfänger würde ich es nicht so zumuten MinGW oder 
den MS CL und dann noch GNU Make und ggf. MSYS oder Cygwin zu 
installieren, Pfade anzupassen, mit der cmd.exe herumzuhantieren, 
Fehlermeldungen manuell Code-Zeilen zuzuordnen usw. während man noch 
darüber grübelt was "const char* argv[]" bedeutet. Da ist ein 
All-In-One-Installer für VS doch viel einfacher.

von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kann VisualStudio überhaupt richtig C? Wenn ich z.B. ein Buch zu C11 
nehmen, kann ich dann alle Themen damit durcharbeiten?

von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Kann VisualStudio überhaupt richtig C? Wenn ich z.B. ein Buch zu
> C11
> nehmen, kann ich dann alle Themen damit durcharbeiten?

Leider nicht so wirklich. Aber ob in so einem Ausbildungskurs modernes C 
gelehrt wird?

von Mark B. (markbrandis)


Bewertung
-1 lesenswert
nicht lesenswert
Programmierer schrieb:
> C ist schon kompliziert genug mit seinen diversen Fallstricken. Da muss
> man den Anfänger nicht auch noch mit dem Aufrufen von Compilern,
> Schreiben von Makefiles usw. erschlagen.

Naja, genau das gehört aber zum Programmieren auch dazu.

von Programmierer (Gast)


Bewertung
4 lesenswert
nicht lesenswert
Mark B. schrieb:
> Naja, genau das gehört aber zum Programmieren auch dazu.

Schon. Aber das muss man nicht als Allererstes machen. In der Fahrschule 
durfte ich als Erstes auch erstmal nur Lenken. Dann erst kam Anfahren, 
Kuppeln, Schalten dazu, Verkehr beachten, Geschwindigkeit halten usw. 
Wenn der Lehrer mich direkt zu Anfang auf die 4-Spurige 
Hauptverkehrsstraße geschickt hätte, wäre ich schnell geflohen!

von Sven D. (sven_la)


Bewertung
-1 lesenswert
nicht lesenswert
Borland C++ 5.5 gabs mal als kostenlosen Download. Das sollte auch unter 
Windows 10 laufen, ggf. im Kompatibilitätsmodus

von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sven D. schrieb:
> Borland C++ 5.5 gabs mal als kostenlosen Download. Das sollte auch
> unter
> Windows 10 laufen, ggf. im Kompatibilitätsmodus

Der kann auch kein C11. Das alte Zeug muss man sich wirklich nicht 
antun.

von FS (Gast)


Bewertung
0 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Kann VisualStudio überhaupt richtig C? Wenn ich z.B. ein Buch zu
> C11
> nehmen, kann ich dann alle Themen damit durcharbeiten?

Der Microsoft-Compiler ist hauptsächlich nur ein C++-Kompiler, der 
C99-Support sollte aber vollständig da sein. Bei C11 kommt es darauf an, 
ob du die neuen Features nutzt. Beispiel: Sowas wie "_Thread_local", 
dass es auch in C++ gibt, sollte funktionieren, allerdings gibt es den 
passenden C-Header "threads.h" in Visual C++ nicht.

von Sven D. (sven_la)


Bewertung
0 lesenswert
nicht lesenswert
Programmierer schrieb:
> Sven D. schrieb:
>> Borland C++ 5.5 gabs mal als kostenlosen Download. Das sollte auch
>> unter
>> Windows 10 laufen, ggf. im Kompatibilitätsmodus
>
> Der kann auch kein C11. Das alte Zeug muss man sich wirklich nicht
> antun.

Ist aber die am einfachsten zu bedienende IDE die ich kenne. Finde ich 
für einen Anfänger ideal. Ob das Teil nun C11 unterstützt dürfte wohl 
ziemlich egal sein wenn jemand die Grundlagen von C lerenen will.

von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Sven D. schrieb:
> Ist aber die am einfachsten zu bedienende IDE die ich kenne.

Und du kennst auch IDEs wie VS? Ich finde es immer gut mit Tools zu 
lernen die man auch für Real-World-Anwendungen nutzen kann. Das ist bei 
VS definitiv der Fall. Bei Tools für die man erstmal den 
Kompatibilitätsmodus braucht (gilt das auch für die produzierten 
Programme) vielleicht eher nicht so.

Laut Web gibt es da übrigens nur den Compiler + Bibliotheken gratis. 
Also nix IDE und einfach zu bedienen.

von zeitsurfer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Programmierer schrieb:
> Sven D. schrieb:
>> Borland C++ 5.5 gabs mal als kostenlosen Download. Das sollte auch
>> unter
>> Windows 10 laufen, ggf. im Kompatibilitätsmodus
>
> Der kann auch kein C11. Das alte Zeug muss man sich wirklich nicht
> antun.

Was ist an C nicht alt ... das ganze Konzept, Syntax etc. stammt doch 
aus der Steinzeit der Computertechnik. Wenn es ein moderner Einstieg 
sein soll, dann doch eher Java.

von Programmierer (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Das sowieso. Ich würde eher zu Python raten, das ist für den Einstieg 
noch "geschmeidiger" als das etwas starre Java. Aber C ist anscheinend 
vorgegeben.

von zitter_ned_aso (Gast)


Bewertung
2 lesenswert
nicht lesenswert
zeitsurfer schrieb:
> Was ist an C nicht alt ... das ganze Konzept,

Vielleicht ist das ein Beweis dafür dass die Idee und die Umsetzung von 
C absolut richtig war? Und zwar so dass man einem Programmieranfänger 
noch ein Buch empfehlen kann, welches vor 30 Jahren geschrieben wurde?


Geht das bei C++, Java, Python? Natürlich nicht! Da gibt es in 
regelmäßigen Abständen einen radikalen Schnitt. Weil die Leute, die 
hinter diesen Sprachen stehen, keinen Plan haben (und auch kein 
Rückgrat). Sie werden heute etwas zum Standard erklären und dich morgen 
auslachen, wenn du es benutzt. Denn morgen kommt eine neue Regelung raus 
die alles noch einfacher, sicherer und besser macht.

von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Geht das bei C++, Java, Python? Natürlich nicht! Da gibt es in
> regelmäßigen Abständen einen radikalen Schnitt.

Völliger Blödsinn. Eines der Hauptziele von C++ ist 
Abwärtskompatibilität. Könnte man radikale Schnitte machen, wäre eine 
Menge alter Kram (insbesondere der aus C stammende) schon längst weg. 
Ein paar Details werden geändert/entfernt, aber diese lassen sich in 
bestehendem Code leicht reparieren. Und im Zweifelsfall kann man 
Compiler immer noch auf alte Sprachstandards stellen. Bei Java ist es 
ähnlich. Nur bei Python ist das nicht so.

zitter_ned_aso schrieb:
> Und zwar so dass man einem Programmieranfänger
> noch ein Buch empfehlen kann, welches vor 30 Jahren geschrieben wurde?

Und das ist ein Argument dafür alte Konzepte auf ewig weiter zu nutzen? 
Die Technik entwickelt sich weiter, es gibt neue Möglichkeiten, und man 
muss nicht ewig eine Sprache nutzen die so entwickelt wurde, dass man 
sie auf Computern der 70er nutzen konnte. Der Präprozessor, #include und 
die Notwendigkeit für Vorwärtsdeklarationen entstammen den Limitierungen 
dieser Computer und sind heute völlig überflüssig; moderne Sprachen wie 
Java und Python sind darüber hinweg. In C++ plagt man sich auch nur 
gezwungenermaßen damit herum.

zitter_ned_aso schrieb:
> Weil die Leute, die
> hinter diesen Sprachen stehen, keinen Plan haben

Niemand hat einen Plan, der exponentieller technischer Entwicklung über 
Jahrzehnte hinweg stand hält. Das sieht man auch an C, sonst gäbe es 
dort kein "int" und kein "#include" usw. Wer behauptet, dass die 
Errungenschaften der 70er der Weisheit letzter Schluss sind und danach 
nichts mehr kommt, ist ein Fanatiker.

von A. S. (achs)


Bewertung
2 lesenswert
nicht lesenswert
zitter_ned_aso schrieb:
> Ich würde einen guten Texteditor empfehlen.

Da hast du vergessen, wie es als Anfänger war.

Du brauchst chromacoding, Sprung zum Fehler, einen Button zum builden 
und ein paar zum Starten/debuggen, um dich auf den Quelltext 
konzentrieren zu können

Wenn der Texteditor das (automatisch) kann, ist es eine IDE.

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Ich bin mit der QT Creator IDE recht zufrieden. Die nutze nicht nur, um 
meinen PC programmieren, sondern auch für Mikrocontroller.

: Bearbeitet durch User
von zitter_ned_aso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Visual Studio... Code soll kein schlechter Editor sein. Ich hatte ihn 
sogar mal installiert. Und wieder gelöscht. Weil er da irgendwelche 
Daten sammelt (telemetry reporting). Aber es gibt da auch wohl eine 
Version, die das nicht macht.

VS ist ja nur für Windows.

von Frank K. (fchk)


Bewertung
0 lesenswert
nicht lesenswert
A. S. schrieb:
> zitter_ned_aso schrieb:
>> Ich würde einen guten Texteditor empfehlen.
>
> Da hast du vergessen, wie es als Anfänger war.

Nö. CygnusEd aufm Amiga, dazu Lattice C klassisch mit Makefiles, direkt 
von Unix aus rüberportiert. Das waren meine Anfänge.

> Du brauchst chromacoding, Sprung zum Fehler, einen Button zum builden
> und ein paar zum Starten/debuggen, um dich auf den Quelltext
> konzentrieren zu können

Früher hat ein vi auf einem VT102 völlig ausgereicht.

Ja, ich bin alt.

fchk

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Programmierer schrieb:
> Eines der Hauptziele von C++ ist Abwärtskompatibilität...
> Nur bei Python ist das nicht so.

Und damit haben die Entwickler eine ganze Menge Verwirrung und Ärger 
gestiftet. Mit dem Wechsel der Python Version von 2 zu 3 sind zum 
Beispiel mehr OpenERP Anwendungen/Plugins gestorben, als in der ganzen 
Zeit davor und danach.

> Der Präprozessor, #include und
> die Notwendigkeit für Vorwärtsdeklarationen entstammen den Limitierungen
> dieser Computer und sind heute völlig überflüssig; moderne Sprachen wie
> Java und Python sind darüber hinweg. In C++ plagt man sich auch nur
> gezwungenermaßen damit herum.

Präprozessor:
Java hat schlicht keinen Präprozessor. Sehr viele größere Java EE 
Projekte fügen aber etwas Äquivalentes in Form von Plugins für Build 
Tools hinzu. Abgesehen davon besteht auch in C/C++ keinerlei 
Verpflichtung, dieses optionale Feature zu benutzen.

#include:
Gibt es auch bei Java, heißt dort aber import und man muss es sogar sehr 
viel mehr benutzen, als #include.

Vorwärtsdeklarationen:
Ich kann mich nicht erinnern, wann ich das (außerhalb von Header 
Dateien) zuletzt gebraucht habe. Insofern kann man das jetzt nicht als 
Mangel von C/C++ hinstellen. Auch dies ist ein optionales Features das 
man benutzen kann, aber nicht muss.

> Wer behauptet, dass die Errungenschaften der 70er der Weisheit
> letzter Schluss sind und danach nichts mehr kommt, ist ein Fanatiker.

Ich jedenfalls nicht. Die Tatsache, dass diese Programmiersprache immer 
noch sogar bei neuen Produkten eingesetzt wird, zeigt für mich, dass sie 
nicht so schlecht sein kann, wie hier manche behaupten.

Mir ist auf jeden Fall lieber, mit Softwareentwicklern zusammen zu 
arbeiten, die bewährte Techniken solide beherrschen, als "Skript 
Kiddies" die alle 6 Monate dem neuesten Schrei hinterher laufen und den 
Senior Entwicklern lauter offene Baustellen hinterlassen, während die 
Karavane schon weiter zieht.

Ich habe noch kein Projekt gesehen, das an der Programmiersprache 
gescheitert ist. Wenn es ernsthafte Probleme gab, dann meisten wegen 
Mängel in der Dokumentation oder weil sich Leute komplexe Frameworks 
angetan haben, die sie nicht im Griff haben.

: Bearbeitet durch User
von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Java hat schlicht keinen Präprozessor.

Richtig, und das ist gut so.

Stefan ⛄ F. schrieb:
> Abgesehen davon besteht auch in C/C++ keinerlei
> Verpflichtung, dieses optionale Feature zu benutzen.

Ohne #include sind C und C++ kaum benutzbar. In C braucht man ihn für 
Pseudo-Konstanten, weil C im Gegensatz zu C++ kein echten Konstanten 
hat.

Stefan ⛄ F. schrieb:
> Gibt es auch bei Java, heißt dort aber import und man muss es sogar sehr
> viel mehr benutzen, als #include.

Nein, import kann man komplett weglassen indem man im Code die 
Klassen-Namen ausschreibt, wie z.B. "new java.io.File ();" o.ä., ist 
aber unüblich. Außerdem funktioniert der Mechanismus dort völlig anders 
als die stupide Text-Ersetzung von #include.

Stefan ⛄ F. schrieb:
> Ich kann mich nicht erinnern, wann ich das (außerhalb von Header
> Dateien) zuletzt gebraucht habe.

Genau darum geht es doch, dass man überhaupt Header mit den darin 
vorhandenen Forward Declarations braucht! In Java, C#, Python, ... 
brauchts so etwas überhaupt nicht, das machts einfacher und vermeidet 
Fehler.

Stefan ⛄ F. schrieb:
> Insofern kann man das jetzt nicht als
> Mangel von C/C++ hinstellen.

Das ist ein sehr großer Mangel. Wenn in der foo.h die Funktion anders 
deklariert ist als sie in der foo.c definiert ist, gibt's ein Chaos. 
Wenn man mehrere Header hat die voneinander abhängig sind gibt's auch 
ein lustiges Gebastel. Nur zu oft haben Libraries Header, die nur in 
einer bestimmten Reihenfolge inkludiert werden können. Weil Header 
wieder andere Header inkludieren kann es passieren, dass man sich im 
Code implizit auf der Vorhandensein des indirekt inkludierten Headers 
verlässt, und wenn sich die Library dort ändert kompiliert es nicht 
mehr. Kann in Java alles nicht passieren. Ja, es gibt Workarounds, aber 
ein Problem ist es trotzdem.

Stefan ⛄ F. schrieb:
> Auch dies ist ein optionales Features das
> man benutzen kann, aber nicht muss.

Wenn es sich um ein nichttriviales Projekt handelt, braucht man Header, 
#include und die in Headern befindenlichen Vorwärtsdeklarationen. Ohne 
"#include <stdio.h>" kann man nichtmal etwas ausgeben!

Stefan ⛄ F. schrieb:
> Ich jedenfalls nicht. Die Tatsache, dass diese Programmiersprache immer
> noch sogar bei neuen Produkten eingesetzt wird, zeigt für mich, dass sie
> nicht so schlecht sein kann, wie hier manche behaupten.

"schlecht" ist ein schlechtes Maß. Für manche Dinge sind C und C++ 
angemessen, für viele nicht. Für "ich lerne als absoluter Anfänger 
programmieren" auch eher nicht. Der Hauptgrund für weitere Verwendung 
von C ist "ich kann nichts anderes".

Stefan ⛄ F. schrieb:
> als "Skript
> Kiddies" die alle 6 Monate dem neuesten Schrei hinterher laufen und den
> Senior Entwicklern lauter offene Baustellen hinterlassen, während die
> Karavane schon weiter zieht.

Du wirfst Vorgehensweisen, Programmiersprachen und die Kompetenz zum 
Entwickeln guten Codes durcheinander.

Stefan ⛄ F. schrieb:
> Ich habe noch kein Projekt gesehen, das an der Programmiersprache
> gescheitert ist.

Weil dieser Aspekt kaum analysierbar ist. Wenn man zu viel Zeit damit 
verschwendet die Eigenheiten der Sprache zu umgehen kann man schon mal 
Deadlines reißen.

Wenn ich mir auf Arbeit den C-Code unseres Zulieferers angucke kann ich 
im Vorbei-Scrollen die Fehler aufzählen "Alignment-Regeln verletzt, 
verbotene Bezeichner verwendet, implizite Annahmen über Integer-Formate, 
böse Casts"... Bei Java ist das nicht so.

von Programmiersprachentheaterintendant (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Du brauchst chromacoding, Sprung zum Fehler, einen Button zum builden
> und ein paar zum Starten/debuggen, um dich auf den Quelltext
> konzentrieren zu können
>
> Wenn der Texteditor das (automatisch) kann, ist es eine IDE.

Du beschreibst gerade... Arduino!
(ausser "Sprung zum Fehler", was bei Anfängerfehler in C sowieso selten 
gelingt weil der Compiler anderswo als beim Fehler amok läuft...)

Aber Arduino taugt schon für die ersten paar Lektionen in Grundlagen, 
dann ist Wechseln angesagt und danach sollte man ohnehin fit sein um 
selbst zu wissen was man will.


> > zeitsurfer schrieb: Was ist an C nicht alt ... das ganze Konzept,
>
> Vielleicht ist das ein Beweis dafür dass die Idee und die Umsetzung
> von C absolut richtig war? Und zwar so dass man einem
> Programmieranfänger noch ein Buch empfehlen kann, welches
> vor 30 Jahren geschrieben wurde?

Genau: deswegen ist C immernoch und nur K&R geblieben, bis heute.
C89, C99 und wie sie alle heissen hat es nie gegeben weil, ja: 
überflüssig.

Ausserdem: egal ob ich 5, 15 oder 25 jährigen C-Code lese der von sog. 
"guten & erfahrenen" C-Programmierern geschrieben wurde, ist es in der 
Tat selten welcher über K&R-Niveau...

Trost: das wird noch getoppt von FORTAN, ALGOL & COBOL.

von Joachim B. (jar)


Bewertung
-1 lesenswert
nicht lesenswert
ich wollte ja lcc32 vorschlagen, läuft aber nicht uner win10

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Programmierer schrieb:
> Wenn ich mir auf Arbeit den C-Code unseres Zulieferers angucke kann ich
> im Vorbei-Scrollen die Fehler aufzählen "Alignment-Regeln verletzt,
> verbotene Bezeichner verwendet, implizite Annahmen über Integer-Formate,
> böse Casts"... Bei Java ist das nicht so.

Da kann ich Dir helfen, ich erkenne solche Fehler in Java Programmen 
routiniert. Da sind solche Fehler genau so möglich.

Aber eigentlich benutzt man für solche Kontrollen lint bzw Spotbugs.

Ich möchte noch etwas zu #import sagen: Wenn dieses Konstrukt für dich 
schon ein großes Problem darstellt, dann frage ich mich schon wie 
Flexibel du eigentlich bist. Weil: Das ist für mich ein vollkommen 
unwichtiges Pillepalle Detail.

Ich beschäftige mich eher mit der Implementierung von Geschäftsprozessen 
und Algorithmen, da spielt die Programmiersprache eine untergeordnete 
Rolle. Und glaube mir, ich kenne viele.

: Bearbeitet durch User
von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Da kann ich Dir helfen, ich erkenne solche Fehler in Java Programmen
> routiniert. Da sind solche Fehler genau so möglich.

Das ganze UB-Zeug fällt da schonmal komplett raus. In Java ist es schon 
schwieriger Programme zu schreiben, die den Anschein haben zu 
funktionieren aber tatsächlich falsch sind.

von Programmiersprachentheaterintendant (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
> Stefan ⛄ F. schrieb:
>> als "Skript
>> Kiddies" die alle 6 Monate dem neuesten Schrei hinterher laufen und den
>> Senior Entwicklern lauter offene Baustellen hinterlassen, während die
>> Karavane schon weiter zieht.
>
> Du wirfst Vorgehensweisen, Programmiersprachen und die Kompetenz zum
> Entwickeln guten Codes durcheinander.

Das bringt es exakt auf den Punkt, wo C/C++ zum Hindernis wird.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Programmierer schrieb:
> In Java ist es schon schwieriger Programme zu schreiben,
> die den Anschein haben zu funktionieren aber tatsächlich falsch sind.

Sicher, Java vermeide eine ganze Menge von häufigen Fehlern. Deswegen 
arbeite ich damit auch primär. Nur läuft Java eher schlecht auf kleinen 
Mikrocontrollern.

von Asm'ler (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Sollte es nur um die kleinen MC Käfer gehen nimm Assembler. Ein 
hunderttausendstel der üblichen künstlich aufgeblasenen 
Hochsprachen/Tool-Bürokratie. System-Verständnis von der Pike auf.

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Asm'ler schrieb:
> Sollte es nur um die kleinen MC Käfer gehen nimm Assembler. Ein
> hunderttausendstel der üblichen künstlich aufgeblasenen
> Hochsprachen/Tool-Bürokratie. System-Verständnis von der Pike auf.

Ich habe einzelne Sachen in Assembler programmiert und halte es für 
lehrreich. Aber für die tägliche Arbeit? Mein Chef würde mich auslachen 
und mich umgehend raus werfen.

von Asm'ler (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:.
> Ich habe einzelne Sachen in Assembler programmiert und halte es für
> lehrreich. Aber für die tägliche Arbeit? Mein Chef würde mich auslachen
> und mich umgehend raus werfen.

Du bist ja auch kein Anfänger mehr :)

von Rolf M. (rmagnus)


Bewertung
1 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Da kann ich Dir helfen, ich erkenne solche Fehler in Java Programmen
> routiniert. Da sind solche Fehler genau so möglich.

Mein Liebling ist immer noch der Absturz von Java-Programmen mit einer 
"Null pointer exception", wo es doch in Java gar keine Pointer gibt…

von Pucki (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Leute ?! ;)

Er will es LERNEN. !!!!!!!!!!!!!!!!!

Da reicht das Visual-Studio von MS völlig für aus.

Es gibt 3 Dinge die man beim Programmieren können muss. 2 davon kann man 
lernen. Dies sind :

1.) Die Programmiersprache
2.) Den Umgang mit einen Entwicklungssystem

Was man NIE lernen kann, sondern was GUTEN Programmierern in die Wiege 
gelegt wurde, ist sich das Programm vorzustellen BEVOR man es schreibt.
Da das die wenigsten Leute wirklich können, gibt es Ablaufdiagramme. 
Aber im Prinzip ist Programmieren wie Schachspielen. Man muss mindestens 
10 Züge im Voraus denken. Wenn man das kann, dann ist das Programmieren 
selbst nur noch ein bisschen Fleißarbeit.

Und da der jennige halt lernen will, reich das VS völlig aus. Es besteht 
nämlich eine sehr große Wahrscheinlichkeit das er es in die Tonne wirft.

Ich kann so ca. 10 Programmiersprachen, davon einige Total veraltert wie 
z.b. COBOL o. DBASE (Clipper). So wie moderne. VB, Basic + C für Arduino 
(Basic ist mir lieber, weil weniger Klammern ;)  etc. Diverse 
Script-Sprachen etc.

Das einarbeiten in eine neue Programmiersprache hat mich fürs Grobe 1 
Tag gekostet. Die Feinheiten lernt man eh erst mit jahrelanger Praxis. 
Und auch erst dann wenn man eine Lösung für ein Problem programmieren 
muss, was man so noch nicht gemacht hat. Und wo man auch keine selbst 
geschrieben DLL hat für.

Und es gibt NIX was ich nur mal so nebenbei mit einen modernen Basic 
nicht gelöst bekommt.

Aber JEDER fängt mal klein an. Und dazu muss man nicht mit so 
Supersprachen anfangen. Die erschlagen nämlich die meisten Leute. Wenn 
man es kann, kann man es.

Gruß

   Pucki

von Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Stefan ⛄ F. schrieb:
> Aber eigentlich benutzt man für solche Kontrollen lint bzw Spotbugs.

Workarounds. Besser ist es, das alles nicht zu brauchen.

Stefan ⛄ F. schrieb:
> Weil: Das ist für mich ein vollkommen
> unwichtiges Pillepalle Detail.

Dann hast du noch nie über entsprechende Probleme geflucht. Ja, ich kann 
die lösen, aber Anfänger eher nicht. Nicht jeder ist so ein Genie dass 
er all die Probleme schon intuitiv löst und umgeht. Erfahrene 
Programmierer haben das so verinnerlicht, dass sie gar nicht merken was 
man alles falsch machen kann. Aber wenn das alles Pillepalle für dich 
ist, löse doch mal fix dieses Problem:

https://ideone.com/OFa4m8

In Java kann so etwas prinzipbedingt nicht passieren. Jede Minute, die 
man mit dem Lösen davon verbringt, ist verschwendet. Und ja, die Lösung 
ist an sich simpel.

Stefan ⛄ F. schrieb:
> Ich beschäftige mich eher mit der Implementierung von Geschäftsprozessen
> und Algorithmen, da spielt die Programmiersprache eine untergeordnete
> Rolle.

Dann solltest du ja kein Problem mit Python oder Java haben und nicht 
auf C bestehen.

Stefan ⛄ F. schrieb:
> Und glaube mir, ich kenne viele.

Ich auch.

Rolf M. schrieb:
> Mein Liebling ist immer noch der Absturz von Java-Programmen mit einer
> "Null pointer exception", wo es doch in Java gar keine Pointer gibt…

Ja, der Klassenname ist blöd gewählt. Aber lieber eine Exception als 
kuriose Speicherfehler. z.B. in dem auf Java basierenden Kotlin versucht 
man das Problem über Nullability zu reduzieren.

von OldMan (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Für Windows ist dieser Compiler mit IDE ganz nett gemacht.
Auch ist Größe des Paktes zur Installation sehr kompakt.
Die Hilfefunktion und die man pages sind gut gelöst und für Anfänger gut 
geeignet.


https://lcc-win32.services.net/

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Mein Liebling ist immer noch der Absturz von Java-Programmen mit einer
> "Null pointer exception", wo es doch in Java gar keine Pointer gibt…

Ja ist ein schöner running gag. Aber die Hölle friert zu: In der 
neuesten Java Version hat die Exception endlich einen Text, der die 
Betroffene Variable benennt.

Leider muss ich mich auf der Arbeit auf LTS Versionen beschränken, das 
wird daher noch viele Jahren dauern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.