C#の敷居の高さ・低さについて補足
(本当なら大問題)高木浩光先生による「遠隔操作ウィルス事件の容疑者が、C#での開発経験が無かった可能性」に関する考察 - Togetter
について、こんなかんじのブクマコメントを書いたけど書ききれない部分について補足
@ka_ka_xyz: C#は元々学びやすく、慣れてなくても成果物を配布しやすい(環境の差は.NetFWが埋めてくれる)言語ではあるし、趣味だけで開発してて自宅の開発環境をOSごと消した可能性もあるし、ちょっと弱い気が。 / “(本当なら大問題)高木浩光…” URL
その前に
今回の事件について、自分の基本スタンス
そもそも裁判も始まってないはずの「容疑者」がこんだけ実名報道され、あたかも犯人であるように印象付ける報道が繰り返されている状況は明らかにおかしいです。また、今のところ報道されている数々の「証拠」(というか印象操作の域を出ていない気がするけど)は、決定的な犯行の証拠とは思えません。「容疑者」が犯人と思うかどうかと聞かれたら、「ワカンネ」って言うか「意味有る答えを出すにはデータ不足」って言うしか無い気がします。今のところは。
では本題。
C#の「簡単さ」について
自分はJava屋(兼PHP、JavaScript。趣味でAndroid向けJavaアプリやFlexとかも)ですが、色々と事情があってC#デスクトップアプリの修正に関わったこともあったりしました(もう少し細かく状況を説明すると、バックエンドにJavaベースのSOAPサーバー+デスクトップクライアントとしてC#アプリという構成で、SOAP API仕様を8割ぐらい書き換えてしまったら「ここまで変るなんて聞いてない、藻前が修正しろ」と言われ、事前準備殆どなしでC#プロジェクトを修正することに)。その経験から「簡単」って表現を使いました。C#っぽくないソースではありますがそれなりに何とかなります。まあ、元々JavaとC#は言語としてかなり似通ってるんですが、オブジェクト指向のプログラム経験が有れば(Java以外の言語からの移行でも)何とかなるという手応えでした。
それ以外に
- MSDN漁れば基本的な情報は書いてある
たとえば
C# プログラミング ガイドや
.NET Framework クラス ライブラリ リファレンス
のようなドキュメント(たまにとてつもない機械翻訳が引っかかったりするけど)。
JavaとC#の類似性はあるにせよ、まあ業務システムやアプリの開発経験があれば(頭の中でだいたいのロジックなりクラス図を書けて、あと実装をどうするかっていう段階へ持っていければ)かなり敷居が低い言語だと思うです。
- 何のかんの言ってVisual Studioは手厚い
Java屋としては「Eclipseには負けるけど…負けるけど……(悔し涙)」と思うものの、デバッグやコード補完などの基本機能は揃ってるし、(クセは強いものの)GUIデザイン関連機能はかなり強力です。
まあこういう理由から「簡単」って表現を使ったわけです。
あと、技術屋であればプライベートな時間を使って仕事で使わない技術や言語についてチャレンジしている人もそこそこ多いはずで、C#を業務で使った経験が無いから問題のウイルスを開発出来たはずがないというのは主張としてちょっと弱いと思います。
最後に
自分の経験から、業務でのC#使用経験の有無が容疑者の無罪主張についての決定的な根拠とはなり得ないんじゃないかっていうだけで、「じゃあ容疑者は犯人なんだな」ってことではありません。念の為。