J'ai une idée pour un service web, mais je suis très nouveau dans la programmation web. Django a l'air génial et aime quelque chose que je peux ramasser rapidement. J'ai beaucoup d'expérience dans Haskell (et très peu en python) et j'aimerais pouvoir commencer à écrire quelques-unes des choses non liées au web dans ma langue préférée. Mais bien sûr, je ne veux pas faire ça si le code haskell ne sera pas utilisable si je pars avec django. J'ai regardé plusieurs frameworks web haskell: hApps semble trop compliqué et non documenté, turbinado semble approchable mais n'est pas documenté, etc. Et je pense utiliser un framework largement utilisé comme django, et avoir accès à beaucoup de code que je peux simplement brancher m'aidera beaucoup. Mais je suis très ouvert à entendre parler d'autres idées sur les cadres à utiliser, ou d'autres options que je dois utiliser Haskell d'une manière ou d'une autre.Puis-je écrire des composants dans Haskell à utiliser sur un site Django?
Répondre
Cela dépend de ce que vous entendez par "service Web". Si vous parlez d'une application Web/site Web typique, vous aurez besoin d'une interface facile pour une base de données, de la génération HTML, de la gestion HTTP facile, des sessions et de la gestion des formulaires. Vous avez vraiment besoin d'un cadre web décent pour cela.
Il n'y a pas de 'bons' frameworks web pour Haskell. (En faisant ce jugement, j'inclus des facteurs comme la documentation, la communauté, la probabilité-que-ce-ne-sera-pas-abandonné-dans-une-année-pour-un-nouveau-shinier-approche etc.).
Si vous voulez dire quelque chose de beaucoup moins "webby" par ex. un service qui renvoie des données cartographiques, et qui n'a pas besoin de la plupart de ces fonctionnalités, vous pourriez obtenir quelque chose comme Hack ou même Network.CGI pour vous fournir l'interface HTTP de base, sur laquelle vous construiriez votre service, fonctionnant avec CGI/FastCGI. Si vous avez également besoin d'un site web dynamique, vous pouvez utiliser quelque chose comme Django pour ce petit bout de temps.
Vous pouvez également écrire des exécutables Haskell autonomes appelés à partir du code Django. Mais Python direct < -> Haskell interop est peu susceptible d'être possible/pratique.
Apprenez Python, vous trouverez qu'il a de nombreuses fonctionnalités. C'est facile à prendre et très agréable.
Bon choix avec Django.
Quelles sont les fonctionnalités non fonctionnelles de python? Autre que antigravité (http://xkcd.com/353) bien sûr. –
@Dominic: La possibilité de muter des objets. La possibilité de relier des variables. Support limité pour les fonctions lambda (c'est un gros). Manque de support pour la composition et l'application partielle des fonctions. – Chuck
Si vous créez simplement un service Web, vous pouvez écrire des programmes cgi ou fastcgi dans Haskell pour gérer les appels de service Web.
Est-ce une méthode qui fonctionnera avec django, ou une alternative? J'ai une certaine compréhension de CGI en dehors de django, mais je ne sais pas encore vraiment comment django/CGI fonctionnent ensemble. – jberryman
@jberryman: Je ne sais pas comment Django fonctionne avec CGI, mais si vous êtes en train d'écrire un service web, je ne suis pas sûr que Django soit le bon outil pour ce travail. Comme le dit Spookylukey, si vous voulez dire une application Web standard, c'est quelque chose de différent de ce dont je parle. Si vous voulez simplement fournir des URL qui renvoient des données, je pense que vous ne devriez pas utiliser Django du tout. – Amok
Allez pour F # et découvrez NDjango - qui est un port Django écrit en F #. Informations complètes: NDjango est mon projet www.ndjango.com
C'est une proposition intéressante, mais beaucoup de gens ne sont pas si chauds sur les langues MS. – Chuck
Si vous voulez que Haskell communique directement avec la base de données, vous devrez modifier le script de migration de la base de données Django pour qu'il émette également le code du modèle Haskell en utilisant une bibliothèque comme Yesod's Persistent.
- 1. Comment empaqueter des composants à utiliser dans plusieurs applications iPhone?
- 2. Workflow Windows - Utiliser sur un site eCommerce?
- 3. Quelle bibliothèque Haskell XML utiliser?
- 4. Écrire une extension Firefox qui utilise des composants XPCOM?
- 5. Résolution des composants des facelets à l'exécution
- 6. Comment utiliser les FFI de Haskell sur les structures?
- 7. Comment envoyer un message de session à un utilisateur anonyme sur un site Django?
- 8. Comment utiliser fprintf et écrire sur un tube?
- 9. exposition sur les flèches à haskell
- 10. Comment écrire ce "modèle" dans Django?
- 11. ApplicationConnexion à des composants personnalisés
- 12. Comment utiliser imagemagick sur le site asp.net?
- 13. Visibilité des composants Flex sur l'application
- 14. Écrire des tests pour les actions d'administration de Django
- 15. Multi-Core Haskell sur Windows
- 16. Comment ajouter des composants à un JPanel à l'exécution
- 17. Comment mettre un lien/url sur la page d'accueil du site web dans Django?
- 18. elemIndices à Haskell
- 19. Delphi 2009 classes/composants à lire/écrire des autorisations de fichiers
- 20. Comment utiliser CommaSeparatedIntegerField dans django?
- 21. Comment puis-je écrire une méthode dans un modèle Django pour récupérer des objets liés?
- 22. Événement Click-outside sur des composants personnalisés dans flex
- 23. Comment écrire des applications Facebook en utilisant Django?
- 24. Diagrammes à barres sur un site Web
- 25. Comment écrire des bits dans un fichier?
- 26. Connexions de composants WebPart dans les définitions de site
- 27. Possibilité de lire/écrire des cookies à utiliser par deux applications Web ASP.NET différentes?
- 28. (émulé) Macros dans Haskell?
- 29. Listes intermédiaires dans Haskell
- 30. Fusionner trier dans Haskell
"Python <-> Haskell interop est peu susceptible d'être possible/pratique." - Il est certainement possible et pratique d'appeler Python depuis Haskell - et utile si vous avez besoin d'une bibliothèque. Voir la liaison de hpaste2 aux pygments. –
Vous pourriez trouver cela surprenant, mais toutes les applications web ne sont pas "remplir un formulaire (et montrer des messages d'erreur de validation) et mettre le résultat dans une base de données SQL". – jrockway
@dons: Je pense que l'affiche originale parlait d'appeler Haskell de Python. Mais je n'étais pas au courant de tout Python <-> Haskell interop, je suis corrigé :-) @ ockrockway: d'accord - c'est pourquoi j'ai dit une application/site web "typique". – spookylukey