53 votes

Un nouveau langage au-dessus de PHP ?

Je suis un développeur PHP. J'aime PHP ! C'est un très bon langage si vous savez comment l'utiliser, mais je sais qu'il permet très mauvaise conception parfois.

Cela me rappelle JavaScript qui a de bons et de mauvais côtés. Un projet particulier, CoffeeScript, tente de se concentrer uniquement sur les bonnes parties, vous obligeant à écrire du bon code.

J'ai pensé que quelque chose de similaire pourrait être fait avec PHP... Une nouvelle syntaxe qui ne serait compilée qu'avec du bon code PHP, en profitant de toutes les nouvelles fonctionnalités que nous pouvons obtenir avec PHP 5.3.

Donc, en devançant certaines personnes, je vais demander : Pourquoi créer un nouveau langage au-dessus de PHP si vous pouvez simplement utiliser Ruby, Python ou autre ?

  • PHP est facile à déployer partout
  • Le langage lui-même a beaucoup de bonnes caractéristiques et d'idées.
  • Il existe beaucoup de bonnes bibliothèques écrites en PHP
  • ...

Donc, mes vraies questions ici sont...

  • C'est une idée stupide ? Pourquoi le serait-elle ? Pensez-vous que CoffeeScript est stupide ?
  • Comment quelqu'un commence-t-il à créer une nouvelle langue par-dessus une autre ? Je n'y connais rien, mais j'aimerais apprendre. Par où commencer ?

11 votes

Intéressant. Je rêve de quelque chose comme ça (ou plutôt d'un fork PHP "propre") depuis longtemps. Cela nécessiterait une forte mobilisation de la communauté pour arriver à quelque chose, mais ce serait un projet intéressant...

0 votes

Pas en concurrence, mais en rapport : Le patch de Suhosin hardened-php.net

0 votes

Si vous voulez mon avis, vous devriez absolument le faire (je considère également CoffeeScript comme très soigné) et profiter de l'opportunité pour créer un langage qui soit conçu du tout (sans parler du fait qu'il soit correct) - mais encore une fois, j'utilise Python ;) Voir les nombreuses questions sur SO pour des informations sur la création d'un langage et soyez prévenus que cela peut être une tâche importante.

13voto

polarblau Points 10127

L'idée n'est absolument pas stupide, surtout si elle est bien exécutée.

J'aime beaucoup coffeescript, mais son approche a aussi des inconvénients. Déboguer un script coffeescript nécessite toujours de lire le code Javascript généré, ce qui peut être fastidieux, puisque vous ne l'avez pas réellement écrit vous-même.

J'ai cru comprendre que Jeremy Ashkenas, le créateur de coffeescript, a commencé à travailler sur coffeescript après avoir lu le document suivant "Créez votre propre langage de programmation génial" par Marc-André Cournoyer .

Bonne chance !

0 votes

Merci pour la recommandation du livre :)

2 votes

Mais pour être juste, la sortie JS de Coffeescript est très lisible et la plupart du temps assez proche de l'entrée.

10voto

Andy Skirrow Points 1538

La raison pour laquelle CoffeScript est une bonne idée est que si les développeurs veulent exécuter du code dans un navigateur client, ils doivent tienen pour utiliser javascript ; ainsi, la seule façon de programmer dans un langage différent est de permettre à ce langage d'être convertible en javascript.

Je ne suis pas sûr que la même chose s'applique vraiment à la programmation côté serveur. Si vous avez des problèmes avec PHP et que vous voulez utiliser un nouveau langage, il n'y a pas de réel avantage à ce que ce langage génère PHP.

D'un autre côté, un langage qui serait très similaire à PHP, mais qui corrigerait certains de ses défauts, serait une excellente idée.

8 votes

