- PR -

たくさんの言語があふれていますが…

投稿者投稿内容
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-10-19 23:06
引用:

nagiseさんの書き込み (2006-10-19 09:15) より:

元記事を読まないと用語を誤解しそうですね。
「プロフェッショナル」:医師、弁護士、建築士など
「デベロッパー」:システム開発者



「プロフェッショナル」は、どっちかというと筆頭に挙げられるのが「system administrator」で、その下に「一般 user のちょっと詳しい人」って扱いになると思います。

ただ、VB.NET になってからは、特に「一般 user のちょっと詳しい人」にとっては扱いづらくなったんじゃないかな?と思います。
# Developer の方は、OOP を習得するまでにどれだけ時間がかかったか思い出してください。

とりあえず、自分だけとか自分の目の届く範囲で動けばいいというものを作るのが VB.NET 以前の VB の目標だった思いますが、違ってますかね。

で、問題点は 2つ。
1. VB を本職 (ってゆうか、えせ developer) が使うようになった
2. ちょっとした tool を作成できる人が簡単に system を作れると勘違いしだした

1 は論外ですが、2 にもちょっと困ったモンです。

そういう人が適当に設計 & coding したものは、ヤバイものが多いですから、運用・保守で非常に苦しむ羽目になります。

引用:
新VBになってからは、デベロッパーでも使えるようになったな、と思いました。



というか正直、.NET になってからの VB は存在価値がほとんどないような気がしますが・・・
VB.NET で OOP をバリバリやる人は自ずと C# を使うようになるでしょうし、それ以外の人では理解不能ですから、VB6.0 とかずっと使い続けるんじゃないかと。

VB.NET は正直 legacy の VB user が .NET 環境に移行するために用意された方言だと思いますね。

C#.NET より VB.NET を利用する優位性をしいて挙げるなら、
1. VB の方言がある程度生かせる
2. COM とかで、省略可能な引数を持つ method を扱うのが楽

そのくらいだと思います。
# って言っている割には、VB.NET それほど使いこなしていませんが・・・

引用:
また、型を意識しなくてもいい、というところも、よくないと考えます。



これはいえてますね。
OOP と違って data type を理解するのは比較的容易なので、せめてこのくらいは理解させるようにしたほうが良いかと。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-20 21:42
引用:

きくちゃんさんの書き込み(2006-10-19 22:42)より:
ま、その辺は最近、何でも一緒のような気が…。


今は、そうですね。
なので、今は、『つまり易しいが故に、逆に理解するに至るまでが遠回りになってしまう』というのは、IDE が付随する環境であれば、どれも同じですね。ぁぅ...orz


 VB.NET 以降に関しては、「せめて Option Strict は、On にして使ってくれ」です。これ、デフォルト On にしておいて欲しかった。
あと、「Module を使わないでくれ」と。Module は、Web アプリケーションで大いに問題になることが多いから、ですが、Windows アプリケーションで使うクセが付いていると、使ってしまうと思います。これを避けるため、という意味です。
 ということは、私が「やめてよ」と思うのは、VB6.0 以前から流れてきた VB.NET ユーザということなのかな?


マルチ失礼。
引用:

ちゃっぴさんの書き込み(2006-10-19 23:06)より:
引用:

nagiseさんの書き込み (2006-10-19 09:15) より:

元記事を読まないと用語を誤解しそうですね。
「プロフェッショナル」:医師、弁護士、建築士など
「デベロッパー」:システム開発者


「プロフェッショナル」は、どっちかというと筆頭に挙げられるのが「system administrator」で、その下に「一般 user のちょっと詳しい人」って扱いになると思います。


これ、私です。元記事の方で、私がそう書いているんです。
「system administrator」は、「IT プロ」と、区別されていませんか?

_________________
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2006-10-21 21:48
ども〜、えせ developerですw

引用:

ちゃっぴさんの書き込み (2006-10-19 23:06) より:
というか正直、.NET になってからの VB は存在価値がほとんどないような気がしますが・・・


これはちょっと言いすぎな気が・・・

引用:

VB.NET で OOP をバリバリやる人は自ずと C# を使うようになるでしょうし、それ以外の人では理解不能ですから、VB6.0 とかずっと使い続けるんじゃないかと。


私はVB.NETからVBをはじめて、その前はC++とかJavaだったので、
「それ以外の人」がVB.NETでどんなソースコード書くのかいまいちピンとこないんですけども、
OOP をバリバリやる人は自ずと C# を使うようになるかっていうと、そうでもないです。

