Вычислительное веб-приложение
Я работаю над некоторыми программами, которые проводят биологические симуляции (просто как хобби, а не профессионально), и некоторые из них очень интенсивны в вычислительном отношении - они должны работать в течение нескольких часов или даже дней, прежде чем они смогут получить действительно интересные результаты. Эти программы в конечном итоге предназначены для использования в качестве образовательных инструментов.
Я работал на C++ (потому что это быстро) и использовал Qt в качестве основы для GUI (потому что он кроссплатформенный). Это означает, что мои программы должны распространяться несколько традиционными способами (exe, комплект приложений и т. Д.). Тем не менее, я продолжаю слышать от моих друзей-программистов, что загрузка программ в виде исполняемых файлов устарела, и вместо этого я должен делать веб-приложения.
Теперь, на мой реальный вопрос: возможно ли сделать так, чтобы длительно работающая вычислительная программа работала хорошо, как веб-приложение? И чтобы быть ясным, так как у меня ограниченные деньги, чтобы тратить на этот проект, и потребовались бы тонны мощности процессора, вычисления должны выполняться на клиенте, а не на сервере. Возможна ли такая вещь, или я должен просто продолжить мой текущий подход C++/Qt?
1 ответ
Лично я не думаю, что упакованные исполняемые файлы вне моды - или что это должно быть веб-приложение. Создание веб-приложения может только усложнить ситуацию.
Если вы не желаете выполнять работу на стороне сервера, веб-приложение будет очень ограничено. Единственное, что я думаю, это сработает:
Чистый Javascript. Хлоп. Для длительных вычислений это просто не сработает. Если человек закрывает свой браузер, все кончено. Фактически, большинство браузеров подскажут пользователю о длительных процессах Javascript и предложат убить их.
Может быть, Flash или Silverlight? Код на стороне клиента, но опять та же проблема... вы должны надеяться, что пользователь не просто приблизит браузер и тем самым убьет их длительный процесс.
Вы можете определенно запустить несколько дешевых серверов с Amazon EC2 и сделать работу за них - и это было бы действительно здорово. Они могут закрыть браузер после отправки запроса, а затем снова открыть его и проверить состояние.
Но если это должно быть на стороне клиента - используйте C++/Qt.