"Zur C/C++/Java/Python-Diskussion"

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Donnerstag 12. Januar 2012, 23:07

EyDu hat geschrieben: Zur C/C++/Java/Python-Diskussion: Wenn man vernünftiges C++ programmiert, also unter starker Verwendung von std und boost, dann kommt der Code Python bereits recht nahe.
Irgendwie klingt das für mich zu schön um wahr zu sein. Zugegebenerweise ist meine letzte Programmiererfahrung mit C++ sehr lange her (war da noch jung und fragte mich wie schwierig Spiele-Programmierung eigentlich sein kann), aber ich erinnere mich definitiv dadran, wie ich Zeiger partout nicht verstehen konnte und die meiste Zeit damit verbrachte Recht viel Code für recht wenig Funktionialität anderswoher abzuschreiben (wie zum Beispiel zwei Seiten für ein gähnend leeres, schwarzes Fenster unter Windows).

Wenn möglich würde ich gerne Vergleiche oder anderweitige Demonstrationen sehen wie gut man C++ im Vergleich zu Python effizient nutzen kann. Sollten diese ermutigend ausfallen, wären Hinweise zu guter (Online-)Lektüre und Foren nett. Vielen Dank schonmal :)

Falls ihr ein gutes Java-Forum kennt, auch gerne.
deets

Freitag 13. Januar 2012, 09:30

@webspider

Es ist auch denke ich in dem urspruenglichen Kontext von der Prozessierung von Listen gemeint. Und da bedingt richtig finde ich. Aber im allgemeinen ganz bestimmt nicht. Alleine der Zwang, vorwaerts-Deklarationen verwenden zu muessen, macht einen riesen Unterschied. Das explizite Speichermanagement ebenso. Und und und.
Benutzeravatar
snafu
User
Beiträge: 6285
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 13. Januar 2012, 10:18

webspider hat geschrieben:Wenn möglich würde ich gerne Vergleiche oder anderweitige Demonstrationen sehen wie gut man C++ im Vergleich zu Python effizient nutzen kann.
Ich denke, Dinge wie `boost` sollte man in erster Linie als Unterstützung für eine an sich recht komplexe Sprache sehen. Wenn es sonst keine Gründe gibt, Code in C++ zu schreiben, würde ich an deiner Stelle lieber bei Python bleiben. Da hast du `boost` quasi inklusive und viele weitere Annehmlichkeiten. Warum also sich das Leben schwerer machen, als unbedingt nötigt?
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Freitag 13. Januar 2012, 11:31

Irgendwann kommt der Tag wo ich was anderes als Python beherrschen muss. Oder mal keinen Python-Interpreter zur Verfügung hab (sei es auf einer PSP oder im Browser). Ich möchte mich schon gern dadrauf vorbereiten bevor mich C++ erneut erschlägt. Diesbezüglich waren eben die Hinweise zu std und boost schon sehr interessant gewesen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 13. Januar 2012, 12:01

webspider hat geschrieben:Diesbezüglich waren eben die Hinweise zu std und boost schon sehr interessant gewesen.
Dann werfe ich noch mal Qt in die Schale ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
snafu
User
Beiträge: 6285
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 13. Januar 2012, 12:31

webspider hat geschrieben:Irgendwann kommt der Tag wo ich was anderes als Python beherrschen muss. Oder mal keinen Python-Interpreter zur Verfügung hab (sei es auf einer PSP oder im Browser). Ich möchte mich schon gern dadrauf vorbereiten bevor mich C++ erneut erschlägt. Diesbezüglich waren eben die Hinweise zu std und boost schon sehr interessant gewesen.
Kommt an dem Tag denn wirklich C++ auf dich zu? Denn ansonsten, wenn es diese Richtung gehen soll (weiß gerade kein gutes umschreibendes Wort dafür), dann würde ich eher zu Java raten. C++ kann man sich nach Java ggf immer noch angucken. Ich mein nur, wenn man wirklich gutes C++ beherrschen will, dann gehört da schon einiges zu. Zumindest von dem, was ich bisher gehört hab. Ich selbst kann da auch nur mit Halbwissen glänzen...
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Freitag 13. Januar 2012, 12:43

