News Code-Review bescheinigt Python hohe Qualität

fethomm

Commander
Registriert
Okt. 2012
Beiträge
2.597
Der Code-Scan-Service der Firma Coverity untersucht regelmäßig den Code von Open-Source-Projekten und kommerzieller Software auf Fehler und vergleicht die Qualität der Produkte. Software mit weniger als einem Fehler pro tausend Zeilen Quellcode gilt als industrieweiter Standard für gute Software-Qualität.

Zur News: Code-Review bescheinigt Python hohe Qualität
 
*handheb*

Ich nutze und programmiere in Python und liebe die Sprache :)

Im vergleich zu PHP deutlich eleganter und meiner Meinung nach, viel wichtiger, leichter. Man kann sich voll aufs programmieren konzentrieren und muss nich erst noch mal 2 mal überlegen ob das das so machen kann oder ob es ein Security-Problem darstellen wird.
 
Cool Master schrieb:
*handheb*

Ich nutze und programmiere in Python und liebe die Sprache :)

Im vergleich zu PHP deutlich eleganter und meiner Meinung nach, viel wichtiger, leichter. Man kann sich voll aufs programmieren konzentrieren und muss nich erst noch mal 2 mal überlegen ob das das so machen kann oder ob es ein Security-Problem darstellen wird.

Naja, das muss man bei PHP auch nicht (wenn man schon länger damit entwickelt). Ich würde mich freuen, wenn wir bei uns auch mal mit was aktuellerem wie Python oder Ruby programmieren könnten.
 
Cool Master schrieb:
Man kann sich voll aufs programmieren konzentrieren und muss nich erst noch mal 2 mal überlegen ob das das so machen kann oder ob es ein Security-Problem darstellen wird.
Ich glaube ein verantwortungsvoller PHP-Entwickler schreibt sicherere Anwendungen als ein hirnloser Python-Entwickler. Aufs Programmieren Konzentrieren heißt für mich auch über Sicherheit nachzudenken. Unabhängig von der Programmiersprache.
 
@riDDi

Was willst du in Python kompilieren? Das ist ja eines der schönen Sachen du brauchst kein Compiler es läuft alles direkt.

@MrTengu

Klar wenn man 10 Jahre XP in PHP hat ist es klar aber der Anfang bei PHP ist einfach sau schwer im vergleich zu Python.

1668mib schrieb:
Aufs Programmieren Konzentrieren heißt für mich auch über Sicherheit nachzudenken.

Ganz klar, allerdings muss man nicht mit escapen usw. arbeiten.
 
der im Jahr 2006 in Zusammenarbeit mit dem U.S. Department of Homeland Security ins Leben gerufen wurde
Ich würde mal behaupten der eigentliche Sinn und Zweck besteht darin den Code auf mögliche Angriffsvektoren zu analysieren. Dass da am Ende irgend nen Fehlerquotient rausspringt ist reines Beiwerk.

PHP ist einfach sau schwer im vergleich zu Python.
PHP ist vorallem eine extrem hässliche Programmiersprache.
Wobei ich Python auch nicht sondernlich mag, keine Klammern um Codeblöcke zu definieren ist nicht so mein Fall.
Ich setz auch bei Ruby immer ein ";" am Ende...
 
Cool Master schrieb:
Was willst du in Python kompilieren? Das ist ja eines der schönen Sachen du brauchst kein Compiler es läuft alles direkt.
Und wie führt der Computer den Code dann aus - per bunten Blumen? Der PC kann nur ausführbaren Code abarbeiten und dafür muss es kompiliert vorliegen. Das macht nun mal die VM dazwischen.
 
spamarama schrieb:
Ich setz auch bei Ruby immer ein ";" am Ende...

Das ist aber eigtl. gegen die Ruby Philosophie uind macht auch gar keinen Sinn (außer man schreibt mehrere Statements in eine Zeile). Ruby arbeitet den Code Zeile für Zeile ab und sucht nicht wie PHP nach einem ";" um ein Zeilenende zu definieren. Hier wird das Ende mit einem "new line character" definiert (in den meisten Fällen).

