2009-04-24 11 views
3

Je vais développer un logiciel éducatif complet qui fonctionne sur le navigateur et qui comporte de nombreux travaux de visualisation et de simulation (visualisation électrostatique et électromagnétique, 2D et 3D).Langue de traitement vs javascript?

Quelle langue (Processing, javascript ou autre) est le meilleur vers mon but?

+1

Cette question est vraiment trop large ... pouvez-vous être plus précis? –

+0

J'ai précisé ma question! –

Répondre

0

Vous avez vraiment deux choix ActionScript dans Flash ou VB.NET/C#/other dans Silverlight.

Alors vous devez d'abord décider lesquelles de ces plates-formes vous allez cibler.

+1

Qu'en est-il de Java/JSP et des applets? – Cerebrus

+0

@Cerebrus: Oui, techniquement, c'est une autre option. – AnthonyWJones

+0

Vous voulez dire deux autres choix, je suppose? Et n'oubliez pas JavaFX ... :-) – PhiLho

6

La question est en effet large mais je vais répondre à partir de l'expérience que j'ai eue.

Javascript n'est pas vraiment fait pour faire des calculs mathématiques, ce qui est ce qui pourrait être nécessaire pour calculer beaucoup de E phénomène rapidement (surtout s'ils ne sont pas représentés comme une solution de forme fermée). Cela va vraiment dans combien de détails vous voulez dans vos graphiques aussi (Plus d'étapes = plus de calculs). Vous devrez peut-être faire plus d'optimisations pour compenser la différence de performance.

J'ai fait quelques visualisations de réseaux d'antennes (ils avaient des solutions de forme fermée, seulement des réseaux simples) dans Flash et ça a bien fonctionné. Javascript ne sera certainement pas à la hauteur des simulations 3D que vous pourriez vouloir faire. Je me demande si Silverlight pourrait être une meilleure solution, parce que vous pouvez trouver plus de bibliothèques de mathématiques pour .NET que pour Actionscript, ce qui pourrait vous épargner beaucoup de travail de l'écriture vous-même (Mais vous pourriez finir par faire cela de toute façon à cause des problèmes de performance).

+0

Avec JavaScript Canvas vous pouvez créer des graphiques 2D. 3D peut être fait avec Google O3D plugin –

+0

+1. Bonne prise sur les exigences mathématiques. Silverlight est certainement mieux adapté, car il est dans une meilleure position pour tirer parti du traitement de nombreux-core (en particulier si les bibliothèques calc construit avec F #), ce qui n'est pas le flash. – AnthonyWJones

+0

Je n'ai jamais dit que Js n'avait pas les capacités d'affichage, mais il y a des problèmes de performance. – CookieOfFortune

2

Flash est peut-être la pile d'applications la plus répandue pour ce que vous recherchez, mais Silverlight semble prêt à prendre le titre en fonction des fonctionnalités puissantes qu'il contient.

0

Vous pouvez diviser le problème en deux parties: la partie d'interaction avec l'utilisateur et la partie d'affichage, ainsi que la partie des calculs lourds.

Si vous pouvez déplacer les calculs lourds sur un serveur, vous pouvez tout afficher en javascript. Une difficulté avec javascript est qu'il est interprété et que vous aurez besoin d'écrire vous-même plus d'équations, donc il y a un impact sur les performances et le temps de développement, mais cela fonctionnera sans plugins, sauf si vous ne voulez pas faire 3D dans l'étiquette de toile.

Flash et Silverlight peuvent avoir de meilleures options, mais ensuite vous apprenez de nouvelles langues et nécessitent des plugins, selon la version de Flash que vous souhaitez utiliser.

4

Comme d'autres l'ont suggéré, javascript n'est pas très fort en ce qui concerne la visualisation.

Processing est un très bon langage pour ce que vous essayez de faire, il est facile à apprendre et est basé sur Java. La visualisation des données est construite directement dans la langue, ainsi que dans l'espace temporel (c.-à-d. Avancez "1 tick" dans le temps et faites réagir la visualisation.)

Si vous êtes intéressé à faire ce parcours, je suggère ramasser Visualizing Data qui est à peu près une amorce de traitement.

+0

voir http://www.youtube.com/watch?v=uofWfXOzX-g&feature=player_embedded, il s'agit de JavaScript .. .il changera votre avis –

+1

@Kamran - C'est très intéressant, merci de partager le lien! - Cependant, ce n'est pas le javascript qui fait le travail, c'est le javascript qui interagit avec l'API O3D. Ce n'est pas la même chose que le javascript en 3D. Consultez ce lien sur l'architecture: http://code.google.com/apis/o3d/docs/techoverview.html#architecture –

2

Je voudrais aller Flex ou Silverlight me

  1. Beaucoup de bibliothèques réutilisables
  2. Prise en charge native pour le multimédia
  3. Prise en charge native pour les graphiques et l'animation
1

I deuxième avis de LFSR Conseil : Le traitement est très utilisé à des fins éducatives, il est gratuit et rapide (Java est plus rapide que Flash en général) et facile à apprendre, ce qui vous permet d'obtenir des résultats plus rapides. Il prend en charge la 3D, vous pouvez vous attaquer aux bibliothèques Java pour la simulation et l'informatique, etc. Et il a une grande communauté! :-)

JavaScript est un peu léger pour une telle utilisation. JavaFX est hype, mais il n'a pas vraiment de 3D (même si on en a utilisé Java3D) et il est encore un peu jeune.
Flash et Silverlight: aucun commentaire, pas beaucoup d'expérience dans le domaine. OpenLazlo peut être une alternative ...

2

Je suis un peu en retard au salon, mais ce que vous voulez, a été implémenté en JavaScript, et vous le trouverez très utile. Je recommande de l'exécuter sous Chrome car le moteur de traitement JS est extrêmement rapide. (Vous pouvez même essayer Chrome 2 qui est encore plus rapide)

Voir aussi: http://www.chromeexperiments.com/

0

Consultez processing.js, xcode et iprocessing! ProcessingJS est idéal pour la visualisation de données mais manque d'interactivité.

0

Vous devriez probablement essayer python. C'est un très bon langage à des fins éducatives et de calcul, il a une communauté assez décent et la syntaxe n'est pas si difficile. Même s'il a été conçu pour la ligne de commande, vous pouvez créer des interfaces utilisateur à l'aide d'un package externe et fournir des packages tels que Scipy, Numpy et Matplotlib pour le traçage avancé et la visualisation des données.

Questions connexes