JeuWeb - Crée ton jeu par navigateur
Utiliser un framework, est-ce utiliser un autre langage ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Utiliser un framework, est-ce utiliser un autre langage ? (/showthread.php?tid=3509)

Pages : 1 2


Utiliser un framework, est-ce utiliser un autre langage ? - Siko - 23-09-2009

Bonjour a tous !

Je viens de me rendre compte d'une chose ces derniers jour et j'aimerais partager mon expérience de vue avec vous.

Cela fait bientôt 3 mois que je travaille dans un milieu professionel uniquement en poo avec le zend framework.
Auparavant je travaillais en procedural et sans framework, le choc a donc été assez important et j'ai du apprendre une nouvelle facon de coder.. surtout qu'avec mes revision du bac (Comprenez glandouille a la plage) et des vacances bien mérité je n'avais pas toucher au php ou autre forme de code depuis 2 bon mois.
Depuis maintenant une semaine j'ai repris des projets perso a coté, qui cette fois ci seront fait en poo mais sans zend.. et je me suis rendu compte d'une chose, je ne sais plus coder sans Zend.. ce n'est pas que je trouve zend indispensable et que je me sens limiter sans lui bien au contraire.
Mais a raison de 9h de boulot avec lui pendant 3 mois j'ai apris et ancrer ses méthodes.. et revenir a un code sans zend est difficile.. je ne me souvenait plus la syntaxe des fonctions.. je sais qu'une fonction existe je sait l'utiliser avec zend mais sans je suis obliger dans 95% des cas d'aller rechercher la syntaxe dans la doc car je l'ai oublier.
Bien sur tout revient très vite mais je ne pensait pas avoir deux temps d'adaptation avec un framework.. le premiers me parraisait evident : le fait de devoir s'habituer a une nouvelle façon de travailler quand l'on commence a travailler avec .. le second par contre je ne m'y attendait pas. Je ne pensais pas avoir oublier si vite la syntaxe des fonctions utiliser dans la vie de tous les jours d'un codeur et devoir les réapprendre lorsque l'on quitte le framework.

Maintenant un petit débats histoire de rendre le post plus web 2.0 :]

Ne pensez vous pas qu'utiliser un framework, c'est changer de langage ? Un framework tel que zend implémente tellement de chose que pour 60% du code on utilise la syntaxe zend qui est différente de la syntaxe classique même si les deux se ressemblent. Et donc 60% de notre code appartient a un langage différent ?


RE: Utiliser un framework, est-ce utiliser un autre langage ? - Sephi-Chan - 23-09-2009

Je ne suis pas entièrement d'accord.

J'ai eu l'occasion de pratique plusieurs frameworks, mais trois en particulier : Zend Framework (PHP) CakePHP (PHP aussi) et Ruby on Rails (Ruby).

Effectivement, le fait que les frameworks (surtout avec la partie MVC) chamboulent pas mal les habitudes, si bien qu'il devient difficile de bosser sans une fois qu'on en a pris l'habitude. En ce qui me concerne, j'ai l'impression de mal coder quand je n'applique plus les design patterns (principalement MVC) du framework.

Cependant, je pense que ce sentiment est lié à PHP.
Vu que les frameworks sont très orientés objet et que PHP ne l'est pas complètement, tu as un mélange des genre que tu n'auras pas dans un langage complètement objet (comme Ruby). Je précise que je ne porte aucun jugement, je constate juste.

Je n'ai eu cette sensation qu'avec les frameworks PHP que j'ai utilisé (CodeIgniter, Copix, CakePHP, Zend Framework).
L'apprentissage puis l'utilisation professionnelle de Ruby on Rails ne m'a pas fait cet effet.

Je remarque également que c'est un gros frein à l'écriture d'articles : comme on veut utiliser des outils propres (par exemple la classe PDO au lieu des vilains mysql_query()), on a tendance à s'enfermer dans un carcan de détails, ce qui dessert l'écriture de l'article.


Sephi-Chan