Man will in Ruby bewußt nicht die häßliche und kryptische PHP Syntax drin haben, Ruby legt großen Wert auf syntaktische Eleganz ;)
 
Zuletzt bearbeitet:
Klar wenn man 10 Jahre XP in PHP hat ist es klar aber der Anfang bei PHP ist einfach sau schwer im vergleich zu Python.

Nein, eben nicht, das ist ja das Problem. Man kann ganz schnell funktionierenden Code schreiben.

Gerade aktuell lernen ein paar Leute bei mir nebenbei PHP:

Person 1 kopiert Schnipsel aus dem Netz und klebt das alles zusammen. Deutsche Variablennamen, verkettete IFs statt SWITCH usw. Funktioniert zwar, aber irgendwie...nein.

Person 2 hat eine laufende Anwendung, kennt aber bei weitem noch nicht alle Probleme wie SQL Injection, Verwendung von === statt == und solche Dinge, die man erst im Laufe des Programmiererlebens lernt. Da hab ich ein ganz gutes Gefühl, aber es dauert eben noch.

Man bekommt wirklich ruck zuck was Laufendes zusammen, aber wenn man bei Anfängercode mal genau hinschaut, will man den Editor am liebsten gleich wieder schließen.

Selbst bei Leuten, die es besser wissen müssten, findet man Fehler, die so nicht sein sollten. Wozu OOP, wenn alle Funktionen PUBLIC sind, sogar die, die nur intern verwendet werden? Ich könnte die Liste noch ewig fortsetzen...
 
Solche Scans sind so nutzlos...
Da wird geprüft ob es potentielle BufferOverflows oder einfach auch nur NullPointer-Fehler geben kann, der Rest ist egal.
Der Interpreter könnte so kaputt sein wie er will und dutzende Programme nicht ausführen, weil er gewisse Python-Konstruke falsch ausführt (was er zwar nicht macht) und trotzdem den besten Fehlerquotient haben.

Oder der Code des Interpretes könnte so schlecht wie der von PHP sein (der Interpreter, nicht die Sprache!) und den besten Fehlerquotient haben...
 
MrTengu schrieb:
...

Man bekommt wirklich ruck zuck was Laufendes zusammen, aber wenn man bei Anfängercode mal genau hinschaut, will man den Editor am liebsten gleich wieder schließen.

Selbst bei Leuten, die es besser wissen müssten, findet man Fehler, die so nicht sein sollten. Wozu OOP, wenn alle Funktionen PUBLIC sind, sogar die, die nur intern verwendet werden? Ich könnte die Liste noch ewig fortsetzen...

[offtopic]
Ach komm jeder fängt halt mal klein an :)
Wenn ich überlege wie meine ersten Gehversuche in C# aussahen, OMG :D

Das wichtigste ist halt, das man regelmäßig über seinen eigenen Programmcode reflektiert und
immer bestrebt ist es besser zu machen (Übersicht, Performance, McCabe , usw.)
Wenn schon nicht für die Firma , dann für sich selbst :cool_alt:
[/offtopic]

Ich frage mich allerdings was denn dort genau als Fehler angesehen wird?
Ne richtige Ausnahme wird es ja wohl nicht sein oder?
 
macos schrieb:
Das ist aber eigtl. gegen die Ruby Philosophie uind macht auch gar keinen Sinn (außer man schreibt mehrere Statements in eine Zeile). Ruby arbeitet den Code Zeile für Zeile ab und sucht nicht wie PHP nach einem ";" um ein Zeilenende zu definieren.
Das senkt die Übersichtlichkeit eher. Ein solches Konzept hab ich bei VB erleben dürfen, FURCHTBAR...
Gerade falls du mal einen längeren String zusammenstellst, z.B. eine SQL Query, ist es sehr von Vorteil, das Ding untereinander zu schachteln.

