AQUA's .NET 奮闘記

Hobby Programmer の成長記録

目次

ニュース

  • わんくま同盟
    わんくま同盟
  • わんくま掲示板
    C# と VB.NET の質問掲示板
スカウター : AQUA's .NET 奮闘記

日記カテゴリ

記事カテゴリ

書庫

Blog 利用状況

わんくま同盟 AWARD

わんくま同盟 影

どうしてなのかな?

的確な情報発信となっていませんので、誤解を生む原因となりかねないと判断し、取り消し線を入れています。[修正日:2007/09/05]

プログラムを始めたころに(2・3年前)、『遅延バインディングは遅いし良くないよ! ちゃんと型は明示してね♪ 』的なコメントをいくつも目にしてきました。

それが今では、『 LINQイイよ!使ってみなよ! 』のような流れになってきています。

実際、時代を先取りする技術を持たない私は、LINQもラムダも確認したわけでも使えるわけでもありません。

…が、このような流れになっている以上、近いうちに私自身もガンガンに使うように技術を磨くことになるのでしょう。 ( 遠い眼 )

ですがその前に、LINQに代表される遅延バインディング( でいいのかな? ) が何故トレンドになってるのか、そこが「どうしてなのかな?」と思った訳ですよ…( 汗 )

 


その答えかどうかはわかりませんが、関連する記事を幾つかメモ…

MSDN Magazine September : 基本的な本能 ラムダ式

かるあのメモ : MSDN Magazine 9 月号

NyaRuRuの日記 : Visual Basic 8 と "type" の省略,ついでに DLR とパフォーマンス

投稿日時 : 2007年8月30日 13:27

Feedback

# re: どうしてなのかな? 2007/08/30 14:12 とりこびと

# わんくまブログトップには出てないのですねw

>どうしてなのかな?

がちがちぢゃできないことがやわやわにはできるからぢゃないでしょうか。そして世の中はそれを求めていると!!
(いろんな意味での難易度は別として。)

# re: どうしてなのかな? 2007/08/30 19:58 やまだ

># わんくまブログトップには出てないのですねw
いや、出てましたよ。もう一度見たときには、このエントリだけ飛ばされてました。それこそ
>どうしてなのかな?

人も技術も成熟してきたから、ってことではないでしょうか?
昔は迂闊な人が迂闊なことをするととんでもないことになってた、だから多少オーバーヘッドを掛けてでもきっちりと作ろうとした。
でも、それだと細かいニーズに応えきれないから、融通を効かそう、って。

少数精鋭の場合はそれでよいのでしょうが、多人数での開発にはトンデモ系の人も混じったりするので、一概にそっちにいくとは思えなかったりもするのですが。

# re: どうしてなのかな? 2007/08/30 20:46 かるあ

なんか URL がおかしい?1年1月1日?

VB9の遅延バインドというか動的型解決は一度 Object 型に突っ込んでどうにかしているので Nyaruru さんの記事のとおりパフォーマンスが犠牲になっています。

LINQ って実行時に型を決定するんだっけ?
動的型付け言語とかで検索してみるといろいろ出て気ますよん。

# re: どうしてなのかな? 2007/08/30 22:20 ひろえむ

私は未だに遅延バインディングも型推論もよろしくないと思っています。

もちろん、LINQだって同じです。

少なくとも今の段階では型推論や遅延バインディングを推進する気にはなれません。 

一連の機能追加にはコードの可視性を落とすものが多く、正直、LINQに見られるオーバーヘッドをしてでも得られるメリットを感じません。

未だにデータベースチューニングを必要とする現場が多く存在する中、強行してこのテクノロジを採用するほどハードウェアはまだ進歩してないように感じます。

もちろん、勉強はしておいたほうがいいですが、「LINQを使わなきゃ!」というのは私は間違っている気がします。

また、型推論も遅延バインディングもむしろ「使うな」と言うでしょう。

少なくとも今の段階では。

あと、LINQの型推論は遅延バインディングとは別物です。
VB9のInfer On(型推論をオン)ではAs Objectと意図的に指定しないと遅延バインディングとはなりません。

でもって、LINQの型推論は実行時に型付けするのではなくて、コンパイラが型推論してくれるので、実際は型宣言したのと同じようになるってことですね。

