1 :
デフォルトの名無しさん:
またその理由は?(やりながらお金儲けできる、アイデア次第で色んなものを作れる、など)
アイちゃん
Rubyしかありえない
Rubyつまらん
Ruby最高。
Haskell が楽しい
何かを処理するために関数を実行するんじゃなく、
何かを得るために関数を適用するという考え方に気づくと、
Haskell が本当に楽しくなる
7 :
忍法帖【Lv=2,xxxP】 :2011/02/25(金) 20:18:08.53
!ninja
JavaScript
他のメジャーな言語体系とはクラスの作り方とか、一線を隔していて、面白い。
最初はキモくて仕方なかったが、慣れるとクセになる。
J
Perl: 他人の書いたコードを解読した時、俺はシャンポリオンを超えたと思った。
Pythonだろ
美しさがあるから書いていて気持ちがいい
ライブラリもいっぱいあるから、楽にいろいろ作れる
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
最近、Pythonで小物を書いたりして遊んでる。楽しい。
今までスクリプト関係は全部、shellとawkで片してたけど、覚えようという気力が湧いた久しぶりの言語。
>>8 お、俺がいる。
JavaScript には圧倒的な自由があるんだよね。
既に動いているプログラムに対して後付けで何でも出来る、
だから今何やっても後で何とかなる、自分のレベルで好きに
手を動かせる。リスクフリーの、最高の自由がある。
しかもプログラムの動作環境は無限大。地球の大きさだけ
適用範囲の広がりがある。インターネットの広大な宇宙の中で、
唯一選ばれた至高の言語。ウェブアプリ界の絶対的支配者。
少し前までは実行速度が遅いというペナルティがあったけど、
今じゃ Python や Ruby よりも断然速いし、むしろ先頭切って
突っ走ってる感がある。
やってて楽しい言語なんて JavaScript を置いて他には無い。
もっと楽しい言語があると言うなら、それは JavaScript を
忘れてるだけなんじゃないだろうか。そんな気さえする。
色々言ってみたけどやっぱり Lisp が最高だな。
JavaScriptは動的に関数を定義したり、
自身の関数やクラスを上書きしたり、
トリッキーというか、変態的な処理が出来て楽しいよね。
Javaでおっぱい揺らすアプリを書いているときは楽しい。
なんかこのスレではJavaがめちゃくちゃ評判良いな
猫も杓子もP・H・P!P・H・P!って言ってるご時世なのに
俺は全くの初心者なんだが順序的には何から始めたらいい?
最初からJava?教えてエロイ人
Ruby,Haskell,C#
かな
Haskell (手続き的なものを除き)コードを書くのに非常にストレスが少ない。
Postscript あり得ないものがファーストクラスである体験。簡単お絵かきは今ならprocessing等に譲る
Maxima 一度覚えるととても便利。
Dot 別ツールから呼び出すことが多いと思うが、成果物がわかりやすいのでとても楽しい
pdとかpureとか 一度体験してみる価値がある。コーディング自体はQuarts Composerとかも雰囲気が似てる
>>18 プログラマが楽しいと思う言語と初心者向けの言語はかなりへだたりがある気がする
JavaとJavaScriptは別物。Javaはおっぱいの話しか出てないぞw
D言語ェ・・・
今ちょっとぐぐったらJavaScriptは比較的初心者向けみたいだね
自由自在にホームページ作ったりできるようになるにはどの言語から学べばいいかな?
PHPとJavaScriptでいんじゃね?
>>17 だいたい出来たから、どこかでアップする。
おっぱいプルプルの画像処理には、アフィン変換ではなくて、ちょっと特殊なフィルターがいる。
カメラの歪み補正の逆をするようなフィルターなのだが、ビットマップができる言語でないと書きづらい。
特にJavaが優れているとは思えないが、この用途では優れた特性を持つようだ。
>>22 まずはHTML覚えれ
特にスタイルシート覚えないと、JavaScriptの力は半減する
28 :
デフォルトの名無しさん:2011/02/26(土) 18:41:57.99
みんなどうやって覚えたの?独学?
64bitネイティブなBASICてない?
行番号もソースやら扱えるデータサイズも古いシステム依存
なのしかないんだけど。
なんでBASICなんかで64bitアクセスが必要なほどのプロジェクトを立ち上げるんですか?Cじゃだめなんですか?
64bit版MS Office2010のVBAってひょっとしたら64bitじゃね?
>>28 自分の気に入ってるページを開く → ソースを見る
>>32 ソースは毎回見てるけど、何度見ても意味不明だよ
それとも気に入ったサイトはパクれって意味?w
>>33 見るのと眺めるのは違うのは分かってると思うけど、細かいプロセスはこんな感じ
自分の気に入ってるページを決める → 何が気に入っているかを考える
→ ソースを見る → その機能がどうやって実現されているかを調べる
→ 自分でも同じ様に実装してみる → 何かの機会でその経験を応用する
→ 体得出来た!
上の様にして沢山のページのソースを見る → 共通で使用されている項目を調べる
→ よく使われているパターンを調べる → 自分でも同じ様にやってみる
→ 何かの機会でその経験を応用する → 体得出来た!
パクるっつーか、重要な意味のある部分を抽出して、それを使った最小の完動品を
自分で再現するという作業を繰り返すだけ
>>35 いきなり正しいコードを書こうと意識しすぎると、何も書けなくなると思われ。
何が正しいかは、経験値を深めて判断して行ければ良いかと。
だから、どんな言語の学習でも、沢山のソースを読む事が大事だと思う。
くっそワロタwwwwww
さすがJava
いろんな環境で動く
Javaについてそんなに詳しくないんだが、画像表示とマウスイベントでAWT使って、スライダとファイル選択でSwing使っているのかな
そういう趣味だったのか、ワロタ
42 :
デフォルトの名無しさん:2011/02/28(月) 10:18:30.36
誰かJavaScriptでおっぱい揺らせよ
んだよぉ、上下しているだけじゃねーかよw
どうせならアワビが開閉するのにしてくれYO!
わざわざJavaでおっぱい揺らす必要あるのか?gifで十分じゃね?w
と、プログラミング初心者の俺が言ってみる
100のおっぱいを揺らしたい時、お前は全て手作業でgifを作るのか?
そういうことだ
なるほど、単純明快な説明サンクス
このおっぱいプログラム、国際化してあるんだが、何をしたいんだろう。
おっぱい揺らすのなんてニコニコにいっぱい上がってるし
xx-cake!は楽しいツールだ。
51 :
デフォルトの名無しさん:2011/02/28(月) 15:15:30.25
x86のアセンブリ言語が最高に楽しいわ。インテル表記のね。
仕様の追加追加で単純さなんて皆無だけど、単なる計算でも自分でポチポチ組んでる時の高揚感は異常。
単純さが欲しい場合は、DirectXでasmシェーダやってるわ。SM2.0またはSM3.0で。
資料がほとんどない&MSDNにも間違い多い&言葉が少ないのを読み取って作っていくのが最高。
HLSLwwwwwww
>>40 だいたいそういう感じ。GUIのアプリはJavaの強み。
Qt/C++にした方が、楽に書けたかも知れないけど。
>>43 丸を置くときに振幅の方向を変えられるよ。
複数の丸を組み合わせると、複雑な動きになる。
>>45-46 そもそもgifでは256色にしかならない。
>>49-50 作る前に教えてください。
>>51 地獄のミサワ乙
>>52 後学のためにぜひソースを見せてください!
SourceForgeやGitHubに登録してみんなで拡張するのもいいかもw
54 :
デフォルトの名無しさん:2011/03/01(火) 11:23:39.44
PHP、Perl、Python、Rubyの人щ(゜ロ゜щ)カモーン!!
55 :
デフォルトの名無しさん:2011/03/01(火) 14:03:50.44
>>52 地獄のミサワって、ggったらなんで漫画家ww
って思ったけど、つまりはウザいってことか…悪かった
C#だな
いろいろ楽だし
57 :
デフォルトの名無しさん:2011/03/01(火) 18:24:43.27
一番楽しいのはPythonだな
こまけぇこたぁいいんだよ的なスタンスにびっくんびっくんした
実用性を無視して良いなら、1番はHaskell
2番はSqueakかな
やっぱ、純粋さを目指すと見える世界が違って面白い
あのー・・・Dが・・・
>>53 今、平行プログラミングで、PCの全力パワーでおっぱいを揺らせるようにしているから、それからね。
しかし、どうしてもスレッド間のデータを受け渡すバッファが埋まるまでラグがでる。
おっぱいは、手でタプタプするほうが楽しいぞ。
やってて新鮮なのはJavaScript, Common Lisp
ストレスが少ないのはHaskell
>>38 動かんかった…orz
virtualboxが悪いのかjvmが悪いのか…
java -jar ほげ.jar で動かしている?
>>64 うん、駄目だね
>>65も試してみたけど、同じ
取りあえず、仮想環境だから駄目な気もするので
ホスト側にjava入れたら試してみる
67 :
66:2011/03/02(水) 18:27:51.08
ホストOSにjava入れたら動いた
やはり仮想環境(ゲストOS→winxp)だと駄目なのかも知れん…
68 :
デフォルトの名無しさん:2011/03/02(水) 21:45:42.59
ゲストOS上のLinuxでJava開発してる俺がいるから、仮想環境じゃ駄目とは一概には・・・
というか別環境でも動くか確認する用なんだけどね。
VMware上のWindows2000でも動いた。
C++最高。
いらいらするほどの詳細があり、それについて議論になったときは、規格票を読むのが良い
ってメイヤーもジョスティスもほかのみんなも言ってるのに2ちゃんの連中は誰も読もうとしない…
つまりそういうアホドモが群がる言語^^
71 :
デフォルトの名無しさん:2011/03/03(木) 03:55:50.69
C++/Qtは普通に快適。Qt Designerが秀逸。
二番煎じ
三番も煎じられないダメプログラマのひがみを見た
>>72 V2Cといいこれといい,Javaでのデスクトップアプリ開発って結構できるもんなんですねー。
技術的に難しい事ってあるの?
アイデアのみに価値があるものを煎じて意味はあるの?
>>76 フィルター作成とマルチコア対応が一応、技術的にはちょっとしたハードル。たぶん。
アイデアにしか価値がないと思ってるところがダメプログラマ
.NETならマルチコア対応なんて簡単じゃん
そうだね。
CやC++といった言語と違ってJavaや.NETはマルチコア対応が簡単だから
彼にとってはそれが「やってて楽しいプログラミング言語」ってことなんだろうね。
スレタイどおり。
理解できないことは相手が未熟なせいとするところがダメプログラマ
>>72 10個丸を書いて56/secぐらい出るけど、ファンがうなって何だか怖い。
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自体の癖もあるので、マルチプラットフォームで書くには、ちょっとした工夫がいる。
>>86 以下が抜けていました・・・。
10. 国際化が容易
>>86 内容は殆ど同意なんですけど、Macintosh OS X じゃなくて Mac OS X でお願いします。
Java はもう少し記述量が減らせると良いですね。型推論を取り入れてくれたら凄く良い。
全体的には良く作り込まれた、奇麗な言語だと思います。
Scala<呼んだ?
Swingは癖があるというか糞しかない
サラリーマンよりも洗濯屋の方がよかったかも。
おっと s/サラリーマン/セールスマン/ しなければ(笑)
97 :
デフォルトの名無しさん:2011/03/05(土) 00:07:35.63
Ruby以外はクソだな。
Web関係ならPerlとJavaScript
ローカルはAdobeAir&Java
MacだろうがWindowsだろうがLinuxだろうが動く最高の組み合わせ
C++とQtでも、Windows、MacOS X、Linuxいけますよ。
100 :
デフォルトの名無しさん:2011/03/05(土) 10:38:02.40
デスクトップはJava。MacだろうがWindowsだろうがLinuxだろうが動く。
ケータイはJava。ガラケーはJavaだし、Androidも似非Javaだが書ける。
ウェブ関係ならJava、JavaScript、SQL。速度が出るし、構造化しやすい。
>>100 全ての分野で一番になりきれないのがJavaか。
こないだ知り合いからインディーズレーベルのCDをもらった。
バンド名がStruts。
曲名がSeasar、Spring、GWT、Teeda、Eclipse…
メンバーの誰かに、Java大好き人間がいるに違いない。
俺はPythonかなぁ。あまり深く考えずに適当に書けるのがいい。
Pythonでどんなコードを書いている?
大学のゼミで細かいファイル処理ツールばかり書いてる。
その用途だと、Perl、Python、Rubyが最適だろうね。
Goでコンカレントプログラミングが楽しい。
110 :
デフォルトの名無しさん:2011/03/05(土) 17:09:13.23
JRubyでJavaのライブラリを弄れるのも楽しいもんだ。
PerlとPHPってなにが違うの?
brainfuckは楽しいが
その楽しさは頭打ちする
やっぱり何か作れないとつまらないね
個人的には JavaScript と C が楽しい。
モロ変態な JavaScript と、メモリに思いをはせながら書ける C。
甲乙は付けられない。
>>111 俺的には、「書き捨てプログラム(特にテキスト処理)」の作り易さ。
@lines = <FILE>;
は Perl 覚えたての頃衝撃だった。
しかし Perl は「他人が読めないソース」も作り易い。
PHP は割と律儀に書いてやらないといけない。業務なら PHP がいいかな。
C++
最初に自分でプログラム組めるようになった言語
厨房のときにCに手をつけたけどprintfで撃沈した
るんるんハスケルン♪
116 :
72:2011/03/06(日) 07:21:42.18
Javaでおっぱい描画の時間が1/10になったときは楽しい。
× Javaでおっぱい描画の時間が1/10になったときは楽しい。
○ Javaでおっぱい描画の時間が1/10になったときは嬉しい。
× Javaでおっぱい描画の時間が1/10になったときは楽しい。
× Javaでおっぱい描画の時間が1/10になったときは嬉しい。
○ Javaでおっぱい描画が実現できるとわかったときが、うれしい、たのしい、大好き。
ヘルプとか付け出すと、楽しいと言うか、苦しくなってくる。
ヘルプなんて一番最初に作っておくものだ
あとはそのヘルプを実現するようにプログラムする
仕様書とかコメントとか必要ない俺様プログラムは楽しいな
プログラミング言語ではなくて、プログラムを組む状況で楽しさが変わると言うことだね。
124 :
72:2011/03/07(月) 14:13:24.19
>>124 すごいな!
これって何かライブラリつかってるの?
参考にした資料とかあったら教えてください
このプログラムとゲームセンターあらし的な漫画を組み合わせたら
アマチュアプログラムの時代がまた復権するかもしれん。
READMEが英語なんだが、こいつはおっぱいで世界を目指しているのだろうか
おっぱいを制する者は世界を制しますが何か?
132 :
デフォルトの名無しさん:2011/03/07(月) 20:31:45.91
RubyやHaskellでおっぱい以上のネタを希望
133 :
デフォルトの名無しさん:2011/03/07(月) 20:34:28.28
Macつかってるんだが JAVAがいまいちよくわからん
Objective-Cをつけばおk
Oppaimania-Cでつね
136 :
デフォルトの名無しさん:2011/03/07(月) 20:46:52.76
>>128 > ソースコードは寂しく公開中。
スレッドのあたりだけでもリファクタリングしようと思ったが
スパゲ・・・ゲフンゲフン 複雑だったので断念したわ
>>138 スレッドのrun()は40行、30行、24行の3スレッドしか無いように見えるが、スパゲッティ?
140 :
72:2011/03/08(火) 10:26:34.09
141 :
デフォルトの名無しさん:2011/03/09(水) 10:55:09.94
Rubyで書けば混乱しない。
142 :
デフォルトの名無しさん:2011/03/09(水) 16:00:46.75
Ruby最高。
143 :
デフォルトの名無しさん:2011/03/09(水) 18:25:32.47
Ruby以外でコードを書くと、スパゲティになる。
ダメプログラマーwww
145 :
デフォルトの名無しさん:2011/03/09(水) 19:00:22.36
Ruby以外を使うとダメプログラマーになる
146 :
デフォルトの名無しさん:2011/03/09(水) 19:49:46.94
Ruby以外は苦しみをもたらす。
147 :
デフォルトの名無しさん:2011/03/10(木) 07:24:29.85
今日からRubyプログラマになろう
Rubyしかないな
Ruby信者に「Rubyって別に特別な言語じゃないよね」とかいうと、なぜか急によそよそしくなるのはなぜ?
なぜ、布教を止めてしまうの?
150 :
デフォルトの名無しさん:2011/03/10(木) 11:16:27.64
Ruby以外がクソなだけ
処理速度が遅いのと高負荷なのと、メモリバカぐいのRubyってイメージがあるんだけど
もう改善されてるの?
Ruby以外を知らなければ問題無い。だからRubyだけやっておけばいい。
意味不明
154 :
デフォルトの名無しさん:2011/03/10(木) 12:59:35.76
Rubyだけやっていたら理解できる
Rubyだけが楽しい言語
そんなプログラマいらね
何種類か知ってて適材適所に使い分けないと
Rubyの利便性だけでRuby使ってるなら大規模アプリ作るとき鯖スペックで涙目になるよ
Perlだと一台でサクサクなのにRubyだとメモリ増やさないといけないし、メモリ欲しさにDB鯖別に用意したりとか。(あくまで例だが。
Rubyだけやってればわかるってのは井の中の蛙で大間違い
157 :
デフォルトの名無しさん:2011/03/10(木) 14:01:19.20
Rubyを信じないから、そんなことになる
Ruby好きな人ってなぜかLispやらないよね
両方やってる人はRubyの方が良いって言わないよね
Rubyだけやっていたら、頭がおかしくならない
160 :
デフォルトの名無しさん:2011/03/10(木) 15:45:47.68
毎日Ruby
>>159 頭がおかしいからRubyだけやるんじゃねぇの?
週末は一家揃ってRuby
163 :
デフォルトの名無しさん:2011/03/10(木) 16:42:36.62
愛犬にもRuby
婚約指輪にもRuby
さすがにこんだけやってるとマッチポンプにしか見えん
166 :
デフォルトの名無しさん:2011/03/10(木) 21:36:50.91
レーザーにもRuby
どんだけRubyコンプレックスwww
168 :
デフォルトの名無しさん:2011/03/10(木) 22:33:41.44
複素数にもRuby
複素数はPythonだろ
そこは譲らねーよ
170 :
デフォルトの名無しさん:2011/03/11(金) 00:12:56.00
譲れない人にもRuby
171 :
デフォルトの名無しさん:2011/03/11(金) 01:23:35.34
不眠症にもRuby
Rubyだけが糞ということがよく理解できた
どれが楽しいとか言われても困ると思う。
「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 :
173:2011/03/11(金) 01:57:20.01
symphonyじゃなくてsymfonyか。
……いっつも間違えるんだよ(公式な資料でも)。
改名してくれんかな。$phpmvcとか。
>>172 たぶん「〜にもRuby」と言っている彼が原理主義過ぎるかネタ過ぎるのだと思う。
Rubyの利点は「PerlとかPythonより日本語の扱いが楽っぽい」「高階関数書きやすい」
「メタプログラミングが病気どころか病院逃げて」くらい。
あと英語のマニュアル読む気が無い人にも向いてるかも知れない。
現状Rubyは気に入ってるけど、ベターRubyが出たら乗り換えると思うよ。大体のRuby使いは。
175 :
デフォルトの名無しさん:2011/03/11(金) 02:02:22.36
176 :
173:2011/03/11(金) 02:03:16.48
悪いけどRuby使ってるよ。たまに。
仕事なんか楽しい訳ないだろ
アホか
どの言語も楽しいのはかじり始めの初期の段階だけだなぁ
>>178 いつまで経っても初期の段階の言語は楽しい。
Rubyの何が良いのかは分からんが、Ruby厨と組んでRuby以外の仕事するのは
楽しくないってことまでは分かった
oppaiマンセー
RubyじゃMMDもTVTestも作れないし
182 :
デフォルトの名無しさん:2011/03/11(金) 11:52:50.58
MMDとTVTestにもRuby
183 :
デフォルトの名無しさん:2011/03/11(金) 12:05:32.71
>>174 それは実は、アンチで、信者のふりをして評判を下げようとしているのでは?
>>183 / ̄ ̄\
/ _ノ \
| ( ●)(●)
. | (__人__)____
| ` ⌒/ ─' 'ー\
. | /( ○) (○)\
. ヽ / ⌒(n_人__)⌒ \
ヽ |、 ( ヨ |
/ `ー─− 厂 /
| 、 _ __,,/ \
185 :
デフォルトの名無しさん:2011/03/11(金) 12:53:39.19
>>184 本当のことを書いてしまって悪かった・・・
まあ正体は何でもいいけど
そういう猿みたいな作業やってて楽しいか教えてくれ
地震で止まったから、東北の人だったのだろうか。
188 :
デフォルトの名無しさん:2011/03/13(日) 11:08:30.55
仕事でObjC使ってるけど、iPhone開発にはもってこいだよ。
…うん。
最初メッセージ式に慣れなかったわ
Objective-Cは、IMPを使うと頭が混乱してくる。オレがヘボなだけ?
うん
自家薬籠中の言語はどんなものでも楽しい。
やっぱりjavascriptだな
何年も立つのに、新しい発見があったりする
jquery便利すぎ
html5で将来性ハンパない
こんな言語、他にないだろ
JavaScriptはprototype chainが煩雑だ。
役に立つとか、便利とか、**を作れるとか、そんなのはどーでもいいよ
やってて楽しいか、何がどう楽しいかを語れって
196 :
デフォルトの名無しさん:2011/03/16(水) 22:51:27.90
>>195 1 名前:デフォルトの名無しさん []: 2011/02/25(金) 19:05:24.81
またその理由は?(やりながらお金儲けできる、アイデア次第で色んなものを作れる、など)
>>195 haskell
数学っぽいプログラミング言語って考えると色々楽しい
mylengthとか、myfoldrとか、組み込み関数と同じ物を簡単に作れちゃうのにも地味に感動
squeak(またはsmalltalk)
ifやforまでもオブジェクトって言う、行き着く所までオブジェクト指向なのが面白い
言語を楽しむんじゃ無くて、プログラムを作る事を楽しむなら、delphi、c#、vbが手軽で良いけどね
C
199 :
デフォルトの名無しさん:2011/03/17(木) 19:30:06.50
レスの数ならRubyが圧勝しているようだ。
200 :
福盛俊明:2011/03/21(月) 01:07:29.58
アハ〜♪”
まあ、当たり前だけど皆さんのおかれた環境がちがうから、万人が楽しいと思うプログラミング言語はきめられない
けど、やっぱり理由を分析してると興味深い。
だから、ただ単に言語名を書くのではなく、「なぜ楽しいのか?」を書いてほしい。
今のところ、プログラミング言語が楽しい理由というのをまとめると↓こんな感じ?
・多人数でも開発ができるから
・ひとりで開発するときにぱっとできる
・いろいろなライブラリがそろっている
・仕事の対象(数学)にあっている、対象を処理しやすい
・言語の進化がはやい。
・将来性(があるので気分も楽しい)
・いろいろなOSで動く
・APIが充実
だれかもっとうまくまとめて樹形図みたいにしてくれないかな?
俺が Haskell のプログラミングが楽しいと感じるのは、
解きたい問題に潜む静的な構造や関係を見抜いたと感じた時と、
その構造を上手く Haskell で表現できた時だな
>>201 楽しさの理由になりえる要素として俺が思いつくのは、こんなところだろうか?
・「自分が」コントロールしていると感じられる
・創造性が発揮できるだけの地力や柔軟性がある
・非本質的な事柄に妨げられることが少ない
・問題を綺麗に表現できる/解ける
・開発環境が快適である(REPLなどを含む)
・独創的である/学ぶところが多い
・見た目にも綺麗
・短く書ける
205 :
デフォルトの名無しさん:2011/03/22(火) 14:50:40.12
やっぱりC++だな。
そうだなC++だな。
>>205 万能である代わりに、マゾ向けの言語だがな
言語オタク的にも面白味がない言語
c++の何が面白いのか全く分からんのだが
C++でオブジェクトの動的ロードをすると万能ではないことに気づく。
>>208 速度優先
小さなものから大きなものまで
潰しが効く
副作用として、プログラマーがほとんど面倒見ないといけない
って意味なだけで、マゾ向けって書いたとおり、言語仕様で万能という訳じゃ無い
(万能な言語仕様って言うのも見てみたいけれど)
貴方の意見にしろ、私の意見にしろ、積極的に選ぶ言語とは思えない訳だが
>>209 今はSTLはもちろん、BoostとかQtもあるから、そう記述が多いわけでもない。
>>210 そうか。。。
そうだとしても、c++が面白いってのは違う気がするんだが
アピールポイントとか有るの?
>>211 C++は、Cと比較して、クラスやテンプレート、演算子オーバーライドなどのプログラマ負担を減らすための大幅な機能拡張がされている。
また、原則として拡張された機能は速度を低下をもたらさない。高機能で高速な言語がC++。
C++の欠点もあげると、以下のような感じになる。
・Java等と比較すると標準ライブラリが弱い。スレッドやセマフォ、GUI等も標準化されていない。
・プログラマに混乱をもたらしがちな文法規則がある。多重継承、演算子オーバーライドは評判が悪い。
・(Cと同様に)環境依存が大きく、方言もある。リンカはOSに依存するし、finally{ }はVisual C++の方言。
・OSのAPIがC言語ベースなので動的ロード(dlopen、dlclose)で直接クラスをロードできない。
・メモリ管理機構が─Boostなどで改善はできるが─原則としてプログラマ管理なので原始的。
C++は熱狂的な信者もいるが、嫌いな人は嫌いだ。
C++厨がLinus TorvaldsにGitをC++で書けと言って、Linus Torvaldsがブチ切れてC++をdisった事は有名だと思う。
>>215 書けば書くほど速度が問題になるスクリプト言語よりは、やってて楽しいプログラミング言語かも知れない。
こんなスレがあったんですね。
初心者が一から始める言語としてオススメってありますか?
最終目標としては沢山のお客さんが集まるようなフォーマットが作成できるようになりたいです。
大風呂敷を広げてしまいますが、例えばツイッターやフェイスブック、2ちゃんねるのようなフォーマットをアイデア次第で作れるようになれるスキルが欲しいです。
こういったものを作れるようになるためには、まず何から学んでいくべきでしょうか?
>>213 >・Java等と比較すると標準ライブラリが弱い。スレッドやセマフォ、GUI等も標準化されていない。
まあwxWidgetsとかQt4とか使うと
ライブラリも充実してるし
そんなに困らなくなるよ
>>217 プログラミング言語としては比較的易しい&twitterやfacebook/youtubeにも欠かせない
javaScript
ぶっちゃけ、どの言語で始めるか?より、簡単でも良いから、何か作る−>改良するを継続できるか?という素質の方が大事
>>220 サーバーサイドJavaScriptは一般的では無いから、JavaScriptから始めると何も保存ができずに凹みそうだ。
>>221 アホか
サーバサイドが現実味を帯びるだけの実力ついたら、そのまま極めるのも、他の言語覚えるのも大した苦労じゃ無いだろ
最初は保存とか考えなくて良いんだよ
php覚えようが、java覚えようが、ネットで何かする時は今時、html/cssとjavaScriptは何だかんだでついて回る訳だし
サーバーサイドJavaScriptはまだ情報が少ないから挫折しそう
無難にPHP, Python, Ruby辺りがいいんじゃない?
スケーラビリティを考えれば、JavaかPythonで、Google App Engineを使うのが楽だ。
225 :
デフォルトの名無しさん:2011/03/23(水) 01:44:43.34
>>222 まずはサーバーサイドで、フォームからデータベース等にデータを入れて、出すところからだと思う。
>>226 初心者に何やらせるつもりなの
javaScriptの後で、好きに覚えてもらえば良いだろ
>>227 オブジェクト指向やアスペクト指向と言い出さない分、実に初心者的。
C++の楽しいところはBoostとか使えばスクリプト言語や関数型言語に出てきた手法を
大学の実験用プログラムとかみたいに速度が気になるようなところにも適用できる点かなぁ
やってて楽しいのはアセンブリとか、あとは非手続き型の言語かな
スクリプト言語とかJavaとかその辺は楽しいと言うより、気楽って感じ
C/C++はやってて疲れる…
99BASICインタープリター
html+css+JavaScript(+jQuery)だな。
慣れれば、Ajaxを使ってRIAな画面をガンガン書ける。
言語じゃないが、jQueryというJavaScriptのライブラリは
一度使ったら手放せないぐらいJavaScriptでの開発を楽にしてくれた。
自分が新人研修担当なら、まずはこの組み合わせでやらせてみると思う。
ちなみに、JavaScriptでもActiveXとか使えば保存もできるぞ。
サーバサイドJavaScriptはレガシーASPで出来るけど、
レガシーASPはVBSが主流だったからな…。
あれって、MSがJavaScriptを推奨してれば、
サーバサイドJavaScriptは主流になれたかも知れないのに…。
M$のベンダーにはVBプログラマが多数いたので、JScriptは選択肢としてはあり得なかった。
さらに当時のJavaScriptは、今のJavaScriptと仕様も異なる。正規表現も使えなかったはず。
237 :
デフォルトの名無しさん:2011/03/24(木) 00:29:10.09
Javascript単体でもFile APIが利用できればローカル操作できる気がするが、
IEだとそうでもないのだろうか…
>>236 それ、JavaやPHP等の助けを借りないで、サーバーに保存できるの?
>>235 2000の頃には正規表現使えなかったっけ?
まぁ2000の頃はすでに下火になってた気がすると言うか
最初から盛り上がっても無かった気もするけど…
今からでも、APIと型を少しだけ追加して、レガシーASPでJavaScript推奨にすれば、
結構、盛り上がると思うんだけど、多分、切り捨ての方針なんだろうな…
>>238 レガシーASPでサーバサイドJavaScriptなら、
普通に保存もできるしデータベースやCSVも扱える
ただ、バイナリ処理に若干難がある
>>239 正規表現と例外処理が入ったのが、1999年のECMAScript 3から。
IE4、NN4で使えたかも知れ無い。
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$万歳
VCは名前解決のルールが標準とぜんぜん違うから
ちょっと複雑なテンプレート書くとすぐあぼんする。
244 :
デフォルトの名無しさん:2011/03/24(木) 23:28:54.34
C#楽しいな
といっても他にはいくつかしかやったことないのだがw
この場を借りてMSありがとう!
まさかのC++とC#の圧勝
VSに飼い馴らされると他のが辛くなるな
C#に関してはMSだけど
C++に関してはMS勘弁してくれって感じ。
248 :
217:2011/03/25(金) 23:42:20.33
>>217ですが、ここまでの流れを見てると、初心者が一から学ぶ言語として
html+css+JavaScript
html+css+(PHP、Python、Ruby)
このどちらかがオススメみたいですね。
html+cssという意見は一致していて、これと並行してJavaScriptを学ぶか、それともPHP系を学ぶか、ということですかね。
一流プログラマーの皆さんですら意見がわかれるくらいなので、どちらかに絞るのは難しいですね。
>>217 そんなわけないだろうw 普通に初心者向けの参考書の多い言語にしとけ。JavaとかCとかC#とか。
>>248 サーバサイドjavaScriptとか、一部極端な人が居るだけで、普通はhtml+css+javaScript+php+MySQL(場合によってはjavaやflashも)と言う風に、複数の言語を組み合わせてウェブプログラミングは行われます
(もちろん、チームで作る訳ですが)
javaScriptを薦める理由は、ブラウザさえ有れば、学習出来る事
ウェブプログラミング志望だったので、必修と言って良い言語でも有る事からです
表紙がかわいくてやる気が出るのがいいよ
htmlとcssは必須じゃない
HTMLは必須。CSSはデフォルトで。JavaScriptは無くてもOK。
そもそも、htmlもcssもプログラミング言語じゃ無いけどね
DarkBASIC
JavaScriptが必須言語であるイメージは無い。
Ajaxを含むDynamicHTMLを積極的に使わない限り、補助的なものだ。
>>256 htmlもcssもプログラミング言語じゃ無いんだから、それ以外に覚えるべき、ウェブ向けの言語はjavaScriptで良いんじゃ無いのか?
javaScript無くても、他の言語で完結出来るならそれで良いんだろうが、完結出来てるのって見た事無いんだが
(ただのhpは除く。何らかのサービスを提供してるサイト)
UIのレベルはともかく、原理的に完結できるのはPHP。
JavaScriptは、ASPやnode.jsを使わない限りは簡潔しない。
s/PHP/PHPなどのサーバーサイドスクリプト/
260 :
デフォルトの名無しさん:2011/03/28(月) 15:33:27.84
C++俺には無理だ
スパゲティにタバスコが入ってる
食うのに時間がかかってしょうがない
263 :
デフォルトの名無しさん:2011/03/29(火) 09:02:11.18
>>260 バカにC++を与えると、ろくな物を作れないのは良く分かった。
にんにん、でござる。
>>260を見る限り、C++/Qtを試すための題材として、
特におかしな点は見えないので、
>>263がろくな者じゃないのは良く分かった。
Rubyならもっとすごいものが簡単に作れる。
じゃあもっとすごいのものを簡単に作って公開してください
Rubyを使ったことがあるなら、疑いようのない事実。
疑ってないのでもっとすごいものを簡単に作って公開してください
Rubyは万人が使えるので、成果物を公開する必要が無い。
272 :
デフォルトの名無しさん:2011/03/29(火) 11:05:47.01
C++0xが、C++ 2011として固まる見込み。ラムダ式や正規表現、ハッシュなどが標準サポートとなるので、従来スクリプト言語が使われていた用途に利用しやすくなる。
>>271 つまり、やはり oppai はマンセーだと確信したのか
何かきっかけだったのか気になるな
274 :
デフォルトの名無しさん:2011/03/29(火) 13:15:11.71
最近はアフィリエイトが氾濫し過ぎw
adblockみたいに指定したdivを非表示にできるツールが欲しいな
C++と.NETが合わさったC++/CLIと言う、一見最強にして楽しそうな言語があるんだが・・・
.NETである時点で、マイクロソフトに振り回される
エディタとかIDEとかの話をして宗教戦争勃発させるスレじゃないんで
281 :
[ X | I.I.T. ] COURANT DE CONSOLE ◆SD2/42SuKs :2011/03/29(火) 14:34:22.39
PHPでもEclipse/PDTを使う方が、生産性は高いよ
IDEは開発形式を縛るor開発形式に縛られてるからなあ
まあエディタも縛ってるんだが、IDEでの開発分野とエディタでの開発分野の互換性はぶっちゃけ薄い
Rubyは生産性が高いのでIDEなど要らない
と信じる心が大切
Rubyはコーディングは極楽でもデバッグが地獄。
さらにパフォーマンスがでないと別の言語で書き直すことになる。
トータルでの生産性は低い。
少なくともスレタイの"楽しい言語"には該当しないだろう。
Rubyは最初からパーフェクトなコードが書けるので、デバッグは不要。
テストしろよw
高機能なデバッガがあればテストなんて時間の無駄でちゅ
高機能なデバッガがないRubyは糞でちゅ
Rubyは常に完璧なのでテスト不要
>>290 デバッガ至上主義者はまだ生き残ってるな
Cでは有効なんだから素直にCだけやっとれと思う
assertionの無い言語で、契約プログラミングはしたくない。
Rubyerはテストなんてしないよ?
C++ 2011で、C++至上主義者が復活する。
C++はクソ
rubyはやる/やらないじゃなく、信仰する/弾圧するだからなあ
まあ弾圧してて楽しい存在ではあるけど
IDEを使うと、リポジトリ配置とリポジトリに登録しないファイルに気を使う必要が出てくる。
たしかに Emacs は奨められて使うものではないな
ふとしたきっかけで運命的に出会い、残りの人生を共にするものだ
emacsは、CTRL+gと、CTRL+x CTRL+cしか使い方が分からない。
OOPでちゃんと作る時はIDEじゃないときついな
個人用の簡単なツールとかちょっとして修正ならエディタの方が楽でいい
なんかIDEの話にずれていってるな
>>302 OOPでちゃんと作る時にIDEのどんな機能を使ってるの?
そもそも、c++、java、c#が面白いんだったら、こんなスレが出来てないと思うんだ
!?
307 :
デフォルトの名無しさん:2011/03/30(水) 08:53:57.34
効率よく目的を達せるのが楽しいプログラミング言語だと考えると、IDE等の開発環境も楽しい理由にはなる。
>>307 自動プログラミングのコードを拡張していく、
プログラミングなど楽しそう。
こういうのをちゃんと語れるほど、すべての言語を深く使ってる人間がこんなにいるわけないだろ。
最近のプログラミング言語は言語仕様はコンパクトにしてライブラリで拡張するって感じだから
言語自体を比較してもほとんど同じっていうか意味無いよね
C++至上主義者に限って仕事遅いよね
>>312 同意
だが気をつけろ
プログラミング言語の形をした数学は、プログラミングより数学の方が楽しいかも?とか思わせる魔力も持っている
haskellから数学の復習へと足を踏み外した趣味グラマーより
314 :
デフォルトの名無しさん:2011/03/30(水) 22:48:56.39
全部C#でいいじゃん 書いてて楽しいし。
C#からC呼べるしね
>>272 日本人って特に技術者でそういう考えの人が多い様に思うけど、
機能一覧で並んだからといって代替出来る訳じゃないんだよ。
パッケージとして魅力が無ければ幾ら機能が多くても意味が無い。
記述が冗長でコンパイルがクソ遅くて直感的じゃない C++ が
LL の代わりになる訳ないじゃん。
若干スレ違いかもしれませんが、オブジェクト指向性の強い言語でおすすめってありませんか?
目的はオブジェクト指向への理解を深めるためで、普段はC++やっています
>>316 万能な言語なんてある訳ないよ
C++がLLの代わりにならないのと同様に
LLがC++の代わりにもならない
メジャーな言語ってのは
それぞれ優れた部分があるからメジャーとなりえるんだ
いくつかの前提条件の元に議論するならまだしも
なんの前提もなく、まったくベクトルの違うものを無理矢理同列に語ることなんて不可能
てか比べるような人がいたらそいつはキチガイ
そう。LL は C++ の代わりにはならない。
ただ LL で充分な分野は確実に増えてるね。
GUI アプリなんてもう JavaScript で良いじゃんみたいな。
>>317 オブジェクト指向への造詣を深めたいなら Smalltalk は外せないと思う
オブジェクトの天国みたいな言語
教科的なオブジェクト指向を学びたいならjava
即物的なオブジェクト指向を学びたいならC#
Smalltalk 以外だと JavaScript かな
こっちもオブジェクト指向のひとつの境地に至った言語だと思う
C++との相性的にC#を薦めておくわ
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ってなんだよ。
Javascriptは自由度高すぎんだよな
始めた頃大嫌いだったけど今は好きだ
でもあの変なスコープだけは今でも嫌い
>>320-323 ありがとうございます
特にオブジェクト指向性の強いらしいsmalltalkから触ってみたいと思います
>>327 ちょっと高いけど自由自在Squeakを入門書として薦める
>>324 >>272の主張はC++の書きやすさが(やや)向上したのでスクリプティング用途に
使いやすくなった、ということだと思うが、俺もあまりピンと来なかったな
多分自分の中で、C/C++とスクリプティング言語は、使い道や使いどころが
別物過ぎて、0xにおける書きやすさの若干の向上がその選択に
全く影響を与えないから、だと思う
コンパイルの必要性と、実行ファイルの可搬性の壁って相当でかいよ
ソースがそのまま実行ファイルでかつ可搬だ、というのがLL
速度は、シェルスクリプトの時代からI/O boundな仕事をさせるか
単にプロセスを起動したりするグルーという使い方なのだから
「遅くなるのを我慢していやいや使う」どころか、
もともと問題にもならないんだよ
伝統的にUnixプログラマはCとシェル(sed/awk)、Lispのようなものをうまく使い分けて
きたのであって、スクリプティングの使いどころや利点を知らない奴は
正直あまり有能じゃない奴だと思うなあ
どんだけC++嫌いでスクリプティング言語好きなんだよw
いやいや、329の言うことは一理あるだろ。
ただ、C++(特にテンプレート)はパズル的な楽しさがあるので
役立つ役立たないとは別の次元で、やってて楽しいと思う。
>>330 別にC++嫌いじゃないよ
ってか、
>>329のどこ見てそう思ったんだ
LLなんかに低水準の仕事やCPU boundの計算はさせられない
最初から用途が違いすぎるし、他の要素のほうが大きすぎるから
C++0xは言語の選択に大して影響を与えるとは思えないというだけの話
まあ長文書くと論点がズレがちだな
C++好きなやつは、ちょっとでもC++を批判されるとキレるからな
頑張って覚えたC++の重要性が下がってきてる現状が気に入らないんだろう
>>335 2002年からの長期トレンドの図を見ると、確かにC++の人気は下がってるね
C++でやるまでもないところはお手軽スクリプト言語の方が効率いいからね
自分が習得した言語のトレンドが下がると悲しいのはどれでも一緒だよ
Objective-Cが増えてるのはやっぱりアレだよねw
Objective-Cにも負けるJavaScriptぇ・・・
Cの安全性とSmalltalkの実行速度を併せ持つObjective-C最強
C/C++以外に本日使われている実用的でネイティブな言語ってあるの?
本日使われている
LL好きな人はC++のことよく知らないことが多いんだよ。片手間に覚えるには難しすぎるから。
一方C++好きな人はLLも仕事で使うからよく知ってるので的外れなC++批判はムカつくのでしょう。
大前提としてRuby厨はバカだと思ってるんですよ。
Objective-Cはappleに無理矢理使わされてる感が嫌w
>>345 ・LL好きのC嫌い
・C好きのLL嫌い
・どっちも適材適所で使う
と大まかに3つのクラスに分類されるんだよ
C好きのLL嫌いは、1つの言語で上から下まで組めるべきと考える
寝言言ってる暇あるならRubyやれ
>>348 ・C好きのC++嫌い
という大きなクラスを忘れてる。もちろんLL嫌いとは限らない。
COBOLは38位。F#やSmalltalkには勝ってる
大丈夫、まだ戦えるさ・・・
>>356 最も美しい言語と言われる事もあるhaskellがあんまり出てこないのは何で?
文法の美しさとか、美しいコードにしようってだけで楽しいのに
guiは目を瞑るけど、cui作らせたら一番楽なんじゃ無いかと思うし
>>357 あ、ごめん
アンカーは無視して。。。ORZ
haskellは割と言及されてる方だろ
>>324 そんな感情的になる事無いんじゃないの。別に人格を否定してる訳じゃないんだしさ。
自分は LL を批判されたとも思っていないし、LL の肩を持つつもりも無いよ。
無理矢理に対立軸を見つけようとしてませんか?
Rubyの終わコン臭は異常
あれはRailsが異常だっただけ
今は元の状態に戻っただけだよ
Ruby始めてみたけど案外おもしろいのかもしれない
end
end
end
>>351 C++好きのC嫌いってのもいるよ
俺のことだけど
Railsってよく聞くけど、C#における.NET Frameworkみたいなもん?
.NET Framework 全体ほど広くない
ASP.NET みたいなもんでしょ
ADO.NET もちょっとまたがってるかな
C好きはそうはいないだろう
今の時代においてもはやアセンブラレベル
>>372 だね
リバースエンジニアリングって意味じゃcもアセンブラも好きだし、面白いけど
新しい刺激を求めるなら、関数型言語や論理型言語
オブジェクト指向言語で刺激を受けられたのはsmalltalkだけだったな
それだけ、オブジェクト指向が普通になってるんだろうけど
>>372 Cもアセンブラも好きだよ
C++は嫌いだ
Linusっつーか、そういう人は沢山いるでしょ
ここでCを腐した所で、C++のかつての繁栄が戻ってくる訳じゃないし、
ここは楽しい言語を挙げるスレだぜ
>>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をやると自分の頭がよくなったかのような感覚になるから好き
C#
仕事が組み込みだから、C/C++と違ってサクサク作れるのがいい。
プログラム言語を道具としてしか見られない俺は負け組・・・
プログラム言語は道具だ → 技術者なら良い道具を選びたい
→ 手に馴染んだ道具で仕事をすると楽しい → やってて楽しい
じゃないの?
>>382 とは別人だが、俺も言語はただの道具という認識だ
「技術者なら良い道具を選びたい」は分かるんだが、プログラミングにおいて
「手に馴染んだ道具で仕事をすると楽しい」という感覚がよく分からん
俺は言語が楽しい分けじゃ無くて、プログラムを組むことが楽しい
べつに手に馴染んでない言語を使ったって、プログラムを組むことは楽しい
言語が楽しいって感覚、何なの?
得意言語が手足のようになじむのは楽しいよ。
構文やコマンドを覚えるたびにできることが増えていく感覚は
ドラクエなんかのゲームに通じるものがあるね。
俺も得意言語が手足のように馴染んでいくのはとても嬉しいが、
・・・「馴染むこと」や「馴染む状態」が楽しいのか?
> 構文やコマンドを覚えるたびにできることが増えていく感覚
それはある言語に特有の性質なの?
覚えるべき構文やコマンドを覚えきったら、楽しい理由がひとつ減るの?
>>384 ある言語特有の機能を使うと奇麗に設計出来たり、コードが短くなったり、プログラムの
本質的な部分により注力出来たりして、生産性が上がると楽しいでしょ。
無名関数があればコールバック関数の名前をいちいち考えなくても良くて楽だとか。
まあ普通は逆で、指定された言語を使うと設計に無理が生じたり、同じ様なコードを
何度も書かないといけなかったりしてストレスが溜まるという経験をした事がある人は
多いと思うけど。あとは文法が煩雑で他人のコードが読み辛いとか。
そういう時は言語が楽しくないって感覚になる。
>>387 君が楽しいとするものは
楽しいのではなくて
嬉しいだとか、楽(辛くない)という言葉の方が適切じゃないかな?
俺の場合、楽しいと思うのは齧り始めの初期の段階だけで
386が言うように
徐々に知恵をつけて
知る、覚える、学ぶという本能的喜びの頻度が下がれば
楽しいという感情は薄れていく
へ ←グラフにするとこんな感じ
あとはマイナスファクターとして
環境構築の容易さ
開発環境の快適さ
言語仕様としての魅力
将来性や使いどころの有無
リファレンス、情報の有無
やりがい
などにより減点されていく感じ
加点はされない
>>388 >楽しいのではなくて
>嬉しいだとか、楽(辛くない)という言葉の方が適切じゃないかな?
貴方の中での感覚としてはその方が適切なのかも知らんけど、
そんな個人的感覚で俺に同意を求められても困るわ。
このスレは何を以て楽しいと考えるかの共通認識を育てるのが
目的じゃないと思うし。
>>383 いや、ただの道具だから
仕事じゃその処理に特化した言語が一番
面白い言語を勉強するのは、ただ単に楽しみの為だけだったり、得るべき視点が有るから
だからこそ、業務以外の言語はとがった言語が良い
(純粋◯◯言語とか言われてるやつ)
言語は思考を規定するというけど、言語が規定する思考と自分の思考が
シンクロしていれば自然と楽しくなると思うけどなあ・・・
そういう感覚が分からない人は、ある意味勝ち組だと思うわ・・・
>>391 言語が思考を規定すると言うのは、確実にある
だからこそ、それを壊す為にとがった言語を勉強する
>>390 >仕事じゃその処理に特化した言語が一番
大抵のプログラマは大抵のプログラムを大抵の言語で書けるでしょ
汎用言語と呼ばれる言語は沢山あるし、本当に特化した言語なんて SQL くらいしか使わんわ
>>387 もしかしたら、君に楽しさを感じさせてる素は「言語」ではないのでは?
・奇麗に設計する行為が楽しい
・コードを短くする行為が楽しい
・プログラムの本質的な部分により注力する行為が楽しい
・生産性を上げる行為が楽しい
というように、楽しいのは「行為」だったりしない?
言語Aで奇麗に設計する行為よりも言語Bで奇麗に設計する行為の方が楽しい場合でも、
あくまでも楽しさを感じさせている本質は奇麗に設計する行為の方だと思う
言語の違いは、奇麗に設計したいという思いの実現しやすさに現れるもので、
やはり
>>388 のように「たのしい」ではなく「らく」と表現するものではないのかな
このクラブが楽しいよと言うゴルフプレーヤーとか、
このラケットが面白いよというテニスプレーヤーとか、
ちょっと変だなって感じない?
(こういう人がいたらダメと言ってるわけじゃないよ)
これも「そんな個人的感覚で俺に同意を求められても困るわ」と言われれば、
確かにその通り俺のごく個人的な感覚なんで、もう何も言わないけど
そこまでいくと言語を楽しく感じるのは言語開発者くらいになっちゃうよ
>>395 このスレでは『言語が楽しい』で意味が通じているし、行為と道具の切り分けを
厳密に議論する必要性は感じないな。
『らく』というのはコールバックの例を挙げたからだと思うけど、もちろんそれは
一例であって、言語の設計が一貫していて『美しい』とか、想定したとおりに
プログラムが動く『安心感』とか、色々なファクターがあって『楽しい』んだと
思うけど。
人間は常に自分自身の正しさを証明したがる生き物だと言うけど、
どうでも良い話題で他人の証明に付き合わされるのはご免だわ。
ゴルフに例えるなら、人によって、ティーショットが好きとか
アプローチが好きとか、パットが好きとかあるでしょ?
で、そのショットによって向いてる=楽しいクラブって異なるじゃん。
ティーショットとかバンカーショットで、パター使っても楽しくないでしょ?
プログラムも同じで、その人が興味ある分野(好きなことショット)によって
楽しいプログラム言語(向いてる=楽しいクラブ)が異なるんじゃね?
いやー、言語学的にプログラミング言語にこだわるのも面白いと思うけどね
>>389 なんだかごめん
やきもち焼いた
>>395 > もしかしたら、君に楽しさを感じさせてる素は「言語」ではないのでは?
そうだよ。
> というように、楽しいのは「行為」だったりしない?
そうだよ。
> 言語Aで奇麗に設計する行為よりも言語Bで奇麗に設計する行為の方が楽しい場合でも、
> あくまでも楽しさを感じさせている本質は奇麗に設計する行為の方だと思う
何が言いたいのかよく分からないけど
それは現時点で綺麗に設計出来ていないからでしょ?
言語を理解するまでの行為(過程)
その言語に設計をする行為(過程)
どちらも同じで慣れりゃ飽きて刺激は薄れ楽しいという感覚は減少していく
なんでも同じでしょ。
まぁ赤の他人がどう考えようがどーでもいいんだけど
楽だな、嬉しいな、儲かるな・・・などの
全ての正の感情をまとめて「楽しい」としちゃうのに違和感を感じたので。
つまんねえ流れになってるのな。
自分に興味の無い話題を、つまらんと切り捨てることが
クールだと思ってる厨二タンですね。
分かります。
めんどくさいやつが現れたな
この休日で一つ言語開拓しようとPythonに手を出してみたんだが糞過ぎてワロタ
まず print "hage" が通らなくて1時間くらい悩んだわ糞が
あとなんでLLってこうもそろってきもいコード書かせんだよ
書いてて吐き気がするぜ
人を中二病とレッテルを貼る人はその人自身が中二病
そうそう、
>>408もそうだし、それにレスをした自分もそう
>>406 何でそんな中途半端な言語を。。。
オブジェクト指向を突き詰めたらどうなるか知りたい = smalltalk
関数型言語を突き詰めたら(以下略) = haskell
プログラムとデータの境界が無くなったら(以下略) = Common lisp
趣味なんだから好きに選ばせてやれよw
おもちゃを買ってもらったが、
合わなくてつまらなかったから、
そのおもちゃの悪口を言ってる
これと同じ精神状態なんだろ
Pythonは慣れりゃ楽だよ
楽しさはワンライナー化するなら面白いが激しく読みにくくなるw
PythonとRubyを比較するとどうなの?
Python・・・男の子用
Ruby・・・女の子用
ポケモンみたいなもんか
逆じゃない?
>>416 何をどう比較するかによるが
ユーザー数は世界的にはpythonの方が多い
ライブラリもpythonの方が多い
日本語の情報はrubyの方が多い
ただ、どっちも特殊な開発でもしない限り、ライブラリも日本語の情報も、どっちを選んでも大差ない
どうせどっちもタダなのだから、実際に触って好きな方選べば良い
あとは求人サイトでキーワードのヒット数を比較してみるとか。
レンサバ借りてCGI作るのにはPerl/Python/Ruby/PHPくらいしか選択肢がないじゃん
>>422 それが何か問題でも有るんじゃろうか。。。。
Java が良いなら GAE とか使えば良いしな
googleはちょっと…
2Dのアクションゲーム作りたいんだが
RubyかC言語ならどっちがいい?
あとRuby環境ってどれが良いの?
どの程度アクションさせるのかによるだろうけど、RubyとCの二択ならCじゃないの
>>427 スーパードンキーコングみたいな感じのゲーム作ってる。
RubyとCならCがいいのですか?
Ruby賞賛されまくってるけどどういうところが良いんだろう?
その二択ならね
Rubyが好きでたまらないならIronRubyでXNAとかSilverlightを使って頑張る手もあるだろうけど、どの程度パフォーマンスが出るのか知らない
ルビーでゲームが作れるかよ。
ホットスーププロセッサーはどうだろう。
スーファミの、スーパードンキーコングしかしらんが。
3Dでリメイクしてくれ。
スーファミは一端3Dで作ってあるが平面に落としてあるんだよね。
>>428 Cの利点は動作の速さと探せば色んなライブラリが出てくるところ
ゲーム用のライブラリはまずC言語用に作られることが多く
他言語のゲーム用ライブラリはCから移植されたものが多い
当然ながらゲーム作りのための資料はしっかりしてる
欠点は危ないコードが簡単に書けてしまうことや
抽象度の高い記述が苦手だったりすること
Rubyの利点は安全性や記述力
特に文字列の処理はPerlと並んで強力で
Cで面倒かつ気を遣う文字列処理が数行で安全に済んだりする
しかし動作は遅く、ゲーム用のライブラリや資料も揃ってるとは言い難い
揃ってるのはWebアプリ用のライブラリだな
あとはコマンドプロンプトなどのCUIをサポートするツールとして使うと
割としっくり来る言語かな
ここまでAPLとWhitespaceなし
| ̄:/ : : /: : : : : : : :i: : : i: :\ : :\ \
|: / : : : / : : : : :.i: : : : |: : : :|: : : |: : : i '
: :|:. : : |: : i: : : :|: : : /i|: : :|:| : : :|: : : | |
: :|: : : : |: :.|:斗 十‐/ i|: :∧-‐ト|: : : | |
: :|: : : : |イ|: :|:/ |:/ |:/ |ハ: : |: : : | \_,ノ
: :|: : : : | レヤ示ト rテv|:./|: : : :|
ヽ|: : : : |/{:::::::i } トイ レ: :|/|/ 関東地方
( |: : : : 代c::ノソ レリ |: : : : | 東北地方 北海道地方
.〈.|: : : : |x`¨ 、¨x.|: : : i:| 関西地方 九州地方
\|i: : : :| , /|: : : i:| 沖縄地方 にいる
∨リ\: :iト 、 `´ ィ |: : /|リ すべての 愛すべき 国民へ 告ぐ
‐┴―\|- 〈 >rァ 爪|V |/
:::::::::::::::::::::::ヽ \ リ
::::::::::::::::::::::::__\
:::::::::::::::/ ::r――‐へ rっr‐-、_
:::::::::/ ::// ∧. | ̄ ̄ ̄| | | | | ̄ ̄ ̄ ̄ ̄ ̄ ̄|...
:::/ ::/ / ヽ|. L|_|_ト' |.
/ ::::/ / \ ただちに にげろ |.
. :::/ |/ | |
ただちににげろのガイドライン
http://www.geocities.jp/ust7800870/index.html 。。
ここまでGrass無しとか
437 :
デフォルトの名無しさん:2011/04/04(月) 13:58:54.64
>>433 なるほどーー!!
RubyとDirectXの相性ってどうですか?
438 :
デフォルトの名無しさん:2011/04/04(月) 14:20:33.67
>>433 ゲーム用のライブラリってたとえば何がありますか?
Rubyではゲームつくれん
Rubyでゲーム作るのは
爪切りでキャベツの千切りするようなもの
>>440 じゃぁ一番ゲームを作るのに適しているほぼツールといってもいいくらいの言語って
何ですか?FlashとかJavaですか?
ゲーム簡単に作りたい・・・
>>437 お世辞にも良いとは言えない、お勧めしない
>>438 WindowsならDirectXが正にゲーム用ライブラリだ
直接扱うのが苦手な人向けに派生ライブラリも色々あるので
ゲーム製作板などで情報収集しる
クロスプラットフォームならOpenGLが代表的
こっちもやっぱり派生ライブラリがあるので調べてみよう
>>441 ゲーム作るなら、最良はプログラミングではなく
ゲーム制作ツールだよ
プログラミングだと自由度はあるが、結構しんどいのは覚悟すべし
>>443 ありがとうございます、良く分かりました。
3Dのアニメーション作りたいんですよ^^
> 3Dアニメーション
ホットスーププロセッサ
3Dのゲームエンジンは結構たくさんあるよ
好みのエンジンを見つけてからプログラム言語を決めても遅くない
HSPはゲームコンテストとかあって結構ノウハウとかあるんだよな
でも言語自体が他人におすすめできなくて…
ゲーム制作ツールで2DのアクションならMMFが良いと思うんだが日本ではコミュニティが皆無だな
ひもじ村の人が音頭取るとかすれば流行りそうだけど
processingという言語もゲームを作りやすいらしいね
ruby用の2Dゲーム用ライブラリにはstarRubyってのが有るんだと
ソースは日経ソフトウェア 2011年1月号
Star Rubyはかなり簡単です。プログラミング初心者の人にもすすめられます。
WindowsでしたらDXRubyもよいです。
HSPを使うぐらいなら、C++/OpenGL。
>>454 prologは何度か出てる
ただ、最近の入門書が入門書になってないので、個人的に勧めにくい
数値計算に "is" とか使うのが面白く無いのも有る
他は割とprolog気に入ってる
endと信者が激しくウザいが、rubyの正規表現及び文字コードに対する
柔軟性と対応力はガチだと思う。
仕事柄、いくつかの日本語文字コードを織り交ぜたテキスト処理が多いので
この点では非常に重宝してる。遅いけど。
pythonは見た目は非常に好みなんだが正規表現がネイティブじゃないのと、
文字コード対応でのデータの取り回しの悪さが残念。速いけど。
457 :
デフォルトの名無しさん:2011/04/04(月) 21:24:41.66
お前らなでしこやらないの?
仕事じゃ使えねーかもしれんが遊びレベルならスッゲー面白いよww
つまんない、なでしこは
459 :
デフォルトの名無しさん:2011/04/04(月) 21:27:48.07
なでしこ資料少ないしやる気起きない
一番習得が簡単な言語はなんですか
それはおれも同意
SICPはschemeなきゃ無理だった(たぶん...)
>>460 手持ちのOperating Systemは?
OS と言語の習得のしやすさは別物
日本語が不自由な方なのですね?
いやいやw環境めちゃめちゃ影響あるだろw
楽に楽しくGUI作れる言語って何?
今C#でやってるけど、なでしことかやってみたい
>>469 OS依存の機能を必要としない限りまったく関係ない。
言語理解って意味から行くと、CとかC++みたくポインターある言語だと
OSはかえってじゃま。
Qt Java
はいらん
474 :
デフォルトの名無しさん:2011/04/04(月) 23:09:18.81
マルチプラットフォーム対応な言語がイイよ
Javaいいじゃないか
SwingとかJava2Dとかあって、GUIを標準ライブラリだけで作れちゃうあたりがいいよね
今更ながら、python書くようになってrubyのありがたみが身にしみるようになったわ
LISP使ってる人の本読むと読みにくい
頭が洗脳されてるんだろうか
>>460 数学を素直に拡張した言語という意味ではhaskell
小学生レベルの数学(算数)の知識からでも、文字列操作とかも簡単に出来るし、自分の数学知識によって、言語への理解も深まって行く
現時点では「プログラミングhaskell」しか、本当に初心者向けの入門書が無いけど、適切な入門書があれば、初心者向けの言語としても良い言語だと思う
>>471 guiを簡単に作れるのは、そのc#が現在のベスト
delphiが現役だったらそっちの方がオススメだったんだけど(標準コンポーネントは無料版でもdelphiの方が多かった)
Delphiってもうしんだよね
昔TurboPascalがあれだけ騒がれたのに観る数もないのと似てる
標準ヘルプとabout delphiだけで、アプリが書けたDelphiは偉大。
482 :
デフォルトの名無しさん:2011/04/05(火) 00:38:28.62
GUIでマウスポインタが軽快なライブラリと相性が良い言語って何?
>>477 それ単純に古い本だから読みにくいんじゃないの
最近は LISP と全部大文字で書く人は少ないと思うわ
>>481 ( ´・∀・`)へー
いつの時代もずっとdelphi気になってたけど、
結局一度も触れ合うことはなかったな。
ギコナビってdelphiで書かれてるんだっけ。
>>479 C#は言語仕様が気に入らない。unsafeや構造体は要らない。
>>480 死んでは無いけど、vcl捨てようとしたり、またvclに戻ったり、無料版とか安価なエディションが出たり消えたりと、個人にはオススメし難い状況
(企業になら、まだ勧めても良いかな?程度)
もういっその事、オープンソースにしてもらった方が、安心して勧められる
>>484 それはちょっと損してるな
あれは、本当に良い開発環境だったよ
欠点は、DirectXや新しいwinOSのサポートがmsよりも一歩遅れるだけだったから、DirextXや新しいOS独自の機能を使わない分には、すごく使い易かった
今でも、delphi7は入手可能だから、金に余裕があれば、買って見ると良い
delphi 入門 でググれば、良いページも見つかるし
当時はな
>>489 そうなんだよな。。。
borlandから離れてから、delphiはおかしくなった
個人的に(お世話になりながら言うのもなんだけど)delphi6で無料版出したのが、borlandの間違いだったんだろうな
どうせマイナー何だから、個人向けには2、3万で出し続けてれば良かったんだよ
もしくは、オープンソースの方が幸せになれたんじゃ。。。
色が変わらないIDEという印象がある。Delphi 4とか5までしか知らないけど。
>>491 6からデフォルトアイコンが変わったw
(5までのの方が好みだた)
2005からvbっぽい画面構成がデフォルトになった
(この時、vclを一時捨てた。ただのpascal版vc#。買う価値なし)
turboDelphiは無料の上にvcl使えたけど、重かった
(開発環境は.net1.1で、吐くのはexe)
今(2010)はよく知らん
どうも安いの出てるっぽいし、vclも使えるらしい
でももう、信用出来ないから、要らん
>>478 習得時間はかなりかかる方に分類されると思うが。
>>493 そうでもない
自分とかは、普通の言語を覚えちゃってるから、変に苦戦するけど、メモリの概念とかを覚えなくても、数学と同じ概念だけで繰り返しや分岐(パターンマッチ)を教えるられるのは、むしろ、pcの仕組みを良く分かってない人にも教えられる分、初心者向けとも言える
モナドだって、知ってたら理解は深まるが、知らなくても使える
>>494 私もHaskellがそんなに難しいとは思わないが、
再帰関数を直感的に理解できる程度の人だと、
LISPやPrologは3時間の講習で使えるようになる。
Haskellはとても無理。
Prologの関数評価部分から独立して成長したErlang
でも無理。
496 :
デフォルトの名無しさん:2011/04/05(火) 09:04:45.27
delphiたしかに良かったけど今じゃなあ・・・
今は簡単にGUI作れるのはC#が受け継いだ感じだしね
delphiとc#は同じ開発者が関与しているだけあって
使い勝手が似ている。移行も容易かと。
498 :
デフォルトの名無しさん:2011/04/05(火) 09:58:09.39
で結局RUBYは何に向いてるの?
ただ"良い"だけじゃわかんねーよ。
アプリやゲーム作るのには向いてるの?
perlと比べて何がすごいの?
RUBYのことはもう忘れなさい・・・
502 :
デフォルトの名無しさん:2011/04/05(火) 10:22:33.51
逆に聞くが、アプリやゲーム製作以外でプログラミングって何するときに
使うんだww?
テキスト処理するスクリプトなんか、rubyの主な利用目的だけど、
それはアプリかと言われたら、ツールであると答えるだろう。
動的言語全般に言えることだけど、自分で使うためのツールを素早く作るのに向いてるんじゃないの
テストとか適当に済ませられる範囲の規模ならね
507 :
デフォルトの名無しさん:2011/04/05(火) 11:09:57.94
高校の時はプログラミングの知識あまり無かったけど、数学の宿題いっぱい出た時とかプログラムで解いてたなww
Rを覚えるのも悪くない。
>>495 ん。。。
lispやprologもそんなに時間掛からんと思けど、haskellのどの辺に、教える時間が掛かりそう?
>>511 私の場合は20年近く前から知ってるつもりだった。
しかし、実際にコードを読んでみるとさっぱり分からな
いので、4-5年前に「ふつうのHaskellプログラミング」と
いう本が出たのを機会に勉強した。一章に少なくとも
1時間は掛けた。それでも後半は苦しく、モナドに至っては
何回読んでもあの本では理解できない。
それと、何がHaskellにとって必須のものかの選択が
できなかった。
言語理解より、サンプルや、初心者サイトの充実が第一。
関数型は手続き型と比べて使う脳みそが違うかも
書いてて、パズルの問題を作ってる感覚だわw
関数型好きな人ってやっぱりXSLTも好きなの?
>>514 ん?
その言い方だと、lispやprologは3時間以内に入門書読み終わって理解出来る所まで行けるって事?
流石にそれは無いと思うし、自分の想定してるのは、初心者に取り敢えず簡単なプログラムを書けるようになってもらう事と、独学のための情報を提供する事ぐらいなんだが
>>514 本で独習するとどうしてもそんな感じ。
LispやPrologでも同じ結果になると思う。
3時間と言うのは講習会とか、要約された
Webサイトで学習する場合だろ。
Haskellは、まず実行環境が良く分からん。
Haskellがやさしかったら、10年前にメジャーになってるよ。
haskellは何度かやってみようと調べるんだが、やっぱりよくわからんかったわ。
文法的な説明ばかりで、いまいち使い所がピンと来ないんだわ。
みんなは具体的にhaskellで何作ってるの?
テキスト処理が楽ってよく言うが、その基準ってなんなんだ
CGI作るのにPHPかRUBYかPYTHONやろうと思ったけど
どれも結構文字コード周りめんどくさそうだったぞ
Haskellは関数として相応しいものを書く分にはいいんだけどね・・・
使いどころとか考えたら負けかも
>>525 正規表現を使っても使わなくても、
まったく、同程度の手間でプログラミングできます。
こういう「テキスト処理が楽」な言語はない。
(CやC++と比べて)文字処理が容易って意味だと思う
標準ライブラリで関数一発で文字コード変換できるのはすごくありがたいよね
>>525 別に深い意味はなくて、単に正規表現リテラルがあったり
明示的なフォーマット用の関数を使わずに
文字列リテラルの"foo #{bar} #{1 + 2}"みたいなのを展開してくれたり
そういう言語が「テキスト処理が得意」と言われることが多いと思う
Pythonは上記に当てはまらないし、特にテキスト処理が得意という
言語ではないんじゃないか
関数型の人ってモナディウスしか挙げないよね
あれの存在意義って結局、関数型で実装してみましたっていう程度だけで
単純にゲームの実装として評価すれば全然たいした事ないレベルだし
手続き型で実装する事に対して優位性が何も示せてない気がする
532 :
デフォルトの名無しさん:2011/04/05(火) 18:36:33.40
JaneもDelphi6だよね
なにDelphiってもう過去の遺物扱いなの?
10年前ならいざしらず企業の求人票の使用言語にもう書いてないだろ?
>>524 自分は何か作ると言うか、アルゴリズムの勉強とか、unixのコマンドをhaskellで書いて見たりとかかな
使い所としては、pags(perl5だか6だかをhaskellで実装したもの)が有名
囲碁や将棋のバックエンドを作ったり、コンパイラを作ったりするのに、すごく向いてると言われてるね
haskellの学習は、haskellがプログラミング言語だという事をいったん忘れた方が理解が早いと思う
あれは、数学にリスト+αを加えて、プログラミング言語として形にしたものだと考えた方がしっくりくる
入門程度で使うものなら、数学+リストだけで大抵の関数は「0」から作れる
(つまり、関数を覚える必要はない)
こういう関数を作ってみましょう。と、いきなり言える
うーん,たとえばHaskellでさいころを2つ振って合計値を求める関数はどうかけるん?
>>535 > haskellの学習は、haskellがプログラミング言語だという事をいったん忘れた方が理解が早いと思う
同意
Haskell はプログラミングだと考えると
どうしても C 言語などのプログラミングを意識して躓く
C だとこう書くから Haskell だとこう書けばいいのか、
と無理矢理理解しようとする(実に無駄な遠回り)
Haskell はプログラミングじゃなくて
「仕様書を書いている」と考えてくれ
(実際問題として仕様書の様に書ける言語ではないが、意識として)
>>536 意地悪やねw
乱数は流石に自作出来ない
(一応、擬似乱数の計算式を知ってれば擬似乱数は作れるはずだが)
あとは、1-6までの乱数をそれぞれ出して足すだけだから、どの言語でも変わらない
くそう、いきなり出鼻を挫かれた
メルセンヌ・ツイスタで誤魔化そう。
XORシフト
そのまんまってのも、気になるので、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
動作確認してないけど。。。
>>538 > 一応、擬似乱数の計算式を知ってれば擬似乱数は作れるはずだが
それを学んで Haskell で表現しようとする事が凄く Haskell の勉強になるんだよ
「こういう関数を作ってみましょう」の「こういう」の中身を先ず理解しなければ、
どんな初歩的な関数でも絶対に作れない
「こういう」の中身を学ぶ事自体がそのまま Haskell の勉強になる
だって、他言語に比べて「こういう」が比較的そのまま Haskell の関数で表現できるんだから
まずは線形合同法を使って「擬似乱数とは何か」を定義する事から学べばいい
rand :: Int -> Int
rand prev = (A * prev + B) `mod` M
ABMは定数(だから倍角で書いた)
では、他の擬似乱数アルゴリズムは何かあるかなと先へ進む
>>541 言わんとしていることは分かるけど、これくらいの動作確認はしような
sumTwoRollDice = rollDice1 + rollDice2 じゃなくて
sumTwoRollDice = do
n1 <- rollDice1
n2 <- rollDice2
return (n1 + n2)
C#でいいやってなったw
他のスレに出題したCOPYです。これを仕様と考えて、Haskellプログラムとして表現してください。
<問題>
なおここで、女性の官人についても触れておくべきであろう。後宮に奉仕する女官を総称して宮人と
いうが、高級の女官は命婦といった。命婦のうちでも五位以上の階位のある者を内命婦と呼び、五位以
上の官人の妻は、自分で位をもっていなくても、夫の資格によって五位に準じて宮中に出入することを
許されていた。これを外命婦という。だから、五位以上の貴族の妻は、位階の有無にかかわらず女官で
あったと考えてよい。
-- 「律令制の基調」 村尾次郎著 塙書房 昭和35年 -- より
>>542 そうなんだよね
手元に資料無いし、言われるまで興味持ってなかったからググった事無いけど、擬似乱数のアルゴリズムを、ほぼそのままhaskellはコードに落とせるはず何だよね
自分はちまちまライブラリ関数のクローン作って遊んでるだけなんだけど
他の言語じゃ「どうやって作るの?」って思うのも簡単に作れるのが、すごく楽しい
出来れば、java版やruby版の自作length関数とか、見てみたい
どうやって自作するのか想像出来ない
>>542 >>545 を見て、大事なことを言い忘れてた事に気づいた
そもそも乱数に興味が無ければ、
乱数という題材は少なくとも Haskell の勉強には全くならない
理解力は全く上がらないどろか、ストレスか溜まる一方
だから、自分に興味がある題材を使って、
「仕様」を考えて Haskell で表現するってのが
Haskell を理解する早道だと思う
ループするのにわざわざ再帰しなきゃいけないHaskellなんて使いたくもないな
入出力するのにわざわざモナドがどうとか知りたくもないしストレスが貯まるだけ
>>545 ええと、問題ってより、歴史的事実をただ書いてるだけのような。。。
きっとprologの宣伝材料だよ。
この後でてくるコードに期待しよう。
Haskellを普及したいと思うが、Haskellで楽に書けるものは
別にCでもLispでも楽に書けるんだよね。
擬似乱数アルゴリズムもその類。
>>548 > ループするのにわざわざ再帰しなきゃいけないHaskellなんて使いたくもないな
それ、色んなところで言われるからどうにかしたいんだが、
Haskell を使っていけば分かるが、ループという考え方自体がそもそも間違い
そして、ある値を得るために何回も繰り返し計算することは、
たいていの場合は「自分で再帰を明示的に書くことは無い」
普通は無限リストなどの材料や zip、foldr などの標準的な関数を使って表現する
どうしてもという場合だけ、自作する
> 入出力するのにわざわざモナドがどうとか知りたくもないしストレスが貯まるだけ
これもよくある話だが、普通に Haskell を学んでいけば、
君が思ってるよりもかなり早い段階で「わざわざモナドを考える」事無しに
入出力で「自然に」モナドを扱えるようになる
未熟な段階からモナドって何と考えるからストレスになる
モナドとは本質的に何かを学ぶのは別の話
Haskell使う人ってみんなこんな感じ?
温度の差を感じるわ
C++でなんでも取り込んでJavaでいらないもの捨てたから過去の言語はもうあまり意味が無いのかな?
>>533 そんなわけないでしょ
同じ Haskell を使っていても、世界中に色んなタイプの人がいる
楽しんでやってそうなのは微笑ましいけど、若干不毛な気もしないでもない
>>548 さっきの見たいな、悪い使い方で評価されるのは嫌だな。。。
haskellって、外部とのやり取りは苦手だけど、内部処理はすごく簡単に書けるから、自分は将来的にはhaskellでdllを吐かせて、それをc#とかで呼び出せる様になりたいって思ってるんだ
Haskell熱の初期症状だな。
まあ、すぐに普通のプログラミング言語として評価順序を気にして使うようになる。
そしてサンクをつぶすのに疲れ果てた頃、正格評価言語に舞い戻る。
そこで理解を諦めるともの凄くもったいないな
諦めさせないようにするためのガイドブックが非常に少ないから仕方ないが
>>549 企業実務の仕様って大体こんなものだよ。
論理的なよい文章だと思うよ。
これを一旦頭に納めて、等価な「仕様」を
Haskellで書いて欲しいということだ。
>>553 いや、自分がちょっとはしゃいでるだけ
何とか、haskellは難しいって先入観を壊したかったんだよね
haskell板は、ちまちま書いてる自分にはアカデミック過ぎるんだけど、初心者でもちまちまだけど、他の言語より、結構書ける様になるよ
(自分がそんな感じ)
文字列の文字数を求める関数は、どう動くべき?って考えたら、ほとんど、そのままコードに出来る
純粋な関数型は微妙。関数型が輝くかどうかは手続き型とのシナジーにかかってると思うな
>>547 んなことは無いだろ
乱数もなきゃモンテカルロもできなければゲームも作れないじゃん
乱数発生器なんてSICPの例題にも出てくるし
ふつーの擬似乱数ジェネレータはどっかに隠した状態を使うから
純粋関数ではない(線形合同法は純粋関数として実装可能だけど
乱数ジェネレータが純粋関数のままでは非常に使い勝手が悪い)
Haskellならだからモナドとか使うんだろ?
純粋でない、ゆえにHaskell向き出ない題材はストレスがたまるから嫌だってのは
あれだな
汚い現実から逃げてるひきこもりの発想みたいだ
Rubyは本物のオブジェクト指向言語って言うけどJavaとどう違うの?
Rrubyが本物のオブジェクト指向言語かとか
本物のオブジェクト指向言語とは何かとか
そういう疑問はさておくとして
Javaはプリミティブ型がオブジェクトではないね少なくとも
>>561 うへえ。。。
プロじゃなくて良かった
ええと、これが仕様だって事は、その女官が内命か、外命(婦)か、その他かを判定すれば良いの?
>>561 Haskell の考える仕様って、ちょっと違うような気がする
Haskell って先ず初めに、どんな値が欲しいか、を考えるんじゃないか
こんな値が欲しいというのが仕様の根底にあって、それが関数の戻り値となる
例えば囲碁ゲームなら勝敗という値が欲しいし、
テキストエディタなら保存するための文字列という値が欲しい
その値は何を材料にして得るのかが関数の引数となって、
その材料からどのよう「な」計算をするのかが関数の中身となる
(「に」じゃなく「な」)
その計算の中身をまた、欲しい値と材料と計算に分けて決める
これを再帰的に繰り返して、全体としてどのような計算をするのかを決めるのが、
Haskell の仕様だと俺は勝手に思ってる
haskell は関係を表現するのではなくて、計算を表現する
だから、そもそも「どんな値が欲しいか」が決まらないと、何も決定できない
>>545 を Haskell の「仕様」として考えろと言うが、欲しい値は何なのだ?
そもそもオブジェクト指向ってのは設計における考え方なんだから
言語の対応が完全かどうかなんてどうでもいい
haskellだのsmalltalkだの役に立たない言語の信者は皆が皆痛いな
信者はどの分野でも外から見れば皆痛いです
あなただって、他人から見れば痛いと思われてるところがあるかもしれません
しかしSmalltalk+Altoを継承した いやそれ以上のものが今、目の前のPCで動かせてると思うと感慨深いものがある
和製Smalltalkは98+68000ボードだったんだよな 物凄く高価で
>>568 数学的な仕様表記を得意とするHaskellが
冗長な自然言語文字列の中に深い意味のある
仕様を、自然言語の文字列と結びつけながら
どう処理していくかに興味がある。
Haskellプログラマにとってもよい経験になると
思うけれど。
Haskellってよく知らないけどもうこのスレが…
専用スレでやっていいんじゃないか、ここまでくれば
>>573 確かに私も研究としては面白そうだし興味はある
ただ、普通の Haskell プログラマがやることでは無いような気がする
>>545 をいきなり Haskell でプログラムしろと言われても、
普通は何をどうすればいいのか分からない
Haskellプログラマにとってもよい経験になるとは「今はまだ」思えない
Haskell プログラマといっても入門者から熟練者まで様々だし
>>546 RubyだとArray#sizeの代わりってことになるが別に難しくないぞ
ary.inject(0){|r,i|r+1}
イテレータを使うのが嫌、かつ再帰で書きたいとかなら
class Array
def mysize
empty? ? 0 : self[1..-1].mysize + 1
end
end
int length(char *p) { if(*p) 1 + length(p+1) else 0; }
大嫌いだったJavascriptが使ってるうちに好きになってきたんだけど
WebクライアントサイドでJavascriptしか使われないのはなぜ?
独占的で最強すぎね
>>545 一応、作って見たよ
ただ、変数名は漢字のままで勘弁
良い変数名がほとんどの変数で思い付かなかった
data ステータス = 内命 |外命 |一般女官 |女官ではない
data 仕事 = 女官|妻
女官判定 :: 仕事->Int->ステータス
女官判定 仕事,位 | (位 >5) && (仕事==妻) = 女官ではない
女官判定 仕事, 位 | (位 >5) && (仕事==女官) = 一般女官
女官判定 仕事, 位 | (位 <=5) && (仕事==妻) = 外命
女官判定 仕事, 位 | (位 <=5) && (仕事==女官) = 内命
プログラム苦手なんで、疲れたよ。。。
もうHaskellはお腹いっぱい
>>579 私はHaskellプログラマではないから細かいところは
よくわからないけど、
いいんじゃないの。
>>581 自分もhaskellは勉強中なので、ドキドキしながら挑戦して見ました
いろいろとめんどくせーからじゃない?
>>577 returnが無いけど、再帰だと値を返せるものなの?
>>579 それは考えすぎ。
これで十分。
type 宮人 = 後宮に奉仕する女官
type 命婦 = 高級の女官
type 内命婦 = (命婦, 五位以上の階位のある者)
type 外命婦 = 五位以上の官人の妻
type 要請 = 五位以上の貴族の妻 -> 女官
>>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; }
だね。
>>584,586
まぁ、待て
PerlやRubyみたいに、最後に評価した値が返る仕様のCに似た言語かもしれんぞ
>>574 ごめんなさい
これで終わります
haskellスレは、ちょっと入門者には入り辛くて。。。
他の言語でも書けるけど、奇数(odd)、偶数(even)の関数を相互再帰で書くと、ちょっと感動しますよ
haskellな人も、haskellじゃない人も、好きな言語でお試しあれ
(最後の最後まで痛いままで去りますw)
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); }
おお、確かに余りの遅さに感動。
そういうことなのかwww
とりあえず実用性は考えないのがマナーということは分かった
> 実用性は考えないのがマナー
ほら見ろ、誤解(馬鹿に)された
>>589 0か1に終息させるんだからx>1で良いんじゃね?
even()に1が渡ったときがキモイけど、それはodd()に0が渡ったときと同じだし。
確かに。
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); }
こうか。
相互再帰使う条件で最適化するとこんな感じか?
って-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; }
>>591 どうせ、最適化してもc言語に勝てる訳でも無いんだし、ここは割り切って、必ず1、0で終わる性質に注目してみたり、アルゴリズム的に速く出来る性質を模索したりする方向で良いと思うけどなぁ。。。
>>593 evenは前回と同じのままで良い
変更するのはoddだけ
>>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; }
間違えた
この場合&&と||じゃ駄目だった…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; }
コードパスを考えないマナーが裏目に
HaskellはI/Oが弱いイメージがある。
>>600 >>543のコードでも分かる様に、I/Oや乱数みたいな副作用のある部分は、普通の言語と変わらなくなる
言語として苦手って言うより、プログラマの方が脳の切り替えに戸惑う
別に苦手じゃないだろ
確かに
>>543はちょっと長いけど、短かいのが好みなら
sumTwoRollDice = liftM2 (+) rollDice rollDice
とか
sumTwoRollDice = (+) <$> rollDice <*> rollDice
とか書ける
静的な型は文字列処理が弱いイメージがある
文字列のある部分は、動的な型と変わらなくなる
あとなんだっけ、不変の性質に注目しろ
文字列のI/Oはどの言語でも同じ
>>579 >>535 >>537を書かれたのとは別の方かもしれないけど、
数学的なアルゴリズムに留まらずに、
企業実務的な問題の仕様としてHaskellプログラムを
発信する活性のグループが現れたら、Haskellも
あっという間にメジャーになると思うよ。
言語より何が出来るかだ。最新の機能に即座に対応するとかは使える言語。
それだとCとかC#が最強になっちゃう
実際そんなもんじゃね
クライアントは他の物見て「あれみたいな機能つけれ」って言うだけだし
その機能をライブラリから持ってくるか、自分で作るかで雲泥の差がある
C#は既に関数型をパクってるし
Coqで楽しい証明
数学と言えばMathematica、行列演算と言えばRで、実はHaskellには使い道が無い。
使い道無くても楽しければいいよ
やってて楽しいプログラミング言語は?だからそうだな
613 :
デフォルトの名無しさん:2011/04/06(水) 20:26:50.73
HaskellにはProject Eulerを解くという崇高な使命がある
Project Euler の問題を解くのを「使命」と考えたらつまらん
もっと純粋に計算機科学を楽しもうよ
>>610 まあ、haskellはそれ自身が数学の研究対象だったりするから
haskellって、数学に最も近いけど、だからこそ?どこまで表現出来るか謎が多い言語でもあるんよ
616 :
デフォルトの名無しさん:2011/04/06(水) 20:55:35.24
つまらない言語なら断然Perlだな
Perlはファニーだよ
他人が書いたPerlプログラムとC++プログラムを読まされるのはとても楽しくない
完全に同意。
しかし他人に読めないPerl/C++を書くのが楽しいという輩が
一定以上いるのでこれらは絶対に無くならない。
その点Haskellは数学がベースなので、読みやすい。
f,g,hを呼び出すコードもこんなに自然に。
flip (.) h . ((.) . (f . g))
>>620 「呼び出す」に対してはあまり直感的でないなそのコード
「呼び出す」ってのは動作なワケで、手続き型っぽい概念だと思う
>>1 過去形で言うのならBASICだな。
ポケコンでBASIC書いてた頃が一番楽しかった。
今ではCかJavaかRubyだけが楽しい。
C++はバケツに穴が開いてるような感じ。
C#は消臭剤が標準装備されてるような臭さ。
Haskellは読みにくいってこと?
過去形で言うならZ80アセンブラが楽しかった
ポケコンいじってLEDをピカピカさせたりステッピングモーターを回転させたりしてるだけだったけど
>>620 何で昨日の自分みたいなのがw
ここはあえて、反論してみよう
カリー化で、見た目の変数をガンガン減らせるから、書こうと思えば、そうでも無いんじゃない?
>>623 いや、多分「適用」と言え!って意味だと思ふ
>>624 picマイコンで今でも手軽に楽しめるぞw
プログラミングか?と言われると、ちょっと疑問だが、確かに楽しい
最近Haskell始めたんだけど書式が生理的に受け付けないw
もう少しC系と近くしてくれてもいいのに・・・
call by name(Haskellの引数評価規則)も名前呼びだし
でなく名前による適用にすべき。
>>628 あれはプログラミング言語じゃ無くて、数学だと思え
リストを得た数学だと
(正確には色々得た数学)
まずは、そこからだ
全然、数学っぽくないし。
>>631 え、文字コードの制約上、記号が英数字になってるけど、あれは数学だよ
数学を無理やりpcに押し込んだら、ああなったって感じ
副作用の部分は、かなりプログラミング言語だけど
それで、数学知らないとどうなるんだい?
>>633 別に
算数の知識でも書けるし
懐が広いと感じるだけ
Haskellが数学なのはわかったから、しつこいよ
>>632 Haskellでエラトステネスのふるいを3行でかけるとかあるが、これは数学というよりアルゴリズム。
Rの方が線形代数を使えるので、よほど数学っぽい。
もう遅いかもしれんが
>>628は::とか->とか=>とかスペース区切りが気になるってことでよろしく
Rってなに?Rが正式名称?
RとかSとかCとかDとか
検索しにくいからやめれ
探しようがないよね。見つけて欲しくないのかも。
誰か「Cとか」って言語を作ってみてくれ
Rは行列型があるので、内積や外積、クロネッカー積の計算が完結に記述できる。
関数型で、シンタックス・シュガーとして代入演算子がある。
ただし汎用性は無い。データを読み込んで、データ解析を行い、図表を作成するためのプログラミング言語。
fortranよりいいの?
>>637 余程の事が無い限り、使わなくて良いじゃん
何の為の型推理よ
>>645 逆、余程のことが無い限り型シグネチャは書いた方がいい
>>646 人が読む為にはね
本題が型宣言がc言語と違うのが嫌だって言われてるんだから、カリー化をサポートする以上はc言語っぽくなり様が無いので諦めろって言うか
極力使わない様にしろと言うしか無いだろ
C#使えばいいじゃん
C#くっさい。プロパティなんぞいらん。そんなもんに注目すな。
イベントなんぞいらん。+=でかきたいだけちゃうんかんと。
delegateなんぞいらん。オブジェクトの世界に入ってクンな。
いろいろ名前つけにくいんじゃ。名前付けにくい=認識があやふや。
オブジェクト指向のよさはモノのよさ。人間にとっての例えの自然さ。
>>644 速度的にはFortran、記述的にはRだと思う。
C系がいいと言われてC#を薦めたら怒られたでござる
Fortranといえば最近ソースを見たら別物に進化しててびっくりしたわ
FORTRAN77をちらっとかじっただけの俺には解読できなかった
FORTRANとBASICとPASCALの存在の違いがいまいちわからないけど
FORTRANって今需要あるの?
>>651 誰にでも触れて欲しくないことはあるだろw
>>651 文脈から察するに、javaな人だと思う
このスレは関数型、特にHaskellを少しでもスルーしたり
あわよくばディスると速攻で荒れるから気をつけろよ
657 :
649:2011/04/07(木) 20:35:28.74
いちおう言っておくが拙者怒ったんじゃないのでござるし、
>>648氏に対して何かを暗(あるいは明)に言ってるのでもござらん。
C#になにかと文句言いたいお年頃のJava厨房なんでござる。
Haskell最高。
C#と.NET使うぐらいなら、VCでネイティブコード。
>>653 大学の研究室やスパコン使う人とかにはまだあるけど一般人にはほとんどないだろうね
>>649 イベントやデリゲートって、デザインパターンに対する
一種のシンタックスシュガーだと思ってる
使いたくなければ使わなければいいんじゃない?
Windows のメッセージすらも、確かイベントに頼らず直接取れたと思うが
Java 厨がなんで無関係の C# に文句言うんだ?
純粋に意味が分からん
少なくともCASLは無いな
C#
Windowsでちょっとしたツールをつくりたい → C# (やっぱりライブラリの安定性もJavaよりいい。WebとかNet関連とか安定してる。VisualStudioも秀逸)
LinuxでGUIしたい → MonoDevelopの進化はすさまじい。VSのprjがほぼそのまま使える?
やはりC#の開発リーダのいう、Cでは人生が短すぎるというのはある意味あたっている。
C#とCの適材適所の組み合わせが今楽しいね。
生産性ならその組み合わせは鉄板
>やっぱりライブラリの安定性もJavaよりいい。
そこのところ、詳しく。
実務でJavaよりC#選ぶケースってまず無いわ
>>663 Mono使えるのか、早速試そう。
でもこれって、Windowsで使い込んでる人しか
使わないだよね。
だよね。だよね。
>>653 それぞれ別の道を歩んでると思うぞ
FORTRAN: スパコンなどで処理速度を要求される時に
BASIC: 事務処理などはVBなどの派生が受け持ち、純粋に教育特化に
PASCAL: Delphiのお陰でビジュアル系言語としての道が開けた
最近PowerShellが楽しい
>>673 pc自作した時、powerShellの存在知って、本買って、さあ勉強するぞって時に、homePremiumには入ってないって知って、オワタと思った
>>669 Paint.netをLinuxに移植できるくらいだからかなり使える。少なくともQtやWxWidgetよりは使える。
Haskellのモナドが難し過ぎて泣けてきた
プログラマなら圏論くらいマスターしていて当然というスタンスなのかもしれんが
俺には副作用禁止の縛りプレイで手続きをパターン化しているようにしか見えないよ
>>678 ものすごく一般論だが、ある縛りは、ある恩恵をもたらすことがある。
副作用禁止とは、副作用が無いという保障をもたらす。
恩恵って並列化し易いとか?
俺の中でHaskellがまっどなイメージになってきた
>>677 >少なくともQtやWxWidgetよりは使える。
どこら辺が?
>>681 このスレでhaskell言ってる人と、haskellスレの住人の雰囲気は全然違うけどね
ハッスル ハッスル
手続き型のメソッドに副作用がないことを示す属性を追加できたらいいのにな
constメソッドじゃだめなん?
そんなのもあったね。C#にもあったりする?
>>686 constメソッド内で普通に printf が使えると思うが
>>688を見てふと思ったんだが、Haskellってデバッグはどうするんだろ
入出力は副作用だからPrintfデバッグみたいな感じで気軽に値を出力させたりログを取ったりできないんじゃないか?
優秀なデバッガがついてたりすんのかな
>>689 実はI/O用の副作用を持つ関数がある。
これを使えばprintfも使いたい放題。
ただし、call by needなので、値を使われるまでは
評価されないので、ログ出力用にはいまいち。
>>689 REPL もあるし、関数単位でテストするんじゃないの
手続き型言語みたいに、手続きと手続きの間で状態を確認する必要は無さそうな気がするけど
printfデバッグ用の関数(副作用あり)が用意されてるので、ひたすらそれをコードに挟む作業
>>691 f(g(h(i(j(k(l(m(3))))))))の結果が意図に反していたら、
計算の中間結果(g,h,i,j,k,l,mの戻り値)のログをとりたくなると思う。
>>689 GUI アプリを作っている時など副作用を持つ関数のデバッグは、
普通に Printf デバッグみたいなことができるので全く問題ない
(みたいって言うか、ほぼそのままだが)
副作用を持たない関数のデバッグは、
>>691 の言うように状態を確認する必要が無い
計算が間違っているかどうかを、式を見て確認すればいい
もっとも、GUI アプリも副作用を伴うのは主に入出力部分だけだから、
ほとんどの部分は副作用を持たない普通の関数だ
ちなみに、Haskell 用のデバッガは存在するが、
VC++ みたいな手続き型言語用デバッガを想像すると
使い難くてしょうが無い
>>693 副作用の無い関数の場合は、ログを取ろうと必死になったり、ログの解析に勤しむより、
関数 f g h i j k l m の内容(式)を確認した方がデバッグは圧倒的に早い
プログラムサイズ次第だが、1000行超えたら確認はつらいでしょ。
問題箇所を特定するのにログは有用。
副作用のある入力から値を得て、それを素に純粋な関数である値を計算し、
その値を再び副作用のある出力に送る場合の、純粋な関数の部分に話を限定する
関数に問題があるというのは、ある引数にその関数を適用した時、
その関数値が求めていた値ではないという事
その関数内で別の関数を呼んで、またその関数内で別の関数をと連鎖することがあるが、
その連鎖が合計で1000行も越えるなど普通はあり得ないし、
そんな関数はそもそも作るべきじゃない
万が一そのような関数を作ってしまったとしても、関数のデバッグでは、
手続き型言語のようにログを取ろうと考えてはいけない
そもそも、ある引数にその関数を適用した時に求める値が返ってこないと分かった時点で、
もう既に問題のログは取れている(ロギングの目的がほぼ達成されている)
あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい
(純粋な関数だからコピペして単体で調べられる)
Emacs などのツールを使うと、別のファイルにコピペしなくても、
ソースの一部分を評価できたりするから便利
まぁ、この作業をロギングと言っているのなら、済まなかったと謝るが、
Haskell では普通これをロギングとは言わない
ただ、たいていはそんなに長い関数は書かないので、
式を見直して解決することがほとんどだ
698 :
697:2011/04/09(土) 16:20:17.19
>>697 > あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
> 問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい
すまん、問題の引数に適用するのは一番外側の関数な
内側の関数はその問題の引数を更に計算した値に適用するかも知れんから、
試しに適用させてみる値は適宜作る
>>694>>697がまともにHaskellを使ったことがないのは明らか
>その関数内で別の関数を呼んで、またその関数内で別の関数をと連鎖することがあるが、
>その連鎖が合計で1000行も越えるなど普通はあり得ないし、
普通あり得ないどころかそれは日常茶飯事だし、別に悪い設計でもない
Haskellでは必要以上にIO型を使うことを避けるから、1000行を超えるコンポーネントに
IOが一箇所も出て来ないというのは普通にある
>あとは、連鎖している関数それぞれに対して、別のファイルにコピペするなどして、
>問題の引数をそれぞれの関数に適用させてどう問題の値が得られ値のか調べればいい
>(純粋な関数だからコピペして単体で調べられる)
もちろん単体テストでバグが発見できればそれに越したことはないが、上手く行かないケースも多い
良くあるのは、関数の引数が巨大なデータ構造で、テストデータの用意が困難な場合
Haskellって何だか苦行だね。
701 :
697:2011/04/09(土) 17:44:27.34
苦行だよ
普通にプログラムしてコンポーネントひとつに1000行越えるし、
ログは取りにくいし、関数の引数が巨大なデータ構造なんて普通だし
やってられん
>>700 どちらかは嘘ついてると思われ
一応、haskellは、理論上は無限だが、実際に使われる時は有限しか扱わないデータ構造には強いと言われてる
関数型はまだまだ実験段階って感じ
副作用こそが肝だったのかもな。
データを分散させて、カプセル化で隠して、
やっぱりそんくらいが丁度よかったのかもな。
関数、関数でいくと、こっち側にデータばかりが散らかってしまう。
705 :
699:2011/04/09(土) 18:35:28.47
苦行ではないよ。printfデバッグだって普通にできる
もちろん不満点は山ほどあるが、俺の知ってる他の言語よりはずっと良い
もっと楽な言語があったら教えて欲しいわ
>>703 当たり前の事を今更。。。。
だから、楽しい訳だが
>>704 haskellの勉強ってサイトみたいに、フロントエンドはpython、バックエンドはhaskell、みたいにするのが、ある種の理想かと
内部処理の柔軟性はオブジェクト指向以上のものは、間違い無く持ってる
ただ、見た目を表現するのには不向き
(ここは、オブジェクト指向の相性抜群)
その当たり前がわかってないから苦行とかいう意見がでてくる
個人的にはlisp系
haskellも使うけど入出力遅いから用途が限定されるなぁ
OOPでも関数の合成くらいはできると思うんだけど
Linqとかそうだよね?
純粋関数型だからできるという強力な利点が無い気がする
710 :
デフォルトの名無しさん:2011/04/09(土) 18:50:31.66
でhaskellで何作ってるの?
その当たり前がわかったら苦行だというのが如実に分かる。
Haskellは、ここ数年で処理系やライブラリが整備されてきて、
少数の野心的な人達が商用に使い初めたってところだろ
苦行の言い訳になるほど実験段階でもない
>>708 ByteString使ってもIO遅すぎる?
一般的でない言語を使うこと自体が楽しくない
>>709 勉強中だけど
すっごい個人的に言えば、ぶっちゃけ無い
ただ、ifとか見ない様に作れば一回も見ないで済む
(副作用使わない場合は)プログラミング言語なのに、プログラミング言語っぽさが一番無いのが好き
文法覚えなくても、基本的なルールさえ覚えれば、"&&"とか、"||"、"if"と同じ機能を直感的に自分で作れるのも気持ちいい
色々言語触って来たけど、haskellは生涯の伴侶にするつもり
ここまで惚れた言語は初めて
研究開発を苦行と感じる人はもともとプログラミングには向いてない
職業プログラマと趣味プログラマで意見は分かれるだろうな
> ByteString使ってもIO遅すぎる?
うん遅い. mmapできない
>>714 > 文法覚えなくても、基本的なルールさえ覚えれば、"&&"とか、"||"、"if"と同じ機能を直感的に自分で作れるのも気持ちいい
俺は初めF#使ってたけど、「関数プログラミング」って本に、
遅延評価なら"if"を関数で書けることが載ってて、それでHaskellに惚れたよ
見える副作用に苦しむか、副作用を隠すのに苦しむかの違い
>>715 haskellを使うのが苦行だといっているだけで研究開発を苦行といっているわけではない。
どうしたらそういう解釈になるのか不思議。
Haskellで楽に書ける処理は、他の言語でも楽にかけると言うことはないの?
関数型は実験段階→当たり前の事→それがわかって無いから苦行という意見がでる→それがわかったら苦行ということがわかる
つまり、「実験段階ということがわかったら苦行ということがわかる」という主張になる
Haskellが嫌いなら初めからそう言えばいい
Lispは完成形だが、苦行だと思う。
Lispはプログラムを書くのは苦行ではない。
他人の書いたプログラムを読むのが苦行。
>>725 適度にインデントされてれば読みやすいと思う俺は異端?
そういえば、Lisperには括弧なんて見えないそうだ
>>724 書き易くて読み易くて簡潔で良い言語じゃん
処理系も沢山あるし、無料で環境が整えられて、それなりに性能も出るし、
規格もある程度は整備されているし、ドキュメントも沢山あるし、
関数型でも手続き型でもオブジェクト指向でも書けるし、REPL は便利だし、
フォロワーも多いし、やってて最高に楽しいよ
>>728 > そういえば、Lisperには括弧なんて見えないそうだ
久しぶりにCで*BSDのドライバー書いたら閉じかっこ大杉でシンタックスエラーだらけw
Lispは、ある意味では読みやすい
演算子の優先順位なんて気にする必要すら無いからな
…だって他の言語で言えば全ての演算にハナから括弧つけてるようなもんなのだから
そうかなぁ
普段慣れ親しんでる数式に従った記法の方がほとんどの場合で読みやすいと思うんだが・・・
かけ算 * は中置記法で、符号 - は前置記法で、普通の関数適用は前置記法でと
lispプログラムは、普通の実行とマクロ展開が行き来するのが
読みづらく感じる。行儀良く書かれたものなら問題ないけど。
>>733 んな基本的な演算子だけならまだいい(…とは言えそれすら通用しない言語も一部あるんだが)
3項演算子とか、英単語系の演算子とかは結構直感と反するもんだと思うぞ
Lispはアクセッサ関連がうざすぎ
m[i][j] += x
こんなのを
(setf (aref m i j) (+ (aref m i j) x))
とかうざいにも程がある
いわゆる普通の言語に慣れてる人は、中置記法になれてるだけでなく
配列演算子だのメンバアクセス演算子だのに慣れてるでしょ
嫌なら自分で簡略表記用のマクロを定義せよ、というのが
lipserの流儀らしいよ。
おかげで、人ごとに独自定義されたマクロをいちいちチェックすることに
なるけど。
>>733 >普段慣れ親しんでる数式に従った記法の方がほとんどの場合で読みやすいと思うんだが・・・
かけ算は日本語だと「4の五倍」みたいな感じで RPN 風に表現するでしょ。
Infix(数式の順)だけが自然な訳じゃない。
金にならんから研究する気にもならんな。
学生の頃なら無駄なことにエネルギー費やす余力もあったのだが。
>>738 普段慣れ親しんでる数式を
普段慣れ親しんで読んでるように書いた方が
自然なケースの方がかなり多いような気がする
確かにケースによって色々な言い方はあるが、
「4の五倍」なんて言うケースよりも、
「4かける5」と言うケースの方が圧倒的に多くないか
特に式全体の中に [4 * 5] という部分式がある場合は
英語だって「Four multiplied by five」だし
事実上世界共通語の英語似合わせた方が自然だとも思う
>>738 ちょっとそれは無理があるんじゃないか
ax^2 + bx + c
程度の単純な数式を
aかけるxの2乗たすbかけるxたすc
とかいちいち書いてたら冗長でしかたないし視認性も悪すぎるから
誰も自然言語で読み書きしないのだし、だから数式という記法があるんだろ
数式の記法としてRPNなんて使うのは一部の電卓/計算機の世界だけで
学校教育や自然科学は全部普通のinfixで、それゆえ大多数の人間が
慣れ親しんでいるのもそれだ
>>734 行儀よく書かれたものでもLispのコードが読みにくいことには変わりないと思う
Lispでは違うものが違うように見えない、何でも同じように見えるのが問題
スペシャルフォームもマクロの呼び出しも関数適用も全部見た目同じなんだもの
まあクォートとかリテラルとかあるし、記号的なものがないわけじゃないけど
他の言語に比べるとな
743 :
742:2011/04/10(日) 11:02:13.02
Lispの読みにくさはExcelのワークシート関数の類に通じる
っていうかLispのほうが先だけど
IF(A2=100, SUM(B5:B15), "")
みたいな奴ね、何でも関数の
まあこれに比べればLispのがずっと読みやすい(読みやすく書ける)が、
読みにくさの理由と本質は同じ
>>741 どうせ「二乗」とかになるとpow(x,2)とか書かないといけないから、
視認性重視するなら内部的にはMathMLとかにしておいて、読み書きするときは数式エディタを使えという話になるな。
>>744 冪乗演算子がある言語も結構あるんだぜ…
確かにべき乗演算子がある言語でも、
a * x ** 2 + b * x + c
ぐらいがせいぜいだなあ
数式的に見ると*が冗長
ケツの穴多すぎ
VBならa * x ^ 2 + b * x + cだな
Haskell も a * x^2 + b * x + c だ
Cが^をxorに割り当ててしまったから
C系の言語では^をpowerに割り当てられないという事情があるな
C言語では冪を計算することよりも排他的論理和を計算することの方が重要だからかな
普段使うPCから考えるとC#だな
人によって違うと思うけど、Jan Doe styleとか普段使うソフトのせいでWindowsからは
離れられない。
普段使うOS上にちょっとしたツールを作ってみたくなる。
そうするとJavaかC#あたりが生産性から選択視となる。(ライブラリとか、情報とか)
Javaとwindowsっていまいち相性がわるいっていうか、時々「ん?」ってことがある。
C#だとあまりない。
だけど、ときどき使うLinuxでも仕事以外にプログラミングしてみたくなる。
最近では、LinuxでもC#はいい感じで動くようになってきた。GUIも作れる。
いろいろなプラットフォームで同じ言語がつかえて、その言語が今も熱く進化していて
ブログとかにも関連する投稿が多い。
そういう言語は C# かなあ。
Web系の技術者じゃないんで、偏りはあるかもしれないけど。RubyとかJavaScriptとかあまり関係してない生活だからね。
いまどきのプログラム言語の作り方という本を読んだんだけど
実装方法が感覚的に合わない感じがした 著者がLISPerらしいんだが
1958年に産まれたLispが直感的なら、BASIC(1964年)もC言語(1972年)も流行らなかったと思う。
関数型の実装にはレキシカル・スコーピングのように見るべきものもあるが、全体的には直感的とも、使いやすいとも言い難い。
>>754 Lisp もかなり進化してるんだよ。昔の Lisp と今の Lisp は全然違う。
字面だけ見ても歴然とした差があるよ。
>>756 lispは、どんなに変えようとも、やっぱりlisp
と言う格言は本当だったな。。。
(良い意味でも、悪い意味でも)
勉強しても価値を生む言語じゃないから学生の頃に秋田
>>754 伝統的なLispは動的スコープであって、
レキシカルスコープはALGOLからだったと思う
だからALGOL系列の言語はCも含めて基本的にレキシカルスコープだけど
Cは関数の入れ子は省いてしまった
>>756 初代でもう完全に出来上がってるな
喩えるならボンバーマンみたいなもん
余計なもの付けるなということだ
よく見てないが、トークンの区切りに,を必要としていることと
リストを
(x y z)
のように書く記法が無く、明示的にcons cellの形で
(x (y (z ())))
のようにかかなければならない点が違うのかな
後者はまあうざいだろうが
関数的なconsリストのない言語(例:Python)で俺はたまーにやるな
[x, [y, [z, []]]]
みたいなのw
762 :
761:2011/04/10(日) 20:03:16.90
いやよく考えたらプログラム自体は普通にリスト記法で書いてるみたいだから
後者は勘違いか
なら目立った違いは,だけか?
この大量の括弧を見るといつも笑ってしまうわ
>>764 おまえには括弧が見えるのか orz
毒され過ぎたか
エディタで括弧の色を背景と同じにするといいよ
767 :
765:2011/04/10(日) 21:00:36.08
>>766 いや、毒され過ぎたのは括弧が見えなかった俺
やっててたのしーってなるのはPythonとJavaScriptかな。
無名関数の入れ子はJavaScriptで覚えてPerlとか他の言語でも役に立ってる。
SNOBOLとか、最近の言語に飽きたら楽しいよ
c99で複素数が簡単に使えるようになったのでcに戻った。
cはやはり快速さがいい。 ただの日曜プログラマだけど。
プロセッサでの複素数サポートが進むのであろうか。
そういやWindows100%にJAVA国際おっぱいアプリが紹介されててワロッタ
国際おっぱいアプリって何かと思えばこのスレのあれか
いろんな国のおっぱいが出てくるアプリかと思ったじゃねえか
js do.it みたいなところで遊べるのもJavaScriptの楽しさの一つ。
モノが出てこないと、何ともって感じだ。
779 :
デフォルトの名無しさん:2011/04/14(木) 21:14:15.18
C#でいいじゃん
C#でいいと思う人はC#でいいだろうけど
Javaより遅いんだろ?
Java より遅いかどうかなんてどうでもいい
問題は Java より楽しいかどうかだ
速さで決まるなら誰も動的言語を使わない
似た言語で速度違うなら速い方がいいだろう?
速さはプラットフォームに依存する
エクセルを操作できる言語ってないの?
あるよ。
VBAできる範囲ならVBA一択
そうでなければ、COM利用のC++か、c#が楽
フルスクラッチで書くと軽く死ねると思うからやめた方がいいわな
JAVAでも操作可能なの?
790 :
デフォルトの名無しさん:2011/04/14(木) 22:43:11.91
JAVAは知らない
ってか普通にデータの集計や書き換えなら、xlsのままじゃなく、csvで取り扱うだろ?
それならJAVAでもんなんでもいけるわな。
まぁ最悪、JNIやJNAでCOM叩ければいけるんでねぇの?
COMは楽しくないです
そうだな
オブジェクト指向言語で、GUIが簡単に作れるのってないですか。
おしえてくだしい。
標準ライブラリで面倒みてくれてるのはJavaとかC#とか
どっちを使うかは好み
そういえば最近はVBって誰もやらないのか?
>>795 delphi、c#、vb、java、C++/CLI
左から手軽さとしてのオススメ順、無料が良いならdelphiは外れるが。。。
一応言っておくけど、CUIである程度書けないやつは、GUIでも書けないぞ?
あくまで、見た目を作るのを手伝ってもらうだけだからな?
>>797 オブジェクト指向取り入れて、c#との学習難易度に差が無くなったから
vbの文法に慣れてるならともかく、新規で覚える理由は無くなった
801 :
デフォルトの名無しさん:2011/04/15(金) 00:20:06.82
なでしこ
.net Java 移ってからVBは全く使わなくなったなあ
>>802 んで、c#に手を出すと、多分離れられない
と、予言
(c#ってより、vc#の使い勝手)
言語としてはhaskellが好きなんだけどね
GUI方面がな。。。
・とにかくあれこれ作りたい派(速度なんか二の次、用意されてるものを組み合わせる)
→Windows派 → C# ・ VB.NET・HSP
→Web派だけどデスクトップアプリも作りたい → AIR・Silverlight
→Windows以外も動けよ?→ Java・AIR・scaler
→Web → Flash・JavaScript・HTML5
→Web(サーバー側)→Java・PHP・Python・ruby・Perl
→英語ばかりで嫌ww→なでしこ・TTSneo
こんなところだな
C#ってネーミングが安易でかっこ悪い
思い切ってD♭くらいにして欲しかったな
>>804 まるで C++ が絶滅しそうなリストだな
>>805 まあ、c#は、言語で勝ったと言うより、IDEで勝った様なものだし
(言語で決定的に負けても無いし)
>>807 個人レベルで開発するならVS Expressで充分使えるし、昔と違って.NETのflameworkも導入させやすくなった感じだし
Windows向けアプリは、C#で充分だと思う。
C#と違ってJavaは他でいろいろ応用がきくのがいいよな
JavaはGUIが致命的に遅い
>>810 そうは言っても Android アプリなんて GUI も含めて殆ど Java だよ
ぶっちゃけ何の問題も感じてない
ドキュメントがあれば、QtのほうがJavaより書きやすいと思う。
だれも突っ込まないから突っ込んどくけど
F/Wと言語を同列に比べる人って・・・
Java/Swing、C++/Qt、C#/.NETと書くべきなのだろうか。
それだとJavaがかわいそうじゃね?
邪馬/ジャバ夫
>>810 おまえがプログラミングできないことはわかった。
どっちにしろ
楽出来るのと、面白いは、無関係でも無いけど、ちょっと違う
楽出来ると楽しくならないときがある
>>814 その場合だとC#/Winformsだろう
ライブラリやフレームワーク無しの言語比較は、実用性の比較にはならないな。
おや....Haskellの様子が急に...
11000111
11011001
11001110
11011111
>>811 NDK使うと爆速なのでC/C++大勝利だろう
AndroidのJavaは最適化のために、カプセル化を避ける、
手動でインライン展開する、のが推奨なので超不便
クラス設計の汚いGUIみて絶望すべき
∧∧l||l
/⌒ヽ) Java
〜(___)
''" ""''"" "''ショボーン
>>824 ?
安全性やポータビリティを犠牲にした、用途限定の裏口システムが大勝利な訳無いじゃん・・・
大勝利って、何で勝負してるんだ?
>>827 Android アプリ開発時の言語の有用性を競っているんだと思うけど、
>>827 はどう感じたの?
学会員ってほんとに大勝利って叫ぶの?
>>828 827じゃないが
誰がどう読んでも 速度 のお話w
読んだけど違うじゃん
馬鹿はどいてて
>>831 >NDK使うと爆速なのでC/C++大勝利だろう
爆速
Javaの人は日本語に慣れてないのかな?
速度(パフォーマンス)と速度(開発スピード)は別物ですよ
○○は××より遅いです
でも○○が遅い事は実質的に無害で、有用性を損なっていないから問題無いです
って流れじゃないの?
何で速度限定?
勝手にコンテクスト設定するあたりアスペ的だよね
何の足しにもならんレスなんかしてどうすんの?しぬの?
>>833 話のはじまりが速度のことだからでしょ
上の2行は書いてもらわないと伝わらんよ
826のママじゃないんだから
何かで勝負するからには、
その何か以外のものについては完全に無視するか、
あるいは差が無視できるほど揃えるかしないと
フェアじゃないと思うんだが
>>834 何の足しにもならん事に、何でそんなに喰いついてるの?
もしかしてアスペって言いたいだけ?
838 :
デフォルトの名無しさん:2011/04/15(金) 21:50:24.92
まあフェアでなくてもいいしかみ合ってなくても煽りあってもいいよ
ゴミと資源はこっちで分別して読むから気楽に垂れ流せw
このスレに今まで資源なんてあった?
たとえば何番のレス?
>>835 どっちかというと『致命的に』の方に反応してたんだけど。
Java の実行速度が遅いなんて分かり切った事でしょ。
そんなの議論しても何の足しにもならんじゃん。
>>840 >そんなにってどんなに?
アスペとかしぬとか言っちゃうくらい
>>842 そう読めたんなら「何の足しにもならない」ことを「そんなに」くらい反転させてみればわかるかな?
よんでて楽しくないスレであることは確か
846 :
デフォルトの名無しさん:2011/04/15(金) 22:16:50.65
振り出しに戻ったw
>>845 まだ命に関わる遅さには遭遇した事無いわ
>>636 アルゴリズムも論理学と言う数学の一分野。。。
って、もう遅いか
整数論の例もhaskellでは普通にあるよ
集合論も、モナドや内包表記に使われてる
線形代数は、まだ勉強中だけど、パフォーマンスはともかく、表現自体は出来るんじゃ無いかな
>>848 アリゴリズムが表現できることが数学なら、全てのプログラミング言語は数学っぽい。
ある意味Mainは至高のモナド
どの言語でも覚えたては
やってて楽しい
新しい言語始めるときとりあえず何する?Helloworldじゃ芸がないよね
>>850 いや、私はhaskellは数学だってのに賛成派
haskellでプログラム書こうと思えば、アルゴリズムや仕様に見えるけど、純粋数学を書こうと思えば、どこまで書けるんだろう?とは思う
1+1とはどういう操作なのか?って言うのも記述出来るらしいし
(離散数学とか言うらしい)
演算子オーバーロードと何が違うのそれ
まあ数学は哲学であり宗教という面もあることを考えると
haskellが数学というのもあながち間違いではないかもしれない
Haskellの言語仕様を考えるのは数学だったと言えるだろうが
Haskellでプログラミングするのはそうでもない
Haskellっていってる人に
じゃあ、東京電力の公開してる電力量のページからJSONでデータもってくる
プログラムつくっておいて、できればグラフ表示してくれるとうれしい
って宿題だしたら、
その人は「楽しく」やることができるの?
つまり、数学的なことは楽しく思考をめぐらせることができるけど、実用的な面ではどうなの?
サーバ系に限るけどJavaが一番楽しい。
Eclipseだとリファクタリングがすごく楽なのでクラス設計せずに適当に作って、
大きくなるにつれてクラスを分割したりデザインパターンを使って設計を改善する。
仕上げにCheckstyleかけて警告を全部潰す。
そして綺麗にできたソースコードを見てハァハァする。
Eclipseのエディット中のバグは直らんもんかのう
NetBeansもバグは残ったままだけど
>>859 それはつまり、リファクタリング、コードチェックが楽にできるIDEにサポートされている
プログラミング言語が楽しいということだね。
ちなみに今は
Visual Studio
Eclipse
NetBeans
monodevelop
といろいろ有力なIDEがでてきているが、これらのIDEでは無理なのかね?
Javaが楽しい人って
Javaしか知らない原理主義者が多いのかね
C++、VB→C#→Java
割と普通の経緯だと思うけど
>>860 C++がダントツ。QtでGUIアプリ作ってたこともあったけど、
罠だらけの言語仕様が大嫌い。
あとはVB(Excel VBA)、PHPあたりも嫌。
PythonやPerlは普通(Perlはもう使うことなさそうだが)。
Objective-CやJavaScriptは好きな方。
>>862 趣味で使うならRubyも楽しいよ。
Unixのパイプみたいにイテレータを繋いでいくのとか、メタプログラミングとか。
ただ、Rubyだと使い捨てのスクリプトばかりになってしまうので、
業務とか大規模開発だとJavaやね。
自分はJava+Eclipse使ってるけど、
NetBeansとか、C#のIDEならだいたい出来ると思う。
>>860 C++はC++ 2011で、さらに言語仕様が肥大化して戻ってくるよ。
>>858 その手の一般的な事務処理をこなすためのライブラリは問題なく揃っているから、
楽しいかどうかは、あとは課題に取り組む人の好みによる
Java が好きな人でも、その手のプログラムを端から面倒くさがる人もいる
俺は提示された課題についてはたまたま嫌いじゃないから、
Haskell で楽しくプログラムできるよ
PHPは本当につまらなかったな。。
プログラミングというより事務作業をしていた感じ。
Javaはほとんど苦行だけどPHPの空っぽさに比較すればまだ自分の存在価値を見出せる。
PHPだきゃぁいかん。俺も苦痛だった。
PHPが支えているサービスは多々ある。
PHP+MySQLとかバッドノウハウの塊なのが嫌だな。
C#は素敵だと思うけど、IDEがガンガンコード吐くのが気に入らないんだよなあ。
ガリガリと自分で書くのが楽しいなー。
873 :
デフォルトの名無しさん:2011/04/16(土) 17:59:30.33
ソフトの設定ぐらい自分でしてください
>>872 IDEのガンガンコード吐く機能を使わなければいいだろ
手書きでC#とか濡れる
>>858 東京電力は json では公開していないんじゃないか?
csv で公開してるんだから、持ってきて自分用にプログラム組むなら
わざわざ jspn に変換しなくてもよくないか?
>>858は、Haskellはテキスト処理に向かない、PerlやPython、Rubyに向いた処理もあると言いたいように思える。CSVやJSONの処理クラスもあるだろうし。
息をするように正規表現を扱える言語と比べたらHaskellは文字列操作苦手だけど、
JSONを読むのはライブラリに丸投げだからあんまり関係ない
いや、「楽しい」もいろいろあって
「楽しい」=「目的を達成するために、世間に情報が豊富で、ライブラリも豊富」
だと思っている人もいるから、そういう目線でみたらどうなるのか気になっただけ。
Haskellって言語がその辺も大丈夫ならぜひ興味を持ってみたいと思った。
ある処理をしたいのに、言語Xでは簡単にライブラリが手に入って
他方、言語Yだと
「昔、〜みたなライブラリもあったけど、今はメンテナンスされてないからなあ。どこどこを参考にして、自分でつくってみたら?」
「そもそも言語Yはそういう処理に向いてないんだよ。それやるなら言語Xで実装しとけ」
みたいな反応されると、「楽しくない」。ひっじょーにストレスがたまる。
>>878 べつに苦手じゃないと思うよ
Haskell の正規表現は戻り値も多相型だから、
「"abcde" =~ "cde" :: Bool」でマッチしたかどうか真偽値で返るし、
「"wifi" =~ "i" :: (AllMatches [] (MatchOffset, MatchLength))」で
全てのマッチした位置とマッチした文字数のリストが返る
(このように戻り値の型を明示しなくても、たいていは推論してくれる)
=~ 演算子だけで他にも色々な結果が簡単に得られる
もう少し複雑なことしたかったら関数も用意されてる
パターン文字列の構文を Perl のと同じにしてくれる上位ライブラリもあるし
もっと複雑なパターンにマッチしたかとか、
マッチした部分を加工したいとかだったら Parsec が使える
これでも文字列は苦手だと言えるのかな
Haskell でも普通に「息を吸うように」文字列を扱うよ
(ライブラリをインポートする必要はあるが)
単に Haskell がその部分をアピールしていないだけなんじゃないかな
>>879 それはあなたの精神的な問題であって言語の問題ではない
「研究用のおもちゃ?」っていうと
「いいえ実用です」っていう
「安定したライブラリがないんですが?」っていうと
「研究用ですから」っていう
こだまでしょうか?
いいえ、Haskellです
言語は嫌いじゃないけどコミュニティが嫌いというもあってもいいんじゃない?
自分はLisp、PHP、Perlあたりは苦手だ。
>>882 Haskell 使ってる人間がそういうことを言ってるの
今まで一度も聞いたことがない
昔はForth信者というのがいたとか
フォースの友がおらんかったのか
OOPを学ぶと全てがオブジェクトに見えるように
関数型を学ぶと全てが関数に見えるのかな
>>880 regex-posixは知ってるがPerlと比べたら見劣りする
例えば\のエスケープが必要
Stringが富豪的すぎるのでByteStringやTextが一般的だというのも問題
覚えることが多いしライブラリの対応もまちまち
現にregex-posixはそのままではTextを扱えないよね?
パーサを書くのに良い言語だというのには同意
>>883 群れに属する必要ってあるの?
それに、Lisp のコミュニティは派生言語 (CL/Scheme/elisp/Other) や処理系毎に無数にあるから、
特定のグループが気に食わないなら他を探せば良いだけだと思うけど。。。
>>887 OOPではオブジェクトが変数に入り関数はクラスに入る (関数はオブジェクトじゃない)
関数型では全てが変数に入る (全てがオブジェクト)
>>888 > regex-posixは知ってるがPerlと比べたら見劣りする
regex-pcre や regexpr は?
> 現にregex-posixはそのままではTextを扱えないよね?
regex-pcre や regex-tdfa は?
なんで最も使いにくくて遅い正規表現ライブラリである
regex-posix を使おうとするの?
覚えることが多いって、必要があって使っていけば
自然に覚えられるでしょ(どの言語のどの機能・ライブラリでもだけど)
使わなきゃ覚えない
> ライブラリの対応もまちまち
これは少し同意
まあ、何年かすればどれもメンテナンス放棄されてるさ
>>890 これはまた奇妙な解釈をされたなw
関心事にどのような考え方で対処するかという話なんだが
このスレ見る限り関数型はプログラマを理屈っぽくする気がするね
ほんとおまえらってつまんないよな
関数に無関心ってあれだろ
理屈っぽい専門家に無関心で、楽しい政治主導がポポポポーン
ほんとおまえらってつまんないよな
おもしろい話はお笑い芸人に任せよう
>>893 関数型言語のユーザーっても、このスレのユーザーは低レベルだよ
(自分も含めて)
俺はC#とRubyがお気に入り
オブジェクト指向言語としての完成度も高く、
かつ関数型のテイストも取り入れてて書いてて気んもちイイッーーー
>>887 OOPを深く学んで身につけると、
例えば扇風機を見ただけでそれを抽象化してクラスを作り、
それと関わる人間や周りの環境とのメッセージのやりとりが
頭に思い浮ぶんだろうね
UML が開発されるずっと以前から、何か見るたびに
UML みたいなものが何となく頭の中に描かれていたんだろう
関数型はどうなんだろうな
私自身は、扇風機を見て無限リストや FRP の構造が思い浮かぶが、
それが「全てが『関数に見える』ということか」と問われれば、
はっきり違うと言える
結局、関数(関数型言語)って何? って疑問と繋がってくる
まぁ、この辺りが理屈っぽいと思われるんだろうな
否定はしない、やはりざっくばらんと考えるのは苦手だ
ただ、みんながそうじゃないからな
世間はC#へ静かに、しかし確実に移行しようとしているな
winモバがかつるとは思えぬ
FlashのAS1から
「DirectX使いたいな」と思い立ちググってXNAを知り
「でもランタイム要るとなるとあまり流行らないのかな」と思いながら学んでたんだけど
このスレ見たら好評でビックリっていうか嬉しくなった
でもC#とXNAはランタイムの面からするとまた別物か・・・
とりあえずC#はAS1と記述が似てて馴染み易かった
文法学習そこそこですぐアルゴリズムやれるってのは「楽しい」ね
初心者から言わせてもらうと
>>903 > 文法学習そこそこですぐアルゴリズムやれる
そりゃAS1の経験があるからってのも少しあるんじゃないか
AndroidがJavaだしなぁ。
天下のグーグル様が選んだんだから将来も見据えていることだろう。
C#勉強するぐらいならJavaやるわ。
どの言語使っててもJavaとの対比で説明がなされたりするし
プログラマとしての最低限のたしなみとも言える。
C++、C#、Objective-C辺りは知ってても知らなくても何も困らん
また偏ってるな。Windowsアプリ作るならならC#が断然いいわけで。
だからC#とJava両方でいいだろ。どっちか一つを選ぶとかじゃない。
Haskell、OCaml、Scheme、Prolog この辺りどれか1つもたしなんどけ
>>906 逆に言えばWindowsアプリ作らない人にとってはC#はどうでもいいわけですな。
>>905 さすがにC++は知らんと困ることあるだろ
動的言語で構築されたシステムでもパフォーマンスを重視する処理はC++で書くし
C++とObjective-Cをひとくくりにするのはどうかと思うぞ
>>910 それ言い出すと全部どうでもいい言語になるな
そういう時は普通は C を使うけどな
C++ が必修項目だった時代はもう終わり
今はJava始めて2ヶ月ちょいとかでAndroidアプリ作っちゃう人とかいるよね
向いてるのかな
Eclipse + Java
この組み合わせでPGの敷居が相当下がったからな。
>>910 いや、違うぞ。
それもそう思ってC#をずっと放置していたんだけど、
それが今年あたりから変わってきたんだよ。
linuxでmonodevelop一回インストールしてつかってみれ
あと、linuxでGUIアプリ作ろうってときも今まではJavaだったかもしれないけど、GTK#っていう有力な選択肢ができてきた。
>>918 Gtk# って Vala より良いの?
ランタイムが必要なかったり、C のライブラリとの連携なんかを考えると
C# を使うより Vala の方がメリットありそうに思うんだけど
920 :
デフォルトの名無しさん:2011/04/17(日) 23:47:14.92
C#は書いてて楽しい
このスレに出てくる言語は皆そうなんでしょうね。。。
C#だけだと飽きちゃうけど.NETの場合は
C+++/CLI,VB.NET,Boo,Gtk#,F#,Nemerle,IronPython,LuaInterface...など
選択でき遊べる余地もあるから
それなりに楽しめるんじゃないかな
C#はラムダ式やLINQとかのあっち方向への進攻がおもしろい
みんないいなぁー
最近はプログラミングが目的を果たすための手段と化してて、たのしくないわ
昔は、回り道や寄り道するのも楽しかったし、具体的な成果物が無くても、コードに触れてるだけで知的探求心が満たされてたのになぁ…
ま、それが人間だしな。
保守性の高いコード書くとか、
いかに制限の中でよりよいもの書くのは結構楽しいかなぁ。
酷い環境でないことが前提だけど。
>>923 そっちだったら Scala もオススメ。
>>926 頭をなでなでしてくれる人がいるという前提じゃない?
ちと違う気がする
マップが見えてるダンジョンが楽しくないのといっしょだな
回顧してないで新しい楽しみ方を見つけるほかありませんわ
MacOSでC#が楽しいでFA?
Javaがたのしいって事が理解出来ない低脳オヤジは
青春真っ只中、股間にテント立てたニキビ面したがきんちょを
羨んでるだけだろwインポジジイw
何が楽しいかよりも、何がつまらないの方が本質的だな。
動的言語と静的言語ではシチュエーションによって違いすぎる。
つまりどういうことだってばよ?
次スレは立たないってことだってばよ。
やっぱDEBUGでアセンブラ?
javaは20年くらい前からあるんだがな
おやじって60代くらいを指してるのかね
正確には16年前な
1994年だっけな。Oak時代は知らんが。
Javaは初期のブラウザベースのIDEが面白かったな。
AWT
なんか、薄紫色の分厚い本買って勉強したな。
JavaWorldとかJavaPressとかも買ってた。
JavaPressのムック本買ったわ。初めてのJavaみたいなやつ
>>935 アセンブラなら6502系がいいな。
appleUやファミコンとかに入ってたやつ
知らんなぁ
6809もオススメ
SEXって命令があった
>>944 そうれをいうならlispにも似たようなものが、、、
PANAの蛍光灯の品番にも・・・
StringとかListとか組込みのオブジェクトを簡単に拡張できる言語ない?
継承して独自クラスってのじゃなくて。
String.extraMethod()みたいな。もちろんインスタンスメソッドでも。
Obj-Cではカテゴリ?だったかでそんなのが出来るみたいだけど。
>>948 ruby, C#, JavaScriptあたりはできるっぽい。
>>948 #Ruby
class 拡張したいクラス
def 追加したいメソッド名(引数)
#処理
end
end
//JS
拡張したいクラス.prototype.追加したいメソッド名 = function(引数) {
//処理
}
C#はよく知らんのでパス
Javaは確実にできない。Stringはfinalだから。
952 :
デフォルトの名無しさん:2011/04/19(火) 16:02:36.83
>>950 JSはそれやるとfor inしたときに悲しいことおきるよね
javascript:
Object.prototype.MyMethod = function(){ alert('dummy'); };
var hash={ 'k1' : 'v1', 'k2' : 'v2' };
for( var key in hash ) { alert( key ); };
>>952 まあ、Objectではやらないのが無難だなw
でも逆に言えばObject以外には基本的にfor..inしないワケだからいいんでね?
954 :
デフォルトの名無しさん:2011/04/19(火) 18:09:01.32
JSはなぞなぞ仕様多すぎて楽しくない
>>948 ObjC ではカテゴリ、、、と書こうと思ったら、質問の中に既に書いてあるとは。
時代は変わったなあ・・・
15年前とかObjective-Cの名前を知ってる人ですら希だったのにのう。
オブジェクトC子
958 :
948:2011/04/19(火) 23:15:07.32
ありがとう。
Rubyなら出来そうだと思ってたけど、予想外なまでに簡単だなぁ。さすがというべきか。
C#は拡張メソッドってやつかな。これは…変態チックだw
jsは存在を忘れてた。
インターフェースに拡張メソッドを作ると楽しいな
Rubyはあまりにも簡単が故に、組み込みクラスを魔改造とかたまにやるw
…が、大きなコードでやると洒落にならんことに
961 :
デフォルトの名無しさん:2011/04/20(水) 16:37:34.87
SQLって楽しいよね。
962 :
デフォルトの名無しさん:2011/04/20(水) 17:21:31.88
Tcl/Tk並にGUI作るのが簡単で、BASIC並にお手軽で
Awk並にテキスト処理が簡単な言語ってありますか?
プログラミングに美学を求めず、
簡単に作れて動いて楽しいというのを求めてるんですけど。
あー、Pythonもアリか。
何気にTkライブラリが標準添付だし。
>>962 tcl/tk。
簡単にguiが作れてbasic並にお手軽でawk並にテキスト処理が簡単だから。
>>962 なでしこ
改行の扱いに若干何があるのと、とにかくバグが多いが
百行程度の小さなプログラム専用と割りきれば意外と使える
それ以上ならPythonかRubyくらいしか思い付かない
言語としては割に好き、というかどうでもいいレベルだが、
Xcodeがイミフ過ぎて微妙なんだよな。
あれ、直感的に使える奴いるの?
tkが好きならpythonがよさそう。
もしくはperlかな。
tkが好きならtclがよさそう。
もしくはexpectかな。
GUIの手軽さランキング
ランクA:HSP,なでしこ,Tcl/Tk
ランクB:Python/Tkinter,Ruby/Tk
ランクC:Java(AWT)
ランクD:Java(Swing)
VBはどこに位置するのさ
>>971 C++/Qtのほうが、Javaより手軽だ。
VBはランクS
マルチスレッドが扱いづらい言語だと、GUIは書きづらい。
速度がそもそも出ない言語だと、GUIは処理が苦しくなる。
#!/usr/bin/python
import Tkinter as Tk
la = Tk.Label(None, text='Hello World!')
la.pack()
la.mainloop()
#!/usr/bin/ruby
require 'tk'
TkLabel.new(nil, 'text'=>'Hello World!').pack
Tk.mainloop
#!/usr/bin/wish
# Tcl/TkによるHello World!
pack [label .l -text {Hello World!}]
' VBの場合
フォームにラベルコンポーネントをD&D
右クリックしてテキストにHello World!を設定
TkでGUI作る場合、とりあえず記述が簡単楽ちんというだけならTclの圧勝。
バリバリのオブジェクト指向でメチャメチャ高機能のプログラムを書きたいなら別の言語がいいけど。
個人的にはTclは下手なオブジェクト指向言語よりも有益だと思う。
言語に美学を求める人はTclを嘲笑して悪い言語だと言い、オブジェクト指向言語を賛美する。
機能は少ないより多いほうが良いように思えるし、オブジェクト指向言語は使い方さえ間違えなければ便利だ。
しかし、いつでもどこでも何でもかんでもそのように考えるのは間違っている。
Tclは偉大な言語ではないが、シェルスクリプトのような簡便さでGUIが構築できる点は基本的にオブジェクト指向言語よりももっと重要だ。
'VBScript
MsgBox "Hello World!"
まとめ
行数 言語
0 VB >980
1 VBScript >982
2 Tcl/Tk >979
4 ruby >977
5 python >976
ただし行数はコメントを除く
JavaScript
javascript:alert("Hello World!")
ただ行数だけでなくなんというかセンスの問題があるんだよなあ
だからrubyやJSはいやだ
いやならやらんで良いんだよ
やりたくなったらこっちへおいで
>>971 他はともかく、AWTはSwingより手軽じゃないだろう
GUIを簡単に作りたいならどの言語かはともかく
VisualStudio使えばいいじゃん
Windows脳乙
PC脳も乙
import javax.swing.*;
public class DialogTest extends JFrame {
public DialogTest(){
JOptionPane.showMessageDialog(this ,"Java/Swing駄目ポッポ鳩山サブレ" ,"Hello World!" ,JOptionPane.INFORMATION_MESSAGE);
dispose();
System.exit(0);
}
public static void main(String[] args) {
DialogTest dt = new DialogTest();
}
}
import javax.swing.*;
public class DialogTest {
public static void main(String[] args) {
JOptionPane.showMessageDialog(null ,"Java/Swing駄目ポッポ鳩山サブレ" ,"Hello World!" ,JOptionPane.INFORMATION_MESSAGE);
}
}
これで十分ですよ。
駄目ポッポ鳩山サブレは必須なのか。
Javaでクソゲー作って、レビューで×の数が多くなると凹む。
>>989 こういうやつは、他のシステムを使ってない。比較もせずになにがいいか言ってるだけ。だから、無視していい。
ラベル貼るだけのGUIなら、言語比較でかまわないが、
ちょっとした実用的なツールを作ろうとしたら、
やってて楽しい言語はちゃんとしたIDEにサポートされている言語になる。
すなわち、eclipse NetbeansによってサポートされてるJavaか
VisualStudio monodevelopにサポートされてるC#のどちらか択一だ。
>>995 Javaは以前はGUIひどかったからなぁ。
個人的にはGUIならWebアプリを推したいが。
>>996 QtはC++じゃなければいいんだけどねぇ。
GUIならC#が楽かな、とは思うけど、言語として楽しいとは少しずれるような。
C#より、VB.NETの方が上だと思うんだ。
まだ結論出てないから次スレよろ
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。