MrTengu schrieb:
Person 1 kopiert Schnipsel aus dem Netz und klebt das alles zusammen. Deutsche Variablennamen, verkettete IFs statt SWITCH usw. Funktioniert zwar, aber irgendwie...nein.
Ach... und dasselbe kann man nicht auch in JS, C, Perl, Python, Ruby, Java,... machen? Oh, ups... kann man... Das ist KEIN elementarer Designfehler von PHP.

Person 2 hat eine laufende Anwendung, kennt aber bei weitem noch nicht alle Probleme wie SQL Injection
SQL Injection ist kein PHP-Problem. Es tritt aufgrund der alten prozeduralen Notation und der puren Verbreitung ovn PHP natürlich oft bei PHP auf, aber du kannst auch in Python eine verwundbare DB-Schnittstelle schreiben.

Verwendung von === statt == und solche Dinge, die man erst im Laufe des Programmiererlebens lernt.
Problem von jeder Sprache mit schwacher Typisierung. Trotzdem bevorzuge cih schwache Typisierung, die Vorteile überwiegen wie ich finde. Ich will nicht bei jedem Scheiß erst einen Typecast machen müssen, wenn ich eh genau weiß, dass das Datenformat korrekt ist.

Selbst bei Leuten, die es besser wissen müssten, findet man Fehler, die so nicht sein sollten. Wozu OOP, wenn alle Funktionen PUBLIC sind, sogar die, die nur intern verwendet werden? Ich könnte die Liste noch ewig fortsetzen...
Auch kein PHP-Problem. Kannst du in Java auch machen, oder in C++, C#,...
 
Yuuri schrieb:
Und wie führt der Computer den Code dann aus - per bunten Blumen? Der PC kann nur ausführbaren Code abarbeiten und dafür muss es kompiliert vorliegen. Das macht nun mal die VM dazwischen.
Python ist eine rein interpretierte Sprache. Es gibt keinen JIT Compiler (PyPy ausgenommen) und auch keine VM, sondern nur einen Interpreter.
 
http://de.wikipedia.org/wiki/Compiler schrieb:
Ein Compiler (auch Kompiler; von englisch für zusammentragen bzw. lateinisch compilare ‚aufhäufen‘) ist ein Computerprogramm, welches ein (anderes) Programm, das in einer bestimmten Programmiersprache geschrieben ist, in eine Form übersetzt, die von einem Computer, d. h. von dessen Prozessor, ausgeführt werden kann.
Und wie kann wohl ein ASCII-Zeichensatz vom Prozessor ausgeführt werden? Da ist nun mal ebenso ein Compiler am Werk, der es eben nur zur Laufzeit umsetzt. PHP ist auch rein interpretiert und trotzdem gibt es mittlerweile "standalone Compiler" dafür oder einen Opcode Cache u.ä. .NET und Java sind im Prinzip auch nur interpretiert, auf Basis von Byte Code. Der Compiler geht dann trotzdem zu Werke und übersetzt es in Maschinencode.
 
@Yuuri

Ändert nichts an meiner Aussage das man kein (JIT-)Compiler benötigt :)
 
Cool Master schrieb:
Im vergleich zu PHP deutlich eleganter

PHP ist für Websites gemacht, Python ist universell, das kann man doch gar nicht vergleichen.
 
Interpreter und Compiler haben zwar das gleiche Ziel, umwandeln einer Highlevel- in Maschinensprache, gehen aber unterschiedlich vor. Ein Interpreter ist kein Compiler und umgekehrt.
 
F_GXdx schrieb:
PHP ist für Websites gemacht, Python ist universell, das kann man doch gar nicht vergleichen.

Und warum nicht? Ich mach Apps mit Python für Webseiten also warum sollte ich Python nicht mit PHP oder JS vergleichen können?
 
Zurück
Oben