C++, Perl oder Delphi

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Jomisch, obwohl ich C++-Bücher im Schramk habe: ich würde wenn eine Mainstream-Sprache lernen, dann C. Damit bin ich ebenso auf lunars und BlackJacks Seite.
Mich würden nur mal die Argumente interessieren.

Ich persönlich lerne nebenbei noch C++, da wir es in ser Schule benutzen. Und wenn Programieren schon mein Hobby ist, muss ich mich nicht bloß stellen ;) Und ich mag es, dem Lehrer voraus zu sein (wir ham so nen ganz lustigen, der irgentwie keine Ahnung hat, was er macht ;) )

MfG EnTeQuAk
Benutzeravatar
thorbytes
User
Beiträge: 37
Registriert: Samstag 24. Februar 2007, 17:38
Kontaktdaten:

Leonidas hat geschrieben:aber ein Problem in the-Lisp-Way zu lösen ist schon anspruchsvoller.
Dafür meine Hochachtung. Vor allem schon wegen der Integration in Emacs!
Leonidas hat geschrieben:Und es wurden noch keine Leute aus dem Security-Team vergrault.
Stimmt! Ist leider mittlerweile sehr kommerziell und damit auch sehr politisch geworden (im Gegensatz zu Python).
EnTeQuAk hat geschrieben:Und ich mag es, dem Lehrer voraus zu sein
Wer (wie wir hier) Autoditakt ist, brauch auch keinen Lehrer. Das brauchen nur welche, die sich gefährliches Randwissen aneignen :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

EnTeQuAk hat geschrieben:Mich würden nur mal die Argumente interessieren.
Einfacher portierbar, läuft erst recht überall, direkter Zugriff auf GTK+ ( ;) ), schlanker. Viele FOSS Projekte sind in C geschrieben, weniger in C++ (hier fällt mir beispeilsweise KDE ein, was ja auch nicht klein ist). Für anspruchsvolle Sachen kann man ja immer noch C mit Python verbinden.

Ich habe in einem Java-Wahlkurs mit C++ gegenprogrammiert, das war witzig, aber da waren auch nur ganz Grundlegende Sachen. Weiter sind wir nicht gekommen, wir haben am Ende immer ein IRC-Quiz gemacht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
XT@ngel
User
Beiträge: 255
Registriert: Dienstag 6. August 2002, 14:36
Kontaktdaten:

Für mich persönlich muss ich sagen, dass ich mit C++ nie so richtig warm geworden bin.
Ich hab hier "Die C++-Programmiersprache" von Addison-Wesley rumstehen. Hat sich wirklich gelohnt, denn "rumstehen" tut das fette Buch jetzt schon min 5 Jahre :lol:

Ich hab mich grad total in mono und C# verliebt :oops: da IronPyton einfach schlecht dokumentiert ist.
Ansonsten sind die drei sprachen die hier zur Auswahl stehen, nicht so der bringer, dann lieber VB.Net oder Ruby ...
Und haut nicht immer auf PHP ein, ich bastle damit schon seit Version 3 rumund finds immer noch besser als jedes Python Framework...

MfG
Andreas
BlackJack

Es gibt aber Leute, die wollen programmieren und nicht nur rumbasteln und dafür eignet sich PHP dann nicht so gut. :P
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

thorbytes hat geschrieben:Dennoch konnte ich mich bisher in alle Programmiersprachen mit meinem abgeschlossenen C/C++ Fernstudium (nein, ich bin kein Angeber) in alle Programmiersprachen ziemlich schnell einarbeiten.
Es gibt einen Unterschied zwischen "in einer Sprache programmieren koennen" und "eine Sprache (inkl. Paradigmen etc.) beherrschen". Wenn z.B. ein Java-Programmierer Python programmiert, kann man das recht oft noch am Code erkennen (funktioniert auch mit anderen Sprachen, demletzt hab ich z.B. Ruby-Code gesehen, der ziemlich eindeutig von einem C++-Programmierer kam).