もひとつ言うと遅延バインディングは遅いから非推奨とされていたワケじゃないと思います。 

可視性を恐ろしくおとして、余計な不具合を生む元凶となりえたからだったと思います。 はい。

速度的な問題は特殊なケースを除いて、特に問題になるほどではないと思いましたよ。

# re: どうしてなのかな? 2007/08/31 0:06 アクア

まだ手をつけてないってのはありますが、かるあさんの
>LINQ って実行時に型を決定するんだっけ
って、ところで、
『ん~…(今回も)多分やらかしてるんだろうな~…』
って思ってたところに ひろえむ さんの解説が入って他力本願ながら、後学の徒としてはありがたい助言を頂きました。^^;

>VB9のInfer On(型推論をオン)ではAs Objectと意図的に指定しないと遅延バインディングとはなりません。
>
>でもって、LINQの型推論は実行時に型付けするのではなくて、コンパイラが型推論してくれるので、実際は型宣言したのと同じようになるってことですね。

ここの考え方が遅延バインディングとは違うということで間違いないのかな?
LINQの機能を知る上での重要なキーワードとして心に留めときます。

>もひとつ言うと遅延バインディングは遅いから非推奨とされていたワケじゃないと思います。 
>
>可視性を恐ろしくおとして、余計な不具合を生む元凶となりえたからだったと思います。 はい。
>
>速度的な問題は特殊なケースを除いて、特に問題になるほどではないと思いましたよ。

ここにも私の誤った解釈があったようですね。
# そういえばメモリの使用についても留意すべき点があったような…(うろおぼえ)


>># わんくまブログトップには出てないのですねw
>いや、出てましたよ。もう一度見たときには、このエントリだけ飛ばされてました。それこそ
>>どうしてなのかな?

え~っと、投稿直後に編集したので二重にトラックバックが飛ばないようにしたら間違えちゃったのが理由です。(アクア滝汗 ^^;;;)

# re: どうしてなのかな? 2007/08/31 7:19 ひろえむ

もともとの遅延バインディングは

Dim foo

と型宣言しなくても

foo = 10



foo = "ABC"

などの構文エラーとならず、その値を設定(バインド)してくれるのです。

でも、型推論では

Dim foo = "ABC"

など初期化を必要として、その初期化された値から型を推論してくれるのです。

なので、この場合

Dim foo As String = "ABC"

としたのと同じになってくれることですね。
(コンパイラが勝手にこういう形に変化させてくれるという新機能)

ゆえに前者のようなInfer On(型推論をOn)にすると遅延バインディングを実現しようとしたら

Dim foo As Object

と宣言しないと(つまり意図的に遅延バインディングを使いますよーと宣言と)できなくなったんですよ。

ただ、前にも書きましたがいずれの方法も構文上から型宣言がなくなることで人間系の判断を必要とすることになるんですね。

