Язык обработки или javascript?

Я собираюсь разработать комплексное образовательное программное обеспечение, которое работает в браузере и имеет множество работ по визуализации и моделированию (электростатическая и электромагнитная визуализация, 2D и 3D).

Какой язык (Processing, JavaScript или что-то другое) лучше всего подходит для моей цели?


person Kamran Bigdely    schedule 24.04.2009    source источник
comment
Этот вопрос действительно слишком широк ... можете ли вы быть более конкретным?   -  person Richard Ev    schedule 24.04.2009


Ответы (10)


Вопрос действительно широкий, но я отвечу на основании своего опыта.

Javascript на самом деле не предназначен для математических расчетов, что может быть необходимо для быстрого расчета многих явлений E&M (особенно если они не представлены в виде решения в закрытой форме). Это действительно зависит от того, насколько подробно вы хотите видеть свои графики (больше шагов = больше вычислений). Возможно, вам потребуется выполнить дополнительную оптимизацию, чтобы компенсировать разницу в производительности.

Я сделал несколько визуализаций антенных решеток (у них были решения закрытой формы, только простые решетки) во Flash, и все получилось нормально. Javascript определенно не будет соответствовать любым 3D-симуляциям, которые вы, возможно, захотите сделать.

Интересно, может ли Silverlight быть лучшим решением, потому что вы можете найти больше математических библиотек для .NET, чем для Actionscript, что может сэкономить вам много работы по написанию математических вычислений самостоятельно (но вы все равно можете в конечном итоге сделать это из-за проблемы с производительностью).

person CookieOfFortune    schedule 24.04.2009
comment
С помощью JavaScript Canvas вы можете создавать 2D-графику. 3D можно сделать с помощью плагина Google O3D - person Kamran Bigdely; 24.04.2009
comment
+1. Хороший улов по математическим требованиям. Silverlight, безусловно, лучше подходит, так как он лучше подходит для использования преимуществ многоядерной обработки (особенно если библиотеки calc, созданные с помощью F #), чего нельзя сказать о flash. - person AnthonyWJones; 24.04.2009
comment
Я никогда не говорил, что у Js нет возможностей отображения, но есть проблемы с производительностью. - person CookieOfFortune; 24.04.2009
comment
что с обработкой? обработка против Silverlight, что? - person Kamran Bigdely; 24.04.2009
comment
Что ж, после просмотра ссылок на Processing оказалось, что он запускается в апплете Java... Java для браузеров... в наши дни не одобряется? Слишком медленно и глючно. - person CookieOfFortune; 24.04.2009
comment
Пожалуйста, не поймите меня неправильно, Java-апплет, вероятно, является единственным недостатком Processing, он, похоже, имеет много хорошей визуализации и поддержки библиотек. - person CookieOfFortune; 24.04.2009
comment
Попробуйте это под Chrome. Он прекрасно работает в браузере. ejohn.org/blog/processingjs - person cgp; 25.04.2009
comment
Это многообещающе, но довольно плохая поддержка браузера... чувак, одно из моих ядер работает очень хорошо, ха-ха. - person CookieOfFortune; 25.04.2009
comment
и см. youtube.com/watch?v=uofWfXOzX-g&feature=player_embedded запустить еще одно из ваших ядер! :D.... речь идет о плагине Google для JavaScript и O3D. - person Kamran Bigdely; 29.04.2009
comment
Я видел это, но я не знаю, какую поддержку они получат, если потребуется еще один подключаемый модуль. - person CookieOfFortune; 29.04.2009

Как предположили другие, javascript не так силен, когда дело доходит до визуализации.

Processing — действительно хороший язык для того, что вы пытаетесь сделать, он прост в освоении и основан на Java. Визуализация данных встроена непосредственно в язык, а также во временное пространство (т. е. продвигается на «1 тик» во времени и визуализация реагирует на это).

Кроме того, если вы заинтересованы в том, чтобы пойти по этому пути, я бы посоветовал выбрать Visualizing Data, что довольно много обработки грунтовки.

person Gavin Miller    schedule 24.04.2009
comment
см. youtube.com/watch?v=uofWfXOzX-g&feature=player_embedded , речь идет о JavaScript... это изменит ваше мнение - person Kamran Bigdely; 29.04.2009
comment
@Kamran - Это очень интересно, спасибо, что поделились ссылкой! - однако работу выполняет не javascript, а javascript, взаимодействующий с O3D API. Это не то же самое, что javascript для 3D-рендеринга. Ознакомьтесь с этой ссылкой на архитектуру: code.google.com/apis/ o3d/docs/techoverview.html#архитектура - person Gavin Miller; 29.04.2009

Flash может быть более распространенным стеком приложений прямо сейчас для того, что вы ищете, но Silverlight, похоже, готов отобрать у них титул благодаря мощным функциям, которые он содержит.

person TheTXI    schedule 24.04.2009

Я бы сам пошел на Flex или Silverlight

  1. Множество повторно используемых библиотек
  2. Встроенная поддержка мультимедиа
  3. Встроенная поддержка графики и анимации
person Rad    schedule 24.04.2009

Я немного опоздал на шоу, но то, что вы хотите, было реализовано в JavaScript, и вы найдете это невероятно полезным. Я рекомендую запускать его под Chrome, так как механизм обработки JS очень быстрый. (Вы даже можете попробовать Chrome 2, который еще быстрее)

См. также: http://www.chromeexperiments.com/.

person cgp    schedule 24.04.2009

Я разделяю мнение LFSR Consulting: Processing часто используется в образовательных целях, он бесплатный и быстрый (Java в целом быстрее, чем Flash) и прост в освоении, поэтому вы получаете более быстрые результаты. Он поддерживает 3D, вы можете использовать библиотеки Java для моделирования и вычислений и т. д. И у него отличное сообщество! :-)

