こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

電子帳票&電子印鑑のパッケージ開発用プログラム言語

http://dstmp.shachihata.co.jp/solution/about/
パソコン決裁(電子文書(プリントアウトせずペーパーレスでe-文書法にて管理)、電子印鑑)
例えば、上記の様なパッケージを開発するなら
どのようなプログラム言語が適しているでしょうか?
と言う質問です。

JAVAに関してもメリット、デメリットがあるわけで、
JAVAが良いと言う話もあるのは、JAVAは、Swing、JavaFx、AWTなどGUIが得意だからでしょうか?
Python&Cycloneフレームワークや、Go lang&Ginなどで、電子帳票、電子伝票、電子印鑑システムなどのパッケージを開発するのはメリット、デメリット、開発効率、コストなど何が良くて何が悪いのかなど、何か情報を与えて頂けないでしょうか?
クライアント一万同時アクセス問題にも対応する方が良いと思います。
JAVAは、2018年現在、今後サポートが有料になったり、バージョンアップを今後は、より頻繁に行なって行く方針が発表され、企業とプログラマーから嫌われているのではないでしょうか?

しかし、私の知っている情報が浅くて、
もっと具体的に、JAVA、Python、GO言語あたりで、
電子書類、電子帳票、電子印鑑、などのパッケージ開発に
どのプログラム言語が向いている向いていないなどがあれば、
教えて頂ければ幸いです。

投稿日時 - 2018-09-14 13:48:44

QNo.9537208

困ってます

質問者が選んだベストアンサー

客先はなんであって、目的はどういうことなのかを把握していませんね。
官公庁なのか、メーカーなのか、証券や銀行などのファイナンス系なのか、ロジスティクスなのか、それらによって、運用が変わります。
運用を考えたときに自然に落ちてくる開発方法があります。

まずそこから言ってもらわないと、単純にプログラム言語の何がいいかなんていう質問には答えられません。

Javaは運用管理をするには便利なところがあり、その代りひどく開発費がかかります。PHPだったら3人でできるような開発をするのにJavaだと30人は必要になります。したがって、開発会社はJavaでの開発を志向する傾向がありました。たくさんの金が動くからです。払ってくれるなら社員をたくさんたべさせられますけど、仮にプロジェクトが閉鎖されたら何十人も露頭に迷います。
致命的なのは開発環境の寿命です。1.何.何、というような版数でフレームワークが変わりますが、必ず非推奨クラスというのが発生し、これは前バージョンの開発物は今バージョンでは使えるけれど以後使える保証はないということです。しかも、使いもしないベース部分が巨大で、デプロイ(インストール)をするのにかなりの力仕事をすることになり、いざ壊れたときのメンテナンスが悲惨です。要するに、ずっと金がかかる金食い虫なんですね。

で、SwingだとかAWTなんていっていますが、AWTなんてクライアントでしか使えないものは何の役にもたちませんし、Swingなんてあまりにも方言で困ります。そもそもHTML空間で参照しないと動かないなんていのはGUIなんて威張って言えるような機能じゃありません。

金を食わないで、メンテナンスが容易なものは他の開発系では面倒じゃなく作れますけど、運用管理を議論を重ねてつくりこまないといけないし、品質がおろそかになる危険があります。

だから、何の目的でどういうお客のためにやるか、が重要なんです。そのお客様は運用管理に関してどの面で強いのか、わからないと、どこでメンテナンスをしなければいけないかの判断がつきません。
また、軽快にOSを選ばず動くスクリプト系のインタープリタは非常に便利ですが、品質上のカバレッジを確保するということに弱い面があるので、それじゃコンパイラがいいのかというと、こちらは融通がきかなくなります。

私らが普通にやるのは、一番上位の制御にPythonがいて、その下でRubyやPHPが動きときにPerlを呼び場合によってはc++で組まれコンパイルされたオブジェクトを呼ぶというようなやり方です。それぞれの言語は自分の得意なところを担当します。これだと、サーバープログラムを動かしながら平行にバッチ処理を稼働し、イレギュラー時に現状を止めないでプログラムそのものを置き換えるなんていうことが楽にできます。
GUIは、HTMLでできるものは、OSを選びませんからそれでフロントエンドを作り、グラフとか画像処理が必要なものはPythonのフレームワークで処理し、というようなことをすれば、ひまわり8号だろうがロボットシミュレーションだろうが何でもできます。

あと、1から10まで全部作ろうと思うのは現代だったら愚かなことです。
すでに出来上がっているものがたくさんありますから、それを利用するようにすれば、開発時間を短くでき、品質の確保もそれほど難しくありません。
電子帳票だとか電子印鑑なんて、1から作ろうとするのはカシコクないと思いますよ。

昔のプログラマみたいにCOBOLに命を懸け生涯をささげるなんていうような言語自体への操を保つようなのはもはや時代錯誤です。

投稿日時 - 2018-09-14 23:50:07

お礼

>私らが普通にやるのは、一番上位の制御にPythonがいて、その下でRubyやPHPが動きときにPerlを呼び場合によってはc++で組まれコンパイルされたオブジェクトを呼ぶというようなやり方です。それぞれの言語は自分の得意なところを担当します。これだと、サーバープログラムを動かしながら平行にバッチ処理を稼働し、イレギュラー時に現状を止めないでプログラムそのものを置き換えるなんていうことが楽にできます。
GUIは、HTMLでできるものは、OSを選びませんからそれでフロントエンドを作り、グラフとか画像処理が必要なものはPythonのフレームワークで処理し、というようなことをすれば、ひまわり8号だろうがロボットシミュレーションだろうが何でもできます。

とても参考になり、そして勉強になります。
また、開発コストだけでなく、運用コストも考えるべきだというのも参考になり、勉強になります。

パッケージを開発するなら汎用性を考慮した物を開発するべきだと思いますが、それ以上はまだ想定しておりません。失礼致しました。

投稿日時 - 2018-09-17 14:20:41

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Windows向けのパッケージソフトを作るのであれば Visual C++ が基本でしょうね。
特にアプリケーション間で連携させるようなことがある場合、WindowsのAPIを利用する事になるので、Windowsネイティブで作る必要が出てきます。

Javaのメリットは複数OSで動作することですが、GUIを使用する場合は利用できるOSに制限が発生する場合があります。(フレームワーク次第)
有料化についてはサポートのないオープン版もあるので余り気にする事は無いでしょう。

PythonやGO言語でGUIを扱おうとすると、現状ではブラウザを介することになりますし、Windowsネイティブなソフトには出来ないのでパッケージソフトには向かないでしょうね。

投稿日時 - 2018-09-14 14:08:39

お礼

>Visual C++ が基本
という意見もありますね。
個人的には、LINUXサーバー上で動かしたいと考えておりまので、
PythonかGo langかなと今は考えております。

投稿日時 - 2018-09-17 14:22:39