Salut tout le monde =)

Plusieurs questions... à vrai dire, beaucoup de questions.

1) A quoi servent le PHP, le Javascript, le Ruby, le Python ? les utilisations les plus courantes ?
2) Qu'utilise un développeur front end ? Et un développeur back end ?
3) Node.js a beaucoup fait parler de lui car "il permet de coder en javascript cote serveur" ? Ca veut dire que normalement coté serveur on doit utiliser d'autres languages et que le Javascript, c'est plus facile à écrire ? Une fois j'ai posté un sujet, et on m'a qualifié Node.js "d'artillerie lourde"... en quoi cq consiste ? Une grosse librairie ?
4) AJAX... ça consiste à quoi concrètement en fait ? J'ai beau lire des articles je comprends pas... en fait c'est l'utilisation de javascript d'une façon qui évite de recharger la page ?
5) C'est quoi JSON ?

C'est déjà un bon début, mais je pense que j'aurai d'autres questions...

Merci =)
Bonjour,

Je pense que personne n'a rien contre les questions LightBen, et qu'il n'y a pas de question bête.

Mais avouez que, pour nombre d'entre elles (surtout quand elles sont d'ordre général), Google est votre ami...

Wikipédia est aussi très bien. Un exemple.
Modifié par Olivier C (30 Apr 2014 - 16:23)
Merci pour ta réponse.

C'est surtout que j'ai besoin de définitions ultra simples pour comprendre l'idée de l'objet en question... Après, Wikipedia, w3schools, alsacreations, google, etc, j'en ai passé pas mal =) mais au fur et à mesure des notions, je relis et comprend mieux. C'est pour ça que j'ai créé ce sujet, pour avoir des réponses simples qui me fassent comprendre les grandes idées
Bon,

La première question regroupe les langages qui permettent de rendre un site dynamique (dialogue avec une base de donnée par exemple). La plupart des sites sont codés en php. Node.js rentre ici dans le cas d'une utilisation javascript "côté serveur", il est le langage à la mode.

La technologie AJAX, c'est du javascript "côté client" (utilisateur), qui permet de faire des requêtes http sans rafraîchir la page. En faisant appel à des fichiers en temps réel : des fichiers XML par exemple ou, plus à la mode, des fichiers JSON.
Merci pour ta réponse.

Donc le Ruby, Python, sont utilisés pour le web ? Pour les actions dynamiques d'un site ? Et ils sont au même niveau que PHP ? Je veux dire, quelqu'un, pour rendre un site dynamique, pourra choisir entre Python, Ruby et PHP par exemple, selon sa préférence ? (en gros, ma question c'est "c'est la même catégorie de langages ?). Et Javascript aussi, mais côté client donc ? Du coup, quel est l'intérêt d'utiliser un langage côté client et quel intérêt côté serveur ? Une fois j'ai entendu "pour la sécurité". C'est tout ? Et Node.JS, ça se présente comment, c'est un framework ? Un fichier comme pour JQuery, qu'on inclut ?

Pour AJAX, comment on s'en sert, il n'y a que la fonction xmlhttprequest() ou il y a d'autres fonctions spécifiques qui permettent de changer la page sans la rafraichir ? Pour quelles utilisations on peut s'en servir ? Pour l'instant, je vois les formulaires (si faux, alors afficher message d'erreur, etc), ou les notifications comme pour facebook...

Merci =)
LightBen a écrit :
Salut tout le monde =)

Plusieurs questions... à vrai dire, beaucoup de questions.

1) A quoi servent le PHP, le Javascript, le Ruby, le Python ? les utilisations les plus courantes ?
PHP, Ruby et Python sont trois langages serveurs, ils servent souvent à faire communiquer le serveur avec une base de données. Leur utilisation principale est de pouvoir exécuter du code coté serveur, et donc loin de la portée de l'utilisateur. A quoi ils servent ?
- validation de sécurité des formulaires
- communication avec la base de données
- validation des actions (vérifier par exemple dans le cas d'un compteur de vote que l'utilisateur a déjà voté ou non)
- création de session (et tout ce qui va avec, gestion des mots de passe, des comptes utilisateurs,...)
- ...