Ich persoenlich kann weder C++ noch Perl noch Delphi, ich hab alle mal angeguckt und sie haben mir nicht gefallen. Meine "Zweitsprache" (nach Python) ist C. Eine nette, kleine, schlanke Sprache, deren groesster Nachteil darin liegt, dass man fuer so ziemlich alles non-Standard-Libs braucht. Ich benutze C aber hauptsaechlich, um kleinere Sachen zu schreiben, wo das nicht so sehr ins Gewicht faellt.
C++ hingegen setzt einen ganzen Haufen Features drauf, das blaeht die kleine, schlanke Sprache C zu einem riesigen Monster auf (nebenbei ist C++ um Faktor 4 langsamer als C). Das macht mir die Sprache schonmal unsympathisch.
Ausserdem ist C++ darauf ausgelegt, groessere Systeme mit Objektorientierung zu bauen, dafuer benutze ich persoenlich aber deutlich lieber Python (schon allein, weil Pythons OOP deutlich mehr Features bietet und die Sprache sich (mMn) dadurch, dass sie higher level ist, einfach besser zum Aufbau von groesseren Systemen eignet).

Wenn ich mal Zeit haette, mir noch eine Sprache ausfuehrlich anzugucken, waere das entweder Smalltalk oder eine funktionale Sprache (z.B. Lisp).

PHP hab ich auch mal gemacht, aber mit der Zeit hat's mir einfach nicht mehr gefallen. Die Sprache und insbesondere die Library sind einfach ein riesiger, zusammengeworfener, inkonsistener Moloch, der sich primaer fuer "mal eben schnell was hinrotzen" eignet, aber nicht so sehr zum Aufbau groesserer Systeme.
lunar

lumax hat geschrieben:
thorbytes hat geschrieben:Dennoch konnte ich mich bisher in alle Programmiersprachen mit meinem abgeschlossenen C/C++ Fernstudium (nein, ich bin kein Angeber) in alle Programmiersprachen ziemlich schnell einarbeiten.
Es gibt einen Unterschied zwischen "in einer Sprache programmieren koennen" und "eine Sprache (inkl. Paradigmen etc.) beherrschen". Wenn z.B. ein Java-Programmierer Python programmiert, kann man das recht oft noch am Code erkennen (funktioniert auch mit anderen Sprachen, demletzt hab ich z.B. Ruby-Code gesehen, der ziemlich eindeutig von einem C++-Programmierer kam).
Full ack. Ich sehe das immer noch an mir selbst ;) Wenn ich mir so die Snippets anschaue, dich ich in meiner Anfangszeit mit Python geschrieben habe, dann sehe ich deutlich meine Ursprünge: C# unter Windows ;) Mittlerweile schäme ich mich für diesen Code... Glücklicherweise habe ich ihn nie veröffentlicht ;)
nebenbei ist C++ um Faktor 4 langsamer als C.
Das glaube ich so pauschal erstmal nicht ;) C hat wenig Sprach-Elemente und ist deswegen relativ konstant, was die Geschwindigkeit der Sprache angeht (ohne externe Bibliotheken zu betrachten): Dem Programmierer sind eben nicht so viele verschiedene Wege zum Erreichen eines Ziels gegeben.
Unter C++ hängt es jedoch starkt vom Programmierstil ab, wie schnell ein Programm ist. Wenn man für alles objekt-orientiertes Design ansetzt, dann ist C++ abhängig von der Implementierung relativ langsam. Man kann mit C++ allerdings auch funktional schreiben und nur neue C++-Operatoren einsetzen, oder auf Stream-IO zurückgreifen. Dann ist C++ nicht wesentlich langsamer als C.
Bei Einsatz externer Bibliotheken ist das sowieso alles hinfällig. Beispiel Threading: Wer sich auf C und Posix-Threads verlässt, ist sicherlich nur wenig performant, weil Posix-Threads kompliziert und fehleranfällig zu programmieren sind. C++ mit hoch-optimierten Bibliotheken wie den Intel Threading Blocks einsetzt (und im Optimalfall auch noch mit dem icc kompiliert), erhält allerdings extrem schnellen Code.
Ausserdem ist C++ darauf ausgelegt, groessere Systeme mit Objektorientierung zu bauen
Mmmh, was soll das jetzt sagen? Das C++ nur für große Systeme geeignet ist? Das C für große Systeme nicht geeignet ist?
Das ist alles viel zu pauschal. C eignet sich ebenso wie C++ für große System. C++ eignet sich ebenso wie C für kleine Dinge. Es hängt alles davon ab, wie man C++ einsetzt. Aufgrund der enorm umfangreichen Syntax kann man mit C++ so ziemlich jeden Programmierstil umsetzen. Man kann C++ wie C, aber auch wie C# oder Java einsetzen.
Generell bezweifele ich aber die Eignung von C++ für große Projekte, weil man - sofern man nicht extrem logisch, durchdacht und diszipliniert vorgeht - irgendwann über der komplexen C++-Syntax das Ziel aus den Augen verliert ;)
Die Sprache und insbesondere die Library sind einfach ein riesiger, zusammengeworfener, inkonsistener Moloch, der sich primaer fuer "mal eben schnell was hinrotzen" eignet, aber nicht so sehr zum Aufbau groesserer Systeme.
Das ist die beste und zutreffendeste Beschreibung, die ich je zum Thema PHP gehört habe! Das ist mein voller Ernst!
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

Naja, okay, ich war vllt. etwas zu pauschal, was meine Kritik an C++ angeht. Klar haengt die Geschwindigkeit vom Programmierstil und den Libs ab, aber ich meine, Faktor 4 war die Faustregel.
Und ja, C eignet sich auch zum Aufbau groesserer Systeme (sieht man ja schon an diversen in C geschriebenen Sachen (Linux, Gnome, Python z.B.)), genauso wie man mit C++ kleinere Sachen bauen kann. Ich denke aber, dass bei C++ der Fokus etwas mehr darauf liegt, groessere Sachen zu bauen, wobei das vllt. auch nur meine persoenliche Einschaetzung ist (und wohl auch damit zusammenhaengt, dass C++ (zumindest im Vergleich zu C) ein ziemliches Feature-Monster ist). Bei kleinen Sachen sehe ich keine Vorteile gegenueber C, fuer groessere Sachen benutze ich halt Python. Naja, jedem das Seine.
Benutzeravatar
thorbytes
User
Beiträge: 37
Registriert: Samstag 24. Februar 2007, 17:38
Kontaktdaten:

lunar hat geschrieben:
Die Sprache und insbesondere die Library sind einfach ein riesiger, zusammengeworfener, inkonsistener Moloch, der sich primaer fuer "mal eben schnell was hinrotzen" eignet, aber nicht so sehr zum Aufbau groesserer Systeme.
Das ist die beste und zutreffendeste Beschreibung, die ich je zum Thema PHP gehört habe! Das ist mein voller Ernst!
Dann frage ich mich allerdings wie es dann funktionieren kann, dass "größere Systeme" wie z.B. phpBB, XOOPS oder auch die Plattform für Wikipedia (MediaWiki) in PHP geschrieben sind und es hunderte von Zusatzmodulen dazu gibt :?:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

thorbytes hat geschrieben:Dann frage ich mich allerdings wie es dann funktionieren kann, dass "größere Systeme" wie z.B. phpBB, XOOPS oder auch die Plattform für Wikipedia (MediaWiki) in PHP geschrieben sind und es hunderte von Zusatzmodulen dazu gibt :?:
Also im Fall von phpBB funktioniert es ja nicht - Bugs über Bugs, wird schon seit Jahren geflikt, ebenso Joomla und Wordpress. Und Mediawiki skaliert einfach nicht. Wikipedia ist erst nutzbar geworden, nachdem sie einen Hardwareregen darüber ausgeschüttet haben. Wikipedia besteht inzwischen wohl aus mehr Squids als aus Webservern.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
thorbytes
User
Beiträge: 37
Registriert: Samstag 24. Februar 2007, 17:38
Kontaktdaten:

