最も美しいプログラミング言語は? Part6
■ このスレッドは過去ログ倉庫に格納されています
C#やJavaのコードは最終的にはスタックマシンの上で実行される。 >>53 仮想マシンなんだから最終という言い方は× >>53 CLRもスタックマシンだったっけ? 違うと思ってたが。 デバガでおえばわかるけC# はすぐにネイティブコードになっちゃうぞ 美しいプログラミング言語には、マクロ、つまり実行前にプログラムを書き換える機能はあった方がいいのかな? それとも、ない方がいいのかな? >>58 すぐじゃないだろ。少なくとも実行後にしかネィティブコードはにならい。 >>61 コンパイラはネイティブコードを吐いたりしない。 実行後にネイティブコードに変換されんだよ。 常識だぞこんなこと。 実行の意味が違う。また、その意味ではngenを使った場合を説明していない >>63 ngen にしたってすぐじゃないだろ。 インストール時か最初の実行時であって、コンパイル時でないことは明白。 けど ngen の話になるんだ? それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。 ngen ってただのキャッシュだよ。根本的なこと勘違いしてんじゃね? けど ngen の話になるんだ? それもと「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。 →けどどうして ngen の話になるんだ? →それとも「すぐに」というのは ngen 使うから「すぐに」と言いたかったのか。 >>59 必要、もしくは無いほうがいいと俺は思う。 トークンを置換するプリプロセッサマクロと、 構文木を変形するいわゆるLispのマクロは、一絡げにできないだろう 初カキコだがweb に特化すれば php, perl, java は美しい。 それぞれの言語でサイト作った感想から言えば、 phpはどんな環境でもそれなりに動くという点で美しい。 それこそ月300円の鯖にでも納品できる。 スレ的な美しさとは違うだろうが、これも言語仕様による 美しさだと思うがな。 個人的に一番好きなのはPerlだったりするが。 力技が一番効く言語だと思うし。なんでもあり。 >>70 >初カキコだがweb に特化すれば php, perl, java は美しい。 自分が使ったことのある言語を羅列してるだけだろ。 クライアントとサーバーサイドの違いを認識しているのかも怪しい。 >>60-65 実行前 xxx.exe return 実行後 実行前 xxx.exe 実行後 return xxx.exe 実行前 実行後 return xxx.exe 実行前 実行 return 実行後 一体どれのことを言ってるんだ >>53 の「最終的にスタックマシンで実行される」に対して 実行時にはネイティブコードだよ出来なことを言ったつもりだった。 IL インタプリタなんかウォッチ式を評価するとき位しか使われないよね。 Haskellの勉強を始めたんだけど、遅延評価は美しいと思った。 >>76 純粋なILインタプリタかJITコンパイルするかはVMの実装の問題だからね 中間コード⇒ネイティブ って最適化されてるん? まさか中間コードを置き換えただけってことはないよね http://msdn.microsoft.com/ja-jp/library/ht8ecch6 (VS.80).aspx MSIL (Microsoft Intermediate Language) は、実行する前に .NET Framework の Just-In-Time (JIT) コンパイラによってネイティブ コードに変換する必要があります。 ネイティブ コードは CPU 固有のコードで、JIT コンパイラと同じコンピュータ アーキテクチャ上で実行されます。 JIT コンパイルは、実行時に呼び出されることがないコードがあることを考慮しています。 つまり、ポータブル実行可能 (PE) ファイル内にあるすべての MSIL をネイディブ コードに変換するために時間とメモリを費やすのではなく、 実行時に必要になった MSIL を変換し、その結果生成されたネイティブ コードを保存して、以降の呼び出しで利用できるようにしておきます。 >>64 http://msdn.microsoft.com/ja-jp/library/ht8ecch6.aspx ネイティブ イメージ ジェネレータ (Ngen.exe) を使用して、 JIT コンパイラと同様に MSIL アセンブリをネイティブ コードに変換します。 ただし、Ngen.exe の動作は、以下の 3 つの点で JIT コンパイラの動作と異なります。 ・MSIL からネイティブ コードへの変換を、アプリケーション実行中ではなく、実行前に行います。 ・メソッドを 1 つずつではなく、アセンブリ全体を一度にコンパイルします。 ・生成したコードを、ディスク上のファイルとしてネイティブ イメージ キャッシュに保持します。 >>79 getter, setterをインライン展開するぐらいには最適化する。デバッガ上で実行すると最適化しないので、誤解をしている人もいるけど。 Haskellはflipとかポイントフリースタイルとかそういうのをやんなければ かなり読みやすい部類だと思うぜ 簡潔なラムダとか関数適用演算子とかは他の言語にも欲しい flip はまぁ分かるが、Haskell のポイントフリースタイルは 冗長な記述が省かれて読みやすくなる場合も結構あるぞ。 たとえば演算子をリフトアップで定義する場合。 instance (Num a) => Num (Hoge a) where (+) = liftA2 (+) この場合 (+) x y = liftA2 (+) x y なんて冗長で、 こんな定義が何行も続くとかえって読みにくいだろ。 >>91 友人がメッチャScalaプッシュしてくるんだけど、どう断れば良いか 分からん。(興味無いとか、ピンと来ないとか言ってはいるんだが) ちなみにおいらはLisperで最近Haskellに手を染め始めたところ 友人はPerl使い。 なんかビシッと言う方法無い? >>93 Scalaって欲張り過ぎでしょ 二兎を追う者一兎も得ず 美しいプログラミング言語 = 実用性がない っていうと、みんな怒っちゃう? ああ機械語は0と1だけで単純かつ美しいが実用性はないよな "Everything should be made as simple as possible, but no simpler." -- Albert Einstein いやいや、美しさを競うなら圧倒的に mac >>>>>>>>>> windows でしょ。 Windowsなんて比較対象に入らない Linuxだよ >>104 ハードとソフトの違いもわからない馬鹿ですね^^ >>103 ハードとソフトの違いもわからない馬鹿ですね^^ ではPythonがほぼ標準で入ってるLinuxなんかも子供の玩具なのか〜 Pythonはちょっと複雑なことをさせると 途端に汚なくなる 美しさを競うなら圧倒的に windows >>>>>>>>>> mac でしょ。 1番美しいのは Haskell で結論出たんじゃないの? これから 2番目に美しい言語を語ろうず これはなかなか難しいぞな ココでそれからWindowsとかMacとか言ってるヤツはな、全然面白くないから 死ね な? 氏ねでも市ねでもなく 死ね OK? 流行りものに弱いよねみんなw Haskellの次って何だと思う?俺それが一番美しいと思う 次に来るのはHaskellにできないことができる言語だと思う >>119 Curry. 関数論理型言語。Haskellと違って不完全情報の記述ができる。 >>119 実質、現存するまともな言語って、C++ぐらいだろ。 個人的にはOcamlが好き。 C++がまとも、ってのはどういう意味のまともなん? 規格化されてる。複数の実装が存在する。ユーザーの数。ライブラリ数。 書籍。プログラムの速度。この辺で、まとも。 まともでないのは、よく分からない、かつ、速度が遅くて、 メリットの不明な機能の作成に熱心な方々。 その基準だと、C++は FORTRAN、COBOL、C に負けているな。 数値計算、金融計算、OS、言語処理系、組み込み系で考えたら、 他の言語の方が特化しているのは確かだろうけど、 多方面で扱うこと考えたらC++じゃないか OOPやテンプレートで簡潔に書ける場面は存在するし 純粋な何々指向は、その縛りでかえって複雑になったり、 後々で不純物が混じったり。 なら、初めから不純物含んだものの方が目的達成するのがはやそう という、プログラムの組めない奴の妄想 メリットが不明なのは、boostのconceptとか、lambdaとかファンクタとか スレタイの「美しさ」とは無関係な議論だな もうスレタイ的な意味の議論は終了してしまったから他の話をやってるだけか templateは俺は嫌い 総称型、ダックタイピング、コンパイル時計算、メタプログラミングと 少なくとも4種類の目的の異なる仕事を(汚く/無理やり)扱っているのが 好きになれない そもそも本当に全てが必要か、という問題もあるわけだが OOPのための言語としてもC++はあまり良くないよね 純粋じゃない、というのはさておき、GC無いのとオブジェクトが 自己記述的じゃないのがOOP言語として見るとちょっとな 最近にublasを知って、templateが好きになったんだが、たぶん、 すぐに嫌いになるかもしれない。普通に配列で書く方が速そうだし。 数値計算するのに、C++は不要だろうが視認性が良いんだ。 GCのある言語だと数値計算、やたら遅いイメージが拭えないし。 純粋なOOPに、どれだけメリットと恩恵があるのか疑問。 SmalltalkよりJavaが勝利したあたりで、それほど必要だとも思えない >>129 Javaも純粋じゃないけど、GCとまともに使える例外があって オブジェクトが自己記述的だから、C++よりはずっと自然にOOPしやすいでしょ まあJavaはJavaで融通が利かないから俺は好きじゃないんだけどな GCはプログラミングがルーズになるし制御できない部分が気持ち悪い 作ったものくらい自分で始末しろとw >>124 速度に目を瞑ればJavaScriptが割といい線いってるな ブラウザを除けばJavaScriptのユーザは0だけどな >>122 OCamlはまともでないほうに入るんじゃないか? ユーザ少ないし、速度も静的言語では遅いほうだろ OCaml全然詳しくねーけど、チラ見した感じではなーんか微妙 関数型のくせにstringがmutableとか、意味不明なセンスの悪さをそこかしこに感じる structural subtyping一見良さそうだけど、実行時情報ねーから ダウンキャスト(風のこと)はできないっしょ? "O"とかいいつつ、あれで下手にOOの真似事やろうとすると怪我すると思う あとは、ありがちだけどライブラリが未成熟で、Unix系以外ではあんま使い物に ならないっぽいよね OCamlの良いところはな、OCamlかじってなんとも言えない気持ちの悪さ を感じた時にHaskellかじると、なんだ関数プログラミング言語って実は 分かりやすいじゃんって思えるところナンテネ 一般的なプログラミング言語は計算能力において等価だから、 一昔前の言語で能力的には既に十分。 残された問題は、複雑なロジックをいかに簡潔に記述できるか、 それが他人にも理解されるかというだけ。 進歩の方向性はそれくらいしか考えられない。 >>136 これ正に俺だ 最初にHaskell触った時は全然理解できなかったけど OCamlを触った後に再びHaskell触ったら割とすんなりなじむことができた OCamlの表記法はなんともなじめなかったけど 言語進化とか言いながら、単に暗黙の前提仮定が増えただけだったりする。 ルールを知らないと読むこともできない。言語解説書バカ売れ。 制限は減ったのかもしれないけどな。 Haskel,lispが勝利したのは英語圏と米で流行ったからとか言ってみるテスト >>140 おれHaskell好きだけど 勝利してんの? マジで? 流行ったっていうか、関数型の中でもメジャーで市民権を得ているあたり >>133 rhinoとかspidermonkey,seedなんてマイナーそうな実装あるけど あれもブラウザでしか動かないのか? >>139 グローバルスタンダードってそういうものでしょ。 遅レスだけど… >>97 美しい物を美しいまま使いこなせるかどうかは人による 半年くらい前にここ覗いた時は何かJavaキチガイコテが連投してた気がするんだけど、 あいつは結局あの後どうなったん? >>147 今はScalaにはまってる ttp://pc11.2ch.net/test/read.cgi/prog/1262227165/ >>148 thx 超大雑把に流し読みしたが、誰かがガチで叩いたのかw 面白い流れを見逃したかもしれんなぁ つーかよくあんなの真面目に叩く気になったもんだ、良くも悪くもすげーな まぁこんなとこ見てる俺が言えた義理じゃねーけど 彼は特定のアセンブラ言語ではなく、アセンブラ言語の本質的な特性を好んでいるのだろう。 lispだって複数の言語の総称だ。 通訳無しにプロセッサと話せるのはアセンブラだけだしな 厳密には機械語だが、まぁ本質は同じだ ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる