webアプリケーション(学習アプリ)開発について
webアプリケーション(学習アプリ)開発について 以下で説明するようなwebアプリケーションの開発に最も適した言語や形態を教えて下さい。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 大学の研究で構造力学の学習支援ソフトの開発を行っていて、現在javaアプレットで開発しています。 内容を簡単に説明すると 「構造系を描いて→荷重を載荷」(学習者が問題を作成) ↓ 入力された値を元に計算(多少複雑な計算です) ↓ 「結果を出力」(解答表示)するというものです。 こちらのURLを参照してもらえばどういったものか、分かる事かと思います。 http://book.geocities.jp/kouzou_study/sub4.html ある程度思い通りのところまで開発は進んでいるのですが、ユーザーの入力データの保存、保存データの読み込みができるようにしたいと思ったところ、java appletだとセキュリティの関係で出来ないことを知りました。 そこで、java applet でwebアプリケーションはもう古い?と思ったこともあり、別の言語に移植しようかと考えています。 可能であれば(例えば)mixiアプリみたいな形で、ユーザーデータのバックアップを取ったりできるようにしたいです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以上に説明する様な内容でwebアプリケーションを開発するのに最適な環境を教えて下さい。 また、それをスマートフォンやipadで利用できたら尚良いなぁと思っています。 今のところ、スマートフォンに関してはwebアプリでは無いく、DLするタイプのアプリとしての開発を考えていますが。。。 自分でもいろいろと調べてみたのですが、 Per/PHP , java script ,C♯ 、RoR 等など、色々とあって、知識が無い為判断がつかなかった為ここで質問させていただきました。 アドバイスを頂けると幸いです。 -------------------------------------------------------------------------- javaを扱ってアプリ開発を行ってはいますが、プログラムやhtml等に関してはかなり浅知恵です。 説明不足の点等もあるかと思いますが、何卒よろしくお願いします。 --------------------------------------------------------------------------
アプリ開発・825閲覧・100
ベストアンサー
このベストアンサーは投票で選ばれました
[Flash と Silverlight] Javaアプレットの代わりになる物では、今は、Adobe Flash と Microsoft Silverlight です。 Silverlight は、Flash よりも、出だしが遅れましたが、通常のWeb系スクリプトとしての役割りだけではなく、マイクロソフト系のテクノロジーと連携が可能なので、人気が急上昇中です。 Flash や Silverlight ならば、ゲーム的なことやアニメーションも可能です。 また、Flash や Silverlight の影響で、HTML も、ゲーム的なことやアニメーションも可能にしたのが、HTML5です。 おそらく、JavaScript も、HTML5 仕様を受け入れて、今よりも使いやすいスクリプトへ発展する可能性があります。 質問者さんにとっては、「ゲーム性は関係無い」と思うかも知れませんが、そうでも無いです。 例えば、計算結果を立体のグラフに表示するようなことは、今の Flash や Silverlight で可能です(Web上で綺麗な3D CGを作るレベルは、まだ厳しいですが)。 [スクリプトの不十分な面をおぎなう非スクリプト言語] スクリプト言語は、簡易的な言語ですので、機能面で不自由な面も多いです。 ただし、Web作成においては、スクリプトでは無い言語(C++やJava等)よりも、スクリプトが活躍する分野です。 そこで、スクリプトと非スクリプトの連携が有効的です。 例えば、 JSP と Java との連携 とか、 ASP と Visual C++ との連携 (今は、ASP.NET と C#またはVB.NET との連携) というように。 しかし、何でも組み合わせられる訳では無く、組み合わせることが可能なように設計されている言語間のみです。 そこで、「非スクリプトの言語(JavaやC++等)において、コンパイル後のプログラム(すなわち、完成後のプログラム)の規格を標準化してしまおう」 しかも、「インターネットの規格で、標準化をしてしまおう」と言う発想が、1998年以降(特に2002年以降)から進められて来ました。 C++は、上記の事を進めるには、言語仕様に手を加える必要があったので、C++を改良したC#で実現されました。 また、C#やJavaで進められている世界に、C++も参加が可能なように、C++自体も改定が始まっています。 C++0x http://ja.wikipedia.org/wiki/C%2B%2B0x C#のように直接インターネット仕様は受け入れる事はしませんが、JavaやC#のフレームワークの上で、C++が動作可能にはなるようです。現時点の予定では。 なお、C#やJavaの標準化を進めて、様々な環境で適合可能にする話しは、今はクラウドと言う形で、実現されようとしています。 クラウド http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1450940744 と、それに続く参照先。 上記参照先の通り、この路線では、IBM系Java か、 マイクロソフトのC#がおすすめです。 [科学技術計算] 科学技術計算に対応していない言語では、ベクトル計算の加算は、x成分の加算と、y成分の加算に分ける必要があります。 しかし、ベクトルと言うオブジェクトがある言語では、A + B と言うように、1回で(分けずに)済みます。 コードも見やすいです。 虚数計算も同様です。 虚数と言うオブジェクトがあれば、実部と虚部に分けずに済みます。 C++とC#と言う言語では、特別に科学技術計算に対応してはいませんが、演算子多重定義と言う仕様があるので、科学技術計算用にカスタマイズすることが可能です。 演算子多重定義とは、自分で作るクラスに対しての、+、-等の演算子による処理を定義することが可能です。 すなわち、上記のようなベクトルクラスや、虚数スラスを、自分で作ることが可能で、それを作れば、科学技術計算がやりやすいです。 [マルチスレッド] 今まで難しかったマルチスレッドを、VC#2010(.NET4.0)で比較的簡単にプログラミングが可能なように改良されました。 詳しくは、下記の本を参照。 「Parallelプログラミング―in .NET Framework 4.0」(出版社: カットシステム、 著者: 北山 洋幸) マルチスレッドは、シュミレーション計算関係を高速化するのに便利です。 [結論] 以上から、マイクロソフト系の C#(サーバー作成用技術は、WCF ) と Silverlight の組み合わせが、一番条件に合っていると思います。 Silverlight を実行可能な環境は、Windows と マックのWebブラウザ で可能です。 それ以外では、私は試していないのですが、Adobe Flash と PHP の組み合わせも良いと聞きます(PHPもスクリプトですが、サーバサイドのレベルで高機能)。 また、IBM系もマイクロソフトのように、言語間の連携を重視しているので、Webスクリプトと非スクリプトの連携がやりやすいです。 HTML5関連の受け入れや、C++の改定を含め、まだこれから先に見えてくるので、取りあえず使いやすそうな環境を選べば良いと思います。 また、アップル系は、クラウドの参照先の通り、1社で目立つことは無くなりますので、来年(2011)の様子を見たほうが良いです。
4人がナイス!しています