Question

Bien, après avoir longtemps écrit des programmes .net en C #, j'ai commencé à me sentir en colère et frustré par toute cette corbeille syntaxique fournie avec les langages à typage statique. Maintenant, je veux passer à des langages typés dynamiquement, qui tirent parti de la CLI. J'ai donc cherché un peu et je n'ai pas aimé ce que j'ai vu. J'ai d'abord cherché IronPython. Mais le projet semble désorganisé, il n’avait tout simplement pas l’air bon. Puis j'ai entendu parler de Boo. J'ai aimé les boo, l'idéal et tout, mais on a l'impression que le projet est arrêté. Ensuite, j’ai entendu parler d’IronRuby, mais le projet est toujours en version bêta et j’ai donc décidé d’attendre qu’il soit plus mûr.

Comme je ne pouvais pas trouver un bon langage dynamique compatible avec le CLR, je vous demande ce que vous utilisez (voulez-vous)?

Depuis que les gens ont commencé à demander quelle était la raison de ne pas choisir IronPython. Eh bien, la raison en est, comme je l’ai dit plus tôt, cela semble désorganisé. Pourquoi?

1- La page d'accueil pointe vers une autre page chez codeplex. La page d'accueil doit être propre et ne montrer que les avantages d'IronPython. Prenez la page IronRuby comme exemple. http://www.ironruby.net/ C'est ce qui cache le contenu en langage développé par l'utilisateur (même si l'utilisateur doit accéder à svn d'IronRuby avant de l'utiliser). Quels types de problèmes IPython essayait-il de résoudre lors de sa création? Y a-t-il une page avec ce genre d'information? La page est bien là, mais elle est cachée dans la page "Plus d'informations" parmi un tas de liens sans signification vers des articles. Sur la page de Boo, il est à portée de vue nommé Manifeste http://boo.codehaus.org/BooManifesto.pdf .

C’est plus que cela, mais j’ai le sentiment que IPython n’est qu’un interprète maison, malgré la qualité qu’il peut réellement avoir. J’ai estimé qu’il était plus sûr de télécharger Boo et d’utiliser IronPython (mais ne vous inquiétez pas, Microsoft avait également téléchargé IPython).

À propos de Duck-Typing et de la saisie statique de Boo, ils semblent bien fonctionner pour moi.

Était-ce utile?

La solution

Je continuerais d'utiliser Boo . Je ne sais pas pourquoi tu crois que Boo a été stoppé. Le développement semble parfois lent, mais plusieurs personnes travaillent actuellement sur des corrections de bugs, comme le montre cette liste de problèmes récemment corrigés (bogues) .

Pour ceux qui ne connaissent pas Boo, il ressemble beaucoup à Python, mais inclut des éléments que ce dernier ne connaît pas (comme interpolation de chaîne et macros syntatiques ). Vous pouvez compiler des programmes Boo ou utiliser Boo par le biais de "Boo Interactive Shell". booish .

Au fait, je n’ai pas aimé IronPython non plus quand j’y ai jeté un coup d’œil il ya quelques années. Pour moi, cela ressemblait à un portage direct de Python vers la CLI, mais pour autant que je sache, il n'incluait pas de nouvelles fonctionnalités que le développement .NET typique nécessite.

MODIFIER : IronPython semble avoir progressé depuis mon premier examen (merci à Curt de l'avoir signalé). Cependant, je n'ai plus pris la peine de regarder IronPython depuis que j'ai trouvé Boo.

Autres conseils

En termes de convivialité, IronPython sera votre meilleur parier maintenant.

Pourquoi les gens suggèrent-ils Boo? C'est un langage typé statiquement, ce que cette question ne demande pas. Oui, je sais qu’il est possible de saisir le canard, mais si les informations relatives à Boo sont acceptables pour l’auteur de la question, la question doit en réalité être modifiée pour le rendre clair.

En ce qui concerne IronPython, vous avez dit que vous ne l'aimiez pas, mais je ne peux vraiment pas donner de réponse aux commentaires critiques qui sont si vagues:)

Sinon, je vous suggère de consulter cPython . Quelques points:

  • Vous pouvez créer des fichiers .exe avec py2exe et d'autres outils.
  • Accès beaucoup plus large aux bibliothèques et frameworks Python tiers
  • Accès aux API Windows via pywin32
  • Les extensions Python écrites en C sont utilisables (contrairement à IronPython, bien que des efforts soient en cours pour améliorer cette situation )

Vous constaterez que vous n’avez vraiment pas besoin de .NET pour la plupart des tâches. Bien sûr, tout dépend de votre application. Pour intégrer le code .NET existant, vous devez évidemment utiliser IronPython.

Vous dites que vous voulez "dynamique", mais si vous ne voulez que "toute cette corbeille syntaxique", vous devriez consulter F # . Il est typé statiquement, mais a la légèreté d'un langage dynamique, ainsi qu'un mode interactif (boucle REPL).

Je suis d’accord avec votre sentiment que IronPython semble désorganisé, mais je l’utilise pour de (petits) projets et j’en suis assez satisfait jusqu’à présent.

Si vous ne l'avez pas encore vu, consultez IronPython Studio .

Je suis sur un chemin similaire. Extrait Boo, dotLISP, IronPython, etc.

Je recommande IronPython. MAIS si vous n’avez pas d’expérience Python, vous allez probablement apprendre le noyau Python plus rapidement en chargeant CPython et en l’utilisant pour les exemples & amp; tutoriels.

Une fois que vous aurez compris CPython, IronPython sera beaucoup plus facile à comprendre. Bien entendu, vous devez toujours comprendre un peu de C # et avoir accès à la documentation du Kit de développement .Net SDK. Sans cela, il est extrêmement difficile pour IronPython d’obtenir des résultats utiles.

Vous pouvez également consulter la langue de Fan . Ce n’est pas de la pure dynamique, c’est un mélange à la fois de statique et dynamique. Et comme la plupart des nouveaux langages, il s’agit d’un pur OO avec un mélange de fonctionnalités. Il fonctionne également sur les plates-formes JVM et CLR.

En ce qui concerne la syntaxe, il est plus proche de C # avec beaucoup de syntaxe de sucre, ce qui donne l’impression que C # se fond dans Ruby / Python.

La langue étant nouvelle, elle n’a que 3 ans, sa performance n’est pas encore excellente.

Mise à jour du 21 février 2014: Fan a changé de nom et s'appelle désormais Fantom

Consultez Clojure . La version CLR en est encore à ses débuts, mais vous pourriez probablement faire fonctionner la version java dans .Net via IKVM

  

... Corbeille syntaxique fournie avec les langages statiquement typés ...

Si votre problème concerne la corbeille syntaxique, vous pouvez également consulter les langages statiques à typage statique avec inférence de type, notamment F # .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top