1 :デフォルトの名無しさん2011/02/25(金) 19:05:24.81
またその理由は?(やりながらお金儲けできる、アイデア次第で色んなものを作れる、など)
6 :デフォルトの名無しさん2011/02/25(金) 20:02:32.17
Haskell が楽しい

何かを処理するために関数を実行するんじゃなく、
何かを得るために関数を適用するという考え方に気づくと、
Haskell が本当に楽しくなる
8 :デフォルトの名無しさん2011/02/25(金) 20:34:42.71
JavaScript
他のメジャーな言語体系とはクラスの作り方とか、一線を隔していて、面白い。
最初はキモくて仕方なかったが、慣れるとクセになる。
10 :デフォルトの名無しさん2011/02/25(金) 22:10:40.32
Perl: 他人の書いたコードを解読した時、俺はシャンポリオンを超えたと思った。
11 :デフォルトの名無しさん2011/02/25(金) 23:19:35.93
Pythonだろ
美しさがあるから書いていて気持ちがいい
ライブラリもいっぱいあるから、楽にいろいろ作れる
12 :デフォルトの名無しさん2011/02/25(金) 23:33:30.65
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
13 :デフォルトの名無しさん2011/02/25(金) 23:34:01.45
最近、Pythonで小物を書いたりして遊んでる。楽しい。
今までスクリプト関係は全部、shellとawkで片してたけど、覚えようという気力が湧いた久しぶりの言語。
14 :デフォルトの名無しさん2011/02/26(土) 00:08:45.84
>>8
お、俺がいる。
JavaScript には圧倒的な自由があるんだよね。
既に動いているプログラムに対して後付けで何でも出来る、
だから今何やっても後で何とかなる、自分のレベルで好きに
手を動かせる。リスクフリーの、最高の自由がある。

しかもプログラムの動作環境は無限大。地球の大きさだけ
適用範囲の広がりがある。インターネットの広大な宇宙の中で、
唯一選ばれた至高の言語。ウェブアプリ界の絶対的支配者。

少し前までは実行速度が遅いというペナルティがあったけど、
今じゃ Python や Ruby よりも断然速いし、むしろ先頭切って
突っ走ってる感がある。

やってて楽しい言語なんて JavaScript を置いて他には無い。
もっと楽しい言語があると言うなら、それは JavaScript を
忘れてるだけなんじゃないだろうか。そんな気さえする。

色々言ってみたけどやっぱり Lisp が最高だな。
15 :デフォルトの名無しさん2011/02/26(土) 04:49:54.28
JavaScriptは動的に関数を定義したり、
自身の関数やクラスを上書きしたり、
トリッキーというか、変態的な処理が出来て楽しいよね。
16 :デフォルトの名無しさん2011/02/26(土) 05:44:06.55
Javaでおっぱい揺らすアプリを書いているときは楽しい。
17 :デフォルトの名無しさん2011/02/26(土) 05:57:45.32
>>16
up汁
18 :デフォルトの名無しさん2011/02/26(土) 11:39:48.96
なんかこのスレではJavaがめちゃくちゃ評判良いな
猫も杓子もP・H・P!P・H・P!って言ってるご時世なのに
俺は全くの初心者なんだが順序的には何から始めたらいい?
最初からJava?教えてエロイ人
20 :デフォルトの名無しさん2011/02/26(土) 12:20:17.42
Haskell (手続き的なものを除き)コードを書くのに非常にストレスが少ない。
Postscript あり得ないものがファーストクラスである体験。簡単お絵かきは今ならprocessing等に譲る
Maxima 一度覚えるととても便利。
Dot 別ツールから呼び出すことが多いと思うが、成果物がわかりやすいのでとても楽しい
pdとかpureとか 一度体験してみる価値がある。コーディング自体はQuarts Composerとかも雰囲気が似てる

>>18
プログラマが楽しいと思う言語と初心者向けの言語はかなりへだたりがある気がする
JavaとJavaScriptは別物。Javaはおっぱいの話しか出てないぞw
22 :デフォルトの名無しさん2011/02/26(土) 12:46:33.74
今ちょっとぐぐったらJavaScriptは比較的初心者向けみたいだね
自由自在にホームページ作ったりできるようになるにはどの言語から学べばいいかな?
23 :デフォルトの名無しさん2011/02/26(土) 12:51:06.45
PHPとJavaScriptでいんじゃね?
24 :デフォルトの名無しさん2011/02/26(土) 13:17:15.42
>>17
だいたい出来たから、どこかでアップする。
25 :デフォルトの名無しさん2011/02/26(土) 13:20:55.43
おっぱいプルプルの画像処理には、アフィン変換ではなくて、ちょっと特殊なフィルターがいる。
カメラの歪み補正の逆をするようなフィルターなのだが、ビットマップができる言語でないと書きづらい。
特にJavaが優れているとは思えないが、この用途では優れた特性を持つようだ。
26 :デフォルトの名無しさん2011/02/26(土) 13:38:23.77
>>23
やっぱ基本はその2言語なのか
27 :デフォルトの名無しさん2011/02/26(土) 18:39:15.31
>>22
まずはHTML覚えれ
特にスタイルシート覚えないと、JavaScriptの力は半減する
28 :デフォルトの名無しさん2011/02/26(土) 18:41:57.99
みんなどうやって覚えたの?独学?
29 :デフォルトの名無しさん2011/02/26(土) 19:05:54.06
64bitネイティブなBASICてない?
行番号もソースやら扱えるデータサイズも古いシステム依存
なのしかないんだけど。
30 :デフォルトの名無しさん2011/02/26(土) 19:20:14.92
なんでBASICなんかで64bitアクセスが必要なほどのプロジェクトを立ち上げるんですか?Cじゃだめなんですか?
32 :デフォルトの名無しさん2011/02/26(土) 22:03:37.08
>>28
自分の気に入ってるページを開く → ソースを見る
33 :デフォルトの名無しさん2011/02/26(土) 22:15:53.63
>>32
ソースは毎回見てるけど、何度見ても意味不明だよ
それとも気に入ったサイトはパクれって意味?w
34 :デフォルトの名無しさん2011/02/26(土) 22:32:00.66
>>33
見るのと眺めるのは違うのは分かってると思うけど、細かいプロセスはこんな感じ

自分の気に入ってるページを決める → 何が気に入っているかを考える
→ ソースを見る → その機能がどうやって実現されているかを調べる
→ 自分でも同じ様に実装してみる → 何かの機会でその経験を応用する
→ 体得出来た!

上の様にして沢山のページのソースを見る → 共通で使用されている項目を調べる
→ よく使われているパターンを調べる → 自分でも同じ様にやってみる
→ 何かの機会でその経験を応用する → 体得出来た!

パクるっつーか、重要な意味のある部分を抽出して、それを使った最小の完動品を
自分で再現するという作業を繰り返すだけ
35 :デフォルトの名無しさん2011/02/27(日) 09:12:25.06
>>28 >>32-34
他人のソースが正しい実装なのかは分からない。
36 :デフォルトの名無しさん2011/02/27(日) 12:38:21.49
>>35
正しい実装とはなに?
37 :デフォルトの名無しさん2011/02/27(日) 14:47:42.06
>>35
いきなり正しいコードを書こうと意識しすぎると、何も書けなくなると思われ。
何が正しいかは、経験値を深めて判断して行ければ良いかと。
だから、どんな言語の学習でも、沢山のソースを読む事が大事だと思う。
38 :デフォルトの名無しさん2011/02/27(日) 21:31:11.41
>>16-17
ちょっと恥ずかしいけどさらしとく。
http://uncorrelated.servehttp.com/jar/KnockingBird.jar
40 :デフォルトの名無しさん2011/02/28(月) 09:44:23.72
さすがJava
いろんな環境で動く
Javaについてそんなに詳しくないんだが、画像表示とマウスイベントでAWT使って、スライダとファイル選択でSwing使っているのかな

そういう趣味だったのか、ワロタ
43 :デフォルトの名無しさん2011/02/28(月) 10:30:58.84
んだよぉ、上下しているだけじゃねーかよw
どうせならアワビが開閉するのにしてくれYO!
45 :デフォルトの名無しさん2011/02/28(月) 12:53:05.19
わざわざJavaでおっぱい揺らす必要あるのか?gifで十分じゃね?w
と、プログラミング初心者の俺が言ってみる
46 :デフォルトの名無しさん2011/02/28(月) 12:58:44.82
100のおっぱいを揺らしたい時、お前は全て手作業でgifを作るのか?
そういうことだ
48 :デフォルトの名無しさん2011/02/28(月) 13:30:15.36
このおっぱいプログラム、国際化してあるんだが、何をしたいんだろう。
49 :デフォルトの名無しさん2011/02/28(月) 13:31:47.73
おっぱい揺らすのなんてニコニコにいっぱい上がってるし
51 :デフォルトの名無しさん2011/02/28(月) 15:15:30.25
x86のアセンブリ言語が最高に楽しいわ。インテル表記のね。
仕様の追加追加で単純さなんて皆無だけど、単なる計算でも自分でポチポチ組んでる時の高揚感は異常。

単純さが欲しい場合は、DirectXでasmシェーダやってるわ。SM2.0またはSM3.0で。
資料がほとんどない&MSDNにも間違い多い&言葉が少ないのを読み取って作っていくのが最高。
HLSLwwwwwww
52 :デフォルトの名無しさん2011/02/28(月) 21:06:11.29
>>40
だいたいそういう感じ。GUIのアプリはJavaの強み。
Qt/C++にした方が、楽に書けたかも知れないけど。

>>43
丸を置くときに振幅の方向を変えられるよ。
複数の丸を組み合わせると、複雑な動きになる。

>>45-46
そもそもgifでは256色にしかならない。

>>49-50
作る前に教えてください。

>>51
地獄のミサワ乙
53 :デフォルトの名無しさん2011/03/01(火) 10:46:02.56
>>52
後学のためにぜひソースを見せてください!
SourceForgeやGitHubに登録してみんなで拡張するのもいいかもw
55 :デフォルトの名無しさん2011/03/01(火) 14:03:50.44
>>52

地獄のミサワって、ggったらなんで漫画家ww
って思ったけど、つまりはウザいってことか…悪かった
57 :デフォルトの名無しさん2011/03/01(火) 18:24:43.27
一番楽しいのはPythonだな
こまけぇこたぁいいんだよ的なスタンスにびっくんびっくんした
58 :デフォルトの名無しさん2011/03/01(火) 20:03:40.48
実用性を無視して良いなら、1番はHaskell
2番はSqueakかな

やっぱ、純粋さを目指すと見える世界が違って面白い
60 :デフォルトの名無しさん2011/03/01(火) 22:22:00.02
>>53
今、平行プログラミングで、PCの全力パワーでおっぱいを揺らせるようにしているから、それからね。
しかし、どうしてもスレッド間のデータを受け渡すバッファが埋まるまでラグがでる。
63 :デフォルトの名無しさん2011/03/01(火) 23:44:01.87
>>38
動かんかった…orz
virtualboxが悪いのかjvmが悪いのか…
64 :デフォルトの名無しさん2011/03/02(水) 00:12:57.93
java -jar ほげ.jar で動かしている?
65 :デフォルトの名無しさん2011/03/02(水) 00:17:12.25
コンカレント・プログラムで、マルチスレッド対応にしてみたバージョン。
http://uncorrelated.servehttp.com/jar/KnockingBirdCP.jar
あまり速くならなかったが、CPUリソースは消費するようになった。Java最高。
66 :デフォルトの名無しさん2011/03/02(水) 01:01:01.81
>>64
うん、駄目だね
>>65も試してみたけど、同じ
取りあえず、仮想環境だから駄目な気もするので
ホスト側にjava入れたら試してみる
67 :662011/03/02(水) 18:27:51.08
ホストOSにjava入れたら動いた
やはり仮想環境(ゲストOS→winxp)だと駄目なのかも知れん…
68 :デフォルトの名無しさん2011/03/02(水) 21:45:42.59
ゲストOS上のLinuxでJava開発してる俺がいるから、仮想環境じゃ駄目とは一概には・・・
というか別環境でも動くか確認する用なんだけどね。
69 :デフォルトの名無しさん2011/03/02(水) 22:57:30.69
VMware上のWindows2000でも動いた。
70 :デフォルトの名無しさん2011/03/02(水) 23:07:52.37
C++最高。
いらいらするほどの詳細があり、それについて議論になったときは、規格票を読むのが良い
ってメイヤーもジョスティスもほかのみんなも言ってるのに2ちゃんの連中は誰も読もうとしない…

つまりそういうアホドモが群がる言語^^
72 :デフォルトの名無しさん2011/03/03(木) 10:59:30.33
>>53 >>66-67 >>69
乳ゆれベンチマークにしてみた。たぶん、最終形。
http://uncorrelated.servehttp.com/jar/KnockingBird.jar
75 :デフォルトの名無しさん2011/03/03(木) 12:07:20.51
>>72
V2Cといいこれといい,Javaでのデスクトップアプリ開発って結構できるもんなんですねー。
76 :デフォルトの名無しさん2011/03/03(木) 12:07:58.29
技術的に難しい事ってあるの?
アイデアのみに価値があるものを煎じて意味はあるの?
77 :デフォルトの名無しさん2011/03/03(木) 13:01:17.88
>>76
フィルター作成とマルチコア対応が一応、技術的にはちょっとしたハードル。たぶん。
78 :デフォルトの名無しさん2011/03/03(木) 17:51:27.88
アイデアにしか価値がないと思ってるところがダメプログラマ
80 :デフォルトの名無しさん2011/03/03(木) 18:09:52.69
そうだね。
CやC++といった言語と違ってJavaや.NETはマルチコア対応が簡単だから
彼にとってはそれが「やってて楽しいプログラミング言語」ってことなんだろうね。
スレタイどおり。
81 :デフォルトの名無しさん2011/03/03(木) 18:38:38.04
>>78
学生さんじゃないんだから・・・w
82 :デフォルトの名無しさん2011/03/03(木) 22:08:19.89
理解できないことは相手が未熟なせいとするところがダメプログラマ
83 :デフォルトの名無しさん2011/03/03(木) 23:26:33.45
>>72
10個丸を書いて56/secぐらい出るけど、ファンがうなって何だか怖い。
84 :デフォルトの名無しさん2011/03/04(金) 01:08:34.29
>>53
BitBucketにリポジトリを公開しておきました。GPL 2.0として配布しておきます。
https://bitbucket.org/uncorrelated/knocking-bird
85 :デフォルトの名無しさん2011/03/04(金) 01:18:09.76
>>53 >>84
ダウンロード方法を補足しておきます。
1. Java SDKをダウンロード、インストール
http://java.sun.com/javase/ja/6/download.html

2. 分散バージョン管理システム Mercurial をダウンロード、インストール。
http://mercurial.selenic.com/

3. Mercurialでソースコードのリポジトリをダウンロード
hg clone https://uncorrelated@bitbucket.org/uncorrelated/knocking-bird

4. ダウンロードしたリポジトリでビルド
cd knocking-bird
ant

5. 好きな画像を準備

6. 試してみて、粗を探す
java -server -jar KnockingBird-0.97.jar YourFavorite.jpg
86 :デフォルトの名無しさん2011/03/04(金) 01:37:49.21
本スレの話題に沿って、このアプリ作成で体感したJavaを使っていて楽しい点、苦しい点をまとめておきます。

・Javaを使っていて楽しい点
1. 画像処理のアルゴリズムを現実的に実装できる。
2. マルチコア対応のコードを書きやすいAPI(スレッド、セマフォ)が使いやすい。バッファ処理なども工夫の余地がある。
3. GUIのマルチプラットフォームのアプリケーションが作成でき、Windows、Linux、Macintosh OS Xの三対応が容易。
4. ビルドツール(ant)もJavaで書かれており、マルチプラットフォームになっている。
5. クラス型のオブジェクト指向が徹底しているので、ある程度以上の作り込みで生産性が高い。
6. EclipseやNetBeans等のJavaをメインとする優れた統合開発環境があり、コーディングやデバッグが容易。
7. jconsoleでパフォーマンス・チェックも手軽にできる。
8. 配布ファイルのサイズが小さい。現バージョンのjarファイルで51,346バイト(proguard済)にしか過ぎない。
9. ブログ等を含めて、日本語ドキュメントが多く、参考になる。

