- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/11(金) 04:21:10 ]
- これからプログラミングを始める初心者の人に言語を薦めるスッドレ
質問者の方へ どのプログラミング言語を最初に覚えるべきかは なぜプログラミングを始めたいのか、何を作りたいのかによってまったく変わってきます。 なんとなく、でもかまわないので動機、用途、使っているOSを明記しましょう。 各言語の特徴はこちらを参照 Wikipedia Category:プログラミング言語 ja.wikipedia.org/wiki/Category:%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E Part9 pc11.2ch.net/test/read.cgi/tech/1210941509/ Part8 pc11.2ch.net/test/read.cgi/tech/1208186034/ Part7 pc11.2ch.net/test/read.cgi/tech/1200807067/ Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/ Part5 pc11.2ch.net/test/read.cgi/tech/1187886538/ Part4 pc11.2ch.net/test/read.cgi/tech/1177285633/ Part3 pc11.2ch.net/test/read.cgi/tech/1152778344/ Part2 pc8.2ch.net/test/read.cgi/tech/1122205164/ Part1 pc8.2ch.net/test/read.cgi/tech/1034505166/
- 136 名前:デフォルトの名無しさん [2008/07/13(日) 08:21:17 ]
- そんな事無いと思うよ。
C#はC++程度に十分難解と思う。 Sun やマイクロソフトが開発したライブラリを使う事で開発が楽になるが。 そういったライブラリを取り払ったとき、C++もC#も同等くらいの難易度の言語では_
- 137 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:25:51 ]
- >>136
貴方がそう思うのは自由だが、多くの人の賛同を受けられるかは疑問である。
- 138 名前:デフォルトの名無しさん [2008/07/13(日) 08:33:38 ]
- C++でやれる事は、ほとんどC#でもやれるんでは?
C#の文法、機能など 組込み型、組込み演算子、組込み型変換 条件分岐、反復処理、配列、関数、列挙型 構造体、クラス、コンストラクタとデストラクタ 実装の隠蔽、プロパティ、静的変数・静的メソッド 演算子のオーバーロード、インデクサ、値型と参照型 継承、多態性、コンストラクタ内の仮想メソッド呼び出し 抽象メソッド、抽象クラス、例外処理、リソースの破棄 プリプロセス、名前空間、実行時型情報、デリゲート オーバーフローのチェック、可変長引数、引数の参照渡し foreach、マルチスレッド、イベント
- 139 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:38:42 ]
- その程度の理解では、話す気になれないのでここで終わる。
- 140 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:40:04 ]
- >>135
その分類はどうかと思うがね 計算機の能力が上がってきたから、最近の言語がより高水準な方向に進んでいるのは確かだろうけどさ 高水準言語で速度が出ないかと言われると別の話になると思う C/C++が高速なのは、ネイティブコンパイルが前提で、かつ静的型付けされているから 低水準だからって理由は、正直そこまで性能に寄与しているとは思えない Dは最新の言語仕様を詰め込んでるくせに、マイクロベンチマークではC++に匹敵しているし Javaも動的最適化技術の進歩でだいぶ速くなってる
- 141 名前:デフォルトの名無しさん [2008/07/13(日) 08:44:30 ]
- 速度は、コンパイラの性能だろ。
たとえ元の言語がN88BASICだとしても、うまくコンパイルすればC言語を超える ことだって可能。
- 142 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 08:49:58 ]
- >>134
例えば手続き型言語は深層を表現していると言っていいのかなぁ。
- 143 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:00:58 ]
- >>142
深層は、連想記憶によるメタ的な学習の集合が思考であると思うが、説明できない。 手続き型は言葉よりは少しだけ深いと思われ。
- 144 名前:デフォルトの名無しさん [2008/07/13(日) 09:03:48 ]
- >>137
だね 文法そのものは、そう複雑じゃないやん class使って実用的なアプリ書くってのとは、話は別ね #あと delegate,refraction 駆使してってのもね 最初はこっち系の言語から始めるのが いいんじゃない? VBAとか仕様小さいから、楽だけど これどまりになると馬鹿になるよん #いや excelベースで何かやるときは、早くて楽だけどね ただ、C#だとMS系だけが全てになりそうなのが、難点かな
- 145 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:14:15 ]
- >>135
>純粋関数型言語 これ、なんで純粋が付いているの?
- 146 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:21:09 ]
- >>143
×説明できない。 ○納得できるような説明ができない。
- 147 名前:デフォルトの名無しさん [2008/07/13(日) 09:30:29 ]
- まぁC++もたのしいぞ?
- 148 名前:デフォルトの名無しさん [2008/07/13(日) 09:41:27 ]
- C#やるならC++でもいいのでは?
JAVAはSwingついたりしたとは言えもっさりしてる
- 149 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:41:40 ]
- C++をお勧めする。
なんか難しい言語を使ってる俺かっこいーって思えるから。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:55:49 ]
- いくら演算の性能が上がっても人間の欲求も同時にあがるので速度は永遠に重視されます
- 151 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:56:44 ]
- さくさくっとGUI作りたいならJavaだな。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:57:54 ]
- JavaとC#どっちが簡単ですか?
- 153 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 09:58:38 ]
- VB6
- 154 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 10:15:27 ]
- HSP
- 155 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 10:44:11 ]
- >>148
C++には標準のGUIがないから却下
- 156 名前:デフォルトの名無しさん [2008/07/13(日) 10:59:39 ]
- Javaより全体的にC#のが良いと思うのになんで広がらないのかね
C#薦めると微妙な顔されるし
- 157 名前:デフォルトの名無しさん [2008/07/13(日) 11:12:53 ]
- C言語はttp://wisdom.sakura.ne.jp/programming/c/index.html
ここでよいでえすか? いきなり本読んだ方がいいですか
- 158 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 11:23:29 ]
- 分かるのならそれでも良いが、紙の本ほうが読みやすいとは思う
Cならいくつも書籍が出てる
- 159 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 11:23:30 ]
- >>157
そのサイトみて、わかりやすかったらそれでいいんじゃね?
- 160 名前:デフォルトの名無しさん [2008/07/13(日) 11:33:02 ]
- >>152
単体なら、あまり変わらない気がする・・・ PGの参考になりそうな本は、圧倒的にJavaが多い気がする Web系考えてるんだったら、C#の方が買う本少なくていいかもw #自分も今勉強中>C# >>156 eclipse の setter/getter を一気に作成する機能がないからじゃw>VS.Stuio #class 書く時の工数が全然違うのに
- 161 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 11:38:02 ]
- >>156
全体的にちょびっとづつよくても対したことはないから。 JavaとC#じゃ歴史が違うし。
- 162 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:09:01 ]
- C#のネイティブコンパイラが使えるようになってきたら、起動も早くなって良いのだけどね
MSとほぼ同時に開発するのは難しいだろうけど、他のOSでも使えるようになるし頑張って欲しいね JAVAはGUIが、どうしようもない やっぱり、過去は切り捨てて、次へ行くのが正しいと思う。趣味なら。
- 163 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:14:23 ]
- >>162
>C#のネイティブコンパイラが使えるようになってきたら、起動も早くなって良いのだけどね それじゃあjavaのまねをした意味が・・・ JITの話もあるんだけどね・・・
- 164 名前:デフォルトの名無しさん [2008/07/13(日) 15:15:44 ]
- C++でGUI開発できるようにしてほしい C#みたいに
- 165 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:50:15 ]
- C++がGUI得意になったら俺C++以外使うこと無くなるだろうな
- 166 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:56:36 ]
- そもそもの生い立ちが違うしなあ
C++ってCの延長だし、C#はJavaやVBなどが参考になってできたような物だし。 どう考えてもGUI周りはC#のほうが作りやすいのは仕方ない
- 167 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 15:59:18 ]
- C#が、あまり広まっていないのは、アンチMSが多いのと、UNIX系厨がはびこっている為。
昔のMAC厨は死んでいる。
- 168 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:03:59 ]
- >>167
C#はゲームのツール作りには使ってるが、後発言語の割りにMSの悪い面がでちゃってて 使いにくさはあるのは事実。 C#のバージョンを重ねる間に言語の仕様が変わっててサンプルをネットで拾ってきても 初心者がいきなり使えないとか。 じゃあMSDNみればいいじゃんというかもしれないがMSDNがこれまた・・・ しかもXNAに移行しちゃったのでMDXの資料関連は中途半端に放置とかさ・・・ 新しいことをやるのはいいけど、子供じゃないんだから散らかし放題はよくないよ。
- 169 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 16:13:39 ]
- >>168
ゲームにはあまり向かない言語ではあるな。(趣味のゲームは別、Javaよりは向いている) >C#のバージョンを重ねる間に言語の仕様が変わっててサンプルをネットで拾ってきても >初心者がいきなり使えないとか。 これに付いては、どのメジャー言語も同程度に持っている。しかし、固まって欲しいのは同意見かな。 俺は今後C#が延びると思ってるよ。ただネット上でのプログラミングはMSは弱い。 頑張ってはいるんだけど、Windowsが足を引っ張ってるかな。 世界がネットサービスに移行しているので、MSはその点で今は負けている。(多分勝てないかも
- 170 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:12:10 ]
- なんでC#がメジャーでないって前提で話が進んでるんだ(^^;
- 171 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:29:57 ]
- >>170
メージャーだけどなんかこういう雰囲気あるよね。 ・ちょっとしたツール作るのはいいよね。 ・でも場合によってはVB6かVC++に走るよね。
- 172 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:44:46 ]
- 要するにこういうイメージってことね
VC++ > VB6 >>> C#,VB.NET >>> C++/CLI VB.NETももっとVB6のようになるといいし、C#も今後仕様が膨らむだけだから、減らすことも考えて欲しい MSには悪い面もあるが、当然良い面もある。漏れはMSならやってくれると信じてるぞ!
- 173 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 17:50:29 ]
- 初心者の俺は話しについていけない><
- 174 名前:171 mailto:sage [2008/07/13(日) 17:57:45 ]
- >>172
そうそんなかんじ まずネットとか携帯だとJavaとかになちゃうのでそもそもの出番ないし となると知ってる知らないという意味でのメジャーはそりゃC#は有名だろうけど 枯れてるVB6やVC++のほうが圧倒的にネット上で手に入る情報は多いし 多くの資産がこれで作られてるケースが多い。 質問板で見かけるのも過去の資産をC#なんかに移植してる・・という程度で よく使われるメジャー言語ではないと思う。 それぞれの分野に適した言語が多数あるしね。 なのでC#=ちょっとしたツールか、企業が仕方なく過去の資産を移植する際に 使ってる言語ってことで・・・
- 175 名前:デフォルトの名無しさん [2008/07/13(日) 18:34:13 ]
- >>172
せっかく使えるようなったんだから break と continue は残してくれw
- 176 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 19:49:05 ]
- >>172
これはVB6厨の妄想だろ。
- 177 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:08:19 ]
- 従来VB6でやってたような分野はもう、C#かVB.NETでやってるのが普通でしょ。
ネットの分野でも拡張子がaspxのところってフツーに見るし。 まあ、いまだに新規の案件をVB6で提案してるところとかもあるけど、そういうのは、なんかもう未来がない感じ。
- 178 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:33:46 ]
- で、ここに多くいる純粋関数型言語厨の方々はHaskellとかCleanとかでバリバリGUIアプリ作ってるの?
HaskellはwxHaskellとかあるしCleanは言語にGUI機能あるからいいんじゃない?
- 179 名前:デフォルトの名無しさん [2008/07/13(日) 21:10:20 ]
- >>177
小さい&Excel出力があると、そうでも無いよ #.NETからの遅さを考えると、耐えられないところもあるw #いや 使うと楽なのは分かってるけどね>特にDB回り #常駐でそういうのが多いってのもあるけどね >ネットの分野 Javaでやるよ 手抜きでPHPも可だけどね
- 180 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:21:22 ]
- なにそれ、コメントのつもり?
なぜ全角なんだ?
- 181 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:42:53 ]
- フォーチュン企業1000のサイトの7割がIIS。apacheは2割。
大企業では.net系の言語フツーに使われてる。
- 182 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:46:58 ]
- >>179
「メジャーか?」とか「未来はない」とかって話題の反論に「遅いところで仕方なく使われてる」みたいな ニッチっぽい使われ方をだして反論してもしょうがないだろ。
- 183 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:56:27 ]
- >>180
日本語のコメントだからじゃないか?w >>181 大企業とかの方が.NETは多いだろうね マシンパワーがあって、お金があるとこだろう VB6が現役とは、思えないけど、.NETが主役とも思えない 時代はクライアントはC/C++、ネットはJAVAとPHPだろう ただ.NET差し引いても、C++よりC#が良いってのは分かる気がする
- 184 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:37:00 ]
- 市販されてるようなアプリはC++だろうけど、業務で使われてるDBのクライアントなんてC++で作ってるところなんてないんじゃないの?
レントゲンとかMRIとかの画像を処理するようなシステムとか、電力会社のリソースを管理するシステム(画面にケーブルの接続状態をグラ フィカルに表示して編集)はVC++で作ってたけど、そういう一部の分野以外は。
- 185 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:52:29 ]
- 0:00になるたびに、スレタイに合わせて流れの方向性がリセットされるとか、
せめてそういうのがあればいいのだけど。
- 186 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:56:44 ]
- >>184
業務だと.NETいれないといけないし、98や2k使ってるとこもあるだろうしね そんなこんなでVB6かVC6に・・・業務アプリは、何年も遅れてるからね まあJAVAでブラウザWEBベースで作られるより十分マシだろうw そうでなければJAVAだって軽いし、十分実用的な速度だと思うけどね
- 187 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:10:35 ]
- webアプリも、がちがちに作ってあるところは、ブラウザの指定は当然として、セキュリティー設定はどうしろとか、
どこそのから、このファイルをもってきてインストールしろとか、導入の手順書が何ページもあったりするもんな。 そんなんだったら、普通のアプリとか、リッチクライアントとかでいいじゃんって思うんだけど。
- 188 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:16:38 ]
- >>187
そこは旦那、流行のweb2.0でいってましたってことでしょ。 営業さん、SEさんも勧めてましたし
- 189 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 00:30:07 ]
- 当座の目的は簡単なPCアプリ制作です。
将来性を見て、1つ選ぶならどれでしょう? Visual C# Visual C++ Visual Basic
- 190 名前:デフォルトの名無しさん [2008/07/14(月) 00:36:15 ]
- Visual C#
- 191 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 00:38:25 ]
- >>189
すぐに結果を出したければVB.NET ちょっと勉強に時間が取れるのならC# 気長に取り組めるのならC++ 個人的にいちばんお勧めはC# けっこう大規模なクロスプラットフォームアプリも.netっつーかMonoで 書かれていたりもするんだよね。
- 192 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 06:51:10 ]
- >>187
開発にかける総コストで削られると全部作れないので仕方が無い 開発者のコストは直接計上されるから高く見えるけどオペレータの負担はあんまり見積もりに反映されない 世の中全ては金を出す人たちの心がけ次第なんですよ
- 193 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 07:48:28 ]
- >>178
sumim.no-ip.com:8080/wiki/807 ここみておもしろいなと感じたのだけれども 処理系に、GUIの機能を盛り込むと、クライアントを柔軟に 組めるようになるし、良い。 でも把握しておかないといけないラベルが増えて MFC の世界に近い世界? が展開されることになって やはりある程度の段階で切り分けないといけないような気もする…。 IDE で解決するか Documet で解決するか、みたいな話になって きて次第と言語処理系の領域から離れてゆかざるを得ないというか 現実って、だいぶと汚い世界なのかもしれん、とも感じる今日この頃('A`)
- 194 名前:デフォルトの名無しさん [2008/07/14(月) 08:40:39 ]
- ウイルスの作り方から対策
最終的にはスマンテックへ入社するには?
- 195 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 11:42:26 ]
- まず社名をしっかり覚える
- 196 名前:デフォルトの名無しさん [2008/07/14(月) 12:10:10 ]
- >>191
同意かな vb.netの書籍はこれっていうのがなくて(コントールの使い方だけが多い) #MSの言語仕様本以外、generic説明した本見たこと無い気がする コードの書き方はプログラミングC#見ながら勉強してまつ
- 197 名前:196 [2008/07/14(月) 12:36:33 ]
- デザパタ的な資料はJavaの方が多い印象があるし
ライブラリのサンプルはC#のみの場合が多かったりするので オライリーのプログラミングC#2.0 位の知識は押さえた方が いいんじゃ無いかと思う #あくまで個人的な感想だけどね
- 198 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:35:04 ]
- >>189
eclipse/netbeansでjava開発が一番いい Visualうんたらに頼るとろくなことがないぞ
- 199 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:04:00 ]
- 一番って
まずどっちかに絞ってから言えよ
- 200 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 16:12:48 ]
- >>189
Visual C# がまじお勧め。 1. Visual Studio 2008 Express Editions は ダウンロードからインストールまで楽ちん Visual Studio 2008 Express Editions www.microsoft.com/japan/msdn/vstudio/Express/ 2. 一通りここのプログラム動かしてみて雰囲気つかもう プログラミング チャレンジ スクエア www.microsoft.com/japan/msdn/student/challenge/ 3. いけそうだと思ったら好みの入門本を入手していろいろプログラム書いてみる C#の文法や.NET Framework はいきなり全部覚えようとせず、 必用に応じてリファレンスを参照しよう。 ここからいろいろたどれるはず。 学習用資料 www.microsoft.com/japan/msdn/vstudio/express/learn/default.aspx
- 201 名前:デフォルトの名無しさん [2008/07/14(月) 20:39:02 ]
- >>198
何々じゃなきゃ と言った時点で・思考停止・だと思うよん 回りに使ってないといきなり eclipse はちょっときついかも まぁVS.Studioも同じだけどね
- 202 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 20:48:42 ]
- ちょっと時間差だが関数型について。
関数型が人間の思考に沿ったものかどうか、というのは分からんが、 「あるべきプログラミングの姿」であることは確かだと思う。 特にHaskellのような「純粋」と呼ばれる関数型言語は、参照透明性を 保証しているわけだけど、これはプログラミングのあるべき姿の最も 重要な点じゃないかね。 また、関数型は「宣言的」だ。この点も、命令を順序正しく記述する 言語よりもプログラミングのあるべき姿に近い。 JavaはもうWeb系などでは過去の言語になりつつあると思うけど、 その後継者と言われているRubyやPythonは関数型に近い書き方が できるようになっている。
- 203 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:20:15 ]
- 一部の選ばれし職人だけが使える最高の言語よりも
誰でも使えて、そこそこの生産性を上げることのできる言語の方が 戦争では有利 だから諸君、HSPを広めるべきだ。
- 204 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:35:34 ]
- 一方DoDはAdaを使った
- 205 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:45:47 ]
- HSPはもうちょっと近代的になってもいいと思う。他の言語にも移行しにくいし。
いっそHSRubyとかにして
- 206 名前:デフォルトの名無しさん [2008/07/14(月) 21:58:01 ]
- c++のクラスは、javaのobjectのような共通の基底クラスを持たないらしいのですが
このことについて詳しく説明していただけませんか?? またこの利点と欠点を教えてくださるとうれしいです。
- 207 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:01:50 ]
- 関数型言語厨と言わせていただこう
- 208 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:17:35 ]
- >>206
なぜこのスレで?
- 209 名前:189 mailto:sage [2008/07/14(月) 22:18:43 ]
- 各位殿
回答ありがとうございました。 早速、C#に着手します。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:26:45 ]
- >>202
どうして参照透明性がプログラミングのあるべき姿なのか理解できない。 現実世界ほとんど全てのコンピュータはレジスタやらメモリやらの内容を書き変えて動いてるわけで、 コンピュータに命令を送るのがプログラミングならその形態に近い方がより プログラミングのあるべき姿なんじゃないか? あと、現実世界のアプリをHaskellやらで書くときも do { hoge ; huga ; bar } なりhoge >> huga >> barなりで命令の順序を気にして書くわけだが、その点についてはどうか。 あと、それらで型を合わせる為にliftMとかをしまくるのが本来のプログラミングの姿だと言いたいのか?
- 211 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 22:49:36 ]
- 基本的にはプログラマの自由を制限してコンパイラ屋と数学屋が楽をするのが目的なんだよね
トレードオフを考えたくないから、自由を捨てると幸せになれるとか言い出す
- 212 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:25:09 ]
- >>210
ここ数年のIntelの高速化戦略をてきとーに言うと、処理の並列化にある。 そのためのパイプライン、VLIW、ハイパースレッディング、マルチコア化であるんだけど、 参照透明性があると、例えば functionA ( functionB, functionC ) というプログラムがあったときにfunctionBとfunctionCを同時に実行できる。 つまり、アセンブリ言語でキツキツに書くよりもより自然に 処理を並列化=高速化できちゃう。 だから、アセンブリ言語よりも関数型言語の方が、より計算機の都合に即した形になってる。 って隣のたろーくんが言ってました。
- 213 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:41:19 ]
- >アセンブリ言語でキツキツに書く
この表現が既に、コンピューターの世界の人ではない。 ぷっ
- 214 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:42:56 ]
- なんで?
- 215 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:56:16 ]
- あんまり関係ないけど、Makefileって関数型言語だよね?ね?え、違う?
- 216 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:58:38 ]
- >>212
並列化は、別に関数型でなくてはいけないわけではない。いろいろな方法が有る。 現実世界を見てみよう。lispから続く長い歴史の中で関数型はプログラミングで広く 使われていない。なぜか、単に使いやすくないのだ=人間にとって思考しやすい ものでもなく、コンピューターに即してるわけでもない。 貴方の言うように良ければ、もっと広まってしかるべきでは。 昔、Lispマシンと言う関数型を直接実行するコンピューターがあった。しかし、成功しなかった。 何故かを考えればおのずと答えがわかるのではないか? それでもなお、最も良いと主張するのであれば、それは宗教だ。教祖となって布教しろ。 宗教論争ほどばかばかしいものは無い。
- 217 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:03:03 ]
- >>214
基本的には必要な命令を集めた後ツールで並べなおして効率化する でも特定プロセッサに最適化するときは人手をつぎ込むのが効く
- 218 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:03:06 ]
- プロを目指す初心者には是非読んで欲しい
なぜ関数プログラミングは重要か www.sampou.org/haskell/article/whyfp.html
- 219 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:16:12 ]
- 初心者に読めるはずがない
- 220 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:31:38 ]
- >>216
特定の(高級)言語を直接実行するコンピュータで成功した例を知らないので何とも言えませんな。 Javaマシーンだって失敗してる。 関数型マンセーって言う気は無いけれど、憎む必要も無いよ。 好きな言語使えよ。 俺はHSP使うから。
- 221 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:34:28 ]
- 俺はVBA使うぜ
- 222 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:47:55 ]
- 俺はJava
- 223 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 00:49:19 ]
- おれもVBA
- 224 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:19:18 ]
- >>216
lispとかLispとかコンピューターとか書いてると、>>213みたいな子に「ぷっ」って言われちゃうよ。 あ、>>213がコンピューターって書いてるかw
- 225 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 01:34:02 ]
- 俺自身は、参照透明性のある関数型言語と手続き型言語を使い分けるといいと思う。
具体的には、 ボタンを押したとか 手続きそのものの状態を保持するところはやはり手続き型で、 その他の処理部分は生産性の良い関数型言語で。 #普段は一般帰納関数がお相手
- 226 名前:202 mailto:sage [2008/07/15(火) 03:52:50 ]
- >>210
命令型言語であっても、不具合が少なくメンテナンスが容易な コードはある特徴があって、それは変数のスコープが小さく、 特定アドレスの値を使いまわさずに処理をしているコードだ。 計算機の処理速度が遅く、メモリやディスクが高価だった時代は、 いかにして限られたリソースを使いまわして様々な動作をさせるか、 というのがプログラミングテクニックだったが、今は違う。 ある時点から「富豪的」っていう言葉が流行ったのは知ってるだろう? 特定アドレスの値を使いまわすことによって難読化したコードよりも、 再計算させることによって見通しのよいコードを選択する、という。 命令型言語において破壊的代入は「文化」みたいなものだけど、 これは非常に見通しの悪い、殆ど正しく動作することを保証でき ないコードを生成する原因でもある。これを避けていったときに 必然的に至るコーディングスタイル、これが関数型言語なんだな。
- 227 名前:デフォルトの名無しさん [2008/07/15(火) 04:22:00 ]
- C++とC#でいいよ
どんなに高級でも使えなければ意味がない
- 228 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:37:58 ]
- >>227
習得のやさしさでは関数型だろう。
- 229 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:43:15 ]
- >>224
俺は意地でもコンピューターで通すぜ。 社名にコンピューターが入ってる会社は、いずれブリヂストンみたいに見えるんだろうか。
- 230 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 04:45:45 ]
- コンピューターだとIPSJに出せない
- 231 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:04:34 ]
- はっきり言って、関数型が理解できないような人間が
プログラムを書いてはいけないんじゃないか。 そういう連中は不具合生産機&他人に尻拭かせるのが 常で、結果的には存在自体が高コストだ。 初心者の方々はHaskellのような関数型を学んで、理解でき なかったらさっさと諦めなさい。
- 232 名前:デフォルトの名無しさん [2008/07/15(火) 05:07:19 ]
- マイクロソフトが主要言語に持ってこない限りは、関数型が日の目を見る事はない。
そんな事は起こらないのでやるだけ無駄と思いますよ。
- 233 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:12:01 ]
- F#とか、研究はやっているらしい
まあ、マルチパラダイム言語でも関数的な書き方をサポートするものが増えてきてるし 今後、問題によっては関数型が(部分的に)適用されることはあるんだろう
- 234 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:15:15 ]
- >>233
二十年以内に命令型は消え去るよ。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:18:33 ]
- 20年は無いw
1950年代開発のFortranやLispがまだ生き残ってるってのに
- 236 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 05:24:03 ]
- >>234
関数型で動くCPUをつくってからそういうことは言うもんだ
|

|