C#とかオブジェクト志向言語は名前空間が違うけど同じ名前のクラスがいたりする。 最近.net少しやっているのだが、TreeViewってのがSystem.Windows.FormとSystem.Web.UI.WebControlsという2つの名前空間に存在していて、うっかりMSDNを見間違えていた。 前者は.net Frameworkで使う通常のWindowsFormアプリ用、後者はASP.netとかXamarinとかで使うWebアプリ用。 ああ紛らわしい。ネットで調べていてもあちこちでambiguousとか言われているしね。 ってことで、オブジェクト志向言語のリファレンス見る時は名前空間を意識しましょう。 ここら辺スクリプト言語ではそんなこと無いのが楽だなと改めて思う。 まあPHPはPHPで関数の名前がごちゃごちゃしてたりして分かりづらくはあるのだけど、同名の関数は流石にないから。 PSR-4が普及すればPHPも似たようなことになるのかね? とりあえず思ったのはPHPに慣れ過ぎると他の言語の制約うっかり忘れてしまって困るね。 C#はint[]型で宣言するとメモリが静的に割り当てられるから拡張ができない。ArrayNum型とかList型にしないといけなかったり、 int[]にはstringは当然ながら入れられないし、PHPに慣れてしまうとあちこちで戸惑う。 コンパイル言語から入った人がスクリプト言語やるのは楽だけど、その逆はやっぱり大変だろうなと改めて感じますね。 まだC#やJavaへ行くならいいけど、C言語へ行くのはさらにつらいよね。 ガーベジコレクションもstring型もない、ポインタってのを理解しないといけない、と非常にハードな言語だから。