Child pages
  • Resultate der Online Umfrage Typensicherheit in PHP
Skip to end of metadata
Go to start of metadata

Inhaltsverzeichnis

Einleitung

Eine Online-Umfrage mit der Thematik "Typensicherheit in PHP" wurde von Mitte Dezember 2012 bis Ende Februar 2013 durchgeführt, wobei 460 Personen aus 24 verschiedenen Ländern daran teilnahmen.
Die folgenden Diagramme und Zahlen sind für sich gestellt und es wurde bewusst auf eine Interpretation verzichtet. Diese ist dem Leser überlassen. Einige Fragen inkl. Interpretationen finden Sie in der Bachelor Thesis - Type-Safe PHP: A compile time approach (Englisch).

Die Umfrage wurde sowohl in Deutsch wie auch in Englisch durchgeführt. Die Resultate in Englisch finden Sie hier Results online survey Type Safety in PHP.

Gruppierung

 Klicken Sie hier um weitere Informationen zu erfahren

Die Teilnehmer wurden für die Analyse in 4 Gruppen eingeteilt aufgrund Ihrer Erfahrung mit PHP und aufgrund weitere Kriterien. Die Gruppen inklusive Kriterien werden in den folgenden Unterkategorien erklärt.

Gruppe 1 - Ausgewählte Experten

Die Mitglieder dieser Gruppe wurde vom Autoren dieser Umfrage ausgewählt und besteht aus den folgenden Personen

  • PHP core Entwickler
  • Köpfe von Zend Technologies
  • Köpfe von Dupral
  • Köpfe von Wordpress
  • Köpfe von Joomla
  • Köpfe von Typo3
  • Köpfe von Symfony2
  • Köpfe von Doctrine
  • Köpfe von führenden PHP tools:
    • phpunit
    • phpDocumentor
    • DocBlox
    • PHP_CodeSniffer
    • phpmd
    • phpdepend

Gruppe 2 - Langzeit-Benutzer

