Von HereIsYourYou am Sa, 4. Februar 2017 um 16:46 #
Schön, dass sie eingesehen haben, dass man Python mit seiner normalen Semantik nicht wirklich schnell machen kann. Müssen nur noch die Apache OO Leute einsehen, dass sie mit LO nicht konkurrieren können und die Browserhersteller einsehen, dass Browser an sich ein Übel der Menschheit darstellen. Dann wäre 2017 schon mal ein Jahr der Softwareeinsicht.
Schön, dass sie eingesehen haben, dass man Python mit seiner normalen Semantik nicht wirklich schnell machen kann.
Was ist denn die normale Semantik? PyPy zeigt, dass das sehr wohl geht - auf Kosten der Kompatibilität zu den C-Erweiterungen. Pyston hat ja durchaus einiges geschafft; bei so einem Projekt ist das aber auch imho zu erwarten, dass man einen längeren Atem haben müsste...
Schön, dass sie eingesehen haben, dass man Python mit seiner normalen Semantik nicht wirklich schnell machen kann.
Was ist denn die normale Semantik? PyPy zeigt, dass das sehr wohl geht - auf Kosten der Kompatibilität zu den C-Erweiterungen. Pyston hat ja durchaus einiges geschafft; bei so einem Projekt ist das aber auch imho zu erwarten, dass man einen längeren Atem haben müsste...
PyPy und Cython haben sehr eindrucksvoll demonstriert, dass es nicht geht. Wenn man nichttriviale Programme ausreichend schnell sehen will, muss man da alles Mögliche an Nichtstandardzeugs einsetzen - z.B. spezielle Konstruktoren die Arrays mit spezieller Länge voralloziieren und auf manche Dinge verzichten.
So in etwa sieht es auch aus, wenn man Cython-Code schnell machen will. Das hier scheint ein einfaches Beispiel dafür zu sein: http://doublemap.github.io/blog/2015/05/29/optimizing-python/ Allerdings kann es sein, dass es bei C++ oder wirklich modernen Systemprogrammiersprachen kostenlose High-Level Features gibt, die man dann in Cython vermisst.
Von blablabla233 am Mo, 6. Februar 2017 um 10:50 #
Bei C++ sind es eben gerade die "modernen" Features die den Quellcode unleserlich und langsam machen. Am besten man schreibt C++ wie C mit wenigen Zusätzen.
Das kann man ja wohl kaum pauschal sagen, ohne die Features einzeln und im Kontext zu betrachten.
Als einfaches Beispiel mal std::vector. Das ist in 99.9999% aller Fälle besser lesbar und deutlich schneller als es die miesen C-Kopien ohne Kapazität oder schlimmer noch, ersatzweise verlinkten Listen sind, die man im Großteil aller C-Projekte so findet.
Was hingegen wirklich ärgerlich ist, dass sich manche Dinge mit anderen bekriegen.
Schön, dass sie eingesehen haben, dass man Python mit seiner normalen Semantik nicht wirklich schnell machen kann.
Müssen nur noch die Apache OO Leute einsehen, dass sie mit LO nicht konkurrieren können und die Browserhersteller einsehen, dass Browser an sich ein Übel der Menschheit darstellen. Dann wäre 2017 schon mal ein Jahr der Softwareeinsicht.
PyPy und Cython haben sehr eindrucksvoll demonstriert, dass es nicht geht.
Wenn man nichttriviale Programme ausreichend schnell sehen will, muss man da alles Mögliche an Nichtstandardzeugs einsetzen - z.B. spezielle Konstruktoren die Arrays mit spezieller Länge voralloziieren und auf manche Dinge verzichten.
Errinert mich stark an C++
So in etwa sieht es auch aus, wenn man Cython-Code schnell machen will.
Das hier scheint ein einfaches Beispiel dafür zu sein: http://doublemap.github.io/blog/2015/05/29/optimizing-python/
Allerdings kann es sein, dass es bei C++ oder wirklich modernen Systemprogrammiersprachen kostenlose High-Level Features gibt, die man dann in Cython vermisst.
Bei C++ sind es eben gerade die "modernen" Features die den Quellcode unleserlich und langsam machen. Am besten man schreibt C++ wie C mit wenigen Zusätzen.
Das kann man ja wohl kaum pauschal sagen, ohne die Features einzeln und im Kontext zu betrachten.
Als einfaches Beispiel mal std::vector. Das ist in 99.9999% aller Fälle besser lesbar und deutlich schneller als es die miesen C-Kopien ohne Kapazität oder schlimmer noch, ersatzweise verlinkten Listen sind, die man im Großteil aller C-Projekte so findet.
Was hingegen wirklich ärgerlich ist, dass sich manche Dinge mit anderen bekriegen.