新PCも目新しさも褪せ、附随ソフトも一通り目を通し、使用環境を前のWin 10マシンと互換状態にしたところで

「Win 11マシンもx64になっただけで、x86のWin 10マシンと基本変わるところなし」

という結論に到達しましたので、またプログラミング中心の話に戻ろうと思います。

 

x64やWin 11を調べていた時に、次のネタを探していて、

 

OSに標準付属のC#/VBコンパイラーでソースコードをコンパイルするには?

 

を見つけ、面白いな、と思いました。というのは、にフリーのMicrosoft Visual Studio Community Editionについて、

「Visual StudioはC++のみならず(というかC++はむしろ今ではマイナーかな)、MSの今日を築いたVisul Basic、現代的なOOPプログラミングを可能とするC#やPython、XMAL等の豊富な開発言語やIDEがあります。私もC++を落として触ってみたのですが、基本的にWin32SDKプログラムの開発に必要なツールはすべてあるのですが、極めて複雑なプロジェクト、ソリューション管理があり、ファイルやフォールダーの構成もお任せでユーザーが勝手にいじれない領域が多いので、正直「アマチュア、小規模開発をホビーとして楽しむユーザー」には(IDEと同じく)重すぎます。

将来職業としてプログラミングを学ぶ方や、きっちりとした知見を備えたい、という方にはお勧めです。」

と書きましたが、「素人のVisual Studioでの開発は、蚊を取るために核ミサイルを発射するようなもの」というのが本音であり、趣味でつまらんプログラムを開発する暇プロには無用の長物と考えたからです。その理由を以下に纏めてみたいと思います。

 

例えばあなたが、プログラミングはおろか、ウィンドウズの技術的な側面についてズブの素人で、これから(趣味として)C#でプログラミングを始めようと思っていると仮定します。(注)

注:そういう場合、CやC++の人は"Hello, world!"を表示するプログラムから入るのが定番なんで、C#でも踏襲するのが筋でしょうね。↑の記事はそういう意味もありますね。

 

ウィンドウズご本家のフリー(無料)の開発環境(IDE)を、ということでVisual Studioの最新版(注)をご本家のサイトからダウンロードします。

注:現在、開発環境のあるWin 10マシンで本原稿を書いていますが、私のVisual Studioは「最新版」だった2019です。MSによれば先週の土曜(2022年9月24日)のリリースで2022が出ていますね。ただ、私はDLする気もないので以下は2019バージョンで話を進めます。

 

心を期待に膨らませ、C#(Visual Basic等他の8つの対応言語でも同じですが)でダウンロードしたVisual Studioを起動してみると、最初に次の画面が出ますね。

「NUnitテストプロジェクト」、「Windows フォームアプリケーション(.NET Framework)」、「Windowsフォームアプリ」、「WPFアプリケーション」、「WPFクラスライブラリー」から選べ、と、こう来ます。

「はぁ???何???」

フォームアプリの二つはどう違うの?WPFって何さ?というのが本音ではないでしょうか?ここらへんで「場違いなところに踏み込んだ感」一杯で心が折れてきますよね?でも、もう一度気合を入れなおして、この後、

「えいやっ!」

と何を選んでも、

「理解していないうちに先に進まされ」

ドツボに嵌って、何か自分が非常に馬鹿で、無知を笑われているような気がして、心は完全に折れ、

「二度とやるかっ、プログラミングなんてっ!」

と感じる可能性は高いのではないでしょうか?

しかし、それはとっても不幸なことです。

 

実際、(自分では20年前結構勉強もしたし、Windowsプログラミングも解っているつもりだった)私も、

 

・「Windows Form

・「.NET Framework(これはVer 4.8で打ち止めだそうです)」

・「WPF(Windows Presentation Foundationの略で、Windows FormがWindows SKDのラッパー、つまりWindowsの出来合い部品の利用ライブラリーであれば、WPFは一段基礎に近い「部品開発もできる、利用ライブラリー開発レベルのライブラリー」といえるかもしれません)」

・「XAML(Extensible Application Markup Languageの略で「ザムル」というのだそうですが、譬えて言うならば、「プログラミングのプログラム言語」ですね)」

・「.NET Core(Win 10、11頃から導入された他OSとのクロスプラットフォームのマネージソフトウェアフレームワークで、今は単に.NETだけの表記になったそうです)」

・「UPF(Universal Presentation Foundationだそうです。もうどうにでもしてくれぃ、という感じですね。)」

 

という、PCがレガシーになり、モバイルが台頭し、モバイルを含め数多のOSやプラットフォームとの互換、接続可能なソフトウェア作りやユーザーインターフェースの作成効率化が求められた結果の技術進歩に殆どついていけていません。

 

しかし、それはプロの世界の話で、個人でプログラミングを楽しむ者たちが、ほんの小さな成果物ができて喜ぶことを妨げてしまっては本末転倒ではないでしょうか?

 

だから私は声を大にして言いたい。

 

「蚊を捕るなら、蚊取り線香で十分なんだよ」、と。

 

それが、

 

OSに標準付属のC#/VBコンパイラーでソースコードをコンパイルするには?

 

を読んで感じたことです。素人の趣味プログラマーは所詮リソース(ユーザーインターフェース-UI)も限られている、サイズも小さな、愚にも付かない、つまらないソフトしか作りませんが、それを作るプロセス、結果のソフトウェアが動作した瞬間の楽しさが全てなんです。言語が何だろうと、見た目やUIがどうであろうと、アルゴリズムがどうであろうと、バグがあろうと、

「プログラミングは作る楽しさ」

なんです。↑の記事は単にコンソールに"Hello, C#"とか"Hello, VB"と出すだけですが、それでもやっぱり楽しいんです。だから、...

貴方もやってみて。

 

次回からは簡単なC#(序にVBも、かな)プログラムのコンパイル用ツールを作り、web上にたくさんあるC#サンプルプログラムを動かせるようにしてみようかと思っています。(それまでは↓のバッチファイルで我慢してください。)

 

【↑のサンプルC#、VBプログラムのコンパイル用バッチファイルの作り方】

(1)システムドライブ(通常「C:」)のWindowsフォールダーの中にMicrosoft.NETフォールダーがあるか、更にその中にFramework(またはFramework64)があるか、更にその中に「v.XXXXXXXXXXX」(v.はVersionの意味、数字の大きな新しいものを選びます)があるかどうか、調べます。

(2)その新しいバージョンのフォールダーの「csc.exe」(VBなら「vbc.exe」)を探し、それを選択して右クリックし、「パスを取得」(Win 11、Win 10なら「プロパティ」でファイル場所とファイル名)でフルパス名を取得します。

(3)ソースファイル(HelloWorld.csまたは.vb)のあるフォールダーで、右クリックによる「新規作成」でテキストファイルを開き、"(csc.exeまたはvbc.exeのフルパス名) HelloWorld.cs(またはvb)"、次の行に"pause"を書き込みます。

(4)テキストファイルの名前を"NETCompile.bat"等にし、ダブルクリックで実行します。ちゃんと"Hello, C#"とか"Hello, VB"とでるかな?

 

【参考サイト-いろんな人が色んな書き方をしていますが、サラッと流した方がよいと思いますよ】

WindowsフォームとWPF両方開発した経験を元に、比較してみる

Windows フォームから WPF へ移行すべきか?

何が同じで、何が違うのか? - Windowsフォームアプリケーション、Windowsフォームアプリ、そしてWPFアプリケーション

WindowsフォームでWPFコントロールを利用するには?

ユニバーサル Windows プラットフォーム (UWP) アプリとは