RE: Utiliser un framework, est-ce utiliser un autre langage ? - zeppelin - 23-09-2009

Je pense que tu as un peu raison sur le fond... On doit apprendre leurs noms de classe / méthode, ça ne laisse aucun doute, bien qu'ils soient nommés d'après une structure logique.

Après avoir bossé avec le zend, j'ai décidé de me monter mon propre "framework" MVC, avec uniquement les choses basiques (mysql, mail, upload etc). Et je dois dire que j'en suis assez content et que je n'utilise plus que ça depuis un petit moment :-)

Pour en revenir au langage: Aucun programmeur n'a les mêmes goûts niveau nom de variable / constante / fonction / classe / méthode et j'en passe. Tôt ou tard tu développe en quelque sorte ton "propre" langage (underscore? camelCase? structure des dossiers pour les classes? etc).

Comme pour mon "framework", pour moi il est mieux que le zend, alors que si toi tu le lis, tu vas trouver le zend bien mieux...

Conclusion: tout le monde à son propre langage, et en cas de gros projet ou plusieurs personnes bossent dessus, s'unifier sur un langage est primordial. Le langage zend fait tout à fait l'affaire je pense ;-)


RE: Utiliser un framework, est-ce utiliser un autre langage ? - wild-D - 23-09-2009

mdr pas besoin d'un framework pour y perdre son code; ça le fait aussi avec l'usage récurent d'un IDE.(auto-compltion, ref doc affichée automatiquement, est autre aides).
le jour ou tu te retrouve avec un éditeur de texte brut, tu te rends compte que tu sais plus codé sans.

(pareil avec le gps, tu "riglole" le jour ou faut ressortir la carte Big Grin)


Pour les activités quotidienne, on perd très vite ses "sensations"; c'est généralement pas totalement oublié, mais c'est vrai que ce "rafraichir la mémoire" demande un certain effort. Le cerveau humain aime pas encombrer son espace de travail, il est assez expeditif pour ranger dans le placard tout ce qu'y n'a pas usage immédiat.


RE: Utiliser un framework, est-ce utiliser un autre langage ? - Plume - 23-09-2009

Il n'est pas question d'apprendre un nouveau langage. Il est question de développer d'une manière différente.

Ton problème consiste dans le fait que ZF uniformise ton environnement de travail et c'est bien là son rôle. Quand tu développais avec ZF, rien, absolument rien, ne t'empêchait de continuer à utiliser les fonctions natives à PHP ou développer des fonctions que ZF a déjà repris entre temps.

Pour rebondir également sur l'idée des fonctions à apprendre, il n'y a pas besoin d'utiliser un framework pour ça. Tu connais toutes les fonctions PHP ? Je suis convaincu que ce n'est pas le cas. Tu auras toujours des fonctions à apprendre même après 10 ans d'expériences.

Donc non, pour moi, l'utilisation d'un framework n'implique pas d'apprendre un autre langage.


RE: Utiliser un framework, est-ce utiliser un autre langage ? - zeppelin - 23-09-2009

@ Plume: Utilise-tu le Zend? Crée un formulaire et... et voilà quoi, rien à voir avec les fonctions natives de PHP. Je pense que nous ne parlons pas de la même chose. Moi je parle d'un site construit sur le MVC de zend, et toi du framework sous forme de bibliothèque.

Bref quand je code ceci:

Code PHP :
<?php 
class FormulaireAlbum extends Zend_Form
{
public function
__construct($options = null)
{
parent::__construct($options);
$this->setName('album');

$id = new Zend_Form_Element_Hidden('id');

$artist = new Zend_Form_Element_Text('artist');
$artist->setLabel('Artist')
->
setRequired(true)
->
addFilter('StripTags')
->
addFilter('StringTrim')
->
addValidator('NotEmpty');

$title = new Zend_Form_Element_Text('title');
$title->setLabel('Title')
->
setRequired(true)
->
addFilter('StripTags')
->
addFilter('StringTrim')
->
addValidator('NotEmpty');

$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton');

$this->addElements(array($id, $artist, $title, $submit));
}
}

