2010-05-14 30 views
2

Quelqu'un a été récemment ravi de savoir à quel point jQuery était génial et comment il a fait du javascript un plaisir et comment tout le code source était si petit (et un fichier). J'ai regardé ça sur www.ohloh.net/ et il m'a dit qu'il y avait environ 30 000 lignes de javascript, quand je me suis lassé d'écrire environ 5000 lignes (anomalie étrange, peut-être des suites de test, etc?) .Comment les bibliothèques standard de taille se comparent-elles pour différents langages?

Je pensais bien que ce n'est pas si étrange puisque javascript de ce que j'ai entendu a beaucoup de tours dynamiques amusants, donc vous pouvez probablement sortir avec une petite bibliothèque. Mais ensuite j'ai pensé aux autres langages de haut niveau, ceux avec de grandes librairies standards et je me demandais quelle était la taille de la norme pour python/ruby ​​/ haskell/pharo (smalltalk)/* ml/etc. (bibliothèques pas vm choses dans la mesure où il est possible de le séparer)

Quelqu'un sait? Tous les détails (commentaire/blanc/lignes de code, lignes de code de test, lignes dans la langue vs lignes dans ffi/octet-code) sont appréciés!

modifier: ps. depuis que j'ai commencé à poser des questions sur jQuery en bonus si vous pouviez lister la taille des méga frameworks, un megaframewok fournit tellement que les gens utilisant un x megaframework en langage y pourraient parfois se référer à la programmation en xy ou même x plutôt qu'en y (c'est-à-dire: qt, jQuery, etc.).

+0

Il existe une version lisible de jQuery pour la maintenance, et une version réduite pour le déploiement, afin de réduire la taille du téléchargement. Cela pourrait expliquer l'écart. – Thomas

+0

jQuery et, disons, Python ont des objectifs, des environnements et une portée très différents. Il peut être un peu cool de connaître le rapport de poids entre un cuirassé et une Volkswagen Beetle, mais ce n'est pas un nombre particulièrement utile. –

+0

note 5000 lignes de code était pour la version non minifiée. –

Répondre

2

En Pharo, impression:

|i| 
i := 0. 
SystemNavigation default allBehaviorsDo: [:each| 
each selectors do: [:selector | 
    i := i+((each sourceCodeAt: selector) lineCount)]]. 
i. 

résultats dans:

  • PharoCore-mis à jour 11334 1,1 à 11326: 367231
  • Mer-2.8.4: 473368
  • Pharo -1.0 avec cadre de base Suixo: 558656
  • Seaside 3.0a5: 408019

Cela inclut les commentaires de méthode, et je ne suis pas sûr de ce qu'il advient des traits.

+1

a voté pour awesomeness smalltalk. –

+0

et bien sûr le Seaside 3.0 inclut jQuery –

+0

Le moyen idéomatique serait d'utiliser injecter: dans :, mais ce n'est pas aussi lisible pour les non-smalltalkers –

1

Probablement, il devrait être plus juste de comparer jQuery avec d'autres bibliothèques javascript SEULEMENT. Je voudrais penser que cela tenait compte de quelqu'un dont vous parlez.

jQuery, PRODUCTION (24KB, Minified and Gzipped) or (155KB, Uncompressed Code) 
jQuery UI, full Minified 200kb 
Prototype, Size: 128kB 
Script.aculo.us, Size: 63kB 
mootools, Size: 63kB 
extJS, Size: 6.6mB FULL, core 130Kb 
Yahoo! UI Library (YUI), Size: core minified 17kb, 7kb minified and gzipped, full 379kb minified, 135 minified and gzipped 
Mochikit, Size: 380kB 
dojo, Size: compressed (27k) 
+0

Pourriez-vous mentionner le nombre de lignes plutôt que la taille du fichier (s)? –