この理由の根本は、やはりVBという開発言語の利用人口の多さ、
それ故のVBで作られたシステムの多さにあると思います。
言語の特性上、大規模なものはあまりありませんが、中規模以下の業務APは星の数ほどありますよね。

その中で重要度の高いものは、いずれ旧VBのサポートが終わるってことで、
最新のVB.NETに移行したいっていう案件が結構な数出てくる。
既存のソースコードを活かしつつ、予算に余裕があればリファクタリングってことになります。

OOPでリファクタリングする場合、旧VBしか知らない人たちだけでこなすのはキツいので、
C++やJavaの経験者達から人が狩り出されてくる。
この結果、「C#やったことない、旧VBもやったことない、VB.NETでOOPをバリバリはやったことある」
って人が現れてきます。

私も、OOPをバリバリって言えるほど自分のプログラミングがちゃんとOOPになってるか自信ないですけど、
経緯的にはそんな感じです。

その後C#の案件も経験して、今では「C#やったことある」状態ですが、
一概にC#マンセー、VB.NET存在価値無しってことにはならないです。

主観的ですが、理由を3つほど。

ひとつめは、区切り文字が中括弧やセミコロンではなく、改行なもんで、要はフリーフォーマットぢゃないんで、
いわゆる1ステップコーディングができない。
一見欠点ですが、チーム開発の場合、コーダによる個性が出づらく、ソースコードの統一感がとりやすい。

ふたつめは、演算子やブロックの開始と終了など、ソースコードを構成する殆どの要素が記号ではなく英単語なので、
文章を書くような感覚でプログラミングを進められる。
これは、はじめのうちはものすごく違和感があったんですが、一度慣れてしまうとなかなかいいもんです。
#IDEが使えない場合はタイピング量が増えるので、IDEが使えない場合は私も絶対C#派ですが、
#Visual Studio使う限りはタイピング量もC#と同等以下です。キーワードの先頭も勝手に大文字にしてくれるし。

みっつめは、
引用:

2. COM とかで、省略可能な引数を持つ method を扱うのが楽


これです。やっぱでかいです。
自分でクラスライブラリ作る場合は、C#から使われることも想定して
なるべくOptional使わずオーバーロードにするようにしてますが、既存のCOMに関してはどうしようもないので。

以上、長々と書いてしまいましたが、私は決してVB推進派ではないです。
ただ、利用人口の多さは馬鹿にできないってことです。
利用人口を無視するなら、そもそもプロのデベロッパーは、「Windows」というOSを使うべきではないでしょ?w
ognac
ベテラン
会議室デビュー日: 2005/06/21
投稿数: 65
投稿日時: 2006-10-22 01:40
ognacです。
 私の母国語はVBです(onlyではありませんが)。ここ数年はVBのみで仕事してます。
いままでの投稿をみて見まして,VBが不利な印象を感じます。
前回の投稿でも書きましたが、 VBerの姿勢とVBという言語は別です。

ちゃっぴさん>VB.NET は正直 legacy の VB user が .NET 環境に移行するために用意された方言だと思いますね。
と大筋同意ですが,移行のための方言でなく,FrameWork(CRL)の主方言の一つと考えています。
VBでも行儀良くつくれば,相当なシステムも作れます。

(前回と重複しますが)VB言語はユーザーマクロ向け仕様から,本格OOP開発仕様まで取り込んだ言語です。
その範疇の広さゆえに,皆さんの指摘される問題が生じています。
 ユーザーとしてのVBerや非プロの職業VBerが.netに移行できなくて 旧VBを使い続けるのは、自己責任の範囲ですのでとやかく言う問題ではないと考えます。
 プロのVBer(このスレでいうデベロッパー)が VB.netの移行を放棄するのは,プロとしては如何なものかなと思うのです。
プロなら言語に左右ないのが理想です(とはいうものの得意/不得意はあります) 。
私の気に入っているVBの便利な部分は, 変数スコープのStatic と,メソッドのoption指定です。
 COMとの連動などで問題もでてきますが,現実の業務アプリでは COMを使う局面は少ないです。大半は VB.NETの世界で完結しています。
仕事がプロに合わせくれれ良いのですが,現実の要望に合わせるのもプロではないでしょうか。
 それゆえに,VBのプロは今以上に行儀良く作成するよう襟を正してもらいたいものです。

