最も美しいプログラミング言語は? Part6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2010/03/23(火) 16:44:08前スレ
http://pc12.2ch.net/test/read.cgi/tech/1262707694/
0002デフォルトの名無しさん
2010/03/23(火) 16:49:01↓天才チンパンジーのアイちゃん
0003デフォルトの名無しさん
2010/03/23(火) 16:59:26特に Python は危機的です、もっと頑張りましょう!
0004デフォルトの名無しさん
2010/03/23(火) 17:13:570005デフォルトの名無しさん
2010/03/23(火) 17:22:150006デフォルトの名無しさん
2010/03/23(火) 17:37:330007デフォルトの名無しさん
2010/03/23(火) 20:29:25排他的なC#は論外です
0008デフォルトの名無しさん
2010/03/23(火) 21:10:23Lisp-2は#'だのfuncallだのが関数型言語として見ると鬱陶しくキモい
C#が排他的だとして、それが言語の美しさと何の関係があるのかもさっぱり分からん
0009デフォルトの名無しさん
2010/03/23(火) 21:38:10批判だけして、自分の意見を言わずに逃げるのは卑怯だろ。
0010デフォルトの名無しさん
2010/03/23(火) 21:50:490011デフォルトの名無しさん
2010/03/23(火) 21:54:010012デフォルトの名無しさん
2010/03/23(火) 22:15:37,/ ノ ヽ ~\
/ ノ IPA ヽ ~\
/ ノ ヽ、 `ヽ
| ノ / ̄\ / ̄~ヽ ヽ i
| ノ | ノ
\ | <●> <●> ( )
\ | | | i /
| / ヽ レ
i (●_●) /
i、 ,-――-、 ・ /
i、 <(EEEEE)> ∵/ IPA Ruby最高、他は糞。
i、 \ ./ /
\ ーー ,ノ
,,.....イ.ヽヽ、ー-―一ノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
0013デフォルトの名無しさん
2010/03/23(火) 22:18:40お引取りください
0014デフォルトの名無しさん
2010/03/23(火) 22:41:350015デフォルトの名無しさん
2010/03/23(火) 22:46:26慣れを排除した上で
「書いたコードが読みやすい」
「他人が見ても内容が理解しやすい」
という言語は、結局どれなんだろう?
0016デフォルトの名無しさん
2010/03/23(火) 23:17:170017デフォルトの名無しさん
2010/03/24(水) 01:51:380018デフォルトの名無しさん
2010/03/24(水) 09:43:03「perlならこんな長文がこんなに短くかけますよ」的な記述をみて
理解できなくてやめた奴いると思うんだけど
おれがそうだった
今なら分かるかもしれんがプログラム覚えたてのときに見るのはつらい。
可読性って意味では最悪だとおもう
0019デフォルトの名無しさん
2010/03/24(水) 10:24:340020デフォルトの名無しさん
2010/03/24(水) 11:03:480021デフォルトの名無しさん
2010/03/24(水) 11:13:06たぶん、ネイティブには、プログラムの記述に英単語を使うというのは、直観的ではないんだろう。
日本語BASICは、何が悪いというわけでもないのに、キモかった。
0022デフォルトの名無しさん
2010/03/24(水) 11:42:250023デフォルトの名無しさん
2010/03/24(水) 12:35:280024デフォルトの名無しさん
2010/03/24(水) 14:28:220025デフォルトの名無しさん
2010/03/24(水) 14:34:51俺はスレタイとは全然別の質問だと思ってるけど
0026デフォルトの名無しさん
2010/03/24(水) 15:49:34同等ではなく、
「読みやすい」は「美しい」を満たす条件の一つ
だと思うよ。
0027デフォルトの名無しさん
2010/03/25(木) 11:21:54だから、読みやすいプログラムを書けるような文法を備えた言語は
美しい機能を持っていると言えるのではないかと思う。
0028デフォルトの名無しさん
2010/03/25(木) 12:22:33文法が機能だとしたらどうして
「読みやすい」が「美しい」になるの?
まったく意味不明。
0029デフォルトの名無しさん
2010/03/25(木) 12:43:09前スレで出てたがCOBOLは誰が書いても同じようなコードになり
英文に近いという意味で「読みやすい」と言える
が、プログラミング言語として「美しい」というのとは違うと思う
0030デフォルトの名無しさん
2010/03/25(木) 13:28:440031デフォルトの名無しさん
2010/03/25(木) 14:04:060032デフォルトの名無しさん
2010/03/25(木) 14:15:410033デフォルトの名無しさん
2010/03/25(木) 14:35:010034デフォルトの名無しさん
2010/03/25(木) 16:50:52どう頑張っても無理なのはたとえばBASICとか
0035デフォルトの名無しさん
2010/03/25(木) 17:43:55ruby か perl が美しそうって言うだろう。
おっさんだったら俺はCだなとか言いそう。あ、これは関係ないか。
0036デフォルトの名無しさん
2010/03/25(木) 18:47:030037デフォルトの名無しさん
2010/03/25(木) 18:53:36そうそう。大昔だけど、
BASICのコードは、Cを知ってるプログラマとBASICオンリーのプログラマが書のとでは、
天と地の差があったよ。
0038デフォルトの名無しさん
2010/03/25(木) 19:01:00一口にBASICといっても、いろいろある。
モダンとクラシックは別物なので、
きちんと区別するべき。
0039デフォルトの名無しさん
2010/03/25(木) 19:20:240040デフォルトの名無しさん
2010/03/25(木) 19:43:20雑誌の投稿プログラムが手本だったのでスパゲティに疑問を抱かなかった。
0041デフォルトの名無しさん
2010/03/25(木) 20:11:24PCに内蔵されてて電源入れるだけで使えた。
今思うとこれも凄い。
OSはないのにBASICだけはあったw
0042デフォルトの名無しさん
2010/03/25(木) 20:51:18あーわかるわかるw
0043デフォルトの名無しさん
2010/03/25(木) 22:53:43I/Oとかの記事でPascalやLispも齧ってたから
構造化は意識してたっけ
>>41
8bitBASICはそれ自体がOSみたいなものでもあったからな
0044デフォルトの名無しさん
2010/03/26(金) 03:02:510045デフォルトの名無しさん
2010/03/26(金) 09:01:33それにひどく昔のTinyBASIC(たとえば東京版TinyBASIC)でもスタックは内部で使ってるぞ?
0046デフォルトの名無しさん
2010/03/26(金) 10:54:39これが最初の一歩だという人が多いのでは。
0047デフォルトの名無しさん
2010/03/26(金) 11:07:23ちがうよ
10 PRINT "baka "
20 GOTO 10
を電気屋のパソコンで実行するのが第一歩だよ。
0048デフォルトの名無しさん
2010/03/26(金) 11:08:30スタックがなければZ80のCALLステートメントすら動かないよ。
0049デフォルトの名無しさん
2010/03/26(金) 11:19:080050デフォルトの名無しさん
2010/03/26(金) 11:24:12それはない。
この時代はC言語やK&L本が認知されるより前だよ。
0051デフォルトの名無しさん
2010/03/26(金) 11:25:32いや
10 PRINT "baka ";
20 GOTO 10
でしょw
0052デフォルトの名無しさん
2010/03/26(金) 11:33:30K&Rだよ
一般人使えるようになったのは、
BASICはFD装置が出る前だし、C言語はFD装置が必須だったな。
0053デフォルトの名無しさん
2010/03/26(金) 11:46:520054デフォルトの名無しさん
2010/03/26(金) 17:20:43仮想マシンなんだから最終という言い方は×
0055デフォルトの名無しさん
2010/03/26(金) 20:02:20CLRもスタックマシンだったっけ?
違うと思ってたが。
0056デフォルトの名無しさん
2010/03/27(土) 01:07:31おもわずわろた
それだ
0057デフォルトの名無しさん
2010/03/27(土) 07:20:550058デフォルトの名無しさん
2010/03/27(土) 13:31:460059デフォルトの名無しさん
2010/03/29(月) 13:07:51それとも、ない方がいいのかな?
0060デフォルトの名無しさん
2010/03/29(月) 13:25:26すぐじゃないだろ。少なくとも実行後にしかネィティブコードはにならい。
0061デフォルトの名無しさん
2010/03/29(月) 13:29:09実行前だろ
0062デフォルトの名無しさん
2010/03/29(月) 16:00:21コンパイラはネイティブコードを吐いたりしない。
実行後にネイティブコードに変換されんだよ。
常識だぞこんなこと。
0063デフォルトの名無しさん
2010/03/29(月) 16:07:010064デフォルトの名無しさん
2010/03/29(月) 16:29:14ngen にしたってすぐじゃないだろ。
インストール時か最初の実行時であって、コンパイル時でないことは明白。
けど ngen の話になるんだ?
それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。
ngen ってただのキャッシュだよ。根本的なこと勘違いしてんじゃね?
0065デフォルトの名無しさん
2010/03/29(月) 16:30:30それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。
→けどどうして ngen の話になるんだ?
→それとも「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。
0066デフォルトの名無しさん
2010/03/29(月) 16:57:23必要、もしくは無いほうがいいと俺は思う。
0067デフォルトの名無しさん
2010/03/29(月) 17:13:24構文木を変形するいわゆるLispのマクロは、一絡げにできないだろう
0068デフォルトの名無しさん
2010/03/29(月) 18:58:07Lispとかもとから対象外だし
0069デフォルトの名無しさん
2010/03/29(月) 21:00:160070デフォルトの名無しさん
2010/03/30(火) 06:55:57それぞれの言語でサイト作った感想から言えば、
phpはどんな環境でもそれなりに動くという点で美しい。
それこそ月300円の鯖にでも納品できる。
スレ的な美しさとは違うだろうが、これも言語仕様による
美しさだと思うがな。
個人的に一番好きなのはPerlだったりするが。
力技が一番効く言語だと思うし。なんでもあり。
0071デフォルトの名無しさん
2010/03/30(火) 07:26:430072デフォルトの名無しさん
2010/03/30(火) 08:45:070073デフォルトの名無しさん
2010/03/30(火) 08:58:58>初カキコだがweb に特化すれば php, perl, java は美しい。
自分が使ったことのある言語を羅列してるだけだろ。
クライアントとサーバーサイドの違いを認識しているのかも怪しい。
0074デフォルトの名無しさん
2010/03/30(火) 09:17:000075デフォルトの名無しさん
2010/03/30(火) 19:26:09実行前
xxx.exe
return
実行後
実行前
xxx.exe
実行後
return
xxx.exe
実行前
実行後
return
xxx.exe
実行前
実行
return
実行後
一体どれのことを言ってるんだ
007658
2010/03/31(水) 11:50:38実行時にはネイティブコードだよ出来なことを言ったつもりだった。
IL インタプリタなんかウォッチ式を評価するとき位しか使われないよね。
0077デフォルトの名無しさん
2010/03/31(水) 15:31:450078デフォルトの名無しさん
2010/03/31(水) 15:45:11純粋なILインタプリタかJITコンパイルするかはVMの実装の問題だからね
0079デフォルトの名無しさん
2010/03/31(水) 17:19:40って最適化されてるん?
まさか中間コードを置き換えただけってことはないよね
0080デフォルトの名無しさん
2010/03/31(水) 17:41:06MSIL (Microsoft Intermediate Language) は、実行する前に .NET Framework の Just-In-Time (JIT) コンパイラによってネイティブ コードに変換する必要があります。
ネイティブ コードは CPU 固有のコードで、JIT コンパイラと同じコンピュータ アーキテクチャ上で実行されます。
JIT コンパイルは、実行時に呼び出されることがないコードがあることを考慮しています。
つまり、ポータブル実行可能 (PE) ファイル内にあるすべての MSIL をネイディブ コードに変換するために時間とメモリを費やすのではなく、
実行時に必要になった MSIL を変換し、その結果生成されたネイティブ コードを保存して、以降の呼び出しで利用できるようにしておきます。
0081デフォルトの名無しさん
2010/03/31(水) 17:47:18http://msdn.microsoft.com/ja-jp/library/ht8ecch6.aspx
ネイティブ イメージ ジェネレータ (Ngen.exe) を使用して、
JIT コンパイラと同様に MSIL アセンブリをネイティブ コードに変換します。
ただし、Ngen.exe の動作は、以下の 3 つの点で JIT コンパイラの動作と異なります。
・MSIL からネイティブ コードへの変換を、アプリケーション実行中ではなく、実行前に行います。
・メソッドを 1 つずつではなく、アセンブリ全体を一度にコンパイルします。
・生成したコードを、ディスク上のファイルとしてネイティブ イメージ キャッシュに保持します。
0082デフォルトの名無しさん
2010/03/31(水) 17:56:580083デフォルトの名無しさん
2010/03/31(水) 17:57:09getter, setterをインライン展開するぐらいには最適化する。デバッガ上で実行すると最適化しないので、誤解をしている人もいるけど。
0084デフォルトの名無しさん
2010/04/02(金) 17:24:150085デフォルトの名無しさん
2010/04/03(土) 00:22:400086デフォルトの名無しさん
2010/04/05(月) 22:47:520087デフォルトの名無しさん
2010/04/05(月) 23:18:550088デフォルトの名無しさん
2010/04/06(火) 04:04:08かなり読みやすい部類だと思うぜ
簡潔なラムダとか関数適用演算子とかは他の言語にも欲しい
0089デフォルトの名無しさん
2010/04/06(火) 22:02:41冗長な記述が省かれて読みやすくなる場合も結構あるぞ。
たとえば演算子をリフトアップで定義する場合。
instance (Num a) => Num (Hoge a) where
(+) = liftA2 (+)
この場合 (+) x y = liftA2 (+) x y なんて冗長で、
こんな定義が何行も続くとかえって読みにくいだろ。
0090デフォルトの名無しさん
2010/04/21(水) 12:47:140091デフォルトの名無しさん
2010/04/21(水) 18:34:120092デフォルトの名無しさん
2010/04/21(水) 18:53:420093デフォルトの名無しさん
2010/04/21(水) 21:05:59友人がメッチャScalaプッシュしてくるんだけど、どう断れば良いか
分からん。(興味無いとか、ピンと来ないとか言ってはいるんだが)
ちなみにおいらはLisperで最近Haskellに手を染め始めたところ
友人はPerl使い。
なんかビシッと言う方法無い?
0094デフォルトの名無しさん
2010/04/22(木) 00:33:32「俺、副作用が嫌いなんだよね」
0095デフォルトの名無しさん
2010/04/22(木) 00:59:550096デフォルトの名無しさん
2010/04/22(木) 07:04:55Scalaって欲張り過ぎでしょ
二兎を追う者一兎も得ず
0097デフォルトの名無しさん
2010/04/24(土) 18:38:13っていうと、みんな怒っちゃう?
0098デフォルトの名無しさん
2010/04/24(土) 18:45:080099デフォルトの名無しさん
2010/04/24(土) 20:28:330100デフォルトの名無しさん
2010/04/24(土) 23:57:20Scalaは汚いってことか?
0101デフォルトの名無しさん
2010/04/26(月) 02:05:320102デフォルトの名無しさん
2010/05/06(木) 10:31:410103デフォルトの名無しさん
2010/05/06(木) 12:55:170104デフォルトの名無しさん
2010/05/06(木) 13:56:41mac >>>>>>>>>> windows
でしょ。
0105デフォルトの名無しさん
2010/05/06(木) 14:19:04Linuxだよ
0106デフォルトの名無しさん
2010/05/06(木) 14:28:250107デフォルトの名無しさん
2010/05/06(木) 16:50:29ハードとソフトの違いもわからない馬鹿ですね^^
0108デフォルトの名無しさん
2010/05/06(木) 17:46:35ハードとソフトの違いもわからない馬鹿ですね^^
0109デフォルトの名無しさん
2010/05/06(木) 21:16:420110デフォルトの名無しさん
2010/05/07(金) 13:35:40ぱいそんなんて子供の玩具だろ?
0111デフォルトの名無しさん
2010/05/07(金) 15:13:430112デフォルトの名無しさん
2010/05/07(金) 15:21:38標準で入ってる = 子供の玩具
0113デフォルトの名無しさん
2010/05/07(金) 16:08:32途端に汚なくなる
0114デフォルトの名無しさん
2010/05/07(金) 18:50:320115デフォルトの名無しさん
2010/05/07(金) 20:39:02windows >>>>>>>>>> mac
でしょ。
0116デフォルトの名無しさん
2010/05/07(金) 23:17:450117デフォルトの名無しさん
2010/05/08(土) 00:52:50これから 2番目に美しい言語を語ろうず これはなかなか難しいぞな
ココでそれからWindowsとかMacとか言ってるヤツはな、全然面白くないから
死ね な? 氏ねでも市ねでもなく 死ね OK?
0118デフォルトの名無しさん
2010/05/08(土) 01:06:330119デフォルトの名無しさん
2010/05/08(土) 02:55:26Haskellの次って何だと思う?俺それが一番美しいと思う
0120デフォルトの名無しさん
2010/05/08(土) 03:11:010121デフォルトの名無しさん
2010/05/08(土) 05:43:49Curry. 関数論理型言語。Haskellと違って不完全情報の記述ができる。
0122デフォルトの名無しさん
2010/05/09(日) 19:36:03実質、現存するまともな言語って、C++ぐらいだろ。
個人的にはOcamlが好き。
0123デフォルトの名無しさん
2010/05/09(日) 20:11:360124デフォルトの名無しさん
2010/05/09(日) 20:31:15書籍。プログラムの速度。この辺で、まとも。
まともでないのは、よく分からない、かつ、速度が遅くて、
メリットの不明な機能の作成に熱心な方々。
0125デフォルトの名無しさん
2010/05/09(日) 21:03:080126デフォルトの名無しさん
2010/05/09(日) 21:19:130127デフォルトの名無しさん
2010/05/09(日) 21:24:58他の言語の方が特化しているのは確かだろうけど、
多方面で扱うこと考えたらC++じゃないか
OOPやテンプレートで簡潔に書ける場面は存在するし
純粋な何々指向は、その縛りでかえって複雑になったり、
後々で不純物が混じったり。
なら、初めから不純物含んだものの方が目的達成するのがはやそう
という、プログラムの組めない奴の妄想
メリットが不明なのは、boostのconceptとか、lambdaとかファンクタとか
0128デフォルトの名無しさん
2010/05/09(日) 21:40:59もうスレタイ的な意味の議論は終了してしまったから他の話をやってるだけか
templateは俺は嫌い
総称型、ダックタイピング、コンパイル時計算、メタプログラミングと
少なくとも4種類の目的の異なる仕事を(汚く/無理やり)扱っているのが
好きになれない
そもそも本当に全てが必要か、という問題もあるわけだが
OOPのための言語としてもC++はあまり良くないよね
純粋じゃない、というのはさておき、GC無いのとオブジェクトが
自己記述的じゃないのがOOP言語として見るとちょっとな
0129デフォルトの名無しさん
2010/05/09(日) 22:12:16すぐに嫌いになるかもしれない。普通に配列で書く方が速そうだし。
数値計算するのに、C++は不要だろうが視認性が良いんだ。
GCのある言語だと数値計算、やたら遅いイメージが拭えないし。
純粋なOOPに、どれだけメリットと恩恵があるのか疑問。
SmalltalkよりJavaが勝利したあたりで、それほど必要だとも思えない
0130デフォルトの名無しさん
2010/05/09(日) 22:17:48Javaも純粋じゃないけど、GCとまともに使える例外があって
オブジェクトが自己記述的だから、C++よりはずっと自然にOOPしやすいでしょ
まあJavaはJavaで融通が利かないから俺は好きじゃないんだけどな
0131デフォルトの名無しさん
2010/05/10(月) 00:19:45作ったものくらい自分で始末しろとw
0132デフォルトの名無しさん
2010/05/10(月) 00:33:43速度に目を瞑ればJavaScriptが割といい線いってるな
0133デフォルトの名無しさん
2010/05/10(月) 00:39:590134デフォルトの名無しさん
2010/05/10(月) 01:27:14OCamlはまともでないほうに入るんじゃないか?
ユーザ少ないし、速度も静的言語では遅いほうだろ
0135デフォルトの名無しさん
2010/05/10(月) 01:32:52関数型のくせにstringがmutableとか、意味不明なセンスの悪さをそこかしこに感じる
structural subtyping一見良さそうだけど、実行時情報ねーから
ダウンキャスト(風のこと)はできないっしょ?
"O"とかいいつつ、あれで下手にOOの真似事やろうとすると怪我すると思う
あとは、ありがちだけどライブラリが未成熟で、Unix系以外ではあんま使い物に
ならないっぽいよね
0136デフォルトの名無しさん
2010/05/10(月) 01:53:47を感じた時にHaskellかじると、なんだ関数プログラミング言語って実は
分かりやすいじゃんって思えるところナンテネ
0137デフォルトの名無しさん
2010/05/10(月) 01:59:47一昔前の言語で能力的には既に十分。
残された問題は、複雑なロジックをいかに簡潔に記述できるか、
それが他人にも理解されるかというだけ。
進歩の方向性はそれくらいしか考えられない。
0138デフォルトの名無しさん
2010/05/10(月) 12:03:50これ正に俺だ
最初にHaskell触った時は全然理解できなかったけど
OCamlを触った後に再びHaskell触ったら割とすんなりなじむことができた
OCamlの表記法はなんともなじめなかったけど
0139デフォルトの名無しさん
2010/05/10(月) 20:50:48ルールを知らないと読むこともできない。言語解説書バカ売れ。
制限は減ったのかもしれないけどな。
0140デフォルトの名無しさん
2010/05/10(月) 22:05:420141デフォルトの名無しさん
2010/05/10(月) 23:11:16おれHaskell好きだけど 勝利してんの? マジで?
0142デフォルトの名無しさん
2010/05/10(月) 23:13:060143デフォルトの名無しさん
2010/05/10(月) 23:43:390144デフォルトの名無しさん
2010/05/10(月) 23:52:43rhinoとかspidermonkey,seedなんてマイナーそうな実装あるけど
あれもブラウザでしか動かないのか?
0145デフォルトの名無しさん
2010/05/11(火) 05:36:39グローバルスタンダードってそういうものでしょ。
0146デフォルトの名無しさん
2010/05/12(水) 01:02:35>>97
美しい物を美しいまま使いこなせるかどうかは人による
0147デフォルトの名無しさん
2010/05/12(水) 05:55:53あいつは結局あの後どうなったん?
0148デフォルトの名無しさん
2010/05/12(水) 06:24:21今はScalaにはまってる
ttp://pc11.2ch.net/test/read.cgi/prog/1262227165/
0149デフォルトの名無しさん
2010/05/12(水) 10:54:05thx
超大雑把に流し読みしたが、誰かがガチで叩いたのかw
面白い流れを見逃したかもしれんなぁ
つーかよくあんなの真面目に叩く気になったもんだ、良くも悪くもすげーな
まぁこんなとこ見てる俺が言えた義理じゃねーけど
0150デフォルトの名無しさん
2010/05/13(木) 10:40:080151デフォルトの名無しさん
2010/05/13(木) 12:47:170152デフォルトの名無しさん
2010/05/13(木) 12:57:23lispだって複数の言語の総称だ。
0153デフォルトの名無しさん
2010/05/14(金) 03:10:01厳密には機械語だが、まぁ本質は同じだ
0154デフォルトの名無しさん
2010/05/14(金) 11:11:420155デフォルトの名無しさん
2010/05/14(金) 11:29:35アセンブラ=コンピュータの挙動を厳密にコントロールできる
機械語=バイナリ
という違いがある
0156デフォルトの名無しさん
2010/05/14(金) 12:21:59別に否定してないぞ
アセンブラと機械語は違うけど、美しさで言えば同質と言っていいんじゃね
0157デフォルトの名無しさん
2010/05/14(金) 12:44:290158デフォルトの名無しさん
2010/05/14(金) 13:45:22まぁ見た目重視言語の一派だから、見た目の違いが大事になる可能性はあるが
0159デフォルトの名無しさん
2010/05/14(金) 13:46:57○見た目も重視する
つーかこれで置換すると俺がバカな文章書いたことがよく分かるな
0160デフォルトの名無しさん
2010/05/14(金) 14:29:29cpuやアーキテクチャによって使える命令違うから、アルゴリズムをスマートに書けるかどうかも変わってくる。
ノイマン型でなければ逐次実行もままならない。
だからアセンブラが共通して持つ本質的な美しさなんてありえない。
0161デフォルトの名無しさん
2010/05/14(金) 14:42:53> コンピュータの挙動を厳密にコントロールできる
0162デフォルトの名無しさん
2010/05/14(金) 14:44:34言語の美しさじゃない
0163デフォルトの名無しさん
2010/05/14(金) 15:01:16つくづく思う、だが○○オメーはダメだ!
Q.○○に当てはまるプログラミング言語を挙げなさい
0164デフォルトの名無しさん
2010/05/14(金) 15:04:42できない。
命令を同時実行する仕組みのせいで機械語の実行順序が入れ替わることがある。
0165デフォルトの名無しさん
2010/05/14(金) 15:07:47機械語とアセンブラが違うのかどうかの話の後にそんなことを言ってる時点で的外れ
全てのアセンブラに共通する点というのはある(同じ名前でくくられてるんだから当然)
その共通する点について美しいと思うなら、それはアセンブラを美しいと感じることに等しい
0166デフォルトの名無しさん
2010/05/14(金) 15:11:530167デフォルトの名無しさん
2010/05/14(金) 15:12:27ツッコミがいかにも浅いなぁ。CRISC以降は同時実行云々どころじゃねーだろw
どう言おうが、プロセッサが用意したI/Fを直接叩けるのはアセンブラだけだわな。
他の言語では「最適化」でも、アセンブラでは「クロックを削る」というような感覚に
近付く。それが美しいといえば美しいんじゃねーの。少なくとも共通して特異だ。
0168デフォルトの名無しさん
2010/05/14(金) 15:14:09>>160のざっくりすぎる意見と同じパラダイムで返したからな
0169デフォルトの名無しさん
2010/05/14(金) 16:01:05それは機械語が美しいんであって、アセンブラはそのおこぼれにあずかってるだけだよね。
大体、アセンブラとしての役割が何一つ評価されてないじゃん。
0170デフォルトの名無しさん
2010/05/14(金) 16:11:360171デフォルトの名無しさん
2010/05/15(土) 00:39:43のか、用途が美しい(曖昧だけど)のかどうなのか・・・・
ハード方向でCを使ってレジスタ、アドレス演算ができるようになればCがいいんじゃないw 破壊力は抜群。
同じプログラムを組むのでも、素人とプロが組むのでは実行速度も行数もまったく異なる、天と地の差を見せ付ける
ことができるのがC言語。そこに美しさを感じる僕ですb
0172デフォルトの名無しさん
2010/05/15(土) 09:57:140173デフォルトの名無しさん
2010/05/17(月) 08:59:020174デフォルトの名無しさん
2010/05/17(月) 10:11:55言語それぞれ、目指してる美しさが違うだろうね
それと同じで、プログラマの目指してる美しさもどれぞれ違う
それだけでしょ
0175デフォルトの名無しさん
2010/05/17(月) 10:17:220176デフォルトの名無しさん
2010/05/17(月) 22:56:300177デフォルトの名無しさん
2010/05/18(火) 02:04:05鈴木と言う時点ですでに美しく無い
0178デフォルトの名無しさん
2010/05/18(火) 08:29:110179デフォルトの名無しさん
2010/05/18(火) 22:53:290180デフォルトの名無しさん
2010/05/19(水) 23:17:41ifはどの言語でもifだし
インクルードやデファインも意味と書き方こそ違えどの言語も同じような記述法だし
書こうと思えばどの言語でも他のどんな言語の流儀でも書ける
それを踏まえても美しいと言い切れるには何を観点とすればいいのか
0181デフォルトの名無しさん
2010/05/20(木) 00:01:20言語の普及と発展、互換の足かせとともに、もともとあった美しさを穢していく。
0182デフォルトの名無しさん
2010/05/20(木) 00:25:30A その謎はけがれているから
0183デフォルトの名無しさん
2010/05/20(木) 00:37:18言語設計者の思想とか哲学
0184デフォルトの名無しさん
2010/05/23(日) 13:41:430185デフォルトの名無しさん
2010/05/25(火) 12:20:43lispもそうだが、新しいパラダイムを研究する過程で提案された言語は、
ただの表記でしかない。
実用的な目的のために詳細にまで注意して設計されたものではない。
設計の改善は後の人たちの役割。
0186デフォルトの名無しさん
2010/05/25(火) 18:58:33論文を読めばいい
0187デフォルトの名無しさん
2010/05/25(火) 23:55:110188デフォルトの名無しさん
2010/05/26(水) 06:23:120189デフォルトの名無しさん
2010/05/26(水) 23:56:020190デフォルトの名無しさん
2010/05/27(木) 02:11:06namespaceやらclass階層の中にじかに関数定義書くもんだから
�@ネストが無駄に深くなる
�Anamespace,classの開き括弧、閉じ括弧の対応が追いにくい。それを防ぐためにネストを無駄に深くしなければならないので�@。
JAVAもそうだし、.NET系言語はこれから主流扱いになるらしいけど、先行きは暗い
こんな仕様は小さなコードなら良いだろうけど大きくなったら読みづらくなって仕方ない
大粒のライブラリ使えばコードは大きくならないだろうという見通しでしてるんだったら、たいていそういう予測は外れてるしね
0191デフォルトの名無しさん
2010/05/28(金) 09:47:41あのさ、だからHaskellだのLispだのPrologだのの名前が挙がってるのが
このスレなわけで、何を今さら言ってるの?
0192デフォルトの名無しさん
2010/05/28(金) 19:20:26流行らんかな。これ
0193デフォルトの名無しさん
2010/06/11(金) 21:10:550194デフォルトの名無しさん
2010/06/19(土) 23:20:260195デフォルトの名無しさん
2010/08/25(水) 02:46:020196デフォルトの名無しさん
2010/11/10(水) 01:19:29Perl はシギルがあるからキレイなんじゃないか
0197デフォルトの名無しさん
2010/11/10(水) 02:09:29型推論もいらない。高機能なIDEは必須。
0198デフォルトの名無しさん
2010/11/10(水) 02:40:41Cython?
0199デフォルトの名無しさん
2010/11/10(水) 08:04:22Python, Prolog, Grass
0200デフォルトの名無しさん
2010/11/11(木) 09:49:11今売り出し中のNimrodはどうよ
0201デフォルトの名無しさん
2010/11/12(金) 20:43:04いまどきの静的型付けの言語は似たようなものだが。
0202デフォルトの名無しさん
2010/11/16(火) 22:22:50マニュアル片手に書くのはめんどい
0203デフォルトの名無しさん
2010/12/27(月) 15:43:59メソッド体系?
0204デフォルトの名無しさん
2010/12/27(月) 19:39:54ってことじゃね
0205デフォルトの名無しさん
2010/12/27(月) 20:03:09ではないのかな。組み込み的な意味なら、
無いに越したことはない。少なくとも美しさを
論じるなら。
0206デフォルトの名無しさん
2010/12/28(火) 15:00:000207デフォルトの名無しさん
2010/12/28(火) 15:17:590208デフォルトの名無しさん
2010/12/29(水) 22:00:40どういうこと?
IDEと連携取りやすい言語ならばむしろマニュアル片手にする必要ないぞ。リファレンスが内蔵されているようなものだからな。
チュートリアルは別途やればいい。
そもそも直感的なメソッド体系の言語というのが誰にとっての?というところがある。
C#はC系の言語利用者にとっても直感的ではなかったが、DelphiやVCLの利用者やJavaかじったことある人間にはむしろ直感的だった。
RubyはかつてはモダンではないPerl利用者には直感的だったかも知れないが、
今やRails以降のRubyやモダンPerlは双方ともバラバラ全くの別物。直感的でない。
しかも、これらも個人の感覚だ。
中学生にとっての直感的な言語も違うだろうし。
0209デフォルトの名無しさん
2010/12/29(水) 22:43:44AppleScriptもそうかも。
0210デフォルトの名無しさん
2010/12/30(木) 07:30:370211デフォルトの名無しさん
2011/05/24(火) 23:21:41.72少なくともhtonl();よりhost.to<NetworkLong>()の方が解りやすいだろ。
ライブラリの詳細な知識はいらんからな。
やっぱり綺麗となるとどうしてもLispだよ
(+ 5 10 20)は(+ . (5 . (10 . 20) ) )というデータ。
極一部の特殊シンボルを除いて全てデータだからな。
言語の機能とデータに殆ど壁が無くて、機能の拡張を
データの入力と捉えられる。
0212デフォルトの名無しさん
2011/06/04(土) 15:43:02.98だからきれい?
0213デフォルトの名無しさん
2011/06/19(日) 07:58:22.97レス全部見る気がしないので適当に書くが、見方じゃね?
プログラマ側のインプットとしてはPython、Java、Lispで意見が分かれると思う
価値観としか言いようが無い
プログラマ側のアウトプットはLisp、Java、c#
Rubyが美しいと思う奴はこっちだと思うが、その感性は理解できん
CPU側というか、コンパイラ側というか…そっち側ではアセンブラ、Pascal、c
Haskellもこっちに入ると思うが、これまた理解が出来ん
慣れと覚えたては読みやすく書きやすいし、いつまでも平行線だろうな
俺が美しいと思うのはJava、Pythonだ
0214デフォルトの名無しさん
2011/06/19(日) 09:04:22.150215デフォルトの名無しさん
2011/06/19(日) 11:37:46.14便利だけど、統一感が無くて
0216デフォルトの名無しさん
2011/06/19(日) 12:12:37.66SchemeとかForthと比べたら無いけど。
0217デフォルトの名無しさん
2011/06/19(日) 12:16:04.430218デフォルトの名無しさん
2011/06/20(月) 01:02:19.16データとコードの形式が共通で、プログラムからプログラムを操作するのが容易だったり、
プログラムをデータとしてやり取りするのが容易だったりするのは素晴らしい
唯一(最大)の欠点は一般的なオブジェクト指向の記法と相性が悪い事なんだが...
0219デフォルトの名無しさん
2011/06/20(月) 01:27:53.300220uy ◆yyC0rYWEq2
2011/06/20(月) 02:17:08.24(attr_accessor x)
(attr_accessor y)
(def initialize x y
(setq @x x)
(setq @y y) )
(def function
(new CC 2 3 4 5) ) )
class C
attr_accessor :x
attr_accessor :y
def initialize x , y
@x = x
@y = y
end
def function
CC.new 2 , 3 , 4 , 5
end
end
0221uy ◆yyC0rYWEq2
2011/06/20(月) 02:23:10.69int main( int argc , char ** argv ) {
printf( "test %d" , 444 ) ;
return 0;
}
(include "stdio.h")
(def (int main) (int argc) (char argv)
(printf "test %d" 444)
(return 0) )
(include "stdio.h")
(def int main int argc char argv
(printf "test %d" 444)
(return 0) )
0222デフォルトの名無しさん
2011/06/20(月) 02:32:44.26故に、ツリーを華麗に扱える言語が最も美しい
0224uy ◆yyC0rYWEq2
2011/06/20(月) 03:32:46.69ツリー構造で管理していないプログラムっていうのは
たとえば深度4から、深度5〜n まで、参照可能にさせておきたい変数があっても
深度1の場所に名前がかぶらないように定義してるだけなんだよ
ネームスペースを使って NAMESPACE::NAMESPACE::変数
と、してるだけ 砕いていっちゃえば ネームスペースなんて、アンダーバーつかってかぶらない変数名かいてるのと同じようなもん
hensuu___henssuss__susususus__susus = 4 ← けっきょくせかいの平均はここから進歩してない
だから、深度1〜n全ての場所でその変数が普通の方法でも参照できてしまうため
そこまで気にする必要はないにしてもわずかに名前衝突は気をつけなくてはいけない
特に名前のかぶりそうな、Windowクラスとか、Mainクラスといったもののなまえしょうとつを起こす可能性を消せない
これをツリーで管理すると
深度4の場所で Windowクラスを定義すれば
深度1〜3の場所では、どうやっても普通の方法ではWindowクラスまでたどり着けないので
名前衝突が完全に100%といっていいほどなくなる
君たちは全く名前衝突を意識せずにプログラミングできるプログラミングをプログラミングした事はあるかね?
心の清清しさが違う・・・・・ すっげー適当な変数名でプログラミングしても大丈夫、むしろ名前なんて付けない
無名関数でプログラミングしていく、自分で根幹部分のほうに、名前を指定しなければランダムで名前をつけるようにしてしまう
でもツリーを効率的に扱う
そのための言語がないからね、ツリー操作に長けていて、なおかつドキュメント、ライブラリ、人気、見た目
そういうものを全部クリアした言語がまだでてきていない
お話しゅうりょ。
0225デフォルトの名無しさん
2011/06/20(月) 10:28:58.30確かにメソッドの、特にチェインした場合は
かなり読みづらくなるなあ
そういえばClojureが多少マシになる解決策を出してなかったっけ?
0226デフォルトの名無しさん
2011/06/20(月) 21:17:19.85AppleScript
0227uy ◆yyC0rYWEq2
2011/06/21(火) 15:27:07.66世界にとってプラスになりそうなのはD言語
最も複雑で最も概念数の多い言語が神
使えない?覚えれない?しらねーよks
そもそも人にプログラミングが扱えると思うなよ
言語構文など全て覚えることが実時間上、不可能であるくらいの超巨大な言語がほしい
C++とか、まだ全然余裕、小さい、仕様小さすぎワロタw
C++の20倍くらいの仕様の詰まった言語がこの世には必要
0228デフォルトの名無しさん
2011/06/21(火) 18:04:29.00黙れよ出会い厨
0229デフォルトの名無しさん
2011/06/21(火) 18:55:43.39uy ◆yyC0rYWEq2は巡回好きだな〜
ちなみに、この能無しだれ?
0230uy
2011/06/24(金) 00:34:30.930231uy ◆yyC0rYWEq2
2011/06/25(土) 07:25:42.29俺の説明の劣化を語ってる名無しに、こぞって興味持ってる流れを見てると微笑ましいよ
そういう奴らって、深層心理のどっかでuyを認めなくちゃならないんだよね
そうしないとuyの説明していることのすべてが否って事にしちゃうと
とんでもない重荷を背負って生きることになるんだよね
uyがいってるんだから違う、間違ってる、 なんて決め付けちゃうと
真実12121 = 嘘
真実2342 = 嘘
真実433243 = 嘘
こうやって、脳内の真実変数がどんどん 嘘 代入されてって、 まともな思考も出来なくなる
だからuyを認めたくない奴はw 俺が説明してる概念を、俺が書き込むよりも先に学習しとくか、透明削除してろって話
もう何人か精神病にさせてしまった気がするけど、プログラミングなんてやってんのが悪いわけだしね・・・ それは俺のせいじゃないし
俺のせいにされても困るからね
0232デフォルトの名無しさん
2011/06/29(水) 13:21:37.690233デフォルトの名無しさん
2011/07/02(土) 23:53:43.83こいつ、精神病んでるから放置な
0234デフォルトの名無しさん
2011/07/03(日) 13:23:04.73自己主張だか差別化、優越感だかわからんが、2chで求める時点でカス
無意味なコテハンはリアで寂しい奴、無能な奴と決まってる
0235大天使 ◆uL5esZLBSE
2011/07/03(日) 16:01:01.89やっぱり自覚のないゴミだな
0236デフォルトの名無しさん
2011/07/03(日) 16:53:06.69どうせ、どっかの教員だろ
0237デフォルトの名無しさん
2011/07/03(日) 17:16:32.40SML も良い
0238デフォルトの名無しさん
2011/07/03(日) 17:33:04.39ソースコードの見た目の綺麗さとかPiet的なものではなく?
0239デフォルトの名無しさん
2011/07/03(日) 17:34:36.420240デフォルトの名無しさん
2011/07/03(日) 17:52:41.56おまえみたいな奴のことだよ ゴミって
0241デフォルトの名無しさん
2011/07/03(日) 18:10:37.48ちょっとおでぶさんだよなぁ…
0242デフォルトの名無しさん
2011/07/03(日) 19:30:11.32俺がみるとあぼ〜んになってるレスへの疑問かもしれないが、
数学的な方面から見れば、表記ブレの発生しないコードじゃないか。
同じ種類のデータを並び替えるのに、処理箇所毎に全く違うとか一貫性が無いのは汚いと感じる。
できるだけ複数の処理を同じように書けるってのは重要だと想う。
例えば数学のラムダ演算では、全ての数が関数に統一され、全て関数の操作法で
そうさできる。数字と関数の間を行き来する必要がなくなった。これって綺麗だと思わないかい?
0243デフォルトの名無しさん
2011/07/03(日) 20:05:56.09チャーチ数で数値計算しろと言われても困るわけで、
実用性を伴う美しさが求められる
0244デフォルトの名無しさん
2011/07/03(日) 20:33:43.99ちょっとした違いの為にわざわざこんなこと書いてるなんてってのは醜い。
0245デフォルトの名無しさん
2011/07/03(日) 20:45:34.28ELF
SLF
ULF
VLF
LF
MF
HF
VHF
UHF
SHF
EHF
THz
Very High Frequencyとか汚すぎる名前だろ。K,M,G,Tとかみたいに
もっと一貫性のある名前にするか、Wave1、Wave2とかいつまでも増やせる名前にしろよっておもう。
そういや、WindowsのAPIも、
・EnumDateFormatsExEx
・ExtSelectClipRgn
・GetTextExtentExPoint
てな感じで一貫性がなくてキモイ。だったら2,3,4,5って数字にして欲しい。
0246デフォルトの名無しさん
2011/07/03(日) 20:54:13.90元々火花送信機から始まって、真空管を使ってなんとかそれらしく電波を
飛ばせるようになった頃の LF MF HF という区別から始まって、あとから
あとから増やしていったものなんだから。
0247デフォルトの名無しさん
2011/07/04(月) 19:10:16.02汚れのないコードなんていったら書き手の問題がでかくなるだろ
言語としての違いからくるもの以外は切り捨てろよ
「書かざるおえない」言語と「不必要」な言語、「こう書く」言語と「こう書ける」言語
似てるようでまるで違う
普通は自由度の高い言語は美しいと言えない
それを美しいと思うのは感性だから閉まっとけって思えるレベルでないとお話にならない
意味がわかってない人って多いよね
0248デフォルトの名無しさん
2011/07/04(月) 19:11:45.580249デフォルトの名無しさん
2011/07/04(月) 19:33:04.73・Python(ソースコードの見た目)
・Scheme(言語仕様の簡潔さ)
実用性度外視で美しい
・Lazy K(関数型言語部門)
・Brainfuck(手続き型部門)
0250デフォルトの名無しさん
2011/07/04(月) 19:45:46.770251デフォルトの名無しさん
2011/07/05(火) 00:37:28.00素直に見ればよう出来てる
249のつっこみ所はLazy KとBrainfuckだろ
関数型言語はそもそも一貫性?が無いから美しいと言ってはいけないと思う
でもOCamlやLISP系は美しくないが見やすいのもわかる
Brainfuckは論外だろ
0252デフォルトの名無しさん
2011/07/05(火) 01:02:24.60haskellは?
0253デフォルトの名無しさん
2011/07/05(火) 01:23:10.190254デフォルトの名無しさん
2011/07/05(火) 01:40:40.17Javaはプリミティブがオブジェクトじゃなかったり、
文字列に中途半端な演算子のオーバーライドがあったり汚れすぎだろ。
0255デフォルトの名無しさん
2011/07/05(火) 01:45:47.21OCamlやF#がその立ち位置だと思ってた
0256デフォルトの名無しさん
2011/07/05(火) 01:47:16.27性能とか便利さとか歴史的経緯とか、そういう理由で
0257デフォルトの名無しさん
2011/07/05(火) 02:10:53.670258デフォルトの名無しさん
2011/07/05(火) 02:26:22.65実用のための言語だから。
0259デフォルトの名無しさん
2011/07/05(火) 03:58:18.11>素直に見ればよう出来てる
そう思うなら、もう一度見直した方が良いよ
普通にクロージャが作れないとか意味が分からん
0260デフォルトの名無しさん
2011/07/05(火) 07:05:41.18クロージャは、いろいろ問題あるからいらん。
0261デフォルトの名無しさん
2011/07/05(火) 10:10:17.07問題って具体的に何?
いろいろという事は複数あるんだよね?
Python 以外の殆どの LL では問題無くクロージャが使えてるんだけど?
0262デフォルトの名無しさん
2011/07/05(火) 11:04:05.05気を付けないとわかりにくい。
ラムダ式でいい。
0263デフォルトの名無しさん
2011/07/05(火) 11:18:16.11まあlambdaの制限のことを言いたいのは分かるが
0264デフォルトの名無しさん
2011/07/05(火) 11:22:02.71書き換える手段が無いとか、その辺の話でもあるのかなと思った
3だと出来るけどnonlocal文って美しくは無いわな
0265デフォルトの名無しさん
2011/07/05(火) 20:39:24.65『具体的に』
0266デフォルトの名無しさん
2011/07/06(水) 12:23:37.30実装が大変、スコープがわかりにくいと言うのも具体的だと思うが。
ラムダ式がないなら、それでもメリットあるが、あるなら別に。
0267デフォルトの名無しさん
2011/07/06(水) 20:14:58.09実装は別に大変じゃないよ
そこら中の LL が持ってる機能だからね
スコープで混乱している人も見掛けないし
Python の lambda みたいに中途半端な物を有り難がる必要も無い
結局、具体例は無しか
ソースコードの一つでも出て来るかと期待したのが間違いだったかな
0268デフォルトの名無しさん
2011/07/06(水) 20:27:12.23クロージャの構文を考えるのが面倒くさかったのかもな
0269デフォルトの名無しさん
2011/07/06(水) 22:26:09.36・文脈構造が黒髪ツーサドアップ
・関数リストの定義がミニスカニーソ
・インターフェースが童顔
・Foundationは薄化粧
・研究所で開発されてた頃のあだ名が猫
0270デフォルトの名無しさん
2011/07/06(水) 22:32:26.74ていうか汚らしい。
(倫理的に不潔という意味でなく文字通り細菌的に不衛生という意味)
0271デフォルトの名無しさん
2011/07/07(木) 04:49:25.74要らないといっているのに、ソースコードを張れって意味フ。Python では、書けないコードを出して。
クロージャーは、巨大になってくるとGloal変数と同じ問題あり。Pythonは、うまく対処している。
実装は面倒。克服しているだけの話。妙な制限があるのもその都合。
0272デフォルトの名無しさん
2011/07/07(木) 09:18:55.25>クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
>実装は面倒。
だからさ、もっと具体的に書こうぜ。
Global 変数と同じ『どんな』問題があると思うの?
実装が面倒だったら、世の中にあまたある Lisp の処理系はどんな超絶技巧を使っているというの?
きちんと理由を書かないと話にならないぜ。
0273デフォルトの名無しさん
2011/07/07(木) 09:27:35.16クロージャなんて殆どどこにでもあるありふれた機能で、有って当たり前の物。
0274デフォルトの名無しさん
2011/07/07(木) 09:29:07.18Guidoが実装しないことを選んだだけ
http://www.artima.com/weblogs/viewpost.jsp?thread=147358
0275デフォルトの名無しさん
2011/07/07(木) 09:35:19.720276デフォルトの名無しさん
2011/07/07(木) 09:37:20.77言語になっちゃうんだもんなあw
0277デフォルトの名無しさん
2011/07/07(木) 09:45:02.01なぜ self を明示的に書くのか by Guido
http://neopythonic.blogspot.com/2008/10/why-explicit-self-has-to-stay.html
0278デフォルトの名無しさん
2011/07/07(木) 10:25:29.64構文解析で関数定義とメソッド定義の場合分けするのが面倒だったからだろ
0279デフォルトの名無しさん
2011/07/07(木) 10:33:10.77クロージャはデータだから、引数の位置や代入分の右辺の位置でも定義可能にしないと
いけない訳だけど、Python ではそれらの位置にブロックを書かせる(=インデントを
書かせる)のは都合が悪い。関数の 3 番目の引数からインデントが始まるコードなんて
誰も読みたくないからね。
インデントが強制されない、他の言語では何の問題も無い話だけどね。
0280デフォルトの名無しさん
2011/07/07(木) 10:58:47.18別にそこだけHaskellの { ; } みたいな構文を導入してもいいわけだし、
説得力ないと思うなぁ。
0281デフォルトの名無しさん
2011/07/07(木) 11:36:45.19実装が面倒だったのではなく、インスタンスメソッドを特別扱いしたくなかっただけ
関数とメソッドを一貫性のある形で扱うことを選んだのと、
デコレータがある場合にselfの省略に問題があることが>>277で議論されてるだろ
>>279
ちゃんと>>274のリンク先を読んだ?従来の lambda と後方互換性がある形式で
multi-statement lambda へ拡張できる方法があると議論されてる
簡潔に言えば、理由は「Guidoの好み」だ
0282デフォルトの名無しさん
2011/07/07(木) 11:50:22.11和訳 : なぜPythonのメソッド引数に明示的にselfと書くのか
http://coreblog.org/ats/translation-of-why-explicit-self-has-to-stay
0283デフォルトの名無しさん
2011/07/07(木) 11:56:01.88multi-statement lambda は在った方が良いと思うけどさ
そうなってる理由が実装が面倒とかいう理由では無いと言いたい
0284デフォルトの名無しさん
2011/07/07(木) 21:28:21.12でも、lambda についての議論の結果がこれでしょ
http://mail.python.org/pipermail/python-dev/2006-February/060654.html
括弧でブロックを表す事が受け入れられるなら、
最初からオフサイドルールの強制なんてしない訳で、
非現実的な提案なんじゃないかな?
Python 的に受け入れ可能な文法でクロージャを
組み入れるのは、無理な話だと思うよ
>>280
『そこだけ変えれば良い』というのが受け入れられる
文化じゃないでしょ
0285デフォルトの名無しさん
2011/07/07(木) 22:12:51.14> オフサイドルール
これが最悪なんですよ.
手続き書き換えてて途中に判定分入った場合エディタまかせにできない
0286デフォルトの名無しさん
2011/07/08(金) 01:27:40.15何を言っているんだろう?
Lazy Kの一貫性は完璧であり、その意味ではもっとも美しい言語だろう。
Lazy K以上に簡明で一貫した意味論、構文を持つ言語を考えるのは難しい。
それが分からないようじゃ、「関数型言語はそもそも一貫性?が無い」とは、何も分かっていないんだろうなとしか思えん。
> クロージャーは、巨大になってくるとGloal変数と同じ問題あり。
たぶん、LISPなどの非純粋型言語のクロージャを考えているんだろう。
たしかに、そういった言語のクロージャは、グローバル変数と同じというかCのスタティック変数と同じように、ライブラリ使用者から隠された変数によって関数の挙動が変わる、という問題がある。
しかし、じゃぁ、いかなる意味でもグローバルな識別子が存在しないか、あるいはグローバルな識別子を使用したどの関数呼び出しも、決して隠されたパラメータによって関数の挙動が変わることがない、ということが保障された言語なんでどれほどある?
(オレが思いつきかぎりでは、Lazy Kしか存在しない。)
クロージャよりも、クラスメソッドやクラス変数のほうが理解しやすい、混乱しにくいというのならそういう頭の人もいるだろうから、個人の好みの問題といしては否定はしない。
でも、それは好みの問題に過ぎない。
0287デフォルトの名無しさん
2011/07/08(金) 01:53:34.89全てはオブジェクトだよ
全てはハッシュだよ
Smalltalk もかなり美しいな
全てはオブジェクトだよ
全てはメッセージだよ
Lisp もかなり美しい
全てはリストだよ
全てはラムダだよ
もちろん例外もあるので、異論は好きなだけどうぞ
0288デフォルトの名無しさん
2011/07/08(金) 01:53:37.92そして、自分で言語(の仕様)を作れといいたい
0289デフォルトの名無しさん
2011/07/08(金) 02:10:48.840290デフォルトの名無しさん
2011/07/08(金) 04:30:17.92「現実の」「実践的な」JavaScriptのコードを見たうえで美しいとか言ってるの?
それとも言語の設計思想のことを言ってるの?
前者だとしたら、お前100年遅れてるわ
0291デフォルトの名無しさん
2011/07/08(金) 04:54:16.62BASICから入ると一生プログラマになれない、と言われてた時代が懐かしいな。
0292デフォルトの名無しさん
2011/07/08(金) 08:11:15.56>>287のレスの中身を見てそれが判別できないなら、100年進んでいても意味無いなw
ご苦労なこった
0293デフォルトの名無しさん
2011/07/08(金) 08:20:27.82ご苦労な脳味噌はおまえだろw
0294デフォルトの名無しさん
2011/07/08(金) 09:33:19.56for〜inループやthisの扱いがちょっと好きじゃないな
同じ系統だとJavaScriptよりはLuaのほうがまだすっきりしてるように見える
0295デフォルトの名無しさん
2011/07/08(金) 17:11:34.93JavaScriptのthisは動的スコープだからな。
動的スコープありやなしや、結構むずかしい問題。
オレは静的スコープ脳だけど、Lispとかで動的スコープを使ったトリックをみると、なるほどなーと思う。
0296デフォルトの名無しさん
2011/07/08(金) 18:20:34.10クラスにあたる存在とメソッドにあたる存在の区別が付かないのに
その1行で何とかなっちゃうように出来てるのは凄いんだけど
0297デフォルトの名無しさん
2011/07/08(金) 19:10:43.94君が判別できないだけ
面倒くさいから、下らない事で突っかかってくるなよ
0298デフォルトの名無しさん
2011/07/08(金) 19:16:50.69>関数スコープ
lexical addressing が lambda 単位なのはスッキリしてていいと思うけど
0299デフォルトの名無しさん
2011/07/08(金) 19:53:27.69個人的な好みの問題といわれるとそれまでだけど
ブロックスコープの代用として
(function(){})()
みたいなのが多用されるのを見ると、ちょっとな……
まあ他にもletとかwithとか色々あるみたいだが、
それなら最初からブロックスコープのほうがナンボかいいと俺は思う
0300デフォルトの名無しさん
2011/07/08(金) 20:02:37.23JavaScript は Scheme と同じで、削ぎ落とした所が良いんだと思う
object で scope が代用できるなら object だけでいいし、
本質的には block scope は単なる syntax sugar でしょ
0301デフォルトの名無しさん
2011/07/08(金) 20:07:39.36letがただのlambdaのsyntax sugarだとしても
Lisp族はマクロでletを作れるので、実用上の視点からは
Schemeとは一緒にできないような気がする
…んだけど、スレタイからするとあまり関係の無い視点のような気はしてきた
確かに言語の美しさとは関係が無いのかもしれない
0302デフォルトの名無しさん
2011/07/08(金) 20:16:12.17そこは、JS にはマクロの様な構文を拡張する機能が無い、
だから let を(新たに)用意したって事なんじゃないかな
元々 block scope にしておけば良かったかというと、
それでは JavaScript らしくないんじゃないかなと思う
0303デフォルトの名無しさん
2011/07/08(金) 20:22:04.65> それでは JavaScript らしくないんじゃないかなと思う
これはとくにそうは思わない、かなあ
わりとJSに似たところの多いLuaはブロックスコープだし
0304デフォルトの名無しさん
2011/07/08(金) 20:28:31.010305デフォルトの名無しさん
2011/07/08(金) 20:32:28.63letを後から入れるぐらいなら、simplicityも絶対の理由ではない気がするし
0306デフォルトの名無しさん
2011/07/08(金) 20:34:05.12letにはPythonのnonlocalのような後付感、蛇足感がつきまとうっていうか……
0307デフォルトの名無しさん
2011/07/08(金) 20:39:51.02元々、オブジェクトを唯一の道具立てとして言語を組み立てたのが JS で、
スコープというか環境フレームもオブジェクトで実装するのが自然だよね
というのが俺の理解
let は元々プラン外だったんだから蛇足に見えて当たり前
0308デフォルトの名無しさん
2011/07/10(日) 04:44:23.75いつか試してみたいなあ
0309デフォルトの名無しさん
2011/07/10(日) 06:54:00.80p :- p1, ... ,pn,fail.
p.
これは美しくない。
0310デフォルトの名無しさん
2011/07/10(日) 13:57:23.65haskellより、やることが制限されて簡潔で
lispのようにS式まみれにならず、
容易にバックトラックやエキスパートシステムを実現できる
優れた言語じゃないか
演習でしか使ったことないけど
0311デフォルトの名無しさん
2011/07/16(土) 22:35:02.380312デフォルトの名無しさん
2011/07/16(土) 23:15:52.99haskellベースに論理型言語を足したcurry
もしくは、prologベースに関数型言語を足したmars辺りは美しいんかね?
0313デフォルトの名無しさん
2011/07/24(日) 03:40:58.69関数スコープで十分だとかって言うのは、酸っぱいブドウ。
ブロックスコープに越したことはない。
0314デフォルトの名無しさん
2011/07/24(日) 03:42:37.650315デフォルトの名無しさん
2011/10/12(水) 01:49:49.75cはオブジェクト指向が使えん。汎用的なコレクションライブラリがない
c++は山ほどのドキュメントを読まないと怖くてSTLすら使えない。cとの中途半端な互換性
javaは命名規則が長い。オペレータをオーバーロードできない。プロパティがない。GUIが発展しない
c#はネストが深い。ヘッダが読めん。ポインタ使い辛い
0316デフォルトの名無しさん
2011/10/15(土) 07:03:48.590317デフォルトの名無しさん
2011/11/06(日) 22:05:48.37GObjectつかえばCでも現代的なOOはできるぞ。
0318デフォルトの名無しさん
2011/11/06(日) 22:08:51.60ブロックスコープ使うならwithが綺麗。
with({ a: 1, b: 0})
{
b = a++; //withで宣言したラベルを使う
}
//ここでaとb消滅
0319318
2011/11/06(日) 22:12:15.02■ このスレッドは過去ログ倉庫に格納されています