Leonidas hat geschrieben:Also im Fall von phpBB funktioniert es ja nicht - Bugs über Bugs
It's not a bug, it's a feature ;-)

Nein, aber mal im Ernst. Welche Software hat keine Bugs? Und umso mehr Nutzer eine Software hat, desto mehr Bugs fallen auf. Liegt eben in der Natur der Sache.

Aber um die PHP-Diskussion an dieser Stelle mal zu beenden:
Würden mehr Provider eine Python-Unterstützung auf Ihren Servern bieten, würde ich es ernsthaft in Erwägung ziehen für Online-Projekte ebenfalls Python zu verwenden.

Und um zum ursprünglichen Thema zurück zu kehren:
C++ ist nie verkehrt zu lernen, da es hier auf allen Betriebssystemen entsprechende Frameworks gibt. Delphi ist leider sehr plattformabhängig und Perl schon ziemlich veraltet (da bleibt man dann lieber komplett bei Python).

Wer Erweiterungen für Programmiersprachen schreiben will, ist auf jeden Fall mit C gut bedient. Selbiges gilt natürlich auch für den Linux-Kernel.

Ob JAVA eine gute Wahl ist, da bin ich etwas geteilter Meinung. Ist zwar auf der einen Seite plattformunabhängig, aber auf der anderen nicht grad Ressourcen schonend. Obwohl ich Eclipse mit PyDev verwende (ist aber ein anderes Thema). Ansonsten bin ich allerdings von JAVA wieder total weg gekommen.

Ob man Lisp, Scheme oder dgl. lernen möchte hängt wohl eher davon ab, was man eigentlich machen möchte. Lisp könnte ich mir persönlich nur in Verbindung mit Emacs vorstellen. Diesen also zu erweitern und meinen Bedürfnissen anzupassen.

Vielleicht ist eine andere Überlegung, bevor man eine neue Programmiersprache lernt, ob man sich nicht eher mal mit Seitenbeschreibungssprachen wie HTML, CSS und XML beschäftigt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

thorbytes hat geschrieben:Nein, aber mal im Ernst. Welche Software hat keine Bugs? Und umso mehr Nutzer eine Software hat, desto mehr Bugs fallen auf. Liegt eben in der Natur der Sache.
Klar, aber phpBB ist noch dazu schlecht geschrieben und PHP ist eine Programmiersprache die zum schlampen verleitet. Zum Beispiel SQL-Injections: Die Python DB-API 2 sieht SQL-Escaping vor und das wird auch oft genutzt. In Python Webframeworks ist auch die Trennung von Templates und Logik stärker betont. Klar, kann man auch in PHP machen - ist aber nicht die Regel. Wenn ich etwas in PHP machen solle, würde ich zuerst mal ein brauchbares Framework suchen, mit welchem man etwas struktur in die Programmierung reinbringen könnte.
thorbytes hat geschrieben:Würden mehr Provider eine Python-Unterstützung auf Ihren Servern bieten, würde ich es ernsthaft in Erwägung ziehen für Online-Projekte ebenfalls Python zu verwenden.
Da mir eine generelle Python-Unterstützung in aller Regel sowieso nicht passen würde (nein, CGI ist nicht genug) verwende ich meinen eigenen Server, habe es bisher noch nicht bereut.
thorbytes hat geschrieben:Ob JAVA eine gute Wahl ist, da bin ich etwas geteilter Meinung. Ist zwar auf der einen Seite plattformunabhängig, aber auf der anderen nicht grad Ressourcen schonend.
Serverseitig soll Java an sich sehr gut performen, und wenn man von der langen Startup-Zeit mal absieht läuft Java vermutlich schneller als CPython.
thorbytes hat geschrieben:Ob man Lisp, Scheme oder dgl. lernen möchte hängt wohl eher davon ab, was man eigentlich machen möchte. Lisp könnte ich mir persönlich nur in Verbindung mit Emacs vorstellen. Diesen also zu erweitern und meinen Bedürfnissen anzupassen.
Elisp ist zumindest laut dem Autor des "Practical Common Lisp"-Buches ein eher alter und unbequemer Dialekt. Habe ich schon erwähnt, dass es Common Lisp Webframeworks gibt? :D
thorbytes hat geschrieben:Vielleicht ist eine andere Überlegung, bevor man eine neue Programmiersprache lernt, ob man sich nicht eher mal mit Seitenbeschreibungssprachen wie HTML, CSS und XML beschäftigt.
Hat hier jemand schon JavaScript vorgeschlagen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
thorbytes
User
Beiträge: 37
Registriert: Samstag 24. Februar 2007, 17:38
Kontaktdaten:

