Hello,
En phase de lancement d'un projet web, je me pose la question d'utiliser le framework Wt. Ce qui me plaît particulièrement dans ce framework :
- le langage C++ fortement typé (ce que je recherche)
- le développement avec une approche "GUI" (on ne programme qu'en C++, avec des callback et des "évènements", les aspects asynchrone / JS sont masqués)
- la performance a priori (liée au langage C++)
- l'intégration "native" de Bootstrap pour les CSS
Ce qui me fait douter :
* beaucoup de requêtes HTTP, donc potentiellement charge côté serveur ?
* pas de gros projet utilisant cette techno (à ma connaissance en tout cas)
* réactivité de l'interface (étant donné le nombre de requêtes HTTP)
Quelqu'un sur LinuxFR connait Wt ? l'utilise ? aurait un retour d'expérience ?
# framework C++ plus "classique"
Posté par Allan Simon (site web personnel) . Évalué à 2.
Il y a cppcms qui offre un framework plus classique,
[mode auto-pub pour mon projet open-source]
après au dessus de cela, pour générer du code plus en "MVC" et sans prise de tête, j'ai créé cppcms-skeleton, qui permet d'avoir directement un projet structuré et automatiser certaines taches (création du CMake, création d'un nouveau contrôleur etc.)
Je l'utilise déjà sur plusieurs projets:
un moteur wiki (qui propulse le wiki du projet tatoeba.org et un autre wiki ici, utilisant boostrap , le code est identique, juste un changement de skin
un moteur de blog (un peu moins avancé niveau fonctionnalité, mais plus facilement installable) , j'ai une instance ici , pour mon propre blog
après pour l'instant je n'ai pas encore masse de documentation comme je suis encore plus à peaufiner le code, mais je suis plutot reactif et ça me motiverai à écrire des tutos etc.
[^] # Re: framework C++ plus "classique"
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 05 juillet 2013 à 12:36.
J'ai regardé ton blog, ça a l'air effice en perf :) Ceci dit, cppcms semble plus orienté "site web" par rapport à Wt qui est plus orienté "application".
Ce qui différencie Wt (à son avantage) par rapport à cppcms :
Le dernier point est à double tranchant, puisque du coup cela évite de faire une API propre (et donc de fait limite les interactions possibles avec d'autres frontend).
A ce propos, un "getting started" serait le bienvenu… Par exemple en supposant que je veuille développer une api REST/JSON, est-ce que cppcms serait adapté ? (la question n'est pas "est-ce qu'on peut le faire", mais "est-ce que cppcms est une solution appropriée compte-tenu de ce qui existe par ailleurs")
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
# Mon opinion : fuir
Posté par dave_null (site web personnel) . Évalué à 2.
À mon avis si aucun projet connu utilise la techno, alors que la techno existe depuis très longtemps, c'est qu'il y a une raison.
Pour moi ce framework est l'exemple parfait de ce qu'il ne faut pas faire dans le web.
On peut cependant avoir une certaine nostalgie, comme faire ses interfaces en GTK ou utiliser Wt pour du web. Mais si on a un temps de développement beaucoup plus élevé pour un résultat médiocre ce n'est très intéressant.
Si tu recherches un langage typé dans le monde du web, tu peux regarder du cotés de TypeScript et compagnie. C++ c'est un peu overkill.
Je n'ai pas compris ton histoire de C++ avec des callbacks et des évènements car c'est exactement pareil en JavaScript.
Pour les performances, un programme écrit en C++ et compilé en ASM.js avec emscripten est très efficace. Mais je ne pense pas que ce soit le cas de Wt. À mon avis tu perds en performances pures pour les gros traitements.
De manière générale, on ne fait plus des IHM aujourd'hui comme on les faisait il y a 20 ans. Le web a changé beaucoup de choses dans ce domaine.
Pour ma part je conseillerais AngularJS qui contient beaucoup d'innovations et qui est très efficace en terme de développement. Notamment du cotés du TestDrivenDevelopment.
[^] # Re: Mon opinion : fuir
Posté par LeBouquetin (site web personnel, Mastodon) . Évalué à 3.
Hm… ça ne veut pas dire que ce n'est pas bon, ça veut dire - par exemple que peu de projets "à la mode" utilisent des technos telles que C/C++.
Tu peux argumenter ?
Bah, le temps de développement est une chose, la maintenabilité en est une autre. Je ne vois pas en quoi utiliser Wt est "avoir une certaine nostalgie".
Hm… TypeScript, à part que c'est développé par M$, je sais pas qui l'utilise spécialement ; des sites comme le bon coin, par exemple, pour ne citer que lui utilise du C pour son backend.
Tout à fait. Sauf qu'en Javascript, c'est côté client uniquement : ensuite il faut que tu gères la synchronisation des données avec le serveur. Là, avec Wt, c'est "full package" : tu ne te préoccupes pas de l'API et de la synchronisation client/serveur puisque c'est encapsulé dans Wt justement.
Tu parles d'une seule partie du sujet : le côté utilisateur.
Arguments ?
Je connais AngularJS. Comme pour beaucoup d'autres framework MVC Javascript, j'aimerais que tu m'expliques un peu plus ce qui les différencie des méthodes de développement d'IHM d'il y a 20 ans. Les mécanismes que tous ces framework implémentent sont ceux qui existaient déjà il y a 20 ans. La différence c'est que les technos à la mode ne sont plus les même.
Le TDD c'est une bonne pratique, mais ça n'empêche qu'un langage fortement typé et compilé évite beaucoup d'erreurs avant même que tu aies besoin de lancer le moindre test.
#tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo
[^] # Re: Mon opinion : fuir
Posté par dave_null (site web personnel) . Évalué à 1.
On est d'accord, mais en général c'est un bon indicateur de départ. Voir qui sont les utilisateurs d'un projet permet de se rassurer. Si il y a Google ou Facebook qui sont utilisateurs je sais que le projet a une carrière assurée pour quelques années. C'est toujours plus risqué de partir sur un projet sans trop savoir si on ne va pas galérer à le maintenir seul.
Ma remarque est sur le cotés très bas niveau de C++. Selon moi il n'est pas nécessaire de descendre aussi bas niveau pour réaliser une IHM, d'où le cotés nostalgique. Dans l'embarqué ça peut cependant être nécessaire, mais dans ce cas on ne fait pas du Web avec un gros framework comme Wt au dessus.
Je pensais plus à la partie frontend, même si tu peux tenter de l'utiliser cotès backend avec Node.js (et là il y en a des utilisateurs en Node.JS).
Pour ceux qui utilisent TypeScript effectivement c'est assez difficile à savoir. Le langage a cependant profité d'une bonne couverture médiatique et est créé/soutenu par Microsoft. C'est possible que ça soit assez utilisé à l'avenir il faut voir.
Désolé quand je pense web je pense surtout cotés utilisateur. C'est vrai que c'est un gros avantage d'avoir le client/serveur dans le même code source avec le même framework.
Cependant cela peut avoir aussi des inconvénients, car le client et le serveur sont dépendants. Un serveur (développé en C++ par exemple) fournissant une API REST permet d'avoir des clients développés facilement dans n'importe quelle technologie.
Pour les évènements temps réel ça existe avec Socket.IO pour Node.JS par exemple et là aussi c'est indépendant du client.
Juste pour prendre l'exemple de l'évolution chez Microsoft :
https://www.google.fr/search?hl=fr&site=imghp&tbm=isch&source=hp&q=windows+3.1
https://www.google.fr/search?hl=fr&site=imghp&tbm=isch&source=hp&q=microsoft+pixelsense
Et le site web d'apple :
http://web.archive.org/web/19970404064444/http://www.apple.com/
http://www.apple.com/
Je dirais que la différence se situe surtout au niveau du code source. En C++ tu dois gérer la mémoire et les types de tes données, avec AngularJs tu t'occupes plus de tes composants et comment les faire interagir. Je pense que le développement est plus efficace.
Le langage fortement typé évite pas mal d'erreurs on est d'accord, mais surtout cotés serveur. Cotés client la plupart des problèmes viendront avec les interactions des utilisateurs, qui font toujours des choses bizarres.
Après tout, développer en C++ cotés serveur n'est pas une mauvaise idée si il y a de gros traitements à réaliser (car si c'est pour attendre la BDD ou les IOs en permanence c'est moins intéressant aujourd'hui).
Cotés client c'est selon moi beaucoup moins avantageux mais si tu ne souhaite pas séparer le code source du client et du serveur, tu peux effectivement avoir un intérêt à utiliser Wt, mais je ne le conseillerais pas.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.