Qu'est-ce qu'un langage de script qui comprend et peut être datatypes implémenté en Java?

StackOverflow https://stackoverflow.com/questions/972117

  •  13-09-2019
  •  | 
  •  

Question

Je cherche un langage de script qui répond aux critères suivants:

  • Eh bien Documenté
  • Mis en œuvre en Java
  • Understands Datatypes (peut gérer, désire ardemment cordes, etc)
  • est entièrement extensible

Toutes les suggestions? À l'heure actuelle, j'utilise Javascript, mais le double qu'il définit le nombre à n'est pas assez grand pour le travail de données que je fais.

Merci!

Était-ce utile?

La solution

Groovy

En particulier, Groovy peut être utilisé comme un langage de script, mais ne doit pas être, et est construit sur Java. Il est pas un port Java d'une autre langue, ce qui signifie qu'il intègre plus étroitement avec Java que JRuby / Jython, bien que peut-être changé depuis que je les regardais.

En ce qui concerne la documentation pour Groovy, vous pouvez acheter Groovy en action (connecteur de fiche;)

Autres conseils

Python et Ruby ont des implémentations Java (recherchez Jython et JRuby).

LuaJava pourrait l'être. Tous les chiffres sont représentés en interne double en lua.

Je ne sais pas ce que vous entendez par « comprend les types de données ». Si vous voulez dire qu'il a des chaînes, des nombres, etc, puis JavaScript, Groovy, Python et Ruby sont quelques-unes des nombreuses langues qui intègrent bien avec Java. Si vous êtes à la recherche d'un langage statiquement typé, je ne suis pas sûr.

En ce qui concerne vous problème de double ne pas être assez grand en JavaScript, vous pouvez attribuer des objets Java BigDecimal (ou objets BigInteger) à partir de votre code JavaScript. Ainsi, la représentation numérique ne devrait pas être un problème pour vous.

Que voulez-vous dire « Doubles qu'il définit le nombre à n'est pas assez grand pour le travail de données que je fais. » Les doubles sont de la même taille dans la plupart des langues AFAIK.

Combien de précision avez-vous besoin? Peut-être BigDecimal est pour vous si vous avez besoin de plus d'environ 16 chiffres de précision.

Clojure ou Groovy seraient mes recommandations.

réponse Jon a déjà quelques détails sur Groovy, voici donc un peu plus sur Clojure:

  • Il est un Lisp, donc est très extensible et idéal pour la construction DSLs
  • Il est écrit en Java pur, de sorte que vous pouvez facilement intégrer dans une application Java
  • Il est très dynamique, idéal pour les scripts interactifs au REPL

En particulier Java Interop est très simple: les objets Clojure sont objets Java et vice-versa, et vous pouvez appeler des méthodes directement:

;; create a string
(def s "Hello World")

;; inspect its type
(class s)
=> java.lang.String

;; call a method 
(.length s)
=> 11

;; count the characters (Clojure can treat Strings as a sequence of characters)
(frequencies s)
=> {\H 1, \e 1, \l 3, \o 2, \space 1, \W 1, \r 1, \d 1}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top