# Frage zu Programmiersprachen allgemein



## clemens23 (29. November 2011)

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


----------



## hardware_fanatiker (29. November 2011)

gute lesbarkeit
Portierbarkeit(Cross-Platform)
moderne Ausrichtung(OOP, etc.)
frei verfügbarkeit des compilers

soweit dsa was mir jetzt so einfällt


----------



## clemens23 (29. November 2011)

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!


----------



## clemens23 (29. November 2011)

Das reicht dann auch schon! 

Danke!


-Geschlossen-


----------



## hardware_fanatiker (30. November 2011)

Nochmal eben zum Nachtrag, Cross-Platform meint, dass ich ein Program nur einmal coden muss, aber es auf verschiedenen BS(z.B. Linux und Windows) nutzen kann.


----------



## Superwip (1. Dezember 2011)

> aber es auf verschiedenen BS nutzen kann.


 
... und vor allem auch verschiedenen Hardwareplattformen


----------



## Kel (1. Dezember 2011)

Superwip schrieb:


> ... und vor allem auch verschiedenen Hardwareplattformen


 Ich versteh darunter, dass man es ohne (große) Anpassungen einfach für eine Zielplattform bei Bedarf kompilieren kann.

Also Java/Phython, aber auch C++ mit QT-Lib - lieg ich da falsch?


----------



## Zappzarrap (1. Dezember 2011)

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.


----------



## Kel (1. Dezember 2011)

Zappzarrap schrieb:


> 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.


Dann werden die halt statisch gelinkt, fertig?


----------



## bingo88 (1. Dezember 2011)

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).


----------



## Zappzarrap (2. Dezember 2011)

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.


----------



## pyro539 (2. Dezember 2011)

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.


----------



## Zappzarrap (2. Dezember 2011)

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


----------



## pyro539 (3. Dezember 2011)

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.


----------

