FB18 - Das Forum für Informatik

fb18.de / Informatikstudium Weiteres / Studium allgemein

Programmiersprache "C" unwichtig?

Programmiersprache "C" unwichtig? 2007-06-04 17:49
Wulf
Während meines Studiums bis jetzt ist mir aufgefallen, dass hauptsächlich die Programmiersprachen Java, Prolog, Scheme, C++ (absteigende Relevanz nach persönlichem Eindruck) in Vorlesungen etc. zur Sprache kommen, C hingegen wird fast nirgendwo erwähnt.

Hatte ich bis jetzt einen vollkommen falschen Blick auf die "echte" Welt, von der ich denke, dass in ihr C eine der relevantesten Programmiersprachen ist und die anderen (siehe oben) eher ein Nischendasein haben?

Wenn das nicht so ist, welche Gründe hat die Uni dann, C derart systematisch zu verschweigen und eher Java in Vordergrund zu stellen?

RE: Programmiersprache "C" unwichtig? 2007-06-04 18:25
Fred
C hingegen wird fast nirgendwo erwähnt.
In der T3 Übungsgruppe hat man sich fast ausschliesslich mit C und Assembler befasst.

welche Gründe hat die Uni dann, C derart systematisch zu verschweigen und eher Java in Vordergrund zu stellen?
C eignet sich überhaupt nicht als Programmiersprache für Anfänger. Man kann einfach zu viele dumme Sachen machen, z.B. über Arraygrenzen hinweg arbeiten, oder Fehler solcher Art:

void gleich(int a, int b) { if (a=b) printf("gleich"); else printf("nicht gleich"); }
Ausserdem gibt es keine Strings in C, man muss sich selber um den Speicher kümmern, es gibt keine Exceptions, die Wertebereiche der integralen Typen ist nicht genau definiert etc pp

C wurde als maschinennahe Sprache entworfen, eine Art "High Level Assembler". Wenn Du Dich mit eingebetteten Systemen und co beschäftigst, dann wird C sicher eine grosse Rolle für Dich spielen.

Ach so, und wenn es um die Verbreitung auf dem Softwaremarkt geht, dann ist die wichtigste Sprache glaube ich Fortran. Was da noch so an Legacy Code aus den 70ern rumfliegt… :)

RE: Programmiersprache "C" unwichtig? 2007-06-04 18:30
garou
Während meines Studiums bis jetzt ist mir aufgefallen, dass hauptsächlich die Programmiersprachen Java, Prolog, Scheme, C++ (absteigende Relevanz nach persönlichem Eindruck) in Vorlesungen etc. zur Sprache kommen, C hingegen wird fast nirgendwo erwähnt.
IIRC wurde bei uns vorausgesetzt, daß wir uns für T3 C selbst beibringen können.

Hatte ich bis jetzt einen vollkommen falschen Blick auf die "echte" Welt, von der ich denke, dass in ihr C eine der relevantesten Programmiersprachen ist
AFAIK C, C++ und Java, wenn du die echte Welt in Codeproduktion mißt.

und die anderen (siehe oben) eher ein Nischendasein haben?
Java? C++? Nischendasein?? Die einzigen, die ich nicht an jeder Ecke sehe, sind Scheme und Prolog, und auch die sehe ich immer mal wieder wen benutzen.
Also, ich sehe jemanden, der die Sprache benutzt. Nicht jemanden, der von den Sprachen benutzt wird. Wenn du findest, daß das interessante Feststellungen sind, könnte dir Prolog wieder begegnen, wenn du dich mit Sprachverarbeitung beschäftigst. Oder mit Datenbanken. Oder einer Menge anderer Dinge, die mir gerade nicht einfallen wollen.

Wenn das nicht so ist, welche Gründe hat die Uni dann, C derart systematisch zu verschweigen und eher Java in Vordergrund zu stellen?
Ich zäume mal das Pferd von hinten auf…
Java, Prolog und Scheme sind Beispiele für objektorientierte, relationale und funktionale Programmierung, und diese Paradigmen sind das, worum es in den Veranstaltungen eigentlich geht; Die Sprachen sind nur dazu da, um die vorgestellten Konzepte auch mal in Aktion zu sehen. Das mag zwar sehr Ivory Tower klingen, aber nach der Vorlesung, in der Java behandelt wird, solltest du z.B. auch fähig sein, andere objektorientierte Sprachen wie z.B. Smalltalk recht schnell zu lernen. Und nach der vollen Dosis Grundstudium solltest du auch einen Blick auf C werfen können und sowas sagen wie "Oh, die prozedurale Programmierung in den Funktionen, das habe ich doch schon mal in Javas Methoden gesehen, sogar die Syntax und Bezeichner sind fast gleich, und… Nanü? Was ist das denn? *Doku blätter* Referenzen auf Funktionen, das kenne ich doch aus Scheme." Insofern: Verschwiegen?

RE: Programmiersprache "C" unwichtig? 2007-06-04 19:08
Wolf
Programmiersprachen sind zielorientiert zu wählen. In Deinem Studium hast Du wohl bisher noch keinen C-Bedarf gehabt. Das mag aber noch kommen.

Ich benutze C für kleine, aber rechenintensive Sachen, um schnell Code zu haben, der performant ist. Andere Leute benutzen C, um hardwarenahes Gedöns zu basteln (z.B. Treiber schreiben). Oder weil sie die Sprache mögen (Mokrates).

Fazit: Versuch einfach immer, die Sprache zu finden, die für die Lösung Deines Problems^W^WDeiner Aufgabe ideal ist. Wenn das SPL ist und keiner davon spricht (warum auch immer :P), dann ist das halt so.

RE: Programmiersprache "C" unwichtig? 2007-06-04 20:45
Krümelkeks
Schau mal bei den Bioinformatikern vorbei.
Bei uns wird ueberwiegend C benutzt.

RE: Programmiersprache "C" unwichtig? 2007-06-05 02:38
Anonymer User
Evtl. ja ganz interessant zu dem Thema:
http://www.heise.de/ix/artikel/2007/06/056/

RE: Programmiersprache "C" unwichtig? 2007-07-19 19:36
Anonymer User
Ich denke auch, dass es ganz darauf ankommt, wo man später landet usw. An der Uni wird ja nicht Java gelernt weil Java das einzig richtige ist und die Lösung für alle Probleme, sondern weil es ein Vertreter aus der Objektorientierten-Sprache ist. Wenn man dort einmal die wesentlichen Sachen geschnallt hat, dann kann man sich auch in relativ kurzer Zeit in C# einarbeiten.

Und wenn man Programmieren allgemein geschnallt hat, dann kann man sich auch C beibringen. Ich habe an der UNI ein Semester in C programmieren dürfen und mir alles eigentlich mit nem Buch beigebracht (C von A bis Z Galileo Press). Von der Syntax eigentlich alles recht easy. Gibt aber sicherlich paar Sachen auf die man achten muss, vor allem, wenn man am Kernel rumfummelt –> Absturz :-)

Später im Berufsleben kommt es auch darauf an wo Du landest. Entwickelst Du Anwendersoftware wird C sicherlich keine Rolle in Deinem Leben spielen. Wenn Du aber Betriebssysteme, Systemnahe programmierung oder Hardware programmieren wirst, dann wird Dir eher JAVA und C# am Ars… vorbeigehen und dein Fokus auf C und Assembler gerichtet sein.

Also alles nur davon abhängig wo es einen später hinverschlägt! So sehe ich das.