Le javascript est un langage coté client. Il sert à faire communiquer l'interface et l'utilisateur. Pouvant être désactiver et modifier assez aisément par l'utilisateur, il ne garantit aucune sécurité; mais rajoute une couche "user-friendly" très utile malgré tout. Ses utilisations sont diverses et ont, généralement, l'objectif de modifier l'affichage de la page sans recharger la page, par exemple :
- première vérification de formulaire avant l'envoi vers le serveur
- défilement d'images au clic
- l'ajout de balise quand tu clic sur un bouton (comme sur le forum)
- génération de pages animées (en // avec le CSS)
- ...

a écrit :
2) Qu'utilise un développeur front end ? Et un développeur back end ?
Un développeur front-end c'est celui qui se charge de tout ce qui est coté client. En fonction des définitions, ça sera un expert javascript ou un expert html/css/javascript (même si, dans ce cas, on parle plutôt d'intégrateur).
Un développeur back-end, s'occupe du coté serveur. C'est lui qui se chargera de tout ce qui est PHP/Python/Ruby (généralement il maîtrise 1 seul langage, mais à fond) ainsi que du SQL (système de gestion de base de données, que ça soit avec postgre; mysql ou d'autres^^) .

Pour y voir clair entre serveur et front, une image issues de openclassroom
http://uploads.siteduzero.com/files/421001_422000/421108.png

a écrit :
3) Node.js a beaucoup fait parler de lui car "il permet de coder en javascript cote serveur" ? Ca veut dire que normalement coté serveur on doit utiliser d'autres languages et que le Javascript, c'est plus facile à écrire ? Une fois j'ai posté un sujet, et on m'a qualifié Node.js "d'artillerie lourde"... en quoi cq consiste ? Une grosse librairie ?
Coté serveur, traditionnellement, on utilise le PHP, le ruby, l'ASP.net ou le python.
NodeJS permet en effet d'utiliser du javascript coté serveur. Mais le langage est considéré comme difficile, voire limite hermétique pour les débutants (en fait non, pas limite. Le NodeJs est compliqué et lourd en poids et à installer).

Son gros défaut ? C'est qu'il est loin d'être installé par défaut sur toutes les serveurs, ce qui force l'acquisition d'un serveur dédié chez une grande majorité d'hébergeur.
Il a en outre certaines utilisations très précises dans lesquels il sera plus efficace (vu qu'il fonctionne sur un système de code par évènement et non pas bloquant).

a écrit :
4) AJAX... ça consiste à quoi concrètement en fait ? J'ai beau lire des articles je comprends pas... en fait c'est l'utilisation de javascript d'une façon qui évite de recharger la page ?
Ajax, c'est dans son utilisation courante; la possibilité d'envoyer des données au serveur sans passer par le rechargement de la page.
C'est une méthode qui permet au javascript d'envoyer des informations vers un langage serveur.

Un exemple simple, celui d'un bouton +1 qui va incrémenter dans une base de données.

Sans ajax : tu cliques sur le bouton, ça recharge la page, le PHP ajoute en base de données et affiche la nouvelle données en html
avec ajax : tu cliques sur le bouton; javascript appelle un fichier php qui va ajouter dans une base de données et renvoyer la nouvelle données au javascript qui va modifier le html.


a écrit :
5) C'est quoi JSON ?
JSON c'est un format de données qui a l'immense avantage d'être compris par beaucoup de langages. Dans le cadre de ta question précédente, on s'en sert pour faire passer des données du javascript au php et réciproquement (surtout la réciproque);
Merci pour cette réponse très détaillée et précise =)

Nouvelles questions :

1) comment se servie de NodeJS ? C'est un framework avec des fichiers à installer, il contient des fonctions précises... ?

2) Donc quelqu'un pourrait par exemple se passer de l'apprentissage PHP (j'exagère, mais dans l'idée) pour n'utiliser pour un projet que Ruby en back end ? (même question avec Python)

3) En gros, pour le back end, il y a le choix entre plein de trucs, languages, frameworks, mais pour le front il n'y a que HTML et CSS (et éventuellement JS) et pour les bases de données seulement SQL (avec choix de plateforme) ?

4) Pourquoi on utilise un langage de données ? ça sert à quoi ?

5) Je reprends mon précédent post : Pour AJAX, comment on s'en sert, il n'y a que la fonction xmlhttprequest() ou il y a d'autres fonctions spécifiques qui permettent de changer la page sans la rafraichir ? Pour quelles utilisations on peut s'en servir ? Pour l'instant, je vois les formulaires (si faux, alors afficher message d'erreur, etc), ou les notifications comme pour facebook...

Merci =)
LightBen a écrit :
Merci pour cette réponse très détaillée et précise =)

Nouvelles questions :

1) comment se servie de NodeJS ? C'est un framework avec des fichiers à installer, il contient des fonctions précises... ?
C'est pas un framework, c'est une bibliothèque (library). Et je ne l'ai jamais employé, mais c'est plus complexe que quelques fonctions. Je sais qu'OCR a un très bon tuto dessus (le voici). Mais j'avoue ne m'y être jamais penchée.

a écrit :
2) Donc quelqu'un pourrait par exemple se passer de l'apprentissage PHP (j'exagère, mais dans l'idée) pour n'utiliser pour un projet que Ruby en back end ? (même question avec Python)
C'est tout à fait possible, et ta proposition de départ n'est pas une exagération. Il est tout à fait possible de ne programmer qu'en Ruby ou en Python sans savoir écrire deux lignes de php.
Après, comme pour le NodeJS, cette optique a le défaut que sur les serveurs apache, c'est php qui est installé de base, pas python ou ruby ^^