・Javaを使っていて苦しい点
1. C/C++と比較して速度が出ないAPIがある。今回も画像処理であるAPIの遅さが問題になり、最期に回避策を入れた。
2. Swingを各OS風のデザインにすると、細かいレイアウトがWindows、Linux、Macintosh OS Xで異なる。Swing自体の癖もあるので、マルチプラットフォームで書くには、ちょっとした工夫がいる。
87 :デフォルトの名無しさん2011/03/04(金) 01:42:39.59
>>86
以下が抜けていました・・・。
10. 国際化が容易
88 :デフォルトの名無しさん2011/03/04(金) 01:48:55.05
>>86
内容は殆ど同意なんですけど、Macintosh OS X じゃなくて Mac OS X でお願いします。

Java はもう少し記述量が減らせると良いですね。型推論を取り入れてくれたら凄く良い。
全体的には良く作り込まれた、奇麗な言語だと思います。
90 :デフォルトの名無しさん2011/03/04(金) 03:12:29.31
>>84-88
Javaがクソ言語だと言う所まで読んだ。
92 :デフォルトの名無しさん2011/03/04(金) 03:49:36.50
>>86
Java以外の言語の経験は?
93 :デフォルトの名無しさん2011/03/04(金) 08:12:58.71
>>92
プログラミング言語の経験は?
94 :デフォルトの名無しさん2011/03/04(金) 12:18:49.03
>>92
C++/Qtで書いたモノを貼っておけと言うことであろうか。
http://www.vector.co.jp/soft/winnt/edu/se489370.html
98 :デフォルトの名無しさん2011/03/05(土) 10:24:49.11

Web関係ならPerlとJavaScript
ローカルはAdobeAir&Java
MacだろうがWindowsだろうがLinuxだろうが動く最高の組み合わせ
100 :デフォルトの名無しさん2011/03/05(土) 10:38:02.40
デスクトップはJava。MacだろうがWindowsだろうがLinuxだろうが動く。
ケータイはJava。ガラケーはJavaだし、Androidも似非Javaだが書ける。
ウェブ関係ならJava、JavaScript、SQL。速度が出るし、構造化しやすい。
101 :デフォルトの名無しさん2011/03/05(土) 10:51:26.73
>>100
全ての分野で一番になりきれないのがJavaか。
102 :デフォルトの名無しさん2011/03/05(土) 11:49:39.79
こないだ知り合いからインディーズレーベルのCDをもらった。

バンド名がStruts。

曲名がSeasar、Spring、GWT、Teeda、Eclipse…

メンバーの誰かに、Java大好き人間がいるに違いない。
104 :デフォルトの名無しさん2011/03/05(土) 12:05:01.88
>>102
休日に聞きたくないな・・・
105 :デフォルトの名無しさん2011/03/05(土) 13:22:34.38
俺はPythonかなぁ。あまり深く考えずに適当に書けるのがいい。
111 :デフォルトの名無しさん2011/03/05(土) 17:42:45.86
PerlとPHPってなにが違うの?
112 :デフォルトの名無しさん2011/03/05(土) 18:13:00.04
brainfuckは楽しいが
その楽しさは頭打ちする

やっぱり何か作れないとつまらないね
113 :デフォルトの名無しさん2011/03/05(土) 18:54:14.33
個人的には JavaScript と C が楽しい。
モロ変態な JavaScript と、メモリに思いをはせながら書ける C。
甲乙は付けられない。

>>111
俺的には、「書き捨てプログラム(特にテキスト処理)」の作り易さ。
@lines = <FILE>;
は Perl 覚えたての頃衝撃だった。

しかし Perl は「他人が読めないソース」も作り易い。
PHP は割と律儀に書いてやらないといけない。業務なら PHP がいいかな。
114 :デフォルトの名無しさん2011/03/05(土) 22:54:37.16
C++
最初に自分でプログラム組めるようになった言語
厨房のときにCに手をつけたけどprintfで撃沈した
117 :デフォルトの名無しさん2011/03/06(日) 09:55:54.99
× Javaでおっぱい描画の時間が1/10になったときは楽しい。
○ Javaでおっぱい描画の時間が1/10になったときは嬉しい。
118 :デフォルトの名無しさん2011/03/06(日) 11:01:33.46
>>117も嬉しいのか。
119 :デフォルトの名無しさん2011/03/07(月) 01:00:45.40
× Javaでおっぱい描画の時間が1/10になったときは楽しい。
× Javaでおっぱい描画の時間が1/10になったときは嬉しい。
○ Javaでおっぱい描画が実現できるとわかったときが、うれしい、たのしい、大好き。
120 :デフォルトの名無しさん2011/03/07(月) 06:19:11.11
ヘルプとか付け出すと、楽しいと言うか、苦しくなってくる。
121 :デフォルトの名無しさん2011/03/07(月) 07:16:42.18
ヘルプなんて一番最初に作っておくものだ

あとはそのヘルプを実現するようにプログラムする
123 :デフォルトの名無しさん2011/03/07(月) 07:41:54.29
プログラミング言語ではなくて、プログラムを組む状況で楽しさが変わると言うことだね。
124 :722011/03/07(月) 14:13:24.19
デモ動画も作った。
http://www.youtube.com/watch?v=Hi8L--oWL18
だんだん、楽しくなくなっているのは何故だろう。
125 :デフォルトの名無しさん2011/03/07(月) 15:41:59.48
>>124
すごいな!
これって何かライブラリつかってるの?
参考にした資料とかあったら教えてください
126 :デフォルトの名無しさん2011/03/07(月) 16:04:53.32
>>124
xx-cake!のほうが1000倍まし。
http://graffito.blog14.fc2.com/blog-entry-1259.html
127 :デフォルトの名無しさん2011/03/07(月) 16:23:47.99
>>126
C++で出来てるものと比べてもね…
まぁ>>72には頑張ってもらいたい
128 :デフォルトの名無しさん2011/03/07(月) 16:41:54.43
>>125
ベーシックなSwingアプリで、使っているのは標準APIだけです。

参考資料は二番煎じなので、以下の動画と言うことなります。
http://www.youtube.com/watch?v=vBRoGnlcVGo#t=0m34s

アルゴリズム的な部分はBLOGでちょっと触れました。
http://anlyznews.blogspot.com/2011/02/blog-post_28.html
http://anlyznews.blogspot.com/2011/03/blog-post.html

ソースコードは寂しく公開中。
https://bitbucket.org/uncorrelated/knocking-bird

>>127
さんくす。だいぶ速度的には改善したよ。
129 :デフォルトの名無しさん2011/03/07(月) 19:59:44.87
このプログラムとゲームセンターあらし的な漫画を組み合わせたら
アマチュアプログラムの時代がまた復権するかもしれん。
130 :デフォルトの名無しさん2011/03/07(月) 20:12:48.01
READMEが英語なんだが、こいつはおっぱいで世界を目指しているのだろうか
134 :デフォルトの名無しさん2011/03/07(月) 20:37:02.09
Objective-Cをつけばおk
135 :デフォルトの名無しさん2011/03/07(月) 20:40:49.78
Oppaimania-Cでつね
136 :デフォルトの名無しさん2011/03/07(月) 20:46:52.76
>>134 >>135なにそれ?
137 :デフォルトの名無しさん2011/03/07(月) 21:07:13.26
>>136
Objective-Cを使えば、コレを作れるらしい。
http://www.youtube.com/watch?v=vBRoGnlcVGo
138 :デフォルトの名無しさん2011/03/08(火) 02:15:22.87
>>128
> ソースコードは寂しく公開中。
スレッドのあたりだけでもリファクタリングしようと思ったが
スパゲ・・・ゲフンゲフン 複雑だったので断念したわ
139 :デフォルトの名無しさん2011/03/08(火) 09:38:21.64
>>138
スレッドのrun()は40行、30行、24行の3スレッドしか無いように見えるが、スパゲッティ?
140 :722011/03/08(火) 10:26:34.09
>>138
下手なコードでごめん。
149 :デフォルトの名無しさん2011/03/10(木) 11:06:28.29
Ruby信者に「Rubyって別に特別な言語じゃないよね」とかいうと、なぜか急によそよそしくなるのはなぜ?
なぜ、布教を止めてしまうの?
151 :デフォルトの名無しさん2011/03/10(木) 12:49:42.50
処理速度が遅いのと高負荷なのと、メモリバカぐいのRubyってイメージがあるんだけど
もう改善されてるの?
152 :デフォルトの名無しさん2011/03/10(木) 12:50:36.33
Ruby以外を知らなければ問題無い。だからRubyだけやっておけばいい。
156 :デフォルトの名無しさん2011/03/10(木) 13:12:03.75
そんなプログラマいらね

