スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ソースコード販売は・・・ | トップページ | 今時のフリーソフトはUbuntu用 »

今時のWindows環境は・・・

今は、Ubuntu向けのソフト開発が一段落したので、それらのソースコード販売なんかもしようかと、巷の情勢を確認したりしているのだが、今日、面白かったのは、Windowsの独壇場である筈の業務用ソフト開発でも、このページの書込み みたいになっている、という事だ。

冒頭のリンクにアクセスした人なら判った筈なのだが、今、Windows環境でプログラムを開発するのであれば、大きく分けて、作者製ソフトも使っているWin32APIを使ったネイティブプログラム、昔ながらの.NETを使ったプログラム、そのバージョンアップ版とも言えるWPFを使ったプログラム、昨日書いたメトロアプリの進化版となるUWP形式のプログラムが開発可能だ。

で、作者製のWindows版ソフトがWin32APIを使用しているのは、.NETを使うと性能が低下するし、UWPにすると機能が低下するからだ。

もっとも、業務用ソフトというのは、大昔から、既に、VisualC++なんかがあったにも関わらず、VisualBasicで組まれる事が多かったのだが、これは、処理性能よりも、開発の容易さが重要視されたからだ。

つまり、業務用ソフトの多くは、オブジェクト指向にする必要はなかったし、業務用ソフトはパーソナルコンピュータの黎明期から開発されていたのだが、その時代に利用可能だったプログラミング言語と言えば、BASICだった訳だ。

なので、その流れもあり、構造体だとかクラスだとか継承なんて、意味不明な概念を使う必要がない業務用ソフトの開発には、ベタなプログラミング言語である所のBasicが使われた訳なのだが、VisualBasicというのは、GUIとそのイベント処理ルーチンを簡単に構築できたので、開発言語が使い慣れたBasicである上に、GUIを持ったWindowsソフトの開発が簡単に行える、というメリットもあった。

まあ、今となっては、VisualC++でも、MFCを使えば、GUIの作成は簡単に行えるのだが、大昔は、そういった事はVisualBasicの独壇場だったので、普通は、特に高性能である必要もない業務用ソフトは、GUIが簡単に構築できるVisualBasicで開発されていた訳だ。

で、今はどうなのか、というと、VisualBasicという名前の開発ツールは存在しているのだが、在りし日のVisualBasicとは別物になっている。

これは、ある時から、VisualBasicのライブラリ関数なんかの代わりに、.NETが使われる様になって、言語的にも、オプジェクト指向になってしまったからなのだが、そうなってくると、業務用ソフトは、.NETの為に作られた言語と言えなくもないC#で開発する方が望ましくなった。

このため、VisualBasicは使われなくなっていったのだが、C#を使った.NETでのソフト開発というのは、大昔のVisualBasicを使ったソフト開発よりは、よっぽど、難しくなった。

しかしまあ、業務用ソフトというのは、普通は、仕事でプログラミングする人が作るものなので、少々、開発の難易度が上がったくらいでは、挫折する人は少なかったかもしれないのだが、大昔、趣味でWindows用プログラムをVisualBasicで組んでいた様な人達の多くは、昔ながらのVisualBasicが使えなくなった時点で、Windows用のプログラムは作れなくなったかもしれない。

更に、冒頭に貼ったリンクには、この延長線上のモノとして、WPFも出てくるのだが、これについては、作者的には言葉だけは知っているのだが、これを使ったプログラムは開発したことはない。

これは何故なのかというと、上記のリンクにある様に、少なくとも小規模な開発においては、不必要に複雑な作りになっているので、ダイアログ一つ表示するでけでも、一苦労だからだ。

つまり、大昔の牧歌的だったVisualBasicでのプログラミング環境は、.NETの登場で、より、シビアなモノになったのだが、WPFの登場で、大人数での大規模開発に携わる様な人以外は、寄せ付けなくなった訳だ。

その結果として、上記のリンクにある様に、未だに、WPFは殆ど使われていない訳なのだが、マイクロソフト的には、これが、従来の.NETを使った開発環境の後継、という事になっているし、更に言えば、Windows10以降では、その次のプログラミングパラダイムである所のUWPまで登場させている訳だ。

なので、今、業務用にプログラムを組むとしたら、どれを使えばよいでしょう? という質問者の問に対する回答は割れに割れているのだが、これはつまり、Windowsにおけるプログラミング環境というのは、おかしな方向に向かってきた、と、言えるかもしれない訳だ。

何故なら、最初に書いたように、業務用ソフトというのは、普通は、性能は必要ない上に、機能的にも単純で良いモノが殆どなので、プログラミング環境としては、より簡単に開発が出来るものが望ましい筈だからだ。

まあ、こんな事を書いていると、そんな事はない、という声も聴こえてきうそうなのだが、実際の所、性能が必要な部分については、ミドルウェアとしてCかC++で構築されるだろうし、複雑な機能が必要なら、そんな機能はサーバーサイドでJavaで組まれたりするのが普通の筈なので、Windows環境で動作させる業務用ソフトなんてのは、ブラウザ上で動作するHTML5アプリで十分だったりする事も多い筈だ。

そういった観点に立てば、Windows上で動作させる業務用ソフトなんて、UWPで十分、という事にはなるかもしれないのだが、配布が面倒になるUWPとしてプログラムを作るくらいなら、HTML5で作っておいた方が、Windows以外のOSでも使えるので、便利かもしれない。

と、言うことで、今現在、Windows環境用に業務ソフトを新規に構築する場合、結構、悩ましい様なのだが、クライアント-サーバーモデルを使うのであれば、HTML5が登場している昨今、クライアントOSはWindowsである必要はないし、サーバーOSについても、Linuxが使われる事が多いので、本質的には、最早、業務用にWindowsを使う必要はないのかもしれない。

もっとも、MS-Officeは、未だに、Windowsでないとマトモには動作しないし、脆弱性が見つかったら真面目に対処する、と、明言していそうなのも、Windowsだけかもしれない。

まあ、一応、macOSもメーカー製のOSなので、それなりに真面目に脆弱性対策はするかもしれないし、Linux系のOSでも、最近は、真面目に脆弱性の対策は行われている感じなので、実際の所としては、MS-Officeだけが、Windowsの命綱なのかもしれないのだが。

ちなみに、上記とは別の話になるのだが、以下の2つのページが目に止まった。

【悲報】Microsoftが2019年にWin32アプリを捨て去るという噂 (2018.01.26)

変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か  (2018年11月11日)

上記は、真逆の話になっているのだが、両方とも、別に、マイクロソフトが語った話という訳ではない。

なので、信憑性はあまり無いかもしれないのだが、少なくとも、こういった話が出てきている、という事は、今現在のWindowsがベストの状態ではない、という事ではあるかもしれない。

« ソースコード販売は・・・ | トップページ | 今時のフリーソフトはUbuntu用 »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google