Java Fxで何が出来る?
イントロダクション
Java、php、Python C#など色々な言語でつまみ食い開発をやって来ましたが、そろそろ進んでいる方向がわからなくなって来たような気がします。なのでちょいとまとめて見ようと思います。
プログラム言語が沢山
WindowsやMac、Linux(android, RPiなど)色々なOSがあり、それぞれに基本となるプログラム言語が違います。 あくまでも自分の感想ですが、各言語に関して特徴を記載します。
C言語はオールマイティ
ほとんどのOSで、マイコンボード(Arduino, RPi)ではこの言語で作ったアプリを起動する事が出来ます。自分の知る限りでは、全てのOSで起動出来ます。 用途としては、ゲームや「組み込み系システム」→炊飯器のマイコン部分や家電、カーナビなど、はっきり言ってなんでもあり!な言語です。ただし、多くの部分を自分で実装する必要があります。 ライブラリも沢山ありますが、Javaほどではありません。
しかし、欠点もある
なんでもありな分、実装には高い技術力とマンパワーが必要になります。そんなわけで、大規模開発では他の言語に遅れを取っているように見えます。 ちなみに、TensorFlowやBlender(3dモデリングアプリ)はC/C++で作られているようです。そして、ゲームエンジンUnrealも同様です。
Pythonはお手軽
C言語で作られたプログラム(モジュールを読み込み起動するプログラム言語です。TensorFlowもPythonで扱う事が出来、機械学習では大活躍している言語です。他にもGoogleトレンドとかOpenCvなどを手軽に扱う事が出来ます。Py Gameなど、ゲーム作成が出来るライブラリもあります。特徴としてはライブラリがたくさんあり、本当は「難しい」ことも簡単に着手できるところが素晴らしい、中々になかなか。。。
C#はUnity
Unityが今流行っているようで、VRやプレイステーションなど、様々なデバイス(任天堂DSやPSPなど)でも起動できるアプリを作成出来ます。そのためには、対象のドキキュメントを読んでそれに対応した手順を踏む必要がありますが… 他にも、色々な事が出来ます、がやはりOSがWindowsに限られます。余談ですが、最近はクロスプラットホームにも対応してるようなので今後が楽しみな言語でもあります。
Java Scriptは汎用的
ウェブブラウザーでは最も多く使われているであろう言語です。最近はNode.jsなどブラウザー以外でも動くものもあり、汎用性が高くなりました。扱いもやりやすいので、子供向けのマイクビットとか、スクラッチなどの上で動かせるので、プログラミング学習でも使われているようです。
PHPはウェブで活躍
自分も利用している、レンタルサーバーではPHPが使える環境にあります。その他Python 2.X、CGIが使えます。 よくある、無料レンタルサーバーでもPHPが使えるので、プログラム自体も難しくないのですぐに使えるようになると思います。 余談ですが、JavaエンジニアからPHPに乗り換える人も多いようです。 自分のイメージでは、ウェブデザイナーが着手しやすい言語だと思っております。リクエストを受けた時(サーバーにアクセスがあった時に)HTMLを出力するプログラム(スクリプト)なので動的(入力によって表示が変わる)HTMLを生成できるのが魅力です。 有名どころでは「ワードプレス(WordPress)があります。ほとんどのレンタルサーバーで使用可能だと思っております。 とにかく「ノンプログラマでもウェブサイトが作れる」と言うところがポイントです。
Javaもなんでもいける
ぶっちゃけた話「C言語ほどではない」のですが、C言語は出木杉くんだと思います。いずれはC言語での実装をやろうと思ってはいるのですが、一人で開発しようとするとマンパワー不足になってしまいやれることが少なくなってしまうのですが、Java言語は違います。 ポイントは以下の通りです。
つらつらと、アピールポイントを記載しましたが、要点は「実装レベルがCに近い」と言うところです。コンパイルしてCLASSファイルを作ると言う部分では、ある意味「同じようなもの」になると思います。
つまり、大体のことは大体できる
と言うことを言いたかった次第です。また上にあげたプログラム言語はC以外がオブジェクト指向言語になります。C言語は「オブジェクト指向」と言う言葉が出る前からあり、オブジェクト指向で実装することもできます。ちなみにJavaも同様です。単純にスクリプト的な実装〜クラスオブジェクトを基礎にしたスクリプト(この場合、Javaはクラスを作った上でスクリプト処理を走らせます。)
本題
今までに記載したように書く言語にそれぞれの特徴がありますが、その中でJavaFXで何をするのか?と言う部分について記載したく思います。 JavaFXはGUI作成を行うAPI(プログラムのセット「アプリケーションインターフェース」)です。早い話がプログラムをするためのクラス・セットです。これで画面を作成して、そこからいろんな処理を行うことで様々なことを実現します。 他の言語でも似たようなことはできると思いますが「スピード」「汎用性」「拡張性」の部分で一番バランスが良いと思います(自分の思いが多めです)正直のところ、比較検証とかやっていないので「こーです」と言えません。ただ「オブジェクト指向プログラミング」を行おうとする時にはベストな言語だと思います。 理由は、以下の通り 1. C言語に近い(低レベル)な実装ができるので、処理が早い (注意) 無駄な処理の多いプログラムを書くと遅くなります。 2. 高レベルAPIが揃っているのでPythonなどのような呼部だけで要件を満たせることも結構ある 3. 高レベル〜低レベルまでの実装ができるので汎用性が高い
Javaは大体のことは大体できる
と言うことが言いたかったことです。ちなみにJavaが使えれば、他の言語はほぼスムーズに理解できると思います。自分なんかはJavaでやってきているのですが、Javaの特性上「エクセルVBA」「SQL・PL/SQL」「Shellスクリプト」「JavaScript」「HTML(XHTML)+CSS」なども一緒に使用することが多く、結局使えるようになってしまいました。 PHPも同様に使っています。
自分の中で基本を作る
つまるところ、言語はなんでもよくて、プログラミングの基本となるものをどれかの言語で自分の中に作れれば「おっけ」と言うことです。 その基本を作るのに「Java」が一番おすすめです。 プログラムで「どんな面白いことをやろうか?」と言うのが一番大切な動機だと思います。
JavaFxでなにやる?
大雑把に、PC、スマホ、Arduinoなどのシングルボードコンピュータで動かせるのでゲームなど大体のモノが作れます。技術的には、ほとんどの言語ベースになるC言語が土台なので問題なく新しい言語も理解出来るようになると思います。
でわでわ。。。
関連ページ
<サイトマップ>