Leonidas hat geschrieben:In Python Webframeworks ist auch die Trennung von Templates und Logik stärker betont.
Gefällt mir gut.
Leonidas hat geschrieben:Klar, kann man auch in PHP machen - ist aber nicht die Regel.
Nur mit externen Abstraktions-Klassen. PEAR bringt da zwar einiges mit, ich verwende da (auch für Datenbank-Zugriff) immer externe Klassen.
Leonidas hat geschrieben:Serverseitig soll Java an sich sehr gut performen
Ja, mit Dual-Prozessor und 4 GB RAM und abgesehen von den Speicher-Lecks die ständig auftreten.
Leonidas hat geschrieben:Hat hier jemand schon JavaScript vorgeschlagen?
Na, da wird's aber auch Zeit ;-)
lunar

thorbytes hat geschrieben:
Leonidas hat geschrieben:Serverseitig soll Java an sich sehr gut performen
Ja, mit Dual-Prozessor und 4 GB RAM und abgesehen von den Speicher-Lecks die ständig auftreten.
Die Systeme, die Java in großem Maßstab einsetzen, sind in der Regel noch etwas dicker bestückt. Java eignet sich nämlich ziemlich gut für Websites, die wirklich stark besucht sind, und die mit tausenden Zugriffen pro Sekunde zurechtkommen müssen. Das liegt auch daran, dass die Server-VM von Sun extrem gut optimiert. Das dabei viel Arbeitsspeicher verbraucht wird, ist in großen Szenarien eher nebensächlich, da für Caching von Datenbank-Verbindungen und ähnlichem sowieso viel Speicher benötigt wird. Ob bei 4 oder 8 GB nun 100 MB mehr oder weniger verbraucht werden, ist dann auch egal.
Benutzeravatar
thorbytes
User
Beiträge: 37
Registriert: Samstag 24. Februar 2007, 17:38
Kontaktdaten:

lunar hat geschrieben:Java eignet sich nämlich ziemlich gut für Websites, die wirklich stark besucht sind, und die mit tausenden Zugriffen pro Sekunde zurechtkommen müssen.
Und welche Server-Konfiguration verwendet man da am Besten?