ぼのぼのさん>既存のソースコードを活かしつつ、予算に余裕があればリファクタリングってことになります。
.net化と.netコンバージョンの区別が付かない請負元が残念ながらあります。これはこれで,VB/C#云々以前の大問題です。「conversionしても.netの思想にはならない」ことが理解できないようです。
 安易にソースコードを活かそうと提案し,Conversionで受注し、そのままデスマーチに突入し,火消し不能状態になることもあります。
 .NET技術者になろうとする方は、このあたりを押さえて欲しいとつくづく感じています。

ぼのぼのさん>利用人口を無視するなら、そもそもプロのデベロッパーは、「Windows」というOSを使うべきではないでしょ?
理想はそうでしょうが、ATMもWindowsで動き, CE周りもWindowsが結構はいってきているのが現実です。まだWindowsという土俵は拡大傾向にあると思うのです。
 なんだかんだといっても,私はVBが好きなので,VBerもプロになって欲しいと願ってます。

 







_________________
ognac@わんくま同盟

[ メッセージ編集済み 編集者: ognac 編集日時 2006-10-22 01:44 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-22 13:05
引用:

ちゃっぴさんの書き込み (2006-10-19 23:06) より:

というか正直、.NET になってからの VB は存在価値がほとんどないような気がしますが・・・


C# に、少々偏っている私が言うのも何ですけど、これは、C# が好きな方の存在価値だと思いますよ。

C# にしろ VB にしろ、一方が好き / 一方に慣れている方にとって、
もう一方の言語の存在価値が、薄くなっていくのは仕方がないことだと思います。

引用:

ぼのぼのさんの書き込み (2006-10-21 21:48) より:

私はVB.NETからVBをはじめて、その前はC++とかJavaだったので、「それ以外の人」がVB.NETでどんなソースコード書くのかいまいちピンとこないんですけども、OOP をバリバリやる人は自ずと C# を使うようになるかっていうと、そうでもないです。


少し (C# 固有の部分を) 勉強さえすれば、使えるようにはなると思いますよ。
"自ず" という部分については、個人に依存しそうな要素なので、何とも言えないです。
すぐに出来るようになる方も多いとは思いますが、C の構文を受け付けられない人もいるでしょう。

引用:

OOPでリファクタリングする場合、旧VBしか知らない人たちだけでこなすのはキツいので、


"旧 VB しか知らない人" ではなく、クラス モジュールの本質をわかっていない人になると思います。
まあ、たいていが "旧 VB しか知らない人" とイコールになるという意味なのでしょうけど...
全体視されてしまう方々にとっては、悲しい言い回しになってしまいますね。

# 魔界の仮面弁士さんや K.J.K. さんクラスの人ばかりなら、
# このような次元のことで、全体視されなかったのでしょうけど...

ともかく、VB の守備範囲は、あまりに広すぎました。(今も広いですが)

引用:

C++やJavaの経験者達から人が狩り出されてくる。


根本的な解決が図れる 「勉強させれば良い」 という選択肢はないのでしょうか?
何だか、「できないとわかりきっている」 かのように見えてしまいます。
そうでない人も、意外と多くいるということも考慮してあげてください。

引用:

この結果、「C#やったことない、旧VBもやったことない、VB.NETでOOPをバリバリはやったことある」って人が現れてきます。


手始めとして、VB.NET を使いこなすことができるのであれば、別段問題ないと思います。

引用:

利用人口を無視するなら、そもそもプロのデベロッパーは、「Windows」というOSを使うべきではないでしょ?w


これは、何故なのでしょうか?
ビジネスとして Windows を選択するのは、何もおかしくないと思いますが...?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-22 13:09
引用:

ognacさんの書き込み (2006-10-22 01:40) より:

移行のための方言でなく,FrameWork(CRL)の主方言の一つと考えています。


私も C# と VB7 以降の VB は .NET CLR 言語の主軸だと思います。

ただ、何かしろの言語が "方言" ということはないと思います。
我々日本人にとって、「日本語は方言」 という意識はないですよね。

引用:

VBでも行儀良くつくれば,相当なシステムも作れます。


"相当なシステム" の基準は良く分かりませんが、これは、VB6 以前も含めているのでしょうか?
レガシ VB の話と混ざって書かれてあるので、判断できませんでした。

引用:

私の気に入っているVBの便利な部分は, 変数スコープのStatic と,メソッドのoption指定です。


私にとっては、この 2 つは逆で VB で嫌いな部分ですね。
(制限できるオプションが欲しいです)

ローカル変数の Static 変数は、プライベート メンバにした方がわかりやすいです。
ローカル レベルにある 'ように見える' 変数が、再入時にリセットされないのは違和感を感じます。

"option 指定" というのは、'Optional 引数' のことだと思いますが、
これも、オーバーロードで解決した方が IDE 上わかりやすいと思いますね。
特にクラス ライブラリを作る場合。(たいてい、C# で作ってしまいますが)

私が VB で好きなところは、ぼのぼのさんと同じで、ソースの見た目 / 可読性です。
もし VB8 で 「既定のインスタンス」 の制限 「My」 の制限ができるならば、
C#2.0 から VB8 に乗り換えようとすら考えていました。

引用:

COMとの連動などで問題もでてきますが,現実の業務アプリでは COMを使う局面は少ないです。大半は VB.NETの世界で完結しています。


COM と比較して語るのであれば、VB.NET という言語ではなく、CLR が適切だと思います。

引用:

.net化と.netコンバージョンの区別が付かない請負元が残念ながらあります。
「conversionしても.netの思想にはならない」ことが理解できないようです。


言語に直接関係しない返信で恐縮ですが、

そのあたりを調査しないで (させないで) 仕事を請けるだなんて、ありえないですね... orz
この業界に限らず、仕事前の調査 (市場なども含む) は必要不可欠だと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ognac
ベテラン
会議室デビュー日: 2005/06/21
投稿数: 65
投稿日時: 2006-10-22 15:49

じゃんぬねっとさんwrote:
>我々日本人にとって、「日本語は方言」 という意識はないですよね。

CRLが土俵として存在し,表現方法としてVBという文法があるという意識ですが,方言という表現はしっくりきませんか?
この意味を表す言葉を捜しています。

>"相当なシステム" の基準は良く分かりませんが、これは、VB6 以前も含めているのでしょうか?
CRL.VBの事を指してます。

>ローカル変数の Static 変数は、プライベート メンバにした方がわかりやすいです。
習慣病のようなもので,違和感を感じない私がいます。

>もし VB8 で 「既定のインスタンス」 の制限 「My」 の制限ができるならば、
賛成。 option strict on も必須にして欲しい。 Moduleも制限して欲しいね。(VBじゃなくなるか?)


>COM と比較して語るのであれば、VB.NET という言語ではなく、CLR が適切だと思います。
そうですね。CLR言語という言い方を考えてみます。

>そのあたりを調査しないで (させないで) 仕事を請けるだなんて、ありえないですね... orz
残念ながら,ありえるんです。PGの中にはそれを疑問を感じない人も一定数もいます。



_________________
ognac@わんくま同盟
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-22 21:00
引用:

ognacさんの書き込み (2006-10-22 15:49) より:

CRLが土俵として存在し,


s/CRL/CLR/g ですね。

引用:

表現方法としてVBという文法があるという意識ですが,方言という表現はしっくりきませんか?
この意味を表す言葉を捜しています。


ごめんなさい、ちょっと意味を取り違えていたようです。
どの言語も方言という位置づけであれば、納得はできます。

私は、.NET Framework を利用するための 「ひとつの道具」 だと考えています。

引用:

CRL.VBの事を指してます。


s/CRL/CLR/g ですね。
多くの場合、VB.NET と書くと理解されやすいです。

引用:

VBでも行儀良くつくれば,相当なシステムも作れます。


擁護する文章であるのに、"VB でも" という言い回しになってしまうところが、切ないですね。
「(利用者ではなく言語としての) VB.NET が、C# に比べて見劣りしている」と、
思われているのではないか、という ognac さんの想いが伝わってきます。

引用:

習慣病のようなもので,違和感を感じない私がいます。


自分で書いたものは良いのですが、他人の書いたものだと途端に見づらくなる印象を受けます。
再入を禁じるなど、特殊な使い方をするものが多いですから。

このあたりは主観によるところでしょうから、上記は個人的な意見として受け止めてください。

引用:

option strict on も必須にして欲しい。


必須となると、デベロッパー以外の方からブーイングが来そうです。
初期値としてならば、賛成したいところなのですが、デベロッパー以外の方から、
「今までできたことができない」 という印象を植え付けそうです。

引用:

Moduleも制限して欲しいね。(VBじゃなくなるか?)


これは、使おうとしなければ、それで十分だと思いますよ。
モジュールに関しては、使いたくないのに使ってしまうなんてことはありえないですから。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)