TechDays 2010 2日目 T2-301 .NET Framework 4.0 時代の言語 #techdaysj

講師:荒井省三

内容は.NET 4で取り入れられた、あるいは改良されたプログラミングパラダイムについての解説で、その中でF#, XAMLといったものが解説されました。

Ruby作者のMatzさんとかも言っていますが、今後10年の言語トレンドは宣言型、あるいは関数型のパラダイムが主流になっていくと思っているので、資料を見れる方は見ていると良いかもしれません。

  • 引き続きRoom C #T2_301 #techdaysj posted at 10:48:59
  • .NET Framework 4.0 時代の言語 #T2_301 #techdaysj posted at 10:54:13
  • Dynamic(動的) #T2_301 #techdaysj posted at 10:57:29
  • 動的とは?ダックタイピングを実現するのが「動的」 #T2_301 #techdaysj posted at 10:58:12
  • Linqがすでに導入されている。エクスプレッションツリーを調べるとラムダ式が遅延実行されていることが理解できる #T2_301 #techdaysj posted at 11:00:31
  • DLRが.NET4から正式に追加される。System.Dynamic名前空間。言語ごとのバインダーがある。バインダーは振る舞いを決めるもの。 #T2_301 #techdaysj posted at 11:01:31
  • DLRと動的言語との関係。表にまとめられている。オープンソースのDLRコアは2.0対応になっているので名前空間が.NET4と違う。Mcrosoft.Scriptingで始まるヘルパーはOSS #T2_301 #techdaysj posted at 11:04:03
  • C#4、VB10とDynamic 各言語ごとのバインダーがある。C#ではdynamicキーワードが追加。実際にはこれはクラス。 #T2_301 #techdaysj posted at 11:05:22
  • VB10ではレイとバインディングを実現するクラスがDynamicを使うように再設計された #T2_301 #techdaysj posted at 11:05:57
  • DLRを提供するメリット。動的言語が作りやすい。性的言語と動的言語、動的言語同士ののり付けがしやすい。Dynamicオブジェクトが作れる、新しいCOM互換性の提供 #T2_301 #techdaysj posted at 11:09:00
  • 埋め込みスクリプトのデモ #T2_301 #techdaysj posted at 11:10:24
  • C#のコードと動的言語のスクリプトとの相互運用についてのデモ。簡単なペイントアプリケーション。ペイントオブジェクトを動的言語で制御する。 #T2_301 #techdaysj posted at 11:13:47
  • RCW Runtime COM Wrapper #T2_301 #techdaysj posted at 11:16:50
  • @k1ha410 IronRuby, IronPythonの話も出ていますが、話の内容としてはC#/VB側からの視点です。 #T2_301 #techdaysj posted at 11:23:09
  • ExpandoObjectはリテラルなメンバとDelegateを動的に増やすことができる #T2_301 #techdaysj posted at 11:24:49
  • いつDyamicを使うべきか #T2_301 #techdaysj posted at 11:25:26
  • DIコンテナの代わりにスクリプトをホスト(コンテナ)の代わりにする。振る舞いの変更をスクリプトにする。いろいろな方法論があるけど難しいかも。 #T2_301 #techdaysj posted at 11:27:45
  • 動的言語ユーザーはAOPに関心がない。(そりゃ振る舞いを自由に変えられるんだからね。。) #T2_301 #techdaysj posted at 11:28:34
  • 宣言型とは何か。 関数型言語、処理方法ではなく対象の性質を宣言する。 #T2_301 #techdaysj posted at 11:29:41
  • 宣言型パラダイム。Linq, ラムダ式 ラムダ式は関数型言語の基礎。ノイマン型プログラムはラムダ式で表現できる #T2_301 #techdaysj posted at 11:30:43
  • 宣言型パラダイム。 XAML。XA
    MLは対象オブジェクトの性質を宣言している。オブジェクトの複合化、依存プロパティシステム。 #T2_301 #techdaysj posted at 11:32:05
  • .NET4でのXAML。汎用言語化。SLのXAMLとWPFのXAMLとの互換性向上 XAML2009(?) #T2_301 #techdaysj posted at 11:33:09
  • 宣言型パラダイム F#言語 F#はマルチパラダイム言語 #T2_301 #techdaysj posted at 11:33:52
  • XAMLの進化。Syste.Xaml.dll XAMLエンジンの共有化され、フレームワーク化されている。 #T2_301 #techdaysj posted at 11:35:24
  • XAMLノードストリームのDemo #T2_301 #techdaysj posted at 11:35:49
  • XAMLで汎用的にオブジェクトのシリアライズ、デシリアライズができる #T2_301 #techdaysj posted at 11:40:46
  • マークアップ拡張 #T2_301 #techdaysj posted at 11:41:50
  • F# 関数をファーストクラスをとして持つ。型推論 #T2_301 #techdaysj posted at 11:44:37
  • 「副作用がない」店に関するデモ #T2_301 #techdaysj posted at 11:47:28
  • F#の型推論の説明 #T2_301 #techdaysj posted at 11:49:58
  • F#は対話インターフェイスとコンパイラが用意されている #T2_301 #techdaysj posted at 11:51:08
  • 関数は式、式は絶対値を返す。 #T2_301 #techdaysj posted at 11:54:47
  • 同時実行(Concurrent) #T2_301 #techdaysj posted at 11:55:26
  • ムーアの法則 CPUはメニーコアへ。リーク電流により実際には微細化は難しくなってきている。絶縁体の工夫、立体化による延長はあるが。。 #T2_301 #techdaysj posted at 11:56:47
  • マルチコアのの同時実行はタイムスライスによる疑似並列は違うことに注意 #T2_301 #techdaysj posted at 11:57:55
  • アムダールの法則 基本的に悲観論 #T2_301 #techdaysj posted at 11:58:08
  • .NETでの並列 #T2_301 #techdaysj posted at 11:59:38
  • OSのユーザーモードスケジューラーの説明。OSスレッド単位での管理 #T2_301 #techdaysj posted at 12:00:22
  • ユーザーモードスケジューラ。OSのカーネルベースのスケジューラーとユーザー空間内のスケジューラーを分ける #T2_301 #techdaysj posted at 12:01:12
  • .NET 3.xまではスレッドプールのキューはAppDomainごとに一つ #T2_301 #techdaysj posted at 12:01:47
  • .NET4ではタスク(ワークスレッド)ごとにスケジューリングキューを持つ。マルチコアでのキャッシュ破壊をできるだけ少なくしたい #T2_301 #techdaysj posted at 12:03:09
  • 言語と同時実行 F#にはASYNCライブラリがある #T2_301 #techdaysj posted at 12:03:50
  • PLinq #T2_301 #techdaysj posted at 12:04:01
  • PlinqのDemo #T2_301 #techdaysj posted at 12:04:18
  • まとめ #T2_301 #techdaysj posted at 12:08:28
  • 並列化を突き詰めていくとアルゴリズムになる。関数型言語でなくても良いが関数型のパラダイムを取り入れる必要が出てくる #T2_301 #techdaysj posted at 12:09:47
  • このセッションのつぶやきは以上 #T2_301 #techdaysj posted at 12:10:00

コメントを残す