a écrit :
3) En gros, pour le back end, il y a le choix entre plein de trucs, languages, frameworks, mais pour le front il n'y a que HTML et CSS (et éventuellement JS) et pour les bases de données seulement SQL (avec choix de plateforme) ?
Pour le trio front (html, css, js), pour la simple raison que ce sont les seuls langages d'affichages compris par les navigateurs, enfin à moins de passer en actionscript (flash) ou java ^^
Pour le SQL, il existe des alternatives, mais moins répandue. Tu peux en découvrir sur cet article par exemple : http://blog.octo.com/des-alternatives-aux-bases-de-donnees-relationnelles…/

a écrit :
4) Pourquoi on utilise un langage de données ? ça sert à quoi ?
Langage de données ? Tu veux dire format de données (comme le json ?). Si oui, ça sert à être compréhensible par plusieurs langages (le JSON est exceptionnel dans le domaine ^^)

a écrit :
5) Je reprends mon précédent post : Pour AJAX, comment on s'en sert, il n'y a que la fonction xmlhttprequest() ou il y a d'autres fonctions spécifiques qui permettent de changer la page sans la rafraichir ? Pour quelles utilisations on peut s'en servir ? Pour l'instant, je vois les formulaires (si faux, alors afficher message d'erreur, etc), ou les notifications comme pour facebook...
Il n'y a que cette fonction, mais elle ne sert en fait qu'à faire le lien entre le php et le javascript. Et y a plein d'autres applications, je vais t'en donner quelques-unes tirées de mon projet, ça change de la programmation "classique", vu que c'est un jeu en ligne.

Par exemple, l'alchimie, la partie découverte se structure ainsi :
fichier alchimie.php
PHP :
- récupère dans la bdd (mysql) les ingrédients que possède le joueur
HTML/CSS (base2.css) + PHP:
- mettent en place la page d'alchimie, avec la liste des ingrédients disponibles (grâce à PHP) et les 4 cases maximum où peuvent se trouver les ingrédients
- le tout en multilingue (grâce au php)
- sur un template simpliste maison (base2.php)

Javascript (alchimie.js), quand le joueur ajoute un ingrédient dans la liste :
- récupère de l'id de l'objet
- supprime l'objet de la liste des objets encore utilisable (passage skin dessin à skin transparent + changement de la class pour qu'il ne réagisse plus au clic)
- ajout l'objet dans la liste des ingrédients en cours (skin transparent à skin dessin + changement de class + remplissage d'un formulaire hidden)
- récupère l'id des ingrédients de la liste (parcours du formulaire hidden)
AJAX aller :
- envoie en méthode POST les id des ingrédients

PHP (ajax.alchimie.php):
- vérif' de sécurité (que ça soit bien des ids qui soient fournis)
- vérifie que le joueur possède bien ces objets (via Sql)
- Fait chercher au SQL la liste de recettes possibles avec ces ingrédients
- adapte sa réponse en fonction de la ligne précédente (pas de recettes/recettes mais ingrédients manquants/recette ok)
- fait une réponse sous forme d'un tableau, contenant le texte qui devra être affiché, ainsi qu'un code pour le javascript
- traduit cette réponse en json (json_encode) et affiche cette réponse (avec un simple echo)

AJAX retour :
- renvoie le json au javascript

Javascript 2 (alchimie.php) en succès de l'ajax :
- décode le json pour le transformer en tableau de variable
- en fonction du code du php; met à jour une div avec le contenu du json


Dans le même genre, une chatbox en php/javascript va aussi nécessiter de l'ajax, sous peine de recharger la page sur laquelle elle se trouve.


Un autre cas où je l'utilise, toujours pour mon jeu, c'est pour faire l'encodage de carte.

page PHP/HTML qui affiche la carte en fond d'un tableau dont les cases sont remplies par une image vide. Chaque case a une coordonnées dans les tables (map/x/y) et un id dans le genre "img-x-y".
Quand je clique sur une case pour passer de marchable à non-marchable (et réciproquement), mon javascript récupère les coordonnées de la case (map via champ hidden, x et y via l'id de l'image); transmet via ajax ces coordonnées au PHP qui va fouiller dans la table et faire toutes les vérifs d'usage (c'est bien des chiffres, cette carte existe, ces coordonnées existent) et basculer le champs marchable de 0 à 1 et réciproquement.
La transmission en ajax dans l'autre sens transmet simplement un true ou false.
Si c'est true; le javascript change d'images pour signaler que la case est passé de marchable à non-marchable.

Ici l'ajax se justifie pour éviter de transformer mon tableau en formulaire à valider, la sauvegarde de l'action se faisant immédiatement.