1 :
デフォルトの名無しさん :
2009/05/16(土) 23:39:27 最も美しいプログラミング言語は何か語りませう。 最も美しくプログラムを書ける言語はなにか?ということです。 言語名と理由を書いてください。
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
各言語のソースの最も美しいソフトを語ってくれた方がよほどありがたい
5 :
デフォルトの名無しさん :2009/05/17(日) 04:03:29
ソースコードとして史上最高の名作は、emacsじゃなかった?
r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ . 〃 ヽル1'´ ∠:::::::::::::::::i i′ ___, - ,. = -一  ̄l:::::::::::::::l . ! , -==、´r' l::::::/,ニ.ヽ l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはちんこ ◆GbXlaaQNk.の日記帳じゃねえんだ レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ :ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ ::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ ::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な! :::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::/// :::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ / ::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
>>5 全部グローバル変数っていうんじゃなかった?
それだと、最高はないっしょ
8 :
デフォルトの名無しさん :2009/05/17(日) 06:51:16
前スレの統計出すんだ
9 :
統計 :2009/05/17(日) 10:45:38
Haskell :9票||||||||| Python :9票||||||||| LISP :8票|||||||| Ruby :7票||||||| Brainf*ck :7票||||||| Prolog :6票|||||| アセンブリ言語 :6票|||||| C# :5票||||| Smalltalk :5票||||| Whitespace :5票|||||
10 :
統計 :2009/05/17(日) 10:47:44
Scheme :4票|||| Shakespeare :4票|||| C :3票||| C++ :3票||| Pascal :3票||| 機械語 :3票|| APL :2票|| BASIC :2票|| COBOL :2票|| D :2票|| Forth :2票|| Java :2票|| Objective-C :2票|| ひまわり :2票||
11 :
統計 :2009/05/17(日) 10:49:16
Grass :1票| HQ9+ :1票| JavaScript :1票| Ook! :1票| PHP :1票| SaC :1票| System F :1票| unlambda :1票| VisualBasic :1票| なでしこ :1票| 織田信長 :1票| regex :1票|
微妙な言い回しが多くて、一部はカウントできずスマン。m(__)m nasm はアセンブリ, N88はBASICに分類しています. 間違いあったら修正よろしく.
13 :
統計 :2009/05/17(日) 10:55:40
(おまけ)汚いプログラミング言語(前スレ統計) 6票:C++ 3票:Java 3票:Perl 2票:Python 2票:Ruby 2票:C# 2票:LISP 2票:bat,Shell Script 1票:C 1票:COBOL 1票:Haskell 1票:Visual Basic 1票:Whitespace
perl汚いに一票
ノシ つづいてperl汚いに1票 dan kogaiも認める断トツ1位の汚さだろ
ここまでKEMURIなしか
>>12 KL1は2回くらいでてきたのでは。一方はGHCとなっているかも知れないが。
前スレの最後の話の続き。 表計算は美しいがチューリング完全ではないのでプログラミング言語とは呼べない、と。 ということは、純粋関数型言語は状態を持たないので、つまりチューリング完全ではないのでしょうか?
再帰できれば状態を更新できなくてもチューリング完全になり得る 普通は関数型言語も当然のようにチューリング完全
なるほど、新しい状態を引数にしながら無限に再帰すれば状態を持っているのと同じですね。
GUIプログラムとかで状態なしってどうやるの? つねにぜんがめんのじょうたいを持ったものを引数渡しってかんじ?
haskellでStateモナドを使った場合 状態を扱う関数を合成していってできたものに最後に初期状態を渡すと 最後に実行される関数の戻り値と最後の状態が戻ってくるとかそういう感じ 合成される関数は任意にその時点での状態を参照してそれに応じた処理をすることができる でその状態が(画面とかの)入出力を伴う場合、プログラム全体での入出力を伴う処理 と合成し、最終的にmainの外から一括で実行される
24 :
21 :2009/05/17(日) 21:24:30
・・・なんか言ってることはわからんでもないが、いわゆる普通のGUIアプリの少なくとも書くウィンドウとかはOOPのほうが人間の思考に近そうだな・・・
haskellなんて、実用度ゼロじゃん。
SchemeかSmalltalkかPythonかRubyだろうな。
Aが一番きれい
仕様はDが好きだな、使いたいとは思わないが
保守を兼ねて、Rubyに1票。 「LISPとSmalltalkが提供するものを、普通の人が使える形で提供しようと考えています」 (作者へのインタビュー記事より)
個人的にはRubyは美しいとは思えないな Perlと同レベルにしか見えん 中途半端に色々な言語のユニークな所を突っ込んだだけとしか Rubyやるぐらいなら本気でLispをやった方がいいと思う
まともなRuby.NETが使いたいな
言語とVMはきれいに分離されるべき
Ruby は使いやすさのために美しさを犠牲にしてるように思えるので 俺も Ruby は美しいとは思えないね。というわけで Smalltalk に一票。 それよりも > 「LISPとSmalltalkが提供するものを、普通の人が使える形で提供しようと考えています」 そうなの? Smalltalk はともかくとして、Lisp? そりゃ、ま、Lisp は古くからある言語なので、動的型付け型なんかは さかのぼっていったら Lisp が元だとも言えるのかも知れんが、 matz の発言の趣旨はそういう意味じゃないんだよね? どちらかと言えば Perl と Smalltalk が提供するものを、普通の人が使える形で提供してる ように思えるんだけどねー。
「RubyはLispの方言」 某Lisper
Rubyがそこそこ人気なのは Javaのようなベタなオブジェクト指向を素直に受け入れてるから。 PerlやLispやJavaScriptとの一番の違いはそこだろ。
>>35 それいったらPerlもPythonもLispの方言と言えるぞ
PythonはLisp-1だからSchemeの方言だな
38 :
デフォルトの名無しさん :2009/05/21(木) 23:16:59
RUBY!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Rubyが影響を受けたとしたら、第一がPerlであって、次がSmallTalk Lispはマルチパラダイム言語としして導入した手法の一つだと思うがな
IOCCCアゲ
41 :
デフォルトの名無しさん :2009/05/22(金) 01:14:08
アガッテナカッタ
GHCだろ
そう。理屈の要らない Guarded Horn Clauses ね。
>>34 RubyがLISPから導入したものには、以下のものがあると思う
・高階関数
・リスト内包表記
・継続
高階関数ならRubyだけでなくPerlやPythonにもあるだろう 内包表記もPythonにあるし
ところで誰が
>>35 みたいなこと言ったんだ?
本当にLisp使ったことある人ならそんなことは言えないと思うのだが
なんでそう思うの?
S式、マクロが無い時点でLispの方言とは言えないな
RubyをLispで作ればいいじゃない
「あらゆるプログラミング言語はLispの構文糖衣」だって爺ちゃんが言ってた。
「あらゆるプログラミング言語はアセンブラの構文糖衣」だってヒィ爺ちゃんが言ってた。
ヒィ爺ちゃんってフォン・ノイマン級の頭脳だなw
LispでPrologとか作るのはよくあるけど PerlやPython、Rubyl作ったって旨みないしなぁ
Lispよりかは親しみやすい。それで十分じゃないか。だからArc作ったんだろ。グレアムは。
>>51 LISPマシン Prologマシンと言う場合、
アセンブラがそれぞれ LISP Prolog だということだろ。
その点について?
それはソフトの部分がハード化されてるだけだろ
バイトコードを直接処理できるとかそういう話ではなく?
LISPマシンのような高水準言語マシンでは、 高水準言語がアセンブラにくるので、より低水準な言語は 生きる場所がなくなる。そういうケースも考えに入れる 必要があるのではないか。
>より低水準な言語は ちがうよ たとえ高水準でもLISP以外は生きる場所がないのがLISPマシン。
Lispより高水準な言語なんてあったっけ
Prolog on Lisp
>>58 あのなLISPマシンのような高水準言語マシンでもマシン語は持ってる
その論理ならx86のニーモニックなんて高級言語じゃないか?
>>44 継続?!
なんで Ruby に継続がいるんだ?
66 :
65 :2009/05/24(日) 06:13:45
>>62 (にしないと訳け解らないか)
マイクロコード?
67 :
デフォルトの名無しさん :2009/05/24(日) 06:30:02
> アセンブリ言語 :6票|||||| たしかに、これが一番美しいきがする
>>66 だからマシン語だってば、マイクロコードだってマシン語をインタプリト
するわけでしょ。
アセンブラが存在するかどうかってのは別にして…
>>67 だから、アセンブリ言語にもいろいろあるよ、っていう話を今している。
文法的にはどれもオペコードの後にオペランドが並んでるだけじゃん 直交性がどうこうとかいう話になればアセンブラ固有の話になるし
よく考えたらアセンブラじゃねえな、CPUレベルの話だ
やっぱハーバードアーキテクチャだよな
>>64 Rubyの継続は、その名もズバリ「callcc」です(笑)
使い方:
callcc do |c|
# 処理
c.call if condition # ← c.call で「callccの後の世界(A)」へ継続する
# 処理
end
# ← (A)はここ
アーキテクチャでいえばスタックアーキテクチャは美しいと思う。 スタックマシンであるバロースB5000という古いコンピュータは アーキテクチャも開発環境も実行環境も美しいよ。
このスレで PostScriptがまったく候補に挙がらないことについて
76 :
デフォルトの名無しさん :2009/05/25(月) 16:10:55
ソースレベルで言うならCだろう
LISPは括弧に縛られるのがあまり美しくない 評価と適用を括弧を使わないで区別できないかな
>>77 それがLogoだったんだがほとんど絶滅状態
Forthはシンプルで美しいね。 自分はHP12C(スタック電卓)を使ってでスタック脳になってるから、そう思うのかも。
80 :
ちんこ ◆GbXlaaQNk. :2009/05/27(水) 20:10:17
もうプログラミングとかどうでも良くなった。 これは難しすぎる。 自分の書いたプログラムを4ヶ月ぶりに読んだら、意味不明だった。
81 :
デフォルトの名無しさん :2009/05/27(水) 20:13:25
なんだちみは
なんか○んこって書いてあるよ
Pascalで出来る範囲のものを書く限りPascalは美しかった。 Cばりにポインタ駆使してメモリ読み書きするコードは醜悪の一言だったが。
>>81 この方は前スレの後半を盛り上げた功労者です。
Pascalはyaccにとって美しいだけじゃないの?
PascalならModular2だろう、Oberonもあるが一般的でないし 俺の印象では、アメリカの言語は力強く合理的で ヨーロッパの言語は学問的で美しい印象だな
英語は汚いが実用的で、ヨーロッパ言語は綺麗だが難解なのに似てるな
ある時代の審美眼からいえば、 DIBOL も美しかった。
>>89 DIBOL って今でも使える処理系あるの?
ぐぐったら○OBOLのtypoじゃないのか・・・
同じくググったらPDP-8の話がひっかかって興味深かった
FORTHは美しいと思う。 美しさの源泉は「Thinking Forth」という本にまとまっているらしい。 PDFを入手したが、なにせ英語なので読むのが難しい。
Forthも面白いけど俺はやっぱりLispだな 全てがS式であることの素晴らしさ!
特殊形式という例外が美しくないLispが嫌いな俺はForthに一票。
FORTHを勉強中。 変数は値ではなくアドレスが積まれるのが秀逸。
今更ながら FORTH 勉強しようと思ってるんだけど、 何かいい本ある? できれば日本語がいいけど英語も可。
Factorも面白そうじゃない?
101 :
デフォルトの名無しさん :2009/08/31(月) 20:25:49
すっかり寂れたな
ここに書くために(前スレで「ちんこ」に反論するために) ずいぶん勉強させてもらいました。 「美しい」の基準は人それぞれ違うから難しいですね。
C言語系しか知らない俺に隙は無かった
ちんこだが、 Google Collectionsの設計は神。
>>104 Google Collectionsを調べてみました。
すごく素直で良い設計だと思います。
#Javaにしては
>>106 これ以上に美しいソフトウェアがあるのですか?
教えてください。勉強したいです。
おれには、これほど堅牢で、かつ柔軟なソフトウェアが構成出来るチームや個人がいるとは思えません。
おれを除いてね。
ちなみに、最近SICPを読み始めました。 Schemeとか全く利用価値ないけど、シンプルで美しいですね。 RubyとかPythonに似てるかんじもします。
もっとも美しい言語は、Rubyじゃないの? Rubyの入門書の前書きの部分で、必ず、 「もっとも美しい言語」って絶賛されてるじゃん
>>107 Google Collectionsって、単にコレクション操作のライブラリのことでしょ?
SmalltalkとかRubyのコレクションを無理してJavaに持っていっただけじゃん。
>>107 つまりSmalltalkのコレクションの方が美しいよ。
SqueakってSmalltalkの環境だったのか…
美しいの意味が違うだろ。 設計が美しいかどうかを言っている。 demoは美しいけど、所詮はsmalltalkだろ。
smalltalkの美しさがわからないのはもぐり
ちんこのマイブームがGoogle Collectionsってだけだろ。素直にGoogle Collectionsの話をしてやれよ。 ちんこは「ほげ」のパラドックスの典型例みたいなやつだから、Smalltalkとかの美しさを知らせようとしても無駄。
>>117 別にマイブームってわけじゃない。
ただ、Google Collectionsの設計思想が気に入ったというだけ。
型パラメータに対して型推論を使って生成させるのとか、
Function, Predicateという抽象によってコレクションの持つオブジェクトを変更したり、考え方自体がきれい。
全体として、コンストラクタによる生成はさせませんという一環した方針がある。
また、Immutableへのこだわりもあるし、それについてBuilderで生成させるというかっこよさもある。
Effective Java書いてるJoshuaさんがGoogleだし、この企業はやっぱ、優秀な人間採用してるんだな。
おれもGoogle入りたい。
>>118 > おれもGoogle入りたい。
まずは優秀な人間になれよw
>>118 わかったわかった。
Google Collectionsの設計思想は美しい。
しかし、同様に美しいものはたくさんあるよ。
ちんこが知らないだけでね。
HaskellのMaybeモナドの設計思想とか。
>>120 それを「これ以上に美しいものがあるのですか?」とか書くから突っ込まれる。
最低でもSICPを継続のとこまで読んでからまた来てください。
>>113 で書いたCroquetは
>>107 の
>これ以上に美しいソフトウェアがあるのですか?
>おれには、これほど堅牢で、かつ柔軟なソフトウェアが構成出来るチームや個人がいるとは思えません。
これの2行目への返事でもあります。
Google Collections以外にも、
「堅牢で柔軟、大規模なのにちゃんと動くものを構成している」チームがいるということです。
Croquetと言えば、最近、Croquetを商業利用した Qwaq Forum [
http://www.qwaq.com/] を
米海軍水中戦センターが訓練に採用したってニュースが流れてた。Smalltalk も侮れないぞ。ちんこよ。w
Google入って、お前らにもっといいものを提供してやるから待ってろよ。
おう、期待してるぜ
>>105 J言語のページを見てみました。
文法がよくわかりませんが、HPのRPN電卓のキー入力っぽくも見えます。APL系?
それでいてGUIコンポーネントやDBコンポーネントも持っていて、
しかもUTF-8対応というのはなかなか興味深いです。
調べたらAPLを作ったケネス・アイバーソンが作っているんですね。
これってチューリング完全なのでしょうか?
J Application Library (JAL) のページの写真がJALの飛行機なのが面白いです。
http://www.jsoftware.com/jwiki/JAL/User%20Guide
127 :
ちんこ ◆GbXlaaQNk. :2009/09/05(土) 20:12:35
今、ライブラリ作ってるんだけど、美しい設計に敏感なみなさん、 javadocを晒したらコメントいただけますか?ソースはきついw
128 :
デフォルトの名無しさん :2009/09/05(土) 20:20:19
おし、晒せ。
129 :
ちんこ ◆GbXlaaQNk. :2009/09/05(土) 20:43:04
やっぱやめた。 出来上がったらソースも公開するつもりだし、安心しろよ。
130 :
デフォルトの名無しさん :2009/09/05(土) 20:55:17
C#だな
131 :
ちんこ ◆GbXlaaQNk. :2009/09/05(土) 21:36:27
Haskellって、純粋関数言語だよね? パフォーマンスはどうなの?Javaとかと比べて。 かなり興味ある。あとはPython Javaは最強すぎてもう鬱陶しくなってきた。 Python勉強した方がGoogle入りやすいかな?
>>131 Javaより速いよ。まあ修得できないちんこには関係のない話だがな。
自分で調べようや坊や
>>126 APL-特殊文字+FP≑J
普通に状態(変数)も条件分岐もループも再帰も持ってんだしチューリング完全だと思うが?
135 :
デフォルトの名無しさん :2009/09/06(日) 08:20:52
make+bash最強
最も美しい言語となると、WEBじゃなの?
>>136 WEBって何?そんなプログラミング言語あったっけ?
> 最も美しい言語となると、WEBじゃなの? 言語って言えるかどうか難しいところだわな Pascal コンパイラ必要 web2c で C に落しても C コンパイラ必要
139 :
ちんこ ◆GbXlaaQNk. :2009/09/06(日) 19:37:58
scalaというのが神らしいです。
ちんこにはScalaくらいのなんちゃって関数型プログラミングがちょうどいいとおもうよ。
141 :
ちんこ ◆GbXlaaQNk. :2009/09/06(日) 20:47:48
まぁ、それは置いといて、関数型プログラミングから何らかのエッセンスを学びたいと思っています。 HaskellとScalaはどちらがいいですか? javaの設計で行き詰まっています。手続き的なAPIがユーザに不必要な制約を与えることに気づいたのです。 というわけで、気晴らしに関数型でもやるかとw Schemeは嫌いじゃないしね。Scalaは、ユニットテストのサポートがすさまじいと思った。これはユニットテスト書くの楽しくなる。
142 :
デフォルトの名無しさん :2009/09/06(日) 22:02:33
VHDL
ちんこって軽く1~2周は遅れてて十分恥ずべきなのになんでこんな知ったような口たたけるの? 馬鹿なの?死ぬの?
144 :
デフォルトの名無しさん :2009/09/06(日) 22:39:56
scalaはマニア向け
145 :
ちんこ ◆GbXlaaQNk. :2009/09/07(月) 00:17:05
>>144 どういうマニアですか?
僕にはとても汎用的で、javaの代わりになる言語だと思えるのですが。
1.C# 今一番めしがくえる。 2.C++ とりあえず、要求を実現するのにできないことがない。
>>146 web案件の増加とかで、最近2はそうでもなくなった。
1、2ともにJavaになりつつある。
148 :
ちんこ ◆GbXlaaQNk. :2009/09/07(月) 08:18:00
案件とか業務とか、どうせお前ら全員しょぼいんだろw
149 :
デフォルトの名無しさん :2009/09/07(月) 08:57:25
Bisonが素敵です YaccのようでYaccより遥かに強力 これにFlexつけたらいろいろできます
C++さえマスターすればあと30年は戦える
>>141 Schemeは純粋関数型ではないので
やるとしたら純粋関数型のHaskellをお勧めします。
>>134 ありがとうございます。J言語について調べてみます。
FPというのも興味があります。かのバッカスが作った言語なんですね。
>>152 "Priier"を読んで大掴みに体験してみて、"learning J"でもう少し細かい所を見てみるのがいいと思う。
と言うか、俺がそうしたんだが。
>>153 訂正
"PRiier"→"Primer"
156 :
ちんこ ◆GbXlaaQNk. :2009/09/07(月) 18:35:14
今日、手続き型で思い切り書いてみたら、とんでもないことになった。 上から入れたものが下の方でどうなってるのか、さっぱり分からなくなった。 ちなみに再帰的な処理。 やっぱり手続き型は害悪だと思うんだよね。
157 :
デフォルトの名無しさん :2009/09/07(月) 19:25:53
最も美しいプログラミング言語? HSPに決まってんだろw
LispのLOOPとFORMATは、きれいじゃないなぁ、と思いつつ代替案が思いつかないな。 あと、マクロってどうやってデバッグするんだよ、って思っちゃう。
>>68 マイクロコードの先はマシン語ではなくて、hard-wired なんじゃないの?
>>156 FORTRANを作ったバッカスも、手続き型は害悪だと思っていたみたいです。
はてな人力検索:
関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。
初心者にも関数型言語のメリットや考えかたがスラスラ分かる勉強の材料を教えてください。
言語の習得よりも、関数型言語の考え方の習得に重きを置いています。
http://q.hatena.ne.jp/1143714236 回答がなかなか有用だと思います。
この質問者のhigeponさんって、Mona OSを作った人ですね。
SchemeをMona OS上に実装した人も、最初はこんな質問をしていたんですね。
なんだか勇気付けられます。
>>161 回答してるのShiroさんだわ…こりゃすごい。
見た目ではなく、内面の美しさを感じさせるのはPrologだな。
カットで台無しだけどなー
>>165 それあるねぇ。使わなければ相当の美人だけど。
167 :
ぅゅ :2009/09/08(火) 23:18:02
168 :
ちんこ ◆GbXlaaQNk. :2009/09/08(火) 23:31:02
型ありとしても定義出来るし、 型が定義されてない時には動的に型推論してくれる。 そんな神のような言語はありませんか?
ECMAScript カスだが
170 :
169 :2009/09/09(水) 00:15:53
あ、型推論はないよ 動的型なら型推論する意味ないから。
>>168 型が定義されてない時に性的に型推論してくれる言語では不満ですか?
CommonLispは型宣言なんかもあったな
173 :
ぅゅ :2009/09/09(水) 01:58:33
つくれよカス
LispやSchemeは( )だらけで分からなくなりそうだけど良いエディタがあるの?
>>164 SmalltalkとPrologには理屈でない美しさがあるね。
176 :
ちんこ ◆GbXlaaQNk. :2009/09/09(水) 06:12:17
Lispは抽象画の美しさ C++はガンジス川の美しさ
>>糞コテ C++0xのautoを調べろ
179 :
ちんこ ◆GbXlaaQNk. :2009/09/09(水) 07:09:10
>>175 そういえば、Part2になってから見かけ派の書き込みがなくなって、
理屈派ばかりになったね。
>>177 お前どっちも美しいと思ってないなwww
普通にどっちも美しいだろ
hspとか精神的に不衛生だわ GOTOってなんだよボケ数十回GOTOしたらエラーでエラー無視してるとPCぶっ壊れるしwww C++をスペースとかでうまくレイアウトしてけば綺麗だが それやるとPHPが一番綺麗
>>168 Haskellは型を書いてもいいし、書かなくてもいいです。
書かないときは推論します。
>>167 シンボルが定義されてなかったら文字列の扱いですか?
nopとかmovとか、そこはかとなくアセンブリな感じですね(笑)
186 :
デフォルトの名無しさん :2009/09/09(水) 12:09:10
>>184 Perlにはイワユル型がありません。
文脈に応じて自動的に解釈されます。
解釈を指定する方法も提供されています。
>>184 動的にって言ってるんだからそれはダメじゃないの?
動的にモジュール読み込んだ時に型解決できないし
そもそも型推論のある型付け言語なんか普通にごろごろしてるし、神のような言語でも 何でもない
動的に型解決というのがいまひとつピンとこないのだが。 ランタイムに型エラーが出てたのが、ランタイムに型解決 失敗エラーが出るようになるだけで何もうれしくないのでは? コンパイル時に型解決失敗エラーが出るところが型解決のメリット だと思うのだけど。
> 動的に型解決というのがいまひとつピンとこないのだが。 コンパイラがラクになるじゃなかったっけ?
>>187 「動的に」は「インタプリタでのコード入力時に逐次的に」と勝手に解釈してました。
もし「動的に型推論」という言葉が「実行時に変数の型を推論する」のだとしたら
何のために推論するんでしょう?
Pascalみたいに値域検査をするためでしょうか?
静的型推論を知らなくてどう表現していいか分からなくて動的とか適当な言葉を 使っちゃっただけだと推測
189です。
型解決じゃなくて型推論でした。失礼。
>>190 中間言語にコンパイルする時点で型推論するのかな?
それなら型エラーを含んだコードは評価前に死んでくれて
評価途中に死ぬ確率が減るメリットがありそうだけど、
ラクになるのはevaluatorだなあ…
194 :
デフォルトの名無しさん :2009/09/09(水) 15:45:24
あらゆる言語はbison(yacc方言)で表現できるのだから、 もっとも美しいのはbison(yacc方言)です
>>194 \ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんな餌で俺様が釣られクマ――
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
あえて釣られると
・bisonはparser generatorであって言語ではない
・perlはbisonで表現できないんじゃなかったっけ?
196 :
ちんこ ◆GbXlaaQNk. :2009/09/09(水) 16:36:06
とりあえず型について思うのは、 やっぱ、アルゴリズムを記述したり、厳密に型を定義して書きたい時はあると思うということだ。 でも、誰が作ったライブラリを利用したり、自分の作ったコンポーネントを合体させるだけなら、型はいらない。 下の方では型ありでコンパイラのチェックが入るけど、型を書かない時は動的に推論するというのが望ましい。 手続き型の書き方について限界を感じてきている。Haskellを勉強したいけど時間がない。 Haskellって実用的ですか?アルゴリズムとか記述出来ますか? 多くのアルゴリズムは、命令的な処理の羅列として開発されていると思う。 それを関数型にすることで、パフォーマンスを損なったりしませんか?
>>196 「勉強する時間がない」なんていうやつはたいてい
「勉強しても理解できなかったとき、自分の無能さを認識するのが辛い」だけだ。
で、いつまでも自分のことを「やればできる子」だと思っている。
理解できるまで勉強しろ。
2chに書き込んでる時間を全て勉強の時間にまわせ。
>>196 Haskellは実用的です。アルゴリズムを記述できます。
Haskellは必要な分しか計算をしないため、
手続き型言語よりパフォーマンスが良くなる場合があります。
>>196 ちんこが言う「動的に推論」の「動的」とは、どういう意味ですか?
静的に推論してはいけませんか?
201 :
ぅゅ :2009/09/09(水) 17:50:08
>>185 そうです
変数名は()以外の記号なら何でもおkですっ
でもグローバル変数forとか宣言するとfor文が二度と使えなくなります
movにしたのはsetqとかよりは分かりやすいかと><
どう見てもよくある静的な型推論です本当にありがとうございました
203 :
ちんこ ◆GbXlaaQNk. :2009/09/09(水) 19:18:14
>>198 ということは、常にキャッシュで計算が行われるということですか?
>>203 遅延評価の事を言ってるんだろ?
式の値が本当に必要になるまで計算されない。
205 :
ちんこ ◆GbXlaaQNk. :2009/09/09(水) 20:09:47
だから、必要な値が、もっとも新鮮な形で存在するということでしょ。 メモリアーキテクチャ的にどうなってるのかな、ということを聞いています。 パフォーマンスが上がるというのであれば、全キャッシュで計算出来るということなんじゃないのかな? 過去の値はどんどん捨てられていくんでしょ? メモリが常に少ししか必要ないということになる気がするんですけど。
遅延評価が何で新鮮な形で存在とかになるんだw
>>205 お願いだから、我々凡人に理解できるように書いてくれ
208 :
デフォルトの名無しさん :2009/09/10(木) 00:13:46
>>205 > だから、必要な値が、もっとも新鮮な形で存在するということでしょ。
ちがう。
必要になったときに計算する。
> メモリアーキテクチャ的にどうなってるのかな、ということを聞いています。
どうもなってない。
> パフォーマンスが上がるというのであれば、全キャッシュで計算出来るということなんじゃないのかな?
ちがう。
> 過去の値はどんどん捨てられていくんでしょ?
そう。
> メモリが常に少ししか必要ないということになる気がするんですけど。
あるいみそのとおり。
優しい人が多いスレですね。
平たく言うと馬鹿に触るなということですね
211 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 02:39:08
>>208 じゃあ、関数型は、メモリが少なくて済むんですか?
すごく疑問なのは、ファイル読み込みとかどうするかということです。
例えば、不変の1Mのファイルをいちいち読み込んではパースしてコピーして、ということはjavaのプログラムではしません。
ふつうはプログラムの最初に読み込んで、プログラム的にキャッシュします。
しかしながら、実際は必要な時に読み込んで、とした方がメソッド間の結合度を下げることが出来ます。
関数型では、こういう処理についても、必要な時に読み込んで、ということをするのでしょうか?
それはとてつもないオーバーヘッドになります。
とても現実的とは思えません。
212 :
デフォルトの名無しさん :2009/09/10(木) 03:46:23
>>211 最初に全部読み込むように書こうが、必要になったら毎回読むように書こうが
必要に応じて好きなように書きゃあいいじゃんとしか言いようがない。
それは関数型言語も手続き型言語も遅延評価も何も関係ない。
メモリがどうのという話だと、関数型言語一般で言えば、
比較的メモリを富豪的に使う設計思想なので
Cや機械語と比べればメモリを浪費しやすい。
(当然Cでメモリ無駄遣いすることもできるし
LISPでメモリを節約することもできるが一般論として。)
ただし近代的な言語は概ねメモリを富豪的に使う傾向なので
Javaと比べてどうかというとそれは処理系による。
213 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 03:58:47
>>212 なるほど、よく分かりませんが、モナドというのは、そういうための機構なのですね?
あぁ、HaskellかScala勉強しないと時代に取り残されて死ぬことになるw
関数型を勉強したら、一般的なオブジェクト指向型設計についても思考の選択肢が増えますか?
関数型やった後だと、既存の手続き型言語で書くときでも、考え方は多少変わるかもね まあ、かと言って手続き型言語で無理矢理関数型コードを再現したようなのはダメだがw ほどほどに関数型の考え方を取り入れれば、手続き型でも役には立つと思う。
>>213 時代遅れって意味では、おまえはすでにこれ以上ないってくらい死んでいるから心配しなくて大丈夫だ。
副作用前提のちんこの頭では、参照透明性とか一生わからんから説明するだけ時間の無駄、無駄、無駄!
216 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 10:24:49
>>215 ですよね。自分を恥じています。
みなさん、情報科学を専攻された方たちですか?
情報学科いけばよかった。
つーか既存言語もマルチパラダイム化が流行ってるからなぁ
218 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 10:40:19
「フレームワークとしての言語」 という方向になっていくのではないのですか? ピュアな関数言語があることは分かりましたが、 ピュアがオブジェクト指向言語っていうのはどういう要件がありますか? また、そういうものは存在しますか
お前は日本語の論理構成すらぐちゃぐちゃなんだから、プログラムなんか 書こうとしない方がいいよ本当に
220 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 10:47:39
>>219 才能ないんでプログラムやめようかと思っています。
関数型分からなかったらやめようかと。
才能無い程度で辞めていたら何もやる事がなくなりそうだ
222 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 10:55:24
生き方は色々あるんで、 プログラムの才能ないと分かっただけでもよかったかなって思っています。
223 :
デフォルトの名無しさん :2009/09/10(木) 12:02:54
scalaは将来登場予定の新Javaの参考資料だよ
224 :
デフォルトの名無しさん :2009/09/10(木) 12:04:44
むかし日本語でブログラムできる言語があったっけ。 気持ち悪かったけど。
ぴゅう太?
AFL系 日本語AFL 和漢 BASIC系 ぴゅう太日本語G-BASIC F-BASIC86国語モード C系 高可読性C FORTH系 Mind
ひまわりやなでしこは何系だろう
>>218 いわゆる“オブジェクト指向”には、抽象データ型をベースにしたもの(SIMULA67→C++発)と、
メッセージングをパラダイムにしたもの(Smalltalk発)、あと最近はオブジェクトベースの考え方(SELF発)がある。
重なる部分もあるが、原則として別物と考えた方が整理が付けやすい。
それぞれのOOをサポートする言語としての最低限の要件は、
・抽象データ型OO → 抽象データ型、つまりユーザー定義型を使えること。静的型チェックが前提。
・メッセージングOO → (メッセージングと見なせる)動的結合を扱えること。分散・並列が理想だが、そこまでは求めない。
・オブジェクトベースOO → オブジェクトレベル(つまりクラスに依存せず)なんらかの委譲機構が用意されていること。
それぞれのOOにおいて“ピュア”な言語の例としては、
・抽象データ型OO → プリミティブ型を持たない言語(Scala など。静的型チェックの要件を外してよいなら多くの動的OOPLも)
・メッセージングOO → 静的結合機構を持たない言語(Ruby など。代入・値参照まで徹底した言語は、SELF、Io くらい?)
・オブジェクトベースOO → クラス、あるいは継承機構のない言語(JavaScript など。誤解されがちだが、動的性は要件ではない)
229 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 17:23:51
>>228 教えてもらってもいいですか?
私はクラスというのは、
データと、それを利用することが多い関数をモジュール化したものだと考えています。
それは、C言語でクラスを作る時に、構造体と関数を用意するのと同じです。
pythonでは、selfを第一引数にとることでこれを意味として残しています。
この考えは上記ではどれに相当しますか?
Pythonは、クラスを含む言語機能自体はオブジェクトベースに特徴的な仕組みにより実現されていますが、 この言語のユーザーは抽象データ型のOO(ただし静的型チェック抜きで)を意識して使うのが通常です。 もちろん、イントロスペクションなどは例外で、抽象データ型OOよりはオブジェクトベースOOの考え方で行なうのが自然です。
オッパイ損
232 :
デフォルトの名無しさん :2009/09/10(木) 21:58:03
>>229 >>228 の言う意味がわかってないのに、どれに該当するか聞く意味があるのか?
その考え方は
>>228 のどれにも該当しない。
あえていうならCやC++の抽象データ型に対して唯物論的な捉え方をするとそうなるかもしれん。
あんたのとらえ方は特定の実装方法に対する解釈にすぎない。
適切な例えかどうかわからんけど、
>>228 「何をもって生き物であると言えるかには以下3つの学説がある」
>>229 「生き物はたんぱく質でできているらしいと捉えている。これはどの学説に相当するのか?」
という感じ。
アセンブラで一番下側から世界を見るか、Lispでそれなりの上側から世界を見るか、 せめてどっちかの視点は持った方がいい まぁ、片方だけに偏るともう片方を小馬鹿にする馬鹿が育ったりするから、両方の 視点を持った方がいいが
234 :
ちんこ ◆GbXlaaQNk. :2009/09/10(木) 22:34:37
お前の名前のことか
ちんこはアセンブラとLispを両方やれ そうすればいろんなものが見えてくるんじゃね
237 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 00:03:31
やだ。実用性ない。 Javaより低級な言語はやりたくない。
238 :
デフォルトの名無しさん :2009/09/11(金) 00:13:57
>>237 Lispはどう考えてもJavaより高級。
ちんこ お前の中には何か輝くものを感じるよ けどメイン言語がJAVA?なのはギリギリ良しとしても こんなスレでLispじゃなくハスケルを選んでるのはすげー残念だ それらの言語を選ぶ神経が分からんが、がんばれよ
ちんこたんは「Javaスクールの危険」とか読んでないのかな。
まぁ、アセンブラやLispをJavaより低級と切り捨てた時点で完全に論外だな。 なぜなら、お前は「自分が分かってもいない言語」を切り捨てたからだ。無知の知が 無いんだよ。そういう奴は見栄ばかり張って進歩はしない。
つーかぶっちゃけ、guru級のハッカーはほぼ全員がアセンブラとLispとC++辺りは 「必要な常識」として会得してるんじゃね? 美しいかどうかはシラネ
ハッカーなんてプログラマの心の中に巣くう幻想 そこらのカスPGも、どこかの誰かの前ではハッカーになってるかもしれない ちんこは、高級言語で効率的にアプリを作ることで、 誰かの瞳に映るハッカーになればいい プログラマが認めるようなハッカーは、一般人からはハッカーって思われてないこと多いし・・・
だが現実にアセンブラもLispも普通におkなんて連中はごろごろいる 気休めの相対評価は井戸の中では通じるが、匿名掲示板程度の小さな海ですら通じなく なる訳で こういうところでぐだぐだと的外れな背伸びレスを垂れ流さないでいてくれるなら、 こいつがそこらのしょぼいJava厨として生きてても別に何も困らないけどな
「Lispもオッケー」って、どんなレベルなんだろう。
機械語含むハードウェア側とLispとの両面教育は割とポピュラーじゃね? ハードウェアを知らなければ最適化も決して理解できないし、ハードウェアの束縛を 無視した抽象的なアルゴリズム記述力ならLispがほとんど最強だし。
抽象的なアルゴリズム記述力なら他の言語も別段差はないんじゃないか?
Lispやる際にはハードウェアを考慮した最適化なんかしないだろJK。
ネットでしつこく話題になるもんはGeek目指していれば普通は少しは触るもんだけど それをやんないって事は ちんこはGeekなんて目指してねーんだよ 目指してるのはまん・・・
251 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 09:30:09
抽象データ型の要件を教えてもらえませんか? 抽象データ型については、セジウィックの本に書いてありましたが、いまいち理解出来ませんでした。 具体的な要件を教えてください。 きちんとした定義なしに、共通認識だとたかをくくったまま言葉を使うのは危険です。
抽象データ型はリスコフによれば、データと手続きをセットにしたものです。 もうすこし具体的に言うと、モジュールの定義することで、それを新しいデータ型として扱う機構・手法です。 プログラミング言語の「データ型」が何かを知っている人ならば、ストラウストラップに倣ってより簡単に 「ユーザー定義のデータ型」と言い換えてもよいでしょう。 抽象データ型のOOは、クラスを抽象データ型(ユーザー定義型)として利用するアイデアに基づいて考案されたものです。
>>249 だから「両面」と
全く別方向からそれぞれ攻めるっつー話だ
254 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 13:33:51
>>252 では、データと手続きがセットになっていれば、良いのですね?
よく言われるのは、Stackならpushとpopがあるとか。
では、popだけのStackはADTではないのですか?という話になる。
インターフェイスとしては十分に成立しうると思います。
というわけで、ADTは、
add, removeのように正と負の関係にある処理と、
状態を問い合わせるための必要最低限の処理が必要なのではないかと思いました。
もっと正確な定義を示している人間はいないのですか?
>>248 高階関数があるかないかで、処理の貼り合わせができるかどうか変わってきます。
遅延評価があるかないかで、無限の値を返す関数を使えるかどうかが変わってきます。
257 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 14:17:37
>>255 定義については分かりました。
ところで、ADTというのは抽象なのですよね?
では、なぜ、「データ」というものが関係してくるのでしょうか?
実装上のデータからは完全に切り離された話のはずです。
なので、javaにおける抽象インターフェイスというのは、ADTではないということになります。
一体これは、定義上、何に分類されるのでしょうか?
>>257 ADTは値と操作を定義したものです。
たとえば次のようなスタックはADTになっています。
struct STACK stack;
void push(STACK a_stack, int a_value);
int pop(STACK a_stack);
このスタックの利用者は、STACK, push, popの実装を知らなくてよいです。
その意味で、このスタックは抽象化されています。
Javaのインターフェイスは操作のセットなので
ADTを定義するためのパーツとして使えますが、
値を持たないため、ADTではありません。
>>258 すいません、
struct STACK stack;
↓
STACK stack;
でお願いします。
260 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 16:35:02
261 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 17:23:46
つまり、初期化出来るかどうか、というのが、 JavaのinterfaceとADTとの差なのですね?
実装が利用者から隠蔽されているだけで具象じゃないか 気持ち悪い定義だな
>>262 利用者から見て抽象的だから ADT なんだと思うが。
どの発言のどの部分を見て具象だと思った?
ちんこの疑問って、「お塩と押尾の違いを教えてください」ってのと同レベルで笑える。
266 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 18:58:12
凡人たちには天才がなぜ悩むのかということが理解出来ないものだ。
267 :
デフォルトの名無しさん :2009/09/11(金) 19:13:26
おまえ、神オブジェクトじゃね?
269 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 19:36:43
>>267 ご名答。
>>268 あなたはプログラミング理論の研究をしていますか?
オブジェクト指向とは何なのか、ベストな設計とは何なのか、などについて研究された論文があったら教えてください。
英語は読めます。
本当に紙オブジェクトだったのか…
271 :
デフォルトの名無しさん :2009/09/11(金) 19:42:06
まじでか・・・・ いてえなあ・・・・
272 :
デフォルトの名無しさん :2009/09/11(金) 19:42:17
ゴゴゴゴゴゴゴゴゴゴゴゴ……………
C#3.0のラムダは美しい方だと思う。 既存のコードの中にうまく溶け込んでいる印象。 対してRINQはあんまり綺麗とは思えない。浮いてる。 C++0xで入る予定のラムダは、あれはあれでありだと思う。 良くも悪くもC++らしい。 美しいかどうかは別問題だけど。
C++から離れてもうだいぶ経つな。 あんな汚い言語にはもう2度と関わりになりたくない。
276 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 20:00:04
>>276 だまされるな。それは孔明の罠だ。
つAuthor
278 :
デフォルトの名無しさん :2009/09/11(金) 20:04:43
>>269 俺たちの尊敬する紙オブジェクト様の名を騙るとは
江戸川先輩なみにごっつい野郎だ
280 :
ちんこ ◆GbXlaaQNk. :2009/09/11(金) 20:17:37
>>277 ストローストローだろ。
この人、プログラミング言語の研究者でしょ?
何か問題があるのか?
>>278 それはおれのブログだw
281 :
デフォルトの名無しさん :2009/09/11(金) 20:21:58
まじっすか!いつも「天才はこう考えるんだ」っていう事を知って感動してるんだけど? 本当に本人?
はいはい 自演自演
284 :
ちんこ ◆GbXlaaQNk. :2009/09/12(土) 00:25:59
ちんこは今までに何を作った事あるんだよ それによって助言の仕方も違ってくると思うぞ
まじかよ神オブジェクトがこんなとこにいんのか
287 :
デフォルトの名無しさん :2009/09/12(土) 08:47:58
オブジェクト志向のオブジェクトって何指すの? 1 モノ 2 SVOのO 3 彫像
288 :
ちんこ ◆GbXlaaQNk. :2009/09/12(土) 08:56:24
>>285 何でお前、偉そうなんだ?
おれより上なのか?
名無し自演もする奴なのか、うぜーなw とりあえずLispやれLisp、OOPなんて狭い世界での些末な定義なんかどうでも良くなるぞ
>>287 基本的には1だと思う
但しモノの指す範囲が概念的なモノから文字通りの物まで物凄く広いから
3は間違いである可能性が高い
もちろん、彫像クラスを作ればその時に限り正解w
(しかしながらOOPLではObjectクラスが既に存在することが多いので、大抵別の名前を付けるだろう)
2はあながち間違いじゃない
従来の言語はVO(動詞 目的語)の順が基本なのに対して
OOPLはOV(目的語 動詞)の順になるし
実際、最初に目的語を考えることが多いからね
おまいらOOPのメリットって結局なんだと思う? 結局は、抽象化につきると思うんだ。 だからオブジェクトっていう定義はいつまでもモヤモヤでいいんだ。 オブジェクト=データ+関数ではないんだ。 データや関数を意識させちゃ、ダメなんだ。 オブジェクト=(型や名前のついたりする)インターフェース郡。 抽象的に、名前や型のインスタンスとして扱うんだ。 実装は、あとから裏でコソコソすればいい。
紙オブジェクト様はCL、SchemeよりHaskell派のようです
アセンブラをやらない奴は最適化もできない
294 :
sage :2009/09/12(土) 10:10:23
ADTとインターフェイスの違いもわからないやつが 紙オブジェクトのわけねーだろ
ちんこはOOPを最先端だと思ってそう
OOPのメリットねえ…俺的には多態かな ポリモなかったらOOP好きになってないと思う
さすがにこれでは、プログラム言語の美しさとは何の関係もないだろう。 そろそろ大政奉還した方がいいんじゃないか。
>>288 これは失礼 、 えらそうに振舞うつもりはなかった
ちんこが、もしあらゆる道を通ってきた上で
こんな謎なこと言ってるなら多分俺よりあらゆる面で上なんだが
しかし、一体何について考えてるのか俺には理解できないんだ
このスレの書き込みの中ではちんこが俺を除いては一番賢そうではあるが、
プログラミング、設計、アルゴリズム、OOP
これらについて考えるのに、もしちんこが今まで矮小なソフトウェアしか作った事なくて
JAVA一本しか言語触っていないというなら
どんだけ地頭よかろうとパズルのピースが大きく抜けてちゃ根本的に絵は完成しないだろがっっっ
神オブジェクトさまはScheme作るのか
英語は読めないけどエスパーすると プログラミングにおいて神様を作っちゃいけないんだろ おれは作るけど。
303 :
ちんこ ◆GbXlaaQNk. :2009/09/12(土) 20:05:43
>>298 逆に、地頭悪いやつが何やっても無駄だろ。
>>302 読んでる途中。
今は中断してエイホのコンパイラに移った。
おれ、情報系出身じゃないから基礎がなってない。
ソフトウェア開発の名著はたくさん読んだけど、
プログラミングの原理とかがよく分からない。そしておれはそれを知りたい。
頭悪いんだからコテハンちんかすの方がお似合いだぞ。
同じ馬鹿なら踊らにゃ損損
306 :
sage :2009/09/12(土) 21:50:17
>>303 学校が情報系かそうでないかは関係ないと思います。
自分は高校生のときに独学でマシン語を勉強しました。
「プログラミングの原理」が何を意味しているのかはわかりませんが
ひとまずアセンブラをやってみたらいかがでしょう。
C++やJavaが内部で何をやっているのかがわかりますよ。
その後、LISPかHaskellに行くといいのではないでしょうか。
やるやつは消防ん時からでもやってるからな
なんか ちんこってプログラミング以前にコンピュータというものを誤解してる気がするんだよな
とりあえず、今はいろんなプログラムを作ってみろよ アプリケーションだけじゃなくてゲームとかOSとか(OS作るなら、OSASKでggr) 正直、俺なんてまだプログラミング2年くらいしかやってないし(ちんこのほうがやってるだろ?) 明らかにそっちのほうが知識あるんだけど それなのに文章を見てると俺でも口出しできる気がする つまり根本的な何かが抜けてるとしか思えない
311 :
ちんこ ◆GbXlaaQNk. :2009/09/13(日) 00:41:23
まぁ、勝手にそう思ってるといいよ。 おれは、低学歴のバカとはマジメに会話しない主義だし。
他人を見下しても得ることは何もないと麻布では教わらなかったのか。 たいした学校じゃねえなw
313 :
ちんこ ◆GbXlaaQNk. :2009/09/13(日) 00:44:40
そうだね。 人を見下しても何も得ることはない。 ただ、バカと会話すると精神を冒される、これは事実だよ。
314 :
デフォルトの名無しさん :2009/09/13(日) 00:46:16
バカと話して精神を冒される、、、、それが地頭なのだよw 本当の天才はそんなことに精神を冒されたりはしない。
>>311 ちんこは今Lisp処理系作ってんの?
それを挫折せず形に出来たらとりあえずはバカじゃないこと認めてやるよ
俺も高学歴の割にバカな奴とはしゃべりたくない
おい神オブジェクトさまは技術者やめて管理職になるらしいぞ
317 :
デフォルトの名無しさん :2009/09/13(日) 06:01:26
まじかよたまんねぇよ 俺も神オブジェクトたんに管理されたい!!
麻布ごときで他人見下してんのかw
319 :
デフォルトの名無しさん :2009/09/13(日) 06:18:58
マジ低学歴なめんなよ プログラミングの世界においては 最上級のハッカーは低学歴に多いのは歴史が証明している
320 :
sage :2009/09/13(日) 09:46:51
ちんこはラムダ計算を勉強するといいと思います プログラミングについての新たな世界が広がります
321 :
デフォルトの名無しさん :2009/09/13(日) 10:48:20
神オブジェクト先生はソフトウェアは止めて研究職になるんだ!っておっしゃられてますよ。
まあ、俺も奴は研究者か教育者にでもなるしかないと思ってたがなぁ。 本当に実力があるのならだが
323 :
デフォルトの名無しさん :2009/09/13(日) 10:56:07
ちょw 神が殺人予告してるよw 有望な研究者なのに殺人とかやばいって、、
324 :
デフォルトの名無しさん :2009/09/13(日) 11:01:29
関西の恋人作ったら別れるときにブチ殺しそうだな。神オブジェクトはw ブログ読むと頭悪いDQNそのものだし。
実際にscalaを使っている人はいますか? ネット上の情報を見ている限り、ocaml + erlangみたいで なかなかヨサゲですが。
326 :
デフォルトの名無しさん :2009/09/13(日) 16:35:10
最も美しいプログラミング言語 = C++
誰か通報した?
>>326 int c=x=0;
x=c++;
printf("%d\n",x);
329 :
ちんこ ◆GbXlaaQNk. :2009/09/13(日) 23:59:57
誰か、京都市在住でコンパイラちゃんと理解してるやつがいたら、コンパイラ教えてくれよ。 aho読んでるけど、作れる気がしねえよ。
>>329 最適化の事考えなきゃ、コンパイラなんて誰でも作れるだろ?
331 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 00:06:44
そうなの? やっぱおれ、頭悪いのかな。
332 :
デフォルトの名無しさん :2009/09/14(月) 01:57:11
インタプリタ:ソース読む→解読する→結果を出力する コンパイラ: ソース読む→解読する→機械語生成 てか作ってんのインタプリタだよな? インタプリタ作れてたら普通はコンパイラの作り方も分かるレベルになってるし (+ 2 3) を読んで 5 と出力するところまでは作れたみたいだから文字列処理は出来てるんだろ 次に (+ 2 3) とか (+ 2 3) みたいに適当な形になってても正しく出力させるようにして 次にネストさせれるように作るんだ (+ 2 (- 5 3)) Lispなんてネストできるようになったらほぼ完成したようなもん
しょぼいコンパイラをJavaで書いて挫折しそうになってるのか 何もかも間違ってる感じでたまらんな、いいぞもっとやれ
334 :
デフォルトの名無しさん :2009/09/14(月) 05:18:15
かみおぶじぇくとさまがんばって・・・
335 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 08:17:33
>>332 いや、何も出来てないよ。
あれが出来ればいいね、というレベル。
ネストまでサポート出来ればいいね、という目標を書いた。
テストケースだ。
おれはソフトウェアにおいては最初にテストケースを書いて、インターフェイスを精査することにしている。
トークン解析するところ難しすぎだろ。
お前ら、本当にNFAとか状態遷移図とか理解してるのか?
とてもじゃないけど構築出来そうにない。
てゆうか、コンパイラの処理に、「文字列処理」なんてフェイズはないから・・・。
何言ってるの?
>>335 flex + bison
Don't reinvent the wheel.
歯車を再発明するな。
よくある謎訳
車輪を再発明するな。
337 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 08:32:50
>>336 それは設定として禁じています。
そういうツールを使うのは、簡単なものを作って、基礎が分かるようになってからでいい。
それではコンパイラを学んだことにはなりません。
学ぶために作るのであって、使うために作るのではありません。
あなたは、再発明の意味を勘違いしています。
死んでください。
338 :
sage :2009/09/14(月) 08:37:01
>>335 有限オートマトンと状態遷移図は学部の最初でやるレベル
339 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 08:41:00
>>338 いあ、まぁ電気でも、論理回路で状態遷移図はやりますが、
それに比べると抽象度が高くて、はるかに難しいという印象を受けます。
慣れてないだけかな、NFAをDFAに直す処理とか、感覚的には分かるけど、ちゃんと理解出来なかった。
一回、実装してみないとダメってことかな。
低水準も高水準も分からないまま実装しても使い物にならんよ 低水準の分からない奴は実行効率を最適化できない 高水準の分からない奴は開発効率を最適化できない お前は両方できない
でもJavaは習得効率はいいぞ。難しいことが出来ないようになってるから。
342 :
デフォルトの名無しさん :2009/09/14(月) 09:01:08
>>337 すでにいいものがあるのだからそこから学べ。
ゼロから作るのはおまえの足りない頭では100万年かけても無理。
早く死ね
343 :
デフォルトの名無しさん :2009/09/14(月) 09:02:35
>>335 ようは文字列処理のちょっとむずい版なんだよ・・・!!
色々専門用語が飛び交ってるけど、そんなん理解せずともLisp程度は作れる
その本は多分、手続き型言語を作るための本だろ
Lispと手続き型言語は全然作り方違うんだ
Lisp程度を作る目標ならその本多分いらない 気合いでやるしかない
そういうことを言うなら機械語くらい理解しないとね 機械語を理解していれば、高級言語なんてまさにその「ツール」なのが分かるよ
345 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 09:06:52
だからお前ら、しょぼいんだよ。 この数レスで、おれとお前らの間には学ぶということへの意識が違うことがはっきりした。
またそうやってまともに対話せずに逃げてプライドを守るんだね
>>345 先ず、自分の発見・発明で作り上げて、
それから学び直すというのが王道ではないかな。
1レスでお前より遙かに知識も経験もある奴がゴロゴロいるのもはっきりしてるけどな
> 918 名前:デフォルトの名無しさん[sage] 投稿日:2009/09/14(月) 04:16:34 > 火元の人 > やり方が理解できない質問者 > 俺に分からないならこのスレにも理解できる奴いないんじゃね、とか思っていて、 > それが態度にも滲み出ている > > 煽る人 > 分かってるつもりだけど分かってないで煽り続ける > こいつを見た火元は「やっぱり分かってる奴いないんじゃないか」と思いこむ > > 住人タイプA > 一目で分かるがお前の態度が気に入らないしコード示すのマンドクセ > つーかこの説明で分かれボユゲ > > 住人タイプB > みんな何言ってんだかわかんね まさにこのケース
350 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 09:18:23
>>347 おれは常に逆で考えてる。
テレビを使うのにも説明書を逐一読んでからじゃないと触れない。
説明書でひと味違う気分になってられるのはユーザーだけだな
技術屋の話とか聞くと凄い人いるよね。 何でもかんでも分解しまくってましたとか、結構ちゃんと直せましたとか。
俺はコンパイラは作ったこと無いが、お前のやり方は絶対効率悪いと思うぜ。 俺も昔はお前みたいな性格で全然先に進めない奴だったが。 教科書なんて無視して自己流でやるようになったら何もかも上手く行くことに気付いた。
354 :
デフォルトの名無しさん :2009/09/14(月) 09:23:38
動くよりもまず考えるタイプか
NFAやDFA程度で何をそんなに悩んでるんだ? 難しく考えすぎてないか?
お前ら親切だな 耳の痛い意見は綺麗に読み飛ばすタイプだから忠告しても無駄だろ…
その辺で引っ掛るなら先にIntroduction to Theory of Computationとか Introduction to Automata Theory, Languages, and Computationの 正規言語とオートマトン関連の章に目を通した方がいいんじゃないのかなぁ NFA to DFAをより詳しく理解するならpowerset constructionの証明を追うとかさ 概要だけ学びたいというならそれこそbison+flexでおkとかになるし
358 :
デフォルトの名無しさん :2009/09/14(月) 09:29:10
面白いよ面白いよ 俺は自分よりも学歴の高い奴がアルゴリズムで悩んでるのをみるのが楽しくてしょうがないんだ あれ?www 君こんなに学歴高いのにこんなことも出来ないの?プゲラッチョw
359 :
デフォルトの名無しさん :2009/09/14(月) 09:47:39
どうでもいいけど今日は平日じゃねーか
一部のIT屋は暇な時はアホみたいに暇だからなw
暇にあかせてデバイスドライバ作っちゃったりもしますね。
362 :
sage :2009/09/14(月) 10:01:39
ちんこがドラゴンブックをきちんと読もうとしてるのは評価できる。 納得いくようにやればいいじゃないか。 上の方にも書いたけど、俺はちんこに反論しようとして、ずいぶん勉強になってる。
無駄に頑張って結局コケるのを見て楽しみたいから、なるべく長く頑張って欲しい とは思うよ 絶対コケるし
364 :
デフォルトの名無しさん :2009/09/14(月) 10:43:18
かみおぶじぇくとさま・・・
365 :
ちんこ ◆GbXlaaQNk. :2009/09/14(月) 11:50:08
>>354 そう。動くよりまず考える。
場合によっては、後で学ぶべき定理とかも全部自分で考えてしまってる時がある。
面白いと思ったらどんどん掘り下げた方がいい。
ものを動かすことは誰でも出来る。
だけど、ものを作ることは誰にでも出来ることではない。
おれはものを作り出さなければいけないという意識があるし、使うだけの人間は愚かだと思っている。
お前らの発想は専門学校的な発想。
いわゆる浅知恵。
そんな人間は使い物にならない。
ただ存在するものをくっつけて出来ましたというのをプログラミングだと思ってるやつらは、あまり価値がない。
それを開発者と言っているのであれば、それはおれの定義とは違う。
366 :
デフォルトの名無しさん :2009/09/14(月) 12:09:02
>>339 いくらでも歯車の再発明をすればいいさ。
いろんなことが学べるだろう。
お前のその程度の発想は既に通過済みでないとスタート地点にすら立てない っつー世界があってな まぁお前には思いも寄らないだろうし想像も付かないだろうし言っても納得も しないだろうし、せいぜい頑張って空回りしてろよ いずれ自身の低能に気付いて黙って消え去るんだろうがな ああ、あと、麻布だっけ? 俺の時代だと麻布は明らかに二番手グループだったけど、今は周囲を見下せる くらいの一番手グループになれたのか?
368 :
デフォルトの名無しさん :2009/09/14(月) 12:58:52
紙より痛い人がキタ
GoogleでコーディングするんだったらC/C++とPythonも必須だから勉強しろ
紙にgoogleは無理、才能以前に始めるのが遅すぎだから
才能も無いだろ
それは周知の事実だからあえて言及しなかった
ちんこタイプの人間が言語を作る前にJavaやSchemeに手を出すとは片腹痛い 素直に既存のパーサ使え、後に自前のパーサ作るにしても その際に参考になることが既存のものには沢山あるはずだ
英語が使えるんなら、こんなとこじゃなく英語圏のコミュニティで情報収集しながら GCCのソースでも読み通せば、初心者向けの本を必死に詰め込むより遙かにいいと 思うけど まぁCも機械語も一生読みたくないならどうしようもないけど、Cや機械語程度は半年 くらい遊んでれば十分使いこなせるくらいじゃないと、Googleどころか国内のそこそこ のところでさえ相手にされないよ
376 :
デフォルトの名無しさん :2009/09/14(月) 15:26:12
犬の17Kのアセンブラ。wwww
377 :
デフォルトの名無しさん :2009/09/14(月) 15:43:04
>>365 認めたなwww
俺とは何から何まで真逆過ぎて面白い
なのに思考だけは似ているのがさらに面白い
俺は、行き詰るところまで自己流でやって、無理だったら本に頼ろうと思ってたけど
本とか見ないで作れてしまったから、そういう本を読みにいくことはこれから先もあんまり無い
自分のやり方が合ってるかどうかの答え合わせの為にみる程度
ていうか自己流で作らずにこんな難しい本を真正面から読んでいって作れる奴が
いるのかなーって疑問を抱くレベル。
だからこそチン子には、コンパイラ理論を理解するだけじゃなくて
実際に何か作ってほしいと思うんだ
理論理解してる奴はいっぱいいるんだろうけど実際作れる奴はそんなに多くないと思う
はじめて作るんだったらLispで一週間、 手続き型言語だったら1ヶ月くらいかかるとおもわれwがんばれw
> 自分のやり方が合ってるかどうかの答え合わせの為にみる程度 まさにそれだな で、たまに「ああ、こういうやり方もあんのね」ってのが出てきて、面白いから 取り入れたりする
正直、ちんこにはがんばってほしい。 ところで、みんなが言っていることを、ちんこにわかりやすく書くと: 「既存のものを使わずにコンパイラを作ります」 ↓ 「ICを使わずにCPUを作ります」 「タイヤを使わずに車を作ります」 「本を読んだけどプログラミングの原理がわからない」 ↓ 「フェーザダイヤグラムは描けるようになったけどデジタル回路がわからない」 「エンジンの回転は取り出せたけど地面への伝え方がわからない」 こんな感じ?
380 :
デフォルトの名無しさん :2009/09/14(月) 16:07:08
誰かが設定して答えがある問題にしか取り組めないんじゃ 自分で考えてるいってもね。 だれも考え付かないことをやらない限り、 だれも認めてくれないよ? ああ自分が認めりゃそれでいいか。 ちんこだもんな。 オナニーしてりゃ満足だな。
>>379 違うだろ
まぁ、別に既存のものを使わずに作っても構わんと思ってる俺は「みんな」には
入らないだろうから、当事者がどう思ってるかは分からんけどな
俺はバカなちんこが挫折するのを待ってるだけの野次馬だし
lazy Kという言語がすごいです。
手続き型でいうところのBrain F*ckに対応する関数型言語です。
http://ja.wikipedia.org/wiki/Lazy_K 「数値をチャーチ数で表現する」といえば、わかる人には凄さがわかると思いますw
以下はエラトステネスのふるいで素数を出力するサンプルコード(一部抜粋)
K
(SII(S(K(S(S(K(SII(S(S(KS)(S(K(S(KS)))(S(K(S(S(KS)(SS(S(S(KS)K))(KK)))))
(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(S(KS)(S(S(KS)(S(KK)(SII)))
(K(SI(KK)))))))(K(S(K(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)(S(S(KS)K)I)
(S(SII)I(S(S(KS)K)I)(S(S(KS)K)))))(SI(K(KI)))))))))(S(KK)K)))))))(K(S(KK)
(S(SI(K(S(S(S(S(SSK(SI(K(KI))))(K(S(S(KS)K)I(S(S(KS)K)(S(S(KS)K)I))
(S(K(S(SI(K(KI)))))K)(KK))))(KK))(S(S(KS)(S(K(SI))(S(KK)(S(K(S(S(KS)K)))
(SI(KK))))))(K(K(KI)))))(S(S(KS)(S(K(SI))(SS(SI)(KK))))(S(KK)
最近、自分は副作用がない方が美しいと感じています。 Haskellのモナドは難しく、まだまだ理解できないため Concurrent Cleanを勉強することにしました。 どなたか使っている方はいますか?
384 :
デフォルトの名無しさん :2009/09/14(月) 19:55:14
実践する力がなければ、それを支える(はずだった)基礎の知識なんて無駄でしょ。 基礎なしに実践に走れば痛い目にあうのは当然だけど、実践なしに基礎だけ身に つけても、基礎をどう応用すればいいか分からず、無駄に終わるでしょ。 基礎なしに実践に走り、どういう基礎が足りなかったというフィードバックを もとに、必要な基礎知識を学べばいい。 これを繰り返していれば、何を事前に学んでおくべきかが分かるようになる。 これは実践の経験なしにはありえないこと。 この分野はトライアンドエラーが一番だと、私は思うですよ。
ちんこは5年、10年後に 「うおおおおお!若気の至りいいいいいい!恥ずかしいいいいいいいいいい!!!」 とか言うんだろうなw まずはCでLisp作ってみれ ごちゃごちゃ言い訳しないでさ
haskellに興味があるならwrite yourself a scheme in 48 hoursも手軽でいいぞ
かみおぶじぇくと日記が俺には読めない いやきっと世界中のどんな技術者に読ましても読めないと確信を持って言える ただでさえ情報技術は複雑なのに かみおぶじぇくと変換が施されるとおそろしいほど難解になる
389 :
ちんこ ◆GbXlaaQNk. :2009/09/15(火) 01:16:32
おれの考える、「学ぶ」ということと、一般に考えられてるそれには隔たりがあることがはっきりしている。 それどころか、京大生一般とおれにも相当な隔たりがある。 安心して欲しい。京大生の多くは、「学ぶ」ということについて君たちと同じ考え方を持っている。 しかし、おれはそれではダメだという考えを持っている。 これについて、これらは天才と凡人の差なのだという考えを持っている。 もちろんおれが天才だ。 よって、おれは君たちが大嫌いだ。 なぜならば、おれは凡人が嫌いだからだ。 だから、もうおれのブログを見に来ないでくれ。 じゃあね。 君たちは、一生、「なぜ」と考えることを楽しむことは出来ない。
男は黙ってアセンブラ CPUの動きを1クロック単位で制御できるんだぜ? これを究極の言語と呼ばずして何と呼ぶ
たしかに考える事は面白いし大事だ が、考えるだけでしっかり手を動かさないなら意味が無いぞ それとJavaなんかで作っててもなんにもならん むしろ自分でJavaを作っちまうぐらいの気合を見せてみれ
学びて思わざれば則ち罔し、思いて学ばざれば則ち殆し。 学びて時にこれを習う、亦た説ばしからずや。
393 :
デフォルトの名無しさん :2009/09/15(火) 02:37:03
>>380 > 誰かが設定して答えがある問題にしか取り組めないんじゃ
> 自分で考えてるいってもね。
>
> だれも考え付かないことをやらない限り、
> だれも認めてくれないよ?
>
> ああ自分が認めりゃそれでいいか。
> ちんこだもんな。
> オナニーしてりゃ満足だな。
コンピュータはそんなに進化してない 誰でも考え付くレベルの問題はそこらじゅうに転がってる なのにそれを修正できる技術者がいない 力持ってる奴が、大量の時間を金になるかも分からないプログラムの作成に割くか、 誰も考え付かないような手法で効率的にプログラム作るかしないといけない
コンパイラ作ることにハマった奴は永久にコンパイラ作り続けるだけだからなぁ 基礎っつうか別分野なんだよ
コンパイラ? 機械語翻訳までなら、ただの作業ゲーなんだが お前にゃそれさえ、 つくれやしないよ プログラミングは学ぶとか勉強とかそういうんじゃない 現実逃避にやるもの
おまいら暇なんだなw
自宅待機・・・
>>396 酷い文章だな。
一行一行が何の脈絡も無いw
こんなんだから神オブジェクトに馬鹿にされるんだよ
今日も一日自宅警備よろしくお願いします!
400げt!!
コンパイラwwwww コンパイラ・コンパイラwwww コンパイラ・コンパイラ・こんぱいRwwwwwwwwwwwwwwwwwwwwwww
>>395 実際のところ、そうなんだよね。
コンパイラとか言語を作るのも、プログラミングの1専門分野でしかない。
ほんとはコンパイラ作れるぐらいの知識でDSLフレームワークを作ってそれで高生産性を保ってアプリを開発するのが吉。
かつて効率的なプログラムを作るために必要だった事が いまは効率的にプログラムを作るためにはあまり必要とされていない
406 :
デフォルトの名無しさん :2009/09/15(火) 10:09:57
>>380 > 誰かが設定して答えがある問題にしか取り組めないんじゃ
> 自分で考えてるいってもね。
>
> だれも考え付かないことをやらない限り、
> だれも認めてくれないよ?
>
> ああ自分が認めりゃそれでいいか。
> ちんこだもんな。
> オナニーしてりゃ満足だな。
もう奴のことはほっとけよ
放置推奨
ちんこがいるとスレが盛り上がるのも事実。 前スレは、ちんこ登場まで1年10ヶ月かけて500レス、 ちんこ登場後は20日で500レス。
早けりゃいいってもんじゃない。
スレの趣旨が関係なさすぎるよ
ちんこと掛けまして、早過ぎると解く、そのこころは
ジャバジャバ出るでソウロウ
38歳なのに一日2回おなぬーしてる自分はなにかやばいのか。
死ね
ちんこがJavaがカスとかギャーギャー騒いでいるな。 奴を見ればわかるように言語が汚いから使わないとか言ってる奴は結局何も作れず、永久に三流のままだろう。 もはやこのスレ自体意味が無い
417 :
デフォルトの名無しさん :2009/09/16(水) 08:52:56
収量?
あいつが三流てw じゃあお前らは四流以下だな 天才とまでは行かないが、平均よりは上の人間だよ
以降釣れなくて悩む
>>418 の試行錯誤でお送り致します
俺は奴を前のblogの頃から観察しているが、あいつはもう一年くらい同じことを言い続けている。 情報可視化ソフトだかを作ると言ってるが、いつもJavaやRubyが完璧じゃないと言って停滞している。
Javaマンセーなちんこに対して、俺は前スレの900で 「Javaは可読性や開発効率が他の言語より劣っている」 と指摘していたが、ちんこには理解できなかった。 今やそのちんこが「Javaはカス」と言っている。 ちんこがもし天才だったとしても、 「ほげ言語のパラドックス」からは抜けられなかったということだ。
Paul Grahamは「委員会の作る言語はカス」と指摘していたが、理解できますか?
423 :
421 :2009/09/16(水) 11:44:24
ブログに返事が書かれているな…。 Javaは確かに型がうざい。 しかし、型はJavaのどこにでも現れて、可読性を下げ、開発効率を落とす。 より美しいものを見た者だけが、より醜いものを判別できる。 Javaが美しいと思うなら、それは「より美しい言語」を見る経験が足りないんだ。 ところで「データ構造を構造とデータに分解し、それを立体として見る」というのは 素晴らしい考え方だと思う。ぜひ研究を進めて欲しい。
型システムは型システムで需要はあるよ。
型レベルプログラミングとかすごいよな 自分には訳分からない所が多いけど
1 超難しい言語を使いこなし、様々なソフトウェアを作り上げる 2 超難しい言語を使いこなせないが、使いこなせてる気になってしまってるせいでソフトウェアはあまり効率的に作れてない 3 超難しい言語は使いこなせないと自覚し、難しい言語で様々なソフトを作り上げる 4 超難しい言語も難しい言語も使いこなせないが、簡単な言語を使いこなし、技術的には高くないけれど、けっこー便利なフリーソフトを作る C++がカスといってる奴が4 JAVAがカスといってる奴が2 心が年老いて向上心なくなってる奴が3 ただのプログラミングには興味ありません。な奴が1 2~4で反論あったら訂正しやがれカス共
1のような人は自然言語でプログラミングできるはず。 それができないということは・・・
難しい言語を使いこなせたら何の意味があるの? 例えばC++を使いこなせたら得られるものって何? 「このアプリはC++で作られています」って書いたら使ってもらえるの? しかし、なぜかマの中ではC++ユーザーが神聖視されている。 もう、いい加減このマの醜いヒエラルキーが嫌になってきた。 C++の価値なんてお前らマの中にしか存在しない。 C++を極めたところで閉じた世界のサル山の大将にしかなれない。 俺は難しい言語を勉強する、などというという不毛なことはやめて良いアプリを作る勉強をするよ。
神聖視されてるのはlispとかアセンブラとかその辺じゃね? マの中でC++が崇められてるのなんて聞いたことがない 大抵の言語より依存ライブラリとか少なくて、さらに軽いことが多いから ユーザからの評価に多少響くというぐらいはあるかもしれんけど
どこの職場でも結局そうだな。
こけおどしが幅を利かせてる。
>>428 みたいなフレッシュな野郎が俺は好きだね。
○○の勉強は必須、SICPは必読、
おしゃれなスイーツがウンタラ、
エディタはemacsじゃなきゃ!
市ね!
見栄と価値とを分離しろ!!
431 :
421 :2009/09/16(水) 17:36:42
「Javaはカス」と言ったけど、 俺も良いアプリを作る勉強をするよ。
俺もJavaとかC++とかカスって言えるくらいになりたいよほんと
>>426 あえてスレタイ無視の視点にするの?
じゃ、「コンパイル遅いからC++はカス」
>>424 型システムの重要性はよくわかるけど、Java はその表現が冗長なんだよ。
SML や Haskell とかの型推論がよく整備されている言語では、静的型付けで
ありながら、型宣言の量をおさえることができる。そういう意味で Java の型
はうざいってことかと。
大規模プロジェクトならJavaこそ一番いいんだけどね。
>>428 C++を使いこなすような奴は、
おそろしいほどの時間をかけてきた奴なんで
必然的に様々なことが出来るようになってる
そのせいでC++使い=神っていう比率が高く
神聖視されてるのかと
やっぱ最強はCっしょ。 String型が使えないのがくやしいけどね
C++が難しいのではない。 汎用的な部品が少くアプリ作るのが困難だけ。 言語としては、基本部分はC#と同程度だろう。 よりアプリ作るのが簡単な、C++/CLIはC++を含む拡張だから、こっちの方が難しいと言える。 別の見方でC++/CLIとC#とVBは同等のアプリが開発できるはずで同難度も同じと考えていい。
C/C++が難しいと言うやつにとって、アセンブラ、機械語が一番難しいだろう。 右は、左で開発される。 機械語 → アセンブラ → C/C++ → .NET(C++/CLI、C#) 一方で、使える機能、部品の多さで難易度を判定したら 標準化されていて、部品が少ないC/C++が一番易しい。 機械語は方言がある。.NETは方言はないが、使える機能が豊富すぎる。
>>437 言えてるわ
俺はSTLとか使ってると、楽をしようとして失敗することたまにある
それにcharで済ませばいい所でもstring使うのは速度が若干遅くなるはずだ
端から何ひとつそろってなどいないCは
自分で全部作らなきゃいけないていう清々しい覚悟ができる・・・w
> 右は、左で開発される。 機械語 → アセンブラ → C/C++ → .NET(C++/CLI、C#) 機械語からアセンブラブートストラップするなんて 野蛮なことやってたのは 1950 年代頃までだろw
今はCが左端になってるな たまにアセンブリ言語が顔覗かせてるぐらい この観点から言うとCとC++の間にも→があるように思える
C言語で、Cコンパイラやアセンブラ作ってるって事か。 そしたら、一番簡単なのは、C言語でいいか。 マシンごとに命令ちがないし、命令は少ないので
>>439 俺はCより抽象度の高い言語から入った身だが
C言語を最初にやった時には全く解らなかった。
だけど、機械語をやったらスッと理解できるようになった。
高級アセンブラって言う表現はすごく的を得てる表現だと思う。
どちらのほうが難しいとかじゃなくて、難しさの方向性が違うんだと思う。
C言語は機械語の難しさと、高級言語の難しさを
両方とも少しずつ持ってる言語だと思う。
言語が難しいんじゃなくて扱う対象が難しい そこの所勘違いしないようにな
PHP、C#、Javaなどと比べて、C/C++が理解しにくいなんて事はない。 難しいのは、利用される頻度の高いライブラリ、関数などが付いて無いだけだろ。 かなり基本的なものしか付いてない。 PHP、C#、Javaから便利な関数を取り除いたら、C言語と同等の難易度だろ。
HSPいいよね
いややっぱり言語としてのC++は理解しにくいと思うぞ 言語仕様の大きさ的に考えて
でもC++ってわかりはじめたら急に面白くなりそう
言語として理解する必要なんてどこにもないけどな
日本語言語を使うのに、言語学のプロである必要は無い。 文法、法則を全て理解する必要は無い。
C++は包み隠さず、オープンにしている部分が難しい。 他言語などは、ユーザーに見せない部分が多い。 たとえば、C++のクラス、テンプレートは STLを実現するために完成された物。 C言語 + STL + クラス くらいを提供すれば 機能的には良いところだけど、丸出しにしている。
453 :
デフォルトの名無しさん :2009/09/17(木) 13:55:32
>>452 俺はC++全部覚えたつもりがまだ浅いからかもしれないけど
C++が包み隠してない部分っていうのが分からない
どの機能のこと?
テンプレートかなぁって思ったけどC#にもあるみたいだ。
厳密には違うだろうけど、アセンブラ、機械語もあるだろうけど。 C/C++が提供して機能は、C/C++だけでほぼ同じパフォーマンスで実現できるってこと。 たとえば、HSPの機能は、HSPだけでは実現できないでしょ。 提供されている機能をそのまま使うのは除いて。
C#についても同じで、.NETのコア部分は、C#では実現できない可能性があるとおもう。 C#で書かれていたらスマン。
おまえら *言語本来の機能* と *言語に付属する標準ライブラリの機能* を、ごっちゃにしてませんか? そうゆう意味では C++ の lambda なんてのは最低やと思う なんで言語本来が備えているべき機能にライブラリが必須になるw
ちんこ大学中退かよ
一番美しいとなるとPrologだろう 静的な美しさだが
460 :
デフォルトの名無しさん :2009/09/17(木) 18:08:39
どうして? Prolog って動的な言語だと思うんだけど
超時間的な印象が強いんですね
>>453 templateとGenericsは似た用途に使えるけど基本的に別物
JITでもテンプレート実装出来そうな気がするんだが教えてエロイ人。
Lispのマクロとか
466 :
デフォルトの名無しさん :2009/09/18(金) 01:08:31
>>438 >C++が難しいのではない。汎用的な部品が少くアプリ作るのが困難だけ。
C++が人気ないのはそういう理由ではない。
汎用的な部品やライブラリの少なさで言ったら
どう考えてもC++よりCのほうが少ないが
(CのライブラリはC++からも使えるが逆は無理)
なんでオープンソースものはCばっかりなんだろうねw
C++はポータビリティが低い(マングリングとか)、 OSに要求する機能水準がCより高いことがある、 どちらにしろCで書けばC++から利用可能
468 :
デフォルトの名無しさん :2009/09/18(金) 07:15:05
動的な言語って言葉がわからないです。 変数に型が無い言語ってこと?
同じ名前のメソッドがあれば一緒にできてしまう言語
472 :
デフォルトの名無しさん :2009/09/18(金) 12:28:03
>>468 assert とかで、実行中に述語(関数も)の追加や削除が出来るところが、そう思った理由なんだ。
変数に型が無いのも、少し理由に入るかも。
でも、そういえば、動的な言語って用語は無いよね。
間違ってた。
473 :
デフォルトの名無しさん :2009/09/18(金) 12:33:07
あ、あと op で新しい演算子を作れるのも、動的だと思った理由だった。 まあ、もう、どうでもいい事だけど
474 :
デフォルトの名無しさん :2009/09/18(金) 12:41:14
ゴメン。 op は、動的な理由にはならなかったかも。 とんでもない勘違い野郎だったね。 すまんかった
>>474 データベース言語として見れば動的と言う表現は納得いきますよ。
ただ、これは私の場合ですが、手続き型言語は実行過程を追うように読むの
ですが、Prologは書かれている通りという印象が強いですね。パターンを
一瞥するだけで何も追いかけません。そういう意味では静的ですね。
C++は言語仕様がでかすぎて、何をするにも考えておかないといけない要素が多すぎるんだよ。 クラスを一つ作るにしても色々ある。 んで、そういうことをちゃんと習得するにはそれなりの時間がかかる。ほかの言語でもこういう 時間は必要なわけだけど、C++はこれが圧倒的に長いわけだ。 てなわけで、使い手を選びすぎるから嫌われてるんだよ。たぶん
Cは全ての機械語を受け入れる C++は自分と違うオブジェクトシステムを認めない だから嫌われるんだよ
噛んでも、噛んでも、永遠に味がなくならない、そして、何時までも新鮮な味のガム それがC++ 逆から言うと、一度噛んだら最後、捨てるタイミングがなくなるのもC++
そう。C++は神。
>>477 仕様を見る限りはとても良い言語なのに、
何故かそうやって誰も使いこなせていないから
使いこなしたくなってくるんだ
自分だけは使いこなせると、信じてな
不細工きわまりない構文がどんどん増殖するのがC++
>>481 つまり、自分が最も素晴らしいと思う構文を増やせるのがC++って事だな
そんなわけがない。 そういうのが好きならLispへGO。
Lispのマクロは蛇足 足を取ったらPythonになるんだよ
>>475 どの言語も関数型化しつつある中で
個性は際立ってるね。
美しいかどうかはともかくとして。
>>485 エベレスト -> K2 -> ...
世界の名峰の中での富士山的な位置づけになるか。独立峰で美しいが4000mもない。
>>484 LispはマクロがあるからこそPythonより優れてるんだよ
マクロのないLispなんか意味ないだろ
すみません、この質問がスレ違いかどうかもわからない素人なんですが、申し訳(ry 例えばこの2chの電子掲示板のシステムって どんなプログラミング言語で設計されてるんですか? あのー、よく、冷蔵庫とか洗濯機の制御ってCとかC#とか聞くんですけど ituneとかいろんなブラウザとかでも、CとかC++とかなんですか? HTMLとかCSSはマークアップ言語で別モンってのはわかるんすけど、 WEBアプリケーションとかって、どうなんですか? PHP、Perl、Ruby、Javaは聞きますけど、C言語でも開発できるもんなんですか? 誰か教えてください。
●●は蛇足 足を取ったらPythonになるんだよ を言いたかっただけだろう。
>>489 そりゃやろうと思えばCでもなんでもできるさ
>>489 2chはCとPerlを使い分けてるって聞いたことがある。
iTunesはMac出身だから、Objective-C辺りで開発されてるんじゃないか?
Windows版の都合もあるから、もしかしたらC/C++で開発してるかも知れないが。
Noopはこのスレ的にはどうだろうと見に来たらまったく触れられて無くて笑った
495 :
デフォルトの名無しさん :2009/09/20(日) 13:38:10
もうずっと言語大杉 もうずっと言語大杉
Scalaが最強でいいんじゃね?
497 :
デフォルトの名無しさん :2009/09/20(日) 16:38:53
色々やったけど、やっぱ Lisp は凄い。 原理の最小化という意味では、Lisp が最強だと思う。
Lisp風のS式をPython風にかけて性的と動的を明示して混在できるようなのが( ゚д゚)ホスィ…
ScalaはVMな時点で最強ではない 美しいかどうかといえば、美しさはあるだろう
>>500 VMの時点で最強でない、という理由は?
502 :
デフォルトの名無しさん :2009/09/21(月) 17:37:21
JVMじゃないScalaがあるとして、それ価値あるの?
503 :
デフォルトの名無しさん :2009/09/21(月) 20:45:35
ちんこまだ生きてたのかよ 早くシネ
504 :
sage :2009/09/21(月) 23:42:43
>>500-501 俺はVMだから最強になれないとは思わない。
むしろVMの方が有利だと思う。
Javaなんかで作る奴はアプリに対する愛が無いんだよ。 アプリに対する愛があるのならば自分で作ったものは少しでも性能が良くしたいと思うはず。 Javaなんかで作る奴はアプリは愛してなくてJavaを愛してるだけ
>>505 それはいえてるかもね。
要するに、ソフトの品質を少しでも上げるよりも自分の労力を節約したいわけだからな。
Javaで作られたアプリの性能が低いということを証明してください。
>>505 おまえよくわかってるじゃねーかよカス
そうだよ
javaが遅いということを仮定しましょう。 さて、あなたたちは1秒で動けばばいいアプリが50msで動いたとして、それを45msで動かすことに興味があるのですか?
javaは遅いっていうか他プロセスの邪魔なんだよね flashもそうなんだが、我が物顔なリソースの食い方をする
javaも.netも起動に時間がかかるよね
>>509 Javaでよくあるのって、
実際には 20ms で反応しないとストレスを感じるのに
「1sec で動けば十分」という開発者目線だけで作られてて
50ms でしか反応しないアプリなんだよね。
実際には、「これでいい」という開発者感覚がズレてることが多くて
ユーザーから見ると Java 製は重い、というイメージがついちゃってる。
仕事なら割り切らんといかんし、
心理的な欲目があるのは仕方ないっちゃ仕方ないがな。
速ければ速いほどいいアプリをこんなもんでいいでしょといって動かしてるのがJavaの実情
Javaの場合GCのチューニングやらヒープ上限の設定やらはアプリ利用者がシコシコやるものっていうスタンスだからなー eclipseとかよく落ちるのうぜー そもそもVMがクライアント指向じゃない感じ。
まぁ実際はJavaがどうかとかよりもアルゴリズムのよしあしのほうが影響がでかい。
Javaよりも中間言語のよしあしってこと?
ああ、リソースの話なら、納得です。
あと、Javaの実行速度が遅いんじゃなくて、起動が遅いというのも納得です。
メモリにシビアな世界では、Javaを使うのは良い選択肢ではありませんし、
立ち上がり速度が重要なので、あれば、これも、Javaは良い選択肢にはならないでしょう。
>>513 その速いというのは何を意味していますか?
アルゴリズムの実行が速いということですか?
それならば、Javaは何の問題にもならないはずです。
最も美しくプログラムを書ける言語はなにか? っていうスレなんだけど。こういう議論が続くということは、 Javaは美しいしかし遅い、という了解があると読んでいいのかな?
>517 勝手に使えよ馬鹿(´・ω・`) >518 ねーよ。
それならこの流れ、止めよう。
美しい美しくないから離れて、最強になりえるかという流れだったんだけどな
まあ美しさについては前スレの前半で出尽くしたからいいんだけどね。 読むメンバーは次々替っていくからなぁ。
前スレの結論は?
私もまとめをやってみたりしたが、結局は堂々巡り。
Javaはシステムの機能を使えるはずの部分が使えず そこをVMでやるから遅いのであって 計算などの処理自体は結構早いんだけどな まあ、そんなシステムの機能の代表が GUIという、これまた多くのユーザが真っ先にスピードの基準にする部分なんだが
526 :
デフォルトの名無しさん :2009/09/22(火) 10:54:47
Javaをネイティブに実行できるマシンを造る計画なかったっけ?
ちなみに途中経過の美しい言語の順位と最強候補言語の順位をここでまとめてくれないか? 俺的には美しい言語 Scheme 最強になるかもしれない言語 java この辺が鉄板だって思っているけど。
Javaがどういう観点から最強なのか理解できない 今となっては古い言語で設計ミスも多いじゃん
これからはnoopの時代になる。何から何までnoopで書かれるだろう。 俺はそれを見越してnoopを学習し始めている。お前らも時代において行かれるなよ
532 :
sage :2009/09/22(火) 20:56:02
美しいのも最強もLISP。 次点でSmalltalk。
533 :
デフォルトの名無しさん :2009/09/22(火) 21:19:17
>>532 で、お前はどっちも使えねえんだろw
ミーハー臭w
lispは毎日使ってるけど汚いlispの代表であるelispだったりする 他の汚いlispといえばautolispかな、ちょっと前まではよく使ってた それらと比べるとgimpのscript-fuはとてもいいものだ
今日、ブログに書いたけど、暇だったのでscalaとgroovyを落としてちょっと書いてみた。 感想としては、 scalaはポストjavaとしてかなり面白いというものだ。記事とか読んでもjavaの悪い点をちゃんと克服出来ているように見える。 groovyは動的言語というだけあって、自分でも何を書いてるのか分からなくなった。ただ、これは静的脳だからかも分からん。そして、返り型を明示出来るという仕様が心地良いのもこれが原因かも分からん。 Pythonっていいの?本は使ったことないんだけど。 JVM上で動く言語じゃないと、色々不便じゃない?
Pythonは、珍しいことにWindows上でもちゃんと動く。 面白みは少ないかも知れないが、仕事でちゃんと使える言語だよ。
タイソンは珍しいことにリング上でもちゃんと鉢蝶のように舞う 面白みは少ないかも知れないが、リングでちゃんと使える技だよ。
動的言語は、型が分からないのでとても不安になります。 これは、型によって設計を考えてしまうという思考のせいですか? それとも本質的に動的言語は不安と戦いながら書くものなのですか? groovyでグラフを設計する際に、addVertex(v)と書きました。このvが何なのか意味不明で怖くてたまりません。 あと、Pythonって何でflattenメソッドがないんですか? そういう、標準的な拡張ライブラリ(apache.commons.Lang, Collectionみたいなやつ)はありますか?
動的言語は基本的にIDEに頼らず ライブラリ覚えてやるもんだからなあ
動的言語は基本的にEmacsですか?
だけど、まつもとゆきひろはすげぇーーよな?
アセンブラを理解しない奴は「何でこういう書き方をすると異常に速度が落ちるのか」 という現象に一生悩まされる宿命 VMの問題点も一生理解しないで、VMを作る偉い人がそのうち何もかも解決してくれる のを期待して口開けて待ち続ける宿命 で、高水準言語だけを軽くかじって「俺はここまで理解してるんだ」とハッタリかます だけで、VMそのものを作ってるような高水準から低水準までしっかり理解した連中に 全く相手にされない宿命
習いたての人にありがちな発言
コンピュータアーキテクチャとOSの概念を知ってないと アセンブリ言語はただのパズル以上の意味を持たないから なんでもかんでもアセンブラと一括りにするのは簡単だけどそれじゃあ啓蒙にならんだろう
う~ん、ROMってると実におもしろい
中途半端にアセンブリ言語知ってると 「三角関数はsin/cos関数使うより、配列に計算済みの値を格納してアクセスする方が早いよね」 なんて嘘情報を真に受けるから困る。
最適化なんてもんは最初から局所的にやるもんじゃないだろ。 最後に問題がありそうなら、包括的にやるもんだろ。 最初から局所最適化厨は害悪。
>>542 >>428 >VMそのものを作ってるような高水準から低水準までしっかり理解した連中に
全く相手にされない宿命
VMそのものを作るなんてただのオナニー
そんなことやってる奴は一般人に相手にされない。
高水準よりさらに上の一般人に恩恵を与えられないのなら何の価値も無い
>>538 vが嫌なら判りやすい名前を付ければ良い
型が不安なら型変換すれば良い
型変換出来ないような値が来たら例外吐かせて、適当な場所で補足すれば良い
>>547 最初からきっちりコードを書いていかないとすぐにゴミだらけになって読み返すのが嫌になるって
ばっちゃが言ってた。
でも最初からキッチリ書くってのは結構難しいと思う。 ゴミだらけでも思い切って書いてみると、どう書けばキッチリなのかに気付く。 最初からいきなりキッチリ書こうとすると、全容が見える前にリタイアしてしまう俺。
VMの略を「バーチャルマシーン」だと思っているからおかしくなる VMの略は「ベリーマゾ」だ 試験に出るから良く覚えときなさい
> VMの略を「バーチャルマシーン」だと思っているからおかしくなる VM == バーチャルメモリーでも同じだろ
流れが読めない猿
最初に局所最適化をするものではないかもしれないが、 最初に最適化を視野に入れた大まかな設計を考えることは必要
infixというarithmeticに特化したクソを 採用しない言語が最も美しい forthのことだ
そんなことに拘ること自体美しくない。
>>557 それは評価する側の問題だろう。そういう
理屈抜きにしても美しいよ。
forthは知らない。 PostScriptにはずいぶんお世話になった。でも美しいとは思えないw
理屈っぽさと美しさは相容れない。そういう意味で前スレはともかく、 このスレの前半はクレージー。
あ、それはある。Haskellは美しい言語だと 思うけど応援団が議論始めると途端に醜悪に なる。
haskellは実用的で汚ない言語
>>556 infixでない言語は少ないよね。
LISPもinfixではない。
FORTHはSPARCのブートローダーでいじったけど、
混乱せずに大きなアプリが作れるのか疑問に思った。
LISPのマクロは自己書き換えコードだろ なんかバグの温床な気がする 便利なのかもしれんが美しくない
>>556 すべての構文にinfixを採用している言語があれば確かにクソ。
そんな言語は寡聞にして知らないが。
そもそもinfixで表現できるのは二項演算だけだし。
arithmeticの表現という言語の一部分にinfixを採用するのは合理的だろう。
人間のためのプログラミング言語であって
機械のためのプログラミング言語ではないのだから。
すべての構文にprefixやpostfixを採用したlispやforthは
「人間が機械に歩み寄ればこんなにhappyになれますよ」という思想。
consistentな美しさはあるけど、happyになれるかは人によるよね。
まあスレタイ的にforthを推すのはいいけど、
> infixというarithmeticに特化したクソを
> 採用しない言語が最も美しい
には賛同しかねる。
核を落とした国が核をなくそうだってよwww 冗談じゃねーーよカス 被爆国の日本が言うならまだしも、お前が言うんじゃねーアメリカ!!
マクロを美しいとは思わないけど マクロがある故にLISPが美しくないとも思わない
バグの温床になるかどうか自分で実際に使ってみればわかるよ
確かに馬鹿が使うとものすごいもんが出来そうだな
すんませんね、言わさしてもらいますけど、最も美しいプログラミング言語は? ていうのはおかしな話なんですよ、こんなもの。 1つしかないやろっていう話なんですよ。 なぜ、みんな、機械語だと思わへんのかなと、僕はね。 そんなん、どんなプログラミング言語書こうが、そんなものね、インタプリタされてコンパイルされて、 結局は機械語に変えられてしまうんやから(笑) CPUは機械語しか理解できひんのやから、まだアセンブラ言語言うんやったら、話わかるけど、 JAVAとかCとか、そんなもの人間しか理解できひん、所詮、高級言語なんやから、 そんなCPUが理解してくれへん言語がなんが美しいねんと? もうねーアホかと(笑)そこなんですよ。 ある種、キャバ嬢や風俗嬢にのぼせて、自分をここまで育ててくれた親を何とも思てへんのと一緒やからね(笑)
美しいってなんなんだろうね キャバ嬢や風俗嬢だとか親だとか そういう立場で決まるもんだろうかね
574 :
sage :2009/09/27(日) 18:44:24
どっかのコピペの改造じゃないの?
575 :
デフォルトの名無しさん :2009/09/27(日) 21:48:58
マグロを美味しくないとは思わないけど マグロである故にツナ缶が美味しくないとも思わない
そもそも
>>572 は機械語がなんなのか理解していないと思う。
Railsで開発してる会社ってまとも? アルバイトしようと思ってる。
>>580 おれの中では、未だにPHPとか使ってる時代遅れのところはブラックで、
Railsとか使ってるところはわりとマシで、
リファクタリングとかもちゃんとしてるというイメージなんだけど。
違う?
だから会社によるとしか言いようがないとw
リファクタリングなんて都市伝説です ちょろちょろとならまともな人はしてるだろうけど・・・
>>583 リファクタリングせずに、どうやってソフトウェアを書くのかよく分からないのですが、
実際の現場というのはそんな時間もないのですか?
それとも、そのスキルがないんですか?
>>585 リファクタリング頻度はプログラマーの初期設計能力の低さに比例します。
ただそれだけのことです。
>>585 リファクタリングなんてのは、納期に余裕がありまくりの、ぜいたくな
現場でしか使えない手法
データシートと回路図渡されて、「2週間でデバイスドライバ書け」って
言われりゃ、そんなひまはない
保守する連中がやるって言うんだったら止めはしない
>587 かなしいのぅ、かなしいのぅw
> 保守する連中がやるって言うんだったら止めはしない やったらやったで、タイミング会わなくなって 遅くなったり動かなくなったりするんだよなw
プログラムなんか所詮使い捨てだからな
それでもプログラマほどは使い捨てじゃないけどな。
>>572 > そんなん、どんなプログラミング言語書こうが、そんなものね、インタプリタされてコンパイルされて、
> 結局は機械語に変えられてしまうんやから(笑)
コピペ臭いのを承知でいうけど、これって胃の中でドロドロになった食べ物を指して
「結局人体はこうなった食べ物からしか栄養摂取できないんだから、
この状態がどんな一流シェフの盛り付けより美しい」
って言うのと同じだな。
>インタプリタされて w
みんな釣られすぎだクマー
>>592 すまんが、例えの意味がわかんないのは俺だけか?w
596 :
デフォルトの名無しさん :2009/09/28(月) 18:46:28
>>572 その前にインタプリタされてってどういうことなんだよwwww経験浅すぎw
改変コピペに意味なんてないでしょ
>>592 の例えは適切。
シェフの盛り付けが言語とすれば、
胃の中がコンパイルされた状態で
栄養素吸収がすなわち、CPUで処理されるということでしょ?
>>572 は要するに、CPUで処理できる=美しい 処理できない=美しくない という美的感覚ということになる。
おk?
>>572 ちんこを完全に食っちまってやがる…
すげえ…
601 :
デフォルトの名無しさん :2009/09/28(月) 19:52:45
Rは?
>>601 統計屋さんたちが絶賛マンセー中。
あの人たち狭い世界に生きてるからね。
603 :
デフォルトの名無しさん :2009/09/28(月) 21:33:58
何かきちんとスクリプト言語覚えようと思ってるんだけど R言語が気になってしょうがない
604 :
デフォルトの名無しさん :2009/09/28(月) 21:41:41
>>602 目的果たすのにあんなに使いやすい言語はないんだから
当然のことだよ。
605 :
デフォルトの名無しさん :2009/09/28(月) 21:42:49
>>604 目的を果たすのに「現時点で」あれ以上使いやすい言語はないな モニョモニョモニョモニョ
607 :
デフォルトの名無しさん :2009/09/28(月) 22:28:40
>>585 スキルがない人が言い訳してるだけだよ。
ちゃんとした現場なら、リファクタリングするよ。
俺の会社の人間、 殆どの人が作ったらそれっきりなんだよなあ。 汚いし見づらいから直せばいいのに、 汚いまんまテストにぶん投げてオシマイ。 これでも他社よりコードがマシというのが泣けてくる。
ネットだと理想論が多いから余計ダメに感じるけど、現実はそんなもんなんだって。
自分はしばらく使い回されるライブラリとアプリを平行に作ってるのでリリースのたびにリファクタしてアプリ領域でとりあえず実装したものをライブラリ上に移行してる。
>>585 「リファクタリングせずに、どうやってソフトウェアを書くのか」とは
興味深いフレーズだけれど、本気かい? 項書き換えのようなイメージ
ならそれとなくわかるけど。
最初に書きたいだけベタ書きして メソッドやらの抽出、変数への置き換え、インライン化、 メソッドシグニチャの変更とかもろもろやりまくるんじゃないの。
>>613 そんなの日常すぎて、いちいちリファクタリングどうこうとか思いながらやらないよね
>>614 そうそう
リファクタリングという言葉がはやりだした頃
「あ、今までやってたことに名前が付いたwwww」って感じだった。
ソフトウェア工学なんて小学生並の知能でできる工夫をいちいち難しく説明してるだけだよな。
617 :
デフォルトの名無しさん :2009/09/29(火) 01:32:31
難しく感じるのはお前が小学生並の知能だからだよ^^
ttp://xy.yu.to/ 夜中寂しい人向け
混む時間帯は人気ありすぎて定員オーバーで入れん
24時間荒れ放題の超カオスな絵チャット
本当の本当に完全無法地帯の絵チャット
(2ちゃんとは比較にならない)
荒しとプログラマーと防衛プログラマーの攻防戦
防衛側が強し、求強力荒しプログラマー
しかも外国サーバー(イギリス)で管理人は荒し容認
殺人予告すらOKっぽい。ログなんて当然取ってないし
>>613 最初から最後までベタ書きのPrologはいいよなぁ
仕様書=プログラム が理想。 既存の宣言型言語はもう一息なんだけどな。うまく言えないけど何かが足りない。
何が足りないってそりゃあ 仕様書とは何かが定義されていない 手続き≠仕様書 とか、あれでもない、これでもないとは言うけれど、じゃあどれなのか
仕様っていったってさまざまなレベルの仕様があるし、 非機能要件(○秒以内に応答とか)などはプログラムで明示的に表現されるような代物でも無いし 仕様と設計は別物だし
クライアントの問題領域に即した仕様記述用DSLをつくって クライアント自身にそのDSLで仕様書書かせるってどう? クライアントの目の前でコンパイルして、コンパイルエラーが 出れば「テメーの仕様がなってない」って突っパネられる ランタイムエラーが出れば「テメーのスキルがなってない」と 攻撃される諸刃の剣
その方向でいいんじゃないか。
>>585 俺が出向してた現場には
「すでに動いているコードを変更してはいけない」
というポリシーがあったよ。
共通関数としてくくり出せる場合でも、既存部分は手をつけられない。
当然、似たようなコードがあちこちに点在する。
そこのリーダーは「コードのコピーが生産性の鍵だ」と言ってたw
しかし、後から修正する場合でも
変数名、関数名とかコメントまでそのままコピーされてるから
意外と修正箇所が発見しやすかった。
>>625 自社でパッケージ開発してないと、
そういう方針になるよね。割と普通だけど
クソコードコピーしてくるのはやめてほしい。
クソは一度断ち切るべきだ。
前スレで、宣言型の部、手続き型の部、というように部門別に別けて 評価して見たのだけれど、これを繰り返すなら、宣言型はPrologでいいのかな。
とりあえず低学歴のクズがソフトウェア業界に入るのをどうにかしろ。 日本のソフトウェア業界は旧帝理系以上の学生しか採用するな。 最低限の地頭すらないやつは事務職、あるいはファック隊だ。 お前らの目から見て、この会社はすごいというところはどこ?Google以外で。
株式会社ジェーン
>>629 高卒の俺が知ってることすら知らない大卒様たちはどうすれば…
学歴とプログラミングの腕は全く別だからなあ
>>633 あなたの定義する、プログラミングの腕とは何ですか?
向学心と学歴は違うからねぇ
JavaとOOPに囚われてるちんこにはまともなコードは組めないだろうな 頭を柔軟にしてLispでもHaskellでもいいから関数型言語やってみれ そういやたしかコンパイラ作ってるんだっけ?それも完成させてみ
637 :
デフォルトの名無しさん :2009/09/30(水) 00:30:28
>>633 学歴以外の条件をそろえれば、学歴とプログラミングの腕は強い相関がある
web系?の人ばっかりに見える
統計で処理される人間にはなりたくないよね
640 :
デフォルトの名無しさん :2009/09/30(水) 02:58:54
というと?
厨のワタクシが、厨くさいスレタイだと思って開いてみたら これまた想像以上に厨くさいレスばっかりでした(笑)
系とか歴とかで分類されたくないからプログラマやってるんだ。 個人的な営為としてね。
643 :
デフォルトの名無しさん :2009/09/30(水) 06:56:03
>>642 よほど抜きん出てない限り1統計データなんだけどね。微笑
645 :
デフォルトの名無しさん :2009/09/30(水) 08:36:44
関西ではメコ、九州ではボボいうってほんとお?
>>572 つまり、最も美しいISAを決めようって話か?(ビキビキ
>>636 いまやちんこは関数型に目覚めているし、
Javaの欠点も認識しているみたいだよ。
学歴が関係ない職業 プログラマー 清掃 警備 運送
>>650 それはないから。
どの職業も、学歴はとても関係ある。
学歴が低いやつは何やっても低いレベルに止まる傾向が強い。
お前らのようにね。
652 :
デフォルトの名無しさん :2009/09/30(水) 12:29:59
マジレス乙wwwwwwwwwwww w
それで Z は?
>>651 お前莫迦?
進学できないのには、単にそんな理由だけとは限らないし
お前もっと世間を知ったほうがいいよカス
655 :
デフォルトの名無しさん :2009/09/30(水) 12:33:59
キャップ使ってるキチガイが沸いてるな
657 :
デフォルトの名無しさん :2009/09/30(水) 12:36:54
>>651 ∩_
〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| / 自分の意見を一般論にする古館伊知郎w
/ __ ヽノ /
(___) /
>>654 他にどういう理由があるの?
果たしてそれは一般的な理由なの?
そして、おれは「学歴」と言っているのに、なぜ、「進学」に話がすり替えられてるの?
659 :
デフォルトの名無しさん :2009/09/30(水) 12:44:49
>>658 ∩_
〈〈〈 ヽ
〈⊃ }
∩___∩ | |
| ノ ヽ ! !
/ ● ● | /
| ( _●_) ミ/ <こいつ最高にアホ
彡、 |∪| / ニート丸出しwwwwww
/ __ ヽノ /
(___) /
660 :
デフォルトの名無しさん :2009/09/30(水) 12:45:46
ちんこってwどんだけレベル低いんだよwwwwwwwwwwwwww
662 :
デフォルトの名無しさん :2009/09/30(水) 12:48:05
>>658 おまえ莫迦?
学歴と進学と違いを説明しろよじゃあ
学歴とか地頭とかいうよりも、向き不向き。 ちんこは向いてないんだと思うよ。バカなんじゃなくて。 関係ないけど神オブジェクトのブログ見てると小学生の日記みたいだね。
人を貶すネタとしては学歴は有効という事は色んなところで有効と実証されてますな
>>663 はいはい^^
おれは今まで取り組んできた、客観的に見ておれは向いているといえるものよりも、プログラミングはより向いていると思っているよ。
おれは自分に才能があると思うことしかしない。その中でもプログラミングは断トツの相性だという認識です。
お前らなんか、おれから見ればゴミ同然だよ。
666 :
デフォルトの名無しさん :2009/09/30(水) 13:16:46
日本語になってないw とてもじゃないが京大院とは思えない低能さだなw
お前ら、本当に頭良いやつと会ったことあるの? お前らのいるような職場には、高学歴すら来ないだろ。
668 :
デフォルトの名無しさん :2009/09/30(水) 13:20:27
>>663 と
>>665 が串と解からないほど俺が馬鹿だと思ってるのかww?
自作自演乙wwwwww
こっちは10年2chやってんだよ、なめんなカス死ね
お前のような養護は日本にとっていらねぇんだよ消えろカス死ね
669 :
デフォルトの名無しさん :2009/09/30(水) 13:22:04
>>668 まあ、IDないんだから串もクソもないだろ。
けど、ちんこの言ってることが間違いなことは誰もが理解してるということ
670 :
デフォルトの名無しさん :2009/09/30(水) 13:24:57
>>665 お前ブラインドタッチ出来てないだろwwww
タイピングに気をとらわれ過ぎて、日本語になってねぇんだよw
てか、在日かおまえ?w
まあ、いいわ。もっとお前、意見を述べてみろよ、ここまできたんだから
セオリー通りの反応では1統計データにしかなれないからな。
>>667 話が全然それてんじゃねぇかよカス
高学歴が職場にこねぇとかどうでもいいんだよw
プログラミング作業と高学歴がなんか関係あんのかって聞いてんだよ禿
673 :
デフォルトの名無しさん :2009/09/30(水) 14:12:16
京大院って文系だとこんなアホが居るんだな。びっくりした。
高校生で言語作る人もいるのにな 頭が悪いというか堅すぎというか
上も下も見ればキリがないのに、 意味なく上と比べて落胆したり、下を見て慢心したりそういう人が多いねぇ 自分の知りたいことを知って、作りたいもの作ってそれをネタに慣れ合いしたりしてれば十分なのにさ
で、ここは何のスレ?
ちんこをいじるスレ
爪はたてないでね
679 :
デフォルトの名無しさん :2009/09/30(水) 21:35:32
昼間のチンコ出てこいやぁコラ
ちんこもJavaなんて中途半端なもん使ってるから苦しんでるんだよな Cで自分でデータ型を設計、管理を学ぶか Lispなんかで高度な抽象化をやってみればいいのに
OCamlじゃだめ?
Ocamlも面白そうだな Haskellよりとっつきやすそうだし
Programming in Scala買った。 Scalaはやばい。
あいつの言うソフトウェアの天才って意味わからんなぁ。 普通天才っていうと機械語よりな奴だよなぁ。
別にJavaでもLispでもいいけど ブランド志向というか、学歴もそうだが 看板を借りてきただけで満足したら終わりだよ
686 :
デフォルトの名無しさん :2009/10/01(木) 00:40:22
そんな看板すら持てない奴は始まらずに死ぬけどなww
低レベルのことなんて、誰でも出来る。 高レベルのことは誰でもは出来ない。 機械語だとかそんなのはやるだけ。右脳的な要素がない。 おれは絵を描くようにソフトウェアが作りたいだけ。
全く、ここのスレの奴は全然わかってない、あきれたよ、もう・・・。 言語を習得したからって、浮かれてる場合じゃないだろ 言語でどんなアプリ、システムを開発するかだろ もう・・・・ ば~いちゃお☆
689 :
デフォルトの名無しさん :2009/10/01(木) 00:43:25
ちんこゴルァァァァァァァァァァァ
>>687 何か色々と間違っちゃってるな。
低レベルのことも、高レベルのことも向き不向きがある。俺は実感の湧きにくい低レベルのことは苦手だ。
右脳的な要素が強いのはむしろ機械語だと思う。(もっとも「右脳的」の定義によりけり、だが)
絵を描くのは簡単ではないし、ソフトウェア開発に楽な道は無いと思って良い。
強いて言えば、ライブラリが揃ってる言語のほうが目的を達成するだけなら楽だろうな。
Javaをそのまま使っていれば良い。
ライブラリが足りないならC++やPerlもやれば良い。
ただし、C++もPerlも美しい言語とはほど遠いがw
691 :
デフォルトの名無しさん :2009/10/01(木) 06:56:23
>>682 これ良く聞くんだけど、
Haskell のどの辺りが取っつきにくそう?
副作用がしにくいところジャネ
副作用の除去に関しては、強制せずとも推奨な言語は多いし俺はあまり気にならなかった。 が、モナドははじめてオブジェクト指向に触れたときのような敷居の高さがあった。 あとコンパイルが糞遅い。
>>692 Haskellのdataとclass、instanceの概念が理解できません。
おまえらちょっと待て、 取っつきにく「そう」ということは、まだ取っついてもいないわけだろ。 そんな状態の奴が > 副作用がしにくい > モナドははじめてオブジェクト指向に触れたときのような敷居の高さがあった > Haskellのdataとclass、instanceの概念が理解できません そんなこと考えるわけ無いだろ。 これは、ある程度触ってみた奴が初めて言えることだ。
>>696 確かに。それなら
・統合開発環境がない
・簡単にGUIアプリが作れない
というのがとっつきにくさになるかな。
>>696 いや、ごめん。
おまえらの反応で正しかったわ。
>>682 を受けた俺のレス
>>692 の仕方だと俺が全面的に間違ってた。
すまん。
聞きたかったのは、Haskell やる前の奴が Haskell に感じる壁だ。
申し訳ない。
>>698 それだったらコミュニティの議論だろう。
ちんこ ◆GbXlaaQNk. 出てこいやぁ!!!
>>699 言われてみればそうだな。
話が出たついでに聞いてみようと思ったんだが、
スレタイとは全く関係なかったな、すまんかった。
賃このオ何ーをみんなで手伝うスレですか?
Scalaは神。
などと意味不明な事を口走っており…
シコシコ
ScalaもJavaVMの上でよく頑張ったって感じではあるけど
Java厨のちんこには本物の関数型言語は理解出来ないんだろ
710 :
デフォルトの名無しさん :2009/10/02(金) 21:05:37
本物ではない関数型言語って何?
純粋関数型って意味で言えば、ハスケル以外全部なんだろうな
ちんこにはLispやSchemeですら理解できるかどうかw CommonLispには型宣言もあるし実行効率もいいと思うんだがな
>>705 のこのこと出てきやがったなwwww
俺を覚えてるか?w
でもScalaは凄いな ひょっとしたら、Javaの次にくる大きな言語じゃね?
せっかく次はScalaだと思って勉強しているのに、ケチつけられた気分だ
次の本命はC#、時点がScala、大穴がD
Scalaの時代遅れなところは、Lispのマクロを研究しなかったこと
Cってホント実行速度速いんですね
Rubyってホント開発効率高いんですね
どんな言語でも、簡潔に書こうとすればそういう書き方になるし、 実行速度が求められればそういう書き方になる The Computer Language Benchmarks Game に投稿されているコードも、どちらかを重視した、偏った書き方に なっている可能性がある おそらく、Rubyは簡潔さを重視したコードがたまたま投稿されているだけなのだろうね RubyがPythonに実行速度で大きく劣るという話は聞いたことがないしな
725 :
デフォルトの名無しさん :2009/10/02(金) 23:18:51
開発にかけられる時間が5分間とかでない限り、簡潔さと開発効率は殆ど関係ない。
726 :
デフォルトの名無しさん :2009/10/02(金) 23:20:22
簡潔さと実行速度がトレードオフになることは殆どない。 同じ言語であれば、むしろ簡潔であるほど実行速度が速い場合が多い。
>>726 それは間違ってるよ
たとえば、HaskellのQuicksortなんかが典型例だな
728 :
デフォルトの名無しさん :2009/10/02(金) 23:21:55
別に特殊例じゃないけどな CLispのソースなんかは、効率のために冗長な書き方がなされていて、 簡潔版がコメントアウトされて載っているほど
>>727 じゃあ、その典型的な簡潔で遅い例と複雑で速い例を書いてみて。
>>720 グラフの軸に
slower← →faster
とか
worse← →better
とか書いてくんないのはなんでだろ。
>>728 なんかかなり頭悪い人?
もし仮に「ほとんどの場合」コードの簡潔さがパフォーマンスに貢献するのなら、
あえて「複雑に」書く意味がどこにあるんだ、って話になる。
733 :
デフォルトの名無しさん :2009/10/02(金) 23:27:39
複雑に書かないと効率的にならない言語はダメな言語。
734 :
デフォルトの名無しさん :2009/10/02(金) 23:28:21
>>732 残業したいか、ソースの行数で給料が決まるんだろ。
関数型言語では基本のソートとしてInsertionSort, 実用的なものとしてMergeSortがよく出てくる それぞれに対してBubbleSort, QuickSortが出てくる手続き型言語とは対照的だよね これはprimitiveなcontainerとして, mutableな配列があるかimmutableなlistがあるかの違いなのかな?
皆さんってどんな言語習得されてるんですか?
HTML
簡潔さを重要視したコードと、それ以外の何かを重要視したコードは たいてい別のコードになる 実行速度についてもしかり
素数判定とか簡潔に書いたら恐ろしく遅くなると思う
short codingとかでとんでもない短さにできるC言語は 開発効率がめちゃくちゃ高いことになる しかも、そうやって書いたコードの速度もRubyより速いだろうな
簡潔さと実行速度はトレードオフになる事が多いんだろうけど、 シーソーや天秤のようにきっちりしたトレードオフでもないような気がする。 ちょっとした工夫で、ちょっとだけ簡潔さをガマンすれば、 実行速度が驚くほど速くなったりすることは良くあるから。
結局速度と簡潔さのバランスが取れているOCamlやScalaやLispが最強という結論だな
OCamlは簡潔だというけど、何か見た目が汚い気がする Haskellの方が美しく見える 記号がたくさんあってごちゃごちゃしてるとかそういう視点で
簡潔さなんて、プログラミングに5分しかかけられないような場合じゃなければ、価値はない。
素人考えでは、Haskell のコンパイラに Burstall-Darlington Transformation の機能が組み込まれてたら、 ソースを簡潔に保ったまま処理速度を速められるんだけど、 やっぱ難しいのだろうか。
>>746 いや、簡潔なほうが見やすいし、わかりやすいことが多いよ
勉強なります。
>>748 じゃあ、文法の小さいCは、簡潔だし、実行速度も速いから、それ以外の言語は不要だな。
>>750 Cで書いたソースコードは別に簡潔ではないよ
Javaに比べれば簡潔なのかもしれないが
お前の主観は聞いてない。
754 :
デフォルトの名無しさん :2009/10/02(金) 23:58:54
言語仕様が小さいから短期間の学習で理解できる。 実行されることがソースに直接表れるから何が行われるのか理解しやすい。 以上の理由からCのソースは可読性が高い。 簡潔さより可読性の方が重要だ。
Javascriptが意外とすごい件 Pythonより優れてね?
以外じゃないし。
Cが可読性が高いってのは、慣れてる人間が多いというのも 関係してるだろ 本当に可読性が高いかどうかは疑問が残る 例としては、多くの言語に見られるforeach(for ~in)の方が、 Cのforループより可読性は高い
なるほど、ふむふむ・・・。
759 :
デフォルトの名無しさん :2009/10/03(土) 00:04:54
部分だけ比べても意味がない。 forがあるのにforeachなんかがあるから文法が大きくなる。 文法が大きくなれば習得に時間がかかる。 習得に時間がかかれば、十分理解する前にソースを読まざる負えない可能性が増える。 十分理解する前にソースを読めば誤読の可能性が高まる。 誤読の可能性が高ければ、すなわち可読性は低い。
foreachを学習する5分の時間をケチる馬鹿にとってはそうかもしれない
761 :
デフォルトの名無しさん :2009/10/03(土) 00:07:32
>>759 brainfuckは文法が小さく、習得に時間がかからないから可読性は高いYO!
762 :
デフォルトの名無しさん :2009/10/03(土) 00:08:39
学習に5分の項目が100個あればすべて学習するのに500分かかる。 100個目を学習しているときには、それ以前に学習した99個のうち95個は忘れている。 すべて覚えるのには膨大な時間がかかる。
>>762 たかが8時間だね
そのくらいをケチる人ってどのくらいいるんだろう
764 :
デフォルトの名無しさん :2009/10/03(土) 00:09:58
でた名言・・・。
一つの言語を覚えるんだろう 8時間なんて、かかって当たり前では? そもそもforeachなんて100個のうちでも優先順位はかなり高いほうな 上に、たいていの言語に備わってる機能だから、知ってて当然だと思うが
766 :
デフォルトの名無しさん :2009/10/03(土) 00:12:36
文章の1行目しか読めない人間って生きていて楽しいのかな。
95個は忘れてるってのは大げさだね 多めに見積もっても忘れてるのは50個程度 しかもその50個は次は半分の時間で学習できる
foreach程度の基礎的なありふれた機能が可読性の障害になるほど 学習コストを上げるとは思えんな
foreachの方が遥かに簡単だから 先にforeach知ってればforなんて滅多に使わなくなるのかもな
C/C++はデータ構造と言えるものが配列と構造体くらいしかない(文字列すら無い!)から、
例えばハッシュを使いたいと思ったらライブラリの仕様と使い方を覚えなきゃいけないでしょ。
人によって使ってるハッシュライブラリが違ったりすると、それもソースの読解を(少なくとも
一時的には)妨げることになる。
そういうの考えると、言語仕様がコンパクトだからって必ずしも可読性が高いとも学習時間が
少なくなるとも言えないと思うんだけど。
>>759 こそ、部分的な事しか見えてないんじゃないかと。
まぁそれはともかく、個人的には速度が全て。C/C++最高!
771 :
デフォルトの名無しさん :2009/10/03(土) 00:17:56
つまり、foreachは簡単だから5分で学習できるが、その他の機能の学習はもっとかかるということだな。 それじゃあ100項目学習の1サイクル500分でも全く足りないな。 全部覚えるのは途方もない。
昔の人は、はじめてC言語を見た時、「なんだこの#includeとかいう意味不明な文は! mianってなんだ!?Basicではprint一行なのに!なんて複雑な言語なんだ!」 という感想を持ったらしい
>>771 「その他の機能」にC言語のfor文が入るのでは?
774 :
デフォルトの名無しさん :2009/10/03(土) 00:20:34
>>772 Cの文法は小さいからその後すぐに覚えるけどな。
文法の小ささならbrainfuckの方が小さいんだが
そもそも、Cの文法は小さくないと思うが。
文法の事ばかり挙がるけど、意味論の事も時々思い出してあげてね
>>776 なら、Cより文法が小さい言語を挙げてみろよ。
実用を全く想定していないネタ言語以外でな。
Scheme、Forth、Smalltalk、Arc、Io、Ruby・・・
規格書のページ数で言えば Haskell98もA4で200ページないな ちなみにC89で500ページ以上
それ全部ネタ言語wwww
>>778 逆に、Cより文法が複雑な言語を挙げてくれ。
おれは、C++とObjectiveCぐらいしか思い浮かばない。
まあ、分かりやすくて速いCが最強ってこと。
Adaとか
>>782 Common Lispを忘れてはいけない
実はC++98よりデカかったりするぞ
Schemeも最強に近いが、残念ながら速度の面でCには勝てない。
Cは速度は最速に近いな Fortranに負けるぐらいか
なるほど・・・
使うのはIntel 「C++」 Compilerだけどな 流石にC89では貧弱すぎる
>>778 ,782
文法の複雑さはどうやって比べるの?
EBNF で表現した時の記述量なの?
柔軟性の高い言語・・・Common Lisp 速度の速い言語・・・Fortran、C 可読性の高い言語・・・Ruby、Python コンテストで強い言語・・・Haskell、C++ ネタ言語、あまりにマイナーな言語は除く
コンテストって何だよw
見栄を張るのに最適な言語・・・Haskell 信者がウザイ言語・・・Scala・C
ACM国際大学対抗プログラミングコンテストとかだろjk
じゃあCでいいや。
信者がウザいのはどんな言語でも同じだろう
そもそもウザさを見出して、その性質に対してつける呼称だからな。 むしろウザくもない相手を信者とか呼ぶ奴がいたら、そいつがおかしい。
お前、信者を馬鹿にしすぎじゃね? 立派な人格の信者だって世の中にはたくさんいるんだぜ?
とりあえずNULLが存在する言語は全部消えろ それから型があるのに型安全じゃない言語も去れ 残るのはHaskellとOCamlだけ
Ioが美しいと思うんだ。 予約語の数的に。
804 :
デフォルトの名無しさん :2009/10/03(土) 01:31:50
>>801 パスカルにはヌルがない
型は絶対
完璧だ
>>804 NULLがなくてもnilがあるじゃねぇかwww
マシン語書ける奴が勝ち組
マシン語はポータビリティーに欠けるのが最大の欠点
>>800 実際の宗教の信者の話にすり替えてないか?w
この場合の、他者に貼るレッテルとしての「信者」は、鼻につく盲愛への悪口であって、
ウザさを見てそれから呼称を「持ってくる」わけだから、宿命的にウザいよ。
俺は別に鼻につかなくても熱烈な支持者は信者と呼んでたよ
まぁ用法が拡張されつつあるのは事実。 「厨」なんかも、○○が好きってだけで、自分から「俺は○○厨なんだけど・・・」って 話し出す奴もいるしね。 でも他人のことは安易にそう呼ばないほうがいいよ。「基本は悪口」ってのはまだ生きてるから。
代数的データ型がない言語なんて最早ゴミ
可読性はできるだけ高級な言語の方が高いよ。 C は低級だ。 ソースを読む苦労に比べたら、言語を習得する苦労なんてタカが知れている。 文法にはどんなに複雑な概念を導入しても構わないから、ソースを読み易くして欲しいな。
マジレスすると、文芸的プログラミングがもっと評価されるべき。 これはオブジェクトリテラルや関数リテラルやヒアドキュメントなんかと同じ。 知りたいことがその場に書かれていて、いちいち他の場所を参照しなくて良い という事は明らかに可読性が高い。 日本語とか英語とかを習得する苦労は大きいが、やるだけの価値がある。
>知りたいことがその場に書かれていて、いちいち他の場所を参照しなくて良い ああ、こういう考えのやつがくそ長いメソッド書いて平気な顔してるのか
糞長いメソッド書いたら「知りたいことがその場に書かれている」状態は作りにくくなると思うが
メソッドを短くしたら、別のメソッドまで中身を参照しにいかないといけない
変数やメソッドにはその意味を的確に表現する名前をつけてください。 「実装パターン」などに書いてあります。 おれは、君たちのようなゴミプログラマと一緒に働く気はありません。 君たちはゴミ同然です。パフォーマンスに対する意識から何から、付き合いきれません。 死んでください。
Implementation Patternsは200ページ無い癖に4000円以上するボッタ本 というかKent Beck自体がセミナーでボってる詐欺師
日本語版が出てる。 それは4000円もしない。 あと、書いてある内容からすれば、4000円なんてゴミみたいなものだ。 よい開発者は、自分のスキルを伸ばすことを真剣に考える。 また、おれは、プログラミング以外でも、本への投資は惜しまないことにしている。 本ほどコスパのよいものはないよ。 そういうのを「高い」と思う人間は、低レベルの人間。 質という概念を理解出来ない、ゴミ。 Kent Beckは神だよ。 彼のいうことは大抵正しい。おれは彼のようになりたい。
なるほど、それはおれが「正しいことをすべて知ってる」ということを前提にしていますね。 「間違ってるようには見えない」の間違いでした。訂正します。
アランかなんかの本の中に、この本に書いてあることはすべて正しいと して読むとよい、と書いてあった。ドキュマンではなくモニュマンとして 読むのだそうだ。
>>818 そんなことに囚われるなよ。黄庭堅の草書のようにプログラムするのが
美しいに決まってるじゃないか。
適切な名前は、先行投資です。 確かに、短く書いた方が、その場では速いと思うでしょうけど、あとになって必ず後悔します。 ただし、書いてる時は、自分の頭の中に論理がきちんと構成されていたりして、とにかくロジックを書くことに集中したい時もあるでしょうから、 とりあえず保留して、ロジックを書き終わったあとで自動リファクタリングでrenameするという手法をとっています。 頭の悪い人は、先行投資という概念が理解出来ていないのかも知れません。彼らは常に目先の利益にばかりとらわれます。 頭の良い人は常に先行投資することを惜しみません。 何の本だか忘れましたが、5時間かけて、何かを作る時に、 4時間と55分かけてそれを行うための道具を作って、5分で組み立てるのが優秀な人だそうです。 そして、5時間かけて、書き散らすのがバカな人だそうです。 あなたがたは大抵後者でしょう。おれは前者です。先行投資の重要さを知っています。 囲碁においても、頭の悪い人は、「厚み」という概念を理解出来ません。
見下した書き方をするのは頭の悪い証拠だな 本当に頭の良い奴は相手を見下しても表向きは見下さない
ちんこには俺が憧れるものが何もないや
ちんこは相手の気持ちを考えて言葉を選ぶという能力の不足から、 良き親、指導者、先生といったものにはなれないと思う。 せっかく確固たる哲学を持っているし、 言っていることの本質には学ぶべきものも多いのに、 勿体ない。
噂で聞いたんですがこの人が噂のちんこさんですかぁ。 すげぇ。
哲学はさておき数学的には 点、線、平面と言うかわりに、テーブル、椅子、ビアジョッキと言ったっていいんだ
まぁちんこには新しい言語、パラダイムなんか作り上げることは絶対に無理だな 頭が固すぎる、他の関数型言語も理解出来ないなんてはっきりいって無能 せいぜいJavaだけで満足してれ つーかそっから出ないでくれ、周りの迷惑だ
ちんこって学科は何だったんですか?
834 :
デフォルトの名無しさん :2009/10/03(土) 13:28:44
500円しか回収できないところに、500万円投資するバカも居るからな。 先行投資は悪くないが、投資効果を見極められない無能がやみくもにやったら逆効果だ。
名前の重要度は有効範囲の広さに比例する。 有効範囲が広いと、定義した場所と使う場所が遠くなるので名前が重要。 逆に、定義した場所と使う場所が同じなら、名前を考える意味はない。
837 :
デフォルトの名無しさん :2009/10/03(土) 13:59:19
説明が必要な変数であれば、定義した場所と使う場所が同じであるかないかにかかわらず、名前を考える必要が十分にある。
>>837 定義した場所と使う場所が同じで、かつ
説明が必要な変数で、かつ
コメントによる説明では足りずに名前を考える必要がある変数
というのは例えばどういったものが挙げられるでしょうか。
839 :
デフォルトの名無しさん :2009/10/03(土) 14:26:39
>>838 double a = data[1]; //体重(kg)
double b = data[2]; //身長(m)
double c = a/(b*b); //BMI
---------------------
double weight_kg = data[1];
double height_m = data[2];
double bmi = weight_kg/((height_m)*(height_m));
>>839 その例では、名前の重要度を問題にするほど2つに差は無いように感じます。
名前の重要度を問題にするのは、それが可読性の高さに繋がるからだと思いますが、
その2つの例はどちらが可読性が高いかと議論するレベルのものでしょうか。
コメントの方を好む人、変数名の方を好む人、
どちらの例も単に好みの問題として片付けられると思います。
試しに訊きますが、前者のコメントでは読み手に伝わらない、
読み手に伝わりにくい情報というのは何でしょうか?
>>832 ちんこは昨年に比べると格段に進歩している。
プログラミングに関する定石を知らず、独自に発想しているあたり
かなり頭が良いと思う。
Javaから入ったので相当な遠回りをしているし
プログラミング経験の少なさから視野も狭いが、
そのうちきっと凄いものを作ると思う。
俺はブログを読んでちんこの凄さがよくわかった。
>>840 ローカル変数は全部1文字で、説明は全部コメントとして書けばいいと思うよ^^
頑張ってね。
ちんこ ◆GbXlaaQNk.はネ申。
>>842 いや、私がその書き方で頑張るかどうかなんてのは、どうでもいいんです。
そうではなく、挙げられた例が私の
>>838 の条件を満たすかを考えてみてください。
私は最後の「コメントによる説明では足りずに」という部分が
この例では不足している感じがします。
つまり、この例ではコメントによる説明でも十分事足りると感じます。
>>842 は前者のコメントによる説明では、
身長と体重から BMI 値を計算していることは読み取りにくいのでしょうか。
ここにいるほとんどの人が、
前者だけを見せられても、後者だけをみせられても、
どちらも同じ情報を同じような時間で読み取れると思うのですが。
845 :
デフォルトの名無しさん :2009/10/03(土) 17:31:05
ちんこ ◆GbXlaaQNkリスペクト!!
そもそも「コメントによる説明では足りずに」なんてどこから出てきたんだろうね。
>>844 そうそう。
説明を全部コメント文に書けば、ローカル変数は全部1文字でいいよね^^
それでいいと思うよ^^
>>846 もちろん私が勝手に付けた条件です。
それを理解した上での
>>839 の例だと思います。
何故その条件を追加したのかと言いますと、
>>837 の
>>836 への反論を読み、確かにされも一理あると思いました。
そこで、もしコメントから十分な情報が比較的簡単に得られるのなら
(ここでいう簡単というのは、すぐに理解できるという意味です)
それでもやはり説明が必要な変数なら名前を考える必要が十分にあるか
を訊きたいと思いました。
もし、コメントで十分なのであれば、
変数名による説明とコメントによる説明は、
「定義した場所と使う場所が同じな説明が必要な変数」
に対してプログラマがすべき事としては本質的に同じ事で、
後は本人の好みやチームの方針次第ということにならないでしょうか。
お好きにどうぞ。
コメントの様式は言語の規格外だし・・・。 関数名と変数を全部覆面にして、このアルゴリズムは 何と、何と、何に利用されるか当てることは、かなり 難しいことなのではないかと。
>>829 おれは教授になる気はない。
ただし、メンターになる気はある。
ソフトウェアを正しい方向に導くモーゼになりたい。
>>833 電気です。
名前について:
ダメなメソッド名をコメントでごまかすことは出来ないといいます。
おれはそう思います。
基本的にコメントなど書かない方がいいのです。
変数やメソッド名が如実に、何をするかを表していれば済む問題です。
コメントが仮に一ヶ所に書いてあったとして、その場でその変数が何を表しているかが分かったとします。
しかし、その暗号的な変数は定義されておしまいではありません。
なので、適切な名前をつける必要があります。
JUnitのソースコードを見たことがあるような気がしますが、衝撃を受けました。
>>839 の上段みたいなコードを書く人がいたら、殺します。
>>840 書いたとおりです。悪いメソッド名を伝搬させないでください。
変数は他の変数やメソッドとのコンビネーションによって価値を提供します。
>>841 あなたはかなり以上に頭が良くない人間が麻布中学に合格出来ると思っているのですか?
おれはまぎれもない天才です。
で、定石って何?あなたはおれより良いソフトウェアが書ける気でいるのですか?おれはすでに日本一だという気持ちなのですが。
852 :
デフォルトの名無しさん :2009/10/03(土) 20:54:19
俺は東大でてるから、同級生や先輩後輩に麻布出身者は何人かいる。 まあ、勉強ができるというか、マメで勉強の要領がいい反面、 思い込みが激しく、自分の知識の枠から外れることのできない 性格の人が多い印象がある。 優秀で尊敬する先輩も中にはいたが、卒業後10年すぎて立場が逆転し、 先輩から敬語で話しかけられたときには衝撃を受けた。 中学、高校の栄光にしがみついてるようじゃ、凡人にしかなれない。
プログラミング言語の美しさとは何の関係もないと思われる
>>852 あなたが東大を出ていることは嘘です。
最後の文以外の文章と最後の文には、何の繋がりもありません。
東大卒の人間がそんな文章を書くはずがありません。
>>851 なるほど、確かにそうですね。
>>842 なんて言われるのとは違い、説得力有ります。
変数名が重要になる場面は多くあるのは経験しているのですが、
ただ、
>>839 の上段のようなコードは、
まさにその定義されてお終いで済んでしまう変数だと思うのですが。
「定義した場所と使う場所が同じ」というのはテンポラリ変数の典型で、
>>839 の上段のようなコードの変数はそれに該当しないでしょうか。
>>839 の例は
>>838 の質問に対する例としては不適切だと思います。
>>850 極端すぎます。
それを言うなら、難解なアルゴリズムの実装において
変数名は叙述的なのにコメントが一切無い場合も、
何と、何と、何に「どのように」利用されるか当てることも、かなり
難しいことなのではないかと。
856 :
850 :2009/10/03(土) 21:24:38
>>855 「何に」しか、使われないかがはっきりすると思うけど。
>>856 ごめんなさい、正直どのような意味の反論なのか分からないです。
私があなたの発言を極端だと言ったことへの反論でしょうか。
それとも、あなたの極端な発言に極端な発言で返した事への反論でしょうか。
そろとも、私の極端な発言の内容に関する反論でしょうか。
いずれにしても、もう少し説明を増やして頂けると助かります。
>>855 まず、数値というのは無単位です。
なので、
>>839 のコードは抽象化というものが全く分かっていない人のコードです。
数学や物理を学んでいない人がコードを書くとこうなります。
さて、このコードですが、
名前をつけないのであれば、dataからデータを引っ張る意味が分かりません。
「明示的な名前をつけるために変数を抽出する」というリファクタリングがあります。
また、cは使い捨てではありません。cはこれから活用されるべき変数です。
なので、解答としては、
1. 変数を用意するのであれば適切な名前をつけてください。
2. そうでなければ、変数を抽出しないでください。
です。
しかし、一般的には、適切な名前をつけてあげた方がいいです。
おれが、一般的に許せるのは、ループのi, j,kまでです。
他は全部名前をつけます。
十分に短くて正しい名前をつけれない人は、
1. 凝集度の低いメソッドを書いている。
2. 抽象というものが分かっていない。
3. 英語能力が足りない。
のどれかだと思います。
的確な名前であれば、長くても一瞬で読めます。
それはちゃんとした英語だからです。
テンポラリだからといって、tmpとかいう名前をつけるのはやめてください。
というのはどこかに書いてあった気がしますが忘れました。
>>855 だから、局所的なコードなら、コメントで説明できれば、変数名はどうでもいいって。
何か異論あるの?
>>855 お疲れ様です。
お前らーーー!!
ちんこ様に失礼じゃねぇかよオラー
>>857 _顧客番号 + _出荷日 + _商品番号 + _数量 :- ... .
というPrologのコードは
A + B + C + D :- ... .
である必要はありませんね。むしろ汎用性がないコードですから、
縛らねばなりません。組み合わせアルゴリズムのように汎用な
アルゴリズムは確かに多数存在しますが、実は、ごくごく一部ですね。
>_顧客番号 + _出荷日 + _商品番号 + _数量 :- ... . >というPrologのコードは >A + B + C + D :- ... . >である必要はありませんね。 そうだね。 >むしろ汎用性がないコードですから、 前者がね。 >縛らねばなりません。 どういう意味? >組み合わせアルゴリズムのように汎用な >アルゴリズムは確かに多数存在しますが、実は、ごくごく一部ですね。 何が「ごくごく一部」なの?
>>858 > 名前をつけないのであれば、dataからデータを引っ張る意味が分かりません。
なるほど納得、確かにその通りです。
解答としては・・・の部分は分かりやすい標語です。
その2つを守っていれば変数に対するコメントは不要であるということですね。
いろいろ参考になりました。
ありがとうございます。
こんなに分かりやすく簡潔に説明できる人なのに、
どうして
>>851 の最後のように相手の癇に障る物言いをしてしまうのでしょうか。
バカだからな
>>861 やはり、まだよくわかりません。
Prolog を全く知らないせいでしょうか。
>>856 の読点の前は、はっきりするのは「何に」だけだ、
と言っているのですよね。
読点の後ろは、「使われる or 使われない」のどちらなのかがはっきりする
と言っているのですよね。
この「何に」の主語(主部)はお互いの暗黙の了解で「変数が」ですよね。
どのようにすると「はっきりする」のかの部分が曖昧なので
いまいち私のどの部分に対するどのような反論なのかが分からないのです。
あなたの言うように関数名と変数を全部覆面にしてもはっきりするが、
私のようにコメントを一切なくしたらはっきりしない、ということでしょうか。
何を変なことを言ってるのか、馬鹿にしてるのかと思われるかもしれませんが、
本当に文章の構造や意味のレベルから全く分からないのです、すいません。
今から言うちんこさんの発言にみんな耳を傾けること
>>862 Prologの論理変数は型付けがありません。それで、
顧客番号 A + 出荷日 B + 商品番号 C + 数量 D :- ... .
とは書けません。
_顧客番号 + _出荷日 + _商品番号 + _数量 :- ... .
A + B + C + D :- ... .
は等価だと考えますが、この型情報に近い情報をプログラムソースの読み手に
与えようとしているのが、前者ですね。
我々が共有しているアルゴリズムとして(_+_+_+) :- が存在している訳では
ないよという宣言でもあるため、これを縛ると表現したのです。
>>867 > Prologの論理変数は型付けがありません。それで、
> 顧客番号 A + 出荷日 B + 商品番号 C + 数量 D :- ... .
> とは書けません。
そうだね。
> _顧客番号 + _出荷日 + _商品番号 + _数量 :- ... .
> A + B + C + D :- ... .
> は等価だと考えますが、
そうだね。
>この型情報に近い情報をプログラムソースの読み手に
> 与えようとしているのが、前者ですね。
そうだね。
> 我々が共有しているアルゴリズムとして(_+_+_+) :- が存在している訳では
> ないよという宣言でもあるため、
「存在している訳ではない」「宣言」の意味がわからない。
>これを縛ると表現したのです。
「存在している訳ではない」と「宣言」することを「縛る」と定義したの?
(_+_+_) :- という頭部を持つ述語は商品売上入力にしか使わないよ という宣言になっていませんか。
>>869 疑問が二つ。
(1)何故「(_+_+_) :- という頭部を持つ述語」が「商品売上入力にしか使わないよ」という宣言になっているのかわからない。
(2)何が「(_+_+_) :- という頭部を持つ述語は商品売上入力にしか使わないよ」という宣言になっているのかわからない。
_顧客番号 + _出荷日 + _商品番号 + _数量 と書いてしまうことですね。 「縛る」や「宣言」と言葉が適切でないとは思います。
>>871 プログラムソースの読み手との間に
_顧客番号 + _出荷日 + _商品番号 + _数量 と情報がならべば、
それは、商品売上入力のパターンであるという共有する知識があると
いうことですね。
どのように使うのかというと、インタプリタのトップから ?- 137010500015+0930+0110+26.4. のように入力します。35年前、紙テープベースのコンピュータで 入力していた時と行末にピリオドあることを除けば変わりありません。 アセンブラ->簡易言語->COBOL->Prolog と言語は変遷しましたが。
で、何の話だったっけ?
最も美しいプログラミング言語は?
C
Scala
Scalaのソースの見た目はあんまり美しくないよ Haskellに劣る
言語名だけを提示されても、 それのどこがどう美しいと思うのかが分かりません。 また、何を以て美しさの尺度としているのかも同時に示してくれないと、 議論がしにくいです。
ちんこ師匠の言うことはみんな従え・・・。
Scalaのクイックソート↓ def quicksort(x: Array[Int]): Array[Int] = if (x.length <= 1) x else { val 基準値 = x(x.length / 2) Array.concat( quicksort(x filter (基準値 >)), x filter (基準値 ==), quicksort(x filter (基準値 <))) } Haskellのクイックソート↓ qsort [] = [] qsort (x:xs) = qsort [a|a<-xs,a<=x]++[x]++qsort [a|a<-xs,a>x] あー、やっぱHaskellの方がダントツで美しいわ Scalaは無駄がありすぎてごちゃごちゃしてる
次のスレタイ、「ちんこ part3」で良いよね
もちろん、ちんこがネ申である以上、否めない・・・
>>883 わざとScalaを汚く書いてるな
Haskell版と同等なのは次のコード
def quicksort(x: Array[Int]): Array[Int] =
if (x.length <= 1) x
else {
Array.concat(
quicksort(x filter (x(0) >)), x(0), quicksort(x filter (x(0) <=)))
}
>>883 >>886 確かに美しいね
こういうコード見てると、C言語やJavaで書く気がしなくなってくるのもわかる
再帰や内包表記が理解できない馬鹿をふるいにかけてくれるから助かる 早く関数型言語が主流になってくれ
>>883 の比較は、HaskellがScalaよりもクイックソートを簡潔に記述できるとしか言っていない。
一般的にHaskellのコードが美しいなんて結論はそこからは全く出てこない。
これだけを見てCやJavaで書く気がしなくなる奴はバカだろ。
そのプログラムを見て、そこに使われている要素にどれだけの 応用があり、背後の思想がどれだけ全体に影響を与えるかを 想像出来ない奴にはそう思えるだろうね
リスト操作が簡潔に書けるってだけだろうね。実際のプログラムじゃリスト操作なんてそんなに使わんし。
リストが再帰や繰り返しとともに頻繁に現れることも想像できんとはね
>>883 のHaskellのソースコードの真価はパターンマッチングにある
想像ばっかりしてないで、実際にプログラム書けよww
ScalaだってList使えばパターンマッチはできる クイックソート程度じゃHaskellの型推論の方がすごいねーくらいの結論しか出せないと思う
>>895 だったら、パターンマッチング使ったquicksort書いて見ろよ
どうせHaskellの美しさには勝てないと思うがなw
HaskellってQuicksort専用言語だろw
>>883 が簡潔になっている秘密は、Haskellはリストの内包表記
Scalaは高階関数と呼ばれる仕組みを使っているから
まあ、俺は高階関数も内包表記も使えない言語を使いたくはないよ
使わなくていいよ^^
Haskellはむしろ挿入ソート専用言語 insSort = foldr insert []
お前らってまだソート自作してるの?
例として出されてるだけだろ
Haskell フィボナッチ数列 fib = 1:1:zipWith (+) fib (tail fib) 素数(エラトステネスのふるい) primes = sieve [2..] sieve (x:xs) = x:sieve [a | a<-xs, a `mod` x /= 0] 美しい・・・
Haskellって正直何やってるのかさっぱりわからん 本当に可読性高いの?
単純なアルゴリズムが簡潔に書けるだけだよ。 大規模なプログラムになると可読性は高くない。というかむしろ低い。
Haskellで普通に関数を書くことはなんとかできるんだが ポイントフリースタイルにしようとすると途端に訳分からなくなる なんかコツあんの?
>>858 > おれが、一般的に許せるのは、ループのi, j,kまでです。
> 他は全部名前をつけます。
時刻は t_<suffix>
力は f_<suffix>
...
で、事足りるんだが
>>907 事足りるんだ「が」、何?
それはあんたの自由でしょ。雑魚が。
>>907 そうだぜ
ちんこさんが言ってるんだから間違いねぇ
910 :
デフォルトの名無しさん :2009/10/04(日) 13:10:03
>>909 電気出身だったら数式的にモデル化しようと試みるんじゃないの?
そうすると自然と変数名は短くなったりしないかな?
そのかわりコメントに数式と解説を書く羽目になるけど………
>>906 次のどれなんでしょうか。
1. ポイントフリーにしたいけど(自分の力では)できないものがある
2. ポイントフリーにしている最中に何をしているのか分からなくなる
3. (自分で、他人が)ポイントフリーした後のものが見難くて訳分からなくなる
4. その他
何にせよ、もし可能ならここに適当な例を提示して、
これのポイントフリーが~なので訳分からない、などと言って頂けると、
もしかして何かコツなりアドバイスできるかもしれません。
>>701 は頭つかってないし何も期待できないが、ちんこはあらゆるものを疑って自分で考えてるし、なんかすごいことをしそうな期待感がある
このスレでちんこをリスペクトできない奴はスレ違いも当然 ちんこに異論のある奴は出て行ってくれ
もう、ちんこすれたてろよw
ちんこ勃ってきた
ちん擦れはここでおk スレ鯛からしてちんこだし
ちこははべつに隔離してくれw
ちんこあってのこの擦れなんだからw 隔離したらこの擦れの意味ないじゃんw
「ちんこ ◆GbXlaaQNk」.以外はニセモノだからな・・・
>>914 >Haskellで普通に関数を書くことはなんとかできるんだが
ということは、そのポイントフリーにした式は自分で書いたものですよね。
ポイントフリーはリファクタリングの一種であり、
自分でポイントフリーにした後のものが見難いのであれば本末転倒なので、
それはあなたにとってポイントフリーにすべき対象ではないと思います。
それでも敢えてポイントフリーにしたい理由はなんでしょうか。
例えばどのような式をどのようにポイントフリーしたのでしょうか。
訳が分からなくなるのにポイントフリーにしたいのでしたら、
それはもうよく使うパターンの処理の流れを暗記するしかないと思います。
ゴミコテしんでくれない?地球のために
ゴミコテに相応しいゴミスレ,visa versaだから問題なっしんぐ始対象
vice versaのこと?
925 :
デフォルトの名無しさん :2009/10/05(月) 07:11:06
スケーラとかハスケルってハッシュ組み込み? どやって使うの?
Programming ScalaのCurryingまで読んだ。 全おれが感動で咽び泣いた。 最初からScalaをやるべきだった。この世にはScalaがあればそれでいい。 そう思えるほど、Scalaは美しい。完璧な言語だ。 Twitterは、RailsからTwitterに書き換わった。それはRubyがクソだったからだ。 すべてのシステムはTwitterに書き換えられるべきかも知れない。
ネイティブScalaの処理系があればいいのにな。 Javaがないと動かないのはちょっとなー。
929 :
デフォルトの名無しさん :2009/10/05(月) 20:54:43
>>926 それはベンチマークに使われているコードが悪い。
main = print $ lookup 100 (map (\i -> (i,i)) [1..10000000])
time ./M
Just 100
real 0m0.005s
user 0m0.000s
sys 0m0.003s
>>928 ネイティブの処理系なんて遅すぎて使い物にならん。
( ゚Д゚)ハァ?
>すべてのシステムはTwitterに書き換えられるべきかも知れない。 >すべてのシステムはTwitterに書き換えられるべきかも知れない。 >すべてのシステムはTwitterに書き換えられるべきかも知れない。 >ネイティブの処理系なんて遅すぎて使い物にならん。 >ネイティブの処理系なんて遅すぎて使い物にならん。 >ネイティブの処理系なんて遅すぎて使い物にならん。 .| | | | | | | | | | || | | .| | | レ | | | | | J || | | ∩___∩ | | | J | | | し || | | | ノ\ ,_ ヽ .| レ | | レ| || J | / ●゛ ● | .J し | | || J | ∪ ( _●_) ミ .| し J| 彡、 |∪| | う~ん・・・ .J レ / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /
ごめん、女の子にフラれた勢いでファビョってる。 もうダメだ。 お前らはヒゲを剃って常にクリーンでいろよ。
>>929 ハッシュテーブルの検索は O(1) でできるのが特徴だと思います(最悪ケースでO(n))。
一方 Prelude の lookup 関数の実装は O(n) です。
なので、それはハッシュとは言えないのではないでしょうか。
Data.HashTable.Lookup の実装が O(n) になっていたら、
GHC のウソつきということになりますが。
935 :
デフォルトの名無しさん :2009/10/05(月) 21:39:14
>>929 レイジーバインディングのせいで速いのでは?
>>935 100個の要素のリストを作った時点で処理が終わりますよね。
チンカスはチンカスくせえから振られたんだろ。 てめえの言ってる事は全てオナニーなんだよ。
遅いんだ。ネイティブだしな。
>>934 O(n)の検索って、「何も工夫してません」ってことだろ。
940 :
デフォルトの名無しさん :2009/10/05(月) 22:22:24
>>934 binary treeで実装されたハッシュはO(logn)だろ。
941 :
デフォルトの名無しさん :2009/10/05(月) 22:25:03
>>940 そうでしたか。
・・・どういう特徴を持ったのをハッシュって言うんでしたっけ?
943 :
デフォルトの名無しさん :2009/10/05(月) 22:34:56
Haskellが遅いのはlazyのせいだから、lazyの利点を生かせないと不公平だろ。
つまり、Haskellはのろいと。
そもそも
>>925 が求めているのは、
キーからハッシュ値を求めてハッシュテーブルに格納する機構?
それとも連想配列? (つまり実装方法は問題にしていない)
それより構築の時間まで一緒に測ってどうするのかと
1回しか使わないスクリプトだからだろ。
>>940 >binary treeで実装されたハッシュ
ハッシュを連想配列のシノニムとして使うのは「まだ」やめてくれ
そのうちそういう意味に変わっちゃうのかもしれないけどさ
Javaとかだと一度Stringオブジェクトに対して hash計算かけるとキャッシュするよね。 あれの(他言語のHashに対する)アドバンテージってどんなもんだろ。 大概外部からの入力で新生されたStringをキーに 使うからそんなでもないのかもしれんが。
等値の判定が早くなる。
Haskell の HashTable が OCaml などに比べて極端に遅いのは挿入で、 検索は問題なく速いですよね?
953 :
デフォルトの名無しさん :2009/10/05(月) 23:44:22
>>952 Haskellはデータを全部コピーするから処理によっては異常に遅い。
言語の問題か、処理系の問題か、分けて語ろう。
ついでに言語そのものとライブラリも分けよう。
>>953 OCaml もコピーしませんか?
Hashtbl がどのような実装になってるのか知りませんが。
F# はほとんど .NET ライブラリの Dictionary に任せてて、
あの速度を測ったコードでは関数型言語らしさがほとんど無いですね。
ちょっと卑怯な気がしなくもないです。
負け惜しみ
>>957 まぁ、それが F# の最大の特徴なので、
確かに負け惜しみですね。
結局erlangは軽量プロセスを世に知らしめて役割終了なのかな? フォールトトレランスな実装とかOTPとかもっと評価されても いいような気がするんだけど。 scalaにも軽量プロセスはあるみたいだけど、JVM上でどれだけ 真価を発揮できるのか疑問。マルチコアや分散に対応できるのか、 堅牢性はどの程度なのか。
erlangが無くても軽量プロセスくらい誰でも知ってただろ。言語仕様に含んでる言語は珍しいかもしれないが。
Erlangは糞遅いからな。特殊な用途でしかアドバンテージはないだろ。
962 :
デフォルトの名無しさん :2009/10/06(火) 06:14:23
>>933 ハッキリ伝えるとややこしいから、その女はヒゲのせいにしたんだろ。
髭なら剃れば済むからな。
やさしいじゃないか。
とはいえ、髭を剃っても 別の理由で断られるだけだ。
俺様主義で自信過剰に振る舞うくせに
出身校を前面に出さないと保てない自我と
自信、能力の欠如を見透かされたんだから。
963 :
デフォルトの名無しさん :2009/10/06(火) 06:24:42
>>954 言語の問題が、処理系の構築を邪魔することもあるから、厳密に分けても意味がない。
ライブラリで上手に実装できるなら、そうやってみせればいいし
他言語で巧く実装されているならそれを借りてもいい。
いずれもできず遅いのなら言語の問題。
ところで、ハスケルやスケーラにハッシュは向いてないってことなの?
総ての用途に向いた(実装容易で効率的に動作させらる)言語はないのだから
苦手ということなら、それでいいと思うのだが。
今度は関数型談義か・・・
966 :
デフォルトの名無しさん :2009/10/06(火) 10:54:44
. 1. HTML で検索した結果 1~10件目 / 約5,040,000,000件 . 2. PHP で検索した結果 1~10件目 / 約2,970,000,000件 . 3. Java...... で検索した結果 1~10件目 / 約 835,000,000件 . 4. Forth. で検索した結果 1~10件目 / 約 323,000,000件 . 5. Ruby.. で検索した結果 1~10件目 / 約 275,000,000件 . 6. perl..... で検索した結果 1~10件目 / 約 245,000,000件 . 7. Python... で検索した結果 1~10件目 / 約 204,000,000件 . 8. pascal... で検索した結果 1~10件目 / 約 170,000,000件 . 9. Delphi で検索した結果 1~10件目 / 約 127,000,000件 10. VisualBasic...で検索した結果 1~10件目 / 約 121,000,000件 11. lisp... で検索した結果 1~10件目 / 約. 26,700,000件 12. fortran で検索した結果 1~10件目 / 約. 21,300,000件 13. COBOL で検索した結果 1~10件目 / 約. 18,500,000件 14. HSP で検索した結果 1~10件目 / 約. 12,300,000件 15. FreeBasic.. で検索した結果 1~10件目 / 約 6,320,000件 16. Tcl/Tk. で検索した結果 1~10件目 / 約 4,940,000件 17. QBasic で検索した結果 1~10件目 / 約 4,190,000件 18. VisualC.... で検索した結果 1~10件目 / 約 1,360,000件 19. DarkBASIC. で検索した結果 1~10件目 / 約 1,320,000件 20. BasicStudio で検索した結果 1~10件目 / 約 304,000件 21. N88basic. で検索した結果 1~10件目 / 約 215,000件 22. f-basic で検索した結果 1~10件目 / 約 109,000件 23. ActiveBasic で検索した結果 1~10件目 / 約. 89,800件 24. 99BASIC.... で検索した結果 1~10件目 / 約. 11,500件 3Dprogramming で検索した結果 1~10件目 / 約794,000件 2Dprogramming で検索した結果 1~10件目 / 約. 57,400件 intel で検索した結果 1~10件目 / 約729,000,000件 amd で検索した結果 1~10件目 / 約355,000,000件
JavaとかForthとかRubyとかPythonとか、プログラミング言語として検索されているとは限らないし。 HTMLとかPHPとか、拡張子でひっかかってるだけじゃない?
> Ada の検索結果 約 131,000,000 件中 1 - 10 件目 (0.23 秒) つまり、AdaはLISPやFortranより上位 …って言っていいってことだよね?
いやだからAdaもプログラミング言語じゃなくて 人名のほうでひっかかってるしー
Googleのソースコード検索でlang:cなんて風に検索すればいいんじゃないか ちょっとやってみた lang:c 約11,700,000件中1 - 10件目 lang:c++ 約8,870,000件中1 - 10件目 lang:c# 約2,140,000件中1 - 10件目 lang:css 約361,000件中1 - 10件目 lang:d 約47,000件中1 - 10件目 lang:erlang 約49,900件中1 - 10件目 lang:scala 約29,500件中1 - 10件目 めんどくせー。後はだれか任せた
yahoo で検索した結果 1~10件目 / 約5,930,000,000件 google で検索した結果 1~10件目 / 約5,200,000,000件 msn で検索した結果 1~10件目 / 約1,320,000,000件 infoseek で検索した結果 1~10件目 / 約99,400,000件
yahoo の検索結果 約 2,300,000,000 件中 1 - 10 件目 google の検索結果 約 2,150,000,000 件中 1 - 10 件目 msn の検索結果 約 756,000,000 件中 1 - 10 件目 infoseek の検索結果 約 22,400,000 件中 1 - 10 件目
ググれ=ググってもヤフーの半分未満(笑)
. 1. HTML で検索した結果 1~10件目 / 約5,040,000,000件 . 2. PHP で検索した結果 1~10件目 / 約2,970,000,000件 . 3. Java...... で検索した結果 1~10件目 / 約 835,000,000件 . 4. Forth. で検索した結果 1~10件目 / 約 323,000,000件 . 5. Ruby.. で検索した結果 1~10件目 / 約 275,000,000件 ←w . 6. perl..... で検索した結果 1~10件目 / 約 245,000,000件 . 7. Python... で検索した結果 1~10件目 / 約 204,000,000件 . 8. pascal... で検索した結果 1~10件目 / 約 170,000,000件 . 9. Delphi で検索した結果 1~10件目 / 約 127,000,000件 10. VisualBasic...で検索した結果 1~10件目 / 約 121,000,000件 11. lisp... で検索した結果 1~10件目 / 約. 26,700,000件 12. fortran で検索した結果 1~10件目 / 約. 21,300,000件 13. COBOL で検索した結果 1~10件目 / 約. 18,500,000件 14. HSP で検索した結果 1~10件目 / 約. 12,300,000件 15. FreeBasic.. で検索した結果 1~10件目 / 約 6,320,000件 16. Tcl/Tk. で検索した結果 1~10件目 / 約 4,940,000件 17. QBasic で検索した結果 1~10件目 / 約 4,190,000件 18. VisualC.... で検索した結果 1~10件目 / 約 1,360,000件 19. DarkBASIC. で検索した結果 1~10件目 / 約 1,320,000件 20. BasicStudio で検索した結果 1~10件目 / 約 304,000件 21. N88basic. で検索した結果 1~10件目 / 約 215,000件 22. f-basic で検索した結果 1~10件目 / 約 109,000件 23. ActiveBasic で検索した結果 1~10件目 / 約. 89,800件 24. 99BASIC.... で検索した結果 1~10件目 / 約. 11,500件 3Dprogramming で検索した結果 1~10件目 / 約794,000件 2Dprogramming で検索した結果 1~10件目 / 約. 57,400件 intel で検索した結果 1~10件目 / 約729,000,000件 amd で検索した結果 1~10件目 / 約355,000,000件
マルチだし、スルー
スルーできないオマエがアホw
>>1 簡素かつ明解な美しさを持つPrologが一番。
関数型以外はクズ。
求む、DarkBASIC・3Dプログラマー。 学歴:高校生程度 必要な知識:三角関数の簡単な知識 求めるもの:広範な探究心
学歴が低い方がいいのか・・・orz
というかいまだにJavaなんかにしがみついてるちんこが無能 ここにいる連中は関数型言語くらい普通にやってるぞ でかい口叩くなら自分でちんこ言語でも作ってみれよ てか前コンパイラやってるとか言ってなかったっけ?
ちんこ言語って名前だけで使いたくなる不思議な響きだな
ちんこリスペクト
ちんこ++ ちんこ# ちんこ.net Objective-ちんこ 関数型ちんこ ちんこ入門 ちんこ in Action ふつうのちんこプログラミング Real World ちんこ Effective ちんこ
ちんこ入門ってw なんか女子中学生が通販でこそっと買ってそうだなwwww
はじめてのChinko
On Chinko やさしいちんこ アート・オブ・チンコ チンコクックブック ハッカーとチンコ Exceptional チンコ 入門チンコ TheチンコProgrammingLanguage チンコスタイルガイド BeautifulChinko チンコアーキテクチャ FilthyRichチンコ チンコの強化書 MoreJoelチンコ プログラミングチンコ チンコHACKS チンコ魂 マスタリングチンコ チンコインアクション 独習チンコ
>チンコスタイルガイド それ欲しいな
もちろん美しい文法なんだろうな?
993 :
デフォルトの名無しさん :2009/10/08(木) 04:26:27
すれの最後だから言わせて貰う 神オブジェクト 俺はお前みたいな奴をごまんと見てきた そして結局口だけで何も出来ないし、何も作らなくて消えていく奴らばかりだった でもお前は学歴というものを持ってるし、プライドもありそうだから逃げる事はしないけど 全然なにも作れてない 過去に多くのソフトウェアを作った実績の自信から、 ソースコードを書かずに、脳内で全て完結出来るレベルじゃないだろお前 もっとソース書きまくれよ お前のブログには部分的なソースしか乗せられてない それも全く意味のないゴミクラスばかりだ あんなものは普通コーディングしてる合間に思いついて5秒で書ける程度の代物だ 確かコンパイラやり始めて投げたよな? その時に見限ろうかと思った こいつはSchemeさえも実装できないのか・・・ ってね Schemeの実装は京大以下の大学でもやってることなのに、 お前がそれできなくてどうするんかと 学歴が意味を成さない事はわかったか?w つーかお前はOOが素晴らしいと思ってOOやってるんじゃなくてOOしか出来ないの間違いだ OO脳だよ ソンなので作れるわけがナイト思うったわ おまへは低級言語や、 アセンブラを触ろうとしないけど さっさとやったほうがいいよマジで つーか色々な言語とアルゴリズムやったほうがいい 才能ある奴だったら、最低限の知識の中で様々なパターンをつくれるんだけど それが出来てないから・・・ 才能がないこと認めて、知識力で全てをカバーしてかないと、平均をも下回るレベルだ 高学歴だったら知識覚えることくらいは人より才能あるんだろ?w
板違いにつき終了
996 :
デフォルトの名無しさん :2009/10/08(木) 04:53:52
ねーのかw
ないんです。 はいどーーーーもw イカすバンド天国!!
高テスの朝は早い 今日も頭の回転が早くてやばい 俺様最強ヒャッハー! セックスしてえw ソフトは駄目だもうやめる Scalaは神の言語だ
神の言語はLispだろJK
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。