Oui, il y a un avantage à compiler en PHP (le PO l'a aussi dit !) : Tout comme JS est omniprésent du côté client, PHP est omniprésent du côté serveur -> facile à héberger.

3voto

DigitalRoss Points 80400

Heh, bonne idée. Mes pensées, certaines contradictoires...

Il existe des précédents pour civiliser les mauvais langages en mettant des préprocesseurs syntaxiques devant eux.

  • Aux premiers jours d'Unix, Fortran était populaire et était à peu près le seul langage portable, car la plupart des machines ne possédaient pas de compilateur C. Mais le Fortran de l'époque n'avait même pas de blocs structurés. si-alors-sinon juste une simple déclaration idiote si ou un if-goto . Ainsi, le Ratfor a été implémenté comme un préprocesseur pour Fortran-66.
  • Je crois qu'il y avait (il y a ?) des préprocesseurs Cobol qui ont vraisemblablement traité la verbosité et les limitations des premiers dialectes Cobol.
  • Aujourd'hui encore, les systèmes dérivés d'Unix sont livrés avec un processeur macro appelé m4.
  • Plusieurs préprocesseurs CSS sont disponibles aujourd'hui, notamment Sass y MOINS .

Mais...

  • Laissez-le mourir, et le plus tôt sera le mieux.
  • Le problème n'est pas vraiment dans la syntaxe.
  • Je ne vois pas vraiment de parallèle entre JavaScript et PHP. JavaScript est un excellent langage. C'est un peu l'opposé de PHP.
  • Je ne sais pas pourquoi vous dites que PHP est un excellent langage. C'est l'un des pires. Chaque fonctionnalité décente est un patch ou un repatch dans une version récente.
  • Comme vous l'avez noté, il existe déjà une version corrigée de PHP : elle s'appelle Ruby et, en tant que langue, c'est presque parfait. Il existe une autre version corrigée appelée Python . Le monde se porterait mieux à long terme si nous soutenions les meilleurs systèmes.

2 votes

Le problème avec Ruby, c'est qu'il peut être difficile à mettre en place et à utiliser, surtout si vous optez pour Rails (qui est assez courant). Une fois que vous êtes opérationnel, c'est génial... mais cela demande des efforts pour y arriver. PHP, d'un autre côté, est presque toujours prêt à fonctionner - mettez un index.php dans votre racine de doc, et il fonctionne presque toujours sans incident. (Probablement parce que tout le monde utilise PHP, ce qui nécessite que tout le monde soit capable de le configurer). Ce C'est ce que j'aime dans PHP. Le langage lui-même est hideux, mais quand vous voulez voir quelque chose maintenant, JFW > parfait. Je ne suis pas assez familier avec Python pour commenter.

0 votes

Je n'ai pas vu grand chose sur la façon de fonctionner sous un serveur Apache existant (de loin la configuration la plus courante sur les boîtes Linux que j'ai rencontrée). C'est là le problème. Je ne peux pas simplement remplacer Apache, car il pourrait servir une douzaine d'autres sites (PHP et autres non-Ruby) -- mais avoir ce :3000 (pour Mongrel ? ou est-ce WEBrick ?) ou :4567 (pour Sinatra) ou quoi que ce soit d'autre dans les URLs ne me semble pas correct. Pourquoi ne disent-ils pas aux gens comment configurer Apache pour qu'il transmette les données au serveur Ruby ? Cela devrait faire partie intégrante de la documentation.

0 votes

WEBrick est principalement destiné au débogage personnel, bien que je suppose qu'un petit site pourrait l'utiliser. La configuration normale est Apache (ou nginx) + Passenger, ou peut-être Mongrel. N'importe quel administrateur ou ingénieur web devrait être capable de le configurer. Si vous souhaitez simplement l'utiliser pour le développement, Rails et Sinatra feront automatiquement tourner un serveur pour vous. Parlez-vous de la mise en place d'un véritable serveur en ligne ou simplement d'une configuration pour le débogage ?

2voto

sevenseacat Points 12086

Si cela pouvait être à PHP ce que quelque chose comme sass est à CSS, je serais intéressé. Mais que voulez-vous ajouter exactement ? Ou voulez-vous simplement éliminer les mauvais éléments ?

Et qu'est-ce que vous considérez être le mauvais ?

0 votes

Le lien que j'ai posté sur la question ci-dessus présente certains des mauvais choix de conception qui peuvent être faits avec PHP. L'objectif principal serait d'éliminer les mauvaises choses, mais aussi d'implémenter une meilleure syntaxe pour certaines choses comme... Permettre aux données de base d'être accédées en tant qu'objet et faire des choses comme : $string = 'Foo|Bar' ; $array = $string.split('|') ;

0 votes

Oh oui, je suis d'accord avec beaucoup de choses dans cette liste.... d'accord avec le fait de s'en débarrasser, c'est-à-dire. Ce serait une noble tâche en effet... Je suivrai cette affaire avec grand intérêt.

2voto

felixge Points 988

L'écriture d'un transformateur de syntaxe PHP serait probablement un projet intéressant.

Cependant, n'oubliez pas que la bibliothèque standard de PHP est un énorme fouillis. La nettoyer serait une tâche bien plus importante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X