最も美しいプログラミング言語を語れ
前スレ
http://pc12.2ch.net/test/read.cgi/tech/1262707694/
探検
最も美しいプログラミング言語は? Part6
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/03/23(火) 16:44:08259デフォルトの名無しさん
2011/07/05(火) 03:58:18.11260デフォルトの名無しさん
2011/07/05(火) 07:05:41.18 >>259
クロージャは、いろいろ問題あるからいらん。
クロージャは、いろいろ問題あるからいらん。
261デフォルトの名無しさん
2011/07/05(火) 10:10:17.07262デフォルトの名無しさん
2011/07/05(火) 11:04:05.05 実装上の問題。
気を付けないとわかりにくい。
ラムダ式でいい。
気を付けないとわかりにくい。
ラムダ式でいい。
263デフォルトの名無しさん
2011/07/05(火) 11:18:16.11 Pythonにもクロージャはあるだろ
まあlambdaの制限のことを言いたいのは分かるが
まあlambdaの制限のことを言いたいのは分かるが
264デフォルトの名無しさん
2011/07/05(火) 11:22:02.71 一応レキシカルだけど関数スコープで、2だと上位スコープの変数を素直に
書き換える手段が無いとか、その辺の話でもあるのかなと思った
3だと出来るけどnonlocal文って美しくは無いわな
書き換える手段が無いとか、その辺の話でもあるのかなと思った
3だと出来るけどnonlocal文って美しくは無いわな
265デフォルトの名無しさん
2011/07/05(火) 20:39:24.65 >>262
『具体的に』
『具体的に』
266デフォルトの名無しさん
2011/07/06(水) 12:23:37.30267デフォルトの名無しさん
2011/07/06(水) 20:14:58.09 >>266
実装は別に大変じゃないよ
そこら中の LL が持ってる機能だからね
スコープで混乱している人も見掛けないし
Python の lambda みたいに中途半端な物を有り難がる必要も無い
結局、具体例は無しか
ソースコードの一つでも出て来るかと期待したのが間違いだったかな
実装は別に大変じゃないよ
そこら中の LL が持ってる機能だからね
スコープで混乱している人も見掛けないし
Python の lambda みたいに中途半端な物を有り難がる必要も無い
結局、具体例は無しか
ソースコードの一つでも出て来るかと期待したのが間違いだったかな
268デフォルトの名無しさん
2011/07/06(水) 20:27:12.23 まあ Python の場合は、インデントしないとブロックが作れないという妙な制約の所為で、
クロージャの構文を考えるのが面倒くさかったのかもな
クロージャの構文を考えるのが面倒くさかったのかもな
269デフォルトの名無しさん
2011/07/06(水) 22:26:09.36 やっぱコレぐらいの機能を持ってないとダメだろ
・文脈構造が黒髪ツーサドアップ
・関数リストの定義がミニスカニーソ
・インターフェースが童顔
・Foundationは薄化粧
・研究所で開発されてた頃のあだ名が猫
・文脈構造が黒髪ツーサドアップ
・関数リストの定義がミニスカニーソ
・インターフェースが童顔
・Foundationは薄化粧
・研究所で開発されてた頃のあだ名が猫
270デフォルトの名無しさん
2011/07/06(水) 22:32:26.74 趣味が幼稚だよね。
ていうか汚らしい。
(倫理的に不潔という意味でなく文字通り細菌的に不衛生という意味)
ていうか汚らしい。
(倫理的に不潔という意味でなく文字通り細菌的に不衛生という意味)
271デフォルトの名無しさん
2011/07/07(木) 04:49:25.74 >>267
要らないといっているのに、ソースコードを張れって意味フ。Python では、書けないコードを出して。
クロージャーは、巨大になってくるとGloal変数と同じ問題あり。Pythonは、うまく対処している。
実装は面倒。克服しているだけの話。妙な制限があるのもその都合。
要らないといっているのに、ソースコードを張れって意味フ。Python では、書けないコードを出して。
クロージャーは、巨大になってくるとGloal変数と同じ問題あり。Pythonは、うまく対処している。
実装は面倒。克服しているだけの話。妙な制限があるのもその都合。
272デフォルトの名無しさん
2011/07/07(木) 09:18:55.25 >>271
>クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
>実装は面倒。
だからさ、もっと具体的に書こうぜ。
Global 変数と同じ『どんな』問題があると思うの?
実装が面倒だったら、世の中にあまたある Lisp の処理系はどんな超絶技巧を使っているというの?
きちんと理由を書かないと話にならないぜ。
>クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
>実装は面倒。
だからさ、もっと具体的に書こうぜ。
Global 変数と同じ『どんな』問題があると思うの?
実装が面倒だったら、世の中にあまたある Lisp の処理系はどんな超絶技巧を使っているというの?
きちんと理由を書かないと話にならないぜ。
273デフォルトの名無しさん
2011/07/07(木) 09:27:35.16 もちろん Lisp の所は Smalltalk と読み替えても良いし、JS でも良いし、他の LL でも良いよ。
クロージャなんて殆どどこにでもあるありふれた機能で、有って当たり前の物。
クロージャなんて殆どどこにでもあるありふれた機能で、有って当たり前の物。
274デフォルトの名無しさん
2011/07/07(木) 09:29:07.18 つーか、Pythonでも multi-statement lambda を実装しようと思えば出来た
Guidoが実装しないことを選んだだけ
http://www.artima.com/weblogs/viewpost.jsp?thread=147358
Guidoが実装しないことを選んだだけ
http://www.artima.com/weblogs/viewpost.jsp?thread=147358
275デフォルトの名無しさん
2011/07/07(木) 09:35:19.72 そのおかげで、残念な言語仕様になってしまったね
276デフォルトの名無しさん
2011/07/07(木) 09:37:20.77 Zen of Python とか言いながら、メソッド定義に毎回 self を書かせる素敵仕様な
言語になっちゃうんだもんなあw
言語になっちゃうんだもんなあw
277デフォルトの名無しさん
2011/07/07(木) 09:45:02.01 >>276
なぜ self を明示的に書くのか by Guido
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
なぜ self を明示的に書くのか by Guido
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
278デフォルトの名無しさん
2011/07/07(木) 10:25:29.64 >>277
構文解析で関数定義とメソッド定義の場合分けするのが面倒だったからだろ
構文解析で関数定義とメソッド定義の場合分けするのが面倒だったからだろ
279デフォルトの名無しさん
2011/07/07(木) 10:33:10.77 Python にクロージャが無いのはオフサイドルールの犠牲になったんだと思うわ。
クロージャはデータだから、引数の位置や代入分の右辺の位置でも定義可能にしないと
いけない訳だけど、Python ではそれらの位置にブロックを書かせる(=インデントを
書かせる)のは都合が悪い。関数の 3 番目の引数からインデントが始まるコードなんて
誰も読みたくないからね。
インデントが強制されない、他の言語では何の問題も無い話だけどね。
クロージャはデータだから、引数の位置や代入分の右辺の位置でも定義可能にしないと
いけない訳だけど、Python ではそれらの位置にブロックを書かせる(=インデントを
書かせる)のは都合が悪い。関数の 3 番目の引数からインデントが始まるコードなんて
誰も読みたくないからね。
インデントが強制されない、他の言語では何の問題も無い話だけどね。
280デフォルトの名無しさん
2011/07/07(木) 10:58:47.18 クロージャに(lambdaに)文が書けないのは、だろうけど、
別にそこだけHaskellの { ; } みたいな構文を導入してもいいわけだし、
説得力ないと思うなぁ。
別にそこだけHaskellの { ; } みたいな構文を導入してもいいわけだし、
説得力ないと思うなぁ。
281デフォルトの名無しさん
2011/07/07(木) 11:36:45.19282デフォルトの名無しさん
2011/07/07(木) 11:50:22.11 >>277
和訳 : なぜPythonのメソッド引数に明示的にselfと書くのか
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay
和訳 : なぜPythonのメソッド引数に明示的にselfと書くのか
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay
283デフォルトの名無しさん
2011/07/07(木) 11:56:01.88 まあ、俺もPythonが美しいとは思わないし、selfはともかく
multi-statement lambda は在った方が良いと思うけどさ
そうなってる理由が実装が面倒とかいう理由では無いと言いたい
multi-statement lambda は在った方が良いと思うけどさ
そうなってる理由が実装が面倒とかいう理由では無いと言いたい
284デフォルトの名無しさん
2011/07/07(木) 21:28:21.12 >>281
でも、lambda についての議論の結果がこれでしょ
http://mail.python.org/pipermail/python-dev/2006-February/060654.html
括弧でブロックを表す事が受け入れられるなら、
最初からオフサイドルールの強制なんてしない訳で、
非現実的な提案なんじゃないかな?
Python 的に受け入れ可能な文法でクロージャを
組み入れるのは、無理な話だと思うよ
>>280
『そこだけ変えれば良い』というのが受け入れられる
文化じゃないでしょ
でも、lambda についての議論の結果がこれでしょ
http://mail.python.org/pipermail/python-dev/2006-February/060654.html
括弧でブロックを表す事が受け入れられるなら、
最初からオフサイドルールの強制なんてしない訳で、
非現実的な提案なんじゃないかな?
Python 的に受け入れ可能な文法でクロージャを
組み入れるのは、無理な話だと思うよ
>>280
『そこだけ変えれば良い』というのが受け入れられる
文化じゃないでしょ
285デフォルトの名無しさん
2011/07/07(木) 22:12:51.14286デフォルトの名無しさん
2011/07/08(金) 01:27:40.15 >>251
何を言っているんだろう?
Lazy Kの一貫性は完璧であり、その意味ではもっとも美しい言語だろう。
Lazy K以上に簡明で一貫した意味論、構文を持つ言語を考えるのは難しい。
それが分からないようじゃ、「関数型言語はそもそも一貫性?が無い」とは、何も分かっていないんだろうなとしか思えん。
> クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
たぶん、LISPなどの非純粋型言語のクロージャを考えているんだろう。
たしかに、そういった言語のクロージャは、グローバル変数と同じというかCのスタティック変数と同じように、ライブラリ使用者から隠された変数によって関数の挙動が変わる、という問題がある。
しかし、じゃぁ、いかなる意味でもグローバルな識別子が存在しないか、あるいはグローバルな識別子を使用したどの関数呼び出しも、決して隠されたパラメータによって関数の挙動が変わることがない、ということが保障された言語なんでどれほどある?
(オレが思いつきかぎりでは、Lazy Kしか存在しない。)
クロージャよりも、クラスメソッドやクラス変数のほうが理解しやすい、混乱しにくいというのならそういう頭の人もいるだろうから、個人の好みの問題といしては否定はしない。
でも、それは好みの問題に過ぎない。
何を言っているんだろう?
Lazy Kの一貫性は完璧であり、その意味ではもっとも美しい言語だろう。
Lazy K以上に簡明で一貫した意味論、構文を持つ言語を考えるのは難しい。
それが分からないようじゃ、「関数型言語はそもそも一貫性?が無い」とは、何も分かっていないんだろうなとしか思えん。
> クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
たぶん、LISPなどの非純粋型言語のクロージャを考えているんだろう。
たしかに、そういった言語のクロージャは、グローバル変数と同じというかCのスタティック変数と同じように、ライブラリ使用者から隠された変数によって関数の挙動が変わる、という問題がある。
しかし、じゃぁ、いかなる意味でもグローバルな識別子が存在しないか、あるいはグローバルな識別子を使用したどの関数呼び出しも、決して隠されたパラメータによって関数の挙動が変わることがない、ということが保障された言語なんでどれほどある?
(オレが思いつきかぎりでは、Lazy Kしか存在しない。)
クロージャよりも、クラスメソッドやクラス変数のほうが理解しやすい、混乱しにくいというのならそういう頭の人もいるだろうから、個人の好みの問題といしては否定はしない。
でも、それは好みの問題に過ぎない。
287デフォルトの名無しさん
2011/07/08(金) 01:53:34.89 JavaScript はかなり美しいな
全てはオブジェクトだよ
全てはハッシュだよ
Smalltalk もかなり美しいな
全てはオブジェクトだよ
全てはメッセージだよ
Lisp もかなり美しい
全てはリストだよ
全てはラムダだよ
もちろん例外もあるので、異論は好きなだけどうぞ
全てはオブジェクトだよ
全てはハッシュだよ
Smalltalk もかなり美しいな
全てはオブジェクトだよ
全てはメッセージだよ
Lisp もかなり美しい
全てはリストだよ
全てはラムダだよ
もちろん例外もあるので、異論は好きなだけどうぞ
288デフォルトの名無しさん
2011/07/08(金) 01:53:37.92 ブログでやれ
そして、自分で言語(の仕様)を作れといいたい
そして、自分で言語(の仕様)を作れといいたい
289デフォルトの名無しさん
2011/07/08(金) 02:10:48.84 美しいかどうかは置いといて、BASICからプログラミングへ入れたのは良い時代だったな
290デフォルトの名無しさん
2011/07/08(金) 04:30:17.92291デフォルトの名無しさん
2011/07/08(金) 04:54:16.62 >>289
BASICから入ると一生プログラマになれない、と言われてた時代が懐かしいな。
BASICから入ると一生プログラマになれない、と言われてた時代が懐かしいな。
292デフォルトの名無しさん
2011/07/08(金) 08:11:15.56293デフォルトの名無しさん
2011/07/08(金) 08:20:27.82 どう見ても判別できると思えませんが
ご苦労な脳味噌はおまえだろw
ご苦労な脳味噌はおまえだろw
294デフォルトの名無しさん
2011/07/08(金) 09:33:19.56 JavaScriptはvar宣言はあるけど関数スコープだったり
for〜inループやthisの扱いがちょっと好きじゃないな
同じ系統だとJavaScriptよりはLuaのほうがまだすっきりしてるように見える
for〜inループやthisの扱いがちょっと好きじゃないな
同じ系統だとJavaScriptよりはLuaのほうがまだすっきりしてるように見える
295デフォルトの名無しさん
2011/07/08(金) 17:11:34.93 >>294
JavaScriptのthisは動的スコープだからな。
動的スコープありやなしや、結構むずかしい問題。
オレは静的スコープ脳だけど、Lispとかで動的スコープを使ったトリックをみると、なるほどなーと思う。
JavaScriptのthisは動的スコープだからな。
動的スコープありやなしや、結構むずかしい問題。
オレは静的スコープ脳だけど、Lispとかで動的スコープを使ったトリックをみると、なるほどなーと思う。
296デフォルトの名無しさん
2011/07/08(金) 18:20:34.10 毎回 var self = this; を書くのはあんまり美しくはないよね
クラスにあたる存在とメソッドにあたる存在の区別が付かないのに
その1行で何とかなっちゃうように出来てるのは凄いんだけど
クラスにあたる存在とメソッドにあたる存在の区別が付かないのに
その1行で何とかなっちゃうように出来てるのは凄いんだけど
297デフォルトの名無しさん
2011/07/08(金) 19:10:43.94298デフォルトの名無しさん
2011/07/08(金) 19:16:50.69299デフォルトの名無しさん
2011/07/08(金) 19:53:27.69 >>298
個人的な好みの問題といわれるとそれまでだけど
ブロックスコープの代用として
(function(){})()
みたいなのが多用されるのを見ると、ちょっとな……
まあ他にもletとかwithとか色々あるみたいだが、
それなら最初からブロックスコープのほうがナンボかいいと俺は思う
個人的な好みの問題といわれるとそれまでだけど
ブロックスコープの代用として
(function(){})()
みたいなのが多用されるのを見ると、ちょっとな……
まあ他にもletとかwithとか色々あるみたいだが、
それなら最初からブロックスコープのほうがナンボかいいと俺は思う
300デフォルトの名無しさん
2011/07/08(金) 20:02:37.23 >>299
JavaScript は Scheme と同じで、削ぎ落とした所が良いんだと思う
object で scope が代用できるなら object だけでいいし、
本質的には block scope は単なる syntax sugar でしょ
JavaScript は Scheme と同じで、削ぎ落とした所が良いんだと思う
object で scope が代用できるなら object だけでいいし、
本質的には block scope は単なる syntax sugar でしょ
301デフォルトの名無しさん
2011/07/08(金) 20:07:39.36 >>300
letがただのlambdaのsyntax sugarだとしても
Lisp族はマクロでletを作れるので、実用上の視点からは
Schemeとは一緒にできないような気がする
…んだけど、スレタイからするとあまり関係の無い視点のような気はしてきた
確かに言語の美しさとは関係が無いのかもしれない
letがただのlambdaのsyntax sugarだとしても
Lisp族はマクロでletを作れるので、実用上の視点からは
Schemeとは一緒にできないような気がする
…んだけど、スレタイからするとあまり関係の無い視点のような気はしてきた
確かに言語の美しさとは関係が無いのかもしれない
302デフォルトの名無しさん
2011/07/08(金) 20:16:12.17 >>301
そこは、JS にはマクロの様な構文を拡張する機能が無い、
だから let を(新たに)用意したって事なんじゃないかな
元々 block scope にしておけば良かったかというと、
それでは JavaScript らしくないんじゃないかなと思う
そこは、JS にはマクロの様な構文を拡張する機能が無い、
だから let を(新たに)用意したって事なんじゃないかな
元々 block scope にしておけば良かったかというと、
それでは JavaScript らしくないんじゃないかなと思う
303デフォルトの名無しさん
2011/07/08(金) 20:22:04.65 > 元々 block scope にしておけば良かったかというと、
> それでは JavaScript らしくないんじゃないかなと思う
これはとくにそうは思わない、かなあ
わりとJSに似たところの多いLuaはブロックスコープだし
> それでは JavaScript らしくないんじゃないかなと思う
これはとくにそうは思わない、かなあ
わりとJSに似たところの多いLuaはブロックスコープだし
304デフォルトの名無しさん
2011/07/08(金) 20:28:31.01 だからそれは Lua なんでしょ
305デフォルトの名無しさん
2011/07/08(金) 20:32:28.63 要は、「ブロックスコープでJSらしさが欠損する」理由が俺には見えないってことね
letを後から入れるぐらいなら、simplicityも絶対の理由ではない気がするし
letを後から入れるぐらいなら、simplicityも絶対の理由ではない気がするし
306デフォルトの名無しさん
2011/07/08(金) 20:34:05.12 うまくいえないけど
letにはPythonのnonlocalのような後付感、蛇足感がつきまとうっていうか……
letにはPythonのnonlocalのような後付感、蛇足感がつきまとうっていうか……
307デフォルトの名無しさん
2011/07/08(金) 20:39:51.02 >>305
元々、オブジェクトを唯一の道具立てとして言語を組み立てたのが JS で、
スコープというか環境フレームもオブジェクトで実装するのが自然だよね
というのが俺の理解
let は元々プラン外だったんだから蛇足に見えて当たり前
元々、オブジェクトを唯一の道具立てとして言語を組み立てたのが JS で、
スコープというか環境フレームもオブジェクトで実装するのが自然だよね
というのが俺の理解
let は元々プラン外だったんだから蛇足に見えて当たり前
308デフォルトの名無しさん
2011/07/10(日) 04:44:23.75 MIPS が美しいって言うよね
いつか試してみたいなあ
いつか試してみたいなあ
309デフォルトの名無しさん
2011/07/10(日) 06:54:00.80310デフォルトの名無しさん
2011/07/10(日) 13:57:23.65 >>309
haskellより、やることが制限されて簡潔で
lispのようにS式まみれにならず、
容易にバックトラックやエキスパートシステムを実現できる
優れた言語じゃないか
演習でしか使ったことないけど
haskellより、やることが制限されて簡潔で
lispのようにS式まみれにならず、
容易にバックトラックやエキスパートシステムを実現できる
優れた言語じゃないか
演習でしか使ったことないけど
311デフォルトの名無しさん
2011/07/16(土) 22:35:02.38 美しくない言語は幾らでも挙げられるけど、美しい言語となると難しいな
312デフォルトの名無しさん
2011/07/16(土) 23:15:52.99 prologはプログラミングしてるってより、データベース作ってる気分になる。。。
haskellベースに論理型言語を足したcurry
もしくは、prologベースに関数型言語を足したmars辺りは美しいんかね?
haskellベースに論理型言語を足したcurry
もしくは、prologベースに関数型言語を足したmars辺りは美しいんかね?
313デフォルトの名無しさん
2011/07/24(日) 03:40:58.69 関数スコープなのって、実装が簡単だからでしょ。
関数スコープで十分だとかって言うのは、酸っぱいブドウ。
ブロックスコープに越したことはない。
関数スコープで十分だとかって言うのは、酸っぱいブドウ。
ブロックスコープに越したことはない。
314デフォルトの名無しさん
2011/07/24(日) 03:42:37.65 Lisp を勉強すれば分かる
315デフォルトの名無しさん
2011/10/12(水) 01:49:49.75 手続き型はobjective-cが綺麗
cはオブジェクト指向が使えん。汎用的なコレクションライブラリがない
c++は山ほどのドキュメントを読まないと怖くてSTLすら使えない。cとの中途半端な互換性
javaは命名規則が長い。オペレータをオーバーロードできない。プロパティがない。GUIが発展しない
c#はネストが深い。ヘッダが読めん。ポインタ使い辛い
cはオブジェクト指向が使えん。汎用的なコレクションライブラリがない
c++は山ほどのドキュメントを読まないと怖くてSTLすら使えない。cとの中途半端な互換性
javaは命名規則が長い。オペレータをオーバーロードできない。プロパティがない。GUIが発展しない
c#はネストが深い。ヘッダが読めん。ポインタ使い辛い
316デフォルトの名無しさん
2011/10/15(土) 07:03:48.59 Objective-Cは、必要な機能がない。
317デフォルトの名無しさん
2011/11/06(日) 22:05:48.37 >>315
GObjectつかえばCでも現代的なOOはできるぞ。
GObjectつかえばCでも現代的なOOはできるぞ。
318デフォルトの名無しさん
2011/11/06(日) 22:08:51.60 >>299
ブロックスコープ使うならwithが綺麗。
with({ a: 1, b: 0})
{
b = a++; //withで宣言したラベルを使う
}
//ここでaとb消滅
ブロックスコープ使うならwithが綺麗。
with({ a: 1, b: 0})
{
b = a++; //withで宣言したラベルを使う
}
//ここでaとb消滅
319318
2011/11/06(日) 22:12:15.02 早とちりした。ごめん。なんでもない。
320uy
2012/01/26(木) 12:02:06.30 >>315
C++べつに使えるよ
自分が覚えにくい&挙動が不審な部分は絶対に触らないようにしていけばいいだけ
複数人で組む場合は知らない。そもそもそれはC++に想定された使い方ではないと思う
あとobjective-cはゴミ
あんなゴミは見たことない
そういや神オブジェクトって奴いたなぁと思ってみにきたが
死んだのか?
大言はいてたわりにはあっさりと消えたな
見た目が綺麗なのはPythonかLispだろうな
ただ俺はRubyのソースコードのほうが自分の中で思考がまとめやすいってだけかな
キチガイに刃物ってこういうことだと思う
rubyはuyに持たせてはいけない刃物だったんじゃないかと最近思う
俺がかくrubyコードとネットにあがるrubyコードって質がまず違うよね、何故俺にはここまでrubyが使えるのだろう
Matzには本当に感謝をしている、rubyがなければ自分が何年間もかけて言語を作らなければならなくなった
俺が何年間もかけて言語を作っていたはずの、その時間で俺は別のことをやれる
とてもこれは感謝以外に何ものでもないよ
C++べつに使えるよ
自分が覚えにくい&挙動が不審な部分は絶対に触らないようにしていけばいいだけ
複数人で組む場合は知らない。そもそもそれはC++に想定された使い方ではないと思う
あとobjective-cはゴミ
あんなゴミは見たことない
そういや神オブジェクトって奴いたなぁと思ってみにきたが
死んだのか?
大言はいてたわりにはあっさりと消えたな
見た目が綺麗なのはPythonかLispだろうな
ただ俺はRubyのソースコードのほうが自分の中で思考がまとめやすいってだけかな
キチガイに刃物ってこういうことだと思う
rubyはuyに持たせてはいけない刃物だったんじゃないかと最近思う
俺がかくrubyコードとネットにあがるrubyコードって質がまず違うよね、何故俺にはここまでrubyが使えるのだろう
Matzには本当に感謝をしている、rubyがなければ自分が何年間もかけて言語を作らなければならなくなった
俺が何年間もかけて言語を作っていたはずの、その時間で俺は別のことをやれる
とてもこれは感謝以外に何ものでもないよ
321デフォルトの名無しさん
2012/01/26(木) 15:34:56.56 別なことって2chの書き込みかよ
322デフォルトの名無しさん
2012/01/26(木) 20:24:41.85 ttp://twitter.com/akiradeveloper
奴ならここに
奴ならここに
323uy
2012/01/26(木) 20:43:06.69 >>322
礼をいうべきか否か
リンクたどっていったら冗談きついくらいのヒゲ画像と本名が出てきて
さらにググったら京都大学スレでも晒されてるし涙でてきた
とりあえず、なんか技術者としては平凡以下に収まってしまったようだな
Rubyプログラミング関数型プログラミングって3年前も同じことを言ってるの見たわ
この3年間何やってた。。
少しは期待していたのに化ける事がなかった残念
やっぱりJAVAなんて使っているから・・・
礼をいうべきか否か
リンクたどっていったら冗談きついくらいのヒゲ画像と本名が出てきて
さらにググったら京都大学スレでも晒されてるし涙でてきた
とりあえず、なんか技術者としては平凡以下に収まってしまったようだな
Rubyプログラミング関数型プログラミングって3年前も同じことを言ってるの見たわ
この3年間何やってた。。
少しは期待していたのに化ける事がなかった残念
やっぱりJAVAなんて使っているから・・・
324uy
2012/01/26(木) 20:50:30.90325uy
2012/01/26(木) 21:02:57.09 神オブジェクトはでもRubyに興味持ち始めたんだったら、
まだ救う価値はある
どうせあの手のタイプはPython側に行くのはなんとなくわかるけどね
小手先の技術が必要になるようなCやperl等での
手続き型プログラミングのロジックや小さく圧縮されたショートコーディングのようなものは絶対かけないから
rubyはきっと向いていないだろう
自分でrubyはかけても他人のrubyコードが読めないとか前言ってたのは、おそらくそれのせい。
俺にとってはどんなrubyコードでも読みやすいけど
奴はPythonに収まるだろうな
まだ救う価値はある
どうせあの手のタイプはPython側に行くのはなんとなくわかるけどね
小手先の技術が必要になるようなCやperl等での
手続き型プログラミングのロジックや小さく圧縮されたショートコーディングのようなものは絶対かけないから
rubyはきっと向いていないだろう
自分でrubyはかけても他人のrubyコードが読めないとか前言ってたのは、おそらくそれのせい。
俺にとってはどんなrubyコードでも読みやすいけど
奴はPythonに収まるだろうな
326デフォルトの名無しさん
2012/01/26(木) 23:32:25.15 【うゆ】uyスレ6【クソコテホイホイ】
http://kohada.2ch.net/test/read.cgi/prog/1316933376/
http://kohada.2ch.net/test/read.cgi/prog/1316933376/
327デフォルトの名無しさん
2012/01/27(金) 00:08:58.25328uy
2012/01/27(金) 08:27:34.60 ああ、大学楽しそうでいいな
329デフォルトの名無しさん
2012/08/06(月) 20:52:03.54 学校でSchemeを勉強して以来Schemeが好きになった。
括弧の多さなんて気にならない。
見た目はそんなに美しいってわけでもないけど、
非常に書きよい、心地よい。
括弧の多さなんて気にならない。
見た目はそんなに美しいってわけでもないけど、
非常に書きよい、心地よい。
330uy
2012/08/08(水) 10:49:00.43 汚いのは英数字と記号だからね
文字のすべてが
・ ― | ■ あたりで構成されていれば綺麗だよ
文字のすべてが
・ ― | ■ あたりで構成されていれば綺麗だよ
331デフォルトの名無しさん
2012/08/10(金) 10:51:51.00 ここまでpiet無し
332デフォルトの名無しさん
2012/09/15(土) 17:05:12.35 ランク付けは要らないが、各言語の「考え方」と「記法」を区別してスマートさの得失整理するのは有意義。
333uy
2012/09/15(土) 20:53:59.98 パールパイソンルビーには特色があって
開発者のやりたかったことも伝わってくるけど
PHPやJSにはそれがないんだ
主張のようなものを何も感じない
ただのなんのへんてつもない言語A、言語Bって感じ
あとC#にも主張がなにもないな
C++にはかなりある
javaには少しある
俺様にとってプログラミングは道具ではなく一般的じゃない変な方法を探し出しその上で効率よく目的を達成するゲームだから
言語に癖がないとさ
プレイする価値のないクソゲなんだよ
開発者のやりたかったことも伝わってくるけど
PHPやJSにはそれがないんだ
主張のようなものを何も感じない
ただのなんのへんてつもない言語A、言語Bって感じ
あとC#にも主張がなにもないな
C++にはかなりある
javaには少しある
俺様にとってプログラミングは道具ではなく一般的じゃない変な方法を探し出しその上で効率よく目的を達成するゲームだから
言語に癖がないとさ
プレイする価値のないクソゲなんだよ
334デフォルトの名無しさん
2012/09/15(土) 21:00:26.81 やはりPrologが美しい
335uy
2012/09/16(日) 00:28:01.37 誰も聞いてない
336デフォルトの名無しさん
2012/09/16(日) 05:32:18.88 Prologは極めて美しくもなるし、醜悪に書くこともできる。
自在性のプログラム言語。
自在性のプログラム言語。
337デフォルトの名無しさん
2012/09/16(日) 14:54:40.27 >>333 まぁ、分類としては概ね同意するよ。
perl/php/JS あたりは、そもそもが綺麗なプログラミング言語を作ろう、というのが主目的で作られたものじゃないから。JS はそれでもよくできているが。
perl/php/JS あたりは、そもそもが綺麗なプログラミング言語を作ろう、というのが主目的で作られたものじゃないから。JS はそれでもよくできているが。
338デフォルトの名無しさん
2012/09/16(日) 15:03:41.95 c#は、javaとc++の失敗から学んで生まれた実践から出来た言語だよ。
jsとrubyも同じようなもの
perlとPHPがユーザーのニーズから後付で膨れて失敗したか、失敗しそうな言語
c++は、どっちかっていうとアカデミックな立ち位置から生まれ、
速度といった十字架を背負った唯一無二のソフトウェアを書くための言語
jsとrubyも同じようなもの
perlとPHPがユーザーのニーズから後付で膨れて失敗したか、失敗しそうな言語
c++は、どっちかっていうとアカデミックな立ち位置から生まれ、
速度といった十字架を背負った唯一無二のソフトウェアを書くための言語
339デフォルトの名無しさん
2012/09/16(日) 18:35:52.49 >>333
このスレで美しさの欠片もない言語をいくら並べてみても仕方ないだろう
このスレで美しさの欠片もない言語をいくら並べてみても仕方ないだろう
340デフォルトの名無しさん
2012/09/16(日) 21:11:00.14 美しいというのは基準が酷く漠然としているが
長いプログラマー経験から思う、一般的に美しい
プログラムと言われやすい書き方の特徴を挙げてみよう。
1.変数名、関数名が極端に長くならず、かつほぼ一定の長さで揃えられている
おおむね8-10文字である事が多い。
2.変数名や関数名に大文字が使われることはなく、連続した単語の
結合にはアンダーバーが使われる。
3.大部分の関数の定義は50行以下で、main関数のような中心的な
処理のみ100行を少し超えるくらいである
4.間延びした印象になる空白行は避けられ、if分の開始ブレースは
ifキーワードと同じ行に書かれる
例:
if(user_id < 10){
以下の書き方は避けられる
if(user_id < 10)
{
5.カラム数が80桁を超えることは無い
6.インデントが揃っているのは当然であるか、字下げが3段以上深くなるようなことは無い。
それを誇示するようにエディターのTABを8文字に設定する古参プログラマーも多い
7. 関数のヘッダー部分のコメントは一貫した書式で清書され
SCCSで装飾されていることで格調が高くなる。
はっきり言えば、上記は古い環境の制限から仕方なくおこなわれてきた物が多く
現代の環境では全く推奨されるべき物では無い。しかし、経験の積んだエンジニアは
古い慣習を引きずっていることが多いし、それをお手本として学ぶ事になる場合が多い
長いプログラマー経験から思う、一般的に美しい
プログラムと言われやすい書き方の特徴を挙げてみよう。
1.変数名、関数名が極端に長くならず、かつほぼ一定の長さで揃えられている
おおむね8-10文字である事が多い。
2.変数名や関数名に大文字が使われることはなく、連続した単語の
結合にはアンダーバーが使われる。
3.大部分の関数の定義は50行以下で、main関数のような中心的な
処理のみ100行を少し超えるくらいである
4.間延びした印象になる空白行は避けられ、if分の開始ブレースは
ifキーワードと同じ行に書かれる
例:
if(user_id < 10){
以下の書き方は避けられる
if(user_id < 10)
{
5.カラム数が80桁を超えることは無い
6.インデントが揃っているのは当然であるか、字下げが3段以上深くなるようなことは無い。
それを誇示するようにエディターのTABを8文字に設定する古参プログラマーも多い
7. 関数のヘッダー部分のコメントは一貫した書式で清書され
SCCSで装飾されていることで格調が高くなる。
はっきり言えば、上記は古い環境の制限から仕方なくおこなわれてきた物が多く
現代の環境では全く推奨されるべき物では無い。しかし、経験の積んだエンジニアは
古い慣習を引きずっていることが多いし、それをお手本として学ぶ事になる場合が多い
341デフォルトの名無しさん
2012/09/16(日) 22:08:19.31 まぁ、80桁超えないように書くのは今のモニタだとむしろ読みにくいかもしれんね。
342デフォルトの名無しさん
2012/09/19(水) 10:36:46.74 オブジェクト指向言語は一体にゴツくて美しいとはいえない。
しかし、主流ではあるし、このクラスは独自に美しさを競うべきではないか。
しかし、主流ではあるし、このクラスは独自に美しさを競うべきではないか。
343uy
2012/09/20(木) 04:57:08.53 lispは勝ち抜けとして考えると次点はpython
閉じ括弧はソースリーディング時にはいらないんだよ
でもコーディング時には必要
閉じ括弧はソースリーディング時にはいらないんだよ
でもコーディング時には必要
344デフォルトの名無しさん
2012/09/20(木) 08:30:18.57 Haskellは数式だし、Prologは論理式。
姿は美しいが、実は、先にモデルがあって、記号を入れ替えただけ。
独創性は感じられない。
姿は美しいが、実は、先にモデルがあって、記号を入れ替えただけ。
独創性は感じられない。
345デフォルトの名無しさん
2012/09/20(木) 09:03:24.45 Scheme Prolog SmallTalk それに手続き型から Python でいいんじゃないか
346デフォルトの名無しさん
2012/09/20(木) 11:40:52.90 美しいという定義が何なのかによる。
可読性なのか、コード量が少なさなのか、それは人それぞれだ。
C#は読みやすくて好きだけど、
WPFで使うラムダ演算子とか見ると、読みにくくてきたねーと思う。
PHPは標準関数の名前がグダグタで汚いと思うけど
シンプルに書けるところは綺麗だと思う。
C言語は好きなんだけど、標準じゃ文字列とか解放とか面倒で、色々ライブラリ入れるんだけど、
入れたライブラリを作った人のセンスがマチマチで、何というか関数名の統一の無さが気に入らない。
可読性なのか、コード量が少なさなのか、それは人それぞれだ。
C#は読みやすくて好きだけど、
WPFで使うラムダ演算子とか見ると、読みにくくてきたねーと思う。
PHPは標準関数の名前がグダグタで汚いと思うけど
シンプルに書けるところは綺麗だと思う。
C言語は好きなんだけど、標準じゃ文字列とか解放とか面倒で、色々ライブラリ入れるんだけど、
入れたライブラリを作った人のセンスがマチマチで、何というか関数名の統一の無さが気に入らない。
347デフォルトの名無しさん
2012/09/20(木) 12:22:31.45 学術的な部分で強い言語と実用的な言語も分けた方がいいね
348デフォルトの名無しさん
2012/09/20(木) 12:28:14.46349デフォルトの名無しさん
2012/09/20(木) 12:35:12.68350デフォルトの名無しさん
2012/09/20(木) 12:37:09.01 >>349
書き方による
書き方による
351デフォルトの名無しさん
2012/09/21(金) 23:05:15.92 assert,retractでグローバル変数定義なんて糞だと思った
1年ぐらい演習と講義でオタクな準教授から教わったけれども、
現実世界のどこで使われてるのかがわからないし、使いこなすには1年の講義なんて時間は短すぎた。
はっきりいっておく。古典AIなら動的言語で実装した方がマシである。
1年ぐらい演習と講義でオタクな準教授から教わったけれども、
現実世界のどこで使われてるのかがわからないし、使いこなすには1年の講義なんて時間は短すぎた。
はっきりいっておく。古典AIなら動的言語で実装した方がマシである。
352uy
2012/09/22(土) 00:24:10.61 そんなの調べりゃ5分でわかること
AIに関わらずそれ何も出来ないよ
AIに関わらずそれ何も出来ないよ
353デフォルトの名無しさん
2012/09/22(土) 03:33:04.97 assert,retractはグローバル変数ではなく、述語定義(デーベース定義)だし、
Prologは動的言語だ。それにPrologは4時間で使えるようになるよ。
Prologは動的言語だ。それにPrologは4時間で使えるようになるよ。
354デフォルトの名無しさん
2012/09/22(土) 03:48:02.70355デフォルトの名無しさん
2012/09/22(土) 05:57:22.47 APL
356デフォルトの名無しさん
2012/09/22(土) 07:05:17.23357デフォルトの名無しさん
2012/09/22(土) 07:17:11.75358デフォルトの名無しさん
2012/09/22(土) 07:18:41.32■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 【東京】「家族で話題にして」 “世田谷一家殺害から25年 警視庁が呼びかけ [煮卵★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
