Aber man kann sich doch auch mit IDE an den Standard halten...
Hm, an welchen Standard hält sich Borland? Oder das VS?
Ich habe nichts dagegen, wenn mir eine IDE hilft, größere Projekte zu managen. Aber wenn ich gerade dabei bin, eine Sprache zu lernen und dann von einer IDE schon einen Projektrumpf vorgeschmissen bekomme, finde ich nicht tauglich. Leider machen das die großen C++-IDE alle.
Andere Frage: Hälst Du aus den von Dir genannten Gründen C nicht ohnehin für eine Sprache, die für Anfänger vollkommen untauglich ist?
Die Frage ist schwer zu beantworten. Die Sprache ist antiquiert. Man muss sich mit Speicherverwaltung herumschlagen und verstehen, was Pointer und Referenzen sind. Das dürfte für die meisten Anfänger eine Überforderung sein. Ausserdem ist es schwer (nicht unmöglich!), mit C objektorientiert zu programmieren. Darum finde ich es auch nicht falsch, dass die meisten Unis inzwischen von Modula auf Java umgestiegen sind. Kein Speichermanagement, alle komplexen Strukturen werden eh per Referenz übergeben... Das machtes dem Einsteiger leicht.
Im übrigen mussten wir uns an der Uni C dann selber beibringen, ob wir das in Kommandozeile oder IDE gemacht haben war vollkommen egal.
Das Ergebnisse mussten unter HP/UX und Solaris ubersetz- und ausführbar sein.
(Selbst ich nicht, ich hatte eine Silicon Graphics Iris Indigo EDIT: und A/UX
) wurde dann ohnehin zu Hause auf z.B. Windows entwickelt, und dann im Rechnerpool ausprobiert.
Da die meisten zu der Zeit keine HP oder Sun Workstation zu Hause hatten
Das hat natürlich Platformabhängigkeiten gar nicht aufkommen lassen.
Ja so war es bei mir auch. Wir hatten damals im Compilerbau einen SQL-Compiler in C geschrieben (3. Semester, Grundstudium). Dazu gab es einen 14-Tage Crashkurs C. Es wurde eh Pascal vorausgesetzt. Man sollte also schon wissen, was Pointer sind. Ich hatte damals eh schon lange mit Linux programmiert und kannte den gcc (damals noch 2.95). Ausprobiert hab ich dann von Zuhause aus per Shell auf ner Workstation an der Uni. Es kann sein, dass ich daher meine Affinität zu Shelltools habe. Ich bediene Make inzwischen im Schlaf. Ganz abgesehen davon, dass ich mir auch schon mein eigenes Linux zusammengefrickelt hatte.
Fazit vielleicht: Es geht nicht um die Werkzeuge, es geht darum, wie die Materie vermittelt wird.
Wenn ich im Gegensatz zu meinem Studium, das vollkommen Platformagnostisch (1) war, an den Prof aus dem "Anfängerfragen" Thread denke, wird mir übel.
Dem kann ich einfach nur noch zustimmen
Es gibt überall schwarze Schafe. Wichtig ist eben wirklich, was am ende herauskommt
@_ebm_: ich glaube was die Diskussion etwas schwierig macht, ist offenbar Dein tiefes Mistrauen gegenüber dem von IDEs erzeugten Projekten - so wie jedem Webentwickler schlecht wird, wenn er den HTML-Code sieht, den Frontpage und Co ausspucken.
Während bei Frontpage dieses Mistrauen sicherlich berechtigt ist, würde ich dies bei moderen IDEs nicht unsterstellen.
Weder VS, noch Eclipse, noch Netbeans knallen Dein Projekt gleich mit Abhängigkeiten voll, die Du gar nicht willst.
Aber es ist ja klar, dass, wenn Du den jeweiligen GUI-Builder nutzt, auf jeden Fall Abhängigkeiten wie z.B. von SWT bekommst.
Wenn Du aber von so einfachen Beispielen mit 'ner foo.c und bar.c redest, dann redest Du vermutlich auch noch nicht von großen GUI-Anwendungen. Und so ein einfaches Konsolenprogramm wird auch von einer IDE nicht mit Swing-Abhängigkeiten belastet.
Naja, ich hab oben schon angedeutet, woher meine Erfahrungen kommen. Es geht mir ja nicht nur um die Abhängigkeiten in der GUI. Oftmals wird schon eine Standardbibliothek der IDE eingebunden, die dir das Leben als Profi leichter macht. Du lernst also mit dieser Bibliothek. Ich verweise da nur an den verhängnissvollen "Anfängerfragen"-Fred. IDEs sind wirklich sehr hilfreich. Ich würde mich nicht mehr zutrauen, unser Projekt auf Arbeit ohne Eclipse weiter zu entwickeln. Da wäre ich nur noch dabei, die Typos aus dem Code zu frickeln.
In dem Athemzug will ich auch erwähnen, das Bibliotheken gerad bei C++ sehr wichtig sind. Ohne die STL oder Boost hätte ich keine Lust mehr ...
Ich bin der klaren Auffassung, dass der Einstieg mit einer IDE leichter ist, schon alleine aufgrund der genannten Möglichkeit einfach auf "Run" zu klicken.
Und gerade wenn es um Abhängigkeiten von Libraries geht, finde ich auch immer noch IDEs besser. Da muss ich einmal angeben, welche lib ich brauche und gut, ich muss mir nicht überlegen welchen Kommandozeilen-Befehl ich dafür brauche.
Wenn es dir nur um den Knopf "Compile"/"Run"/"Debug" geht. Naja, das ist schon schön bequem und man kann sich auf seinen Code konzentrieren. Du musst aber als Anfänger auch lernen, die IDE zu bedienen, einzustellen, was du wo brauchst. Da können bebensogut die vielen Schalter verwirren. Auf der Konsole javac <klasse>.java aufzurufen, halte ich nicht für übertrieben. Das geht recht einfach. Klar, wenn man Obj-C oder C++ programmiert, wird das schon tricky, das werden aber die wenigsten Anfänger. Die Barriere ist viel zu gross.
Ich hab z.B. oo-programmieren mit BlueJ gelernt, das hat zwar erstmal nichts mit "richtigem" programmieren zu tun, aber gerade dadurch, dass mir alles komplizierte abgenommen wurde, konnte ich mich voll drauf konzentrieren objektorientierte Konzepte zu lernen und das anhand praktischer Beispiele.
Das war für mich die perfekte Mischung zwischen Lerhbuch lesen und Beispiel durchprogrammieren, die mich sehr schnell hat OOP und dann auch Java lernen lassen.
Die ersten Schritte und das erste Programm in Eclipse waren dann ein Katzensprung.
Den javac-Befehl habe ich seitdem nur in einer einzigen Vorlesung mal benutzt, aber ansonsten hab ich mir die Mühe erspart.
BlueJ sagt mir garnichts. OO ist für mich auch eher ein Paradigma als eine art Sprache. Ich lerne, was Klassen sind, was Objekte und was Instanzen. Ich mache mir Gedanken um Schnittstellen, Inherritance, Polymorphismus,... Mit welcher Sprache ich das mache, ist dabei recht egal.
Wenn ich nebenbei mal einen Test schreibe, um zu sehen, ob etwas so geht, wie ich es mir vorstelle, nutze ich übrigens keine IDE. Bis ich die gestartet und eingerichtet hab, ist der Test schon fast vollständig implementiert.
Ich will die Bequemlichkeiten einer IDE nicht schmälern. Für mich lenkt die Funktionsvielfalt aber unter gewissen Gesichtpunkten vom Problem ab. Papier und Bleistift ist eben manchmal doch besser als ne Schreibmaschine
Gruss Carsten