- PR -

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

投稿者投稿内容
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2006-10-10 14:28
引用:
他に、標準ライブラリのmallocは、フリーリストチェーンでメモリ管理しているため、断片化すると、極端に性能が低下したはず。


先日開催された
第67回カーネル読書会 glibc malloc について、ビデオ公開
での資料がちょっと面白かったです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-10 21:54
引用:

Seiga Alisueさんの書き込み(2006-10-09 23:35)より:

【Visual Basic】
《欠点》
・構文が独特
・ネイティブコードを作れない

加えてVisual Basicを勉強すると『VB病(構文の独自性やコード数が少ないことなどによってほかの言語を習得する際に億劫になる病 - 命名、有末清華w)』にかかってしまい、ほかの言語に移りにくくなる。

【C++/CLI】
《利点》
・マネージドコードを出力するからプラットフォームに依存しない(現状はWindowsのみ、ってか一生な気がする)


ダウト。

 まず構文について。比較している C++, C#, Java が、元々派生元が同じなので構文が似ているだけ。それらと派生元が違う VB を比較すると、構文が独特になるのは当たり前。COBOL(COBOL.NET)や FORTRAN, Prolog, LISP などは、ご存じ?PL/SQL などやると、また面白いことになるんだけど。

 次、ネイティブコード。少なくとも、VB 6.0 では Windows ネイティブコードが生成されます(Delphi 対策)。もっとも、VB.NET になって、共通言語になっていますから、もう一度コンパイルするという意味で、ネイティブコードではなくなっていますが、それを言っては C++/CLI, C# も同じ。

 んで、なに?「コード数が少ない」?それは IDE がそうしてくれるのであって、言語仕様とは別。C# も、VS2005 を使うなら、書かなければいけないコード量はとっても少ない。
 それとも、My などの、あらかじめ用意されたライブラリのことを言っていますか?

 それから、ずっと Windows のみって?mono プロジェクトをご存じですか?まぁ、これが C++/CLI から使えるかは、知らないけど。


引用:

【Visual Basic】
・同じ.net frameworkで動くものとしてC#でできることができない場合がある。
【C#】
.net frameworkの全機能を利用可能


ここ、意味がわかりませんでした。いったい、なんのこと?


引用:

・必要な機能がすべて.net frameworkで用意されているわけではなく、変わったことをしたい場合事実上APIに頼った開発が必要となるがめんどくさい。


 CLI は、OS を提供するのではなく、ソフトウェアの実行環境を提供するものなので、CLI の基盤である OS の状態を知るには、当たり前のことだと思いますが?
 ってか、System.Windows.Forms が、Windows 完全依存なのに、.NET Framework の中に用意されているのが、あるいはおかしいのかも。System.XWindow 名前空間を用意しろって?


_________________
有末 清華
ベテラン
会議室デビュー日: 2006/10/09
投稿数: 52
お住まい・勤務地: 北海道
投稿日時: 2006-10-10 22:39
たくさんの返答ありがとうございます^^

えっとまず
引用:

開発言語を比較する上で、比較の材料とされやすいのが言語仕様ですが、
実際には用途と環境も含めて考えたほうが良いと思いますよ。
それぞれの言語に得意分野・不得意分野があり、それに見合った用途が
あるのでそれで選ぶと良いと思います。そのために複数の言語があるので
あって、そうでなければ単一のメーカー(MSやボーランド等)が複数の言語を
わざわざ多額の開発費をかけてリリースしないと思います。


そのとおりです、まったく何も言い返せない。ただ、僕が言いたかった(聞きたかった)ことは『Windowsでのソフトウェア開発』に限定した話です(書いてませんでした、分野が狭いと井の中の蛙で…汗)その場合、それぞれの利点・欠点等を総合して考えた結果これからどのような言語がメインで使われるようになるかな?っと思って聞いてみました。もちろんゲームならCとかアセンブリ(相当古いけどFF7はアセンブリに似た独自言語だったとか、昔聞いてびっくりした覚えがある、相当書きにくいだろうなぁって - 使用言語VB時代)

引用:

環境で考えられるのは、どれだけサードパーティが参入しているか、
日本全体(または世界全体)で開発者人数がどれくらいいるか、サポート
がどれくらいしっかりしているか、開発ツールが安定しており、
バグフィックスやバージョンアップも適度に行われているかという
ことです。


