34 votes

Python vs Groovy vs Ruby? (sur la base des critères énumérés en question)

Tenant compte des critères énumérés ci-dessous, qui de Python, Groovy ou Ruby utiliseriez-vous?

  • Critères (Importance de 10, 10 étant le plus important)
  • La richesse de l'API/bibliothèques disponibles (par exemple. en mathématiques, le dessin technique, mise en réseau) (9)
  • Capacité à intégrer dans le bureau (java/c++) applications (8)
  • Facilité de déploiement (8)
  • Capacité d'interface avec Dll/Bibliothèques Partagées (7)
  • Capacité à générer des interfaces graphiques (Gui) (7)
  • Communauté/support Utilisateur (6)
  • La portabilité (6)
  • Manipulation de base de données (3)
  • Langue/Sémantique (2)

33voto

Ned Batchelder Points 128913

Je pense qu'il va être difficile d'obtenir une comparaison objective. Personnellement, je préfère Python. Pour répondre à l'un de vos critères, Python a été conçu dès le départ pour être un langage intégrable. Il a une API C très riche, et l'interprète est modulaire pour le rendre facile à appeler à partir de C. Si Java est votre environnement hôte, vous devriez regarder Jython, une implémentation de Python à l'intérieur de l'environnement Java (VM et libs).

27voto

Tempus Points 22972

Après avoir travaillé avec tous les 3 d'entre eux, c'est ce que je peux dire:

  • Python

    • a très mature bibliothèques
    • les bibliothèques sont documentés
    • la documentation peut être consulté à partir de votre débogueur/shell lors de l'exécution à travers les docstrings
    • vous pouvez développer du code sans IDE
  • Ruby

    • a quelques grandes bibliothèques ( même si certains sont mal documentés )
    • Ruby introspection mécanismes sont grands. Ils font de l'écriture de code assez simple ( même si la documentation n'est pas disponible )
    • vous pouvez développer du code sans IDE
  • Groovy

    • vous pouvez profiter de tout ce Java a à offrir
    • la syntaxe est un peu inspiré de Ruby
    • il est difficile d'écrire du code sans IDE. Vous n'avez aucun moyen de déboguer des choses à partir de votre console ( c'est quelque chose que vous pouvez facilement le faire en Python/Ruby ) et le Groovy plugins avons beaucoup de rattrapage à faire. J'ai écrit quelques applications à l'aide de Groovy et qu'ils deviennent de plus je regrette de ne pas aller avec Ruby/Python ( débogage aurait été plus facile ). Si vous aurez seulement à se développer à partir d'un IDE, Groovy est une belle langue.

24voto

Ken Gentle Points 10162

Juste pour brouiller les cartes...

Groovy vous donne accès à Java. Java dispose d'un ensemble extrêmement riche d'API/Bibliothèques, d'applications, etc.

Groovy est intégrable, bien que plus facile en Java.

DLLs / Bibliothèques (si vous parlez de non-Groovy / Java) peut être quelque peu problématique, bien qu'il existe des moyens et des API pour vous aider.

J'ai fait quelques programmes Python, mais étant plus familier avec Java, Groovy vient beaucoup plus facile pour moi.

10voto

Florin Points 673

Groovy? Je suis juste de le ramasser; essayez ceci (à l'intérieur de la groovyconsole):

File.metaClass.invokeMethod = { String name, args ->
    System.out.print ("Call to $name intercepted...");
    File.metaClass.getMetaMethod(name, args).invoke(delegate, args);
}

new File("c:/temp").eachFile{
    if (it.isFile()) println it.canonicalPath
}

Le premier code est de l'AOP. Tous les appels à une méthode de l'objet Fichier sera intercepté. Aucun outil supplémentaire n'est nécessaire. C'est exécutée contre les Java de la classe de façon dynamique.

Dans le deuxième bloc, vous retirez le " f " de la fermeture de paramètre. Étant un paramètre, la valeur par défaut est construit dans le "il" variable disponibles à la fermeture contexte.

Voici ce que vous obtenez:

"Appel à isFile intercepted...C:\temp\img.jpg"

etc.

7voto

S.Lott Points 207588

Python a les neuf critères. Il marque un 56.

Je suis sûr que Ruby a tout ce que Python a. Il semble y avoir moins de bibliothèques. Donc, il marque un 51.

Je ne sais pas si Groovy a toutes les fonctionnalités.

Depuis Python est 56 et Ruby est un 51, Python juste à peine bords Ruby.

Cependant, je pense que ce genre de décision peut encore se résumer à certaines questions subjectives en dehors de ces neuf critères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X