JavaScript немного маловат для такого использования. JavaFX — это шумиха, но на самом деле в нем нет 3D (хотя один использовал Java3D с ним), и он все еще немного молод.
Flash и Silverlight: без комментариев, опыта в этой области мало. OpenLazlo может быть альтернативой...

person PhiLho    schedule 24.04.2009

У вас действительно есть два варианта: ActionScript во Flash или VB.NET/C#/другие в Silverlight.

Итак, сначала вам нужно решить, на какую из этих платформ вы будете ориентироваться.

person AnthonyWJones    schedule 24.04.2009
comment
А как насчет Java/JSP и апплетов? - person Cerebrus; 24.04.2009
comment
@Cerebrus: Да, технически это еще один вариант. - person AnthonyWJones; 24.04.2009
comment
Я полагаю, вы имеете в виду два других варианта? И не забудьте JavaFX... :-) - person PhiLho; 24.04.2009

Вы можете разделить проблему на две части: взаимодействие с пользователем и отображение, а также часть сложных вычислений.

Если вы можете перенести тяжелые вычисления на сервер, вы все равно можете показать все в javascript.

Одна из трудностей с javascript заключается в том, что он интерпретируется, и вам нужно будет написать больше уравнений самостоятельно, поэтому есть удар по производительности и время разработки, но он будет работать без каких-либо плагинов, если только вы не хотите делать 3D в тег холста.

Flash и Silverlight могут иметь лучшие возможности, но тогда вы изучаете новые языки и вам требуются плагины, в зависимости от того, какую версию Flash вы хотите использовать.

person James Black    schedule 24.04.2009

Проверьте processing.js, xcode и iprocessing! ProcessingJS отлично подходит для визуализации данных, но ему не хватает интерактивности.

person user1026987    schedule 03.03.2012

Вы, вероятно, должны попробовать python. Это действительно хороший язык для образовательных и вычислительных целей, у него довольно приличное сообщество, а синтаксис не такой сложный. Несмотря на то, что он был разработан для командной строки, вы можете создать для него графический интерфейс пользователя, используя какой-либо внешний пакет, а также предоставляет такие пакеты, как Scipy, Numpy и Matplotlib< /strong> для расширенного построения графиков и визуализации данных.

person user93    schedule 07.11.2013