それは一時的要素にもなりえますが、たいていは二次的要素ではないでしょうか?盛んに言語が使用される → 開発環境等安定 → もっと使われる。 なんかこの辺は卵か鶏かみたいな感じで論議できないです(汗。

引用:

この手の話は、前提が曖昧だと収束しないと思うので、Seiga Alisueさんが
挙げた言語に絞った方が、Seiga Alisueさん自身が知りたい情報が多くなるの
ではないかと思いますよ。PHP、Perl、Rubyなど、スクリプト言語の元気が良い
ご時勢ですしね。利点、欠点も、用途によっては利点も欠点になってしまうこと
もあるので、どういった観点から見た場合の利点、欠点というのも提示された
方が良いですよ、話がブレなくなって。


そうですね、最初のじゃちょっとわかりにくいです、反省。わかりやすいように書く努力!

1, Windows開発者なので開発環境はWindowsで、加えてIDEがあるものとして考えさせてもらいます。(結果Visual Studioがあるものとして)
2, 新しい言語が出てきてもわからないので VB C++(C++/CLI) C# Javaに限定して教えて(論議して)もらいたいです。
3, ローカル・ネットワークと状況を分けて利点欠点あげてもらえるとわかりやすいかも、ネット上で使うものとローカルで使うものは違いますしね。
# そういえば将来ローカルで使用するソフトウェアがネット上から利用できる形になってインストールとかが必要なくなるんじゃないか? という話を聞いたことがありますが、あれはJavaのことを強く言っていたものですよね?実際問題セキュリティなどもありますし無理なような気がしますが。

こんな感じでお願いしますm(_ _)m足りないところがあれば付け足します。

引用:

がっつり最適化されたCのコードには勝てないが、そうでなければ勝てる見込みあり。
javaは実行時にHotSpotによって最適化をかけることができるので、プラットフォームに即した最適化を行えば、Cのコードといい勝負になるかもしれない。


初耳。それは事実上がっつり最適化されたCのコードってのは難しいってことですよね?たしかにそりゃそうだ!それでもそこで早くなるものなんですかJavaで、Javaのイメージというのが『実行速度が遅い』というものだったんで・・・意外。

引用:

まず構文について。比較している C++, C#, Java が、元々派生元が同じなので構文が似ているだけ。それらと派生元が違う VB を比較すると、構文が独特になるのは当たり前。COBOL(COBOL.NET)や FORTRAN, Prolog, LISP などは、ご存じ?PL/SQL などやると、また面白いことになるんだけど。


たしかにそうなんですが、実際いま『Windows用ソフトウェア作成』で使われている言語の中で言えば独特なのでは?と、僕が『Windows用』って言ってなかったのがすっごく悪いんですけど(苦笑…。ちなみにCOBOLやFORTRAN,LISPは名前だけなら…という程度(汗。

引用:

次、ネイティブコード。少なくとも、VB 6.0 では Windows ネイティブコードが生成されます(Delphi 対策)。もっとも、VB.NET になって、共通言語になっていますから、もう一度コンパイルするという意味で、ネイティブコードではなくなっていますが、それを言っては C++/CLI, C# も同じ。


ここは僕の脳内比較をVisual Basic.netとVisual Basic6.0を比べてネイティブコードがはけなくなっちゃったなぁ…というそれにC#にもネイティブコードをはけないと書くべきでしたorz C++/CLIはC++を使えばはけるので一応はけるってことで。

引用:

引用:

【Visual Basic】
・同じ.net frameworkで動くものとしてC#でできることができない場合がある。
【C#】
.net frameworkの全機能を利用可能


ここ、意味がわかりませんでした。いったい、なんのこと?


Visual Basic.netを使わないので具体的な例ってのが挙げられないですが、C#は.netframework用に作られた言語なので全機能を利用できるがVBは構造上できない機能があるって聞いたことがあります。機能ってわけじゃないけどVBじゃunsafe使えませんしusingもなかったはず(新しいので使えるようになりましたっけ?)

引用:

CLI は、OS を提供するのではなく、ソフトウェアの実行環境を提供するものなので、CLI の基盤である OS の状態を知るには、当たり前のことだと思いますが?
 ってか、System.Windows.Forms が、Windows 完全依存なのに、.NET Framework の中に用意されているのが、あるいはおかしいのかも。System.XWindow 名前空間を用意しろって?


利用者側としてはたとえばMIDIの処理・MP3の処理などファイル的には基本的にOSに依存しない(しないですよね?)ものの処理などもAPIを使ってやらなきゃいけないので、できれば

PlayMidi って関数が.net frameworkで用意されていて、内部的にWindows用の.net frameworkならWindowsAPIを呼び出してマック用ならマック用の関数か何か(マックってAPI???)を呼び出すみたいに、プラットフォームが変わっても.net frameworkが処理の変更の面倒を見てくれるといいなと。APIを使わないでMIDIを鳴らすのは無理な気がします(自分の技術的面も含めて)あくまでMIDIは例なので詳しいことを聞かれてもわかりませんが…(友人が詳しくて、APIの嵐だと愚痴ってたのを今思い出しただけなので)

# まぁWindowsでしか開発を行ってないですし、プラットフォーム変わってデバッグ頼まれても困るんで、いいっていえばいいんですがね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-10 23:18
引用:

Seiga Alisueさんの書き込み (2006-10-10 22:39) より:

1, Windows開発者なので開発環境はWindowsで、加えてIDEがあるものとして考えさせてもらいます。(結果Visual Studioがあるものとして)
2, 新しい言語が出てきてもわからないので VB C++(C++/CLI) C# Javaに限定して教えて(論議して)もらいたいです。
3, ローカル・ネットワークと状況を分けて利点欠点あげてもらえるとわかりやすいかも、ネット上で使うものとローカルで使うものは違いますしね。
# そういえば将来ローカルで使用するソフトウェアがネット上から利用できる形になってインストールとかが必要なくなるんじゃないか? という話を聞いたことがありますが、あれはJavaのことを強く言っていたものですよね?実際問題セキュリティなどもありますし無理なような気がしますが。

こんな感じでお願いしますm(_ _)m足りないところがあれば付け足します。


なんか、上の方のは、私が原因かなぁ?(苦笑)



引用:

引用:

まず構文について。比較している C++, C#, Java が、元々派生元が同じなので構文が似ているだけ。それらと派生元が違う VB を比較すると、構文が独特になるのは当たり前。COBOL(COBOL.NET)や FORTRAN, Prolog, LISP などは、ご存じ?PL/SQL などやると、また面白いことになるんだけど。


たしかにそうなんですが、実際いま『Windows用ソフトウェア作成』で使われている言語の中で言えば独特なのでは?と、僕が『Windows用』って言ってなかったのがすっごく悪いんですけど(苦笑…。ちなみにCOBOLやFORTRAN,LISPは名前だけなら…という程度(汗。


 少なくとも、COBOL については COBOL.NET というものもあり、Pascal については Delphi.NET というものもあり、VisualStudio 上でコーディングできるかどうかは知りませんが、Windows アプリケーション開発用として、存在しています。
 また、PL/SQL というのは、Oracle 用のストアドプロシージャ用言語です。コレは Windows 用アプリケーションとは異なりますが、ある意味、知っていないと Windows アプリケーションを作れないこともあります。

 N60-BASIC, Z80, CASL, N88-BASIC, C Language, FORTRAN, COBOL, C++, VB.NET, VBA, Java, C# をさわったことがある身としては、VB だけが「特異」とされると、違和感を覚えます。
(CASL って、おい)
 Borland ファンとしては、IDE として VS だけに限定されると、悲しい。。。Intel もコンパイラ開発しているんよ。



引用:

Visual Basic.netを使わないので具体的な例ってのが挙げられないですが、C#は.netframework用に作られた言語なので全機能を利用できるがVBは構造上できない機能があるって聞いたことがあります。機能ってわけじゃないけどVBじゃunsafe使えませんしusingもなかったはず(新しいので使えるようになりましたっけ?)


 コレは、言語が作られた目的を考えましょう、ということで。
 言語の善し悪しを語るには、作られた目的を抜きにして語れないと思います。
え?善し悪しを語るわけじゃない?失礼しました。



引用:

利用者側としてはたとえばMIDIの処理・MP3の処理などファイル的には基本的にOSに依存しない(しないですよね?)ものの処理などもAPIを使ってやらなきゃいけないので、できれば


 マルチメディア系まで、手が回っていないのか、あるいは、明確に実装を避けたのか、それはわかりませんね。DirectX の方に担当させようという魂胆かもしれません。
_________________
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2006-10-10 23:42
言語がどうなっていくのかという 問いかけですが
究極的には コンポーネントをポトリ ペタリと落として
プロパティをチョチョと設定という形になるのでは

そして富豪的プログラミングが当たり前になってきて 細かいことは見向きもしないと

こういったスレは定期的に上がりますが、すぐに消えていくんだな!
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-11 00:03
ものすごい本題と違う話をしますが、

引用:

もちろんゲームならCとかアセンブリ(相当古いけどFF7はアセンブリに似た独自言語だったとか、昔聞いてびっくりした覚えがある、相当書きにくいだろうなぁって - 使用言語VB時代)


プレイステーションのハードの事は良く知りませんが、多分シェーダ言語の事じゃないかな?全部が全部独自言語を使うなんて狂った事はさすがにしないでしょうね。(多分ですよ)

引用:

利用者側としてはたとえばMIDIの処理・MP3の処理などファイル的には基本的にOSに依存しない(しないですよね?)ものの処理などもAPIを使ってやらなきゃいけないので、できれば


「OS に依存しない」というのをどういう意味で使ってるのかを掴みきれていませんが、OS に依存しますよね。音を出しますから。

OS とドライバが音源ハードの違いを隠してくれて、API を呼ぶだけで簡単に音が出せてます。

引用:

PlayMidi って関数が.net frameworkで用意されていて、内部的にWindows用の.net frameworkならWindowsAPIを呼び出してマック用ならマック用の関数か何か(マックってAPI???)を呼び出すみたいに、プラットフォームが変わっても.net frameworkが処理の変更の面倒を見てくれるといいなと。


そうなるといいですねぇ。FreeBSD の CLI ってどこまで実装されているのかな。

因みに API とは、対象のシステム(この場合はOS)が公開しているインターフェースの事を指すので、Windows 専用の言葉じゃありません。「プラグイン機能があるエディタの API」という使い方もします。

_________________
囚人のジレンマな日々
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-10-11 10:01
引用:

Seiga Alisueさんの書き込み (2006-10-10 22:39) より:

たしかにそうなんですが、実際いま『Windows用ソフトウェア作成』で使われている言語の中で言えば独特なのでは?と、僕が『Windows用』って言ってなかったのがすっごく悪いんですけど(苦笑…。ちなみにCOBOLやFORTRAN,LISPは名前だけなら…という程度(汗。


"Windows 用" という意味では、むしろ VB こそ Windows 用のプログラミング言語になると思います。

無論、C# もそうなのですが、少なくとも、
「Windows 用のプログラミング言語の中で "VB は独特"」
ということはないと思っております。

C# の方が好きなのですが、かといって VB が独特だとは思いません。

引用:

【Visual Basic】
・同じ.net frameworkで動くものとしてC#でできることができない場合がある。
【C#】
.net frameworkの全機能を利用可能


".NET Framework で" C# にできることが VB にできない というものが思いつきません。

引用:

C#は.netframework用に作られた言語なので全機能を利用できるがVBは構造上できない機能があるって聞いたことがあります。機能ってわけじゃないけどVBじゃunsafe使えませんしusingもなかったはず(新しいので使えるようになりましたっけ?)


VB7 以降の VB (いわゆる VB.NET) も .NET Framework 用に作られた言語でしょう。
unsafe は確かにありませんが、これは .NET Framework に関わる部分なのでしょうか?
(ちなみに、Using は、VB8 からサポートされました)

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

Jittaさんの書き込み (2006-10-10 23:18) より:

少なくとも、COBOL については COBOL.NET というものもあり、Pascal については Delphi.NET というものもあり、VisualStudio 上でコーディングできるかどうかは知りませんが、Windows アプリケーション開発用として、存在しています。


COBOL.NET と言いますか .NET COBOL であれば、
Visual Studio の IDE にインテグレートできます。

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

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