Frage zu Programmiersprachen allgemein

clemens23

Kabelverknoter(in)
Hallo an alle!

Habe eine Frage. Muss bis morgen (!) eine Schulaufgabe erlidigen.
Die Fragestellung lautet: 'Was erwartet man sich von einer Programmiersprache? Diskutiere diese Thematik!'

Nun fallen mir aber recht wenig punkte ein!

-Struktur
-Hardwarenahe Programmierung / Effizienz (z.B. bei C)
-Vielseitig einsetzbar

Würde gern noch mehr schreiben! http://forum.chip.de/images/smilies/wink.gif


Hab jetzt noch ne h ca. Zeit, wäre super, wenn mir jemand helfen könnte!


Grüße,

Clemens23
 
Danke erstmal!

Cross-Plattform sagt mir nichts!

zu moderne Ausrichtugn! Wir beschäftigen uns gerade mit C, also sollte möglichst alles auf C abgeschnitten sein! doch kannes trotzdem anführen! Danke!
 
Zuletzt bearbeitet:
Java hat ja diesen "Write once, run everywhere" Ansatz, der *eigentlich* genau
das besagt, soagr ohne neue Kompilierung...In der Theorie - in der Praxis sieht
es da meisst anders aus.

C++ würde ich da nicht zu zählen, allein schon zwischen Windows und Linux
gibt es hier große Unterschiede was zB die verwendeten Bibliotheken betrifft.
 
Da ist nix mit statisch Linken, ein für Windows kompiliertes Programm läuft nicht nativ unter Linux ohne vorher für Linux kompiliert zu werden. Das funktioniert aber nur, wenn man kein OS-spezifisches Zeugs drinnen hat (bspw. kann Linux mit den WinAPI-Klamotten nichts anfangen).
 
Selbste wenn man die Bibliotheken statisch linkt heisst das noch lange nicht das man
am Rest nichts ändern muss. Ich schreibe gerade für die FH Tools mit verschiedenen
Netzwerktechniken in C/C++ (Sockets, RPC,Corba etc.), die so wie wir sie in der FH
schreiben nur unter Linux lauffähig sind. Wolltest du die portabel machen müsstest
du alles 2 zwei zeilen mit #IFNDEF anderen Code schreiben. Das hast du bei Java nicht.
 
Klar, wenn man direkt Syscalls/libc-Aufrufe unter Linux oder WinAPI-Aufrufe unter Windows benutzt, muss man natürlich viel mit ifdefs arbeiten.

Aber heutzutage gibts ja schon eine Vielzahl von guten Bibliotheken (die STL, natürlich boost), die schon sehr viel mitbringen. Wenn man z.B. boost::thread für Threading und boost::asio für Sockets verwendet, kann man ohne Probleme auf mehreren Betriebssystemen compilen. Natürlich muss boost für diese Betriebssysteme auch existieren.

Von dem her ist C bzw. C++ schon auch ziemlich portabel, wenn mans mal mit dem alten Visual Basic (nicht .NET) oder anderen "Windows-Programmiersprachen" vergleicht.
 
ich sag ja nicht das es nicht portabel ist, nur nicht so
ohne weiteres wie Java es vom Konzept her sein will.
So wirklich funzt das bei Java auch nicht :)
 
Jo das ist klar,, da geb ich dir recht.

Im Grunde ist es einfach so, dass Programme grundsätzlich cross-plattformfähig sind, solange man eine Programmiersprache nimmt, die auch auf den gewünschten Plattformen läuft. Das gilt aber nur, wenn man Standardfeatures benutzt. Sobald man irgendwie was abgefahreneres hat, kommt man nicht um manuelle Anpassung drum rum. Bei Java ist halt der Grad der "Standardisierung" viel höher, weil die Bibliothek einfach viel größer ist. Sprich, man kann mehr Dinge mit der Standardbibliothek machen (die ja plattformunabhängig ist), während man in C/C++ schneller eigenen plattformabhängigen Code schreiben muss und so C/C++ plattform"unabhängiger" ist.
 
Zurück