je ne vois pas beaucoup de fonctions natives de PHP.

C'est comme pour PDO avec les BDD. En fin de compte tu n'utilise plus aucune fonction native directement, mais celles de PDO (ou les tiennes avec un extend).

Question de point de vue, mais quand je remplace 80% des fonctions natives de PHP par des méthode qui portent un autre nom / agissent différemment, j'estime qu'on est autorisé à parler d'un "autre" langage.


RE: Utiliser un framework, est-ce utiliser un autre langage ? - Plume - 23-09-2009

J'ai développé avec CodeIgniter, Jelix, HoaFramework, Zend Framework et symfony. Donc oui, je sais de quoi je parle. Et je persiste en te disant que la façon dont tu crées tes formulaires est indépendante de la façon dont ton site est construit.

Tu peux très bien utiliser ZF avec le patron MVC sans utiliser les classes Zend_Form_* pour créer tes formulaires. En faisant ça, tu ne fais qu'utiliser un des multiples composants. C'est toi qui finalement ne se rend pas compte que tu utilises ZF comme une bibliothèque. ZF "est" une bibliothèque. Chacun de ses compos sont indépendants mais sont aussi faits pour travailler ensemble et former ce que tu dis être un framework.

Sauf erreur de ma part.

Et pour finir, je n'ai pas dit que développer avec ZF c'était développer avec les fonctions natives de PHP. J'ai dit que développer avec ZF ne t'empêche pas d'utiliser les fonctions natives à PHP.


RE: Utiliser un framework, est-ce utiliser un autre langage ? - Sephi-Chan - 23-09-2009

Mais ça, c'est parce que Zend_Form, c'est bizarre. Les règles de validation doivent être dans le modèle, pas dans les helpers de génération du formulaire.

C'est quelque chose que je ne comprenais pas bien dans ZF, est-ce que les règles de validations sont vraiment à renseigner pour chaque Zend_Form ? Si oui, il y a de gros risques sur la sécurité si je change les règles de validation du login d'un utilisateur sur le formulaire d'inscription et pas celui de connexion…

Pour éviter cela, je surchargeais mes Zend_Form_Element, genre le login de mon utilisateur était (à peu de choses près) Zend_Form_Element_Text_User_Login, ainsi mes règles étaient centralisées. Était-ce la bonne manière ? Si non, quelle est la bonne façon de faire ?


Sephi-Chan


RE: Utiliser un framework, est-ce utiliser un autre langage ? - zeppelin - 23-09-2009

Je me suis mal exprimé, je n'ai pas voulu dire que les Form de zend font partis du design pattern MVC, je l'ai utilisé comme exemple supplémentaire, tout comme l'exemple avec PDO.

Bien entendu tu peux utiliser uniquement le design pattern MVC du Zend, mais la aussi tu passe par un langage propre au Zend pour certaines choses...

Bref je reste de l'avis que chacun personnalise son langage tôt ou tard, et que c'est uniquement une question de point de vue si on parle, oui ou non, d'un "autre" langage. Si je crée ma classe de formulaire elle ressemblera fortement à celle du zend, avec des autres noms de méthodes etc. Du coup si tu passe du Zend à ma classe tu va devoir te mémoriser les nouveau noms de méthode et son utilisation pratique. Après si on considère ça comme nouveau langage ou pas, le débat reste ouvert :-p


RE: Utiliser un framework, est-ce utiliser un autre langage ? - Plume - 23-09-2009

Quand on parle de langage on parle d'un ensemble de mots dotés d'une sémantique et le plus souvent d'une syntaxe.

Donc si on reste dans l'objectivité et que tu quittes ton opinion subjective, tu n'apprends pas un nouveau langage, tu évolues avec le langage. Tu apprends de nouveaux mots, de nouvelles expressions. Tu ne réapprends pas à parler.

C'est ainsi que je vois les choses en tout cas Smile

That's all folk !