Aber Java ist so schrecklich bürokratisch :(
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 13. Januar 2012, 12:46

webspider hat geschrieben:Aber Java ist so schrecklich bürokratisch :(
Du meinst Bondage and Discipline?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
deets

Freitag 13. Januar 2012, 12:50

@webspider

Wenn dir Java schon nicht gefaellt - dann wird dir C++ erst recht keine Freude machen...
BlackJack

Freitag 13. Januar 2012, 12:52

@webspider: Dafür ist es nicht so kompliziert wie C++ und eine gute IDE hilft einem mit der Bürokratie umzugehen.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Freitag 13. Januar 2012, 12:54

@Hyperion: Nein, es fängt ja damit an, dass ich zur Objektorientierung gezwungen werde (bisher halte ich sie noch so lange aus meinem Geschreibsel raus wie ich nichts größeres baue). Wenn man das mit der gewissen Umständlichkeit kombiniert, dem Fakt, dass man ohne IDE wahnsinnig werden kann beim Entwickeln und dass man die meiste Zeit aufgrund uneinheitlicher Benennungen und Vorgehensweisen viel eigentlich unnötigen Code schreiben muss. Wenn so Objektorientierung generell aussieht, na dann gute Nacht. Ich nutze es bisher nur wegen der Uni.
Zuletzt geändert von webspider am Freitag 13. Januar 2012, 12:55, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 13. Januar 2012, 12:54

Zumal es in Java weniger Konzepte zu verstehen gibt - wieso muss es in C++ Referenzen und Zeiger geben? Hier wäre es imho sinnvoller gewesen, sich auf eines von beiden festzulegen... naja, Java (und C# afaik) macht das ja so. Ist vielleicht nur ein Puzzle-Stein in einer Pro / Contra-Liste, aber imho ein gewaltiger.

@webspider: Java ist nicht der Prototyp einer OO-Sprache; es hat einen Klassen zentrierten OO-Ansatz. In Python ist OO doch reichlich anders, in JavaScript umso mehr. Smalltalk - wohl der Urvater von OO? - ist da noch einmal verschieden... ich vermute da wird es von sma einen Artikel hier geben, der darauf eingeht? Mal suchen...

Wie BlackJack schon sagte, ist Java nur mit einer IDE beherrschbar - aber die gibt es ja. Insofern ist das kein grundsätzliches Argument gegen eine Technologie. Du wirst zu Hause ja auch eine Küche haben, auch wenn Du die selber nicht aufbauen kannst, sondern einen Handwerker dafür brauchst ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Freitag 13. Januar 2012, 13:01

Gut, dass in Python Objektorientierung anders angegangen wird, hab ich mit Freude bemerkt, sonst würde ich das Thema nie wieder anrühren. Javascript habe ich für eine HTML5-Demo angetestet, schon sehr gewöhnungsbedürftig alles in Funktionen zu packen, insbesondere bei der Syntax. Smalltalk? Nie versucht, nur mal Scheme als Lisp-Dialekt. Den würde ich durchaus Javascript vorziehen :mrgreen:
Benutzeravatar
snafu
User
Beiträge: 6285
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 13. Januar 2012, 13:07

webspider hat geschrieben:[...] Oder mal keinen Python-Interpreter zur Verfügung hab (sei es auf einer PSP oder im Browser).
Na, dann würde ich doch speziell das lernen, was auf der PSP bzw im Browser genutzt wird und nicht einfach C++. Ich hab den Eindruck, dass du dich da irgendwie festgefahren hast. Vielleicht musst du C++ auch einfach besser kennen lernen, um das abschätzen zu können. Ausreden kann man dir's wahrscheinlich eh nicht mehr. ;)

Ich kann nur sagen: Es gibt soviele andere Sprachen, die bestimmt weitaus mehr Spass machen als C++ und Java. Mindestens eins der beiden letztgenannten ist häufig ein notwendiges Übel, um nach dem Studium nen Programmier-Job zu ergattern, aber hobbymäßig würd ich keins von beiden freiwillig anfassen.
BlackJack

Freitag 13. Januar 2012, 13:14

@webspider: Du wirst in Java nicht zu OOP gezwungen, sondern dazu Klassen zu verwenden. Das muss nicht zwangsläufig das selbe sein. Man kann in Java auch prima traditionell prozedural programmieren, solange man nur alles in Klassen steckt und ein ``static`` vor die Prozeduren schreibt. :-)

Und wie schon erwähnt wurde, kann OOP auch ganz anders aussehen. Sogar komplett ohne einen eigenen Typ oder ein eigenes Sprachkonstrukt für Klassen. Beispiele dafür wären Self und Io, die nur Objekte kennen. Oder auch JavaScript, das im Grunde gar kein OOP fertig mitbringt. Denn egal ob man damit Prototyp-basierte, „Klassen”-basierte, oder funktionale Vererbung praktiziert, muss man sich eigentlich immer ein bisschen Hilfscode schreiben, oder aus einer Bibliothek verwenden, um OOP durch zu ziehen. Dafür kann man in JavaScript aber auch so ziemlich jedes Objektmodell umsetzen, was einem gefällt.
Antworten