そのため、コードの可読性が著しく落ちてしまいますので私は推奨できません(^^;

# re: どうしてなのかな? 2007/08/31 11:00 かるあ

人間系の判断に頼っていた部分は前からあったんじゃないかな
たとえばこれは
Dim name = ""
→ Dim name As String = ""
→ Dim name As String = New String("")
なわけですよね。

変数の型が明らかな場合にはこういう機構があってもいいかなぁと思う。慣れの部分も多い気がする。

Infer On の時の遅延バインディングに関しては、Strict オプションとの組み合わせでも変わってきますよね。

# re: どうしてなのかな? 2007/08/31 17:24 ひろえむ

>人間系の判断に頼っていた部分は前からあったんじゃないかな
>たとえばこれは
>Dim name = ""
>→ Dim name As String = ""
>→ Dim name As String = New String("")
>なわけですよね。

それがいけないって今まで言われていたワケですよね?(^^;

つまり、それがよくなったってワケでもないと思うんですがいかがでしょう?

人間は今までどおりなのに、なぜ人間系の判断を必要とする機構を利用推奨する理由はないように思うんです。

決して慣れの問題じゃないと思いますよ(^^;

# re: どうしてなのかな? 2007/09/04 11:52 かるあ

> それがいけないって今まで言われていたワケですよね?(^^;
そうですか?
VB6やVB.NET の遅延バインドが嫌がられていたのは、スピードの問題と変数の型を最初に決定したものからどんどん変更出来てしまうことにあると思っていました。

> 人間は今までどおりなのに、なぜ人間系の判断を必要とす> る機構を利用推奨する理由はないように思うんです。

これは人間がコンピュータに歩み寄るわけじゃなくて、人間が考える必要がなくなるってことじゃないかな。

> 決して慣れの問題じゃないと思いますよ(^^;
たとえば C# で
string s = new string("");

string s = "";
と書くのはダメ?

今回のはこれが一歩進んで(?)
var s = "";
になっただけな気もするんです。

# re: どうしてなのかな? 2007/09/05 19:37 渋木宏明(ひどり)

>今回のはこれが一歩進んで(?)
>var s = "";
>になっただけな気もするんです。

と思う。

C# では LINQ の使用と遅延バインドは関係ありません。

型推論も C# ではコンパイル時に型そのものは決定的なものしか受け付けません。

C# の型推論は「型の内容(メンバ)は分かっているけど、型名がない(つける人がいない)「型」」を扱うために設けられたものであって、Variant やら Object みたいに「何でもこい」な野蛮な仕組みではありません。

# そう思っているとしたらそれは誤解。

# re: どうしてなのかな? 2007/09/05 19:40 渋木宏明(ひどり)

> LINQに代表される遅延バインディング( でいいのかな? )

LINQ (そのもの)は遅延バインドそのものでも応用技術でもないと思うけどなー

どっかの記事にそんなことが書いてあったんですか?

「VB が」LINQ を受け入れるために遅延バインドをつかっているんだとしても、それは LINQ のせいではないと思う。

C# は相変わらず型厳密なまま LINQ と統合されています。

# re: どうしてなのかな? 2007/09/05 23:39 アクア

渋木宏明(ひどり) さん
コメント及び、助言ありがとうございます。

先ずはその前にこのエントリをそのままにしておくことで、御覧の皆さんに多くの誤解を与えている様で、申し訳なく思っております。
一応、リンク以外の文書に関しては取り消し線を入れさせて頂きます。
(削除することが適切な処置のように思えないのと、自身の反省を含め)

その上で、LINQの機能(というかVisual Studio 2008の新機能)については私自身、非常に興味のある題材ですので、きちんと調べようと思います。
明確にどこで私の誤解が生まれたのかという点については単純に早合点と言う他ないですね。

御三方にかぎらず、MSDNなど公式文書を中心に情報を咀嚼し、自身の知識として吸収したいと思います。
皆さんのコメントの中に調べるべき事項がいくつかありましたので、それを中心に調べようと思っています。

# ivermectin eye drops 2021/09/28 11:16 MarvinLic

oral ivermectin cost http://stromectolfive.online# stromectol tab price

# ivermectin 18mg 2021/11/03 14:31 DelbertBup

ivermectin lotion price http://stromectolivermectin19.com/# how much does ivermectin cost
ivermectin 1

# ivermectin generic 2021/11/04 8:09 DelbertBup

ivermectin iv http://stromectolivermectin19.com/# ivermectin cream canada cost
ivermectin 1mg

# buy prednisone nz https://prednisonesnw.com/#
prednisone buy online nz 2021/11/13 9:34 Prednisone

buy prednisone nz https://prednisonesnw.com/#
prednisone buy online nz

# how to take sildenafil 20 mg https://viasild24.com/
2021/12/07 19:19 Nyusjdh

how to take sildenafil 20 mg https://viasild24.com/

# sildenafil citrate tablets 100 mg 2021/12/07 23:25 JamesDat

https://iverstrom24.online/# stromectol ivermectin drug

# bimatoprost buy online usa 2021/12/12 2:19 Travislyday

http://plaquenils.online/ hydroxychloroquine order online

# baricitinib coronavirus https://baricitinibrx.com
barikind
2021/12/12 16:23 Buksdldj

baricitinib coronavirus https://baricitinibrx.com
barikind

# buy bimatoprost https://bimatoprostrx.com
bimatoprost ophthalmic solution careprost
2021/12/13 16:03 Hksfnjkh

buy bimatoprost https://bimatoprostrx.com
bimatoprost ophthalmic solution careprost

# careprost bimatoprost for sale 2021/12/14 13:11 Travislyday

https://bimatoprostrx.com/ bimatoprost generic

# careprost for sale 2021/12/16 1:59 Travislyday

http://bimatoprostrx.com/ bimatoprost generic best price

# ivermectin where to buy 2022/02/17 20:11 JamesGaf

https://stromectolst.com/# ivermectin 1
ivermectin nz

# ivermectin rx 2022/02/18 5:20 JamesGaf

https://stromectolst.com/# ivermectin 12 mg
stromectol 3 mg

# stromectol covid 19 2022/02/20 14:19 Jamesscons

https://stromectolis.com/# ivermectin pills canada

# buy doxycycline https://doxycyline1st.com/
100mg doxycycline 2022/02/26 17:48 Jusidkid

buy doxycycline https://doxycyline1st.com/
100mg doxycycline

# ivermectin mange 2022/03/16 0:26 Tommiegathe

https://stromectolfastusa.com/# ivermectin for sheep and goats

# buy clomiphene http://clomidus.store/ 2022/04/12 20:26 Clomids

buy clomiphene http://clomidus.store/

# iv prednisone http://prednisoneen.store/ 2022/04/17 6:47 Prednisone

iv prednisone http://prednisoneen.store/

# furosemide https://buylasix.icu/
lasix 2022/06/25 1:05 LasixRx

furosemide https://buylasix.icu/
lasix

# purchase clomid https://clomidonline.icu/ 2022/07/12 23:51 Clomidj

purchase clomid https://clomidonline.icu/

# Flagyl https://allpharm.store/ 2022/07/22 5:59 AllPharm

Flagyl https://allpharm.store/

# metformin prescription cost https://glucophage.top/
buy metformin 850 mg 2022/08/23 15:34 Niujsdkj

metformin prescription cost https://glucophage.top/
buy metformin 850 mg

# ed pills gnc https://ed-pills.xyz/
erectile dysfunction medications 2022/09/16 14:50 EdPills

ed pills gnc https://ed-pills.xyz/
erectile dysfunction medications

# ed medications list https://ed-pills.xyz/
cheapest ed pills 2022/09/17 15:00 EdPills

ed medications list https://ed-pills.xyz/
cheapest ed pills

# doxycycline generic https://buydoxycycline.icu/ 2022/10/08 17:14 Doxycycline

doxycycline generic https://buydoxycycline.icu/

#  https://clomidforsale.site/ 2022/11/13 21:19 ForSale

https://clomidforsale.site/

# cost of prednisone 5mg tablets https://prednisonepills.site/
prednisone 5mg cost 2022/11/30 7:54 Prednisone

cost of prednisone 5mg tablets https://prednisonepills.site/
prednisone 5mg cost

# best male ed pills https://cheapestedpills.com/
new ed pills 2022/12/10 22:15 CheapPills

best male ed pills https://cheapestedpills.com/
new ed pills

# Get warning information here. Everything information about medication.
https://edonlinefast.com
Read information now. Read information now. 2023/02/17 12:20 EdOnline

Get warning information here. Everything information about medication.
https://edonlinefast.com
Read information now. Read information now.

# buy cytotec over the counter - https://cytotecsale.pro/# 2023/04/29 6:30 Cytotec

buy cytotec over the counter - https://cytotecsale.pro/#

# rightsource over the counter https://overthecounter.pro/# 2023/05/09 0:34 OtcJikoliuj

rightsource over the counter https://overthecounter.pro/#

# non prescription ed pills: https://edpills.pro/# 2023/05/15 22:15 EdPillsPro

non prescription ed pills: https://edpills.pro/#

# the best ed pill https://edpill.pro/# - ed medications 2023/06/27 16:03 EdPills

the best ed pill https://edpill.pro/# - ed medications

# best ed pills non prescription https://edpillsotc.store/# - best male ed pills 2023/10/08 2:50 EdPills

best ed pills non prescription https://edpillsotc.store/# - best male ed pills

# farmacia online più conveniente https://farmaciait.pro/ farmacia online più conveniente 2023/12/04 11:16 Farmacia

farmacia online più conveniente https://farmaciait.pro/ farmacia online più conveniente

タイトル
名前
Url
コメント