Kansha est un clone de Trello (et plutôt bien fait). Il est open-source, avec une image Docker et tout, il est utilisé par de gros comptes, le lien pointe vers une démo. Et il est construit avec un framework Python qui abstrait le html, le javascript et jusqu'aux appels Ajax. Il s'agit de Nagare, un framework alien basé sur des continuations.
- http://www.nagare.org/
- http://www.nagare.org/trac/wiki/NagareDownload
- https://bitbucket.org/nagare/ (si la dernière activité paraît dater, c'est bien cette version utilisée pour Kansha)
Sa liste de fonctionnalités dit que…
… le programmeur est soulagé de plusieurs problèmes inhérents au développement web:
- plus besoin de mapping d'URL manuel,
- pas d'objet session global. Tous les états de tous les composants sont gardés sur le serveur,
- Ajax automatique, sans plus de code python ou javascript à ajouter,
- clustering possible avec memcached,
… et que
- le framework est basé sur des composants, facilement réutilisables
- les continuations permettent d'écrire une appli web comme une appli de bureautique, c'est à dire (si je comprends bien) avec du code linéaire,
- si on donne une fonction python à une méthode client, Nagare la traduit en javascript,
Une vue ressemble à ça:
@presentation.render_for(Board, 'switch')
def render_Board_item(self, h, comp, *args):
reload_search = ajax.Update(component_to_update='show_results',
render=lambda renderer: comp.render(renderer, 'search_results'))
h << h.script(u'''$(window).on('reload_search', function() { %s; })''' % reload_search.generate_action(41, h))
with h.div(id='switch_zone'):
if self.model == 'columns':
search_cb = ajax.Update(
action=self.search,
component_to_update='show_results',
render=lambda renderer: comp.render(renderer, 'search_results')
).generate_action(1, h).replace('this', 'elt')
oninput = 'debounce(this, function(elt) { %s; }, 500)' % search_cb
# etc
Hérésie ? Pour les standards actuels, énorme hérésie. Cependant, ce n'est pas un mélange de html et de javascript à la React ou à la PHP, il s'agit malgré tout de pur Python, de plus une app est toujours séparée en parties "template" et controlleur, templates qu'on peut écrire comme de vrais templates d'ailleurs mais, d'après un court échange avec le développeur principal, aucun dév de l'équipe ne privilégie cette manière.
Vous aurez noté que:
- les URLs ne sont pas belles
- Nagare ne fait pas (encore ?) du double data binding partout ou de Single Page Application, pour cela il faudrait ajouter également à son app une couche d'api REST et de framework JS, comme Django en fait. Mais enfin, Kansha quand même.
À essayer pour juger, plus que d'habitude, j'imagine. En attendant plus de présentations de l'équipe derrière le projet !
Nagare dit s'inspirer fortement de Seaside, écrit en Smalltalk. Il (a) exist(é) de tels frameworks en Common Lisp, Ruby, C++, Haskell, OCaml, Perl,…
# Du web ? Essayez BCHS
Posté par karchnu . Évalué à 2.
Les développeurs web aiment pas le web, ouais, eux non plus. Garanti hype-free. :)
# Sans une ligne de javascript ?
Posté par Gauthier Monserand (site web personnel) . Évalué à 9.
Ça mélange python, html, javascript de partout. C'est bien moche, je souhaite bonne chance à celui qui s'embarque la dedans. J'ai connu Nevow, je suis content d'être passé à rails + haml.
[^] # Re: Sans une ligne de javascript ?
Posté par totof2000 . Évalué à 5.
Oui mais bon, tu comptrends, c'est écrit en Python, donc ça ne peut être que bien.
# C'est quoi Kansha ?
Posté par windu.2b . Évalué à 5.
Je reformule ma question : c'est quoi, Trello ?
[^] # Re: C'est quoi Kansha ?
Posté par dj_ (site web personnel) . Évalué à 1.
Un truc pour faire du kanban
[^] # Re: C'est quoi Kansha ?
Posté par barmic . Évalué à 4.
Non.
Trello est une tableau (une board) dans la quelle tu défini des listes dans les quelles tu va placer des cartes. Les listes sont présenter comme en colonnes.
Une carte peut contenir, un titre, un label, une description des commentaires, une échéance, des documents, des commentaires,… et tu peut déplacer une carte d'une liste à une autre.
Cela permet d'avoir un board scrum numérique ou de faire du Getting Things Done par exemple.
Pour Kanban, il manque la règle la plus importante de kanban : la limitation du nombre de carte par liste (c'est pas pratique de l'avoir à coté et c'est pas intégré).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
# on recommence
Posté par TImaniac (site web personnel) . Évalué à 10. Dernière modification le 23 décembre 2016 à 11:08.
C'est rigolo les technologies, c'est un éternel recommencement.
Ca me rappelle l'époque ASP.NET où tout la partie "technique" javascript/cookie/ajax était abstraite et gérée côté serveur derrière du C#/VB, avec l'objectif de proposer la même expérience que pour le développement d'application bureautique (composants réutilisables, WYSIWYG, événements, etc.).
Le genre d'abstraction qui en fait cache trop de chose pour celui qui n'est pas expert et ne comprend pas comment fonctionne le framework (c'est à dire tout le monde sauf ceux qui l'ont conçu).
Puis on est revenu aux sources : du bon gros javascript qui communique avec des API REST. C'est moins sexy mais on comprend comment ca marche et le résultat obtenu est relativement "light" et pas entièrement bloated par un framework juste pour afficher un bouton et une liste.
Mais bon quand même c'est relou le javascript et tout : alors tout le monde y va de sa bibliothèque "2.0" voir de sa surcouche de language (Typescript & co).
Et hop maintenant ca redevient même hype de faire abstraction de l'ensemble client/serveur pour proposer… la même chose qu'il y a 10 ans.
Quand à Kansha, comme Trello, y'a un truc qui me chagrine : on propose de gérer des tâches comme des bouts de papier (drap & drop), mais toujours pas de support tactile ! c'est quand même extrêmement frustrant en 2016.
Bon ok je suis un vieux con :-p
[^] # Re: on recommence
Posté par dzecniv . Évalué à 2.
C'est vrai c'est comme ASP.NET ? Vu comme ça c'est moins emballant.
Bien résumé sinon.
[^] # Re: on recommence
Posté par totof2000 . Évalué à 1.
Ben oui mais avant c'était en ASP.net, ça pouvait pas être bien. Là c'est écrtit en Python, ça ne peut qu'être bien. Et si tu peux pas développer comme tu veux avec, c'est que ta façon de développer n'est pas la bonne. Et si tu as un besoin qui n'est pas couvert par l'outil, c'est ton besoin qui est pas bon, ou tu t'y prend pas de la bonne façon pour répondre à ce besoin.
[^] # Re: on recommence
Posté par El Titi . Évalué à 4.
Ça fait 2 fois que tu nous le sors.
Y'a un pythonneux qui t'a piqué ton job que tu es rageux comme ça ?
[^] # Re: on recommence
Posté par totof2000 . Évalué à 0.
Nan, ya juste une bande de pythonneux qui me gave à prétendre que Python est le meilleur langage au monde alors que c'est loin d'être le cas. J'en ai marre de ce langage qui vient toujours me'empêcher de faire les choses comme j'en ai envie et m'impose sa façon de faire pas toujours très logique, et qui pousse à se répéter ou à écrire plus de lignes de code que nécessaire. un exemple de truc débile qui traduit bien la mentalité douteuse de ce langage : l'absence de switch/case (oui ça me gave d'enchainer les elsif : c'est affreux et bien moins lisible qu'un switch/case - tout aussi affreux que le contournement qui consiste à utiliser un dictionnaire pour pallier ce manquiement). Et l'absence de switch n'est pas le seul cas de figure, on trouve des palanquées de ce genre de contournement un peu partout dès qu'on a besoin de faire un truc un peu évolué.
[^] # Re: on recommence
Posté par GuieA_7 (site web personnel) . Évalué à 1.
[^] # Re: on recommence
Posté par totof2000 . Évalué à 3.
Tu as très bien compris le sens de la phtrase. Sinon, oui python m'est imposé.
Bien sur mais aucun de ceux que j'ai essayé jusqu'à maintenant ne m'ont mis autant de batons dans les roues.
ben oui mais il ne m'impose pas une seule méthode pour le faire. J'ai juste à développer ma lib (ou utiliser une lib qui me convient), mais pas de restrictions sur le comment.
J'évite python quand je le peux, mais dans le cadre pro je n'ai pas toujours le choix.
Quel est le rapport ?
Sinon, plus queles limites de Python en elles-même c'est surtout la mauvaise foi de beaucoup de pythonneux qui me gave (et c'est surtout envers eux que mes commentaires initiaux était dirigé).
[^] # Re: on recommence
Posté par GuieA_7 (site web personnel) . Évalué à 5.
Il est là le rapport. Tu te prends la tête avec quelques pythonneux (vu la popularité du langage y en a forcément beaucoup dans l'absolu avec qui tu ne t'entendras pas ), puis tu viens nous lâcher des commentaires de frustration qui vise tout le monde; garde les pour tes collègues de travail s'ils sont les seuls à être visés (et pouvoir comprendre le contexte).
En ce qui me concerne j'aime beaucoup Python, et pourtant ça me m'empêche de poster des commentaires où je le critique. Et pourtant je me vois imposer (haha) tes commentaires :)
On peut aussi l'interpréter autrement : tu gagnes (en partie) ta vie grâce à Python, et derrière tu craches dessus. C'est plus facile que de changer de travail je te l'accorde. Mais ça ne donne pas des commentaires très intéressants.
[^] # Re: on recommence
Posté par srb (site web personnel) . Évalué à 0.
Si tu tiens à avoir un switch/case, il existe diverses implémentations disponibles directement dans pypi.python.org. Cela dit, je trouve que la solution du dictionnaire est assez efficace. S'il y a beaucoup de if/else, du polymorphisme pourrait-il résoudre le problème?
Il y a eu plusieurs tentatives d'intégrer switch-case au langage mais les porpositions n'ont pas été considérées comme satisfaisantes, ce qui explique pourquoi il n'a jamais été intégré au langage.
J'aime beaucoup Python sans pour autant prétendre qu'il puisse résoudre l'ensemble des problèmes de manière parfaite ou idéale.
[^] # Re: on recommence
Posté par Xavier Verne (site web personnel) . Évalué à 2.
ca existe en tactile mais c'est plus cher et propriétaire. Cela s'appelle iObeya. Les belles applications bien ergonomiques et bourrées de bonnes idées, le tout bien peaufiné c'est malheureusement encore propriétaire…
[^] # Re: on recommence
Posté par groumly . Évalué à 2.
Trello à une appli mobile plutôt décente, surtout vu l'état des applis natives de gestion de projet.
Linuxfr, le portail francais du logiciel libre et du neo nazisme.
# Tut tut tut !
Posté par rakoo (site web personnel) . Évalué à 5.
Tu veux certainement dire "à la JSX". React c'est du 100% javascript pur bio, élevé en plein air; JSX est un "sucre syntactique" qui est transformé en javascript avant d'être interprété. D'ailleurs tu peux tout à fait t'en passer, et tu auras un truc qui ressemble à ça:
Ce qui est tout de même moche, du coup tu as des librairies qui te permettent de faire, par exemple, ça:
Ou alors créer une fonction qui alias
React.createElement
, ou alors passer par une autre bibliothèque javascript… Toute la force de React, justement, c'est de n'être que du javascript.# Joli mais buggué
Posté par ComputingFroggy (site web personnel) . Évalué à 3.
J'ai essayé 2 min sur la page de démo : c'est joli … mais ça bugge pas mal.
Je peux comprendre que toutes les 30 sec. j'ai un message indiquant que la page n'est pas à jour et qu'il faut la recharger : tout le monde teste la même page.
Mais pas, que quand je saisis une carte, les modifications n'apparaissent pas (il faut rafraîchir la page), de plus quand on finit la carte, on ne sait pas où cliquer pour valider … bref, pour moi c'est joli mais pas fini … quand ça le sera, cela sera sûrement très bien.
En attendant, je reste sur mon framaboard (une instance de Kanboard) qui est moins sexy mais qui fonctionne très bien (pour mes -tout- petits besoins).
[^] # Re: Joli mais buggué
Posté par El Titi . Évalué à 6.
Kansha veupa cha veupa
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.