質問者
言語の習得のしずらさ。

全般的な情報交換
すべての返信
-
参考になりなした。最近の言語(VB.NETを含む)の特徴として、すべて中間言語に翻訳されていると思います。いきなりアセンブラに変換されていないと思います。中間言語とはC,ないしFORTRANに近いものだと思います。FORTRAN的にいうと、すべてサブルーチンコールのはずです。つまり参照のことです(参照の参照の参照等)また、最近の言語の特徴は型の定義です、型を入れ子にすることができます。型の中に命令文を書くことができます。
VB.NETのコードが、FORTRANでどのようなコードに展開されるのかイメージしながら読んでいますが、同じことをFORTRANで書くと、とにかくたいへんです。原始的な型しかないからです、でもFORTRANでコーディングは可能です。大変です。アメリカの頭脳はたいしたものです。
私の時代、日本のソフトウェアー産業はアメリカに、15年から20年は遅れているといわれていました。開発言語がアメリカ産なのは、日本の方がスタートが遅かったからです。アメリカは国家をあげて1980年代頃からとりかかったはずです。(自動車産業など日本の追い上げがきびしい。)
習得のこつは、参照の参照の参照と、入れ子にできる型を自分で定義できることだと思います。
-
> さらに一歩踏み込んだ技術書が少ないです。
.NET Framework の設計の背景までしっかり学ばれたいなら、入門書より以下の書籍をお勧めします。
プログラミング.NET Framework 第4版
VisualBasicや C# を真に使いこなすには .NET Framework に関する理解が必須です。著者の Jeffrey Richter は .NET Framework の設計に携わった人だけに解説が奥深く、また翻訳もこなれてるので、この手の書籍の中ではかなり読みやすいと思います。
ぜひ 「フォーラムでご質問頂くにあたっての注意点」 もご覧ください https://social.msdn.microsoft.com/Forums/ja-JP/ca9ecfb7-4407-4fcb-b8bd-207d68257e68?forum=announceja
-
書籍として発売されるのが初心者向けの内容か、あるいは大学の講義で使うような内容の物しか無いのは、ここ20年くらいの傾向です。バージョンアップが早く執筆している間に陳腐化してしまったり、市場規模が小さいので利益が少なかったり、インターネット上で情報を得やすくなったりと、ざまざまな要因が重なった結果として現状があります。よって、答えとしてはインターネットを活用して下さいと言うことになるかと。
この掲示板にたどり着けたのでしたら「ドキュメント」のリンク先に大量の資料が置かれている事にも気がつかれているでしょう。サンプルコード(https://code.msdn.microsoft.com/)には様々なサンプルコードやその解説もよういされています。各地で実施されている勉強会に参加されるのもよいでしょう。
甕星
-
FORTRAN 77以前のものはいわゆる「手続き型」言語であるため、
一旦発想を転換する必要があるかもしれません。
FORTRAN 90以降には、「module」「interface」という概念が導入され、
「オブジェクト指向」言語の「class」という概念に近い意味を持ちます。
これは「構造のある一塊のデータ」に「それ専用のfunction」がくっついたものと
とらえると理解の助けになるかもしれません。
残念ながら自分が経験したのは77までなので詳しい解説はできません。あしからず。さて、最近の言語の主流は「オブジェクト指向」的な仕組みになっています。
これが理解できると最近の言語はどれも似たような物であると言えます。
(加筆)
手続き型言語っぽく書くと
call Function_Run_Dog( theDog) // 犬を走らせる関数に対象の犬を渡して処理するのような形になりますが、オブジェクト指向っぽい言語では
theDog.Run() // 対象の犬に走るようにお願い(命令)する感じでしょうか。
- 編集済み 仲澤@失業者 2015年4月22日 7:14
-
>習得のこつは、参照の参照の参照と、入れ子にできる型を自分で定義できることだと思います。
手続き型言語を経験された方の習得のコツは、手続き型言語とオブジェクト指向言語の違いを理解することことだと思います。私もそうでしたが、手続き型言語を経験した後にオブジェクト指向言語を学習すると、オブジェクト指向を手続き型言語で理解しようとします。よって、クラスをサブルーチンに重ね合わせてしまいます。しかし、クラスはサブルーチンとは違います。クラスとサブルーチンの違いは何でしょうか? サブルーチンの他になぜクラスがあるのでしょうか? これらに自分で納得して明確に答えることができなければ、そこをもっと深く学習してみて下さい。
VB.NETの細かな機能は文法はそれからです。実際、私は最初のバージョンからVB.NETやC#を見てきましたが、今では随分多くの機能が搭載されるようになりました。これから学習する人はそれだけ多く学ばなければなりません。ラムダ式、LINQ、ジェネリック・・・、しかし、それらには存在する理由があります。その理由を考えながら学習されると良いと思います。>私の時代、日本のソフトウェアー産業はアメリカに、15年から20年は遅れているといわれていました。
個人的には日本語の影響が大きいように思います。かつて日本語を扱うために日本ではパソコンが独自の進化をしました。いわゆるガラパゴス化です。そのうちにDOS/Vで事足りるようになると、ようやく世界標準の土俵に乗ることができました。技術的に遅れたというよりは違う方向に進んでしまったように思います。ただ、それは必然だったようにも思います。
★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
-
最近の言語(VB.NETを含む)の特徴として、すべて中間言語に翻訳されていると思います。いきなりアセンブラに変換されていないと思います。中間言語とはC,ないしFORTRANに近いものだと思います。
勝手な想像でしかありません。最近の言語でも直接機械語に変換されているものもありますし、C#及びVB.NETで使われるCIL; 共通中間言語も抽象的ではありますが機械語です。
習得のこつは、参照の参照の参照と、入れ子にできる型を自分で定義できることだと思います。
この辺りは個人の自由ではありますが、狭い視野で理解しようとしても説明がつかず無理な解釈になりがちです。基礎からきちんと学ぶことをお勧めします。