5160 sujets

Le Bar du forum

Bonjour, bonjour,

Je viens aujourd'hui vous présenter JSB et surtout pour proposer aux passionnés ou simples utilisateurs de JavaScript d'y participer.
Voici le site officiel : jsb.selfbuild.fr

JSB est le fruit des constats suivant : il existe un framework très largement répandu, nommons-le : jQuery, mais celui-ci comporte quelques faiblesses :
- Un poids conséquent, à l'heure où les moteurs de recherches ont fait du temps de chargement des pages un des critères d'évaluation, c'est handicapant, surout quand on a un site très léger à la base et que l'on a peut de script. L'alternative d'utiliser des scripts distant code.google & co. pose aussi le problème de l'indépendance des sites. JSB a donc pour objectif d'être plus légère et pour cela, elle serait découpée en modules et la page de téléchargement permettrait de sélectionner les modules dont on a besoin ou pas pour ne faire charger à ses visiteurs que ce dont on a besoin.
- Des outils de construction du DOM très limités. jQuery est plutôt pauvre à ce niveau puisqu'il n'y a en gros que html(), replaceWith() et appendTo() qui reviennent tous les trois approximativement à faire .innerHTML= Dans JSB, l'outil principal : $() permet de faire des createElement, appendChild, setAttribute, addEventListener, etc. de façon intuitive et ultra-raccourcie.
- Les syntaxes de jQuery bien que court sont encore largement simplifiables. Le code jQuery suivant par exemple :
$('#bloc').animate({
    'width':'400',
    'height':'500'
});

Est également compatible JSB, cependant, la syntaxe suivante est également disponible en JSB :
$('#bloc').a('width:400;height:500');

Donc, JSB disposerait d'alias raccourcis et de multiples syntaxes pour plus de flexibilité et permettre de coder encore plus court.

Voilà le concept. Cependant, JSB ne se pose pas en concurrent à jQuery, le but n'est pas de reprendre toutes les fonctions avec les mêmes prototypes mais au contraire de proposer une alternative.

Sont les bienvenus sur le projet :
- De simples utilisateurs intéressés par ce framework et dont le souhaits peuvent nous donner des idées.
- Des codeurs JS capables de développer des modules/plug-in ou qui ont déjà codé des scripts que nous pourrions convertir en plug-in. (Par exemple si vous avez codé un script de compte à rebours, de sélection de couleur par palette, de barre de scroll personnalisée, etc. Alors votre code peut probablement être convertit en plug-in JSB où il pourra se faire connaître).
- Des anglophones prêt à aider pour traduire la documentation techniques et autres pages su site.
- Des testeurs prêts à mettre JSB à l'épreuve pour en chasser les bugs, les éventuels problème de compatibilités entre navigateurs.
- Des spécialistes de JavaScript qui pourrait se pencher sur le code source pour tenter de l'optimiser au maximum.

Voilà, si vous êtes intéressé par ce projet, postez !
Oui, c'est l'idée de départ. J'ai zappé, pourtant je comptais en parler dans le premier message.

Niveau licence, je pensais commencer en Creative Comon BY (+ peut-être SA mais je suis pas encore fixé). Et s'il venait à y avoir beaucoup de contributeurs, le projet passerait en Open Source (le plus libre possible, quelque chose du genre LGPL).

Je ne suis pas non plus spécialiste dans ce domaine, donc si d'autres ont des suggestions et des arguments pour une licence plutôt qu'une autre, c'est à voir. J'ai préféré poser des conditions d'utilisation quitte à libérer ensuite puisque l'inverse est beaucoup plus difficile à faire. De plus, je pense que quelques liens retour ne feraient pas de mal pour lancer le projet.

Côté contributeur, je m'impose les mêmes règles que celles que je demande à savoir : un lien visible en dur dont le contenu textuel est au choix du contributeur.

Si Dédé traduit la page scroll, un texte apparaît en haut de page : "Traduit par Dédé", Dédé est cliquable et mène sur le blog de Dédé.

