Choix de technologie/framework pour un site communautaire

Bonjour,
Je vais me lancer dans un projet de site communautaire assez puissant, avec backoffice, espace membres, etc …
Je souhaite coder le plus efficacement possible et que la technologie utilisé me servent aussi “d’apprentissage” et que je puisse la connaitre parfaitement et m’en servir pourquoi pas dans le monde professionnel j’ai le choix entre :

Codeginiter 3
Laravel 5
Symfony 2
Apprendre le Ruby et utiliser Ruby on Rails.

Le but c’est d’utiliser une technologie solide, rapide, facile et que je puisse en devenir un expert je sais que le PHP est largement utilisé mais un expert ruby sera mieux payé en principe non ? Il y a également node qui est à la “mode”.

Je suis très bon en PHP et utilise actuellement Codeginiter 2 mais je souhaite évoluer tout comme évolue les technologies pour ne pas etre largué

Merci !

Je vais prêcher pour ma paroisse, je préfères Ruby/Rails. J’avais essayé des frameworks PHP comme Zend et Cake. Ceux-ci sont basé sur Ruby on Rails mais en PHP. Après l’utilisation, j’avais plusieurs irritant. J’ai préféré utiliser la source plutôt que les copies.

Je pense qu’avant de choisir, il faut s’intéressé au code mais également à la philosophie du langage ou du framework. Ruby est conçu pour être fun. Comme tu auras du plaisir a faire ton code, tu va vouloir faire un meilleur code et tu seras plus productif.

Je crois qu’avec Ruby, par rapport à PHP :

  • le code propre est plus valorisé. En PHP, l’important c’est que ça marche. En Ruby, il faut que ça marche mais que ça soit beau également;
  • La gestion des dépendances est très bien faite grâce à Bundler. Il n’y a pas besoin de faire des affreux copier/coller de code;
  • La communauté est grande. Les gens qui utilise Ruby sont souvent des programmeurs avec de l’expérience. En faisant des recherches sur Internet, tu trouveras moins de noobs;
  • Les ressources pour apprendre Ruby sont assez abondantes et bien faites;
  • C’est un langage orienté objet depuis le début et pas un langage transformé pour faire de l’objet. On sent vraiment la différence;
  • Le code est plus lisible. Il n’y a pas besoin de $ ou de ;. Ruby est fait pour être lisible. L’écriture est donc simplifié;

Pourquoi Rails :

  • Rails atteins une bonne maturité maintenant.
  • Rails est magique. Tu verras qu’avec Rails, peut de ligne de code peuvent faire le comportement que souhaites. Prends exemple sur ActiveRecord;
  • Rails n’est pas magique. C’est juste du Ruby. Quand on apprend Rails et qu’on lit le code source, on se rend compte que tout le comportement est 100% logique. Tout est bien placé;
  • De nombreuse Gems sont existantes. Si tu as besoin d’un système d’inscription avec rappel de mot de passe, des mots de passes cryptés, etc. Regardes Devise. Si tu veux créer des fomulaire rapidement, regardes SimpleForm. Si tu veux un code créer du HTML plus rapidement, regards Slim.

Il existe probablement de nombreux autres avantages qui ne me viennent pas l’esprit tout de suite. Je t’invite à consulter la documentation. J’espère que ça te plairas.

C’est clair que ça demande de la formation. Tu ne seras probablement pas à l’aise avant un moins. Ceci dit, la communauté est vraiment bonne. Si tu as besoin d’aide, demande à moi ou à d’autre sur le forum. Si tu as besoin d’encore plus d’aide, contact moi en privé.

3 « J'aime »

C’est quand même du bon gros troll ta réponse :)

Je ne vois pas sur quoi tu t’appuies pour dire ça :)

Composer

La communauté PHP est très grande aussi avec une multitude d’expert

Les goûts les couleurs ;)

Sinon pour répondre à ta question @Maxime_Ramos le principal c’est le feeling. Pour ma part, je m’éclate avec Sf2 et y a énormément de bundles top qui accélèrent le travail. Sur le marché du travail Sf2 est pas mal recherché en ce moment.
Après, quelque soit la techno amuse toi sur ton projet :)

1 « J'aime »

@rkueny Évidemment, toute réponse qui peut être apporté à cette question est un troll.

