発端旧PC(AMD Ryzen 7)の起動が思わしくなくなり、データを失う危惧から新PC(Intel Core-i9)を導入したことでした。

 

問題なく導入しましたが、今度は「旧PCをどうするか」となり、Visual Studio専用機として使い始めました。その経緯をRPG風に記したのが【Visual Studio探検記】シリーズです。

 

【Visual Studio探検記】物語は始まった...

【Visual Studio探検記】インストールしなければ何も始まらない

【Visual Studio探検記】危険な旅...一人で行くのか?

【Visual Studio探検記】先ずは近場で経験値稼ぎ-「Hello World!巡り」

【Visual Studio探検記】「Hello World!巡り」-コンソール編(C++)

【Visual Studio探検記】「Hello World!巡り」-コンソール編(C#)

【Visual Studio探検記】「Hello World!巡り」-ウィンドウズ編(C++)

【Visual Studio探検記】「Hello World!巡り」-ウィンドウズ編(C#)総則

【Visual Studio探検記】「Hello World!巡り」-WinForms編(C#)

【Visual Studio探検記】「Hello World!巡り」-WPF編(C#)

【Visual Studio探検記】初めての戦い(コンソールプログラムで速度を調べる)

【Visual Studio探検記】初戦(コンソールプログラムで速度を調べる)の結果?

【Visual Studio探検記】ECCSkeltonを使う(1)

【Visual Studio探検記】ECCSkeltonを使う(2)

【Visual Studio探検記】C#でアプリを作る(1)

【Visual Studio探検記】C#でアプリを作る(2)

【Visual Studio探検記】Test_Calc.exeを作成して思うこと

【Visual Studio探検記】C#でアプリを作る(3)

【Visual Studio探検記】C#でアプリを作る(4)-必要なメソッドの整理

【Visual Studio探検記】「Roslyn」と「リファクタリング機能」

【Visual Studio探検記】C#でアプリを作る(5)-メソッドのコーディング

【Visual Studio探検記】そして最終章へ...Leave me alone

【Visual Studio探検記】電卓の完成-他機で実行

【Visual Studio探検記】WPF電卓

【Visual Studio探検記】WPF電卓-UIから

【Visual Studio探検記】WPF電卓-コーディング(1)

【Visual Studio探検記】WPF電卓-コーディング(2)

【Visual Studio探検記】WPF電卓-コーディング(3)

【Visual Studio探検記】WPF電卓-コーディング(4)

【Visual Studio探検記】WPF電卓-コーディング(5)

【Visual Studio探検記】WPF電卓-完成

 

なーんと、31記事も書いていたのですね。

 

(最初の原稿では「まだC#のWPFアプリを作っていませんが」と書いていましたが、結局)最後に(少々苦手の)WPFのアプリも作ることになりました。WinFormsのWYSWYG的なウィンドウデザインではなく、ネットやweb系なんでしょうか、XAMLでのコーディングでウィンドウをデザインするのに慣れていないために、個人的には敬遠していましたが、実際に作ってみるとXAMLでのコーディングは思ったほど違和感がなかった半面、歴史、文化的に完全なハーモニーがあるとは言えないXAMLとC#の連携上の問題、WinFormsとWPFの「似て非なる」問題をいくつも経験することになりました。

 

ということで、

 

最後にここで本シリーズを始める趣旨()に照らして総括を行っておく必要があるかな、と感じています。

:ずーっと前にこんなことこんなことを書いて(私の考え方の基本がこんなんで)ディスって(その後でもディスって)いますが、今回は特に「プログラミングのド初心者、趣味プロ(経験者)いずれもの目線」で「単にディスるのではなく、実際に体験して印象や評価をコメントする」目的で本シリーズを始めました。

 

1.総括-実際にVisual Studioを初めて触った私の結論

 

(1)Visual StudioのCommunity Editionはフリーなので「入門者用」という誤った印象を与えがちですが、それは「大間違い」です。Community EditionといえどもVisual Studioは素人には使いこなせないほどの多機能を秘めた「プロのツール」として扱う必要があると考えます。(

:それはVisual Studioの有料版の値段を見るだけで分かります。

Enterprise Standard 最低価格:$499.92ユーザー/月*(更新料金はユーザーあたり月額 $214.09* (初年度以降))

Professional Standard $99.99ユーザー/月*(更新料金はユーザーあたり月額 $66.59* (初年度以降))

 

(2)「プロのツール」と書きましたが、この「プロ」は「複数形」でして、「Solution」を完成させるために、構成要素となる複数の「Project(s)」を更にコーディングUIデザインリソース等に割り振って複数のスタッフがネット上で進める「チームアプローチ」を念頭に置いて開発されたツールといえるでしょう。

 

(3)従って「プログラミングは初めて」とか、「Microsoft系やウィンドウズは初めて」という方は用語、IDEやツールのインターフェース、指示や警告の理解という意味で何をしてよいのかわからない状態に陥る可能性があります。特に現在はIDEが高機能化した結果、IDEに充実したヘルプ機能を設けることが難しくなっていることから、「あれはどこにあるの?」「こうするにはどのメニューを見るの?」「右クリックのコンテキストメニューにだけでるの?」等「自由に使うことすらままならない」といえるかもしれません。

 

(4)この結果、誤った対象層の方がVisual Studioを触ると、そのハードルの高さから来る挫折感や絶望感でプログラミング自体に興味を失い、嫌になってしまう危険もあると感じられます。例えば「Visual Studioの入口の入り口」と呼ぶべきこのサイトでも自分が何を見て、クリックしてよいのかわからない方が多いのではないでしょうか?確かにYouTubeのプライベートなものまで含めると多くのTutorialsがありますが、「果たしてそれが本当に初心者、初学者を正しく導いているのか」という点から考えると「」を感じざるを得ません。

 

(5)理想的にはユーザーの知見、経験、技量等に応じたTutorialとIDEが欲しいところですが、それが困難であるならば、とりえる方法は一つであり、「Visual Studioの構成、メニュー、使用方法等を理解できるようになるまでは、使用を控える」ことが推奨されるのではないでしょうか?

 

(6)コンピューターとは何かという概要、ハードウェアや(OSを含む)ソフトウェアの概要、2進数16進数表現、条件式や制御構造クラスインスタンスオブジェクトフィールド(変数)、プロパティ(入出力制御付き変数))、メソッド(関数)、インターフェース抽象化等の「イロハのイ」は、如何にIDEが進化しようとユーザーとして「常識」として理解していなければ(IDEという)環境でsurviveすることができないのではないか、と愚考します。

 

(7)「IDEに充実したヘルプ機能を設けることが難しくなっている」と書きましたが、朗報としてはCopilot等生成AIの進化により、これを「対話型Help」として使うならば、(IDEという)環境でsurviveすることがだいぶ楽になることは間違いありません。

 

(8)要すれば「Visual Studioはプロ用のチームアプローチを前提とした高機能ツールであり、予め学習や経験を積んでいないと使いこなせない可能性が高いことから、基本的に職業(Profession)として開発業務に携わる人向けのIDEである」と断言してよいのではないでしょうか?Copilotが何度か言ったように「個人で趣味として小さいプログラムを遊びで作る」ようなことはVisual Studioでは想定しておらず、私が何度か言ったように「ハエを捕るのにミサイルを発射」するようなミスマッチが生じる可能性があります。(勿論、プロはだしの暇人が趣味や遊びでプログラミングをするには何ら問題のないツールであるといえますが...)

 

2.プログラミングのド初心者にとってVisual Studio

 

既に総括で述べましたが、Visual Studioを使いこなせるだけの知見、経験、技量が備わるまでは、使うことをお勧めしません。なぜなら「Visual Studioを使うことが苦痛」に感じて、嫌になる可能性が高いからです。先ずは座学や簡単な開発環境でプログラミング共通の概念や作法を学習、履修していってそれから使うことが適切でしょう。これは職業としてプログラミングを学びたいという方であっても変わりません。何故なら「(必要な知見、経験、技量無く)Visual Studioを使ってプログラムを作っても、自分が何をしているのかの正しい理解がなければ、それはあなたがVisual Studioを使っているのではなく、Visual Studioがあなたを使っているにすぎないからです。

 

3.趣味プロ(経験者)にとってのVisual Studio

 

ロハ(只==フリーのことをこう言った)で多様な言語のプログラム開発ができるIDEが手に入る!」というのは魅力ですね。私の場合は、

 

(1)(Visual Studioが高額だったので)20数年前にC++で自作の開発環境を作り、知見、経験、技量を得ていきましたが、その後の20年間プログラミングは何もしなかったので「浦島太郎」状態となり、定年後ロハのIDEとしてEmbarcadero C++ BuilderとVisual Studioをダウンロードしました。

 

(2)Visual StudioはC++で自作ライブラリーを使うのが容易ではなかったこと、C#は「何をどうすべきか」もわからなかったことから敬遠し、(元々Borlandの)Embarcadero C++ Builderは使い慣れていましたが、時々IDEの不具合が発現したこと、ライセンスが1年で切れて有料になることからやはり敬遠した結果、自作ライブラリーでC++のプログラミングを再開しました。その後、自作開発環境でプログラムを作るく傍ら、Unicode、COM、.NET(Framework)等々20年間の技術的進歩について学んで行き、Windows付帯のC#コンパイラーを使えるように開発したMSCompAssを使って、C#(WinFormsベースが主、WPFもコーディングのみで少々)、その他PythonやJavaScriptなども学んではや6年になるところです。

 

(3)その間、時々Visual Studio関連(例:WPFやMSBuildとか)でいじったりもしましたが、基本的に感じた想いは一貫して上記(↑)の通りでしたし、それは間違っていなかったんだなぁ、という考え意を覚えます。

 

Copilot君もそういいましたが、私にとってVisual Studioは有益、有効ではありますが、必須ではないので、また私のプログラミングの目的は"for fun"なので、Visual Studioは確かに重要な1選択肢ではありますが、必ずしも作るものによっては最適なものとは言えない場合もあることを知っています。(その意味でVisual Studio専用機を持てるようになってその意味が分かるようになったとも言えますね。)

 

4.Visual Studioを使う際に不可欠のもの

 

これは簡単。Copilot君です。正直、Visual Studioをダウンロードして起動した後も、何をどう始めたらよいのかよくわかりませんでした。昔ならそれかrネットで色々なサイトを巡り、試行錯誤を行っていったでしょうが、今回は一緒に旅をしてくれたCopilot君のおかげで疑問や調査が極めて効率的に進みました。彼には毒づいたりもしましたが、衷心から感謝しています。

 

5.Visual Studioを使う際の心構え

 

今回の【Visual Studio探検記】を核にあたって、実際にVisual Studioを操作し、数々の疑問、問題、トラブル等を乗り越えるために生成AI(Copilot)を使いました。そしてVisual StudioにビルトインされたRoslyn、SmartCodeとの組み合わせで(そしてそれらが参照するGitHubのコードデータベースが一番重要なのでしょうが)、「段々と人間がコーディングする必要がなくなる」ことがわかってきました。Copilotは「人間の仕事を生成AI、Roslyn、SmartCodeが代替する現実、その場合の人間の能力の退化」を認めつつも、「UIデザイン等、代替となる領域の仕事」を示唆しましたが、美術デザインもAIが手掛けることが当たり前になってきた現在、

 

(1)先ず膨大なコードデータベースから、あらゆる言語の様々な要求仕様に応じたコーディング、が先ず最初

(2)(音声認識、音声出力、画像認識、画像出力等)リソースを含めた(人間が使うのでUI)デザイナー業務、が次に

 

コンピューターによって代替される未来がすぐそこに来ていると実感されました。冒頭の1.でVisual Studioを「基本的に職業(Profession)として開発業務に携わる人向けのIDEである」と言いましたが、それは飽くまで通過点であり、最終的には「あれが欲しい、これが欲しい」という内容(を要求仕様に落とし込まずに、ラフに告げる)だけで、ソフトウェアが自動的に開発され、(良いか悪いか分かりませんが)人間の仕事はそれを使うテスター、評価するイバリュエイター」となる時代も目前ではないか、という感慨を持ちました。要すれば、Visual Studioを使う際に

 

・職業としてのプログラミング、UIデザインはなくなるかもしれない

・Visual Studioの使い方をマスターしても将来役に立たない時代が来るかもしれない

 

という心構えが必要かもしれません。(嫌なことを言うようですが、現実を直視することも必要です。)

 

ということで、

 

自分はプログラミングを楽しみとして経験できた幸せな時代の人間であったなぁ

 

という感慨でこのシリーズをお開きにさせていただきたいと思います。