What's next?
Invité n'ayant pas de compte PHPfrance
24 janv. 2008, 01:50
Nagol, je ne sais pas si tu es sérieux, si c'est le cas c'est inquiétant car tu viens de faire une magistrale critique de PHP tellement PHP s'inspire de Java directement, ou indirectement en s'inspirant des mêmes langages dont Java s'est inspirés (cf. petite démo ci-dessous).
Tu invoques l' "histoire" de l'informatique pour te donner du crédit, tu dois manquer sérieusement d'assurance quand tu parles de langages informatiques. Puisque tu sembles t'intéresser de près à l'évolution des langages, tu peux faire un tour sur le web et lire les critiques aussi bien éclairées que les tiennes à l'encontre de PHP et Java en comparaison au langage tendance, tant apprécié des geeks, à savoir Ruby.
Petite démo, 1 Java :
Code : Tout sélectionner
class Language {
private String name = null;
public Language() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Console {
public static void main(String[] args) {
Language language = new Language();
language.setName("Java");
System.out.print("I speek " + language.getName());
}
}
Petite démo, 2 PHP :
Code : Tout sélectionner
class Language {
private $name = null;
public __construct() {}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
class Console {
public function main() {
$language = new Language();
$language->setName("PHP");
echo "I speek " . $language->getName();
}
}
Petite démo, 3 Java (JSP) :
Petite démo, 4 PHP (scripting) :
Voilà pour ce qui est des énormes différences entre PHP et Java sur le plan des approches "objet" et "script"... Le typage a été évoqué dans ce sujet et c'est effectivement une grande différence, par exemple en PHP tu peux invoquer la méthode "setName" avec n'importe quoi, en Java tu ne peux pas...
Pour ce qui est des soi-disants problèmes de compatibilité ("grand nombre de JRE") c'est une farce ? Aujourd'hui encore beaucoup d'applications Java 1.4, voire 1.3 ou 1.2, s'exécutent dans un environnement 1.4 ou 1.5 sans aucun soucis. Quand une méthode, plus rarement une classe, est dépréciée elle le reste longtemps avant de disparaître du JDK. S'il y a des méthodes qui disparaissent, le refactoring de l'application reste bien moins lourd que ce qui attend certaines applications PHP avec l'arrivée prochaine de la sensibilité à la casse, des packages...
C'est quoi un serveur d'applications ? Bah il suffit de lancer une console d'administration Geronimo, WebSphere ou WebLogic pour comprendre la différence avec un serveur web...
C'est dommage de lire beaucoup d' "arguments" idéologiques dans ces sujets car je trouve que la question mérite d'être soulevée, personnellement je pense qu'il y a des langages meilleurs que d'autres indépendamment des besoins. Je crois qu'il faut entrer dans les caractéristiques détaillés des langages pour pouvoir les comparer et expliquer pourquoi X est meilleur qu'Y : compilation/interprétation, statique/dynamique, multi-threads/"
uni-thread", structures de données/tableaux associatifs...
Je veux quand même finir là-dessus, un participant a parlé du grand nombre de classes et de méthodes, qu'il faut lire la Javadoc
etc. C'est pas possible de lire des â-e-i-s de ce genre, combien y-a-t-il de fonctions en PHP, peut-on se passer de la documentation PHP, peut-on se passer de lire des forums, des livres en PHP ?! Les noms des méthodes ? Pff c'est vrai que "strstr" est plus parlant que "substring"...
Terminons dans la bonne humeur et la conciliation :
http://ivoras.sharanet.org/projects/jphp.html