何種類か知ってて適材適所に使い分けないと
Rubyの利便性だけでRuby使ってるなら大規模アプリ作るとき鯖スペックで涙目になるよ
Perlだと一台でサクサクなのにRubyだとメモリ増やさないといけないし、メモリ欲しさにDB鯖別に用意したりとか。(あくまで例だが。


Rubyだけやってればわかるってのは井の中の蛙で大間違い
158 :デフォルトの名無しさん2011/03/10(木) 14:08:20.68
Ruby好きな人ってなぜかLispやらないよね
両方やってる人はRubyの方が良いって言わないよね
159 :デフォルトの名無しさん2011/03/10(木) 14:16:10.19
Rubyだけやっていたら、頭がおかしくならない
161 :デフォルトの名無しさん2011/03/10(木) 16:01:14.77
>>159 頭がおかしいからRubyだけやるんじゃねぇの?
172 :デフォルトの名無しさん2011/03/11(金) 01:41:12.47
Rubyだけが糞ということがよく理解できた
173 :デフォルトの名無しさん2011/03/11(金) 01:46:48.01
どれが楽しいとか言われても困ると思う。

「100名くらいが参加するWebアプリの開発」ならJavaかC#かVB.Net。
「とにかくパッパとWebアプリ作ってくれ」ならPHP(Symphony)とかGroovy(Grails)かRoRあたり。
デスクトップ・コンソールアプリで高速性が求められるならC++。GTK(or KDE)とGCCになるのか
VC++とMFCになるのかは知らないけど。限界チューンするならインラインアセンブラも含む。
日常のささいな処理を自動化するならVBSかシェルスクリプトかバッチファイルで、
ちょっとモジュール分割が要るならRubyかなあ。
申し訳ないけどPerlは日本語周りで泣かされたので使ってない。
Pythonは「Ruby使ってるの? なんでPython使わないの?」とバカにされて
イラっとした経験があるので一生触りたくないとは思っている。
盤屋さんモードならラダーっしょ。
古いアプリのメンテならVBとPL/SQL。COBOLは知らん。

少なくとも数年ITドカタやれば「どれが楽しい」とか思わなくなると思う。
書きやすい書きにくいの差はあれどれでも何とかできるようになるし。

ま、趣味なら好きなの使えばいいわけだ。
174 :1732011/03/11(金) 01:57:20.01
symphonyじゃなくてsymfonyか。
……いっつも間違えるんだよ(公式な資料でも)。
改名してくれんかな。$phpmvcとか。

>>172
たぶん「〜にもRuby」と言っている彼が原理主義過ぎるかネタ過ぎるのだと思う。

Rubyの利点は「PerlとかPythonより日本語の扱いが楽っぽい」「高階関数書きやすい」
「メタプログラミングが病気どころか病院逃げて」くらい。
あと英語のマニュアル読む気が無い人にも向いてるかも知れない。

現状Rubyは気に入ってるけど、ベターRubyが出たら乗り換えると思うよ。大体のRuby使いは。
178 :デフォルトの名無しさん2011/03/11(金) 02:08:29.29
どの言語も楽しいのはかじり始めの初期の段階だけだなぁ
179 :デフォルトの名無しさん2011/03/11(金) 06:06:53.35
>>178
いつまで経っても初期の段階の言語は楽しい。
180 :デフォルトの名無しさん2011/03/11(金) 06:23:07.92
Rubyの何が良いのかは分からんが、Ruby厨と組んでRuby以外の仕事するのは
楽しくないってことまでは分かった






oppaiマンセー
183 :デフォルトの名無しさん2011/03/11(金) 12:05:32.71
>>174
それは実は、アンチで、信者のふりをして評判を下げようとしているのでは?
184 :デフォルトの名無しさん2011/03/11(金) 12:32:40.98
>>183
   / ̄ ̄\
 /   _ノ  \
 |   ( ●)(●)
. |     (__人__)____
  |     ` ⌒/ ─' 'ー\
.  |       /( ○)  (○)\
.  ヽ     /  ⌒(n_人__)⌒ \
   ヽ   |、    (  ヨ    |
   /    `ー─−  厂   /
   |   、 _   __,,/     \
185 :デフォルトの名無しさん2011/03/11(金) 12:53:39.19
>>184
本当のことを書いてしまって悪かった・・・
186 :デフォルトの名無しさん2011/03/11(金) 13:32:17.89
まあ正体は何でもいいけど
そういう猿みたいな作業やってて楽しいか教えてくれ
188 :デフォルトの名無しさん2011/03/13(日) 11:08:30.55
仕事でObjC使ってるけど、iPhone開発にはもってこいだよ。
…うん。

最初メッセージ式に慣れなかったわ
193 :デフォルトの名無しさん2011/03/16(水) 22:06:25.63
やっぱりjavascriptだな
何年も立つのに、新しい発見があったりする
jquery便利すぎ
html5で将来性ハンパない
こんな言語、他にないだろ


195 :デフォルトの名無しさん2011/03/16(水) 22:37:52.40
役に立つとか、便利とか、**を作れるとか、そんなのはどーでもいいよ

やってて楽しいか、何がどう楽しいかを語れって
196 :デフォルトの名無しさん2011/03/16(水) 22:51:27.90
>>195
1 名前:デフォルトの名無しさん []: 2011/02/25(金) 19:05:24.81
またその理由は?(やりながらお金儲けできる、アイデア次第で色んなものを作れる、など)
197 :デフォルトの名無しさん2011/03/17(木) 01:32:28.76
>>195
haskell
数学っぽいプログラミング言語って考えると色々楽しい

mylengthとか、myfoldrとか、組み込み関数と同じ物を簡単に作れちゃうのにも地味に感動

squeak(またはsmalltalk)
ifやforまでもオブジェクトって言う、行き着く所までオブジェクト指向なのが面白い


言語を楽しむんじゃ無くて、プログラムを作る事を楽しむなら、delphi、c#、vbが手軽で良いけどね
201 :デフォルトの名無しさん2011/03/21(月) 14:11:25.44
まあ、当たり前だけど皆さんのおかれた環境がちがうから、万人が楽しいと思うプログラミング言語はきめられない
けど、やっぱり理由を分析してると興味深い。
だから、ただ単に言語名を書くのではなく、「なぜ楽しいのか?」を書いてほしい。

今のところ、プログラミング言語が楽しい理由というのをまとめると↓こんな感じ?
・多人数でも開発ができるから
・ひとりで開発するときにぱっとできる
・いろいろなライブラリがそろっている
・仕事の対象(数学)にあっている、対象を処理しやすい
・言語の進化がはやい。
・将来性(があるので気分も楽しい)
・いろいろなOSで動く
・APIが充実
だれかもっとうまくまとめて樹形図みたいにしてくれないかな?
202 :デフォルトの名無しさん2011/03/21(月) 16:19:16.05
俺が Haskell のプログラミングが楽しいと感じるのは、
解きたい問題に潜む静的な構造や関係を見抜いたと感じた時と、
その構造を上手く Haskell で表現できた時だな
205 :デフォルトの名無しさん2011/03/22(火) 14:50:40.12
やっぱりC++だな。
207 :デフォルトの名無しさん2011/03/22(火) 19:09:21.97
>>205
万能である代わりに、マゾ向けの言語だがな

言語オタク的にも面白味がない言語

c++の何が面白いのか全く分からんのだが
208 :デフォルトの名無しさん2011/03/22(火) 19:16:05.81
C++でオブジェクトの動的ロードをすると万能ではないことに気づく。
209 :デフォルトの名無しさん2011/03/22(火) 19:56:17.18
>>208
速度優先
小さなものから大きなものまで
潰しが効く
副作用として、プログラマーがほとんど面倒見ないといけない

って意味なだけで、マゾ向けって書いたとおり、言語仕様で万能という訳じゃ無い
(万能な言語仕様って言うのも見てみたいけれど)

貴方の意見にしろ、私の意見にしろ、積極的に選ぶ言語とは思えない訳だが
210 :デフォルトの名無しさん2011/03/22(火) 20:00:40.50
>>209
今はSTLはもちろん、BoostとかQtもあるから、そう記述が多いわけでもない。
211 :デフォルトの名無しさん2011/03/22(火) 20:13:52.51
>>210
そうか。。。
そうだとしても、c++が面白いってのは違う気がするんだが

アピールポイントとか有るの?
212 :デフォルトの名無しさん2011/03/22(火) 20:19:56.75
>>211
C++は、Cと比較して、クラスやテンプレート、演算子オーバーライドなどのプログラマ負担を減らすための大幅な機能拡張がされている。
また、原則として拡張された機能は速度を低下をもたらさない。高機能で高速な言語がC++。
213 :デフォルトの名無しさん2011/03/22(火) 20:27:03.17
C++の欠点もあげると、以下のような感じになる。
・Java等と比較すると標準ライブラリが弱い。スレッドやセマフォ、GUI等も標準化されていない。
・プログラマに混乱をもたらしがちな文法規則がある。多重継承、演算子オーバーライドは評判が悪い。
・(Cと同様に)環境依存が大きく、方言もある。リンカはOSに依存するし、finally{ }はVisual C++の方言。
・OSのAPIがC言語ベースなので動的ロード(dlopen、dlclose)で直接クラスをロードできない。
・メモリ管理機構が─Boostなどで改善はできるが─原則としてプログラマ管理なので原始的。
214 :デフォルトの名無しさん2011/03/22(火) 20:38:48.91
C++は熱狂的な信者もいるが、嫌いな人は嫌いだ。
C++厨がLinus TorvaldsにGitをC++で書けと言って、Linus Torvaldsがブチ切れてC++をdisった事は有名だと思う。
215 :デフォルトの名無しさん2011/03/22(火) 21:07:32.52
>>212-213
それは、便利な機能で有って、面白い機能とは言えない様な。。。
216 :デフォルトの名無しさん2011/03/22(火) 21:10:02.45
>>215
書けば書くほど速度が問題になるスクリプト言語よりは、やってて楽しいプログラミング言語かも知れない。
217 :デフォルトの名無しさん2011/03/22(火) 21:25:59.24
こんなスレがあったんですね。
初心者が一から始める言語としてオススメってありますか?
最終目標としては沢山のお客さんが集まるようなフォーマットが作成できるようになりたいです。
大風呂敷を広げてしまいますが、例えばツイッターやフェイスブック、2ちゃんねるのようなフォーマットをアイデア次第で作れるようになれるスキルが欲しいです。
こういったものを作れるようになるためには、まず何から学んでいくべきでしょうか?
219 :デフォルトの名無しさん2011/03/22(火) 22:50:36.18
>>213
>・Java等と比較すると標準ライブラリが弱い。スレッドやセマフォ、GUI等も標準化されていない。

まあwxWidgetsとかQt4とか使うと
ライブラリも充実してるし
そんなに困らなくなるよ
220 :デフォルトの名無しさん2011/03/23(水) 00:09:24.14
>>217
プログラミング言語としては比較的易しい&twitterやfacebook/youtubeにも欠かせない

javaScript

ぶっちゃけ、どの言語で始めるか?より、簡単でも良いから、何か作る−>改良するを継続できるか?という素質の方が大事
221 :デフォルトの名無しさん2011/03/23(水) 00:17:43.11
>>220
サーバーサイドJavaScriptは一般的では無いから、JavaScriptから始めると何も保存ができずに凹みそうだ。
222 :デフォルトの名無しさん2011/03/23(水) 01:01:28.68
>>221
アホか
サーバサイドが現実味を帯びるだけの実力ついたら、そのまま極めるのも、他の言語覚えるのも大した苦労じゃ無いだろ

最初は保存とか考えなくて良いんだよ

php覚えようが、java覚えようが、ネットで何かする時は今時、html/cssとjavaScriptは何だかんだでついて回る訳だし
223 :デフォルトの名無しさん2011/03/23(水) 01:32:02.06
サーバーサイドJavaScriptはまだ情報が少ないから挫折しそう
無難にPHP, Python, Ruby辺りがいいんじゃない?
224 :デフォルトの名無しさん2011/03/23(水) 01:43:38.58
スケーラビリティを考えれば、JavaかPythonで、Google App Engineを使うのが楽だ。
226 :デフォルトの名無しさん2011/03/23(水) 01:51:25.44
>>222
まずはサーバーサイドで、フォームからデータベース等にデータを入れて、出すところからだと思う。
227 :デフォルトの名無しさん2011/03/23(水) 07:16:21.32
>>226
初心者に何やらせるつもりなの
javaScriptの後で、好きに覚えてもらえば良いだろ
228 :デフォルトの名無しさん2011/03/23(水) 08:25:18.30
>>227
オブジェクト指向やアスペクト指向と言い出さない分、実に初心者的。
229 :デフォルトの名無しさん2011/03/23(水) 14:25:21.07
C++の楽しいところはBoostとか使えばスクリプト言語や関数型言語に出てきた手法を
大学の実験用プログラムとかみたいに速度が気になるようなところにも適用できる点かなぁ
230 :デフォルトの名無しさん2011/03/23(水) 18:49:04.00
やってて楽しいのはアセンブリとか、あとは非手続き型の言語かな
スクリプト言語とかJavaとかその辺は楽しいと言うより、気楽って感じ
C/C++はやってて疲れる…
232 :デフォルトの名無しさん2011/03/23(水) 23:19:28.28
html+css+JavaScript(+jQuery)だな。
慣れれば、Ajaxを使ってRIAな画面をガンガン書ける。
言語じゃないが、jQueryというJavaScriptのライブラリは
一度使ったら手放せないぐらいJavaScriptでの開発を楽にしてくれた。

自分が新人研修担当なら、まずはこの組み合わせでやらせてみると思う。

ちなみに、JavaScriptでもActiveXとか使えば保存もできるぞ。
233 :デフォルトの名無しさん2011/03/23(水) 23:53:45.81
>>232
ローカルに保存?
234 :デフォルトの名無しさん2011/03/23(水) 23:56:43.42
サーバサイドJavaScriptはレガシーASPで出来るけど、
レガシーASPはVBSが主流だったからな…。
あれって、MSがJavaScriptを推奨してれば、
サーバサイドJavaScriptは主流になれたかも知れないのに…。
235 :デフォルトの名無しさん2011/03/24(木) 00:08:08.11
M$のベンダーにはVBプログラマが多数いたので、JScriptは選択肢としてはあり得なかった。
さらに当時のJavaScriptは、今のJavaScriptと仕様も異なる。正規表現も使えなかったはず。
236 :デフォルトの名無しさん2011/03/24(木) 00:20:50.38
237 :デフォルトの名無しさん2011/03/24(木) 00:29:10.09
Javascript単体でもFile APIが利用できればローカル操作できる気がするが、
IEだとそうでもないのだろうか…
238 :デフォルトの名無しさん2011/03/24(木) 00:30:23.42
>>236
それ、JavaやPHP等の助けを借りないで、サーバーに保存できるの?
239 :デフォルトの名無しさん2011/03/24(木) 00:51:40.30
>>235
2000の頃には正規表現使えなかったっけ?
まぁ2000の頃はすでに下火になってた気がすると言うか
最初から盛り上がっても無かった気もするけど…
今からでも、APIと型を少しだけ追加して、レガシーASPでJavaScript推奨にすれば、
結構、盛り上がると思うんだけど、多分、切り捨ての方針なんだろうな…

>>238
レガシーASPでサーバサイドJavaScriptなら、
普通に保存もできるしデータベースやCSVも扱える
ただ、バイナリ処理に若干難がある
240 :デフォルトの名無しさん2011/03/24(木) 03:15:46.13
>>239
正規表現と例外処理が入ったのが、1999年のECMAScript 3から。
IE4、NN4で使えたかも知れ無い。
241 :デフォルトの名無しさん2011/03/24(木) 11:11:46.69
TiddyWikiがJavaScriptで作られたデスクトップアプリとして
完成度高いと思う。
ttp://www.tiddlywiki.com/
242 :デフォルトの名無しさん2011/03/24(木) 21:08:41.71
C++が一番楽しい。
1. あんまり頑張らなくても動作の速いプログラムが書ける。C#やJavaでの最適化は大変。
2. Visual Studioのデバッガ優秀。PythonやRubyはデバッグがやりにくくてイライラする。
3. メジャーだから情報が多い。Haskell等のマイナー言語は調べるのメンドクサ。
4. Boost等使えば他の環境に移植するのは意外と簡単。方言も実質、VC/GCCの二種類しかない。

C#が次に楽しい。
1. C#は他の言語より明らかにコードが短く書ける。C++やJavaはどうしても冗長になる。
2. Visual Studioのエディタ優秀。C++のインテリセンスより遥かに賢い。
3. 変更なしにWindowsとLinuxの両方で動くことが多い。他のクロスプラットホーム開発環境より楽。

M$万歳
243 :デフォルトの名無しさん2011/03/24(木) 22:33:38.35
VCは名前解決のルールが標準とぜんぜん違うから
ちょっと複雑なテンプレート書くとすぐあぼんする。
244 :デフォルトの名無しさん2011/03/24(木) 23:28:54.34
C#楽しいな
といっても他にはいくつかしかやったことないのだがw

この場を借りてMSありがとう!
248 :2172011/03/25(金) 23:42:20.33
>>217ですが、ここまでの流れを見てると、初心者が一から学ぶ言語として

html+css+JavaScript
html+css+(PHP、Python、Ruby)

このどちらかがオススメみたいですね。
html+cssという意見は一致していて、これと並行してJavaScriptを学ぶか、それともPHP系を学ぶか、ということですかね。
一流プログラマーの皆さんですら意見がわかれるくらいなので、どちらかに絞るのは難しいですね。
249 :デフォルトの名無しさん2011/03/26(土) 01:00:26.86
>>217
そんなわけないだろうw 普通に初心者向けの参考書の多い言語にしとけ。JavaとかCとかC#とか。
250 :デフォルトの名無しさん2011/03/26(土) 01:06:20.38
>>248
サーバサイドjavaScriptとか、一部極端な人が居るだけで、普通はhtml+css+javaScript+php+MySQL(場合によってはjavaやflashも)と言う風に、複数の言語を組み合わせてウェブプログラミングは行われます
(もちろん、チームで作る訳ですが)

javaScriptを薦める理由は、ブラウザさえ有れば、学習出来る事
ウェブプログラミング志望だったので、必修と言って良い言語でも有る事からです

256 :デフォルトの名無しさん2011/03/27(日) 09:15:52.37
JavaScriptが必須言語であるイメージは無い。
Ajaxを含むDynamicHTMLを積極的に使わない限り、補助的なものだ。
257 :デフォルトの名無しさん2011/03/27(日) 09:42:30.54
>>256
htmlもcssもプログラミング言語じゃ無いんだから、それ以外に覚えるべき、ウェブ向けの言語はjavaScriptで良いんじゃ無いのか?

javaScript無くても、他の言語で完結出来るならそれで良いんだろうが、完結出来てるのって見た事無いんだが
(ただのhpは除く。何らかのサービスを提供してるサイト)
258 :デフォルトの名無しさん2011/03/27(日) 10:10:08.89
UIのレベルはともかく、原理的に完結できるのはPHP。
JavaScriptは、ASPやnode.jsを使わない限りは簡潔しない。
260 :デフォルトの名無しさん2011/03/28(月) 15:33:27.84
C++/Qtで、役立たないもんを作っているときは楽しい。
http://www.youtube.com/watch?v=XtQ_T_KiOCY
261 :デフォルトの名無しさん2011/03/28(月) 16:56:15.15
C++俺には無理だ
スパゲティにタバスコが入ってる
食うのに時間がかかってしょうがない
263 :デフォルトの名無しさん2011/03/29(火) 09:02:11.18
>>260
バカにC++を与えると、ろくな物を作れないのは良く分かった。
265 :デフォルトの名無しさん2011/03/29(火) 09:12:24.96
>>260を見る限り、C++/Qtを試すための題材として、
特におかしな点は見えないので、>>263がろくな者じゃないのは良く分かった。
269 :デフォルトの名無しさん2011/03/29(火) 10:31:21.78
疑ってないのでもっとすごいものを簡単に作って公開してください
271 :デフォルトの名無しさん2011/03/29(火) 10:53:56.58
>>180で思ってたことが正しいと今日確信した。
272 :デフォルトの名無しさん2011/03/29(火) 11:05:47.01
C++0xが、C++ 2011として固まる見込み。ラムダ式や正規表現、ハッシュなどが標準サポートとなるので、従来スクリプト言語が使われていた用途に利用しやすくなる。
273 :デフォルトの名無しさん2011/03/29(火) 12:41:33.00
>>271
つまり、やはり oppai はマンセーだと確信したのか
何かきっかけだったのか気になるな
274 :デフォルトの名無しさん2011/03/29(火) 13:15:11.71
PHPerは、PHP、Perl、Ruby、Python以外はプログラミング言語ではないと考えている
http://hiroki.jp/2011/03/27/1767/
275 :デフォルトの名無しさん2011/03/29(火) 13:27:40.80
最近はアフィリエイトが氾濫し過ぎw
adblockみたいに指定したdivを非表示にできるツールが欲しいな
276 :デフォルトの名無しさん2011/03/29(火) 13:55:38.83
C++と.NETが合わさったC++/CLIと言う、一見最強にして楽しそうな言語があるんだが・・・
278 :デフォルトの名無しさん2011/03/29(火) 14:22:59.18
>>274
> 個人的には emacs をおすすめする。

(Javaの開発者で、初期のemacsの開発に関わった)Gosling氏いわく「Emacsを使うのはやめようよ」
http://builder.japan.zdnet.com/tool/20370724/
279 :デフォルトの名無しさん2011/03/29(火) 14:29:52.75
エディタとかIDEとかの話をして宗教戦争勃発させるスレじゃないんで
280 :デフォルトの名無しさん2011/03/29(火) 14:31:58.77
http://hiroki.jp/2011/03/27/1767/
こういういまだにEmacsを新人に勧めてる化石さんてほんと迷惑
283 :デフォルトの名無しさん2011/03/29(火) 15:05:01.41
IDEは開発形式を縛るor開発形式に縛られてるからなあ
まあエディタも縛ってるんだが、IDEでの開発分野とエディタでの開発分野の互換性はぶっちゃけ薄い
287 :デフォルトの名無しさん2011/03/29(火) 15:34:09.07
Rubyはコーディングは極楽でもデバッグが地獄。
さらにパフォーマンスがでないと別の言語で書き直すことになる。
トータルでの生産性は低い。
少なくともスレタイの"楽しい言語"には該当しないだろう。
288 :デフォルトの名無しさん2011/03/29(火) 15:38:43.80
Rubyは最初からパーフェクトなコードが書けるので、デバッグは不要。
290 :デフォルトの名無しさん2011/03/29(火) 16:53:47.19
高機能なデバッガがあればテストなんて時間の無駄でちゅ
高機能なデバッガがないRubyは糞でちゅ
292 :デフォルトの名無しさん2011/03/29(火) 16:59:04.20
>>290
デバッガ至上主義者はまだ生き残ってるな
Cでは有効なんだから素直にCだけやっとれと思う
297 :デフォルトの名無しさん2011/03/29(火) 17:50:50.67
rubyはやる/やらないじゃなく、信仰する/弾圧するだからなあ
まあ弾圧してて楽しい存在ではあるけど
298 :デフォルトの名無しさん2011/03/29(火) 18:37:49.09
IDEを使うと、リポジトリ配置とリポジトリに登録しないファイルに気を使う必要が出てくる。
299 :デフォルトの名無しさん2011/03/29(火) 19:02:09.26
たしかに Emacs は奨められて使うものではないな

ふとしたきっかけで運命的に出会い、残りの人生を共にするものだ
301 :デフォルトの名無しさん2011/03/29(火) 20:33:56.59
>>124は、ごく普通にEclipseで作った。
302 :デフォルトの名無しさん2011/03/30(水) 00:52:06.43
OOPでちゃんと作る時はIDEじゃないときついな
個人用の簡単なツールとかちょっとして修正ならエディタの方が楽でいい
304 :デフォルトの名無しさん2011/03/30(水) 07:22:27.78
>>302
OOPでちゃんと作る時にIDEのどんな機能を使ってるの?
305 :デフォルトの名無しさん2011/03/30(水) 07:24:26.30
そもそも、c++、java、c#が面白いんだったら、こんなスレが出来てないと思うんだ
307 :デフォルトの名無しさん2011/03/30(水) 08:53:57.34
効率よく目的を達せるのが楽しいプログラミング言語だと考えると、IDE等の開発環境も楽しい理由にはなる。
308 :デフォルトの名無しさん2011/03/30(水) 09:42:05.12
>>307
自動プログラミングのコードを拡張していく、
プログラミングなど楽しそう。
309 :。 ◆oDupeixhZv52 2011/03/30(水) 10:09:49.21
こういうのをちゃんと語れるほど、すべての言語を深く使ってる人間がこんなにいるわけないだろ。
310 :デフォルトの名無しさん2011/03/30(水) 10:42:27.75
最近のプログラミング言語は言語仕様はコンパクトにしてライブラリで拡張するって感じだから
言語自体を比較してもほとんど同じっていうか意味無いよね
312 :デフォルトの名無しさん2011/03/30(水) 19:13:01.05
>>310
そこで Haskell ですよ
313 :デフォルトの名無しさん2011/03/30(水) 19:29:06.89
>>312
同意

だが気をつけろ
プログラミング言語の形をした数学は、プログラミングより数学の方が楽しいかも?とか思わせる魔力も持っている

haskellから数学の復習へと足を踏み外した趣味グラマーより
316 :デフォルトの名無しさん2011/03/30(水) 23:56:23.96
>>272
日本人って特に技術者でそういう考えの人が多い様に思うけど、
機能一覧で並んだからといって代替出来る訳じゃないんだよ。
パッケージとして魅力が無ければ幾ら機能が多くても意味が無い。

記述が冗長でコンパイルがクソ遅くて直感的じゃない C++ が
LL の代わりになる訳ないじゃん。
317 :デフォルトの名無しさん2011/03/31(木) 00:41:16.73
若干スレ違いかもしれませんが、オブジェクト指向性の強い言語でおすすめってありませんか?
目的はオブジェクト指向への理解を深めるためで、普段はC++やっています
318 :デフォルトの名無しさん2011/03/31(木) 01:01:30.22
>>316
万能な言語なんてある訳ないよ
C++がLLの代わりにならないのと同様に
LLがC++の代わりにもならない

メジャーな言語ってのは
それぞれ優れた部分があるからメジャーとなりえるんだ
いくつかの前提条件の元に議論するならまだしも
なんの前提もなく、まったくベクトルの違うものを無理矢理同列に語ることなんて不可能
てか比べるような人がいたらそいつはキチガイ
319 :デフォルトの名無しさん2011/03/31(木) 01:36:08.02
そう。LL は C++ の代わりにはならない。
ただ LL で充分な分野は確実に増えてるね。

GUI アプリなんてもう JavaScript で良いじゃんみたいな。
320 :デフォルトの名無しさん2011/03/31(木) 01:41:15.47
>>317
オブジェクト指向への造詣を深めたいなら Smalltalk は外せないと思う
オブジェクトの天国みたいな言語
321 :デフォルトの名無しさん2011/03/31(木) 01:44:29.67
教科的なオブジェクト指向を学びたいならjava
即物的なオブジェクト指向を学びたいならC#
322 :デフォルトの名無しさん2011/03/31(木) 01:48:55.15
Smalltalk 以外だと JavaScript かな
こっちもオブジェクト指向のひとつの境地に至った言語だと思う
324 :デフォルトの名無しさん2011/03/31(木) 05:37:29.54
>>316
272が言ってることにも一理あるでしょ。
C++屋からみればLLはデバッグが厄介になるのと
速度が遅くなるのを我慢して嫌々使ってる面もあるんだから。
C++の適用範囲が拡大してLLの使用頻度が落ちてくれれば嬉しいんでしょ。
彼はLLがなくなるとか言ってないし、そもそもLLの批判とかしてないじゃない。
あなたが勝手に発言内容を誤解してるだけなのに非難するとかおかしくね?
そういうのクレマーっていうんですよ。
325 :デフォルトの名無しさん2011/03/31(木) 06:00:04.23
javascriptはundefinedが書き換えが可能なただの変数だとか
書けば書くほど謎の仕様が出て来るから嫌い
JSのnewってなんだよ。
326 :デフォルトの名無しさん2011/03/31(木) 08:47:00.20
Javascriptは自由度高すぎんだよな
始めた頃大嫌いだったけど今は好きだ
でもあの変なスコープだけは今でも嫌い
327 :デフォルトの名無しさん2011/03/31(木) 09:23:32.38
>>320-323
ありがとうございます
特にオブジェクト指向性の強いらしいsmalltalkから触ってみたいと思います
328 :デフォルトの名無しさん2011/03/31(木) 10:20:39.41
>>327
ちょっと高いけど自由自在Squeakを入門書として薦める
329 :デフォルトの名無しさん2011/03/31(木) 10:37:26.22
>>324
>>272の主張はC++の書きやすさが(やや)向上したのでスクリプティング用途に
使いやすくなった、ということだと思うが、俺もあまりピンと来なかったな

多分自分の中で、C/C++とスクリプティング言語は、使い道や使いどころが
別物過ぎて、0xにおける書きやすさの若干の向上がその選択に
全く影響を与えないから、だと思う

コンパイルの必要性と、実行ファイルの可搬性の壁って相当でかいよ
ソースがそのまま実行ファイルでかつ可搬だ、というのがLL

速度は、シェルスクリプトの時代からI/O boundな仕事をさせるか
単にプロセスを起動したりするグルーという使い方なのだから
「遅くなるのを我慢していやいや使う」どころか、
もともと問題にもならないんだよ
伝統的にUnixプログラマはCとシェル(sed/awk)、Lispのようなものをうまく使い分けて
きたのであって、スクリプティングの使いどころや利点を知らない奴は
正直あまり有能じゃない奴だと思うなあ
330 :デフォルトの名無しさん2011/03/31(木) 10:55:43.43
どんだけC++嫌いでスクリプティング言語好きなんだよw
331 :デフォルトの名無しさん2011/03/31(木) 11:03:33.65
いやいや、329の言うことは一理あるだろ。

ただ、C++(特にテンプレート)はパズル的な楽しさがあるので
役立つ役立たないとは別の次元で、やってて楽しいと思う。
332 :デフォルトの名無しさん2011/03/31(木) 11:05:03.78
>>330
別にC++嫌いじゃないよ
ってか、>>329のどこ見てそう思ったんだ
LLなんかに低水準の仕事やCPU boundの計算はさせられない

最初から用途が違いすぎるし、他の要素のほうが大きすぎるから
C++0xは言語の選択に大して影響を与えるとは思えないというだけの話
334 :デフォルトの名無しさん2011/03/31(木) 14:01:41.15
C++好きなやつは、ちょっとでもC++を批判されるとキレるからな
頑張って覚えたC++の重要性が下がってきてる現状が気に入らないんだろう
335 :デフォルトの名無しさん2011/03/31(木) 14:20:52.97
336 :デフォルトの名無しさん2011/03/31(木) 14:31:38.64
>>335
2002年からの長期トレンドの図を見ると、確かにC++の人気は下がってるね
337 :デフォルトの名無しさん2011/03/31(木) 14:32:48.50
C++でやるまでもないところはお手軽スクリプト言語の方が効率いいからね
338 :デフォルトの名無しさん2011/03/31(木) 14:34:31.42
自分が習得した言語のトレンドが下がると悲しいのはどれでも一緒だよ
342 :デフォルトの名無しさん2011/03/31(木) 14:52:18.84
C/C++以外に本日使われている実用的でネイティブな言語ってあるの?
345 :デフォルトの名無しさん2011/03/31(木) 15:25:23.88
LL好きな人はC++のことよく知らないことが多いんだよ。片手間に覚えるには難しすぎるから。
一方C++好きな人はLLも仕事で使うからよく知ってるので的外れなC++批判はムカつくのでしょう。
大前提としてRuby厨はバカだと思ってるんですよ。
348 :デフォルトの名無しさん2011/03/31(木) 16:28:16.74
>>345
・LL好きのC嫌い
・C好きのLL嫌い
・どっちも適材適所で使う

と大まかに3つのクラスに分類されるんだよ
C好きのLL嫌いは、1つの言語で上から下まで組めるべきと考える
351 :デフォルトの名無しさん2011/03/31(木) 16:43:40.07
>>348
・C好きのC++嫌い

という大きなクラスを忘れてる。もちろんLL嫌いとは限らない。
354 :Linus Torvalds2011/03/31(木) 18:17:23.85
>>451
呼んだ?
356 :デフォルトの名無しさん2011/03/31(木) 20:14:58.88
>>354がどんな内容で呼ぶか期待
357 :デフォルトの名無しさん2011/03/31(木) 20:26:44.82
>>356
最も美しい言語と言われる事もあるhaskellがあんまり出てこないのは何で?
文法の美しさとか、美しいコードにしようってだけで楽しいのに

guiは目を瞑るけど、cui作らせたら一番楽なんじゃ無いかと思うし
358 :デフォルトの名無しさん2011/03/31(木) 20:29:31.22
>>357
あ、ごめん
アンカーは無視して。。。ORZ
360 :デフォルトの名無しさん2011/03/31(木) 21:29:58.13
>>361がhaskellの人気に嫉妬。
361 :デフォルトの名無しさん2011/03/31(木) 23:40:54.78
>>324
そんな感情的になる事無いんじゃないの。別に人格を否定してる訳じゃないんだしさ。
自分は LL を批判されたとも思っていないし、LL の肩を持つつもりも無いよ。

無理矢理に対立軸を見つけようとしてませんか?
362 :デフォルトの名無しさん2011/03/31(木) 23:57:51.18
>>361
>>334
365 :デフォルトの名無しさん2011/04/01(金) 23:40:52.94
あれはRailsが異常だっただけ
今は元の状態に戻っただけだよ
367 :デフォルトの名無しさん2011/04/02(土) 12:23:19.34
>>365
「RailsやRubyの人気はバブルだと思う」って、Matzも言ってたよね。
ttp://www.rubyist.net/~matz/20070831.html#p02
ttp://www.rubyist.net/~matz/20070925.html#p04
368 :デフォルトの名無しさん2011/04/02(土) 12:23:32.09
>>351
C++好きのC嫌いってのもいるよ
俺のことだけど
372 :デフォルトの名無しさん2011/04/02(土) 21:00:39.61
C好きはそうはいないだろう
今の時代においてもはやアセンブラレベル
373 :デフォルトの名無しさん2011/04/02(土) 21:09:19.82
>>372
だね
リバースエンジニアリングって意味じゃcもアセンブラも好きだし、面白いけど

新しい刺激を求めるなら、関数型言語や論理型言語
オブジェクト指向言語で刺激を受けられたのはsmalltalkだけだったな

それだけ、オブジェクト指向が普通になってるんだろうけど
374 :デフォルトの名無しさん2011/04/02(土) 21:34:27.50
>>372
Cもアセンブラも好きだよ
C++は嫌いだ
377 :デフォルトの名無しさん2011/04/02(土) 21:46:57.85
ここでCを腐した所で、C++のかつての繁栄が戻ってくる訳じゃないし、
ここは楽しい言語を挙げるスレだぜ
378 :デフォルトの名無しさん2011/04/02(土) 22:39:44.81
>>377
実用的じゃ無いけど、惚れ込んだのはhaskell
c/c++/ruby/hsp/vb/c#/java/delphi/OCaml/scheme/smalltalkと色々触ってきたが、一番haskellが楽しい
他の言語で作れなかった関数が簡単に作れる

ただ、実用だったらc#かな
速度重視ならc++だけど

理想はhaskellにguiビルダーみたいなのが出来たら良いな
妥協点としてもc#から呼べるdll作って、guiをc#で作って、内部処理は全部haskellで書きたい

379 :デフォルトの名無しさん2011/04/02(土) 22:49:46.22
アセンブリのちまちま感が好き
Haskellをやると自分の頭がよくなったかのような感覚になるから好き
380 :デフォルトの名無しさん2011/04/02(土) 23:10:47.29
>>379

自分、>>373と>>378書いた者です

。。。同士よ!!!!
381 :デフォルトの名無しさん2011/04/02(土) 23:15:25.26
C#

仕事が組み込みだから、C/C++と違ってサクサク作れるのがいい。
382 :デフォルトの名無しさん2011/04/02(土) 23:43:59.10
プログラム言語を道具としてしか見られない俺は負け組・・・
383 :デフォルトの名無しさん2011/04/02(土) 23:50:32.58
プログラム言語は道具だ → 技術者なら良い道具を選びたい
→ 手に馴染んだ道具で仕事をすると楽しい → やってて楽しい

じゃないの?
384 :デフォルトの名無しさん2011/04/03(日) 00:07:00.01
>>382 とは別人だが、俺も言語はただの道具という認識だ

「技術者なら良い道具を選びたい」は分かるんだが、プログラミングにおいて
「手に馴染んだ道具で仕事をすると楽しい」という感覚がよく分からん

俺は言語が楽しい分けじゃ無くて、プログラムを組むことが楽しい
べつに手に馴染んでない言語を使ったって、プログラムを組むことは楽しい

言語が楽しいって感覚、何なの?
385 :デフォルトの名無しさん2011/04/03(日) 00:11:02.08
得意言語が手足のようになじむのは楽しいよ。
構文やコマンドを覚えるたびにできることが増えていく感覚は
ドラクエなんかのゲームに通じるものがあるね。
386 :デフォルトの名無しさん2011/04/03(日) 00:24:09.73
俺も得意言語が手足のように馴染んでいくのはとても嬉しいが、
・・・「馴染むこと」や「馴染む状態」が楽しいのか?

> 構文やコマンドを覚えるたびにできることが増えていく感覚

それはある言語に特有の性質なの?

覚えるべき構文やコマンドを覚えきったら、楽しい理由がひとつ減るの?
387 :デフォルトの名無しさん2011/04/03(日) 00:26:02.20
>>384
ある言語特有の機能を使うと奇麗に設計出来たり、コードが短くなったり、プログラムの
本質的な部分により注力出来たりして、生産性が上がると楽しいでしょ。
無名関数があればコールバック関数の名前をいちいち考えなくても良くて楽だとか。

まあ普通は逆で、指定された言語を使うと設計に無理が生じたり、同じ様なコードを
何度も書かないといけなかったりしてストレスが溜まるという経験をした事がある人は
多いと思うけど。あとは文法が煩雑で他人のコードが読み辛いとか。
そういう時は言語が楽しくないって感覚になる。
388 :デフォルトの名無しさん2011/04/03(日) 00:38:42.84
>>387
君が楽しいとするものは
楽しいのではなくて
嬉しいだとか、楽(辛くない)という言葉の方が適切じゃないかな?

俺の場合、楽しいと思うのは齧り始めの初期の段階だけで
386が言うように
徐々に知恵をつけて
知る、覚える、学ぶという本能的喜びの頻度が下がれば
楽しいという感情は薄れていく

へ ←グラフにするとこんな感じ
あとはマイナスファクターとして
環境構築の容易さ
開発環境の快適さ
言語仕様としての魅力
将来性や使いどころの有無
リファレンス、情報の有無
やりがい
などにより減点されていく感じ
加点はされない
389 :デフォルトの名無しさん2011/04/03(日) 00:43:24.22
>>388
>楽しいのではなくて
>嬉しいだとか、楽(辛くない)という言葉の方が適切じゃないかな?

貴方の中での感覚としてはその方が適切なのかも知らんけど、
そんな個人的感覚で俺に同意を求められても困るわ。

このスレは何を以て楽しいと考えるかの共通認識を育てるのが
目的じゃないと思うし。
390 :デフォルトの名無しさん2011/04/03(日) 00:53:37.73
>>383
いや、ただの道具だから
仕事じゃその処理に特化した言語が一番

面白い言語を勉強するのは、ただ単に楽しみの為だけだったり、得るべき視点が有るから

だからこそ、業務以外の言語はとがった言語が良い
(純粋◯◯言語とか言われてるやつ)
391 :デフォルトの名無しさん2011/04/03(日) 00:54:48.94
言語は思考を規定するというけど、言語が規定する思考と自分の思考が
シンクロしていれば自然と楽しくなると思うけどなあ・・・

そういう感覚が分からない人は、ある意味勝ち組だと思うわ・・・
392 :デフォルトの名無しさん2011/04/03(日) 00:57:36.83
>>391
言語が思考を規定すると言うのは、確実にある
だからこそ、それを壊す為にとがった言語を勉強する
393 :デフォルトの名無しさん2011/04/03(日) 00:59:28.67
>>390
>仕事じゃその処理に特化した言語が一番

大抵のプログラマは大抵のプログラムを大抵の言語で書けるでしょ
汎用言語と呼ばれる言語は沢山あるし、本当に特化した言語なんて SQL くらいしか使わんわ
395 :デフォルトの名無しさん2011/04/03(日) 01:32:13.48
>>387
もしかしたら、君に楽しさを感じさせてる素は「言語」ではないのでは?

・奇麗に設計する行為が楽しい
・コードを短くする行為が楽しい
・プログラムの本質的な部分により注力する行為が楽しい
・生産性を上げる行為が楽しい

というように、楽しいのは「行為」だったりしない?

言語Aで奇麗に設計する行為よりも言語Bで奇麗に設計する行為の方が楽しい場合でも、
あくまでも楽しさを感じさせている本質は奇麗に設計する行為の方だと思う

言語の違いは、奇麗に設計したいという思いの実現しやすさに現れるもので、
やはり >>388 のように「たのしい」ではなく「らく」と表現するものではないのかな

このクラブが楽しいよと言うゴルフプレーヤーとか、
このラケットが面白いよというテニスプレーヤーとか、
ちょっと変だなって感じない?
(こういう人がいたらダメと言ってるわけじゃないよ)

これも「そんな個人的感覚で俺に同意を求められても困るわ」と言われれば、
確かにその通り俺のごく個人的な感覚なんで、もう何も言わないけど
396 :デフォルトの名無しさん2011/04/03(日) 01:40:09.33
そこまでいくと言語を楽しく感じるのは言語開発者くらいになっちゃうよ
397 :デフォルトの名無しさん2011/04/03(日) 01:46:30.25
>>395
このスレでは『言語が楽しい』で意味が通じているし、行為と道具の切り分けを
厳密に議論する必要性は感じないな。

『らく』というのはコールバックの例を挙げたからだと思うけど、もちろんそれは
一例であって、言語の設計が一貫していて『美しい』とか、想定したとおりに
プログラムが動く『安心感』とか、色々なファクターがあって『楽しい』んだと
思うけど。
398 :デフォルトの名無しさん2011/04/03(日) 01:54:06.73
人間は常に自分自身の正しさを証明したがる生き物だと言うけど、
どうでも良い話題で他人の証明に付き合わされるのはご免だわ。
399 :デフォルトの名無しさん2011/04/03(日) 01:57:28.35
ゴルフに例えるなら、人によって、ティーショットが好きとか
アプローチが好きとか、パットが好きとかあるでしょ?
で、そのショットによって向いてる=楽しいクラブって異なるじゃん。
ティーショットとかバンカーショットで、パター使っても楽しくないでしょ?
プログラムも同じで、その人が興味ある分野(好きなことショット)によって
楽しいプログラム言語(向いてる=楽しいクラブ)が異なるんじゃね?
400 :デフォルトの名無しさん2011/04/03(日) 01:58:23.07
いやー、言語学的にプログラミング言語にこだわるのも面白いと思うけどね
401 :デフォルトの名無しさん2011/04/03(日) 02:05:05.96
>>389
なんだかごめん
やきもち焼いた

>>395
> もしかしたら、君に楽しさを感じさせてる素は「言語」ではないのでは?
そうだよ。
> というように、楽しいのは「行為」だったりしない?
そうだよ。

> 言語Aで奇麗に設計する行為よりも言語Bで奇麗に設計する行為の方が楽しい場合でも、
> あくまでも楽しさを感じさせている本質は奇麗に設計する行為の方だと思う
何が言いたいのかよく分からないけど
それは現時点で綺麗に設計出来ていないからでしょ?
言語を理解するまでの行為(過程)
その言語に設計をする行為(過程)
どちらも同じで慣れりゃ飽きて刺激は薄れ楽しいという感覚は減少していく
なんでも同じでしょ。

まぁ赤の他人がどう考えようがどーでもいいんだけど
楽だな、嬉しいな、儲かるな・・・などの
全ての正の感情をまとめて「楽しい」としちゃうのに違和感を感じたので。
403 :デフォルトの名無しさん2011/04/03(日) 05:08:03.51
自分に興味の無い話題を、つまらんと切り捨てることが
クールだと思ってる厨二タンですね。
分かります。
406 :デフォルトの名無しさん2011/04/03(日) 09:02:14.50
この休日で一つ言語開拓しようとPythonに手を出してみたんだが糞過ぎてワロタ
まず print "hage" が通らなくて1時間くらい悩んだわ糞が
あとなんでLLってこうもそろってきもいコード書かせんだよ
書いてて吐き気がするぜ
407 :デフォルトの名無しさん2011/04/03(日) 09:11:33.23
人を中二病とレッテルを貼る人はその人自身が中二病
408 :デフォルトの名無しさん2011/04/03(日) 10:07:57.95
>>407のような人ですね
409 :デフォルトの名無しさん2011/04/03(日) 10:45:47.11
そうそう、>>408もそうだし、それにレスをした自分もそう
411 :デフォルトの名無しさん2011/04/03(日) 11:30:14.36
>>406
何でそんな中途半端な言語を。。。

オブジェクト指向を突き詰めたらどうなるか知りたい = smalltalk

関数型言語を突き詰めたら(以下略) = haskell

プログラムとデータの境界が無くなったら(以下略) = Common lisp
412 :デフォルトの名無しさん2011/04/03(日) 11:38:57.29
趣味なんだから好きに選ばせてやれよw
413 :デフォルトの名無しさん2011/04/03(日) 11:42:35.15
>>412
気に入ってるなら何も言わんよw
414 :デフォルトの名無しさん2011/04/03(日) 11:56:55.92
おもちゃを買ってもらったが、
合わなくてつまらなかったから、
そのおもちゃの悪口を言ってる

これと同じ精神状態なんだろ
415 :デフォルトの名無しさん2011/04/03(日) 12:52:00.09
Pythonは慣れりゃ楽だよ
楽しさはワンライナー化するなら面白いが激しく読みにくくなるw
416 :デフォルトの名無しさん2011/04/03(日) 13:45:26.38
PythonとRubyを比較するとどうなの?
420 :デフォルトの名無しさん2011/04/03(日) 16:57:00.32
>>416
何をどう比較するかによるが

ユーザー数は世界的にはpythonの方が多い

ライブラリもpythonの方が多い

日本語の情報はrubyの方が多い

ただ、どっちも特殊な開発でもしない限り、ライブラリも日本語の情報も、どっちを選んでも大差ない

どうせどっちもタダなのだから、実際に触って好きな方選べば良い
421 :デフォルトの名無しさん2011/04/03(日) 18:01:47.90
あとは求人サイトでキーワードのヒット数を比較してみるとか。
422 :デフォルトの名無しさん2011/04/04(月) 03:01:44.01
レンサバ借りてCGI作るのにはPerl/Python/Ruby/PHPくらいしか選択肢がないじゃん
423 :デフォルトの名無しさん2011/04/04(月) 03:04:44.95
>>422
それが何か問題でも有るんじゃろうか。。。。
426 :デフォルトの名無しさん2011/04/04(月) 09:46:11.67
2Dのアクションゲーム作りたいんだが
RubyかC言語ならどっちがいい?
あとRuby環境ってどれが良いの?
427 :デフォルトの名無しさん2011/04/04(月) 10:29:02.94
どの程度アクションさせるのかによるだろうけど、RubyとCの二択ならCじゃないの
428 :デフォルトの名無しさん2011/04/04(月) 10:36:08.72
>>427
スーパードンキーコングみたいな感じのゲーム作ってる。
RubyとCならCがいいのですか?

Ruby賞賛されまくってるけどどういうところが良いんだろう?
429 :デフォルトの名無しさん2011/04/04(月) 11:04:29.46
その二択ならね
Rubyが好きでたまらないならIronRubyでXNAとかSilverlightを使って頑張る手もあるだろうけど、どの程度パフォーマンスが出るのか知らない
432 :デフォルトの名無しさん2011/04/04(月) 11:11:46.55
スーファミの、スーパードンキーコングしかしらんが。
3Dでリメイクしてくれ。
スーファミは一端3Dで作ってあるが平面に落としてあるんだよね。
433 :デフォルトの名無しさん2011/04/04(月) 12:41:57.33
>>428
Cの利点は動作の速さと探せば色んなライブラリが出てくるところ
ゲーム用のライブラリはまずC言語用に作られることが多く
他言語のゲーム用ライブラリはCから移植されたものが多い
当然ながらゲーム作りのための資料はしっかりしてる
欠点は危ないコードが簡単に書けてしまうことや
抽象度の高い記述が苦手だったりすること

Rubyの利点は安全性や記述力
特に文字列の処理はPerlと並んで強力で
Cで面倒かつ気を遣う文字列処理が数行で安全に済んだりする
しかし動作は遅く、ゲーム用のライブラリや資料も揃ってるとは言い難い
揃ってるのはWebアプリ用のライブラリだな
あとはコマンドプロンプトなどのCUIをサポートするツールとして使うと
割としっくり来る言語かな
436 :デフォルトの名無しさん2011/04/04(月) 13:25:16.47
ここまでGrass無しとか
437 :デフォルトの名無しさん2011/04/04(月) 13:58:54.64
>>433
なるほどーー!!

RubyとDirectXの相性ってどうですか?
438 :デフォルトの名無しさん2011/04/04(月) 14:20:33.67
>>433
ゲーム用のライブラリってたとえば何がありますか?
440 :デフォルトの名無しさん2011/04/04(月) 14:49:44.34
Rubyでゲーム作るのは
爪切りでキャベツの千切りするようなもの
441 :デフォルトの名無しさん2011/04/04(月) 15:22:40.98
>>440
じゃぁ一番ゲームを作るのに適しているほぼツールといってもいいくらいの言語って
何ですか?FlashとかJavaですか?

ゲーム簡単に作りたい・・・
442 :デフォルトの名無しさん2011/04/04(月) 15:28:06.02
ホットスーププロセッサ。こんなのが作れる。


総合最優秀・ツェナワークス賞
Flower tales 儚き勇者と夜の爪痕
http://hsp.tv/contest2010/cntst_fresult.html
443 :デフォルトの名無しさん2011/04/04(月) 15:29:54.58
>>437
お世辞にも良いとは言えない、お勧めしない

>>438
WindowsならDirectXが正にゲーム用ライブラリだ
直接扱うのが苦手な人向けに派生ライブラリも色々あるので
ゲーム製作板などで情報収集しる

クロスプラットフォームならOpenGLが代表的
こっちもやっぱり派生ライブラリがあるので調べてみよう
444 :デフォルトの名無しさん2011/04/04(月) 15:36:31.76
>>441
ゲーム作るなら、最良はプログラミングではなく
ゲーム制作ツールだよ
プログラミングだと自由度はあるが、結構しんどいのは覚悟すべし
445 :デフォルトの名無しさん2011/04/04(月) 15:44:08.65
>>443
ありがとうございます、良く分かりました。

3Dのアニメーション作りたいんですよ^^
446 :デフォルトの名無しさん2011/04/04(月) 16:00:17.85

> 3Dアニメーション

ホットスーププロセッサ
447 :デフォルトの名無しさん2011/04/04(月) 16:01:37.57
>>445
ホットスーププロセッサで、どんなものが作れるかこれを動かしてみたらわかる。

Flower tales 儚き勇者と夜の爪痕
http://hsp.tv/contest2010/cntst_fresult.html
448 :デフォルトの名無しさん2011/04/04(月) 16:14:40.73
3Dのゲームエンジンは結構たくさんあるよ
好みのエンジンを見つけてからプログラム言語を決めても遅くない
449 :デフォルトの名無しさん2011/04/04(月) 17:30:23.36
HSPはゲームコンテストとかあって結構ノウハウとかあるんだよな
でも言語自体が他人におすすめできなくて…
450 :デフォルトの名無しさん2011/04/04(月) 17:45:47.70
ゲーム制作ツールで2DのアクションならMMFが良いと思うんだが日本ではコミュニティが皆無だな
ひもじ村の人が音頭取るとかすれば流行りそうだけど
451 :デフォルトの名無しさん2011/04/04(月) 18:01:03.80
processingという言語もゲームを作りやすいらしいね

ruby用の2Dゲーム用ライブラリにはstarRubyってのが有るんだと

ソースは日経ソフトウェア 2011年1月号
452 :デフォルトの名無しさん2011/04/04(月) 18:33:13.40
Star Rubyはかなり簡単です。プログラミング初心者の人にもすすめられます。
WindowsでしたらDXRubyもよいです。
454 :デフォルトの名無しさん2011/04/04(月) 19:21:48.26
>>436
Prologさへなしだからw
455 :デフォルトの名無しさん2011/04/04(月) 19:28:59.69
>>454
prologは何度か出てる
ただ、最近の入門書が入門書になってないので、個人的に勧めにくい

数値計算に "is" とか使うのが面白く無いのも有る
他は割とprolog気に入ってる
456 :デフォルトの名無しさん2011/04/04(月) 21:06:55.45
endと信者が激しくウザいが、rubyの正規表現及び文字コードに対する
柔軟性と対応力はガチだと思う。
仕事柄、いくつかの日本語文字コードを織り交ぜたテキスト処理が多いので
この点では非常に重宝してる。遅いけど。
pythonは見た目は非常に好みなんだが正規表現がネイティブじゃないのと、
文字コード対応でのデータの取り回しの悪さが残念。速いけど。
457 :デフォルトの名無しさん2011/04/04(月) 21:24:41.66
お前らなでしこやらないの?
仕事じゃ使えねーかもしれんが遊びレベルならスッゲー面白いよww
460 :デフォルトの名無しさん2011/04/04(月) 21:40:54.65
一番習得が簡単な言語はなんですか
464 :デフォルトの名無しさん2011/04/04(月) 22:11:06.55
>>460
手持ちのOperating Systemは?
468 :デフォルトの名無しさん2011/04/04(月) 22:37:51.05
C++/Qtを覚えるといいよ。
前に試したときは開発環境がオールインワンで、初心者にも良さそうだった。
http://www.anlyznews.com/2011/02/qt.html
469 :デフォルトの名無しさん2011/04/04(月) 22:39:52.21
いやいやw環境めちゃめちゃ影響あるだろw
471 :デフォルトの名無しさん2011/04/04(月) 23:01:57.45
楽に楽しくGUI作れる言語って何?
今C#でやってるけど、なでしことかやってみたい
472 :デフォルトの名無しさん2011/04/04(月) 23:03:00.55
>>469
OS依存の機能を必要としない限りまったく関係ない。
言語理解って意味から行くと、CとかC++みたくポインターある言語だと
OSはかえってじゃま。
474 :デフォルトの名無しさん2011/04/04(月) 23:09:18.81
マルチプラットフォーム対応な言語がイイよ
Javaいいじゃないか
475 :デフォルトの名無しさん2011/04/04(月) 23:34:05.61
SwingとかJava2Dとかあって、GUIを標準ライブラリだけで作れちゃうあたりがいいよね
476 :デフォルトの名無しさん2011/04/04(月) 23:35:05.62
今更ながら、python書くようになってrubyのありがたみが身にしみるようになったわ
477 :デフォルトの名無しさん2011/04/05(火) 00:14:14.21
LISP使ってる人の本読むと読みにくい
頭が洗脳されてるんだろうか
478 :デフォルトの名無しさん2011/04/05(火) 00:16:49.49
>>460
数学を素直に拡張した言語という意味ではhaskell
小学生レベルの数学(算数)の知識からでも、文字列操作とかも簡単に出来るし、自分の数学知識によって、言語への理解も深まって行く
現時点では「プログラミングhaskell」しか、本当に初心者向けの入門書が無いけど、適切な入門書があれば、初心者向けの言語としても良い言語だと思う
479 :デフォルトの名無しさん2011/04/05(火) 00:20:27.19
>>471
guiを簡単に作れるのは、そのc#が現在のベスト
delphiが現役だったらそっちの方がオススメだったんだけど(標準コンポーネントは無料版でもdelphiの方が多かった)
480 :デフォルトの名無しさん2011/04/05(火) 00:31:13.29
Delphiってもうしんだよね
昔TurboPascalがあれだけ騒がれたのに観る数もないのと似てる
481 :デフォルトの名無しさん2011/04/05(火) 00:33:23.34
標準ヘルプとabout delphiだけで、アプリが書けたDelphiは偉大。
482 :デフォルトの名無しさん2011/04/05(火) 00:38:28.62
GUIでマウスポインタが軽快なライブラリと相性が良い言語って何?
483 :デフォルトの名無しさん2011/04/05(火) 00:41:27.06
>>477
それ単純に古い本だから読みにくいんじゃないの
最近は LISP と全部大文字で書く人は少ないと思うわ
484 :デフォルトの名無しさん2011/04/05(火) 00:42:19.85
>>481
( ´・∀・`)へー

いつの時代もずっとdelphi気になってたけど、
結局一度も触れ合うことはなかったな。
ギコナビってdelphiで書かれてるんだっけ。
485 :デフォルトの名無しさん2011/04/05(火) 01:16:54.50
>>472
開発環境自体はOSに依存する。
486 :デフォルトの名無しさん2011/04/05(火) 01:18:11.14
>>479
C#は言語仕様が気に入らない。unsafeや構造体は要らない。
488 :デフォルトの名無しさん2011/04/05(火) 01:37:56.39
>>484
それはちょっと損してるな
あれは、本当に良い開発環境だったよ
欠点は、DirectXや新しいwinOSのサポートがmsよりも一歩遅れるだけだったから、DirextXや新しいOS独自の機能を使わない分には、すごく使い易かった

今でも、delphi7は入手可能だから、金に余裕があれば、買って見ると良い
delphi 入門 でググれば、良いページも見つかるし
489 :デフォルトの名無しさん2011/04/05(火) 01:41:58.72
当時はな
490 :デフォルトの名無しさん2011/04/05(火) 01:53:17.39
>>489
そうなんだよな。。。
borlandから離れてから、delphiはおかしくなった
個人的に(お世話になりながら言うのもなんだけど)delphi6で無料版出したのが、borlandの間違いだったんだろうな
どうせマイナー何だから、個人向けには2、3万で出し続けてれば良かったんだよ
もしくは、オープンソースの方が幸せになれたんじゃ。。。
491 :デフォルトの名無しさん2011/04/05(火) 01:54:53.07
色が変わらないIDEという印象がある。Delphi 4とか5までしか知らないけど。
492 :デフォルトの名無しさん2011/04/05(火) 02:12:37.08
>>491
6からデフォルトアイコンが変わったw
(5までのの方が好みだた)

2005からvbっぽい画面構成がデフォルトになった
(この時、vclを一時捨てた。ただのpascal版vc#。買う価値なし)

turboDelphiは無料の上にvcl使えたけど、重かった
(開発環境は.net1.1で、吐くのはexe)

今(2010)はよく知らん
どうも安いの出てるっぽいし、vclも使えるらしい

でももう、信用出来ないから、要らん
493 :デフォルトの名無しさん2011/04/05(火) 05:39:28.22
>>478
習得時間はかなりかかる方に分類されると思うが。
494 :デフォルトの名無しさん2011/04/05(火) 07:00:33.93
>>493
そうでもない
自分とかは、普通の言語を覚えちゃってるから、変に苦戦するけど、メモリの概念とかを覚えなくても、数学と同じ概念だけで繰り返しや分岐(パターンマッチ)を教えるられるのは、むしろ、pcの仕組みを良く分かってない人にも教えられる分、初心者向けとも言える

モナドだって、知ってたら理解は深まるが、知らなくても使える
495 :デフォルトの名無しさん2011/04/05(火) 07:15:09.74
>>494
私もHaskellがそんなに難しいとは思わないが、
再帰関数を直感的に理解できる程度の人だと、
LISPやPrologは3時間の講習で使えるようになる。
Haskellはとても無理。
Prologの関数評価部分から独立して成長したErlang
でも無理。
496 :デフォルトの名無しさん2011/04/05(火) 09:04:45.27
delphiたしかに良かったけど今じゃなあ・・・

今は簡単にGUI作れるのはC#が受け継いだ感じだしね
497 :デフォルトの名無しさん2011/04/05(火) 09:42:56.78
delphiとc#は同じ開発者が関与しているだけあって
使い勝手が似ている。移行も容易かと。

498 :デフォルトの名無しさん2011/04/05(火) 09:58:09.39
で結局RUBYは何に向いてるの?

ただ"良い"だけじゃわかんねーよ。

アプリやゲーム作るのには向いてるの?

perlと比べて何がすごいの?
500 :デフォルトの名無しさん2011/04/05(火) 10:07:47.08
>>497
C#はAndroidでも使えるの?
502 :デフォルトの名無しさん2011/04/05(火) 10:22:33.51
逆に聞くが、アプリやゲーム製作以外でプログラミングって何するときに
使うんだww?


504 :デフォルトの名無しさん2011/04/05(火) 10:30:09.39
>>502
シミュレーション
505 :デフォルトの名無しさん2011/04/05(火) 10:31:27.77
テキスト処理するスクリプトなんか、rubyの主な利用目的だけど、
それはアプリかと言われたら、ツールであると答えるだろう。
506 :デフォルトの名無しさん2011/04/05(火) 10:47:16.81
動的言語全般に言えることだけど、自分で使うためのツールを素早く作るのに向いてるんじゃないの
テストとか適当に済ませられる範囲の規模ならね
507 :デフォルトの名無しさん2011/04/05(火) 11:09:57.94
高校の時はプログラミングの知識あまり無かったけど、数学の宿題いっぱい出た時とかプログラムで解いてたなww
510 :デフォルトの名無しさん2011/04/05(火) 12:47:18.69

Groovy(グルービー)は、Javaプラットフォーム (Java仮想マシン、JVM) 上で動作するアジャイルな動的言語である。

http://ja.wikipedia.org/wiki/Groovy
511 :デフォルトの名無しさん2011/04/05(火) 12:52:22.09
>>495
ん。。。
lispやprologもそんなに時間掛からんと思けど、haskellのどの辺に、教える時間が掛かりそう?
513 :デフォルトの名無しさん2011/04/05(火) 13:01:53.91
514 :デフォルトの名無しさん2011/04/05(火) 13:41:19.14
>>511
私の場合は20年近く前から知ってるつもりだった。
しかし、実際にコードを読んでみるとさっぱり分からな
いので、4-5年前に「ふつうのHaskellプログラミング」と
いう本が出たのを機会に勉強した。一章に少なくとも
1時間は掛けた。それでも後半は苦しく、モナドに至っては
何回読んでもあの本では理解できない。
それと、何がHaskellにとって必須のものかの選択が
できなかった。
516 :デフォルトの名無しさん2011/04/05(火) 13:47:48.53
関数型は手続き型と比べて使う脳みそが違うかも
書いてて、パズルの問題を作ってる感覚だわw
518 :デフォルトの名無しさん2011/04/05(火) 14:14:15.86
>>514
ん?
その言い方だと、lispやprologは3時間以内に入門書読み終わって理解出来る所まで行けるって事?
流石にそれは無いと思うし、自分の想定してるのは、初心者に取り敢えず簡単なプログラムを書けるようになってもらう事と、独学のための情報を提供する事ぐらいなんだが
519 :デフォルトの名無しさん2011/04/05(火) 14:18:08.98
>>514
本で独習するとどうしてもそんな感じ。
LispやPrologでも同じ結果になると思う。
3時間と言うのは講習会とか、要約された
Webサイトで学習する場合だろ。
520 :デフォルトの名無しさん2011/04/05(火) 14:20:27.77
Haskellは、まず実行環境が良く分からん。
521 :デフォルトの名無しさん2011/04/05(火) 14:22:43.34
Haskellは茨城、石川、京都で注目されているプログラミング言語のようだ。
http://www.google.co.jp/trends?q=Haskell+&ctab=0&geo=jp&date=all&sort=0
524 :デフォルトの名無しさん2011/04/05(火) 15:09:15.85
haskellは何度かやってみようと調べるんだが、やっぱりよくわからんかったわ。
文法的な説明ばかりで、いまいち使い所がピンと来ないんだわ。
みんなは具体的にhaskellで何作ってるの?
525 :デフォルトの名無しさん2011/04/05(火) 15:10:31.07
テキスト処理が楽ってよく言うが、その基準ってなんなんだ
CGI作るのにPHPかRUBYかPYTHONやろうと思ったけど
どれも結構文字コード周りめんどくさそうだったぞ
526 :デフォルトの名無しさん2011/04/05(火) 15:12:54.47
Haskellは関数として相応しいものを書く分にはいいんだけどね・・・
使いどころとか考えたら負けかも
527 :デフォルトの名無しさん2011/04/05(火) 15:26:53.48
>>525
正規表現を使っても使わなくても、
まったく、同程度の手間でプログラミングできます。
こういう「テキスト処理が楽」な言語はない。
528 :デフォルトの名無しさん2011/04/05(火) 15:29:02.51
(CやC++と比べて)文字処理が容易って意味だと思う
標準ライブラリで関数一発で文字コード変換できるのはすごくありがたいよね
529 :デフォルトの名無しさん2011/04/05(火) 15:45:59.51
>>524
>>513
530 :デフォルトの名無しさん2011/04/05(火) 16:38:32.45
>>525
別に深い意味はなくて、単に正規表現リテラルがあったり
明示的なフォーマット用の関数を使わずに
文字列リテラルの"foo #{bar} #{1 + 2}"みたいなのを展開してくれたり
そういう言語が「テキスト処理が得意」と言われることが多いと思う

Pythonは上記に当てはまらないし、特にテキスト処理が得意という
言語ではないんじゃないか



531 :デフォルトの名無しさん2011/04/05(火) 18:18:12.04
関数型の人ってモナディウスしか挙げないよね
あれの存在意義って結局、関数型で実装してみましたっていう程度だけで
単純にゲームの実装として評価すれば全然たいした事ないレベルだし
手続き型で実装する事に対して優位性が何も示せてない気がする
533 :デフォルトの名無しさん2011/04/05(火) 18:45:34.87
なにDelphiってもう過去の遺物扱いなの?
534 :デフォルトの名無しさん2011/04/05(火) 18:51:27.12
10年前ならいざしらず企業の求人票の使用言語にもう書いてないだろ?
535 :デフォルトの名無しさん2011/04/05(火) 19:24:16.53
>>524
自分は何か作ると言うか、アルゴリズムの勉強とか、unixのコマンドをhaskellで書いて見たりとかかな

使い所としては、pags(perl5だか6だかをhaskellで実装したもの)が有名
囲碁や将棋のバックエンドを作ったり、コンパイラを作ったりするのに、すごく向いてると言われてるね

haskellの学習は、haskellがプログラミング言語だという事をいったん忘れた方が理解が早いと思う

あれは、数学にリスト+αを加えて、プログラミング言語として形にしたものだと考えた方がしっくりくる

入門程度で使うものなら、数学+リストだけで大抵の関数は「0」から作れる
(つまり、関数を覚える必要はない)

こういう関数を作ってみましょう。と、いきなり言える
536 :デフォルトの名無しさん2011/04/05(火) 19:44:22.41
うーん,たとえばHaskellでさいころを2つ振って合計値を求める関数はどうかけるん?
537 :デフォルトの名無しさん2011/04/05(火) 19:57:19.78
>>535
> haskellの学習は、haskellがプログラミング言語だという事をいったん忘れた方が理解が早いと思う

同意

Haskell はプログラミングだと考えると
どうしても C 言語などのプログラミングを意識して躓く

C だとこう書くから Haskell だとこう書けばいいのか、
と無理矢理理解しようとする(実に無駄な遠回り)

Haskell はプログラミングじゃなくて
「仕様書を書いている」と考えてくれ

(実際問題として仕様書の様に書ける言語ではないが、意識として)
538 :デフォルトの名無しさん2011/04/05(火) 20:09:14.07
>>536
意地悪やねw
乱数は流石に自作出来ない
(一応、擬似乱数の計算式を知ってれば擬似乱数は作れるはずだが)

あとは、1-6までの乱数をそれぞれ出して足すだけだから、どの言語でも変わらない

くそう、いきなり出鼻を挫かれた
541 :デフォルトの名無しさん2011/04/05(火) 20:24:00.35
そのまんまってのも、気になるので、haskellっぽく無い部類の使い方だから、ちょっと嫌だけど、書いてみた

2つのサイコロを振って、出た目の合計を求める関数

import System.Random

rollDice1 :: IO Int
rollDice1 = getStdRandom (randomR (1,6))

rollDice2 :: IO Int
rollDice2 = getStdRandom (randomR (1,6))


sumTwoRollDice :: IO Int
sumTwoRollDice = rollDice1 + rollDice2

動作確認してないけど。。。
542 :デフォルトの名無しさん2011/04/05(火) 20:26:14.97
>>538
> 一応、擬似乱数の計算式を知ってれば擬似乱数は作れるはずだが

それを学んで Haskell で表現しようとする事が凄く Haskell の勉強になるんだよ

「こういう関数を作ってみましょう」の「こういう」の中身を先ず理解しなければ、
どんな初歩的な関数でも絶対に作れない

「こういう」の中身を学ぶ事自体がそのまま Haskell の勉強になる
だって、他言語に比べて「こういう」が比較的そのまま Haskell の関数で表現できるんだから


まずは線形合同法を使って「擬似乱数とは何か」を定義する事から学べばいい

rand :: Int -> Int
rand prev = (A * prev + B) `mod` M

ABMは定数(だから倍角で書いた)

では、他の擬似乱数アルゴリズムは何かあるかなと先へ進む
543 :デフォルトの名無しさん2011/04/05(火) 20:38:58.94
>>541
言わんとしていることは分かるけど、これくらいの動作確認はしような

sumTwoRollDice = rollDice1 + rollDice2 じゃなくて

sumTwoRollDice = do
n1 <- rollDice1
n2 <- rollDice2
return (n1 + n2)
545 :デフォルトの名無しさん2011/04/05(火) 20:41:08.23
他のスレに出題したCOPYです。これを仕様と考えて、Haskellプログラムとして表現してください。
<問題>
 なおここで、女性の官人についても触れておくべきであろう。後宮に奉仕する女官を総称して宮人と
いうが、高級の女官は命婦といった。命婦のうちでも五位以上の階位のある者を内命婦と呼び、五位以
上の官人の妻は、自分で位をもっていなくても、夫の資格によって五位に準じて宮中に出入することを
許されていた。これを外命婦という。だから、五位以上の貴族の妻は、位階の有無にかかわらず女官で
あったと考えてよい。
-- 「律令制の基調」 村尾次郎著 塙書房 昭和35年 -- より
546 :デフォルトの名無しさん2011/04/05(火) 20:44:51.59
>>542
そうなんだよね
手元に資料無いし、言われるまで興味持ってなかったからググった事無いけど、擬似乱数のアルゴリズムを、ほぼそのままhaskellはコードに落とせるはず何だよね

自分はちまちまライブラリ関数のクローン作って遊んでるだけなんだけど

他の言語じゃ「どうやって作るの?」って思うのも簡単に作れるのが、すごく楽しい

出来れば、java版やruby版の自作length関数とか、見てみたい
どうやって自作するのか想像出来ない
547 :デフォルトの名無しさん2011/04/05(火) 20:47:39.36
>>542

>>545 を見て、大事なことを言い忘れてた事に気づいた

そもそも乱数に興味が無ければ、
乱数という題材は少なくとも Haskell の勉強には全くならない
理解力は全く上がらないどろか、ストレスか溜まる一方

だから、自分に興味がある題材を使って、
「仕様」を考えて Haskell で表現するってのが
Haskell を理解する早道だと思う
548 :デフォルトの名無しさん2011/04/05(火) 20:48:36.43
ループするのにわざわざ再帰しなきゃいけないHaskellなんて使いたくもないな
入出力するのにわざわざモナドがどうとか知りたくもないしストレスが貯まるだけ
549 :デフォルトの名無しさん2011/04/05(火) 20:52:01.46
>>545
ええと、問題ってより、歴史的事実をただ書いてるだけのような。。。
550 :デフォルトの名無しさん2011/04/05(火) 20:56:25.65
きっとprologの宣伝材料だよ。
この後でてくるコードに期待しよう。
551 :デフォルトの名無しさん2011/04/05(火) 20:57:57.06
Haskellを普及したいと思うが、Haskellで楽に書けるものは
別にCでもLispでも楽に書けるんだよね。
擬似乱数アルゴリズムもその類。
552 :デフォルトの名無しさん2011/04/05(火) 20:58:34.47
>>548
> ループするのにわざわざ再帰しなきゃいけないHaskellなんて使いたくもないな

それ、色んなところで言われるからどうにかしたいんだが、

Haskell を使っていけば分かるが、ループという考え方自体がそもそも間違い

そして、ある値を得るために何回も繰り返し計算することは、
たいていの場合は「自分で再帰を明示的に書くことは無い」
普通は無限リストなどの材料や zip、foldr などの標準的な関数を使って表現する
どうしてもという場合だけ、自作する

> 入出力するのにわざわざモナドがどうとか知りたくもないしストレスが貯まるだけ

これもよくある話だが、普通に Haskell を学んでいけば、
君が思ってるよりもかなり早い段階で「わざわざモナドを考える」事無しに
入出力で「自然に」モナドを扱えるようになる
未熟な段階からモナドって何と考えるからストレスになる

モナドとは本質的に何かを学ぶのは別の話
553 :デフォルトの名無しさん2011/04/05(火) 20:58:41.03
Haskell使う人ってみんなこんな感じ?
温度の差を感じるわ
554 :デフォルトの名無しさん2011/04/05(火) 20:58:41.39
C++でなんでも取り込んでJavaでいらないもの捨てたから過去の言語はもうあまり意味が無いのかな?
555 :デフォルトの名無しさん2011/04/05(火) 21:01:00.62
>>533
そんなわけないでしょ

同じ Haskell を使っていても、世界中に色んなタイプの人がいる
556 :デフォルトの名無しさん2011/04/05(火) 21:02:57.08
>>553
少なくともこのスレだとこんな感じだよ
557 :デフォルトの名無しさん2011/04/05(火) 21:07:58.62
楽しんでやってそうなのは微笑ましいけど、若干不毛な気もしないでもない
558 :デフォルトの名無しさん2011/04/05(火) 21:08:23.18
>>548
さっきの見たいな、悪い使い方で評価されるのは嫌だな。。。

haskellって、外部とのやり取りは苦手だけど、内部処理はすごく簡単に書けるから、自分は将来的にはhaskellでdllを吐かせて、それをc#とかで呼び出せる様になりたいって思ってるんだ
559 :デフォルトの名無しさん2011/04/05(火) 21:09:52.30
Haskell熱の初期症状だな。
まあ、すぐに普通のプログラミング言語として評価順序を気にして使うようになる。
そしてサンクをつぶすのに疲れ果てた頃、正格評価言語に舞い戻る。
560 :デフォルトの名無しさん2011/04/05(火) 21:14:46.59
そこで理解を諦めるともの凄くもったいないな

諦めさせないようにするためのガイドブックが非常に少ないから仕方ないが
561 :デフォルトの名無しさん2011/04/05(火) 21:17:39.94
>>549
企業実務の仕様って大体こんなものだよ。
論理的なよい文章だと思うよ。

これを一旦頭に納めて、等価な「仕様」を
Haskellで書いて欲しいということだ。
562 :デフォルトの名無しさん2011/04/05(火) 21:20:08.52
>>553
いや、自分がちょっとはしゃいでるだけ
何とか、haskellは難しいって先入観を壊したかったんだよね

haskell板は、ちまちま書いてる自分にはアカデミック過ぎるんだけど、初心者でもちまちまだけど、他の言語より、結構書ける様になるよ
(自分がそんな感じ)

文字列の文字数を求める関数は、どう動くべき?って考えたら、ほとんど、そのままコードに出来る
563 :デフォルトの名無しさん2011/04/05(火) 21:38:04.79
純粋な関数型は微妙。関数型が輝くかどうかは手続き型とのシナジーにかかってると思うな
564 :デフォルトの名無しさん2011/04/05(火) 21:41:00.20
>>547
んなことは無いだろ
乱数もなきゃモンテカルロもできなければゲームも作れないじゃん
乱数発生器なんてSICPの例題にも出てくるし

ふつーの擬似乱数ジェネレータはどっかに隠した状態を使うから
純粋関数ではない(線形合同法は純粋関数として実装可能だけど
乱数ジェネレータが純粋関数のままでは非常に使い勝手が悪い)
Haskellならだからモナドとか使うんだろ?

純粋でない、ゆえにHaskell向き出ない題材はストレスがたまるから嫌だってのは
あれだな
汚い現実から逃げてるひきこもりの発想みたいだ
565 :デフォルトの名無しさん2011/04/05(火) 21:42:38.44
Rubyは本物のオブジェクト指向言語って言うけどJavaとどう違うの?
566 :デフォルトの名無しさん2011/04/05(火) 21:43:55.59
Rrubyが本物のオブジェクト指向言語かとか
本物のオブジェクト指向言語とは何かとか
そういう疑問はさておくとして
Javaはプリミティブ型がオブジェクトではないね少なくとも
567 :デフォルトの名無しさん2011/04/05(火) 21:46:48.43
>>561
うへえ。。。
プロじゃなくて良かった

ええと、これが仕様だって事は、その女官が内命か、外命(婦)か、その他かを判定すれば良いの?
568 :デフォルトの名無しさん2011/04/05(火) 21:47:51.38
>>561
Haskell の考える仕様って、ちょっと違うような気がする
Haskell って先ず初めに、どんな値が欲しいか、を考えるんじゃないか

こんな値が欲しいというのが仕様の根底にあって、それが関数の戻り値となる
例えば囲碁ゲームなら勝敗という値が欲しいし、
テキストエディタなら保存するための文字列という値が欲しい

その値は何を材料にして得るのかが関数の引数となって、
その材料からどのよう「な」計算をするのかが関数の中身となる
(「に」じゃなく「な」)
その計算の中身をまた、欲しい値と材料と計算に分けて決める

これを再帰的に繰り返して、全体としてどのような計算をするのかを決めるのが、
Haskell の仕様だと俺は勝手に思ってる

haskell は関係を表現するのではなくて、計算を表現する
だから、そもそも「どんな値が欲しいか」が決まらないと、何も決定できない

>>545 を Haskell の「仕様」として考えろと言うが、欲しい値は何なのだ?
569 :デフォルトの名無しさん2011/04/05(火) 21:48:55.94
そもそもオブジェクト指向ってのは設計における考え方なんだから
言語の対応が完全かどうかなんてどうでもいい
571 :デフォルトの名無しさん2011/04/05(火) 21:52:42.63
信者はどの分野でも外から見れば皆痛いです

あなただって、他人から見れば痛いと思われてるところがあるかもしれません
572 :デフォルトの名無しさん2011/04/05(火) 21:54:42.94
しかしSmalltalk+Altoを継承した いやそれ以上のものが今、目の前のPCで動かせてると思うと感慨深いものがある
和製Smalltalkは98+68000ボードだったんだよな 物凄く高価で
573 :デフォルトの名無しさん2011/04/05(火) 21:55:11.04
>>568
数学的な仕様表記を得意とするHaskellが
冗長な自然言語文字列の中に深い意味のある
仕様を、自然言語の文字列と結びつけながら
どう処理していくかに興味がある。
Haskellプログラマにとってもよい経験になると
思うけれど。
574 :デフォルトの名無しさん2011/04/05(火) 21:56:40.50
Haskellってよく知らないけどもうこのスレが…
専用スレでやっていいんじゃないか、ここまでくれば
575 :デフォルトの名無しさん2011/04/05(火) 22:01:07.06
>>573
確かに私も研究としては面白そうだし興味はある

ただ、普通の Haskell プログラマがやることでは無いような気がする
>>545 をいきなり Haskell でプログラムしろと言われても、
普通は何をどうすればいいのか分からない

Haskellプログラマにとってもよい経験になるとは「今はまだ」思えない
Haskell プログラマといっても入門者から熟練者まで様々だし
576 :デフォルトの名無しさん2011/04/05(火) 22:10:30.30
>>546
RubyだとArray#sizeの代わりってことになるが別に難しくないぞ
ary.inject(0){|r,i|r+1}

イテレータを使うのが嫌、かつ再帰で書きたいとかなら
class Array
    def mysize
        empty? ? 0 : self[1..-1].mysize + 1
    end
end
577 :デフォルトの名無しさん2011/04/05(火) 22:19:33.86
int length(char *p) { if(*p) 1 + length(p+1) else 0; }
578 :デフォルトの名無しさん2011/04/05(火) 22:20:12.94
大嫌いだったJavascriptが使ってるうちに好きになってきたんだけど
WebクライアントサイドでJavascriptしか使われないのはなぜ?
独占的で最強すぎね
579 :デフォルトの名無しさん2011/04/05(火) 22:28:31.22
>>545
一応、作って見たよ
ただ、変数名は漢字のままで勘弁
良い変数名がほとんどの変数で思い付かなかった


data ステータス = 内命 |外命 |一般女官 |女官ではない
data 仕事 = 女官|妻

女官判定 :: 仕事->Int->ステータス

女官判定 仕事,位 | (位 >5) && (仕事==妻) = 女官ではない

女官判定 仕事, 位 | (位 >5) && (仕事==女官) = 一般女官

女官判定 仕事, 位 | (位 <=5) && (仕事==妻) = 外命

女官判定 仕事, 位 | (位 <=5) && (仕事==女官) = 内命


プログラム苦手なんで、疲れたよ。。。
581 :デフォルトの名無しさん2011/04/05(火) 22:31:31.73
>>579
私はHaskellプログラマではないから細かいところは
よくわからないけど、
いいんじゃないの。
582 :デフォルトの名無しさん2011/04/05(火) 22:37:24.21
>>581
自分もhaskellは勉強中なので、ドキドキしながら挑戦して見ました
584 :デフォルトの名無しさん2011/04/05(火) 22:56:40.84
>>577
returnが無いけど、再帰だと値を返せるものなの?
585 :デフォルトの名無しさん2011/04/05(火) 23:16:47.32
>>579
それは考えすぎ。
これで十分。

type 宮人 = 後宮に奉仕する女官
type 命婦 = 高級の女官
type 内命婦 = (命婦, 五位以上の階位のある者)
type 外命婦 = 五位以上の官人の妻
type 要請 = 五位以上の貴族の妻 -> 女官
586 :デフォルトの名無しさん2011/04/05(火) 23:18:20.85
>>584
確かに。
int length(char *p) { if(*p) return 1 + length(p+1) else return 0; }
もしくは
int length(char *p) { return *p? 1 + length(p+1) : 0; }
だね。
587 :デフォルトの名無しさん2011/04/05(火) 23:30:44.02
>>584,586
まぁ、待て
PerlやRubyみたいに、最後に評価した値が返る仕様のCに似た言語かもしれんぞ
588 :デフォルトの名無しさん2011/04/05(火) 23:33:36.75
>>574
ごめんなさい
これで終わります
haskellスレは、ちょっと入門者には入り辛くて。。。

他の言語でも書けるけど、奇数(odd)、偶数(even)の関数を相互再帰で書くと、ちょっと感動しますよ

haskellな人も、haskellじゃない人も、好きな言語でお試しあれ
(最後の最後まで痛いままで去りますw)
589 :デフォルトの名無しさん2011/04/05(火) 23:42:57.59
bool even(int x) { return x == 0 || x > 0 && odd(x-1) || x < 0 && odd(x+1); }
bool odd(int x) { return x == 1 || (x > 0 && even(x-1)) || (x < 0 && even(x+1); }

おお、確かに余りの遅さに感動。
590 :デフォルトの名無しさん2011/04/05(火) 23:45:08.20
そういうことなのかwww
とりあえず実用性は考えないのがマナーということは分かった
591 :デフォルトの名無しさん2011/04/05(火) 23:55:07.09
> 実用性は考えないのがマナー

ほら見ろ、誤解(馬鹿に)された
592 :デフォルトの名無しさん2011/04/06(水) 00:10:39.62
>>589
0か1に終息させるんだからx>1で良いんじゃね?
even()に1が渡ったときがキモイけど、それはodd()に0が渡ったときと同じだし。
593 :デフォルトの名無しさん2011/04/06(水) 00:24:20.65
確かに。
bool even(int x) { return x == 0 || x > 1 && odd(x-1) || x < 0 && odd(x+1); }
bool odd(int x) { return x == 1 || x > 1 && even(x-1) || x < 0 && even(x+1); }

こうか。
594 :デフォルトの名無しさん2011/04/06(水) 00:25:54.68
相互再帰使う条件で最適化するとこんな感じか?
って-x駄目なのか…orz

bool even(int x) { return x>1 && odd(x-1) || x<0 && even(-x) || x == 0; }
bool odd(int x) { return x>1 && even(x-1) || x<0 && odd(-x) || x == 1; }
595 :デフォルトの名無しさん2011/04/06(水) 00:44:05.08
>>591
どうせ、最適化してもc言語に勝てる訳でも無いんだし、ここは割り切って、必ず1、0で終わる性質に注目してみたり、アルゴリズム的に速く出来る性質を模索したりする方向で良いと思うけどなぁ。。。
596 :デフォルトの名無しさん2011/04/06(水) 00:47:35.51
>>593
evenは前回と同じのままで良い
変更するのはoddだけ
597 :デフォルトの名無しさん2011/04/06(水) 01:03:25.31
>>596

でも読みやすさを考えるなら>>593と言うか多分、下記の順序の方が良い

bool even(int x) { return x>1 && odd(x-1) || x<0 && odd(x+1) || x == 0; }
bool odd(int x) { return x>1 && even(x-1) || x<0 && even(x+1) || x == 1; }
598 :デフォルトの名無しさん2011/04/06(水) 01:11:09.29
間違えた
この場合&&と||じゃ駄目だった…orz

bool even(int x) { return x>1 ? odd(x-1) : x<0 ? odd(x+1) : x == 0; }
bool odd(int x) { return x>1 ? even(x-1) : x<0 ? even(x+1) : x == 1; }
600 :デフォルトの名無しさん2011/04/06(水) 05:48:58.80
HaskellはI/Oが弱いイメージがある。
601 :デフォルトの名無しさん2011/04/06(水) 06:12:01.92
>>600
>>543のコードでも分かる様に、I/Oや乱数みたいな副作用のある部分は、普通の言語と変わらなくなる

言語として苦手って言うより、プログラマの方が脳の切り替えに戸惑う
602 :デフォルトの名無しさん2011/04/06(水) 07:26:29.02
別に苦手じゃないだろ
確かに>>543はちょっと長いけど、短かいのが好みなら
sumTwoRollDice = liftM2 (+) rollDice rollDice
とか
sumTwoRollDice = (+) <$> rollDice <*> rollDice
とか書ける
603 :デフォルトの名無しさん2011/04/06(水) 08:10:40.08
静的な型は文字列処理が弱いイメージがある
文字列のある部分は、動的な型と変わらなくなる

あとなんだっけ、不変の性質に注目しろ
文字列のI/Oはどの言語でも同じ
604 :デフォルトの名無しさん2011/04/06(水) 09:25:08.10
>>579
>>535 >>537を書かれたのとは別の方かもしれないけど、
数学的なアルゴリズムに留まらずに、
企業実務的な問題の仕様としてHaskellプログラムを
発信する活性のグループが現れたら、Haskellも
あっという間にメジャーになると思うよ。
605 :デフォルトの名無しさん2011/04/06(水) 09:45:49.34
言語より何が出来るかだ。最新の機能に即座に対応するとかは使える言語。
607 :デフォルトの名無しさん2011/04/06(水) 11:04:31.53
実際そんなもんじゃね
クライアントは他の物見て「あれみたいな機能つけれ」って言うだけだし
その機能をライブラリから持ってくるか、自分で作るかで雲泥の差がある
610 :デフォルトの名無しさん2011/04/06(水) 20:07:08.55
数学と言えばMathematica、行列演算と言えばRで、実はHaskellには使い道が無い。
614 :デフォルトの名無しさん2011/04/06(水) 20:34:01.03
Project Euler の問題を解くのを「使命」と考えたらつまらん
もっと純粋に計算機科学を楽しもうよ
615 :デフォルトの名無しさん2011/04/06(水) 20:41:35.00
>>610
まあ、haskellはそれ自身が数学の研究対象だったりするから
haskellって、数学に最も近いけど、だからこそ?どこまで表現出来るか謎が多い言語でもあるんよ
618 :デフォルトの名無しさん2011/04/06(水) 22:34:52.58
他人が書いたPerlプログラムとC++プログラムを読まされるのはとても楽しくない
619 :デフォルトの名無しさん2011/04/06(水) 22:43:03.14
完全に同意。
しかし他人に読めないPerl/C++を書くのが楽しいという輩が
一定以上いるのでこれらは絶対に無くならない。
620 :デフォルトの名無しさん2011/04/06(水) 22:50:02.72
その点Haskellは数学がベースなので、読みやすい。
f,g,hを呼び出すコードもこんなに自然に。

flip (.) h . ((.) . (f . g))
621 :デフォルトの名無しさん2011/04/06(水) 22:52:36.37
>>620
「呼び出す」に対してはあまり直感的でないなそのコード
「呼び出す」ってのは動作なワケで、手続き型っぽい概念だと思う
622 :デフォルトの名無しさん2011/04/06(水) 22:55:00.79
>>1
過去形で言うのならBASICだな。
ポケコンでBASIC書いてた頃が一番楽しかった。

今ではCかJavaかRubyだけが楽しい。
C++はバケツに穴が開いてるような感じ。
C#は消臭剤が標準装備されてるような臭さ。
623 :デフォルトの名無しさん2011/04/06(水) 22:56:21.53
Haskellは読みにくいってこと?
624 :デフォルトの名無しさん2011/04/06(水) 22:59:30.31
過去形で言うならZ80アセンブラが楽しかった
ポケコンいじってLEDをピカピカさせたりステッピングモーターを回転させたりしてるだけだったけど
625 :デフォルトの名無しさん2011/04/06(水) 23:03:52.77
>>620
何で昨日の自分みたいなのがw

ここはあえて、反論してみよう
カリー化で、見た目の変数をガンガン減らせるから、書こうと思えば、そうでも無いんじゃない?
626 :デフォルトの名無しさん2011/04/06(水) 23:06:38.66
>>623
いや、多分「適用」と言え!って意味だと思ふ
627 :デフォルトの名無しさん2011/04/06(水) 23:12:06.75
>>624
picマイコンで今でも手軽に楽しめるぞw
プログラミングか?と言われると、ちょっと疑問だが、確かに楽しい
628 :デフォルトの名無しさん2011/04/06(水) 23:15:15.16
最近Haskell始めたんだけど書式が生理的に受け付けないw
もう少しC系と近くしてくれてもいいのに・・・
629 :デフォルトの名無しさん2011/04/06(水) 23:15:42.07
call by name(Haskellの引数評価規則)も名前呼びだし
でなく名前による適用にすべき。
630 :デフォルトの名無しさん2011/04/06(水) 23:45:37.70
>>628
あれはプログラミング言語じゃ無くて、数学だと思え
リストを得た数学だと
(正確には色々得た数学)

まずは、そこからだ
631 :デフォルトの名無しさん2011/04/06(水) 23:53:44.59
全然、数学っぽくないし。
632 :デフォルトの名無しさん2011/04/07(木) 00:04:50.01
>>631
え、文字コードの制約上、記号が英数字になってるけど、あれは数学だよ

数学を無理やりpcに押し込んだら、ああなったって感じ

副作用の部分は、かなりプログラミング言語だけど
633 :デフォルトの名無しさん2011/04/07(木) 00:07:07.70
それで、数学知らないとどうなるんだい?
634 :デフォルトの名無しさん2011/04/07(木) 00:10:26.71
>>633
別に
算数の知識でも書けるし
懐が広いと感じるだけ
636 :デフォルトの名無しさん2011/04/07(木) 00:13:18.14
>>632
Haskellでエラトステネスのふるいを3行でかけるとかあるが、これは数学というよりアルゴリズム。
Rの方が線形代数を使えるので、よほど数学っぽい。
637 :デフォルトの名無しさん2011/04/07(木) 00:14:36.05
もう遅いかもしれんが
>>628は::とか->とか=>とかスペース区切りが気になるってことでよろしく
643 :デフォルトの名無しさん2011/04/07(木) 18:05:56.06
Rは行列型があるので、内積や外積、クロネッカー積の計算が完結に記述できる。
関数型で、シンタックス・シュガーとして代入演算子がある。
ただし汎用性は無い。データを読み込んで、データ解析を行い、図表を作成するためのプログラミング言語。
644 :デフォルトの名無しさん2011/04/07(木) 18:13:57.12
fortranよりいいの?
645 :デフォルトの名無しさん2011/04/07(木) 18:53:20.47
>>637
余程の事が無い限り、使わなくて良いじゃん
何の為の型推理よ
646 :デフォルトの名無しさん2011/04/07(木) 19:08:41.20
>>645
逆、余程のことが無い限り型シグネチャは書いた方がいい
647 :デフォルトの名無しさん2011/04/07(木) 19:27:06.24
>>646
人が読む為にはね

本題が型宣言がc言語と違うのが嫌だって言われてるんだから、カリー化をサポートする以上はc言語っぽくなり様が無いので諦めろって言うか
極力使わない様にしろと言うしか無いだろ
648 :デフォルトの名無しさん2011/04/07(木) 19:49:29.15
C#使えばいいじゃん
649 :デフォルトの名無しさん2011/04/07(木) 19:58:53.52
C#くっさい。プロパティなんぞいらん。そんなもんに注目すな。
イベントなんぞいらん。+=でかきたいだけちゃうんかんと。
delegateなんぞいらん。オブジェクトの世界に入ってクンな。
いろいろ名前つけにくいんじゃ。名前付けにくい=認識があやふや。
オブジェクト指向のよさはモノのよさ。人間にとっての例えの自然さ。
650 :デフォルトの名無しさん2011/04/07(木) 19:59:23.94
>>644
速度的にはFortran、記述的にはRだと思う。
651 :デフォルトの名無しさん2011/04/07(木) 20:03:21.73
C系がいいと言われてC#を薦めたら怒られたでござる
652 :デフォルトの名無しさん2011/04/07(木) 20:07:28.32
Fortranといえば最近ソースを見たら別物に進化しててびっくりしたわ
FORTRAN77をちらっとかじっただけの俺には解読できなかった
653 :デフォルトの名無しさん2011/04/07(木) 20:10:26.60
FORTRANとBASICとPASCALの存在の違いがいまいちわからないけど
FORTRANって今需要あるの?
654 :デフォルトの名無しさん2011/04/07(木) 20:14:11.10
>>651
誰にでも触れて欲しくないことはあるだろw
655 :デフォルトの名無しさん2011/04/07(木) 20:25:09.41
>>651
文脈から察するに、javaな人だと思う
656 :デフォルトの名無しさん2011/04/07(木) 20:33:05.45
このスレは関数型、特にHaskellを少しでもスルーしたり
あわよくばディスると速攻で荒れるから気をつけろよ
657 :6492011/04/07(木) 20:35:28.74
いちおう言っておくが拙者怒ったんじゃないのでござるし、
>>648氏に対して何かを暗(あるいは明)に言ってるのでもござらん。
C#になにかと文句言いたいお年頃のJava厨房なんでござる。
660 :デフォルトの名無しさん2011/04/07(木) 20:53:17.09
>>653
大学の研究室やスパコン使う人とかにはまだあるけど一般人にはほとんどないだろうね
661 :デフォルトの名無しさん2011/04/07(木) 22:18:11.45
>>649
イベントやデリゲートって、デザインパターンに対する
一種のシンタックスシュガーだと思ってる

使いたくなければ使わなければいいんじゃない?
Windows のメッセージすらも、確かイベントに頼らず直接取れたと思うが

Java 厨がなんで無関係の C# に文句言うんだ?
純粋に意味が分からん
663 :デフォルトの名無しさん2011/04/07(木) 23:15:52.27
C#

Windowsでちょっとしたツールをつくりたい → C# (やっぱりライブラリの安定性もJavaよりいい。WebとかNet関連とか安定してる。VisualStudioも秀逸)
LinuxでGUIしたい → MonoDevelopの進化はすさまじい。VSのprjがほぼそのまま使える?

やはりC#の開発リーダのいう、Cでは人生が短すぎるというのはある意味あたっている。

C#とCの適材適所の組み合わせが今楽しいね。
665 :デフォルトの名無しさん2011/04/07(木) 23:30:34.18
これいいよ。GUI。
いろいろと動かしてみたが。
サンプル以外で、自作可能と思えたのはこれとC#。


http://kengolab.net/prog/Lily/
666 :デフォルトの名無しさん2011/04/08(金) 01:31:29.69
>やっぱりライブラリの安定性もJavaよりいい。
そこのところ、詳しく。
667 :デフォルトの名無しさん2011/04/08(金) 01:52:51.20
実務でJavaよりC#選ぶケースってまず無いわ
668 :デフォルトの名無しさん2011/04/08(金) 01:57:33.81
>>667
実務でjavaって事はサーバサイド?
669 :デフォルトの名無しさん2011/04/08(金) 04:27:55.71
>>663
Mono使えるのか、早速試そう。
でもこれって、Windowsで使い込んでる人しか
使わないだよね。
671 :デフォルトの名無しさん2011/04/08(金) 11:34:26.77
>>653
それぞれ別の道を歩んでると思うぞ
FORTRAN: スパコンなどで処理速度を要求される時に
BASIC: 事務処理などはVBなどの派生が受け持ち、純粋に教育特化に
PASCAL: Delphiのお陰でビジュアル系言語としての道が開けた
673 :デフォルトの名無しさん2011/04/08(金) 19:06:31.47
最近PowerShellが楽しい
674 :デフォルトの名無しさん2011/04/08(金) 19:19:55.95
>>673
pc自作した時、powerShellの存在知って、本買って、さあ勉強するぞって時に、homePremiumには入ってないって知って、オワタと思った
675 :デフォルトの名無しさん2011/04/08(金) 19:36:36.67
>>674
いや入れろよw
676 :デフォルトの名無しさん2011/04/08(金) 19:46:44.25
>>675
動作環境にホムプレ入ってなかった
677 :デフォルトの名無しさん2011/04/08(金) 23:04:11.12
>>669
Paint.netをLinuxに移植できるくらいだからかなり使える。少なくともQtやWxWidgetよりは使える。
678 :デフォルトの名無しさん2011/04/09(土) 01:19:00.50
Haskellのモナドが難し過ぎて泣けてきた
プログラマなら圏論くらいマスターしていて当然というスタンスなのかもしれんが
俺には副作用禁止の縛りプレイで手続きをパターン化しているようにしか見えないよ
679 :デフォルトの名無しさん2011/04/09(土) 01:21:42.95
>>678
ものすごく一般論だが、ある縛りは、ある恩恵をもたらすことがある。
副作用禁止とは、副作用が無いという保障をもたらす。
681 :デフォルトの名無しさん2011/04/09(土) 02:17:54.81
俺の中でHaskellがまっどなイメージになってきた
682 :デフォルトの名無しさん2011/04/09(土) 02:33:59.77
>>677
>少なくともQtやWxWidgetよりは使える。

どこら辺が?
683 :デフォルトの名無しさん2011/04/09(土) 09:58:18.97
>>681
このスレでhaskell言ってる人と、haskellスレの住人の雰囲気は全然違うけどね
685 :デフォルトの名無しさん2011/04/09(土) 14:09:16.31
手続き型のメソッドに副作用がないことを示す属性を追加できたらいいのにな
686 :デフォルトの名無しさん2011/04/09(土) 14:10:59.50
constメソッドじゃだめなん?
688 :デフォルトの名無しさん2011/04/09(土) 14:17:04.68
>>686
constメソッド内で普通に printf が使えると思うが
689 :デフォルトの名無しさん2011/04/09(土) 15:01:52.58
>>688を見てふと思ったんだが、Haskellってデバッグはどうするんだろ
入出力は副作用だからPrintfデバッグみたいな感じで気軽に値を出力させたりログを取ったりできないんじゃないか?
優秀なデバッガがついてたりすんのかな
690 :デフォルトの名無しさん2011/04/09(土) 15:11:50.26
>>689
実はI/O用の副作用を持つ関数がある。
これを使えばprintfも使いたい放題。
ただし、call by needなので、値を使われるまでは
評価されないので、ログ出力用にはいまいち。
691 :デフォルトの名無しさん2011/04/09(土) 15:26:23.56
>>689
REPL もあるし、関数単位でテストするんじゃないの

手続き型言語みたいに、手続きと手続きの間で状態を確認する必要は無さそうな気がするけど
692 :デフォルトの名無しさん2011/04/09(土) 15:36:57.18
printfデバッグ用の関数(副作用あり)が用意されてるので、ひたすらそれをコードに挟む作業
693 :デフォルトの名無しさん2011/04/09(土) 15:41:22.42
>>691
f(g(h(i(j(k(l(m(3))))))))の結果が意図に反していたら、
計算の中間結果(g,h,i,j,k,l,mの戻り値)のログをとりたくなると思う。
694 :デフォルトの名無しさん2011/04/09(土) 15:42:03.02
>>689
GUI アプリを作っている時など副作用を持つ関数のデバッグは、
普通に Printf デバッグみたいなことができるので全く問題ない
(みたいって言うか、ほぼそのままだが)

副作用を持たない関数のデバッグは、
>>691 の言うように状態を確認する必要が無い
計算が間違っているかどうかを、式を見て確認すればいい

もっとも、GUI アプリも副作用を伴うのは主に入出力部分だけだから、
ほとんどの部分は副作用を持たない普通の関数だ

ちなみに、Haskell 用のデバッガは存在するが、
VC++ みたいな手続き型言語用デバッガを想像すると
使い難くてしょうが無い
695 :デフォルトの名無しさん2011/04/09(土) 15:44:06.78
>>693
副作用の無い関数の場合は、ログを取ろうと必死になったり、ログの解析に勤しむより、
関数 f g h i j k l m の内容(式)を確認した方がデバッグは圧倒的に早い
696 :デフォルトの名無しさん2011/04/09(土) 15:47:41.42
プログラムサイズ次第だが、1000行超えたら確認はつらいでしょ。
問題箇所を特定するのにログは有用。
697 :デフォルトの名無しさん2011/04/09(土) 16:15:31.32
副作用のある入力から値を得て、それを素に純粋な関数である値を計算し、
その値を再び副作用のある出力に送る場合の、純粋な関数の部分に話を限定する

関数に問題があるというのは、ある引数にその関数を適用した時、
その関数値が求めていた値ではないという事

その関数内で別の関数を呼んで、またその関数内で別の関数をと連鎖することがあるが、
その連鎖が合計で1000行も越えるなど普通はあり得ないし、
そんな関数はそもそも作るべきじゃない

万が一そのような関数を作ってしまったとしても、関数のデバッグでは、
手続き型言語のようにログを取ろうと考えてはいけない

そもそも、ある引数にその関数を適用した時に求める値が返ってこないと分かった時点で、
もう既に問題のログは取れている(ロギングの目的がほぼ達成されている)

あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい
(純粋な関数だからコピペして単体で調べられる)

Emacs などのツールを使うと、別のファイルにコピペしなくても、
ソースの一部分を評価できたりするから便利

まぁ、この作業をロギングと言っているのなら、済まなかったと謝るが、
Haskell では普通これをロギングとは言わない

ただ、たいていはそんなに長い関数は書かないので、
式を見直して解決することがほとんどだ
698 :6972011/04/09(土) 16:20:17.19
>>697
> あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
> 問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい

すまん、問題の引数に適用するのは一番外側の関数な

内側の関数はその問題の引数を更に計算した値に適用するかも知れんから、
試しに適用させてみる値は適宜作る
699 :デフォルトの名無しさん2011/04/09(土) 17:20:59.18
>>694>>697がまともにHaskellを使ったことがないのは明らか

>その関数内で別の関数を呼んで、またその関数内で別の関数をと連鎖することがあるが、
>その連鎖が合計で1000行も越えるなど普通はあり得ないし、

普通あり得ないどころかそれは日常茶飯事だし、別に悪い設計でもない
Haskellでは必要以上にIO型を使うことを避けるから、1000行を超えるコンポーネントに
IOが一箇所も出て来ないというのは普通にある

>あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
>問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい
>(純粋な関数だからコピペして単体で調べられる)

もちろん単体テストでバグが発見できればそれに越したことはないが、上手く行かないケースも多い
良くあるのは、関数の引数が巨大なデータ構造で、テストデータの用意が困難な場合

マイクロソフト ワイヤレス ブルートラック マウス Arc Touch Mouse RVF-00006
マイクロソフト ワイヤレス ブルートラック マウス Arc Touch Mouse RVF-00006