Si Jéjé a une entreprise à promouvoir (nommée par exemple JSPower) et qu'il a créé un plug-in, alors, directement à côté du lien du plug-in, est écrit : "Par JSPower", JSPower est cliquable et mène vers le site de l'entreprise de Jéjé.

Pour tous les autres contributeurs, leurs noms, entreprise, blog ou site apparaîtront sur une page listant tous les contributeurs, plus une page d'article individuelle, ou chacun pourra être décrit brièvement et lié seul. Ce qui est nettement plus profitable pour le référencement naturel.
KyleKatarn a écrit :
De plus, je pense que quelques liens retour ne feraient pas de mal pour lancer le projet.

Sans moi alors Smiley lol l
benj > Quand je disais que j'attendais vos suggestions sur la licence, il n'était pas exclu que vous pouviez argumenter vos points de vue de manière constructive. J'ai bien dit que j'avais mis en place une licence provisoire pour avoir de la liberté. Qui peut le plus peut le moins. Avec une licence restrictive, on peut ouvrir par la suite, avec une licence ouverte, on ne peut plus refermer par la suite. L'installation de cette licence était donc la chose la plus rationnelle à faire tant que je suis l'unique contributeur non ?

De plus, ce n'est pas comme si j'avais interdit l'usage commercial ni limité le script avec une version grauite et une version payante. Pour l'instant je fournis gratuitement mon travail et autorise même qu'on se fasse de l'argent en utilisant mon script. Voilà, je suis pas radin alors demander un lien, ça me semble pas être le bout du monde. D'autant que je suis pas fou, je sais bien que tout le monde ne respectera pas cette licence.
Modifié par KyleKatarn (16 Apr 2012 - 18:35)
Ce que je voulais dire, c'est que les contraintes de ta licence seront un gros frein au développement de ton projet.
Pour 1 personne à mettre un lien vers ton site, tu en auras peut être 100 autres à passer leur chemin à cause de ta licence.

Aussi, Si tu veux que ton projet soit collaboratif, il te faudra absolument prévoir un logiciel de version comme git.
Alors, comme dit, je ne prétends pas avoir toutes les connaissances nécessaires pour faire le framework parfait tout seul, c'est bien pour ça que je crée ce topic.

Si tu es utilisateur expérimenté de Git, ce peut être une compétence utile car il est prévu que de versionner le script de base et chaque plugin et de différencier les versions stables et celles qui ne le sont pas.

