Frage von Eisenkoenig, 34

Kann man die Sprache C für echt alles nutzen?

Hey liebe Community,

Da so gut wie alle modernen Programmiersprachen aus C abgeleitet sind, frage ich mich, ob man dann nicht C für jedes seiner Vorhaben verwenden kann.

- aber wieso wird es dann nicht auch für Websites benutzt

- wieso kann man C Code nicht Plattform unabhängig machen ?

- wieso nicht C für Android Apps nutzen ?(Ich weiss das es keine Libary dafür gibt)

Ich kenne mich gut mit Java und Html,Css,Js aus aber kennen den Vorteil gegenüber C nicht.

Antwort
von MisterX85, 21

- aber wieso wird es dann nicht auch für Websites benutzt

Weil es keinen Sinn hat da C nicht Plattform-unabhängig ist wie es bspw. Auszeichnungssprachen sind. Es wäre auch wesentlich aufwendiger zu realisieren.

Die Browser die das interpretieren sind ja in C bzw. C++ geschrieben.

In sofern werden sie quasi in C ausgeführt..

- wieso kann man C Code nicht Plattform unabhängig machen ?

Wenn Du dir Sprachen wie Java anschaust, wirst Du feststellen das die Programme auf einer JVM laufen. Diese ist in C geschrieben und zwar für  jede Hardware& jedes Betriebssystem auf dem Java laufen soll. C macht es erst möglich das Javacode unabhängig von Hardware laufen kann da es hier die Vermittlungsfunktion übernimmt. Wenn C hier nicht um die Hard und Software-spezifischen Parts kümmern würde, wäre eine Plattform-übergreifende Sprache schlicht unmöglich.

- wieso nicht C für Android Apps nutzen ?(Ich weiss das es keine Libary dafür gibt)

Du kannst C& C++ Code in Java nutzen.

Ich kenne mich gut mit Java und Html,Css,Js aus aber kennen den Vorteil gegenüber C nicht.

Dann solltes Du mal versuch ein wirklich komplexes Programm( kein HelloWorld +), das Du in Java schreibst, versuchen in C zu schreiben und den Aufwand vergleichen. Ich sage dir, den Unterschied merkst Du schnell.

Die Abstraktion von C wurde geschaffen, dass sich Programmierer auf das Wesentliche konzentrieren können und nicht auf hardwarespezifische Gegebenheiten achten müssen, die mit der eigentlichen Aufgabe nichts zu tuen haben.

Antwort
von wolfgang1956, 5

Es gibt für jedes pc-artige Betriebssystem C-Compiler, die auf die speziellen des jeweiligen Systems zugeschnitten sind. Die Programmiersprache C kann man dann für „alles“ nutzen. Allerdings werden Versionen von „Hello World“ auf jedem der Betriebssysteme etwas anders aussehen, weil für jedes Betriebssystem die Programmformate unterschiedlich sind. Windows kennt DLL's, Linux, UNIX und OS X kennen keine DLLs …

  • C-Compiler für Windows erstellen Windows-Versionen von „Hello World“
  • C-Compiler für Linux erstellen Linux-Versionen von „Hello World“

  • C-Compiler für UNIX erstellen UNIX-Versionen von „Hello World“
  • usw. usf … :-)

Das Hirnschmalz, dass in Java dafür eingesetzt hat, dass es mit der JVM plattformunabhängig wird, könnte man im Prinzip auch in einen C-Compiler stecken. Allerdings wurde C mit einer völlig anderen Zielsetzung konzipiert. Bei Java wurde gleich bei der Sprachgestaltung darauf geachtet, dass für die JVM einen Bytecode generiert wird, der dann auf jedem System mit dessen spezieller Laufzeitumgebung läuft.

Wie weiter oben angedeutet geht das prinzipiell schon für C, nur müsste dann ein Compiler für die verschiedenen Betriebssysteme jeweils eine Programmversion erstellen. Offenbar hat sich noch niemand gefunden, der so eine Aufgabe erledigt.

HTML und CSS … sind vom Konzept keine Programmiersprachen, sondern Seitenbeschreibungssprachen, die in Browsern die Webseiten darstellen. Diese Aufgaben unterscheiden sich deutlich von den Anforderungen an eine Programmiersprache. Beispielsweise gibt es keine Sortieralgorithmen.

Expertenantwort
von medmonk, Community-Experte für Computer, 21

aber wieso wird es dann nicht auch für Websites benutzt

C wird ja indirekt für Websites genutzt. Denke da in erster Linie an HipHop, ein von Facebook entwickelter Bytecode-Compiler zum Umwandeln von PHP-Code in C++-Code. Was so erst einmal nur zur Entlastung der Server-Prozessoren gedacht ist.

wieso kann man C Code nicht Plattform unabhängig machen ?

Du kannst mit C alles mögliche umsetzen. Nur muss das ganze am Ende auch für die einzelnen Plattformen kompiliert werden. Genau da liegt der Hund begraben. Den Windows ist nicht UNIX/Mac oder Linux. Umgekehrt das selbe. Man also nicht mal eben etwas Plattform unabhängig aus dem Boden stampft. 

Ich kenne mich gut mit Java und Html,Css,Js aus aber kennen den Vorteil gegenüber C nicht.

HTML ist lediglich eine Auszeichnungssprache die vom Client (Web-Browser) dargestellt wird. Selbe gilt auch für CSS und JavaScript. Lediglich Client-seitig verarbeitet werden. PHP hingegen eine Server-seitige Script/Programmiersprache ist. Mit PHP der Client also nichts am Hut hat, da die Verarbeitung am anderen Ende der Leitung stattfindet. Sei es die Validierung eines Formulares oder das Verarbeiten einer Suchanfrage (Stichwort: Datenbank > MySQL).

Antwort
von zalto, 9

Schaut man sich die heutzutage beliebtesten Programmiersprachen an (Java, C, C++, C#, Javascript) stellt man fest, dass diese alle eine C-ähnliche - oder zumindest stark durch C inspirierte - Syntax und Schlüsselwörter haben. Wer C kann, dem wird das alles nicht völlig fremd vorkommen. Insofern hat sich die "C-Familie" durchgesetzt.

Dass es dann doch nicht immer nur reines C ist, liegt an den Vor- und Nachteilen der Sprache. Hardwarenähe ist für Treiber sinnvoll - für Unternehmensanwendungen aber nicht notwendig. Wenn der Compiler vieles zulässt, ist das eine große Freiheit - aber dem Entwickler unterlaufen auch eher Fehler. Portierbarkeit auf andere Systeme mit nur geringen Anpassungen am Programmcode ist gut - völlig ohne Anpassungen wäre aber besser (sofern es nicht wieder neue Nachteile mit sich bringt).

Keine passende Antwort gefunden?

Fragen Sie die Community