2010-02-22 17 views
14

Creo que Javascript es un lenguaje fantástico. Me gustan todas las pequeñas peculiaridades, el modelo de herencia, la falta de clases, etc. Debido a esto, nunca he querido aprender un framework ya que todos los que he analizado (jQuery, MooTools, Prototype, Dojo) te fuerzan para cambiar la forma en que escribes tu código, en muchos casos ya ni siquiera es Javascript.Algo similar a java.util en Javascript?

Sin embargo, siento la misma frustración cada vez que tengo que implementar algo tan fundamental como una tabla hash o una lista vinculada. Claro, lo escribo una vez y nunca más, pero dado cuántas veces estas estructuras han sido codificadas por otras personas antes que yo, realmente no debería tener que hacerlo.

¿Existen bibliotecas Javascript "puras" que le proporcionen una serie de utilidades y estructuras de datos básicas, similares a las que se encuentran en java.util? De nuevo, no quiero nada que cambie la forma en que codigo, quiero usar estos objetos dentro de Javascript vano.

Gracias

+6

'Nunca he querido aprender un marco ...' No puedes comenzar a imaginar lo que te estás perdiendo. – SLaks

+0

He escrito cientos de líneas de JavaScript puro, elegante y funcional. Mi comentario permanece Puede usar jQuery y aún escribir Javascript "puro" - jQuery solo trata de elementos DOM. – SLaks

Respuesta

5

La biblioteca de cierre de Google tiene muchas estructuras de datos. La documentación de la API se encuentra en http://closure-library.googlecode.com/svn/docs/index.html (verifique el goog.structs "paquete").

+0

¡Gracias, esto es excelente! –

+0

En realidad, estoy marcando esto como la respuesta, no solo por las estructuras de datos que proporciona Closure, sino porque parece ser justo lo que estoy buscando: una biblioteca Javascript que hace las tediosas tareas por usted, pero no es Un marco. –

2

Tal vez no es realmente lo que estaba buscando, pero que podría estar interesado en el Google Web Toolkit.

GWT es un conjunto de herramientas de código abierto que permite a los desarrolladores web crear y mantener complejas aplicaciones de front-end de JavaScript en Java.

Uno de los principales componentes de GWT es la "biblioteca de emulación JRE", una biblioteca de implementaciones de JavaScript de las clases comúnmente utilizadas en la biblioteca de clases estándar Java, como la mayoría de las clases del paquete java.lang y un subconjunto de las clases del paquete java.util.

"En muchos casos ya no es ni siquiera JavaScript" ... Tenga en cuenta que este es literalmente el caso de GWT, pero creo que merece ser mencionado en esta pregunta.

+0

Gracias, lo he visto brevemente. Seguro que es algo, especialmente la compilación. No es exactamente lo que estoy buscando, pero como dijiste, definitivamente vale la pena mencionarlo. –

1

Francamente, creo que estás loco para no querer mirar en jQuery o Prototype o casi todo marco web, pero si quieres cosas de pura orientada a la codificación lo podría hacer en Functional.js: http://osteele.com/sources/javascript/functional/

En mi opinión, la mayoría de las cosas de "estructura de datos" en las bibliotecas de Java realmente no son apropiadas para Javascript de ninguna manera directa. Una de las epifanías más importantes que tuve al aprender Javascript fue realmente "entender" que el Javascript no se parece en nada a Java, y uno de los primeros pasos en el camino hacia la iluminación es dejar de intentar que sea como Java.

+0

Las estructuras de datos no tienen nada que ver con Java. Estoy de acuerdo contigo en que, en la mayoría de los casos, no necesitas nada más que arreglos y objetos en JavaScript ... y sobre el uso de frameworks. –

+0

Bien, claro, pero lo que quise decir es que la arquitectura general de java.util y java.text y etc. es realmente una mala opción para Javascript. – Pointy

+0

Sí, no me gustaría una copia de java.util. *. Solo quiero decir que las estructuras básicas de datos (árboles, listas (aunque, la mayoría de las veces, las matrices están bien), las colas de prioridad, etc., son definitivamente aplicables para algunos tipos de programas. –

0

He escrito una implementación de JavaScript independiente de una tabla hash que sin duda está influenciada por la Hashtable de Java: http://www.timdown.co.uk/jshashtable. También ahora agregué una implementación de HashSet.

Cuestiones relacionadas