Ich betreue momentan zwei Server mit o.g. Hardware, Apache Webserver und Apache Tomcat und ich finde das ehrlich gesagt nicht so performant :(
lunar

thorbytes hat geschrieben:
lunar hat geschrieben:Java eignet sich nämlich ziemlich gut für Websites, die wirklich stark besucht sind, und die mit tausenden Zugriffen pro Sekunde zurechtkommen müssen.
Und welche Server-Konfiguration verwendet man da am Besten?

Ich betreue momentan zwei Server mit o.g. Hardware, Apache Webserver und Apache Tomcat und ich finde das ehrlich gesagt nicht so performant :(
Keine Ahnung ;)
In einem kompletten System kann viel schief gehen. Der Server kann kaputt konfiguriert sein, es kann aber auch bei sekundären Systemen (wie z.B. Datenbankservern) hapern, oder vielleicht ist das laufende Programm auch einfach nur schlecht geschrieben.
Per "Ferndiagnose" kann man dir da wenig helfen, zumal über die Art und den Zweck deines Systems sowie des darauf laufenden Programms ja nichts bekannt ist.
lost_mind
User
Beiträge: 82
Registriert: Dienstag 13. Februar 2007, 11:55

schon 3 seiten und ich hab noch nichtmal geantwortet :oops: (naja ich hab halt kein netz zuhause :()
also Perl weil ich unix mag und eigentlich nichts schlechtes darüber gehört habe.
Delphi weil ich dies Sprache irgendwie interresant finde ka. habs sie mir noch nicht sehr "nahe" angesehen. :o
C++ weil C irgednwie veraltet ist ? auch weil ich mich mit 3D engines beschäftigen wollte.
und jep ich beschäftige mich noch nicht so lange mit dem Programmieren :?
erhlich gesagt nach den Posts bin ich mir über gar keine Sprache mehr sicher die ich lernen will :?
worin bekommt man schneller den einstig in c oder in c++ ?
also jetzt ist die diskussion für alle sprachen frei :D ach ja auch ein grund ist weil ich programme schreiben wollte bei der der user dan nicht python instalieren muss dazu haben nicht so viele lust?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

lost_mind hat geschrieben:ach ja auch ein grund ist weil ich programme schreiben wollte bei der der user dan nicht python instalieren muss dazu haben nicht so viele lust?
Ja, das hört man öfters. Ist aber nicht so das Problem, siehe: [wiki]FAQ#IchMchteMeinScriptInEineAusfhrbareDateiPackenUmEsEinfacherVerteilenZuKnnen[/wiki]

Dennoch kann man mit Python leider keine kleinen EXE Dateien backen :?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
lost_mind
User
Beiträge: 82
Registriert: Dienstag 13. Februar 2007, 11:55

jens hat geschrieben:
lost_mind hat geschrieben:ach ja auch ein grund ist weil ich programme schreiben wollte bei der der user dan nicht python instalieren muss dazu haben nicht so viele lust?
Ja, das hört man öfters. Ist aber nicht so das Problem, siehe: [wiki]FAQ#IchMchteMeinScriptInEineAusfhrbareDateiPackenUmEsEinfacherVerteilenZuKnnen[/wiki]

Dennoch kann man mit Python leider keine kleinen EXE Dateien backen :?
jep ich kenn py2exe aber das ist nicht das wahre besonders wen man kleinen EXE Dateien backen will :cry:
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Wo der Einstieg leichter ist kann man nicht genau sagen, da C++ eine Erweiterung der Sprache C darstellt.
Wenn du erstmal Fuss fassen willst würde ich dir raten dir erst einmal C anzugucken.
da kannst du dich dann ersteinmal mit deklarationen, pointern und Speicherzugriffsverletzungen rumschlagen :)
Da man in der unix Welt auch des öfteren an make vorbei kommt lernt man auch bei den ersten kleinen Projekten in C erst einmal was hinter make eigentlich alles steckt und wie man mit einem compiler wie dem gcc zB von Hand arbeitet und später seine eigenen make-projekte erstellt.

Wenn du da deine ersten Spielereien durch hast und merkst das dir das objektorientierte Programmieren doch irgendwie fehlt, würde ich dann weiter zu C++ gehen und dich der neuen Erweiterungen erfreuen.
Zudem bekommt man dann neue Helferlein wie new() und delete(), welche einem die
zu Beginn seltsam anmutenden Speicherallokierungen mit malloc abnehmen.
Alles kleine Schritte die einen meiner Meinung nach aber mehr Verständnis für die interne Adressierung und Allokierung von Speicher gibt.
Dinge mit denen man bei Python nicht in Kontakt kommt.
Zuletzt geändert von Zap am Dienstag 10. April 2007, 12:09, insgesamt 1-mal geändert.
Antworten