News Code-Review bescheinigt Python hohe Qualität

fethomm

Redakteur
Teammitglied
Dabei seit
Okt. 2012
Beiträge
2.595
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
 

Cool Master

Fleet Admiral
Dabei seit
Dez. 2005
Beiträge
28.796
*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.
 

MrTengu

Lieutenant
Dabei seit
Juli 2012
Beiträge
551
*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.
 

realredfox

Lt. Junior Grade
Dabei seit
März 2006
Beiträge
424
1

1668mib

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

Cool Master

Fleet Admiral
Dabei seit
Dez. 2005
Beiträge
28.796
@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.

Aufs Programmieren Konzentrieren heißt für mich auch über Sicherheit nachzudenken.
Ganz klar, allerdings muss man nicht mit escapen usw. arbeiten.
 

spamarama

Captain
Dabei seit
Apr. 2010
Beiträge
3.803
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...
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
12.631

macos

Cadet 2nd Year
Dabei seit
Aug. 2013
Beiträge
22
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:

MrTengu

Lieutenant
Dabei seit
Juli 2012
Beiträge
551
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...
 

ice-breaker

Commodore
Dabei seit
Nov. 2008
Beiträge
4.133
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...
 
D

Dark-Water

Gast
...

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?
 

Daaron

Fleet Admiral
Dabei seit
Dez. 2011
Beiträge
13.487
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.

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

SheepShaver

Captain
Dabei seit
Nov. 2004
Beiträge
3.663
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.
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
12.631
Zitat von http://de.wikipedia.org/wiki/Compiler:
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.
 

SheepShaver

Captain
Dabei seit
Nov. 2004
Beiträge
3.663
Interpreter und Compiler haben zwar das gleiche Ziel, umwandeln einer Highlevel- in Maschinensprache, gehen aber unterschiedlich vor. Ein Interpreter ist kein Compiler und umgekehrt.
 

Cool Master

Fleet Admiral
Dabei seit
Dez. 2005
Beiträge
28.796
Top