Mitglieder dieser Gruppe sind

  • Teilnehmende die 7 Jahre oder mehr Erfahrung mit PHP haben (Erfahrung >=7)
  • Teilnehmende die weniger als 7 Jahre Erfahrung mit PHP haben, aber die Summe der Erfahrung mit PHP und der Erfahrung mit einer typensicheren Programmiersprache (z.B. C# oder Java) 7 oder mehr Jahre beträgt. Der Teilnehmer/die Teilnehmerin muss allerdings zwingend mindestens 4 Jahre Erfahrung mit PHP haben. (Erfahrung mit PHP + Erfahrung mit einer typensicheren Programmiersprache >= 7 && Erfahrung mit PHP >= 4)

Weiter muss der Teilnehmer/die Teilnehmerin folgende Kriterien erfüllen:

  • Der Teilnehmer/die Teilnehmerin ist nicht bereits ein Mitglied der Gruppe 1
  • Der Teilnehmer/die Teilnehmerin hat mindestens 2 Jahre als Entwickler mit PHP oder mit einer typensicheren Programmiersprache gearbeitet.
  • Der Teilnehmer/die Teilnehmerin hat keine Frage mit 'Ich weiss nicht' beantwortet
  • Der Teilnehmer/die Teilnehmerin kennt sich aus mit Entwurfsmustern (Design Patterns) (Q32), mit Grundprinzipien (Q33), mit unit tests (Q34) und continuous integration (Q35)

Wenn ein Teilnehmer/eine Teilnehmerin zwar die nötige Erfahrung hat, aber einer der Kriterien nicht erfüllt, dann wird er/sie entweder der Gruppe 3 oder 4 zugewiesen.

Gruppe 3 - Normale Benutzer

Mitglieder dieser Gruppe sind

  • Teilnehmende die 4 Jahre oder mehr Erfahrung mit PHP haben (Erfahrung >=4)
  • Teilnehmende die weniger als 4 Jahre Erfahrung mit PHP haben, aber die Summe der Erfahrung mit PHP und der Erfahrung mit einer typensicheren Programmiersprache (z.B. C# oder Java) 4 oder mehr Jahre beträgt. Der Teilnehmer/die Teilnehmerin muss allerdings zwingend mindestens 2 Jahre Erfahrung mit PHP haben. (Erfahrung mit PHP + Erfahrung mit einer typensicheren Programmiersprache >= 4 && Erfahrung mit PHP >= 2)

Weiter muss der Teilnehmer/die Teilnehmerin folgende Kriterien erfüllen:

  • Der Teilnehmer/die Teilnehmerin ist nicht bereits ein Mitglied der Gruppe 1 oder 2
  • Der Teilnehmer/die Teilnehmerin hat die Frage 'Finden Sie Typensicherheit sollte in PHP verbessert werden' (Q1) entweder mit 'Ja' oder 'Nein' beantwortet (sprich nicht mit 'Ich weiss nicht')

Gruppe 4 - Anfänger

Alle Teilnehmer/Teilnehmerinnen welche noch nicht Mitglieder der Gruppe 1, 2 oder 3 sind

Ablauf

Den Teilnehmenden wurden Fragen anhand von bereits beantworteten Fragen gestellt. Der detaillierte Ablauf der Umfrage kann in Bachelor Thesis - Type-Safe PHP: A compile time approach gefunden werden. Laden sie die DVD herunter und navigieren sie in den Ordner /docs/, dort finden Sie das Dokument Survey.pdf - im Kapitel 'Flow Questionnaire' wird der Ablauf detailliert aufgezeigt.

Resultate

Q1 Finden Sie Typensicherheit sollte in PHP verbessert werden?

 Ja NeinIch weiss nichtTotal
Experten107421
Langzeit-Benutzer3928067
Normale Benutzer5540095
Anfänger1515571277
 Total25513075460

Sehen Sie auch Q1 + Q11.

Zwischeninformation 1

Bitte beachten Sie, dass wenn nichts anderes vermerkt ist, die vorgestellten Beispiele so noch nicht mit der momentanen PHP Version (PHP 5.4) realisiert werden können. Diese wären erst nach Implementierung der genannten Verbesserungen in einer neuen PHP Version realisierbar.

Änderungen sind mit rot hervorgehoben.

Q2 Sollte die folgende Verbesserung bezüglich Typensicherheit umgesetzt werden?

Skalare Typen wie int oder string können bei Parametern als Typ angegeben werden.
Zum Beispiel. 

public function setName(string name){

    //...
}

 

 Ja NeinIch weiss nichtTotal
Experten103114
Langzeit-Benutzer363039
Normale Benutzer540155
Anfänger143259177
Total2433111285

Sehen Sie auch Q2 + Q13

Zwischeninformation 2

Bei den folgenden Fragen wird unter Typ sowohl Interface- und Klassentypen wie auch skalare Typen verstanden.

Beispiele für Typen: int, float, string, SplStack, SplObjectStorage, Countable, OuterIterator...

Q3 Parameter - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Mögliche Antworten im Detail:

  1. Für jeden Parameter, in allen Funktionen/Methoden, muss ein Typ festgelegt werden
  2. Für jeden Parameter in public und protected Funktionen/Methoden muss ein Typ festgelegt werden
  3. Für jeden Parameter in public Funktionen/Methoden muss ein Typ festgelegt werden
  4. Keine der genannten
  5. Ich weiss nicht

 

 Allepublic & protectedpublicKeineIch weiss nichtTotal
Experten3017112
Langzeit-Benutzer142122039
Normale Benutzer243125255
Anfänger3635391194
Total77889314200

Sehen Sie auch Q3 + Q14

Q4 Rückgabetyp bei Funktionen-Methoden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Zwei Beispiele wie ein Rückgabetyp definiert werden könnte: :

public function string getName(){
    //...
}
public function void getName(){
    //...
}

Mögliche Antworten im Detail:

  1. Alle Funktion/Methoden müssen einen Rückgabetyp festlegen

  2. public und protected Funktionen/Methoden müssen einen Rückgabetyp festlegen - private können optional
  3. Nur public Funktionen/Methoden müssen einen Rückgabetyp festlegen - private und protected können optional
  4. Optional können Funktionen/Methodeneinen Rückgabetyp festlegen
  5. Keine der genannten
  6. Ich weiss nicht

 

 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten30160212
Langzeit-Benutzer1121241039
Normale Benutzer2220301055
Anfänger2633478794
Total6275107109200

See also Q4 + Q15

Q5 Klassen- und Instanz-Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Ein Beispiel wie ein Typ für Instanz-Variablen definiert werden könnte:

class Person 
{
    private string $name;
}

 

Mögliche Antworten im Detail:

  1. Für alle Klassen- und Instanz-Variable muss ein Typ festgelegt werden

  2. Für public und protected Klassen- und Instanz-Variable muss ein Typ festgelegt werden - für private ist es optional
  3. Für public Klassen- und Instanz-Variable muss ein Typ festgelegt werden - für private und protected ist es optional

  4. Optional kann ein Typ für Klassen- und Instanz-Variable festgelegt werden

  5. Keine der genannten

  6. Ich weiss nicht

 

 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten30151212
Langzeit-Benutzer1210260039
Normale Benutzer1920322055
Anfänger2612507894
Total60431131010200
See also Q5 + Q16

Q6 Lokale Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Ein Beispiel wie ein Typ für eine lokale Variable definiert werden könnte:

public function doSomething(){ 
    int $counter=0; 
    while(...){ 
        ++$counter;
    }
}

Mögliche Antworten im Detail:

  1. Für lokale Variablen muss ein Typ festgelegt werden.
  2. Für lokale Variablen kann optional ein Typ festgelegt werden
  3. Keine der genannten
  4. Ich weiss nicht

 MussOptionalKeineIch weiss nichtTotal
Experten263112
Langzeit-Benutzer7257039
Normale Benutzer17343155
Anfänger215412794
Total47119259200
See also Q6 + Q17

Q7 Templates bzw. Dateien die mittels include in andere Dateien eingebunden werden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Als Veranschaulichung dient folgendes Problem, welches einen fatal error während der Laufzeit verursachen würde.

class Person 
{
    public function getTitle(){...} 
    public function getFirstname(){...} 
    public function getSurname(){...}
}
class View 
{
    public function renderGreeting(){ 
        $prson = $this->getPerson(); //forgot inadvertently the e 
        include 'greeting.php';
    }
}

greeting.php:


echo '<div class="greeting">'.
$person->getTitle().' '//$person does not exist -> fatal error
$person->getFirstname().' '.
$person->getSurname().'</div>';

  1. ... welcher Typ diese Variable haben muss.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existiert und diese Variable vom Typ Person sein muss.
  2. ... optional welcher Typ diese Variable haben muss.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existieren muss und optional, dass diese Variable vom Typ Person sein muss.
  3. ... der Typ kann nicht definiert werden.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existieren muss.
  4. Keine der genannten und auch kein Kontext
  5. Ich weiss nicht


 MussOptionalKann nichtKeineIch weiss nichtTotal
Experten1306010
Langzeit-Benutzer817113039
Normale Benutzer7173151355
Anfänger8102222062
Total244765633166
See also Q7 + Q18

Q8 Gibt es noch andere Verbesserungsmöglichkeiten bezüglich Typensicherheit die umgesetzt werden sollten?

Individuelle Antworten werden hier nicht aufgelistet.

Q9 Finden Sie PHP sollte typensicher sein - Typensicherheit vollständig unterstützen?

 Ja NeinIch weiss nichtTotal
Experten312217
Langzeit-Benutzer2641067
Normale Benutzer3355795
Anfänger286610104
Total9017419283


See also Q9 + Q19

Zwischeninfo 2

Ich möchte Ihnen kurz mein Projekt mit dem Titel 'Type-Safe PHP: A compile time approach' vorstellen.
Das Projekt verfolgt das Ziel Typensicherheit während kompilierzeit einzuführen (statische Typensicherheit). Hierfür wird Type-Safe PHP (typensicheres PHP - TSPHP) eingeführt, welches auf einer nächst höheren Ebene als PHP angesiedelt ist. TSPHP wird während dem kompilieren in normales PHP transformiert/übersetzt. Dies ermöglicht, dass Entwickler mit einer abgeänderten Art von PHP (genauer mit TSPHP) arbeiten können, welches Typensicherheit vollständig unterstützt, ohne dass die Sprachdefinition von PHP selbst oder der entsprechende Interpreter verändert werden muss.

Bitte beantworten Sie die nachfolgenden Fragen im Bewusstsein, dass keine Änderungen an PHP selbst von Nöten ist, sondern diese mittels TSPHP realisiert werden könnten. PHP als solches (ohne Typensicherheit) bleibt also immer noch bestehen und bleibt weiterhin eine gute Einstiegs-Programmiersprache für Anfänger.

Q10 Hätten Sie die vorangehenden Fragen anders beantwortet aufgrund dieser zusätzlichen Informationen?

 JaNeinTotal
Experten11314
Langzeit-Benutzer43842
Normale Benutzer134962
Anfänger184058
Total36140176

Bemerkung

Diese Bemerkung war nicht teil der Umfrage. Die Fragen Q11 - Q19 sind eine Wiederholung der Fragen Q1 - Q9 und wurden nur den Teilnehmenden gezeigt, welche die Frage Q10 mit 'Ja' beantwortet haben und wenn nicht bereits die strengste Auswahl (in Richtung Typensicherheit) getroffen wurde. Sprich, hat der Teilnehmer/die Teilnehmerin Q1 bereits mit 'Ja' beantwortet, so wurde ihm/ihr diese Frage nicht nochmals angezeigt. Die Vereinigungen der Antworten (beispielsweise Q1 + Q11) repräsentieren wie die Teilnehmenden geantwortet hätten, wenn sie die Zwischeninformation 2 bereits zu Beginn der Umfrage gehabt hätten. Dabei wurde angenommen, dass Teilnehmende, welche eine Frage bereits beim ersten Mal mit der strengsten Auswahl beantwortet haben, auch beim zweiten Mal dieselbe Auswahl getroffen hätten.

Q11 Finden Sie Typensicherheit sollte in PHP durch TSPHP verbessert werden?

 Ja NeinIch weiss nichtTotal
Experten1001
Langzeit-Benutzer4004
Normale Benutzer111113
Anfänger81514
Total242632

Q1 + Q11

Finden Sie Typensicherheit sollte in PHP durch TSPHP verbessert werden? Sehen Sie Q11 für mehr Informationen.


 Ja NeinIch weiss nichtTotal
Experten107421
Langzeit-Benutzer4126067
Normale Benutzer6133195
Anfänger1585069277
Total27011674460

Q12 Wieso würden Sie die Typensicherheit nicht verbessern?

Individuelle Antworten werden hier nicht aufgelistet.

Q13 Sollte die folgende Verbesserung bezüglich Typensicherheit umgesetzt werden?

Skalare Typen wie int oder string können bei Parametern als Typ angegeben werden.
Zum Beispiel. 

public function setName(string name){

    //...
}
 Ja NeinIch weiss nichtTotal
Experten1001
Langzeit-Benutzer4004
Normale Benutzer120012
Anfänger90110
Total260127

Q2 + Q13

Skalare Typen wie int oder string können bei Parametern als Typ angegeben werden. Siehe Q13 für weitere Informationen.


 JaNeinIch weiss nichtTotal
Experten103114
Langzeit-Benutzer383041
Normale Benutzer610162
Anfänger147249180
Total2563011297

Q14 Parameter - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Mögliche Antworten im Detail:

  1. Für jeden Parameter, in allen Funktionen/Methoden, muss ein Typ festgelegt werden
  2. Für jeden Parameter in public und protected Funktionen/Methoden muss ein Typ festgelegt werden
  3. Für jeden Parameter in public Funktionen/Methoden muss ein Typ festgelegt werden
  4. Keine der genannten
  5. Ich weiss nicht

 Allepublic & protectedpublicKeineIch weiss nichtTotal
Experten100001
Langzeit-Benutzer101204
Normale Benutzer7113012
Anfänger501118
Total14136125

Q3 + Q14

Parameter - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden? Sehen Sie Q14 für weiter Informationen.


 Allepublic & protectedpublicKeineIch weiss nichtTotal
Experten4016112
Langzeit-Benutzer142124041
Normale Benutzer314124262
Anfänger4136371097
Total90999113212

Q15 Rückgabetyp bei Funktionen-Methoden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Zwei Beispiele wie ein Rückgabetyp definiert werden könnte: :

public function string getName(){
    //...
}
public function void getName(){
    //...
}

Mögliche Antworten im Detail:

  1. Alle Funktion/Methoden müssen einen Rückgabetyp festlegen

  2. public und protected Funktionen/Methoden müssen einen Rückgabetyp festlegen - private können optional
  3. Nur public Funktionen/Methoden müssen einen Rückgabetyp festlegen - private und protected können optional
  4. Optional können Funktionen/Methodeneinen Rückgabetyp festlegen
  5. Keine der genannten
  6. Ich weiss nicht

 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten1000001
Langzeit-Benutzer1012004
Normale Benutzer60150012
Anfänger3006009
Total1102130026

Q4 + Q15

Rückgabetyp bei Funktionen-Methoden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden? Siehe Q15 für weiter Informationen.


 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten40160112
Langzeit-Benutzer1121261041
Normale Benutzer2821301062
Anfänger2933478797
Total7276109108212

Q16 Klassen- und Instanz-Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Ein Beispiel wie ein Typ für Instanz-Variablen definiert werden könnte:

class Person 
{
    private string $name;
}

 

Mögliche Antworten im Detail:

  1. Für alle Klassen- und Instanz-Variable muss ein Typ festgelegt werden

  2. Für public und protected Klassen- und Instanz-Variable muss ein Typ festgelegt werden - für private ist es optional
  3. Für public Klassen- und Instanz-Variable muss ein Typ festgelegt werden - für private und protected ist es optional

  4. Optional kann ein Typ für Klassen- und Instanz-Variable festgelegt werden

  5. Keine der genannten

  6. Ich weiss nicht

 

 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten1000001
Langzeit-Benutzer2002004
Normale Benutzer51240012
Anfänger4005009
Total1212110026

Q5 + Q16

Klassen- und Instanz-Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden? Sehen Sie Q16 für weitere Informationen.


 Allepublic & protectedpublicOptionalKeineIch weiss nichtTotal
Experten40151112
Langzeit-Benutzer1210280041
Normale Benutzer2432312062
Anfänger3012497897
Total7055113109212

Q17 Lokale Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Ein Beispiel wie ein Typ für eine lokale Variable definiert werden könnte:

public function doSomething(){ 
    int $counter=0; 
    while(...){ 
        ++$counter;
    }
}

Mögliche Antworten im Detail:

  1. Für lokale Variablen muss ein Typ festgelegt werden.
  2. Für lokale Variablen kann optional ein Typ festgelegt werden
  3. Keine der genannten
  4. Ich weiss nicht


 MussOptionalKeineIch weiss nichtTotal
Experten01001
Langzeit-Benutzer13004
Normale Benutzer390012
Anfänger35109
Total7181026

Q6 + Q17

Lokale Variablen - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden? Sehen Sie Q17 für weitere Informationen.


 MussOptionalKeineIch weiss nichtTotal
Experten272112
Langzeit-Benutzer7286041
Normale Benutzer20393062
Anfänger245313797
Total53127248212

Q18 Templates bzw. Dateien die mittels include in andere Dateien eingebunden werden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden?

Als Veranschaulichung dient folgendes Problem, welches einen fatal error während der Laufzeit verursachen würde.

class Person 
{
    public function getTitle(){...} 
    public function getFirstname(){...} 
    public function getSurname(){...}
}
class View 
{
    public function renderGreeting(){ 
        $prson = $this->getPerson(); //forgot inadvertently the e 
        include 'greeting.php';
    }
}

greeting.php:


echo '<div class="greeting">'.
$person->getTitle().' '//$person does not exist -> fatal error
$person->getFirstname().' '.
$person->getSurname().'</div>';

  1. ... welcher Typ diese Variable haben muss.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existiert und diese Variable vom Typ Person sein muss.
  2. ... optional welcher Typ diese Variable haben muss.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existieren muss und optional, dass diese Variable vom Typ Person sein muss.
  3. ... der Typ kann nicht definiert werden.
    Im Beispiel würde greeting.php definieren, dass eine Variable $person existieren muss.
  4. Keine der genannten und auch kein Kontext
  5. Ich weiss nicht

 

 MussOptionalKann nichtKeineIch weiss nichtTotal
Experten100001
Langzeit-Benutzer030104
Normale Benutzer2601312
Anfänger240118
Total51303425

Q7 + Q18 

Templates bzw. Dateien die mittels include in andere Dateien eingebunden werden - welche Verbesserung bezüglich Typensicherheit sollte umgesetzt werden? Sehen Sie Q18 für weitere Informationen.

 MussOptionalKann nichtKeineIch weiss nichtTotal
Experten2206010
Langzeit-Benutzer818114041
Normale Benutzer9213131662
Anfänger10112221964
Total295265535177

Q19 Finden Sie TSPHP mit vollständiger Unterstützung für Typensicherheit sollte entwickelt werden?


 Ja NeinIch weiss nichtTotal
Experten0011
Langzeit-Benutzer3104
Normale Benutzer100313
Anfänger4138
Total172726

Q9 + Q19

Finden Sie TSPHP mit vollständiger Unterstützung für Typensicherheit sollte entwickelt werden? Sehen Sie Q19 für weitere Informationen.

 Ja NeinIch weiss nichtTotal
Experten311317
Langzeit-Benutzer2938067
Normale Benutzer4344895
Anfänger325913104
Total10715224283

Q20 Wieso würden Sie keine vollständige Typensicherheit einführen?

Individuelle Antworten werden hier nicht aufgelistet.

Q21 Wenn Sie wünschen könnten, in welcher Zeitspanne sollte TSPHP entwickelt sein, unabhängig davon, ob dies realistisch ist oder nicht?


 0 <= x <= 6 6 < x <= 1212 < x <= 2424 < xTotal
Experten00000
Langzeit-Benutzer482115
Normale Benutzer11121125
Anfänger42118
Total19224348

Q22 Welche der folgenden Konzepte sollte PHP/TSPHP unterstützen?

Enum


 JaNeinTotal
Experten51015
Langzeit-Benutzer333467
Normale Benutzer435295
Anfänger102232
Total91118209

Generics 


 JaNeinTotal
Experten21315
Langzeit-Benutzer214667
Normale Benutzer276895
Anfänger32932
Total53156209

Überladen von Operatoren

 JaNeinTotal
Experten11415
Langzeit-Benutzer313667
Normale Benutzer455095
Anfänger62632
Total83126209

Properties wie in C#

 JaNeinTotal
Experten6915
Langzeit-Benutzer194867
Normale Benutzer187795
Anfänger23032
Total45164209

Object Initialiser wie in C#

 JaNeinTotal
Experten31215
Langzeit-Benutzer264167
Normale Benutzer237295
Anfänger92332
Total61148209

Collection Initialiser wie in C#

 JaNeinTotal
Experten11415
Langzeit-Benutzer155267
Normale Benutzer108595
Anfänger62632
Total32177209

Abfangen von mehreren Exceptions im selben Block wie in Java

 JaNeinTotal
Experten6915
Langzeit-Benutzer402767
Normale Benutzer573895
Anfänger181432
Total12188209

Q23 Vermissen Sie andere Konzepte in PHP/TSPHP?

Individuelle Antworten werden hier nicht aufgelistet.

Q24 Welche Entwicklungsumgebung gebrauchen Sie am meisten - würden Sie als Ihre Entwicklungsumgebung bezeichnen?

 

IDEAnzahl Teilnehmer
PHPStorm48
Netbeans45
Eclipse34
VIM16
Sublime Text15
Zend Studio11
Notepad++7
emacs3
DreamWeaver3
Komodo2
Edit+2
notepad2
vi2
textmate2
geany2
bb edit1
Intellij IDEA1
coda1
Textpad1
Aptana studio1
Rapid PHP1
kate1
xemacs1
NuShpere PHPED1

 

Q25A Wie zufrieden sind Sie mit der Unterstützung für Refactorings von PHP-Code in Entwicklungsumgebungen?

1 steht für 'überhaupt nicht zufrieden' und 10 für 'vollständig zufrieden'

Icon

In der deutschen Version ging bei der Frage ein wichtiges Wort unter. Es hätte heissen sollen:

Wie zufrieden sind Sie mit der Unterstützung für Refactorings von PHP-Code in Ihrer Entwicklungsumgebung?

Beim Auswerten wurde dieser Fehler ignoriert und angenommen, dass der Teilnehmer/die Teilnehmerin die Frage bezogen auf ihre IDE (Q24) beantwortet hat (analog Q25B und Q25C).


 12345678910Ich weiss nichtTotal
Experten1011111300615
Langzeit-Benutzer614334171991067
Normale Benutzer315186612484195
Anfänger30012204151028
Total13210614132438141457205

Q25B Wie zufrieden sind Sie mit der Code-Verfollständigungsfunktion (CTRL+Leertaste) innerhalb Ihrer Entwicklungsumgebung bezüglich den auszuwählenden Vorschlägen?

1 steht für 'überhaupt nicht zufrieden' und 10 für 'vollständig zufrieden'


 12345678910Ich weiss nichtTotal
Experten0000113241315
Langzeit-Benutzer2233244161714067
Normale Benutzer11547381812181895
Anfänger2002022273828
Total538910101738403629205

Q25C Wie zufrieden sind Sie mit der Code-Verfollständigungsfunktion (CTRL+Leertaste) innerhalb Ihrer Entwicklungsumgebung bezüglich der Dauer bis die Vorschläge angezeigt werden?

1 steht für 'überhaupt nicht zufrieden' und 10 für 'vollständig zufrieden'


 

 12345678910Ich weiss nichtTotal
Experten0001212231315
Langzeit-Benutzer133455581518067
Normale Benutzer12324451414222495
Anfänger3102022435628
Total566911121428354633205

Q26 Wie viele Jahre Erfahrung haben Sie in Entwicklung mit PHP?

 

 0 <= x < 22 <= x < 44 <= x < 77 <= xTotal
Experten0011314
Langzeit-Benutzer00105767
Normale Benutzer05256595
Anfänger5141424
Total5640149200

 

Sehen Sie auch Q26 + Q28

 

Q27 Wie viele Jahre haben Sie als PHP Entwickler für eine Unternehmung gearbeitet?  

 

 0 <= x < 22 <= x < 44 <= x < 77 <= xTotal
Experten0021214
Langzeit-Benutzer38173967
Normale Benutzer247293595
Anfänger639624
Total33185792200

 

Sehen Sie auch Q27 + Q29

 

Q28 Wie viele Jahre Erfahrung haben Sie in typensicheren Sprachen wie Java oder C#?

 

 0 <= x < 22 <= x < 44 <= x < 77 <= xTotal
Experten234514
Langzeit-Benutzer515212667
Normale Benutzer3120261895
Anfänger1282224
Total50465351200

 

Sehen Sie auch Q26 + Q28

 

Q29 Wie viele Jahre haben Sie als Entwickler mit typensicheren Sprachen wie Java oder C# für eine Unternehmnung gearbeitet?

 

 0 <= x < 22 <= x < 44 <= x < 77 <= xTotal
Experten632314
Langzeit-Benutzer2617131167
Normale Benutzer641212795
Anfänger2021124
Total116342822200

 

Sehen Sie auch Q27 + Q29

 

Q26 + Q28

Wie viele Jahre Erfahrung haben Sie in Entwicklung

  • mit PHP +
  • mit typensicheren Sprachen wie Java oder C#
     

 

 0 <= x < 44 <= x < 88 <= x < 1414 <= xTotal
Experten0041014
Langzeit-Benutzer00244367
Normale Benutzer019433395
Anfänger6114324
Total6208589200

 

Q27 + Q29

Wie viele Jahre haben Sie als Entwickler

  • mit PHP +
  • mit typensicheren Sprachen wie Java oder C#

für eine Unternehmung gearbeitet:

 

 

 0 <= x < 44 <= x < 88 <= x < 1414 <= xTotal
Experten028414
Langzeit-Benutzer221291567
Normale Benutzer2528281495
Anfänger896124
Total35607134200

 

Q30 Sind Sie momentan als PHP Entwickler angestellt?

 

 

 JaNeinTotal
Experten12214
Langzeit-Benutzer58967
Normale Benutzer623395
Anfänger19524
Total15149200

 

Q31 Mit welcher PHP Version entwickeln sie hautpsächlich?

 

 5.45.35.25.15.0Eine ältere Version als 5.0Total
Experten77000014
Langzeit-Benutzer2145010067
Normale Benutzer2856920095
Anfänger714200124
Total6312211301200

 

Q32 Sind Sie vertraut mit Entwurfsmuster (design patterns)?

Beispielsweise

  • Factory Method
  • Strategy
  • Decorator
  • Observer
  • etc.

 Ja NeinIch weiss nichtTotal
Experten140014
Langzeit-Benutzer670067
Normale Benutzer8011293
Anfänger182424
Total179136198

Q33 Sind Sie vertraut mit folgenden Prinzipien?

  • Separation of concerns
  • Information hiding
  • Low coupling / high cohesion

 Ja NeinIch weiss nichtTotal
Experten140014
Langzeit-Benutzer670067
Normale Benutzer65171193
Anfänger182424
Total1641915198

Q34 Sind Sie vertraut mit Unit-Tests (z.B. mit phpunit)?

 Ja NeinIch weiss nichtTotal
Experten140014
Langzeit-Benutzer670067
Normale Benutzer7418193
Anfänger165324
Total171234198

Q35 Sind Sie vertraut mit Continuous Integration?

 Ja NeinIch weiss nichtTotal
Experten140014
Langzeit-Benutzer670067
Normale Benutzer5630793
Anfänger155424
Total1523511198

Q36 Verwenden Sie Unit-Tests in Ihrem Entwicklungs-Prozess?

 Ja NeinIch weiss nichtTotal
Experten140014
Langzeit-Benutzer589067
Normale Benutzer4033174
Anfänger133016
Total125451171

Q37 Wenden Sie Test-Driven Development als Entwicklungs-Prozess an?

 Ja NeinIch weiss nichtTotal
Experten77014
Langzeit-Benutzer105015
Normale Benutzer99220
Anfänger2002
Total2821251

Q38 Praktizieren Sie Continuous Integration?

 Ja NeinIch weiss nichtTotal
Experten122014
Langzeit-Benutzer5017067
Normale Benutzer2630056
Anfänger96015
Total97550152

Q39 Ab wann ist TSPHP relevant für die PHP Community?

Stellen Sie sich vor, Sie wären der Berater des Projekts TSPHP und Sie müssten eine Empfehlung abgeben, ob sich die Weiterentwicklung von TSPHP lohnen würde. 

Hierfür würden Sie die Frage "Finden Sie TSPHP mit vollständiger Unterstützung für Typensicherheit sollte entwickelt werden?" (Q9 + 19) auswerten. Wie viele 'ja' Antworten in Prozent aus 'ja' und 'nein' Antworten würden bei dieser Frage benötigt, damit Sie TSPHP als relevant für die PHP Community einstufen und die Weiterentwicklung empfehlen? 

 

 0% <= x <= 10%10% < x <= 20%20% < x <= 30%30% < x <= 40%40% < x <= 50%50% < x <= 60%60% < x <= 70%70% < x <= 80%80% < x <= 90%90 % < xTotal
Experten222021050014
Langzeit-Benutzer3397810996367
Normale Benutzer7913105811185793
Anfänger401442340224
Total16142521192123361112198

Q43 Was ist Ihr Geschlecht?

 WeiblichMännlichTotal
Experten01313
Langzeit-Benutzer16162
Normale Benutzer08686
Anfänger11819
Total2178180

Q44 Wie alt sind Sie?

 0<= x < 1616 <= x <= 2121 < x < 3030 <= x < 4040<= x < 5050 <= xTotal
Experten00453012
Langzeit-Benutzer0127311161
Normale Benutzer1437278279
Anfänger00762217
Total157569145169

Q45 Woher kommen Sie?

 ExpertenLangzeit-BenutzerNormale BenutzerAnfängerTotal
Australien13206
Brasilien01014226
Bulgarien00101
Deutschland31419440
Frankreich10113
Iran00101
Israel02103
Italien10012
Japan10001
Kanada01113
Kolumbien00022
Litauen02002
Niederlande167115
Norwegen00011
Österreich01001
Portugal01102
Russland01001
Schweden00202
Schweiz11114
Slowakei01001
Spanien00202
Türkei04318
UK027211
USA31417539
Total12638022177

Q46 Was ist Ihr höchster Bildungsabschluss?

Mögliche antworten im Detail:

  • Kein Schulabschluss
  • Schulabschluss
  • Berufsausbildung
  • Matura/Berufsmatura
  • Höhere Fachschule
  • Bachelor
  • Master
  • Doktor (PhD)
  • Anderer Abschluss (wurde bei der Auswertung dem naheliegensten Abschluss von oben zugeordnet)

 Kein AbschlussSchulabschlussBerufsausbildungMatura/BerufsmaturaHöhere FachschuleBachelorMasterDoktor (PhD)Total
Experten0022144013
Langzeit-Benutzer24582309565
Normale Benutzer61312122299386
Anfänger21251100021
Total10182127673228185
  • No labels