Les arguments que j’avance ne sont pas uniquement des goûts et des couleurs. Ruby à, dans sa philosophie, le fait de faire un code qui soit “Human Readable”. On a vu souvent des projet PHP avec tout les fichiers à la racine et aucune structure visible. Je n’ai mais vu la même chose avec Ruby. Il y a des experts PHP mais beaucoup plus de débutant ce qui peut gêner pour les recherches.

Comme Python, Ruby est “battery included”. Par exemple, si tu veux convertir une chaîne de caractère avec la majuscule en premier et inverser les lettres tu peux faire "string".capitalize.reverse. L’exercice du palyndrome : text1.downcase == text2.downcase.reverse. Bref, il y a des fonctions de base, déjà dans Ruby, qui sont assez intéressante.

@Maxime_Ramos, je pense qu’il ne faut pas juste ce fier au feeling. Pour moi, je crois qu’il faut lire la doc et comprendre comment ça marche. Le principe est avant tout la philosophie.

Je t’invite également à lire Ruby From Other Languages et Pourquoi choisir Ruby on Rails pour le web.

Bonne chance dans tes recherches.

2 « J'aime »

Je pense que ca dépend de beaucoup de paramètres personnels.

Il faut bien définir ce que tu as envie et ce que tu as besoin. Si tu dois sortir ton site dans 2 semaines, apprendre une nouvelle stack va être short. Si tu as envie d’apprendre quelque chose de nouveau alors oui RoR ou bien d’autre est un bon choix.

Après sache que ce n’est pas le language qui fera que ton site est puissant mais ta façon de coder. Certes certains frameworks t’aiguilleront sur de meilleurs pratiques que d’autre frameworks mais tu resteras seul maitre de ton code.

Personnellement je n’aime pas node mais sans raison particulière. Et personnellement après plusieurs projets en PHP sur Zend, Symfony2 ou Yii je ne pourrais surement pas revenir en arrière après être passer à Java.

Le problème avec Java est sa réputation old school or aujourd’hui je boot un projet Java (avec Spring boot) beaucoup plus rapidement et plus facilement qu’en PHP. Cependant passer d’un langage comme PHP à Java peut être déroutant et de nouveau concept doit être appréhender.

@kakawait, en Java, il y a Play Framework qui me semble intéressant.

@Maxime_Ramos, @rkueny Si tu veux une unité de mesure, tu peux regarder les étoiles sur Github :

  • CodeIgniter : 9271
  • Laravel : 14643
  • Symfony : 9704
  • Rails : 24986

Malgré le fait qu’il soit plus dur de passer sur Rails, étant donné que Ruby n’est pas le langage le plus populaire, Rails est quand même premier dans les Framework sur cette mesure. De plus, Github est fait avec Rails!

2 « J'aime »

Play framework est a mon goût plus un framework Scala que Java. C’est un bon framework mais je le trouve pas assez précurseur/novateur.

1 « J'aime »

Je serais curieux de savoir à quoi servent les $ devant les noms de variables :) de même qu’a quoi sert le fait de devoir mettre function devant une fonction et de même qu’à quoi sert un interface en PHP :P

1 « J'aime »

Mon conseil :

Fait plutot une API REST pour ton Backend, et pour la partie front utilises un framework js.
Cette architecture est de facto un standard du web, et ça te sera très utile dans ton avenir pro. Te laisse pas trop influencer par les trolls sur les langages/framework, teste des choses,prend ce qui te plaît.

Il y a 10 000 moyens de faire une API Restful, avec plein de langage/framework différents, il existe également beaucoup de framework js pour faire du front proprement (ember, backbone, angular…) je vais pas te dire ce qui est mieux ou pas, survole les docs et choisi quelque chose !

Quand au rémunération effectivement normalement un dev Ruby sera mieux payé, c’est mécanique, vu qu’il y en a moins que des dev Php, mais c’est également le cas avec Python, Scala…

2 « J'aime »

Comme tu peux le voir, il y a toujours des avis divergents sur la question. Tu peux avoir 100 réponses différentes si tu poses la question à 100 programmeurs. Je pense qu’il n’y a pas de mauvaise réponse. Comme le dit @kevin, prends le temps de consulter la doc. Encore une fois, prends le temps de t’inspirer de la philosophie et de la communauté et fait ta propre opinion.

Bonne chance!

J’ai déplacé 5 messages dans un nouveau sujet : Slideshare trollesque qui montre les différences entre php/symfony2 et ruby/rails

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s