Moi j'ai toujours travaillé avec mon webftp fait main : webftp.selfbuild.fr qui dispose déjà de pas mal d'outils de lockage de fichiers et de comparateurs de version. Et donc a toujours suffit pour mes différents travaux équipes (des équipes qui n'ont jamais dépassé les 20 personnes).

De même, si un expert en licences a quelques feedback à apporter qui permettent de comparer les avantages et inconvénients des différentes licences déjà utilisées, je suis très intéressé.
Des libs js, y'en a 10 par jours qui sortent. En mettant ce genre de contrainte d'un autre siècle, tu réduis à néant toute velléité de contribution, mais également d'utilisation. Si ta lib plaît, t'auras des liens, sinon tu disparaîtras dans les limbes de l'anonymat.
Même chose, git (ou équivalent) indispensable, ainsi qu'un compte github (ou équivalent aussi).
C'est gratuit pour les projets libres, et plein de fitioures sympa pour collaborer, documenter, et présenter ton travail.
Modifié par paolo (16 Apr 2012 - 19:14)
Je comprends vos positions, mais reconnaissez qu'elles sont plus faciles à tenir lorsqu'on a rien investit (ni serveur, ni temps de recherche et conception).

Paolo, sur ton site vitrine, je vois bien un "Some rights reserved", licence d'un autre temps mais que tu utilises quand même Smiley ravi "Faites ce que je dis, pas ce que je fais." N'est-ce pas ?

Comme vous, je profite du libre avec mon linux, mon chromium, gimp, etcetera mais comme vous je suis un codeur qui essaye de vivre de cette passion.

Avant de libérer cette lib, je préfère prendre le temps d'y réfléchir à deux fois plutôt que de la voir se retrouver utilisées par quelques entreprises ultra-lucratives.

Ne pensez-vous pas que le choix de la licence (car même dans le "libre", il y a pleins de nuances) puisse attendre la parution d'une première version stable ?
Modifié par KyleKatarn (16 Apr 2012 - 19:36)
Euh...


$('#bloc').animate({'width':'400','height':'500'});

$('#bloc').a('width:400;height:500');


Gagner 10 caractères pour perdre toute la lisibilité du code, c'est vraiment un avantage ? Désolé mais pour moi 'a' à la place de 'animate' c'est pas du tout parlant. Je me vois pas aller relire ce genre de code.
C'est pour ça qu'il y a les alias, la possibilité de coder compatible jQuery, des syntaxes plus longues et plus explicite ou alors de coder courts. Exemple, je suis seul codeur, a=animate me parle, et j'ai 400 animations à faire, j'économise à mes petits doigts 400 AltGr+{, 400 AltGr+} et 2400 ' et je diminue le risque d'erreur possible en oubliant ou ratant l'un de ces caractères spéciaux.

Là, le codeur a le choix.

Ce n'est peut-être pas non plus le meilleur exemple. Est déjà en place dans JSB, un système de navigation AJAX qui s'intègre tout seul, on définit une zone de vue et tous les liens au lieu de changer de page vont lancer une requête AJAX qui va remplacer uniquement la vue. Le tout peut s'agrémenter facilement d'un fondu, slide ou autre et le codeur n'a rien à développer côté PHP sinon éventuellement une détection d'entête permettant de n'envoyer que la vue lorsque la demande vient d'une requête AJAX afin d'économiser un peu de bande passante.

De même quelques raccourcis permettent de faire les animations de hover les plus classiques (slide, fade, etc.)

Voilà l'idée.

Donc pour ma défense, je dirai que même si on gagne peu, on ne perd rien puisque les syntaxes longues sont possibles aussi.
Modifié par KyleKatarn (16 Apr 2012 - 20:13)
a écrit :
la voir se retrouver utilisées par quelques entreprises ultra-lucratives.

Et alors ?

a écrit :
Paolo, sur ton site vitrine, je vois bien un "Some rights reserved", licence d'un autre temps mais que tu utilises quand même


Bon, y'a du boulot hein.
Un simple clic sur le texte que tu cites t'aurait amené sur cette page, cad la moins restrictive des licences creative commons (pas vraiment adaptées à du code soit dit en passant).
Je ne me souviens pas non plus t'avoir sollicité pour une critique ou un avis sur une de mes réalisations ...

Mais ça n'a aucun strictement aucun rapport avec ta librairie.
Tu viens recruter des utilisateurs et contributeurs potentiels en plaçant des conditions qui vont les faire fuir. T'as le droit.
Mais t'attends pas à des miracles.
Modifié par paolo (16 Apr 2012 - 21:23)
On peut pas télécharger ton script :

Parse error: syntax error, unexpected 'else' (T_ELSE) in /mnt/barracuda/www/selfbuild/sd/jsb/telecharger.php on line 6
Hello.

Quelques remarques :
KyleKatarn a écrit :
L'alternative d'utiliser des scripts distant code.google & co. pose aussi le problème de l'indépendance des sites.
L'uptime du CDN de Google, ça doit être environ du 99,9%. Et rien n'empêche de mettre en place un fallback en local comme préconisé par le HTML5 boilerplate.

KyleKatarn a écrit :
JSB a donc pour objectif d'être plus légère et pour cela, elle serait découpée en modules et la page de téléchargement permettrait de sélectionner les modules dont on a besoin ou pas pour ne faire charger à ses visiteurs que ce dont on a besoin.
Ça existe déjà : Ender ou YUI, sinon en monolithique, zepto offre une bonne alternative à jQuery (même API, mais ultra light).

KyleKatarn a écrit :
- Des outils de construction du DOM très limités. jQuery est plutôt pauvre à ce niveau puisqu'il n'y a en gros que html(), replaceWith() et appendTo()
En vérifiant l'API de jQuery, je compte facilement une quinzaine de méthode d'insertion dans le DOM. Je ne vois rien qui empêche non plus de créer des nœuds "à l'ancienne" pour les utiliser via du jQuery.

KyleKatarn a écrit :
(...) la syntaxe suivante est également disponible en JSB :
$('#bloc').a('width:400;height:500');

Donc, JSB disposerait d'alias raccourcis et de multiples syntaxes pour plus de flexibilité et permettre de coder encore plus court.
Pas mieux que jb_gfx sur ce coup, c'est le genre de syntaxe qui fait saigner des yeux, qui alourdit ta lib inutilement vu toutes les déclarations de raccourcis et rend ton API inconsistante au possible.

Désolé, le but n'est pas de troller ou de dénigrer le boulot, mais entre utiliser des solutions largement adoptées, testées de fond en comble avec plusieurs centaines (milliers?) de contributeurs, et une lib closed source (sans gitHub, point de salut de nos jours si on fait du JS) le choix est vite fait.

Mes 2 centimes comme on dit.

EDIT: Au passage, si tu as 400 animations à faire sur un site, il y a un gros gros souci.
Modifié par Florian_R (16 Apr 2012 - 21:17)
Paolo > Non, ce n'est pas la moins restrictive car share alike, on est très loin de LGPL. De plus le simple By n'est rien de moins que demander de citer ses sources, équivalent à une demande de lien. Je ne suis pas un expert, mais je vois qu'il y en a des plus paumés.

Voilà, donc ma lib n'est pas closed source ou je ne sais quelle connerie, elle est Comon Creative BY, je n'ai fait qu'expliciter sous forme de liste ce que cette licence contient.

a écrit :
Je ne me souviens pas non plus avoir sollicité de critique ou d'avis sur une réalisation ...

Justement, je vois qu'on s'est mal compris, je n'ai pas du tout sollicité de critique. Alors avant de se lancer là-dedans, je rappelle que je fais appelle ici à des bonnes volontés pour participer, vos remarques si pertinentes soient-elles n'ont pas été sollicité, je n'ai invité à poster que les gens "intéressé", visiblement ça n'a pas été lu.

Donc avis à tout le monde, merci d'arrêter le tir, non pas que vos remarques me gênent mais elles polluent un sujet destiné à autre chose.
On voudrait bien critiquer objectivement le code et éventuellement contribuer à ta réinvention de la roue carrée, mais comme dit plus haut, on ne peux pas télécharger la lib Smiley sweatdrop .
Florian_R > Déjà, le téléchargement est corrigé. Et vraiment, j'insiste, vos critiques objectives ou pas ne m'intéresse que peu. Vous n'êtes visiblement pas intéressé alors ne perdez pas votre temps en me faisant perdre le mien. Que vous trouviez des points sur lesquels pinailler ne serait vraiment utile au projet qu'en proposant des corrections concrètes.

Je sais bien qu'enfoncer les gens plus bas que terre est le sport national sur nombre de forums, mais ce n'est clairement pas ce genre de participations que je sollicite.
Documente toi.
" toute modification de code source dans la bibliothèque LGPL devra être également publiée sous la licence LGPL"
source

J'aurais bien regardé les tests, mais "Parse error: syntax error, unexpected 'else' (T_ELSE) in /mnt/barracuda/www/selfbuild/sd/jsb/telecharger.php on line 6"

Edit:
"Je sais bien qu'enfoncer les gens plus bas que terre est le sport national sur nombre de forums"
Ici, pas vraiment , non. On essaie de t'expliquer, de manière un peu directe, que ton projet a peu de chance d'intéresser grand monde en persistant dans cette voie, mais visiblement t'es au dessus de nos suggestions.
Effectivement, j'ai assez perdu de temps.

Edit 2:
Puis avec du code sans tests unitaires ni commentaires...

Bisous.
Modifié par paolo (16 Apr 2012 - 22:05)