最も美しいプログラミング言語は何か語りませう。 最も美しくプログラムを書ける言語はなにか?ということです。 言語名と理由を書いてください。
美しいの定義を書け。
魔神語
Brai(ry
Whitespace
Whitespace 誰が書いても美しいソースになる。 コメントを書かない限りは。
8 :
デフォルトの名無しさん :2006/07/20(木) 01:22:23
HASKELL!
9 :
デフォルトの名無しさん :2006/07/20(木) 01:26:27
What's faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP? It's Haskell!
>>9 But Lisp is more "beautiful" than Haskel!
Lisp族の1つとしてSchemeを初めて触ったときには衝撃的だったね。 俺の中に今まであったコンピュータは数値を扱うと言う概念が覆された。 数値だけでなく文字列も何もかもアトムとして平等にセルに収まり、 分け隔てなく扱ってしまうことは驚きだった。 というわけでLisp族に1票。 逆に最も美しくないプログラミング言語としては、よい意味でC++に1票。その理念は好きだよ。
あっというまに見た目の話じゃなくなったのは、予想通り
>>11 CommonLispさわってがっかりなんだぜ?
Lispが綺麗なんじゃない、Schemeが綺麗なんだ
>>11 >数値だけでなく文字列も何もかもアトムとして平等にセルに収まり、
>分け隔てなく扱ってしまうことは驚きだった。
そんな機能いまならいろんな言語あるだろ。
LispオタクがLispを真に評価しているのはそこではない。
Lispって人工知能とかに使われてるって良く聞きますが、人工知能がショボいのはその言語のせいじゃないんですかね?
人工知能屋ってのは、一つの言語にとどまって研究を続けたりしない。 ナニをやるかにあわせて、言語を選んだり、作ったりする。一時の彼らの 手段としてLispが選ばれていたというだけだよ。
人工知能屋って言っても最近は膨大なデータから学習とかだろうしなあ わかりきった話だがLispの出番じゃない希ガス
スクリプト系ではpython(見た目だけだけど)。ちなみに今勉強中 尤もインデントによるブロックはpythonのオリジナルじゃないらしいけどね 一番汚いのは……シェルスクリプトかなw
((lambda(scheme)(scheme scheme))(lambda(scheme)(scheme scheme)))
20 :
♥ 殿舎男萌え萌え系?謎 ◆ej9/UehK8Y :2006/07/21(金) 01:17:39
あえてphp
少し前まで C# 2.0が最も美しいを思っていた。 でもプログラミング言語は外見じゃない! 中身だ! 最近はそんな風に思えて来ました。
見た目の美しさと読みやすさは両立するんだろうか?
ルールが少ないのがもっとも美しい。
ルールが少ないと同じプログラムでも プログラマーによって大きくソースが変わりそう
25 :
デフォルトの名無しさん :2006/07/21(金) 02:38:29
Pythonは記号含有率が低くて見た目的に好きだ
26 :
デフォルトの名無しさん :2006/07/21(金) 02:50:16
リスプはきたならしい
リテラル表記の種類が多ければ多い程好き でも Lisp はリテラルを自分で作れるからなぁ...
28 :
デフォルトの名無しさん :2006/07/21(金) 06:38:07
とりあえずscheme(または最小lisp)でしょ。 データ構造がそのままプログラムになる。美しい。 ラムダ計算。美しい。 数十年間現役。美しい。 簡単なものならば、誰でも処理系が作れる。美しい。 ある意味でSmalltalkあたりも美しい。 「プログラマーに総てを委ねる」潔さって意味ではC言語も美しい。最も醜悪な言語でもあるが。
審美眼が狂ってるヤツの見本でした
美しいアーキテクチャは、それだけでは何も産まない
使用者が馬鹿な場合はな
MLって合理的だな。
33 :
デフォルトの名無しさん :2006/07/21(金) 14:16:24
電気信号
美しいって、主観だから いみないよね。
美しく書ける言語でも命名のセンスが無い俺が書く プログラムは非常に醜い。 orz
ループが多ければ多いほど醜い
じゃあ再帰ばかり多用で
スタックオーバーフローを引き起こす可能性のある再帰は 見た目だけ美しい。
39 :
デフォルトの名無しさん :2006/07/21(金) 22:34:39
プログラムの美しさをテーマにするといろいろな意見があって面白いですね。 そもそも美しさってなんだっていう議論も興味深い。いろいろな意見をぶつけあって、お互い尊重して、そんな感じでこのスレッドを楽しみましょう。
Pascal なんだかんだいって見やすい
41 :
デフォルトの名無しさん :2006/07/22(土) 05:07:45
Whitespace だけはガチ
Whitespaceのソース、美しいとは思わんな
最も完結なスクリプト ↓ 「明日までにアレやっといてね。」
return "_" ;
まあこの世で最も美しいのは俺だけどな
ユダ乙
C#はきれいだと思う frameworkは糞だがw
System F
C にオブジェクト指向を足しただけのような言語が欲しいな。
ファミリーベーシック
しかし、Objective-CはCとは別物という罠
だって別の欲しいんだろ?
Cにtemplateを足しただけのような言語が欲しいな。
なんかどんどんマニアックなのが出てきそうだな
Objective-C++
>>55 C++でOOPしないと心に決めてかかればいいだろ。
THINK-C
だれかC--つくって
63 :
♥ 殿舎男秋葉系? ◆ej9/UehK8Y :2006/07/28(金) 08:10:25
アセンブラ
64 :
デフォルトの名無しさん :2006/07/29(土) 02:48:59
そういやF言語ってどうなったんだろうか
織田信長 完全に名前勝ち
66 :
デフォルトの名無しさん :2006/07/30(日) 00:22:01
アンラムダは?
BrainfuckYOU!
いっこうに1.0にならない言語->nasm
Brainfsck(なぜか読めない)とかWhitespace あとShakesphereもアリかな だがここはあえてBASIC
C++は自然言語より複雑なのでは と思う今日この頃
74 :
デフォルトの名無しさん :2006/07/31(月) 00:21:08
>>73 C++は無限に増殖を続ける自然言語だよ。
ただでさえチューリング完全なテンプレートが仕様にある上に、
そのテンプレートを利用したライブラリが標準として仕様になっているのだから
これはもう無限に仕様の拡大を将来に約束してしまったようなものだ。
↑アホ コンパイル時にプログラムできる機構ぐらいで 「無限に増殖を続ける自然言語」って、バカじゃねーの。
まぁ、ここまで全力で釣られてくれたら age厨も本望だろうよ。
お前等の釣りや冗談すら理解できない俺ガイル
78 :
デフォルトの名無しさん :2006/08/01(火) 02:27:18
となると話の流れ的にもっとも美しい言語は 「ライフゲーム」ということでよろしいか?
C# for API2
80 :
♥ 殿舎男秋葉系? ◆ej9/UehK8Y :2006/09/02(土) 11:26:00
機械語
ソースコードの見た目はpythonかなぁ
82 :
デフォルトの名無しさん :2006/09/05(火) 03:46:41
ついに1000体突破かよ アイロボットみたいだな 株ロボもいつか夢を見るようになるのかなぁ
regex
COBOL 触ればわかる美しさ
とりあえず、無限とかいう言葉を平気でいえるやつは プログラマとしてはどうかと思う
for(;;) { // 無限ループ ... }
double.PositiveInfinity
89 :
デフォルトの名無しさん :2006/11/20(月) 07:08:47
意外にjavascriptって言語としては綺麗じゃね?
関わってる面子見れば全然意外じゃない
>89 lisp の物マネ言語だからな。 当たり前。
92 :
デフォルトの名無しさん :2006/11/20(月) 20:41:58
>>91 リスプが美しいと思うのなら魔道に堕ちてる気がするが
そのへんは大丈夫だよね・・・
>>90 Guy Steele しか知らないけど、他にも有名な人が多いの?
またLISPERの起源説か。
全ての言語はlispが起源ニダ
96 :
デフォルトの名無しさん :2006/11/21(火) 12:19:38
APLの美しさ、そして禍々しさ・・・ なめてもらっては困るな
言語ではなく書く人次第
じゃあ、最も美しいプログラマは誰?
100 :
デフォルトの名無しさん :2006/11/22(水) 00:50:49
OOPになって、言語の重要性は低下しているなぁ。クラスライブラリこそ命。
>>100 ライブラリが命になるように、
言語仕様をコンパクトにまとめる事こそ
一番重要だと思う。
102 :
デフォルトの名無しさん :2006/11/22(水) 09:20:01
俺としてはやはりN-88BASICを推したい。goto文を駆使し、あらゆるところにジャンプする様は美しい。DATA文の後の16進数の並びは何物にも変え難い。pokeで手当たり次第にメモリに読み込む様を見ると死にたくなるほどの絶頂を感じる
brainfuckを忘れてもらっては困る
モールス信号の二番煎じにすぎぬわ!!
105 :
デフォルトの名無しさん :2006/11/23(木) 01:48:56
Lispのマクロより美しいものがあるだろうか?
あれより「強い」ものなら無いかもしれないが
なでしかまたはひまわら
C#
Lispは使った事がないから分らないけど 書いてて気持ちいいのはpythonだね
(if (is? Lisp (beautiful language)) (= you magician) (= you (of one people)))
スクリプト系は全般的にシンメトリーじゃないからキモチワルイ
お前IronPythonスレにもいたな
それはお前だろ
言語がシンメトリーってどういう事だ? 直行性が低いとか、そういう意味で言ってる?
VB.NETが最高だと思います。
左右対称じゃないとビル爆破する建築家も居るくらいだからな
西洋人の美的感覚は対称性に支配されすぎてる
>>118 白い線と黒い線しかない場合はどうしたらいいですか?
>>119 パンティだと考えれば自ずと答えは出るだろう
歳がばれる
OOは全部失格です。
124 :
デフォルトの名無しさん :2007/03/21(水) 16:55:59
MS-BASIC、C、アセンブリャー(Z80、MC68000)、C++、Java、Perl、JavaScriptとやってきたゲーム系。 んで、エロい人がみんな関数型言語やっとけ言ってて怖いんだけど、どれくらいやればええのん。 入門サイト一通り見た限りではフーンとしか思わなかったのだが。 何か新しい知見やカルチャーショックがあるでもなかったし。 もっと踏み込まないとダメなのか? でも、別にやることがないから、踏み込もうにも踏み込む場所がないのだが。
>>124 関数型言語って何やったの?あんたの経験した言語から見たら型のパターンマッチや
カリー化、末尾再帰の最適化と新しいことだらけだと思うけど。
末尾再帰最適化は、あくまで「関数型に合わせた」仕様でしょ。 普通にループすりゃいいのに。
型のパターンマッチってポリモルフィズ無となにがちがうのん?
カリー化はともかく、その他の2つはそんなに重要でもないと思う。 型のパターンマッチはC++のテンプレートの特殊化・部分特殊化だって似たような感じだったと思うし、 末尾再帰の最適化は手続き型言語でも一応(コンパイラの中の人担当だが)出てくる。 それよりも副作用の無さを挙げるべきだと俺は思う。
C++ は参照透明な言語であるという話を思い出した
過去レス読まずにカキコ 美しいの定義が非常に難しいけど個人的にはC#が今のところもっとも美しいと思う C++はポインタがうるさくて美しくない JavaはCOBOLチックな過剰なコードを要求する汚さが合って美しくない perlは変数の表現が美しくない VBもCOBOLチックな過剰なコードを要求するし、勝手にソース加工しやがるから美しくない
>C++はポインタがうるさくて美しくない それはポインタを使うから。C++なら明示的なポインタは(必ずしも)言語仕様的には必要としない。 >JavaはCOBOLチックな過剰なコードを要求する汚さが合って美しくない 美しさの根拠として汚さを持ち出すのは意味が無い。 >perlは変数の表現が美しくない 同意。 >VBもCOBOLチックな過剰なコードを要求するし、勝手にソース加工しやがるから美しくない ソースを加工するのは言語仕様か? 処理系が糞なだけだろ。
C#は言語は美しいが・・・ .Net Frameworkはライブラリがヘボイ。 ビジュアルコンポーネントがヘボイ。 ソース付いてないから勉強にならん。
プログラマの心情としてシンプルなものが美しいという点に異論はなかろう。 もっとも文法のルールが少ないものが一番美しい言語。
文法のルールが少ないからといって美しいとは限らないから却下。
文法のルールが少ない、というのは 書き方の自由度が多いのか少ないのか、どっちだろう
>>133 全部ではないがShared Source CLIである程度のソースは公開されている。
>>139 おいおい、8命令も存在する言語なんてシンプルじゃないだろ
つまりHQ9+が(以下略
あれれ、OOは全部失格と書いておいてのだが復活しているな・・・。まあ、 たまに覗いて文句をいう筋合いでもないが。
日本語でおk
143 :
デフォルトの名無しさん :2007/05/05(土) 18:05:46
Ook!も美しい言語なのかな。 Ook.とOok!とOok?だけしかないし。
144 :
デフォルトの名無しさん :2007/05/05(土) 18:10:46
JAVaを中心に世界が回っているって本当ですか?
145 :
デフォルトの名無しさん :2007/05/05(土) 18:15:55
正確に言えば、コアを中心に地球が回ります。
146 :
デフォルトの名無しさん :2007/05/05(土) 18:26:54
>>144 すみません。私は無知なため知りません。
lispが一番美しい
Haskell, Lisp, C
>>133 アレは、配布している.NETランタイムとは実装だぞ。
150 :
デフォルトの名無しさん :2007/05/06(日) 07:26:17
JAVA:106
C++:91
C言語:61
PHP:28
C#:25
VBA:24
VB.NET:26
JavaScript:22
Perl:13
ASP.NET:12
JSP:12
アセンブラ:9
VB6:8
ActionScript:1
Ruby:1
松下エクセルスタッフ
http://tech.excelstaff.jp/index.php
Turing 機械は 1 命令だけど美しいかなぁ。数学やるのには楽だけど。 あと、構文が 3 つしかないのは Smalltalk? 6809 のアセンブラとか美しかった気がする。
>>152 Prologはひとつ? それとも
':-'/1 と ':-'/2 と '?-'/1 の3通りかな
Brainfuckに一票 +++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.++ +++++..+++.>-.------------.<++++++++.--------.+++. ------.--------.>+.
155 :
デフォルトの名無しさん :2007/05/08(火) 05:56:11
>>153 a.
b.
c:-a,b.
これを美しいというか、ということですね。
>>155 再帰の表現は、LispよりPrologの方が美しいよ.
r. r:-r.
>>156 それなら、最も美しい言語の候補に挙げない理由は?
挙げる義務が無いから。
>>158 確かにこのスレではPrologは一度も出てこない。私があげない理由は、
1) 論理は超時間的な筈なのに、Prologとなると実行速度が遅いためか、
導出(反駁)が、動力車が働いているような実時間的な印象になってしまう。
ラファエロの絵にミケランジェロが描き加えているような感じ。
2) 双方向性が完全に確保できていれば、断じて第一席に推すが、実際には
20-30%のコードしかこのように働かない。いささか中途半端。
3) 視覚的な美にいまひとつ。徹底して不均整、左右非対称。
4) 反対に「美は乱調にあり」をよしとすれば、今度は二次元の木構造が
見えすぎて、乱れがなさ過ぎる。もうちょっとハイパーなところがあってもよい。
161 :
160 :2007/05/08(火) 18:30:27
どんな言語でも推薦しない理由なら切りなく挙げられる。 ネタにしかならなかったね。
素朴な疑問: boost って, なんであんな不毛な努力してるんですか? 言語設計からやり直した方が良さげに見えるんですけど...
163 :
デフォルトの名無しさん :2007/05/08(火) 22:59:41
>>162 その疑問に対する回答じゃないが、boost の全てが統合失調症じみてるわけじゃないぞ。
標準化に間に合わなかっただけで、普通に共通部品(ライブラリ)として相応しいものもある。
>>163 > 普通に共通部品(ライブラリ)として相応しいものもある。
bind とか fanction とか fanctor とか lambda とか....
あの枠組みでやるには苦しいなぁ... ...
言語仕様少しつつけば何とかなるんでねぇの???
と, 思っただけなんで, 深く考えての発言じゃないっす.
166 :
デフォルトの名無しさん :2007/05/09(水) 18:20:36
C++が美しくないって言ってる椰子は何を理由としてるんだ 複雑で難解なため? 要素を詰め込みすぎて統一性に欠けるため? 重箱の隅を突くようなルールが多すぎるため? そういう理屈からいくと日本語あたりは 自然言語の中で相当美しくない部類に入るな 俺の美意識からするとC++は最も美しい言語の一つ
なぜか LL(1) 文法 の言語が美しく感じられる。 高級ではないが美しい
>>166 > そういう理屈からいくと日本語あたりは
> 自然言語の中で相当美しくない部類に入るな
それがどうかしましたか?
>>164 bindとfunctionは、次期規格C++0xで標準入り確定と見てよい。もうTR1に入っている。
lambdaは、言語仕様の改良も含め色々提案が出ているようだが、決定打がない模様。
ところで俺は、今まで広く使われてなお輝きを失っておらず、
ファンがいる、使っているところがあるというところにC++の美しさを感じる。
>>166 日本語は文法が整然としていて綺麗な言語ですが。。。
日本語の美しい点は、何より速読性に優れている事だな。 斜め読みがこんな簡単な表現法は無いぞ 漢字ばかりの国やアルファベットだけの国の人はかわいそす
173 :
166 :2007/05/09(水) 20:36:35
>>170 例えば「黒い瞳の大きな女の子」
たったこれだけの言葉に何通りの解釈が可能か?
これは日本語の文法が如何に曖昧であるかの証明
意思疎通不可能にすら思える方言多数
漢字、平仮名、片仮名など文字があまりに多い
これらを考えると整然とした言語とは到底いえない
だが、だからこそ豊かな文章表現が可能な美しい言語だと思う
ルールが少ないとか、ここでよく挙がっているような(プログラム言語の)美しさ
の基準からすると日本語は美しくないということになりかねん
俺の言いたいのはそういうことだ
文章力不足でスマソ
174 :
デフォルトの名無しさん :2007/05/09(水) 21:04:04
COBOLに一票。 ただし正書法フルスペックで書くこと。 一切の省略を無くせば、これ以上の言語はShakesphereくらいだろう。
175 :
デフォルトの名無しさん :2007/05/09(水) 21:39:46
>>173 文章力不足でスマソ
全くだな
ところで
日本語が美しかろうと美しくなかろうと、どうでもいいじゃん。
そんで、何語なら美しいって言うんだい?
ここは自然言語のスレッドじゃないはずだが、、、
176 :
173 :2007/05/09(水) 21:47:06
>>175 >そんで、何語なら美しいって言うんだい?
C++だって言ってんだろカス
あれほど何でも書ける自由な言語は他にない
揚げ足とるくらいならせめて読んでから言え
>>175
ひまわり
>>176 手続的な意味で、出現順を変えたらまったく違った意味になってしまうのではないか?
「あれほど自由」とはとても思えないが・・
179 :
デフォルトの名無しさん :2007/05/09(水) 23:44:57
>>178 それはお前が遅延評価処理を書けないってだけの話。
>>176 >あれほど何でも書ける自由な言語は他にない
>
>揚げ足とるくらいならせめて読んでから言え
>>175 断定するくらいならせめてその証拠となる具体例を出してから言え
>>176
わかるけど、そこで解釈させるであろう並列的なコードは もはやC++であるとは言えない。
182 :
デフォルトの名無しさん :2007/05/09(水) 23:58:50
>>181 確かに。 C++ で、Lisp コンパイラ(インタプリタ)でも書いて、
ほらLispでできることは全部C++でできるよ!って言うようなもんかw
アセンブリは美しい
184 :
デフォルトの名無しさん :2007/05/10(木) 00:19:57
>>181 >もはやC++であるとは言えない。
は?言語の標準に完全に則してるのにC++でないってどういうことだ
>>182 意味不明。例えにすらなってない。
考えもせずに他人の尻馬に乗るのは頭悪く見えるぞ?
185 :
デフォルトの名無しさん :2007/05/10(木) 00:25:51
言語よりも俺様の方が美しい
いっそのこと、プログラム言語 Most Beautiful でも作れや・・・
「レベル4以上のスパゲッティプログラム3体を生贄に、 24番目のプログラミング言語「Alcai son na MON」を召喚!」 「な、なに!美しさ4000だと!?」
188 :
デフォルトの名無しさん :2007/05/10(木) 01:02:48
>>176 > C++だって言ってんだろカス
> あれほど何でも書ける自由な言語は他にない
それ以上のことがlisp系の言語で出来るてるんだが…
つか、 ほとんどLisp系言語の後追いじゃん、C++って
つぎは、continuationのfirst citizen化ですか?
190 :
デフォルトの名無しさん :2007/05/10(木) 02:15:16
>>189 > それ以上のことがlisp系の言語で出来るてるんだが…
具体例をあげてくれ
> ほとんどLisp系言語の後追いじゃん、C++って
は、どこが?だから言うなら具体例をあげろよ
C++で関数型プログラミングは可能だが
Lisp系で手続き型やOOって可能なの?
論理型プログラミングは?ジェネリック指向は?
191 :
178 :2007/05/10(木) 07:32:23
上田和紀氏設計の並列論理型言語 GHC の言語仕様を 思いおこしての書き込みなんだが。
>>190 >具体例をあげてくれ
continuationのfirst citizen化じゃね?w
>Lisp系で手続き型やOOって可能なの?
余裕で可能
というか、OOを一番最初にやったのはLisp(w
>論理型プログラミングは?ジェネリック指向は?
これも可能
ジェネリックという意味じゃLispが究極w
193 :
デフォルトの名無しさん :2007/05/10(木) 08:38:35
>>192 > というか、OOを一番最初にやったのはLisp(w
つsmalltalk
>>190 はLispが関数型言語だと思ってる人なんじゃね?
C++もLispも「マルチパラダイム言語」ってやつの代表格だな。
196 :
デフォルトの名無しさん :2007/05/10(木) 10:09:39
Lispは遅くね? 現実的な選択はC++と思う.
C++は #include が美しくない 最近の言語のモジュール化の仕組みの方が美しい
むかしスポーツメーカーのコピーに 速いものは必ず美しい っていうのがあったけれど、プログラム言語の世界で 自由なものは必ず美しい っていうのはどんなものだろうね。みんなの感想をききたい。
美に指標はいらない。 各自が満足すればいいんだよ
>>193 SmalltalkよりもCommonLispのCLOSのほうが公式な言語としては
早かったはず
「公式」ってのがよくわからんが、公式じゃなくてもいいのなら CLOSよりSmalltlakのほうが早いしSimulaのほうがもっと早いだろ あとLISPならCLOSよりFlavorsの方が早いぞ LISPが最初というのも、Flavorsが最初に多重継承とMix-inをやったってのと 勘違いしてないか?
202 :
デフォルトの名無しさん :2007/05/10(木) 11:57:39
美しさで言うなら、Lispの括弧は汚い。
MACLISP にもOOのモジュールがあった。私が使ってみたのは1980年以降で いつ頃組み込みまれのかはわからない。MACLISPは1970年代前半から開発 されていたはずだけれど、OOの追加時期はずっと遅いのではないかと思う。
OOは汚い。
OOはウンコしたあと手を洗わないらしいからね。
コンストラクタとクラス名が同じOO言語なんて学ばせちゃいけねーよ
> OO 全角www頭悪そうwww # 全角って何ですか?
標準化されたのはCLOSの方が早いね。
CLOSというのは1990年代の中頃に開発されたと思い込んでいました。 そんなに古い言語なのですか。
ヒント:SmallTalkが標準化されたのは何年?
211 :
デフォルトの名無しさん :2007/05/13(日) 20:44:23
CLOSが開発されたのは1980年代
212 :
デフォルトの名無しさん :2007/05/13(日) 20:55:53
これからはサーバーもクライアントも全部Pythonで統一するらしいよ。 Python以外の言語は、なくされ、つくられないらしい。
>>210 その疑問に対する正しい答えは「SmallTalk などという物が標準化された事はありません」だね。
冗談はさておき、ANSI Smalltalk より ANSI Common Lisp のが時期はだいぶ早かったと思う。
Whitespaceがもっとも美しい。
215 :
デフォルトの名無しさん :2007/07/19(木) 19:15:42
俺たちが最も美しい言語を作っちゃえばいいんだ
可読性と、読んでて面白いという点で一番はなんといっても Shakespeare Programming Language だろ。
C++だな。 あまりにも静的。
そいつはもう静的というより、コンパイル時と実行時の2度 動的になる瞬間があるといったほうがいいと思う。 それ以上のLispなども同じ。
オブジェクト指向言語は対象外です
220 :
デフォルトの名無しさん :2007/07/23(月) 22:53:31
どういう感じのが美しいのか お前ら勝手に言語を脳内で創作してHello,worldを理想系で書いてください もちろん応用が利く形でなければ
Hello,world
頼むッ! 標準出力にこれからオレが伝える11文字を書いてくれ! その10文字は 'Hello,world' だッ! 頼んだぜッ!!
あーん? 聞こえんなぁ。
Hello, worldを出力しろ
'Hello,world' が美しくないのが問題だね。どちらかというと滑稽。
test(いつもの)
227 :
デフォルトの名無しさん :2007/07/24(火) 11:57:34
逆に言えば、たかが Hello, world と表示させるのに長々とおまじないが必要な言語は醜いな、 Java とかw
228 :
デフォルトの名無しさん :2007/07/24(火) 12:33:33
cout << "Hello, world";
内容としては間違ってないと思うから書いておく 1995年 5月23日 Java言語発表 1995年 某日 日本映画初CG作品「学校の怪談」でプログラムが世に認められる 1995年 11月23日 Windows95が発売 爆発的ブームになる 現在に至る 今のオープンフェイスOSが存在するのは、Java+CGの影響に著しく関与する
C や Java のような命令型言語っていつまで使われるんでしょうね
えっ、全部宣言型になるということ?
そうか、宣言型の対は手続き型だった。
確かに最近のC++はどんどん宣言型っぽくなってるな。 ネタレスすると、命令じゃなく嘆願型になると大胆予想。 preare句やexcuse句から始まるコードになる。
lとr間違えた… orz
C++ が宣言型っぽく見えるためには、どんな修行を積めばいいですか?
>>235 まずは宣言型の言語を全て忘却する所からだな
その後、C++ こそが宣言が他言語であるとひたすら刷り込む
238 :
デフォルトの名無しさん :2007/07/25(水) 01:43:48
ひまわり
ま、こんな感じの定義になるのかな S=プログラムの仕様の適当な有限集合 d=言語仕様の「長さ」(e.g. formal semantics の長さ) c(s)=「仕様 s∈S を満たす最小のプログラム長」 A, B=適当な定数 美しさ=A*d + B*min c(S) (小さい方が美しい)
Wikipediaの宣言型言語の右側に、プログラム言語一覧がある。 RPGが命令型に分類されているのだが、あれは、デシジョンテーブルに 記述することによって実行を制御してるから宣言型ではないかな。
ちがうか、こうか ×美しさ=A*d + B*min c(S) (小さい方が美しい) ○美しさ=A*d + B*max c(S) (小さい方が美しい)
writeline( 何か小粋な文句 );
245 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 15:25:52
OOPになって、言語の重要性は低下しているなぁ。クラスライブラリこそ命。
プログラミング言語からすると、日本語は美しくないよなぁ
>>245 OOPになって、言語の美しさは低下しているなぁ。辞書引きこそ命。
OOPL だって辞書引きしてるけど?
249 :
名無しさん@そうだ選挙に行こう :2007/07/29(日) 17:06:11
可読性の無い言語は全部クソ ごめんなさいごめんなさいごめんなさい
C++ に謝れ
OOPL の失敗から学ぶことは多かった、そういう意味でだけ OO は評価できる
パラレルワールドから来た人か? 殆ど全ての言語がオブジェクト指向化されたこの時代に…
もともと OO なんて Lisp でウインドウシステムを作るために開発された アドホックなコーディングテクニック(loops, flavors, ...) に過ぎないんだがね 理論的に言えば単なる subtyping
>>252 美しさという観点からはOOを取り込んだ言語はやはり失格!
>>254 Smalltalk は美しいぞ。Lisp 並みに文法のルールが少ない。
Lisp から見れば OO なんて単なるライブラリ拡張だからどーでもいい いまだにオブジェクト指向(80年代の香りプンプン)が、とか言ってる人もいるんだねw ま、そういう素人さんはスルーするとして、 Lisp は確かに一つの候補ではあるが最も美しいかというと同意は出来ない。 OO 程度ライブラリで実現出来る(実際俺のいた某T大では演習問題だったw) というグルーの強力さは類を見ない。 何となく漠然としているが、まず最低限の要求事項として strongly-typed language であることが上げられる。(まあタイプシステムに理論的にも汚い subtyping (= OO) を導入するかは悩むが) その上で、言語仕様が簡潔であり(従って Haskell は NG)かつ Lisp 並みの 強力なグルーを有していることが上げられる。
80年代以前から来た人キター
OO 除外という点は同意
すげえ、このひと自分に同意してるわ…
C++ に謝れ
>>256 なんだかよくわからないが、
strong-typed language が美しいという確信は
どこからでてくるのかな。
>>261 美しいという曖昧な感覚に確信も糞もなかろう>Ruby厨
Malbolgeって無名なの?
黄金比をみたしてない言語はダメだな
1/f揺らぎを満たしてない言語はダメだな
誰?
>>256 すげえ自信満々だが、90年代の香りプンプンだな
前世紀からの書き込みですか?
ruby厨涙目で反論…すら出来ずw
270 :
デフォルトの名無しさん :2007/07/30(月) 00:22:04
21世紀になってからは糞言語しか生まれていない件
>>270 90年代で頭の中が止まったままなら、そういう扱いをされても仕方があるまい
GTKについて語るスレはありますか?
お前ら
>>256 の笑い所を間違えてるぞ。
結局どの言語が最も美しいのか、これだけ饒舌で「わかってる俺」をアピールしておきながら、
実際には「意見をまったく言っていない」のがポイントなんだよ。気付いてやれよ、力作なんだから!
大漁じゃない
>>274 具体的な話をしてしまうと突っ込まれるからじゃないか
lispの「それをlispは既に持っていた」は確に強力だけどな。 この頃はC++がそうなりつつあるのが興味深い(それをテンプレートは既に持っていた) C++はこの先どうなってしまうんだ? ていうか何指向なのよあの言語
あと俺的にはunlambdaが美しいよ。
C++のboostは言語界のお笑い
>>277 ・Cとの互換性はできる限り保つぞ!
・いかなる分野・プラットフォームでも使えるものにするぞ!
・いかなるプログラミングパラダイムも押さえるぞ!
の三本柱を、一言でどう表すべきだろな。
よくばり
つかCでも大規模開発だとマクロだらけで実質別の言語だよなー。
C++=砂上の楼閣
まあ別にC++は、美しさを狙った言語ではないし。
C++は、人間に理解される事を狙った言語でもないね。
人間を馬鹿に置き換えれば、まぁその通り。
そこを置き換えるのは無粋だな
C++=最も醜悪な言語、でおk?
Lispより読める
プログラムの意図を掴むのは割と簡単だけど、何であんなに汚いんだろうね。
PerlもFREEDAMに書いてあると読めない
日本語でおk
C++の汚さ、泥臭さ、低脳さが、 学の無い一般的プログラマ(一般大衆)に受けが良かったんだろうな
そりゃそうだ。 美しさよりも現実に使い物になるかが重要なんだから。 それをわかっていて、そういう道を選んだのがC++。
2行目はもちろん、294の言う学の無い一般的プログラマは、ということね。
C++のコンパイラ作れって言われたら泣く
コンパイラに適した言語って何だろう? C++?
COBOL
>>298 コンパイラを書くのに適した言語ってこと?
ターゲットの言語にもよるけど、C++ はむしろ向いていないよ。
C++=最も滑稽な言語、でおk?
コンパイラに適した言語ねぇ…… Pascal とか思い浮かぶけど美しくは無いねぇ。 言語仕様がコンパクトの方がいいとか言うと万能チューリング機械とかが入っちゃうから嫌だなぁ。 構文規則の割に書きたいことがすらすら短く書けるのがいいかな?
>構文規則の割に書きたいことがすらすら短く書ける Smalltalk はグッド
Smalltalk Prolog などが浮かぶけれど、 どちらも、美しいとは言い難いな。 関数型よりまし、という程度。
Prolog はシンプルだけど楷書(正書)しかない感じ。 行書も草書もたまには篆、隷も欲しい。 Smalltalk だとメッセージの宛先なんて、文脈上 たいていの場合省略できるはず。もっと自由に。
コンパイラはOCamlとかHaskellあたりの 代数的データ型とパターンマッチのある言語が書きやすいと思う
308 :
305 :2007/08/20(月) 16:11:03
ゴメン これコンパイラの話じゃない。ただ美しさについて。 Prologはコンパイラ作るのが難しい言語かもしれない。
Smalltalk の「メッセージ」って、関数呼び出しのシンタックスシュガーだからねえ 見た目で釣られる馬鹿には受けがいい言語らしいけどw
とか言う奴でSmalltalkをまともに読み書きできる輩を見たことがない。
>>309 >関数呼び出しのシンタックスシュガー
シンタックスシュガーの意味をちゃんと理解してないだろ。
単なる制御構文に還元されるメッセージ呼び出しもあるから、
「関数呼び出し」にわざわざ限定する意味も無いし。
丸出しだな…
見た目も重要な要素だと思うが。 Smalltalkのキーワードメッセージが読みやすくて好きなんだけど、 あれが他の言語に採用されないのはどうしてだろう?
そういや大学の時、「C 言語は汚い。ソースコードのどこにでも {} が書ける」 とかいうネタで酒飲んだことある。 このセリフを言った人の美的感覚は構文規則にソースコードの美化を保つ仕組がない のが嫌だったんだろうね。 でも意味を変えずに特定の記号をいくらでも配置できる言語なんて ほとんどの言語がそうなんじゃないだろうか?
SELECT (DEPTNO,DNAME,LOC) FROM DEPT; でエラーになるのはおかしい、 というネタで珈琲飲んだことならある。
今頃はPythonあたりを称えてるのかな。
Prolog はホーン節というのだそうで、 頭部に ひとつの項しか記述ができない。 p1,p2,p3 :- q1,q2. のような定義はできない。それで条件節はどうしても 頭部 :- 本体 の本体側が重くなる。ここが美しくない。 そのこと以外、構文規則や表記法などはもっともすっきりした言語の ひとつだと思う。
>>313 fortranやcobolに慣れ親しんだ人なのかね。
>>312 正確には、あれを採用した言語がメジャーになれないのはどうしてだろう?…か。
採用した言語はいくつかあるから。
マイナーメジャーなところでは SELF とか Objective-C とか。
その答えも、きっと単に C 言語に似ていないから…かとも。
あと、それこそ見た目に惑わされて recevier doSomething: arg1 with: arg2 が、
recevier.doSomething:with:(arg1, arg2) あるいは、
doSomething:with:(receiver, arg1, arg2) に過ぎないと言うことに
意外と気づく人が少ない…ということとか。コロンを関数名に入れられる
言語が少ないために、この読み替えに馴染めない…とか。
いろいろあるけど、結局は Smalltalk がメジャーになれなかったから…でFA?
Smalltalk なんて、CLOS から見たら小学生の○○ゴッコにしか見えないな 所詮、頭の悪い人が設計した糞言語
# Dan IngallsやAdele Goldbergをバカに出来るということは、そりゃもう滅茶苦茶に # 賢いんだろうなあ。 あの分かち書きが流行らんのは、入れ子になると読みづらいってのもあると思う。 hoge doSomething: (fuga doSomething2: page with: piyo) with: foo. に比べると、 hoge.doSomething(fuga.doSomething2(page, piyo), foo) のほうが通りが良いと言うか何と言うか。
Smalltalk の理論的な innovation って全く無いよね
322 :
デフォルトの名無しさん :2007/08/22(水) 01:24:20
cは少なくともPerlよりはキレイ
323 :
デフォルトの名無しさん :2007/08/22(水) 07:56:28
言語もマスターしていない批判坊www
>>316 Prologは反駁が美しいか、という根本問題がある。それと、
論理変数のリンクがストリームとして意識されるところに
特徴があり、このストリームが赤、青、黄、と色付けされた
配管のように見えてくる。この印象は美しさとはほど遠い。
思うんだけどさ、ビット演算子に数限られてる記号を割くのってもったいなくね? 昔と違ってビット演算の割合って減ってるわけでしょ 今はそのオブジェクトにメソッドがあるかどうか、が重要なだけで、 つうか型チェックが必至てビット演算くらいじゃね?
記号を割くのがもったいないということに関してだけなら、 BASICは昔からアルファベットを使ってきたよ。ほかにもそんな言語いくらでもあるだろうし。 AND, OR, NOT, XOR VBにはIMP, EQVまであるけど、これはどこのBASICも持っているものなのかな?
.AND., .OR., .XOR. .NOT., .EQV., .NEQV. .EQ., .NE., .LT., .LE., .GT., .GE.
328 :
デフォルトの名無しさん :2007/08/23(木) 04:48:23
>>326 SP-5030では「AND, OR, NOT」が中間コードに定義されていた。
GHC(KL1)
プ
332 :
デフォルトの名無しさん :2008/04/21(月) 23:25:36
P系言語の美しさ寸評。 Pascal case文がブサイク。それ以外は美しい。 Python ブロックのコロンがブサイク。それ以外は美しい。 PHP <?php 〜 ?> がブサイク。それ以外は並。 Prolog 角括弧の多用がちょっと見苦しいが、これは仕方ないだろう。 まあまあ美しい。 Perl 何から何まで全部ブサイク。美しい所なんか皆無。 PL/I 知らん。
333 :
デフォルトの名無しさん :2008/04/21(月) 23:31:31
Rubyしかあり得ない。 人類が皆Rubyを使えば世界に平和が訪れ 神から祝福されることだろう
なら、要らないや
Rubyが「美しい」とは思えない…
Ruby のデザインは素人臭くて使う気がしない
337 :
デフォルトの名無しさん :2008/04/22(火) 04:30:28
高速なネイティブコードを吐くコンパイラと SLIME並みの開発環境があればScheme最強
そんな言葉初めて聴いたけど Scheme は俺も良いと思う まあ俺は常用しないけど
340 :
デフォルトの名無しさん :2008/04/22(火) 07:56:37
スキーウェアのデサントが使ってたコピーですね。
>>337 LISP(系)の言語は丸くしっとり囲まれて美しいですね。
手続き型の諸言語は迷走しないための枠が必要ですから、
どうしてもゴツくなるようです。
クラス別にして、別枠で競った方がよさそうですね。
343 :
デフォルトの名無しさん :2008/04/22(火) 08:49:41
全てがendで終わるRubyこそ美しさの賜物である
COBOLは EXIT PROGRAM. かな
345 :
デフォルトの名無しさん :2008/04/22(火) 12:15:28
>>343 endが邪魔
Pythonの美しさを見たまえ
美しさと実用性は反比例するのか???
反比例とまでは言えないけど一致はしないな…。
言語を美しくするためにはコストがかかる。そのコストが 往々として速度の遅さにくる。 Prologなどは極めて簡潔な構文を得る代償として、どんな些細な 処理でも4本のスタックの push pop を繰り返す。
>>345 endだけあってbeginが無いのはアンバランスに見えるな。
beginとendの対は崩してはいけない。
Pythonはbegin〜endも{〜}も無いから美しい。
Rubyみたいに片方だけ有るってのはものすごくブサイクに見える。
あぁ、そうか 俺がRubyで書く時に感じていた不安感はそれだったのか…
美しい方は良くわからんが もっともバッチイ言語の一つに c++0x が名乗りを上げたことは確だ
もっともバッチィ言語はDOSのバッチィファイルだろ 駄洒落だと思ったら大間違いだぞ。 本当にバッチィぞ。
353 :
デフォルトの名無しさん :2008/04/29(火) 13:13:44
endがあるのがいいとか悪いとか 対になってるのがいいとか悪いとか そんなくだらないことはどうでもいい
354 :
デフォルトの名無しさん :2008/04/29(火) 13:31:23
do endって{}と違ってviの%で飛ばないから嫌い。
>>352 出来上がったコードの問題だったらちゃうよ
新しくなる予定の C++0x の lambda の仕様を見てみれば?
ASTレベルでバッチィいんだが…
>>353 くだらない事にこだわるのが「美」ではないだろうか?
357 :
デフォルトの名無しさん :2008/04/30(水) 00:22:34
いや、そこに本質的な意味があってこそ美しい
アセンブリが美しい 初めて勉強した時には感動した まさに最低で最高って感じ
>>357 禿堂。独りよがりの美意識なんてプログラミング言語にゃ不要
>>359 記法に本質的意味を求めるのもなかなか難しいと思うな。
記法ではなく、規則に美しさがあるんだろう
「無料で学べるプログラミングツール」bookでケンサ子
シェイクスピア言語が一番美しい。 --終了--
>>363 この言語を日常的に使っている人がこう書き込んだのだとすると、
うーーん、と感心するところですが、実際のところはどうなんで
しょうね。
365 :
デフォルトの名無しさん :2008/05/03(土) 22:08:03
シェイクスピア言語のプロは文系なのか理系なのか
プログラム言語ではありませんが、近年流行の「お品書き」ね。 あれ、美しいと思いますか。
>>366 もしかして、黄山谷の草書みたいなプログラム言語を
夢見てたりしない?
いいねぇ。作ろうよw
それ言語じゃなくてfontじゃw
>>369 シェイクスピア言語の向こうを張るためには、連綿くらいしないと。
シラフでは決して通らないコンパイラとかね。
美は乱調にあり。ですか。
2ch風(実は帝国陸軍風)に。 美ハ乱調ニあり。 これを、Prologをアセンブラとして、 美ハ乱調ニあり。 -> 美(乱調). に落とす。なんていうのはどうですか。 奥行きがありそうだと思いませんか。
意味判らんが、エンコードに失敗してる
>>374 おちゅーしゃ ってEUCの半角エンコードしないのかな。
美(乱調). 乱調(美). あり(美,乱調). いろいろあるね。こういうの奥行きがあるっていうw
>>376 Prologもそんな風に積み上げていくと、着物の文様ようで
美しいじゃないか。
文様のようで ね
「李太白憶奮遊詩巻」のようなものはさすがに難しいが、 最終的にはプログラムも「墨跡」のようなものになって 行くのではないか。
>>379 3D-Visulan っていうのがある。私は使えないが。積み木を重ねて、
グラフィック制御を定義する。ちょっと可能性を感じる。
墨跡ということになると、量子プログラム言語などというキャチフレーズが
付きそうだが、50年くらい遅れてる。
そりゃ、単にアナログプログラミングだ。
まあ兎に角、シェイクスピアには触発される何かがあることは確か。 美しいとは思わないけれど。
383 :
デフォルトの名無しさん :2008/05/20(火) 20:36:41
間違いなくRuby
C#
美しさに拘るならやっぱ色々言語を使ってみて 最終的には俺言語を自作する所までやるのがいいのかもしれないね
最も美しい美人は誰か? と問うに等しい。
私も僣越ながら「究極的に美しい言語を作ってやるぜ!」と野望を抱いていましたが、 PrologやBrainfuckのことを知って「この美しさは超えられない!」と諦めました…。
>>388 これって究極の宣言型と手続型言語なんだね。それなら、
手続型部門: Brainfuck
宣言型部門: Prolog
OOP部門: Smalltalk
審査員特別賞: Shakesphere
でどんなもんだろう。
Brainfuckが手続型部門というのはどうなんだろ… それにパズル部門?とするならWhitespace の方が「美しい」と思う。 あと、関数型のHaskellもはずせない。
>>390 Brain* は確かに少し無理があるか・・。
OOを取り入れるとどうしてもゴツくなってしまって
見た目の美しさは失われるから、公平に評価し難い。
これは別にOOP部門を設けたい。
Haskell 美しいかなぁww
Grassも美しい
理屈を付ければ通る、的な言語はいやだね。 関数型にもあるけど。
理屈馬鹿の言語、効率馬鹿の言語、省略馬鹿の言語、矯正馬鹿の言語とある中で、 やっぱりRubyのバランスの良さは飛び抜けてるね。圧倒的に美しい。 既存の様々なコードもさることながら、アンチのレベルの低さもまた、逆説的にその証明になってる。 他の言語はアンチの言い分にもそれなりに「見るべきところ」があるわけだけど、 Rubyのアンチは勘違いからくる言いがかりと人格批判だけ。欠点がまともに指摘されることが殆ど無い。 勿論この世に完璧な言語など無いが、それでもRubyの欠点を「正しく」挙げるのはそれほどに難しい。 これはすごいこと。現状、神の言語に最も近いのがRubyだ。
なんだろう…これが既にアンチに見えなくも無い俺は病気なのか
397 :
デフォルトの名無しさん :2008/05/25(日) 15:46:19
神の言語に最も近いのがRubyだ。 神の言語に最も近いのがRubyだ。 神の言語に最も近いのがRubyだ。 神の言語に最も近いのがRubyだ。 神の言語に最も近いのがRubyだ。
398 :
デフォルトの名無しさん :2008/05/25(日) 16:17:07
やっぱA言語(APL)だろw 予約語の少なさは他の言語も 見習うべきだ。
399 :
:2008/05/25(日) 16:17:47
Rubyの英語版のWikiにruby作った人の写真があるけど不細工だな。 ていうか外人ってわざと日本人の不細工に写ってる写真使う気がする。サッカー選手とかでも感じる。
被害妄想乙
401 :
デフォルトの名無しさん :2008/05/25(日) 16:40:29
やっぱIoだろw 予約語がないところは他の言語も 見習うべきだ。
予約語無いと最適化の邪魔になりそうだからバンバン予約語作ってくれたほうが嬉しい
FORTRANにも予約語はなかったな。
>>403 普通予約後が少ない場合は演算子なり記号に
置き換わるだけだから別に最適化の役にはたたんだろ…。
予約語が多いと使えるシンボル名が減ってウザス。
COBOLのPICとPICTUREとかまったく同じ意味なのに予約語とかアホかと
406 :
デフォルトの名無しさん :2008/05/27(火) 13:14:13
なでしこ
他の事を書こうとしたが
>>406 で納得してしまった
ラムダ計算
これ以上分解できない最小の単位というのは美しい。 よってマシン語が美しい
これ以上分解できない最小の単位というのは美しい。 よってCPUロジックが美しい 冗談はさておき、ペンティアム系の、86系に増築しまくった歪なマシン語がとても美しいとは思えない。
増設された年代別に分けて見るよろし
>>411 >よってCPUロジックが美しい
つ[論理ゲート]
簡潔なものを美しいとするグループと、 複雑でも筋の通ったものを美しいとするグループがあるらしい。
混沌に美しさを感じるアナーキストはどうすればいいですか
Malbolgeがあるじゃないか
どうやっても言語に高度な機能を載せていったら結局C++みたいになる しかないと思うが。 Class obj; obj.Func(); オブジェクト作ってオブジェクトを操作するのってこれ以上簡潔な 記述方法ももうないわけで。最近の言語は大体みんなこうでしょ。 ヒープに作る言語は Class obj = new Class; obj.Func(); とかだけど、書くのめんどうだし速度も遅いしそういうJavaの欠点を C#はまたC++みたいにスタック生成もできるとかに修正してるよね。 テンプレートを付けると Class<int> obj; obj.Func(); これも最近の言語はどれも同じだし、関数も Func(Class obj); だけど、これに変更不可とか値渡し参照渡しを機能として付けると Func(const Class& obj); Func(readonly Class obj by ref); とかにするしかないわけで、Javaとかconstなしとか機能削減すれば もちろんより簡単に書けるわけだけど、当然その分性能が悪くなる。 んで、CとかC++の読みづらいソースとかはライブラリとかに依存する 部分がほとんどな気がするよ。LPCTSTRとか自社マクロが大量に定義され ちゃっててCreateWindowなんて引数が大量でそらで書くのはほぼ無理みたいな。 上の方にも書いてあったけど、今どきは言語の機能/文法なんかほぼどれも似たり よったりで大差なくってそんな重要なことじゃなくってさ、それよりOSが提供する 機能が簡単に使えたり、その他アプリケーション作るために必要な大量にある ライブラリ機能とかがどれだけ豊富で(Win32とか.NETとかCPANとか)、いかに 簡単に使えるかとかが重要だと思うんだが。
LispやPrologはどうなんだい? 機能と美しさの関係をどう考えているのかな。 20世紀の歴史をもう一度見直した方がいいんじゃないか。
機能と美しさねぇ。ソフトウェアを作る上で必要な概念ってあるじゃない? プロセスとかスレッドとかファイルとかXMLとかウィンドウとかDBとか いろんなパーツがさ。こういったのをうまく抽象化できて生成削除が うまく扱えて、それぞれをうまく繋げることができて、総合的には 容易にアプリケーションを構築できて、新しい概念や変更が発生した場合にも うまく繋ぎかえることが可能なものが上手というか美しいのかなとか思ってる 程度だけど。 foreachとかlambdaとか高階関数とかも言語ごとにいろいろあるけどそれほど 本質的な話でもないかなと。あるともちろんいろいろと便利だとは思うんだけど、 それよりも現実的にはUnicodeはきちんと扱えるんですか?とかの方が重要だったり。 歴史を見直すって具体的にはどう見直してなにを見出したいんだ? おおざっぱには20世紀はC++/Javaみたいな大衆向け現実指向言語がlispなり prologなりを圧倒した感じがしてるけど。 RubyなりPythonなりは動的機能とかがあるけどC++/Java/C#と概念にあんまり 違いを感じないんだが。
機能を徹底的に追求すれば、自ずと美しさがそこにあるという確信だけど。 それを追求しきれずに終わったのが20世紀だという意味。 ここでいう機能は「無駄を省く」という概念を含んでいて、その点で あなたの挙げた言語群は機能的な美さへ持っていない。 C#はC++よりまし、というような言い方はできるが。
うーん、その機能を追求すると結局C++みたいな方向にしかならん気がするん だよね。細かいとこは修正できるかもしれんけどさ。 プロセスを作りたいと。 Process p; p.Create("hoge.exe"); ウィンドウを作りたいと。 Window w; w.Show(); これ以上簡単に表現できる必要もさしてないわけで。 そしてこのへんの表現方法は言語よりもライブラリの設計が担ってるわけで。 ただまあオブジェクト指向以外の方向だとまた違うかもしれないけど。 でもオブジェクトみたいに状態を持たせずに例えばウィンドウとかを管理 するのって難しくないかな?
424 :
デフォルトの名無しさん :2008/08/27(水) 07:10:43
C++は言語自体よりもMSのぐちゃぐちゃなライブラリ(Win32/MFC/ATL/COM・・)が だめぽだと思う。 文字列を表す型が_bstr_t/CComBSTR/CString/char*/wchar*/std:string/ std::wstring/OLECHAR*/BSTR・・ ボンクラどもがライブラリを設計するとどんな言語でもだめになる。 これからの言語は言語設計もだけど、それ以上にいかに使いやすい質と量が そろったライブラリを提供できるかが重要だと思う。
要するにライブラリに登録されてる手続きとか関数を 縦に並べれば、抽象化された表現になり美しいといいたいんだね。
そしてC#が生まれた
バッチファイルが一番美しいってことになるね。
そういう意味では一つの概念には一つのやり方のPythonは美しいね
>>428 どういうこと? 少し詳しく説明してください。
>>428 最近はひとつのことでもいくつかの書き方が出来るようになったから、そうでもないけどね。
431 :
429 :2008/08/28(木) 20:37:17
Pythonのコンセプトからいって、ライブラリの中身は誰が書いても あまり変わらず書けるということはわかるけど、それを呼び出す側は どうなるというのかな。
昔のモジュール型言語は見た目は悪いけどプログラムを読むのは楽だった 関数のネストが1,2個だったからね オブジェクト指向は確かに見た目は綺麗に見えるけどただのパズルだよ 全体を既に把握してる場合は抽象化されたクラスは見やすいが 把握してない人間がソースをトレースしようとすると何重にもネストされた 関数郡が実行順位も不明確な状態で分散されてるごみの塊
>>432 何が何を呼んでいるか、
気にしないようにしよう(気にしなくても問題無いようにしよう)と、
潮流が変わったんだよ。
気にするのに疲れちゃったからね。
最も美しいプログラミング言語か やはり、C++しか無いだろう 「華麗にして醜悪」「壮麗にして貧弱」 そんな相反する要素を持っているのはC++以外に無いしな
そっから華麗と壮麗をさっ引くと俺の知ってる C++ になるぜ。
華麗さと壮麗さは使用者のスキルに依存します
という事は純粋に言語自体が華麗で壮麗という訳じゃないんだね。 まあ C++ はそんな所だろうな。
芸術ってのは、やはり書き手の技能に依存するんじゃないだろうか。 弘法筆を選ばず
チョークは芸術じゃないからね
じゃあ何なら芸術?
道具が芸術になることはないだろう。
443 :
デフォルトの名無しさん :2008/09/06(土) 22:35:27
forthだな
>>442 では美しいプログラミング言語は道具ではない(道具としては役に立たない)のかな?
forth はゲームみたいで良いね
>>444 話の流れが理解できない人は、無理して参加しなくてもいいよ。
C++ は美しい、という話の流れだと思ってたが・・
美は乱調にあり。
美しさという言葉が最も似合わない言語なら Java かな
機能美なら当て嵌まる
>>245 OOPの枠内で考えるからライブラリに目がいくのではないか?
453 :
452 :2008/09/19(金) 20:37:51
なかったことにしてくれ
音楽だと不協和音が逆に美しかったりするだろ。 醜さの中にも美しさは見出せると思うんだ
真幸乙
456 :
デフォルトの名無しさん :2008/11/28(金) 16:06:31
テキストエディタの着色機能がでかなり変わると思う
457 :
デフォルトの名無しさん :2008/11/28(金) 16:36:46
リストアップするスレじゃなくて自分の意見を書くスレだから、 別にその言語を推す何人目になっても構わないんじゃないかと。
Haskellってことでいい?
いいよ
重っ苦しいな。
96117515 80402966 28237893 29335028 49310357 07361287 0132343
javaで完全にクラスの呼び出しのみで出来たプログラムは綺麗に見えるけどな. 他人がそのソースを一目で理解するのは難しいが
>>464 所詮、その程度のプログラム
美しくはないな
Haskellにしても、OCaml,Ruby,Python,Java,C#などみんな。 Prologならappend一つで済むものを汚い!汚い!
inc dec set clr halt jz [飛び先] jnz [飛び先] の7個の命令だけで出来た言語 チューリングマシン語を分解したようなやつ。
>>467 jz あれば jnz いらなくないか?
>>469 チューリング完全の必要最低限という意味なら不要。
対称性の為に入れた。
jnzを入れるか入れないかに対して大してこだわりはない。
>>467 ピュアリスプなら以下のオペレータで可能です
car cdr eq cons quote atom cond(if)
こだわりのない言語は美しいとは言えない
473 :
デフォルトの名無しさん :2009/04/04(土) 15:35:50
いいね(微笑
ねーよw
475 :
デフォルトの名無しさん :2009/04/18(土) 14:02:05
美しさではHaskellが一番だと思ってます。 数学的な美しさを一番素直に表現できる言語かと。 IOモナド使うと他の言語と変わらなくなってしまうけど・・・ 個人的にはパターンマッチとガードさえあればif,caseも要らないと思ってしまいます。 言語仕様から排除して問題ないんじゃないかとすら思えて・・・
んな事言ったらdo構文こそいらない。
477 :
デフォルトの名無しさん :2009/04/19(日) 09:19:14
>>476 私もそれは思いますが、あれは必要悪かと・・・
>>477 美しさを評価しているのに必要悪ってなんですか。
479 :
デフォルトの名無しさん :2009/04/20(月) 22:15:11
>>478 何と言いましょうか。純粋関数型言語が手続き型言語と同じ順番に依存した処理をするために手続き型言語をシュミレーションする仕組み(モナド)の構文糖衣なんですよ。
純粋な関数型言語らしい書き方はとても美しいのに、手続き型をシュミレーションしないといけない場面(入出力・代入)がどうしても必要なばっかりに出来た一点のシミ。
Haskellの達人たちはそのシミを必要最小限に抑えられると聞きます。
でも、そういう欠点で言えば他の言語に比べて一番(仕様的に)不満の少ない言語だと感じています。
例えば、Smalltalkはオブジェクト指向言語では最高だと思いますが、メソッドは全てpublic。フィールドは全てprivete。変更不可と言うのが不満です。
Rubyはその点の不満は無いですが、Smalltalkと違い、if文等(+,-,*,/)の制御構文はオブジェクトではありません。
Haskellはもちろん、if文(正確にはif式)すらも関数で、+,-,*,/も関数です。モジュールなどでアクセス制御も不満な点はありません。
何より、アルゴリズムをもっとも素直に表現できる言語であるところが最大の魅力です。
480 :
デフォルトの名無しさん :2009/04/20(月) 22:47:52
qsort [] = [] qsort (x:xs) = qsort [a|a<-xs,a<=x] ++ [x] ++ qsort [a|a<-xs,a>x] 今更ですが、長文すみませんでしたm(__)m クイックソートのコード載せて帰ります。
要するに全てをHaskellで書けば良いというわけだな?
482 :
デフォルトの名無しさん :2009/04/21(火) 01:21:27
ええと、私もまだ勉強中の身ですが、モナドもHaskellの文法ですので正確に言えば入出力や代入を必要としない処理(少なくともあまり必要としない処理)だととても美しいです。 IOモナドが無いと実行結果がばらばらで出力されてしまいます。(原理的にそうらしいです) 実際にはIOモナド使わないと結果が見れないのでばらばらで出力された所を見た事無いですが・・・ せめて、IOモナドとかを直接見ないですむ仕組みで(個人的にはRAD環境とか何かしらのラッパーとか)Window(X-System含む)アプリとか出力(や状態を保持する処理)の権化みたいなアプリを書ける仕組みがあれば完璧です。
483 :
デフォルトの名無しさん :2009/04/21(火) 01:30:54
何か、長文になる癖でもあるみたいです^^; またまた済みません・・・ 今後、なるべく短くなるように頑張ります。
よし、君が作るんだ!
485 :
デフォルトの名無しさん :2009/04/21(火) 07:27:51
私じゃ全然実力不足ですよぅ^^;
ruby の if とかは文じゃなくて式だよ
きたねえ言語だな
なんでもかんでも式ってのは一様性の観点からみて美しいだろjk
489 :
デフォルトの名無しさん :2009/04/21(火) 20:02:12
>>486 あ、そう言えばどこかで聞いたような・・・
済みません間違いでしたね^^;
でも・・・何が不満だったっけ?
と、思い出してみたらRubyは(当たり前だけど)Rubyを動かす環境はオブジェクトじゃなかったのが不満だったんでしたっけ・・・
SmalltalkのOS(仮想OSであるSmalltalk)もオブジェクトで、分からないことはオブジェクトに聞け!!って環境は中々得難い体験でした^^
>>489 >SmalltalkのOS(仮想OSであるSmalltalk)もオブジェクトで、
>分からないことはオブジェクトに聞け!!って環境は中々得難い体験でした^^
Smalltalkは抽象度が高過ぎて、自分にはもどかしかった
汚い物を汚い物として直接触れないのも不便です
491 :
デフォルトの名無しさん :2009/04/21(火) 20:58:06
ええと、まあ・・・分かります。 私も何だかんだとDelphiやVC#メインですし^^; でも、ここは「美しい(ry ある意味、抽象度を高めるのがプログラミング言語の歴史な訳ですし^^; それを言ったらHaskellはSmalltalkよりさらに抽象度高いですよ?
ならLispの方が抽象度高いんじゃないの? 更に言えばWhitespaceやBrainfuckの方が・・・・
493 :
デフォルトの名無しさん :2009/04/21(火) 22:57:13
LispのS式って万能のデータ構造とか聞きますし、そうなのかも知れませんね^^ 残念ながら、私はLisp挫折しているのでまだ分かりませんが・・・ 来月辺り、littleSchemerを買って再チャレンジの予定です^^ ただ、私が思うに一般の人がプログラミング言語の美しさを理解できる限界がHaskellなんじゃないかと思っています。 数学の表記をほぼそのままコードに落とせますし。 私の想像ですが、Lisp系はさらにその上の抽象度で、一般の人より上の見方が出来る人じゃないと美しさを感じられないのではないかと想像しています。 WhitespaceやBrainfuckは・・・まだ入門すらしていないのですが、ラムダ計算をそのまま書ける言語っぽい雰囲気を感じますね・・・ どこかに良い入門サイトがあれば教えて欲しいです^^
>>491 抽象と書いたのは、やたらとモデル化したり階層化したがる事を言いたかったんだ。
Haskellはハードウェアの実装から遠いという意味では抽象的ですが、プログラムの
作り方は割りとダイレクトな言語だと思います。
Brainfuckはこの板に専用スレがあるからそこからVIPのWikiに行くといい。 λ計算なら寧ろ、grassじゃないかな。それも専用スレがある。
…と^^が多い文章は全く美しくない
つーか、Lisp程度で挫折するヤツが偉そうに限界とか語るなよ。
498 :
デフォルトの名無しさん :2009/04/22(水) 19:48:28
>>495 Brainfuckスレ見てきました。
限りなくチューリング機械に近い言語ですね。
これはこれで凄いです。
幾何学模様で確かに芸術的な美しさがありますね。
>>494 >やたらとモデル化したり階層化したがる事を
ああ、納得です。
家系図みたいに連綿と受け継ぐ傾向はありそうですね。
>>496 まだ書き込み始めて数日なので、ルールとか良く知らないのですが、…や^^は書かない方が良いのでしょうか?
一応、書かないように気をつけてみます。
>>497 アマチュアの日曜プログラマーの戯言ですので、あまり気にしないでください。
単純な関数程度ならLispでも書けますけど、プログラミング言語を知らない人が見ても理解できそうな書き方はHaskellの書き方だと感じたもので。
死ね
あなたらしさが出ているので…や^^は書いたほうがいいと思う
むしろ…と^^だけの言語を作ったほうが良いと思う
散々くだをまいといて「日曜プログラマです」とか恥ずかしくないのかね
>>503 “一般”の人には理解できないから駄目な言語ってんだろ。たぶん。
前提が間違っているととんでもない結論に至るな。
A ・・・ Axum ★ B ・・・ B言語 C ・・・ C/C++/C# D ・・・ D言語 E ・・・ Erlang ★ F ・・・ F# ★ 実際の世界は並列に動いている。 世の中をモデル化するときに並列という概念がプログラミング言語に備わっていれば 美しくプログラムをかけるんじゃないかと。。。並列指向の★に期待。
アルファベット順というのは無意味だったので、パラダイムで整理するとこんな感じか。 構造化 ・・・ BASIC オブジェクト ・・・ C++ 関数型 ・・・ F# 並列 ・・・ Axum だんだん下にいくほど美しくプログラムが書けるようになるのかな。
マイクロソフト以外だとこんな感じか。 構造化 ・・・ C/Perl オブジェクト ・・・ C++/Java/Python/Ruby 関数型 ・・・ Ocaml/Haskel/Lisp/Scheme/Scala 並列 ・・・ Erlang
Lispはマルチパラダイム言語。
C++もね。
>>504 君が知らないだけだろ。なんで
>>503 のタイミングで持ち出したか
理解できていないようだから。
きみはプログラミング言語より日本語の勉強をしたほうがいいな
既出ならごめん ニモニック
ちょっとわき道にそれるが、
>>508 とも関連するが、
システムを作るときにDSLを作ることはよくある。
その際、システムに最適化されたDSLが作れたとき美しいと感じるときがある。
ある販売管理システムが
START
A 100 100
B 0 0
C
END
とかけてしまったら美しいと感じないだろうか。
システム作りでの美しさとはそのような抽象化でもありえるのでは。
まあ、このスレはその抽象化を行うのに美しく作業できる言語は?とうのが主題ではあるけれど。
516 :
デフォルトの名無しさん :2009/04/23(木) 20:38:05
>>499 これは・・・私に言っているのでしょうが何を不満に思ったのか書いていただかないと改善しようが・・・
あ、一応、私らしさが伝わるそうなので戻しますね?
書き方に不満があったら投票でもしましょうか^^;
Lisp知りもしないくせにとか言われると耳が痛いですが^^;
強力ではあると思いますが直感的ではないなぁ、と。
まだまだLispに数学的な美しさを見出すには修行不足のようです^^;
>>502 くだを巻いていた気はないのですが、気に障ったのなら謝ります。
自分を誇張表現するより、ありのままの自分で美しい言語とは?を話したいので正直に自分のレベルを明かしました^^;
>>503 ごめんなさいm(__)m
Prologは私の感性との相性が悪いみたいでどうも美しいとは感じていませんm(__)m
理由になっていないと言われるでしょうけど、変数が大文字で始まらなければならないのが、どうしても受け入れられません。
一階述語理論自体には興味はあるのですが、どうも変数が大文字で始まる言語だけは受け付ける事が出来ないようです。(なので、Erlangも同様な理由で受け付けられません^^;)
Javaにでも脳を侵されてしまっているな・・・とは感じているんですけど、駄目なんです><
それでも論理型言語の何が魅力なのかちゃんと知りたいと思い、関数論理型言語Curryなるものに注目しています。
まだ、英語のチュートリアルを落としてざっと読んでもHaskellっぽくしか見えなくて、論理型言語の特徴を見分けるに至っていませんが、時間があるときにじっくり読んで勉強するつもりで居ます。
517 :
デフォルトの名無しさん :2009/04/23(木) 20:42:43
Javaばかりを悪者にしてはいけませんでしたね^^; でも、今まで変数はずっと小文字で始めていたのでどうしてもそこを曲げられるのに抵抗を感じてしまいます^^;
日曜プログラマだから参加してはいけない!とは思わないけれど、 ある程度修練を積まないと見えない美しさって言うのは、 例えば、、、数学にだってあったわけじゃない? だから、日曜プログラマでは見えてこない部分も有るってのに長文かよ、 みたいに思う人はいて当然かな。と思うよ。 だから俺はいつもROMってる。
近年稀にみるウザキャラ。 同年代の人間と会話する訓練でもしたほうがいい。 やっててこれなら周りもおかしいか、 おまえのおかしさを憐れまれているだけだ。
理系の学部とか院とかにたまにいるタイプ
What a wonderful world!!!!
Yet another decent diary!!!
523 :
デフォルトの名無しさん :2009/04/24(金) 07:28:39
>>518 ええ、高卒の私では見えない世界が一杯あると思います^^
家が貧乏でなければ大学に行きたかったですね・・・
なるべく短くなるように努力してみます。
>>519 私がウザイと思われているのは理解しました。
そんな些細な事よりも美しいプログラミング言語とは?についてお話して頂きたいです。
私と話したくないのであれば、私のコメントは無視して他の方とお話すれば良いのです。
>>523 俺はなんとも思わないけど
自分自身を主張する奴は2chでは嫌がられる。
コテが嫌われるのと同様に。
こういうスレならなおさら意見や考えを主張すればよいのであって、
自分自身を主張する必要はない。
反論するのは筋違いだと思うよ。
PCだけじゃなく携帯から見てる人もいるから、NGすればいいなんて言うのはナシね
毎度上げてるしね
つい最近まで、マ板の底も底、もうすぐ最下位というところにいたスレなんだから、 たくさん書き込んでもらえるだけでありがたいけどね。
ム板だったw
動くプログラムは全て美しい これ言った人、もういないんだよな。
つーか、「Haskellに一票」と書けば済む話をなぜだらだらと長文で 他の言語にまでケチを付けて。周りをむかつかせて。馬鹿なの?死ぬの?
つーか、「perlに一票」と書けば済む話をなぜだらだらと長文で 他の言語にまでケチを付けて。周りをむかつかせて。馬鹿なの?死ぬの?
最強がHaskellで実用性はRuby
533 :
デフォルトの名無しさん :2009/04/24(金) 20:26:19
私の思う美しい。 1.その言語の背景になっているモデルや指向をどれだけ自然に表せるか? 2.記述の簡潔さ。読みやすさ。(思考とコードとの間の齟齬が少ない) 3.上記を保ったまま堅牢性を求めるプログラミングにも耐え得るか? こんな感じで、Haskellに一票です^^ まだ、自己主張してますかね・・・
私は GHC Haskellコンパイラではないよ。
あの国家規模でコケたやつか。そのGHCは現代の環境でも並列処理を活かせるの?
536 :
デフォルトの名無しさん :2009/04/24(金) 21:13:20
あ、私も言語としてのGHC気になります^^ PCでもコンパイラ使えますか? 良い入門ページもあれば教えて欲しいです^^
ハット記号を NG 登録で快適
わざわざ人の嫌がることをやる人間がプログラミング言語の美しさを語って、 誰がそんな奴の話を聞いてくれると思っているんだろう?
539 :
デフォルトの名無しさん :2009/04/24(金) 22:08:11
そこまで嫌がられていたのなら、もう消えます・・・ お騒がせして済みませんでしたm(__)m
>>535 並列処理自体がこれからですからね。 PSI II がないと
検証もままならないという状態は困ったものです。
つーか、「Schemeに一票」と書けば済む話をなぜだらだらと長文で 他の言語にまでケチを付けて。周りをむかつかせて。馬鹿なの?死ぬの?
しつこいよ
>>539 少し目立つとケナすのが2chの文化です。
あまり気にする事はないです。
しばらく発言せずにあちこちのスレを覗く事をおすすめします。
これを2ch風に言い表すと以下の様になります。
「半年ROMってろ」
Scheme に一票.
Z80のニーモニック。
ニーモニックの読みやすさならそうだが直交性なら8080だな てか6809はどうよ? きれいにまとまってると思うぞ
>>547 もっと具体的に教えて。
抽象化してシステム記述言語がアセンブラっぽくなる可能性もあるわけで
参考のために知っておきたい。
80系はレジスタが目的別なので、一般的には汚いと言われるね。 6809は16bitを睨んだ為に若干直行性に掛けるが、68000になると寧ろ綺麗な作りだ。
>>549 直交性っていうのはどういうこと?似た命令がないってこと?
551 :
デフォルトの名無しさん :2009/04/26(日) 09:06:04
お前らコーディングの汚さを言語のせいにする前に 自分のプログラミングのスキルを磨け ボケ!
>>550 任意の演算に対して任意のアドレッシングモードが使える事を
直交性が高いって言う
add reg
add imm
ってな感じの, アキュームレータ決めうち命令の場合, 直交性はない
add reg, reg
add reg, mem
add mem, reg
てな感じの, 命令は直交性が高いと言う
一番直交性が高い命令体型を持っていたのは, おそらく VAX
その物まねの V60 あたりも直交性は高かった.
68k はデータレジスタとアドレスレジスタが別扱いだったので
VAX や V60 に比べると直交性は低い
>>552 なるほど。thnx
たしかに直交性が高いプログラミングの自由度があがって柔軟性がでるよね。
同じことをやる場合、直交性が低い方が見た目的には短いプログラムになるのかな。
自由度でいうと直交性が高いほうがいいけど、コードが短くなるなら
きめうちっていうのはある意味システムの抽象化が行われてるってことで場合によっては
美しい(短くてシンプル)なプログラムがかけそうな気がする。。。
Aが最強だろ
>>553 直交性が高い方が、おおむねコードは短くなる
前の例だと, 直交性低い場合こんな感じ
(index アドレッシングないと仮定)
load (r0), acc
add index
mov acc, r0
load (r0), acc
add r1
store acc, (r0)
高いとこんな感じ
add r0, index
add (r0), r1
556 :
デフォルトの名無しさん :2009/04/26(日) 14:56:43
Pascalですね
$記法を導入したという点で、並みいる関数型言語の中でも Haskellは、より美しいといえると思う。 print (map last (a b (c d))) ↓ print $ map last $ a b $ c d こんな置き換えが可能。 LISP系みたいに括弧だらけにならない。
$がきもちわるい そんな記法ならLISPでもできるし
LiSPなんて旧時代のゴミだろwHaskellの美しさの足元におよばない あらゆる意味でHaskellのほうが優れている
そういう変態構文のオナニーショーはLISPer個々でよくやってる事だよ $記法とやらが読みやすいとはとても思えないし
みやすさって概念だったら表形式がみやすいのでは? いっそのことExcelみたな表でプログラミングするっていうのはどう?表っていうのはリストの特殊形態であるわけだし。
($) がいつから記法になったの。ただの関数でしょ。
なんで過去の人工知能の研究者にリスパーが多かったんですか?エロい人教えて あスレ違いか
LISPって他人が書いたコードを理解するのが極端に難しくない? これは俺のアタマが手続き脳だから単に理解できないだけかもしれないけど。
>>561 Excelの表を「数式を置けるプログラミング・フィールド(ソースコード置き場)」とみなせば
かなり美しいプログラミング環境のような気もします。
プログラミング「言語」と呼ぶのは難しいでしょうか?
>>565 プログラミング言語かどうかは兎も角、環境としてはありだと思う。
実際、私のプロジェクトではそういうケースも多いし。
# アルゴリズムの検証をシート関数で行ない、それを元にC/C++で実装する。
そもそも、保存ファイル形式がXMLなんだしね。
コーディングしないことが最も美しいのでは?
ニモニックかわいいよニモニック
Delphi prism - Delphiのグリーンスパンの第10法則に従った進化形w
delphiというかpascalはピリオドの付け方がよく判らなくて嫌い
やっぱりHaskell lisp Smalltalk辺りかな。 例えば、Smalltalkなら、分岐制御、式ブロック、クラスが全てが オブジェクト表現され、継承やクラス定義は全てメッセージングで表現される。 全てオブジェクトとメッセージ。こういう完結された仕様はやっぱり美しく感じる。 逆に、同じオブジェクト指向を謳うJavaの中途半端さと言ったら醜悪に尽きる。 あそこまで。バランスを崩すなら速度に特化したC++の方がまだ潔い。 Haskell lispは上の方で語られているから詳細は省くが、やっぱり美しい一貫性をもつ。
Haskell lispってなんだ。Haskell, Lispってことか?
美しいのはPythonだけど、 使ってるのはJavaです。 結局、可読性が高くなるかどうかなんて、 実装者の能力次第です。
>>574 その言語を熟知している人にとっての可読性ではそうだが、
その言語を全然知らない人間にとっての可読性は言語仕様によるのではないか。
可読性を上げる要因として、 主要はものは、 凝集度、結合度、明示的なネーミング の3つである。 これらは言語とは全く関係ない。 凝集度が著しく低いコード、 不必要な結合性を生んでるコード、 意味分からん変数やメソッドがたくさんあるコード、 これらはどれも可読性が低い。 Cでも可読性の高いコードは書けるし、 Pythonでもゴミのようなコードは書ける。 言語への習熟度は、主要な言語においてはそれほど関係ない。
ToStringより、toStringがいいし、to_sが一番いい。 言語とその文化がもつ冗長性は美しさにかかわる。
to_i, to_f, to_aと並べて見せて、類推してもらう。
580 :
デフォルトの名無しさん :2009/04/30(木) 11:25:09
なんだかんだ言っても俺が見て一目で内容がわかる言語が美しいと言うことだろうな。 そんな言語はないけどね
どの言語も、汚いと思うのは意外と無いよね。 独自の文化には意外と慣れるから。 C#の命名も苦にならなくなる。 けど、phpとperlだけは馴染めなかった覚えが。 自分が使う期間が短かったのもあるけど。
583 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 16:50:51
おまいは名前のわりにしっかりしてるなw > このコード読んで吐き気を覚えないやつは すまんが、吐き気を覚えない。 java.util.Scanner使ったこと無いから、 それに関する部分は良く分からんし。
>>583 俺も吐き気を覚えない。
可読性はプログラミング言語の美しさとは関係ないと書いている(
>>576 )ので
これは「最も美しいプログラミング言語」とは関係ない話?
美しいものに吐き気を覚えることもあり得るのでこの話はスレ違い
587 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 18:57:52
Scannerがどうとか言ってるんじゃないよ。 おれも使ったことないし、推測でscanfみたいなことかなと思ってるだけ。 おれはこのコードを見て、鳥肌がたち、書いた人間に殺意を覚えた。 おれがプログラムを書くものが読むことを必須とすると考えている本は、 Code Complete(上) リファクタリング 実装パターン の3冊だ。 他にもいい本は色々あるが、 とりあえずこの3冊を読まなければダメだ。 特にCode Completeは必須中の必須。 これが分からなくて、何を実装するというのだろうか。 可読性の低いコードは環境汚染に等しい。 無意識に可読性の低いコードを書く人間は、害悪。 おれは美しいコードを書くことについて強い興味を持っている。 そのおれが言う。 もっとも美しい言語はPythonだ、と。 そしてJavaプラットフォーム上で動くJythonを中心にこれからの世界は動き始めるだろう、と。
×吐き気する ○吐き気を催す
590 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 19:13:36
と、言っても、 実装上そうしなければいけないのかも知れないということはある。 パっと見、形がおかしいということで吐き気を催しただけであることを断って、 その上でコードの気持ち悪さを指摘する。 それは、順番がおかしいことだ。 Scanner stdIn = new Scanner(System.in); System.out.println("xとyを加減乗除します。"); System.out.print("xの値:"); int x = stdIn.nextInt(); この4行のうち、2,3行の段階ではstdlnという変数は必要ない。 4行目でやっと必要になるのだから、1行目を3,4行目の間に移すべきだ。 変数stdlnのライフタイムが不必要に長い。 これを見た時、おれは2行目のどこにstdlnが使われてるのか真剣になって探した。 当然あるべきだからだ。 変数のライフタイムが不必要に長くなることで可読性は落ちる。 結果としてバグが増える。 可読性の落ちる原因は、ある時点のコードを理解する上で、 脳のワーキングメモリに保存しておくべき情報が増えてしまうからだ。 上から下までさーっと読んで、 全部理解出来るコードじゃないとおかしい。 日本のソフトウェア業界のレベルが低いのは、 ちゃんとしたソフトウェアの教育を受けた人がいないからだ。
591 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 19:19:40
>>588 flagを立ててそれを使うというのは、
可読性を落とすという要因から禁止されている。
何かの本に書いてあったから、おれの読んだ本を何年かかけて全部嫁、このクソ虫が。
また、flagというのであればbooleanにして欲しいし、
booleanの変数名には肯定的な名前をつけるというのもルールだ。
flagと言われても、何のことだか分からない。flgなんて論外だ。"a"を省略する意味が分からない。
勉強のために色々コードを読んできた。
どれもひどいものばかりだ。どいつもこいつも狂ってる。
おれが注目するのはすでに述べたとおり、
凝集度、結合度、明示的なネーミングの3つだ。
きちんと1つの仕事をする明示的な名前のついた小さなメソッドに分けることによって、
文を読むがごとく読めるようになってないコードはすべて吐き気がする。
おれがかなり好きなコードがある。
JUNGというソフトウェアのコードだ。
参考にするといい。
これを書いた人はかなり出来る。
そ、そんだけ?
このスレは、美しいプログラミング「言語」について書くスレです。
>>590 は「美しいプログラミング」について語っているので、
すれ違いだと思います。
ポール・グレアムが書いた文書(の翻訳)を読むと、 「LISP最高!Schemeって美しい!」と思うんですが、 いざ使ってみると、「なにこのカッコの多さ!ありえない!」 と思うんですよね(笑)
595 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 19:37:40
美しいプログラミングが分からない人間が、 プログラミング言語の美しさの何を語ろうというのだ。 何も判断基準がないじゃないか。 そこにあるのは、感性だけだ。 ただ美しいと思った、それだけ。 プログラミング言語は芸術ではない。 美しいものには美しいだけの理由がある。 そういう、なぜ美しいかということが分かった上で、 美しさについて語りたまえ、このクソ虫どもが。 もし分からないのであれば、 おれのようなスーパーハカーのいうことを聞いて Pythonを使ってればいいんだよ。
でもまぁ、確かにJavaは美しくないとは思った。
Scanner stdIn = new Scanner(System.in); System.out.println("xとyを加減乗除します。"); System.out.print("xの値:"); int x = stdIn.nextInt(); これが、 System.out.println("xとyを加減乗除します。"); System.out.print("xの値:"); Scanner stdIn = new Scanner(System.in); int x = stdIn.nextInt(); こうなったら吐き気収まりますか><
598 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 19:41:21
>>596 なぜだ。
なぜ、Javaが美しくないと考えたのか。
それが問題だ。
残念ながら、おれはJavaは最高に美しくはないものの、
それなりに美しく、かつ非常に生産性の高い言語だということで、
とてもお気に入りなんだ。
美しくなくはない、吐き気がするのはC++だ。
C++よりはCの方が美しい。
C++は言語仕様がどうとかいうより、
仕様の設計者はバカなのではないかと思うようなところがある。
>>598 具体的に、吐き気がするところは?
俺はクラス定義の中にメンバー関数の定義を書くと
それだけでインライン化するところは、馬鹿じゃないかと思った。
インライン化したければ「inline」と書けばいいのに。
600 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 19:47:38
ごめん、実はC++はあまり知らない。
>>599 理由は違うが同意。inlineなんてのはコンパイラに対するヒントでしかないんだから存在意義自体がないと思う。
インラインかしたくない事情があれば、それを指定するようにすればいいんだ。
俺は変態的なもののほうが美しく感じる。 C++ サイコー Lisp マンセー チンコシネー まじめに書くと、なんとか指向とか関数型なんとかなどとのたまう言語は醜くく感じる。 そうしたければそのように書くこともできる、というのは大事だと思う。 でも、そのスタイルを強制されるのはまっぴらゴメン。 で、必然的にハイブリッドなものに美しさを感じるようになる。 いかにブレンドするか、その美しさこそが真の美しさ。
603 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 20:28:23
もうさ、 プログラミング言語はJavaで統一しようぜ。 全員Javaと最悪、Jython, JRuby, GroovyなどのJava実装スクリプトね。 Cを撲滅しようぜ。 Javaは実行速度だって、C++よりずいぶん速いんだ。
>Javaは実行速度だって、C++よりずいぶん速いんだ。 なんだ、妄想癖の人だったのか。
605 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 20:38:50
いや、事実だけど・・・。 今のJavaはまじで速い。 Javaが遅かったというのは過去の話。 今はCと変わらないレベルの速度が出る。
【レス抽出】 対象スレ:最も美しいプログラミング言語は? キーワード:D言語 抽出レス数:1
現行、言語の性能はコンパイラ屋の質に依存してるぞ。 意外かも知れんが、Linux上ではJavaとCは同等、C++が一番早い。 the computer language benchmark gameのサイトでスコアが見れる。
>>606 おもしろではあるが、美しくはないだろ。
!()だかの使い方が未だにわからんw
609 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 20:46:07
単純なプログラムではJavaは不利かも知れない。 だが、プログラムが複雑になるほど、Javaの最適化技術が生きてくるよ。 Javaは可読性の高いコードに対してもっともよい最適化を施す仕組みになってる。
はい、はい、はい。 わかったから、もう帰れ>ちんこ
611 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 20:57:21
帰ります。 ただ、これからはみなさんも可読性というものに高い意識を持って欲しいです。 いや、持ちなさい、持ちやがれ。 可読性の低いコードを書く人は死ぬべきです。 プログラマというのは超のつく知能職だということを知るべきです。
C++だって速いからというだけで使われているという考えもどうかと思う。 一応オブジェクト指向も可能でありながら、Cとの互換性のために OSのAPIやCのライブラリを使え、アセンブリ言語との連携が容易で、大抵のスクリプト言語をホストできる。 D言語とか出てきてはいるんだけど、C++を置き換えるまでには至っていないし……。
てかC言語とC++ってもう互換性無いよね?
614 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 21:10:47
現代のプログラムにおいては、 実行速度は関係ないから、 とにかく開発の容易性を重視すべき。 半導体技術の向上は目覚ましい。 だから、ソフトウェアの世界には、 古い時代のハードでやっていた人と、 新しい時代のハードから始めた人(おれとか)の 2つが入り交じってしまっている。 それが害悪なんだ。 若い人は積極的に正しいプログラムの書き方を学んで、 古い人たちを追い出すべきなんだ。
> 実行速度は関係ないから、 > とにかく開発の容易性を重視すべき。 はい、これで Java 消えた。
さすがに
>>615 は情弱というか低脳を感じざるを得ない
617 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 21:23:33
Java以上に開発が容易な言語があったら教えてください。 おれは知りません。 Javaにはたくさんの道具があります。 Pythonにはそれがありません。 Eclipse+Javaに開発速度で勝つことは不可能ですし、 Javaならば、美しいプログラムを書けるだけの言語仕様を備えています。 例えば、おれがC++が嫌いな一つの理由は、 コンストラクタチェーンが出来ないことです。 コンストラクタからコンストラクタを呼び出せなければチェーン出来ません。 保守性が著しく低くなります。
つ Ruby
619 :
デフォルトの名無しさん :2009/04/30(木) 21:28:41
つ Ruby on Rails
Web屋かよ、カスが
Twitterにも見捨てられた糞環境、それがRoR。
Ruby に仕事を取られたからといって、そう僻むなw
623 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 21:38:57
確かにRubyは美しい。 いや、美しさだけで言ったらRubyがマックスかも知れない。 だけど、RubyにはPythonに対して圧倒的に劣る点がある。 それは、コミュニティが小さいという点だ。 また、GoogleがPythonを採用してるなどの状況もあり、 Rubyへ優秀な人材が流れにくくなっている。 よって、RubyのライブラリはPythonに比べるとだいぶしょぼい。 スクリプトの標準がPythonになりつつあるというのもあって、もうこの差は埋まらないだろう。 Rubyはホビーランゲージとして生きていくことになる。 ただ、もし、もし、RubyがPythonと同じくendがいらない設計だったら・・・ そしたら話は変わっていたかも知れない。 Rubyのエンドラダーは害悪、可読性を言語仕様レベルで落とす原因になっている。
Rubyの字面は美しいって感じじゃないな。 あまりにも趣味的に過ぎる。 まあそれでもC++の醜悪さには及ぶべくもないが。 C++はパフォーマンスの要求されるところで使われて入るが マルチコア環境での開発効率があまりにも悪すぎるので 関数型言語の台頭が予測されてるな。
>>623 > 確かにRubyは美しい。
> いや、美しさだけで言ったらRubyがマックスかも知れない。
> だけど、RubyにはPythonに対して圧倒的に劣る点がある。
> それは、コミュニティが小さいという点だ。
いいかげん、スレタイ読めや。
>>605 Javaでは配列にアクセスするごとにインデックスがはみ出していないかチェックする。
最適化しても、それを取り除くことはできないんじゃない?
C++では両端だけチェックして他は省くように書けるし、
コンパイラによっては、データ並列な部分を自動的にベクトル化してくれる。
(OpenMPを使って指示する必要がある部分もあるけど)
だから、信号処理や行列の計算など、速度が必要なタイプの処理の速度では、
JavaよりC++の方が一般的に言って上じゃないかな。
(私はJavaがメインだけど、嫌々C++を使いまくる場面がまだまだあるよ)
>>617 C++ 0xではコンストラクタチェーンができるようになる予定。
楽しみですな。
http://ja.wikipedia.org/wiki/C%2B%2B0x
RoRなんて使ってるとこなんてホントにあるの? どこの底辺?
がっはっは。 > ただ、もし、もし、RubyがPythonと同じくendがいらない設計だったら・・・ > そしたら話は変わっていたかも知れない。 end がなければ google が Ruby を採用し、優秀な人材も集まり、 しょぼいライブラリも目の醒めるようなライブラリとして生まれていた、と。 んな、あほな。
さすがに
>>627 には情弱というか低脳を感じざるを得ない
反応が既に終わってるな、まともに答えられんのか
632 :
626 :2009/04/30(木) 21:53:50
配列の処理を中心に見ると、美しいと思う言語はSaCかな。
SaCでは配列は全て値渡しで、プリミティブ値はランク0の配列として扱われる。
ランク数不明の配列を引数に取る関数を定義すれば、
プリミティブ値でも任意のランク数の配列でも、一つの関数で処理できる。
概念的には値渡しだけど、内部ではポインタ渡しにした上、
データフロー解析を使って処理は最小限にしてくれる。
ベンチマークではFORTRANよりも速度が出ているくらい速い。
(ちなみにコンパイラが出力するのはCのコード)
研究用の言語なので常用は厳しいし、足りないものも多いけど、
メインストリームの言語に長所が取り込まれればいいと思っている言語だ。
http://www.sac-home.org/
>>631 Java の人気の下がり具合のほうが大きいね。
634 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 21:56:54
>>628 それはない。
だが、おれはRubyを好んでいたかも分からん。
いや、やっぱりPythonかな。
Pythonコミュニティには高い可読性を追求する気概がある。
可読性を無視するクズプログラマには用はない。
でもやっぱりRubyもいいよね。
Rubyはインスタンス変数の書き方がいいわ。
Pythonは少しうんこなところがある。
selfがくどかったりね。
あれはC言語でのオブジェクト指向の書き方なんだよ。古い。
>>626 C++の設計者が、
C++が保守性、可読性について言語仕様レベルで問題があることに気づいていた。
それだけで余は満足じゃ。
635 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 22:01:03
>>631 どこが?
Python VS Rubyに関しては
もう逆転出来ないくらいの差がついてしまったよな。
Matz涙目www
>>635 英語は読めなくても、下のグラフが何を意味しているかぐらいはわかるだろう。。。
しかし、
> Matz涙目www
なんか、発言にギャッップを感じる。
637 :
デフォルトの名無しさん :2009/04/30(木) 22:10:51
>>636 常識のある人だと,長い目で見た場合 Java は下降気味,
Ruby は上昇気味という傾向を読み取るだろうね.
妄想系の人にこのグラフが一体どのように見えるかまではわからんがw
何でRubyヲタがJavaを目の敵にしてるのか知らんが、実際使われてないだろ はてなとかやってる人?w
だーれも Java を目の敵してませんが。 被害妄想系にはそう見えるかも知れませんねw そうか、Ruby に仕事を取られたカワイソウな奴は そんなに危機意識を持ってるのか。
> Ruby に仕事を取られた という妄想をRubyヲタが好むのは何でだろうね
>>640 そんなことはない!と涙目になりながら必死で否定するやつがいるからじゃない?
P系言語とよろしくやってるだけで、Web屋以外の人は見向きもせんでしょ
643 :
ちんこ ◆GbXlaaQNk. :2009/04/30(木) 22:22:52
Pythonのやばいところは、 いちいちself.valueで指定しなきゃいけないところ。 これは可読性を落とすね。 でも、インデントによる論理改行と、 あとはキーワード引数で楽々借金返済出来る。 PythonとRubyのいいとこどりをした言語があったらいいんだけどね。 Rubyのmixinなんかは美しい。 Pythonはmixinをとって、多重継承を捨てるべきだと思う。 Pythonは大体いいけど、時々悪い。 Rubyはかなりいい言語なんだけど、コミュニティが貧弱すぎる。 GoogleはPythonだけど、ThoughtWorksはRubyだ。 おれはGoogleとThoughWorksどっちにでも入れるとしたらThoughtWorksを選ぶ。
644 :
デフォルトの名無しさん :2009/04/30(木) 22:26:18
ところで今日一番恥かしい発言をした
>>631 はどこに行ったんだろう
Rubyが凄い勢いで飽きられてるソースとしては十分だな
いや、別に Ruby を擁護する気はさらさらないが、どう考えても
> Rubyが凄い勢いで飽きられてるソースとしては十分だな
は
>>631 のリンク先から読み取れないな
>>626 普段C++を使うけど、さすがにJavaもそこまで間抜けなわけがないと思うぞ。
範囲チェックを必要最低限に押さえることはJavaの最適化の序の口だろ。
>>643 手続き型の言語しかわからない人には
GoogleのMapReduceは何をやっているか
理解するのは難しいでしょう。
Code Completeもいいけど、
プログラムの作り方や
プログラム言語の優劣について論じるならば
SICPあたりも読むべき。
ぶっちゃけ、審美眼とうものは恣意的なものであるので、 ○○は美しい、 というあらゆる命題は真理を述べることはできない。 ○○は可読性が高い、という命題も同様である。 というわけでお前ら乙としか言いようがないわw
アセンブラやってるとすべての言語の意味がイメージできるので、 自分が美しいと思う言語を選ぶと、ずばりJava。EJBを除く。
651 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 08:16:48
>>648 SICP読んだ人は美しいコードが書けるんですか?
立ち読みしたけど、とてもそんな感じはしなかった。
逆に、あれを読んだら汚いコードを書くようになってしまう気すらした。
事実、情報系の人間のコードを読んだことがあるが、腹抱えて笑うほどだった。
暗号みたいなコード書いて、自分は頭がいいんだと主張しているようだった。
おれはそんな世界には用がないんだ。
おれは正しいソフトウェアをアジャイルに構築することに興味がある。
そのためには急がば回れなんだよ、もっとも美しい設計、高い可読性の保ち方を知らない人間はゴミみたいなソフトウェアしか作れない。
したがって、生きてる意味がない。
おれは日本でもっとも可読性にストイックな男だ。
>おれは日本でもっとも可読性にストイックな男だ。 なんだ、妄想癖の人だったのか。
653 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 09:03:17
じゃあ、おれより可読性にストイックな人間を教えてくれ。 アポイントメントとって会いにいく。
>>653 可読性にそこまで拘るなら、
転職して、実行速度なんか気にしなくてもよい環境で、
Prologプログラミングの修練を勧めます。
これ本気。
655 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 09:24:19
656 :
654 :2009/05/01(金) 09:28:31
657 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 09:31:44
どういう進路にするか迷ってるんでつ。 研究職でいくか、プログラマとして突っ切るか。 おれはプログラミングが好きだし、得意だけど、 日本のプログラマは地位が低すぎる。 年収1000万はないと嫌だ。
可読性にこだわってる割にはちょっとな。 590でその4行が おまいのいう順番になったときは、 プログラムとして違う動作になる。 事の大小はともかく、入力があった場合にのみ表示が出るという動作を たったこんな小さなプログラムから読めないやつに可読性なんていう資格は無い。 ちゃんと動くことの方が数倍重要だ。
659 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 09:40:00
あ、そうなの・・・? 知らんけど。
660 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 09:45:50
まず、 入力があった場合にのみ表示が出る、 なんて仕様が狂ってるし、 大体、このプログラムおかしいもん。 日本のソフトウェア業界っていうのは、こういうコードが蔓延してるんだろ。 おれは単純に凝集度の観点から可読性が低いといっただけで、 こんなのそもそもまともなプログラムじゃない。 動作を確認するまでもないコード。 見たその時点で、気持ち悪いという感情を得た、それだけだ。 もちろん、入力を施す為の記述もない、という意味も含めてね。
>>651 SICPを読んだら、より美しいコードが書ける。
なぜならば、手続きの抽象化について学ぶことができるから。
Javaが採用しているオブジェクト指向はデータの抽象化を推進する。
もし手続きの抽象化について学べば、それをJavaでも応用できるよ。
綺麗なStrategyパターンを書くとかね。
「ケント・ベックの Smalltalk ベストプラクティス・パターン」
これを読むと、ケント・ベックは可読性にストイックな男としては
世界でも上位に入るのではないかと思う。
可読性にこだわった先達として、
>>660 はこれも読むといいよ。
>>590 の言語が何かは知らないけれど
Scanner stdIn = new Scanner(System.in);
これは、入力オブジェクトの宣言なのだから、処理とは分けて記述しなければならないのでは?
処理の最中に、これがある方が気持ち悪いのですが...
>>660 とりあえず、君の書いたソースを読みたいな
>>664 こういう展開でソースを出して見せた奴、みたことないw
可読性という話で、十数行のサンプルプログラムみたいなのに大げさに噛み付く姿からして、
彼が取り組んだことのあるプログラムの大きさと複雑さの程度が見て取れる。
多面的に物事を見れてないしね
>>665 出したところで、
ふーん、俺には可読性が高いようには思われない
と言い出す人が現れて終了
このコテはソースの美しさを語る前に自分の日本語をどうにかした方がいいと思う
件のコードが書かれた文脈(書き捨てのサンプル)を考えると
>>660 はアホとしか思えん
いくらソースの可読性が高かろうが、文脈を読み取れないやつが
読むんじゃなあw
>>605 ,634
C++もLLVMなんかのVMで動くし。ネイティブに最適化された
バイナリよりも早い。当然、JVMより遥に早い訳だが。
言語の話をしてる時に環境の話を出すなよ。不毛だ。
>selfがくどかったりね。
>あれはC言語でのオブジェクト指向の書き方なんだよ。古い。
あんまり、オブジェクト指向しらんだろ?マルチディスパッチとか
Smalltalk学んでこいよ。
著名人の間で美しいと言われるのはLispだが、
基本的に統一性のある文法の言語が美しいとされるね。
Rubyの話も度々出るが、改行が不自由でメソッド呼び出しに
糖衣構文があるってのは汚いな。概念上はSmalltalkに似て
綺麗なんだけどな。あと、最近人気が下降気味らしいな。
(書籍販売数・プロジェクト数・他 が縮小してるらしい)
Objective-Cなんかは、C言語に埋め込みできるオブジェクト
指向言語だと考えれば綺麗だと考える著名人も少なくないだろうね。
671 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 18:59:36
お前ら、ずいぶんと偉そうだな。 日本のソフトウェアエンジニアなんて、高卒とか文系とかばかりだろ。 相手にならんよw 日本人が書いたコードで美しいコードを見たことがない。 もしオープンソースでそういうものがあるのなら教えてくれ。 情報学科卒でSICPなどは当然読んでるだろうと思われる人間のコードも読んだことがあるが、 カス同然だった。 よってSICPなど意味ない。
673 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 19:20:44
ところでだけど、 Python3.0とPython2.6だったら、 どっちを使うべき? 対して差、ないよね? Python3.0ってこれから広く使われる予定あるの? 互換性切ってるし、美しくなったといっても、使われるかどうかは別な気がする。
674 :
デフォルトの名無しさん :2009/05/01(金) 19:33:43
> ちんこ そこまで自惚れられる根拠は何かね?
> ちんこ マーチン・ファウラーが評価している「fluent interface(流れるようなインターフェイス)は デメテルの法則を破っているからCode Complete的にはNGだと思うんだけど、 ちんことしては、これはOKなの?NGなの?
676 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 20:36:49
絶対にNG 他にも、おれはインターフェイスの設計として、 メソッドの引数を単純データ結合に保たないような設計 ( これは、 場合によっては引数オブジェクトの導入リファクタリングによって改善されるが、 最初は絶対に、結合度を低く保つべき ) や、 メソッドチェイニングを前提とした設計、 とりわけ、可変オブジェクトを返す設計を嫌う。 Immutableなオブジェクトを生成して返すのであればそれは許されないこともない。 Mutableなオブジェクトを返すのはかなりやばい。 このFluent Interfaceというのは返したオブジェクトが可変になっているから、相当悪い。 これをおれが悪いと思う理由は、 おれがテスト駆動とリファクタリングを前提にプログラムを書くようにしているからであり、 経験的に、結合度をとにかく低く保った方がリファクタリングがしやすいからだ。 確かに、メソッドチェイニングを回避するために、委譲メソッドを作るのは手間だが、 IDEを前提とした場合、そこまでの手間でもないし、 何より結合度を低く保つことのメリットの方が断然大きいと感じている。
677 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 20:43:23
マーチンはたまにおかしなことをいう。 ケントベックのいうことはほとんどの場合信じられる ( 例えば、おれは美しい設計のために 常にstaticファクトリを使うべきだと思っていたが、 ケントは、ただの生成の為にstaticファクトリを作るのは愚であると、 実装パターンにおいて説いている。 確かにそうだと思ったので、それ以降、おれは無駄なstaticファクトリを作ることをやめた )。 あと、Code Completeに書いてあることもほぼ100%信じられる。 マーチンのリファクタリングもほとんどは信じられるが、 おれは、仲介人の導入メソッドだったか、名前は忘れたが、 委譲するのが大変だからやめる、と言った主旨のリファクタリングは訂正して消去して欲しいと思った。 マーチンは尊敬出来るソフトウェア開発者だが、彼とおれとの間には少しだけ設計に対して意見の相違がある。
678 :
675 :2009/05/01(金) 21:00:22
>>676 ありがとう。
流れるようなインターフェイスは読みやすいので、
読みやすさとどっちを優先するか聞きたかった。
俺もクラス間の結合度を低く保つように心がけているけど、
メソッドが7つを超えたら別のクラスに分けて、
元のクラスに分けたクラスのオブジェクトを返すファクトリメソッドを作ってる。
679 :
ちんこ ◆GbXlaaQNk. :2009/05/01(金) 21:03:31
メソッドの数は関係ない。 仮にメソッドの数が増えたらクラスを分離して、 そのクラスに処理を委譲するようにしろ。 実装コードが増えすぎるのが問題なので、あって、 インターフェイスの数が増えることが問題なのではない。 これを勘違いしてるやつが多すぎる。 そして、 元のクラスにわけたクラスのファクトリを作るという設計も意味不明だ。 君はちゃんとオブジェクト指向を学んでいない。 よって死ね。
「俺は、ビックマグナムだ!!!」 と思っていられるうちは自惚れる事もできるさ まあ、大抵の場合、銭湯に行って己の矮小さに気付くわけだがなwww
だから、ソースは?
自演乙
よしいまからHaskerubyつくる
夜郎自大とはまさにこのことだ
「プログラム言語ツクール」とかあったら、 みんなで作って見せ合えるのにね。 文法をBNFで書けば言語ができるようなの。 ライブラリは.NETのを使えばいいね。 …単に.NET用のyacc/lexを使えばいいのか? っていうか、最も美しい言語はBNFか?
687 :
デフォルトの名無しさん :2009/05/02(土) 16:39:28
言語の美しさが構文の美しさに還元されると思ってる人がいるけど・・・ そもそも、仕様が美しければ実装はどうでもいい的なことを最初に言い出したのは いったい誰なんだろう
Lispでいいじゃん
690 :
デフォルトの名無しさん :2009/05/02(土) 16:47:55
実装なければ言語がないのも同じ。 ひとつでも実装あって動けばその言語はある。 実装あればその動作は関係ないだろう。
>>685 既存の言語を使いこなせないと新しい言語を作れないから、
既存の言語が使いにくいと思う人達は
新しい言語を作るところまでいきつかない。
そういう人達こそ言語に革新をもたらすかもしれないのにね。
誰でも簡単に動く言語を使えるツクールがあれば、
言語の開発が促進されるかもね。
面白いアイデアだと思う。
字句解析と構文解析は定義ファイルから自動生成できるとして、
難しいのは意味解析の自動生成かな。
自動生成できなくてもツクール内に動作を用意しておいて選択する
方法もあるけど、典型的な機能以外は実装できなくなってしまう。
>>688 仕様が最適化を難しくすることもあるから、
個人的には言語の仕様と実装はセットで考えるべきだと思う。
>>689 Schemeをいじってみたけど、if-then-elseなどの
普通の関数とは動作 (評価の順序) が違う機能も
同じS式で統一してあるのが嫌だった。
意味が違うものは構文も別にするべきだと思う。
Haskellのように全て最外簡約ならいいんだけど。
>>690 使える道具を探す立場ではそうなのだけど、
仕様を示すだけでも、言語を作りたい人達の参考になるよ。
(私も含めて)
なんだかんだCOBOLが一番読みやすい。
ちがう。こういう事。 If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases. ---Guy L. Steele Jr.
そんなあなたにSmalltalk。予約語なんてなし。分岐も繰り返しもただただメッセージングあるのみ。
>>686 汎用の言語と範囲限定の言語(いわゆるDSL)の2種類あると思うよ。
汎用の言語は、既存の言語をこえるものはでてこないし、Lispでいいじゃんで終わってしまったりすると思う。
面白いのは範囲限定の言語で、
〜のような目的のシステムを書くために、○○のような言語を作ってみました。
っていうアイデアをもちよるのは面白いかもしれない。
美しさのひとつにシンプルさってあると思ってて、ある程度自由度をもったシステムがいかに簡潔かけたかというのがポイントの一つになり得ると思う。
>>696 システムの簡潔さはどうやって評価するの?
たとえば、DSLを利用するためのライブラリをリンクしなければならないとしたら、
そのライブラリを必要としないシステムよりも複雑になったと言うこともできるけど。
Objective-Cはなんかゾクゾクくる。 Javaさんざんやって、 Smalltalkやそのコミュニティにはなんかしらんが畏敬の念を抱きつつ、 C++行ってモヤモヤして、 Rubyをやってウハウハしてると。
Objective-C最高。
>>697 そういう評価もそれはそれでありなのでは。いろいろ評価方法はあっていいと思う。目的によって違うのでしょうから。
将来同じような目的にであったとき、そういえばこういう局面でこういう言語を使えば効率よくなるって話があったなっていう引き出しをたくさん
用意しておくのもいいのでは。
>>692 Schemeのifは「文」なんですよね。
特別扱いのようです。
Haskellは最外簡約で、
smalltalkはブロック(lambdaと同じ)で
無理なくクリアしているのが美しいと思います。
>>696 ,
>>697 ,
>>700 「言語の」複雑さを評価する指標なら、
ASTのノード数なんてどうだろう。
同じ処理を少ないノード数で記述できたら
その言語は簡潔ということにならないかな?
>>703 それ全然意味ない!lambda 一発になるwW
最終的には、なにがしかの形式意味を、いかに簡潔に書きうるかだろ?
>>704 > lambda 一発になるwW
lambdaを使って書いた無名関数の定義が含むノード数も
評価するわけだから、それなりに妥当なんじゃない?
無名関数を使う側が1ノードになるのは、コード自体の簡潔さに対応する。
> 最終的には、なにがしかの形式意味を、いかに簡潔に書きうるかだろ?
簡潔であることを「どう評価 (数値化) するか」の話をしているんでしょ。
>>704 は
>>694 かな?
706 :
705 :2009/05/05(火) 00:16:53
>>705 ASTでは構文の持つ意味まで説明できないって言ってるんじゃないの?
>>702 自分で言語を開発したい/してる人って、案外いそうですね。
この板にはそういうスレが無いので、
もしこのスレにそういう人がいたら、
様子を聞かせて (読ませて) もらえると面白いと思います。
>>707 >>703 の「同じ処理を少ないノード数で記述できたら」が
>>704 の「なにがしかの形式意味を、いかに簡潔に書きうるか」
に対応していると見ると「処理」は「形式意味」に対応しますね。
そうだとすると、
>>703 は
「処理 == 形式意味」が「同じ」場合、
つまり「構文の持つ意味」を統一済みの場合についての話なので、
構文の持つ意味を説明する必要は無いのでは。
思うに、
>>707 が真だとすると、
>>704 は既に存在するコードを対象に、
同じ量のコードがどれだけの量の形式意味に還元されるか、
という話をしているのでは。
それに対し、
>>703 と
>>705 はおそらく、
決まった課題を与えて (あらかじめ形式意味を統一して)
それをどれだけの量のコードで表現できるか、
という話をしていると思います。
最も美しいプログラミング言語は賛否両論あるだろうが、 最も汚いプログラミング言語の一つがC++であることに異論がある人は 少ないだろう。
つ COBOL
つ Objective-C
712 :
ちんこ ◆GbXlaaQNk. :2009/05/05(火) 21:34:31
もっとも美しい言語はPythonです。 ほんと、この言語で仕事ができるところに就職したい。 やっぱベンチャーを作るべきなのかな?かな?
>>712 ベンチャー作るのに賛成!
Pythonに反対!
714 :
ちんこ ◆GbXlaaQNk. :2009/05/05(火) 22:50:49
Pythonはもっとも美しい言語だろjk これ以上に美しい言語があったら教えてくれ。 おれは知らない。
ぱいそんはどのあたりがうとぅくしぃのかおせーてくれ
>>712 宣言的とは見えない点。
オブジェクト指向である点。
インデント構文を必要とした点。
リストの内包表記は評価するけど。
検索してみた。意味あるかはわからん。COBOLがずば抜けて高い。 C++ 言語 の検索結果 約 2,600,000 件 C++ 言語 美しい の検索結果 約 66,800 件 →2.57% COBOL 言語 の検索結果 約 138,000 件 COBOL 言語 美しい の検索結果 約 39,000 件 →28.3% Java 言語 の検索結果 約 424,000 件 Java 言語 美しい の検索結果 約 39,800 件 →9.39% C# 言語 の検索結果 約 1,900,000 件 C# 言語 美しい の検索結果 約 34,700 件 →1.83% Ruby 言語 の検索結果 約 3,040,000 件 Ruby 言語 美しい の検索結果 約 110,000 件 →3.6% Smalltalk 言語 の検索結果 約 171,000 件 Smalltalk 言語 美しい の検索結果 約 8,550 件 →5% Squeak 言語 の検索結果 約 83,100 件 Squeak 言語 美しい の検索結果 約 6,700 件 →8.06% Python 言語 の検索結果 約 2,830,000 件 Python 言語 美しい の検索結果 約 58,400 件 →2.06% Perl 言語 の検索結果 約 2,540,000 件 Perl 言語 美しい の検索結果 約 173,000 件 →6.81% BASIC 言語 の検索結果 約 309,000 件 BASIC 言語 美しい の検索結果 約 15,700 件 →5.08%
追加。。。やっててただ疲れるだけな気がしてきたw Objective-C 言語 の検索結果 約 266,000 件 Objective-C 言語 美しい の検索結果 約 9,880 件 →3.71% Tcl 言語 の検索結果 約 113,000 件 Tcl 言語 美しい の検索結果 約 2,430 件 →2.15% FORTRAN 言語 の検索結果 約 204,000 件 FORTRAN 言語 美しい の検索結果 約 31,900 件 →15.6%
>>718-719 乙。
COBOLはアンチが多い一方で、魅力を語るのをなかなか見かけない。
でも、一時代を築いた言語だし、何か美しさがあるんじゃないかな。
(
>>693 あたり、語ってくれないかな)
>>719 FORTRAN訂正。。。やっぱCOBOLか。ほかはだいたい同じ感じだな。
FORTRAN 言語 の検索結果 約 204,000 件
FORTRAN 言語 美しい の検索結果 約 5,180 件
→2.53%
LISP 言語 の検索結果 約 494,000 件 LISP 言語 美しい の検索結果 約 36,400 件 →7.36% Scheme 言語 の検索結果 約 1,480,000 件 Scheme 言語 美しい の検索結果 約 35,000 件 →2.36% Haskell 言語 の検索結果 約 326,000 件 Haskell 言語 美しい の検索結果 約 13,000 件 →3.98% Delphi 言語 の検索結果 約 480,000 件 Delphi 言語 美しい の検索結果 約 7,070 件 →1.47% FORTH 言語 の検索結果 約 291,000 件 FORTH 言語 美しい の検索結果 約 26,000 件 →8.93% Erlang 言語 の検索結果 約 254,000 件 Erlang 言語 美しい の検索結果 約 19,500 件 →7.67%
>>709 激しく同意。
そして俺はC++をさらに拡張しようとしている連中の思考が理解できない。
もう既にぐっちゃんぐっちゃんの闇なべの残飯みたいな状態なんだから、
さらに何個か残り物ぶち込んでも分かんないだろ?みたいな感じなのだろうか。
そしてそんな物をいったい誰が食うというのだろうか。
お前や俺が食うんだよ! ヒッヒッヒ
>>723 闇鍋から嫌いな物を除いて好きなものだけにすると、
あら不思議、至高のお鍋になるんだよ。
>>708 おれがこの合宿に参加して、
この中のどれかのテーマの言語を開発するとする。
そして、そのテーマの命題+美しい言語に仕上げることを目標とする。
そのとき、Lispのような言語にするだろうか。
いざ、そうなったときにはシンプルな命令体系にして、BASIC風なスクリプトにするんじゃないかなと思う。
つまり、美しい=覚えることが最小限の言語(文法が最小)
となるような気がする。
>>726 そういう意味では Guarded Horn Clauses のような言語が
一番美しいのではないか。
>>727 平行プログラミング言語がもっともシンプルというのも考えてみれば不思議だね。
>>726 > シンプルな命令体系にして、BASIC風なスクリプト
HSP?
>>727 Guarded Horn Clauses(KL1)について調べてみた。
これは美しいね。
しかし、これの仕様と実行環境を作るのに570億円もかかっているとは…。
これといい、Σプロジェクトといい、官主導のものって無駄に金を食ってる気がする。
気がする? 今さら何を・・・。
732 :
デフォルトの名無しさん :2009/05/06(水) 13:03:30
Σプロジェクトなんて2億円を使ったあげく 結局OSはUNIXが一番いいという結論を出しただけのプロジェクトだもんな。 官僚ってアホばっかりだな
>>727 ,729
KL1は、論理や並行処理の部分を抽象化してあって、HSPはある範囲ないのGUIアプリのためにカスタマイズされているよね。
空想の話だが、
>>702 のような合宿があって、そこの審査員を依頼されたとしよう。
担当は作成された言語を「美しさ」という点から評価するとする。
この場合、どういう評価観点が考えられるかな。例えば
・目的に対し最適化された命令体系・文法になっている
・目的に対して最適のパラダイムまで抽象化が行われている(構造化、オブジェクト、関数型、論理型、並行)
・ライブラリ、、、
などかな。
CはうつくC なっつっ亭
駄洒落は寒いが、Cが美しいことは真理。
Pythonは'Python'という名前以外は美しい
oppai
HSPって昔の8bitマシンのBASICみたいだね。 美しいかどうかは議論の余地があるけど、とっつきやすく、初心者でもプログラミングしやすいと思う。
>>739 >とっつきやすく、初心者でもプログラミングしやすいと思う。
それって「美しい」の必要条件になり得ると思うんだけどなぁ。
高度なアートは素人には分からないというのもあるのでは
2 E=mc
逐次的に書けてシンプル 動作がスタック操作のみでシンプル 関数に副作用がなくてシンプル すべてがリストでシンプル すべてがオブジェクトへのメッセージ送信でシンプル すべてがホーン節のみでシンプル
744 :
ちんこ ◆GbXlaaQNk. :2009/05/07(木) 18:33:22
とりあえず、今インターンとやらで、WinAPIを触ってる。 ひどい・・・。 C++もちょっと勉強したけど、 ひどい・・・。 Javaのありがたみが分かったのと同時に、 Pythonとかゆとり用言語だな、と感じた。
ハードウェアを触ればもっとひどいと思うよ。 そして、プリインストールされているOSのありがたみが分かる または、ゆとり用OSだなと感じる。
haskellとかprologこそ真のゆとり言語だよ
747 :
ちんこ ◆GbXlaaQNk. :2009/05/07(木) 19:35:12
>>745 ハードからのシグナルをコールバック関数で受けるというプログラムを書いている。
なんか、オブザーバパターンってレベルじゃなくて、
依存の方向が逆な気がするんだよね・・・。
美しいプログラムしか知らないおれにとっては地獄も同然だぜ。
>>746 それらに実用性はないだろ。
Pythonには高い実用性がある、それに書いててwktkする何かがある。
>>746 '70年代のSmalltalk(=暫定ダイナブック環境)はさながら、ゆとりOSか。
>>747 ハードからのシグナルをコールバック関数で受ける
(with-signal-handler (signal)
(case signal
(rx-ready (...))
(tx-ready (...))))
なにか問題でも?
>>747 Pythonはメタオブジェクトがらみになるととたんに美しさを失うからなぁ…。俺は嫌い。
インパクトという点ではLISPが一番びっくりした この衝撃はあと50年は続くだろう
Prologのユニフィケーションほどの衝撃はなかったなぁ。 構文木がファーストクラスてだけじゃんと。
えー、やっぱFORTHじゃねーの? 「この世にコンピュータ言語は二種類ある。それはFORTHとそれ以外だ。」 まさにこの言葉がぴったりだと思ったよ。
755 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 18:17:21
>>754 いや、ふつうにやばいわ・・・。
上でもいったけど、今WinAPIのプログラムしてる。
学内インターンってやつだ。
それで、泣きたくなってる、なんだこの言語。
不完全にもほどがある。
まず、.hにはpublicなインターフェイスのみ記述するようにしろくそがっ!
だってそうだろ、.cppに実装を書くんだから、そういう意味では、
実装でフィールド設定を定義したり、privateメソッドを定義したり出来るようにすべきだ。
そうじゃないと、リファクタリングがめんどくさいだろ!くそがっ!!
C++でリファクタリングの文化が広がらないのはこのせいだな、くそがっ!!
致命的すぎて泣きたくなる。
他には
namespaceって何だよ。
なんだこのクソ仕様。
Javaのパッケージとかまじゆとりだわ。
Eclipseくんが自動でインポート文を書いてくれるしね。
C++では絶対に仕事したくない。
MSではVCとかC#とか使ってると思うけど、
MSには誘われても行きたくない。
C++で仕事するくらいならちんこ切って死んだ方がマシ。
> まず、.hにはpublicなインターフェイスのみ記述するようにしろくそがっ! > だってそうだろ、.cppに実装を書くんだから、そういう意味では、 > 実装でフィールド設定を定義したり、privateメソッドを定義したり出来るようにすべきだ。 ちんこやるじゃんw 俺もヘッダでフィールドについて宣言させれらたりすんのはクソと思う。 あとnamespaceのネストはせめてC#みたいに namespace Foo.Bar.Baz {} で書ければね。 > MSには誘われても行きたくない。 誘われるかボケ。
757 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 18:33:23
オブジェクト指向の本質を知っているおれからすれば、 ある言語をちょっと触れば、たちまちその言語のクソ仕様が分かってしまうのだ。 そのおれがいうのだから間違いない。 Pythonは神言語だ。 そして、お前らはPythonが美しいと言っているが、 なぜ美しいのかは分かっているのは日本ではおれだけだろう。 おれのオブジェクト指向は理詰めなのだ。 可読性には理がある。可読性の高いコードには高いなりのしっかりとした理由がある。 それは、どこどこの教授が書いたからというハクではなく、 どえらい教授が書いたコードだろうが何だろうが、クソなもんはクソだ。 Javaがいかに素晴らしい言語かということがよく分かるから、 ここにインターン行って良かったわ。 オブジェクト指向が不完全な世界がいかに危険でまたストレスフルなものかということがよく分かった。 おれは、オブジェクト指向についておれ未満の知識しか持っていない人間はコードを書くべきではないと思っている。 人間がものを作るとゴミが出る。 人間の資産はどんどんハードウェアからソフトウェアにシフトしていっている。 産業も、例えば、FPGAに見られるように、ハードの世界でもソフトを重視しはじめている。 これからいえることは、 クソ設計、クソ可読性のコードはまさしく"環境破壊"であるということだ。 よって、クソみたいなコードを書くやつは、コードを書いてはいけない。自重しろ害悪クソ野郎が。
C++も実装部分は美しかったりするけどな
なんでこのスレで最も小汚い言語の話をしているのかと
C++がばっちいのはCとの互換性という諸刃の剣が原因だろう
761 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 19:27:24
とはいえ、 実をいうとおれは、 Pythonで開発なんかしたこたねえんだw 今、ある文章に含まれる各単語にすべて、 headとtail以外シャッフルしても可読性が保たれるという話を見て、 Pythonの練習にと思ってやってみた。 30分かかったw しかも不完全すぎてうんこすぎる。 Pythonはダメだ。
> Pythonで開発なんかしたこたねえんだw そもそも何一つ開発などしたこねえだろ。
>>761 可読性をどれだけ考慮しているか、
みんなに見せるチャンスじゃないか。
それを見せてみろよ。
764 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 19:46:35
>>762 お前みたいな低学歴プログラマと一緒にすんなクズw
>>763 てめえのビューティフルコードを見せてからだ。
765 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 19:55:22
地道にPythonが書けるようにトレーニングしていこうと思う。 おれはJavaしか出来ないのだ。 Javaならアホみたいにプログラミング出来るが、 他の言語ではクソだ。 オブジェクト指向や設計など、そっち側に知識が偏りすぎて、 Javaにしか実装が出来ない人になってしまっている。 これではダメだ。 希望的にはCとPythonを勉強しておきたいんだ。 Pythonってどうやって勉強すればいいの? クックブック読めばいいのかな? Rubyなら、ピッケル本とか全部読んだんだけど、 Rubyのendラダーと、コミュニティのしょぼさに吐き気がして、Rubyはもうやめようと思った。 で、Pythonが美しいことに気づいて、Pythonをしたいんだけど、 似たような言語だし、一生懸命勉強する気が起きない。
Rubyにしとけ
>>765 君の視点は美しさを語るには偏りすぎている。
Python のスレに行って勉強した方がいいと思うよ。
私は
>>389 だが、これはそれまでの流れをまとめてみただけで、
私の意見という訳ではない。
768 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 20:28:21
どして? Pythonの方が美しいでしょ。
お前の中ではな
py3で大分ましになったな。
771 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 20:48:18
Rubyでは array.sizeと書いて配列の長さを取得する。 一方、 Pythonでは、 len(sequence) と書いて配列の長さを取得する。 これの優劣を述べよ。
誰だか知らないけど、Pythonにはこないでー
>>771 オブジェクト指向言語と命令型言語の違い。
優劣は特にないが前者の方が好きだ。
774 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 21:07:24
優劣は特にない と、どうして言い切れるの? 言い切るだけの根拠をお願いします。 明らかに優劣はあります。 例えば、Pythonのような実装にすると、 lenというメソッドと、sequenceとの結合度が上がります。 これだけでも明らかなデメリットです。 しかし、Pythonでは上述のようなインターフェイスを公開しています。 なぜでしょうか?
例えば、dot(array, "size") のような構文にすると、結合度が上がるの?
776 :
ちんこ ◆GbXlaaQNk. :2009/05/08(金) 21:42:54
どうやって実装しますか?
evalを使う
>ある文章に含まれる各単語にすべて、 >headとtail以外シャッフルしても可読性が保たれるという話 おもしろそうなので、Smalltalkで書いてみた。ナイーブな実装だけど。 | input shuffledWords outStream | input := 'I couldnt believe that I could actualy understand what I was reading'. shuffledWords := input subStrings collect: [:each | each size <= 2 ifTrue: [each] ifFalse: [(each first: 1), each allButFirst allButLast shuffled, (each last: 1)]]. outStream := String new writeStream. shuffledWords do: [:each | outStream nextPutAll: each] separatedBy: [outStream space]. ^outStream contents "=> 'I cudnlot bleveie that I cloud auctaly udtnesrnad what I was radneig' "
779 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 00:23:48
可読性のかけらもない。 この言語を作ったアホは誰だ。
780 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 00:29:13
俺の読めない言語と知らない言語は糞
Rubyで。 input.split.each{ |w| w.size<2 ? w : w[0]+w.scan(/./)[1..-2].shuffle.join+w[-1] }.join(" ")
782 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 00:59:25
>>781 素晴らしい。
あってるかどうかは知らんけど。
でもscanが美しくないな。
Pythonならこれがもっとも美しいかどうかは別にして
list(str)でストリングをばらばらに出来る。
783 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 01:03:07
例えばこんな感じ。 >>> list = list("chinko") >>> list ['c', 'h', 'i', 'n', 'k', 'o'] >>> shuffle(list) >>> list ['k', 'c', 'o', 'h', 'i', 'n'] Pythonで、 ["a", "b"] というのを "ab"にするメソッドがあればいいんだけど、ないの?
''.join(list('abc'))
> list = list("chinko") もうこれだけでお腹いっぱいです
786 :
デフォルトの名無しさん :2009/05/09(土) 04:38:04
>>10 Obviously, strongly typed language is the better, you know.
>>785 うーん。
イコールの意味の変遷を問うスレさへあるというのに。
美的センスを私も疑う。
>>779 SmalltalkはForthについで(そして特殊形式がないぶんLispよりも)シンプルな言語だから、
英語に見立てて、おおざっぱに読み下せればそれでおk。難しく考えなくてもいい。
789 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 09:34:04
>>785 すまん。
おれもきめぇと思ったが、
左辺に適切な名前をぱっと思いつかなかった。
インタラクティブモードだし、動いてたらいいやと。
今は反省してる。
これじゃ何か再帰がかかってるような印象すら起きるな。
>>784 とんくる。
Ruby派なおれはシーケンス系のところを探していたのだが、
まさかstrのメソッドになってるとは、Python歪みなさすぎ。
文字列を文字として扱いたいなら、C/C++の方が簡単だろ 何しろ文字列が無く、文字集合ならあるって言語だし
791 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 10:53:25
>>790 じゃあお前はそうしてろよ。
おれは高級言語しか使わない主義だ。
すっかりちんこにハメまくられるスレになったな
794 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 11:33:20
C/C++は中級言語です。 高級言語には、ガベージコレクタがついていなければいけません。 メモリ管理をしなければいけない時点で高級言語とは言えません。
>高級言語 機械語、アセンブリ言語と比べてのFortranやC、またはそれに準ずるものの事を言うんじゃなかったっけ? 基本情報の参考書ではそういう風な定義が書いてあったと思う。 GCとかrepl、パッケージシステムを備えたインタプリタ環境が要求されるものに限定するなら、 LL言語という方が適切な希ガス
そろそろNG登録すべきかな
ちんこは独自理論で断定することが多くて嫌になる。 付き合っていると勉強にはなるけどなw JavaとPythonとRubyができる程度で このスレで大きな顔をしているのは恥ずかしいな。 このスレにはアセンブラからスタートして「CPUの動きが透けて見える人」や CやC++はもとより、LISP、Haskell、Smalltalkや PrologやFORTHの偉い人もたくさんいるだろ。 少なくとも俺は80〜90年代にプログラミング系雑誌に記事を書いてたよ。
>>794 C++はテンプレートとか活用してGCからラムダ関数まで実現してやがるぞ
美しい言語には程遠いけど
美しいと思うのはSchemeかな
よくまとまってる
別の意味で美しいのはPerl
799 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 13:43:24
スマートポインタとかいうやつだっけ? クソだよね、どうせ遅いんでしょ。 JavaのGCは超高速だし、 最適化技術が超優秀だから、 これらはコードの書き方すらも変えてしまった。 例えば、一般的にいえば、 メソッドの凝集度を高めるために違うメソッドで同じループが回ることもあるが、 これすらも、ちゃんと無駄なループを削除してくれる前提で、凝集度を高めることに専念出来る。 保守性を高める方向に全力投球出来る。これはC++では出来ないことだ。 C++では、生成と破棄が遅いから、メモリを使いまわしたりする必要があるが、 Javaは生成と破棄が神がかって速いので、 多くの場合、メモリを使いまわすより、再生成した方が速い。 また、ローカルなオブジェクトはキャッシュで処理されるから、 計算なども事前に計算するよりその場で計算した方が速いということが多い。 メソッドオブジェクトなどは、C++では考えられない手法だろうが、 Javaではむしろ高速で、しかも凝集度を高める。 そのオブジェクトへの参照が小さなスコープで閉じているからだ。 優秀なIDEの存在も手伝って、 Javaはもはや無敵の言語となっている。 もしJavaに勝てる言語があるとしたら、すさまじい可読性を潜在的に持っている言語。 言い換えれば、バカが書いてもきれいに書ける言語だろう。 Javaは、バカが書くととんでもないことになる。 そして、コードを書くのはみんなおれのように可読性について知ってる人間ばかりではない。 だからバカが書いたコードをどうにかする言語がこれから必要になる。 1つの解としてPythonがある。 何かするために道が少ないというのは、可読性を上げる大きな要因になる。 LISPをやっていたから、Prologをやっていたから、とかは全く無意味。 老害プログラマはさっさと死ね。
>>799 の書き込みを見て、Java コミュニティがクロージャを排除するような
低能を大量に抱えている集団だって事だけは良くわかった
経験薄いだろこいつ
Javaって実践で使ったことないんだけどthrowsってどうなん? きっちり活用できてるの?
クーロンのバラック群だって近くでみれば汚いが、 遠目に見るとなにやら芸術的に見えてくる。 そんなもんさ
美人は遠くからみろだな
言語利用者から見た「美しい言語」と 言語開発者から見た「美しい言語」は違うよね。
ちんこはJavaの凄さについて語っている。 それは問題ない。 問題なのは、Javaの凄さを語っているこいつ自身がぜんぜん凄くないのに威張っていることだ。 Javaも満足に使いこなせない初心者が他人をバカ呼ばわりするのは、みんなに対して失礼だろ。
Javaの凄さの半分はVMを長年ひっしこで磨き上げてきたSunの社員の凄さ。
808 :
ちんこ ◆GbXlaaQNk. :2009/05/09(土) 21:08:28
>>806 別に威張ってないよ。
Javaはコードの書き方すら変えてしまうほどすごい言語だ、
この言語に勝てる言語はPythonしかないだろうといってるだけで、
いつおれがJavaを作ったなんて言ったんだ?
いっとくが、おれは情報系の出身ではないので、
独学でコンパイラは少し勉強したが、
基本的に池沼だよ。
ソフトウェアの作り方そのものに興味があるだけで、
そこにおけるおれのニーズを満たしてくれる言語が美しいといってるだけ。
言語そのものの美しさなんて、語ってない。
おれの美しいと言ってる言語は単に、生産性が高いというだけ。
それがおれの美しさの基準。
>>807 だからSunの天才たちには感謝しているよ。
これって、Sunの中でも基礎研究をしてるエリートが作ってるんだろ。
プログラム自体は知らんけど、理論方面は。
おれはそれがどういう言語で、どういう特性があるかというのを、
コードをどう書くかという点からおっざっぱに調べている。
パーサの実装だとかはどうでもいいw
とりあえずブログを作った。
Pythonを勉強していくつもりだw
Javaは基礎的な部分を書く時に使って、ほとんどの部分はJythonで実装する形にしたい。
そのために、Pythonを極める必要がある。
809 :
デフォルトの名無しさん :2009/05/09(土) 21:59:08
Sun煮天才はいないだろ。。
810 :
デフォルトの名無しさん :2009/05/09(土) 22:10:55
>>802 throwsっていうかチェック例外は失敗だったんじゃないかなぁ。
googleなら奇抜な天才いそう
ガイ・スティールは天才。
>>800 マジレスすると、クロージャを取り入れたい人は多いのだけど、
方針が複数あって折り合いがつかないんだよね。
Java SE 5へのアップデートの時に取り入れた仕様の一部を
醜いと感じる人が多く、新しい仕様の導入に慎重になっているらしい。
俺はJavaを7年くらい使っているけど、クロージャを待望しているよ。
クロージャねぇ。無名内部クラスで十分じゃない? 値の書き替えができない てのも、適当なラッパクラスでも用意すれば回避できるだろうし。 スレ違いすまそ。
C++もそうだけど手持ちの機能で無理やりクロージャもどきやるとすごい不自然なんだよな。 うだうだ入ってないでさっさとつけろって感じ。
Scala がアップを始めたようです
>>ちんこ Javaの限界を理解すると、おそらくC++の必要性も理解できるよ。 Javaではいくら最適化しても間に合わないような、 リアルタイム性が必要な処理を、Javaで書いてみるといい。 私は昔、Javaがあるのになぜあんな醜いものをいまだに使うんだ、 と憤りを感じ、何でもJavaでやってやろうと思ったことがあった。 そして、まだJava製OSSが存在しなかったので、 MPEG2のデコーダーを途中まで、Javaで書いたんだよね。 そして、コンテナから映像を取り出して、それを複合化して、 BMP画像として書きだすところまで作った。 (書き出すだけならJavaのAPIで簡単にできるから) しかし結局、どう頑張ってコードレベルで最適化しても、 論文を読んで速いというアルゴリズムを使うようにしても、 Cとアセンブラで書かれたコードのような速度は出なかったんだ。 そして「もっと速くするには言語自体に〜する機能が欲しい」と 考えるうち、C++がそういう言語じゃないか、と気付いた。 あれは少しでも速度を犠牲にするものは全て拒否した結果だと思う。 今考えると傲慢で恥ずかしい話なんだけど、いい勉強になったよ。 例えばシミュレーションの分野では、ハードウェアが速くなれば 精度を上げるだけなので、いつまで経っても「もう充分」にはならない。 (これはゲームなども一緒) MPEGも、ハードウェアが速くなるたびに圧縮率を上げることで 慢性的に性能不足の状態が続いている。 こういう分野には、ああいう言語が必要なんじゃないかな?
今のところは必要でいいんじゃねーの
820 :
ちんこ ◆GbXlaaQNk. :2009/05/10(日) 06:33:07
>>818 何をもって限界と言ってるのか分からない。
あなたは限界を知り尽くしてるのですか?
理論的に、その先がないことをすべて証明出来るということですね?
ただ、あなたが経験した中から限界だと感じたというだけであれば、やすやすと限界という言葉は使わないでください。
Javaが問題となる1つの領域は、
メモリについて厳しい領域です。それは自明です。
しかし、計算パフォーマンスでいえば、すでにJavaが遅いということはありえません。
それは、プログラム自体が悪いです。
あなたが使ったのは昔のJavaであって、今のJavaはとても高速です。
また、Javaにとってコードレベルでの最適化はむしろ最適化を妨げる傾向にあるので、
決して行わないでください。
大体、あなたごときが、コンパイラが行う以上の最適化をコード上で行うことは不可能です。
JavaはC#のようには元々JITコンパイラ向けに設計された言語 ではないので、C#ほどの速度は出ない 多分JavaのJITコンパイラが相性が悪いか、設計が糞なのだ Javaで書かれたソフトウェアを動かしてみろ、例外なく動作が もっさりしているのを感じるだろう C#でもわずかだがもっさりするのにJavaなら言わずもがなだ
OSのようなパフォーマンス第一の環境を構築するのに未だに Javaが使われない事を考えればその事は自明である 未だにC/C++なのだ
もはや美しさとは関係のない話だなぁ。
速いものは必ず美しい
使いやすいかどうか=自分が理解できるかどうかで語ってるしなぁ
速さを追求するあまりマルチステートメントで1行に命令ギッチリ詰め込み、変数名は全部1文字、GOTOでそこら中飛びまくり な行番号付きBASICも美しいと申すか
>>825 まあ、理解できないものを美しいかどうかなんて判断できないじゃん
>>824 それはおかしい
x86のアーキテクチャの汚さを知っているだろう
なのにx86は早いではないか
829 :
デフォルトの名無しさん :2009/05/10(日) 09:03:52
いやいや、熱心な信者がいるのは認めるけど、86は遅いだろ。 車でもプロセッサでも。
x86が遅い? RISCを蹴散らした怒濤のクロックアップ戦争の勝者ですよ DrystoneではIntelのx86がトップです Wetstoneではまた違うCPUですが
>>829 ロクに知らない癖に書くなよな恥ずかしい
質量からエネルギーの値を得るとしきつかう式(関数、システム)を作ってみたら美しかった。 2 E=mc しかし、それにいたる理論は理解するのが簡単ではにあ。。だが使う人にとっては必ずしも理解する必要はない。 そこで質量からエネルギーの値を得るシステム記述言語、Albertを作ってみた。 こんな感じ。 SET M 1000 FROM STDIN SET C FROM CONFIG PRINT CONDITION EXEC PRINT RESULT このシステム記述言語は理解したり使うのはやさしい。こういう言語は美しいと思う。 でもこれ作るにある程度複雑なプログラミングが必要だった。 そういうことだと思う。
先生!さっぱりわかりません!!
834 :
818 :2009/05/10(日) 16:11:34
>>820 > あなたが使ったのは昔のJavaであって、今のJavaはとても高速です。
以前SunのJava SE 6がかなり速くなったと聞いて
それで動かしてみたんだけど、やっぱり遅かったよ。
(細かいバージョンは忘れたけど)
一例を挙げると、今時のCPUはSSEなどのSIMD命令をだいたい備えている。
C/C++でもコンパイラの自動検出には限界があり、
プロファイラでボトルネックを探した後は
コンパイラマクロなどで置き換えて、そこだけ手書きでSIMD化する。
Javaでは言語やVMのレベルでSIMD命令をサポートしていないので、
こういうことができないんだよね。
> また、Javaにとってコードレベルでの最適化は
> むしろ最適化を妨げる傾向にあるので、決して行わないでください。
「最適化を妨げる」話は以前IBMかどこかのWebサイトで
見たことがあるけど、ちょっと誤解してるみたいだね。
データフロー解析にしてもループバージョニングにしても
できることには限りがあるから、
解析の結果、不要な処理をJITコンパイラが理解できる
コードを書いてやる必要があるよね。
コンパイラの勉強をしていると、逆にそう思うんじゃないかな?
それから、逆に最適化を助けているか妨げているかは、
ちゃんとプロファイラを使って調べないとね。
今時のPCは複雑だから、最終的には実行時間を測ってみないと。
> 大体、あなたごときが、コンパイラが行う以上の最適化を > コード上で行うことは不可能です。 やってみる前から「人間はコンパイラ以下」と決めつけない方がいいよ。 コンパイラのアルゴリズムも結局は、人間の手動書き換えを法則化したものだから、 まだ法則化できていないものや、セマンティクスが分からないと 書き換えられない部分は、人間が書き換えた方が速くなるよね。 > 何をもって限界と言ってるのか分からない。 > あなたは限界を知り尽くしてるのですか? > 理論的に、その先がないことをすべて証明出来るということですね? HotSpot VMが生成するものが何かを考えれば、 理論的な限界がアセンブラより手前にあるのは分かるよね。 では、そのアセンブラをインラインで書けるC++は? …と書くと、ちょっと意地悪かな (笑 理論的な限界が遠くても人間に扱いにくければ無意味だから、 理論的な限界は気にし過ぎない方がいいよ。 JavaがC++より優れているところだって、 一番は人間にとっての扱いやすさでしょう。 (結果、実用上はJava製の方が速くなることが多々ある)
重要なのは、C++が優れているか、Javaが優れているか、ではないんだ。 言語の仕様以外にも、プログラムを書いていると、 様々な場面でトレードオフが発生する。 そういう時に、一方が絶対的に優れているという 原理主義的な考えに陥らないで、状況に応じて使い分けられること、 「当然だからそうした」と思考停止するのではなく、 何と何の (上の例では速度と生産性他) トレードオフの結果 自分がそれを選んだのか、自覚しておくことじゃないかな。 つまり「言語の美しさ」の基準は目的に応じて変わることがあると。 長々とつまらないことを語ってしまってごめんね。 以降は静観してまつ。
837 :
デフォルトの名無しさん :2009/05/10(日) 16:30:16
>>820 VMは生コードに比べたら遅いにきまってるのに何ほざいてるの?
とにかく一度コンパイラ関係の本をざっと読んでみろ。
>>837 CPUはASICに比べたら遅いにきまってるのに何ほざいてるの?
というのは冗談としても、
ALGOL系がまるごとHDL系+FPGAに蹂躙される未来もありえるよ。
別に決まってはいない。 オプティマイジングの弱いコンパイラなんて山ほどある。
>ALGOG系がHDL系+FPGAに蹂躙 最近出ているHDLってもう殆どMLとかHaskellみたいなもんだからな。 関数型言語がメジャーになるというのはそういう方向からなのかもしれんな。 あとは定理証明器の技法を使ったモデル検査とかの形式的手法とか、 ハードの世界じゃそういう本流の計算機科学を使った技術が結構広く使われてるらしいじゃない。 lispとか使ってる人にとってはそちらの未来の方が理想に近いんだろうなぁ。
>>799 >例えば、一般的にいえば、
>メソッドの凝集度を高めるために違うメソッドで同じループが回ることもあるが、
>これすらも、ちゃんと無駄なループを削除してくれる前提で、凝集度を高めることに専念出来る。
これって本当?
違うメソッドに同じ構成のループがあったら統合してくれるの?
Javaってそんなにすごい最適化をするのか。
Web上に参考になりそうな情報はある?
何を基準にするかで変わってくると思うが, 自分が美しいと思うのは, 次の4つかな. ●D言語: 美しく「書くことができる」と思う. scope とか, エラー処理も比較的分かりやすく書けると思う. ●Scheme: 言語自体が美しいと思う. 慣れると, 洗練されていてちょっと感動を覚えた. ※見た目は美しくない気もする...orz ●Python: コードの見た目が美しい. コードを見たとき, あぁん きれいだと思った. ●アセンブリ言語 見たまんま, CPUに忠実で美しい. 期待を裏切らない! ここのタイトルで言っている美しいは, Scheme になるのかな. まぁ, 有名な言語は悪い点はあるにせよ, どれもなかなか美しいと思う. ただ, 開発で C++ はあまり使いたくないけどな・・・ 余りにもきしょいコードが「書けてしまう」ってのが・・・orz 大人数開発で言語選べるなら, やっぱ Java かな.
> コードを見たとき, あぁん きれいだと思った. キメエ、死ね
美しいって言いたいだけなのか
>コードの見た目が美しい. Whitespaceですね、わかります。
美(空)白ですからね
>>844 のような短絡的な書き方、思考は2chの仕様です。
Javaを推したら荒れるかなとwktkしてたら別な人がJavaを推してた 意外と荒れてなくてワロタ 長くて真面目に読む気にならないせいかもしれんが…
Javaは美しい、がもっさりしている
851 :
ちんこ ◆GbXlaaQNk. :2009/05/11(月) 09:57:39
>>834 じゃああんたは勝手に自分最適化してればいいよ。
絶対にそんなの無意味だから。
おれはJavaでは99%の領域では言語レベルでのパフォーマンスに何の問題もないプログラムを、
保守性の高いコードを書いてあとは全部VMに任せることで作ることが出来ると思っている。
よっぽど特殊なユースでない限りこれでまったく問題ない。
それどころかPython程度の速度でも何か問題が起きることはありえない。
これでも95%のユースには耐えられる。
ダメだとしたら設計やアルゴリズムが悪い。
ソフトウェアは単純になりえないから、人間が頑張るべきところはコードを単純にするところであって、もはや見た目の速さをあげることではない。
そういう領域で戦ってる人はどんまいとしかいいようがない。
例えば、シミュレーションとか、数値解析の類はそうかもしれないね。
>>837 一度、なんかふざけたJavaでコンパイラを作ろうみたいな本をちょっとだけ読んだことがある。
しかし、サンプルコードがめちゃくちゃ、凝集度がゴミだし、可読性のかけらもなかった。
それで、コンパイラやさんっていうのは池沼だなという結論に至った。
ドラゴンブックも途中まで読んだ。こちらのコードはそれなりだったが、飽きたので止めた。おれには必要ない。コンパイラやさんになるつもりがなければ概要だけ分かればいい。
>スクリプト言語はコンパイラ言語より遅いのか?!
>
ttp://enbug.tdiary.net/20060318.html ここに、Shiroさん(Schemeの偉い人、Gauche作者)が
次のようなコメントを書いていて興味深いです。
「『開発効率が実行効率に影響を及ぼす』というのは現場で何度も経験しています」
「アルゴリズムによる高速化というのは10^2?10^3以上のオーダーで効いてくることが
あるのに対し、アセンブラレベルでの高速化は10^1以下のオーダーであることが多いです」
854 :
ちんこ ◆GbXlaaQNk. :2009/05/11(月) 20:57:12
>>852 さんくる、それは良い記事だ。
開発の容易な言語こそが神だと言っているのだろ。
ところでおまいらに相談がある。
それは、おれがJavaで開発するかCPythonで開発するかということだ。
今、おれは研究に使う言語をJavaにするかCPythonにするか、究極の選択を迫られている。
しかし、そこに問題があり、おれはとても悩んでいる。
JavaにもJythonという言語があるが、この言語からはCPythonで記述されたライブラリが使えない、これがその問題だ。
仮にこれが解決されるのであれば、おれは迷いなくCPythonを使う。
グラフィックライブラリはVTKだとかVPythonとかあるし、openGLバインディングもある。
Java系を使うと、C系が使えなくなる。
おまいらもこのジレンマに陥ったことがあるはずだ。
誰か、おれにアドバイスをくれないか。
856 :
ちんこ ◆GbXlaaQNk. :2009/05/11(月) 21:32:09
ガチなんだけど。 スレ違いなのは分かってる。 だけど、言語の美しさに敏感なお前のアドバイスをもらいたいんだ。 ここのレベルはそれなりに高い。 他は分からないからおちょくって終わるようなレベルの低い池沼ばかりだ。 きちんとファクトベースで議論出来ないやつとなんて話す必要ない。
>Java系を使うと、C系が使えなくなる 使えるだろ。 ただし、美しくない方法なので、それを教えるとJavaが美しくないことがバレてしまう。
858 :
ちんこ ◆GbXlaaQNk. :2009/05/11(月) 22:03:31
>>857 JNI使うとか言い出すのか?
それは禁忌だ。
大体、めんどくさすぎる。
JythonからPure Pythonのライブラリを呼び出せるのかどうかが問題なんだ。
俺が隔離スレ立ててやるからそこを日記帳にしろ そして二度とそこから出てくるなカスコテ
スレタイからは外れているけど一言.Javaの動作がもっさりして感じるのは 通常の実行方法だとJVMを生成してからユーザプログラムを実行しているから. ユーザプログラムの実行時間が短い場合,相対的にJVMの生成に費やされる時間が 長くなるため,もっさりした感じを受けてしまうだけなのである.ユーザプロ グラム部分の実行速度はもはやnative codeの速度とあまり変わらないのだ.
>>860 > 通常の実行方法だとJVMを生成してからユーザプログラムを実行しているから
いつからAndroidスタイルになったんだよ…
つか値型くらい導入しろよ…
だれも反応しなければここが隔離スレだ
>>860 あのさあ
Javaに特別な思い入れがあるのかもしんないけどさ
実測という厚い壁はどうやっても超えられんから
そのつもりで
俺も好きこのんであの汚いC++を使ってる訳じゃないぞ 実績に裏書きされた高速性があるから仕方なく使ってるわけで Javaのよい点のソースの美しさは認める でも速度に関しちゃC++に絶対勝てないから だいたいJavaそのものがC++で書いてあるしな
Javaは例外処理が美しくないだろ
throwなんて去勢されたgo toだろ
それを言うなら洗練されたlongjmp()と言ってくれ
// Javaのエラー処理 // 変数名とかは申し訳ない m(__)m try { FileReader fr = new FileReader("sample.txt"); try { BufferedReader br = new BufferedReader(fr); try { // br.readLine() とかごにょごにょ } catch (IOException e) { e.printStackTrace(); } finally { br.close(); } } catch (IOException e) { e.printStackTrace(); } finally { fr.close(); } } catch (IOException e) { e.printStackTrace(); } // 綺麗とは言えないな・・・ラップとかすればマシにはなるが・・・ // どなたかエレガントな感じに書けないでしょうか。
例外オブジェクトの生成部分をフックして 一元的にスタックトレース吐かせたりは出来ないの? あとリソースの廃棄を自動化は出来ないのか。 C#のusingみたいに。 Javaって美しいというよりシンプルなだけって気が。
>>870 例外オブジェクトの生成部分をフックして
こんな表現が出てくる事自体、全然美しくない。
おまえら、自分が推す言語で
>>869 を書き換えてやれよ
いいだしっぺのおれはWhitespaceでいくぜ↓
--ここから--
--ここまで--
D言語: BufferedFile file = new BufferedFile("sample.txt"); scope(exit) file.close(); // file.readLine() などごにょごにょ Java: (例外を上に投げるパターン) FileReader fr = new FileReader("sample.txt"); try { BufferedReader br = new BufferedReader(fr); try { // br.readLine() とかごにょごにょ } finally { br.close(); } } finally { fr.close(); }
C言語 FILE* fp = fopen("sample.txt", "r"); if (fp != NULL) { /* fgets などごにょごにょ */ fclose(fp); } 意外とすっきりしてるが・・・ ごにょごにょ部分でエラー発生したときを考えると ちょっとややこくなるか?
CL (with-open-file ("path-to-file" :direction :input) (#| read-line などごにょごにょ |#))) ごにょごにょのエラーを検出したい場合 (with-open-file ("path-to-file" :direction :input) (handler-case (#| read-line などごにょごにょ |#) ((or error-type-1 error-type-2 ...) (condition) (#| 回復可能なエラー処理 |#)) (serious-condition (condition) (#| 回復不能なエラーの処理 |#))))
Haskell: (readFile "path-to-file" >>= {- リスト処理関数などごにょ -}) `catch` (\err -> {- errをごにょごにょ -} )
Ruby: begin open('sample.txt') do |f| # 処理 end rescue # エラー処理 end
878 :
873 :2009/05/13(水) 21:49:15
Ruby はかじった程度しかしらんが、 ensure で close とかしなくてもいいもんなん?
openにブロックを渡すとcloseを保証してくれる with-open-fileの高階関数版みたいなもん
無名関数、無名クラス、ブロック 美しいのはどれ?
Squeak Smalltalk で。 [FileStream fileNamed: 'sample.txt' do: [:file | "処理" ]] on: Exception do: [:ex | "エラー処理"] ちなみに #fileNamed:do: は Ruby の open にインスパイアwされて導入された。
Java はその柔軟さゆえに、どうにでもなるさ。 abstract class Proc<P extends Closeable> { private final P port; public Proc(P port) { this.port = port; } public void run() { try { process(); } finally { port.close(); } abstract void process(); }
python美しいとかいうから、見てみたが 文法強制されてんのね。 まぁ、美しいかは分からんが、可読性はありそうね。 つうか美しさって、しっかり定義しとかないと永遠と続くだろ 実用の美しさ 可読性の美しさ 簡潔差(その代わり言語の内部処理が泥臭いだろうが) 効率 色々あるっしょ
884 :
ちんこ ◆GbXlaaQNk. :2009/05/14(木) 01:47:36
ソフトウェアは芸術ではない。 ソフトウェアは工学である。 そしてそのプロセスにおいて重要なのは人間である。 なぜならば、コードは、人間によって書かれ、そして読まれるからである。 だから、プログラミング言語にとってもっとも重要なのは、可読性の高さである。 可読性の高い言語は、開発効率の直結する。 開発効率の高い言語が美しいとおれは考える。 なぜならば、プログラムは芸術でも何でもなく、 唯一の価値は、それが動くことによって生み出されるからである。 Lispみたいな言語が美しいと言ってる人は頭がどうかしてる。
いいや、プログラマーはアーティストだ。 じゃなければ、ただの作業員だ
内部の美しさもあるだろうに
S式で統一されている美しさとその実用性が理解出来ないんだろうな 哀れな
>>884 開発効率に直結する可読性なら、断然、Prologだろう。
美しい、美しくないなんて個人の主観が100% そんな観点で語りあっても宗教論争以上にはならん
>>890 個人の主観をぶつけ合うスレがあったっていいじゃないか。
それなら、美しい言語とは、客観的な言語である、と定義すればいいかも
○○の美しさで言えば、○○が一番。 理由は○○ って感じの言い方で主張すればよろしいかと。
894 :
843 :2009/05/14(木) 07:57:41
>>884 一度Lisp極めてみたら考え方変わると思う。
俺も何この括弧だらけの言語・・・
読みにくくてしゃーねーじゃんと思っていたが、
ある頃からこれはこれで、美しいと思い始めてしまう。
俺・・・もしかして、
Lisp(Scheme)に洗脳されてる?
>>882 なにその厨ソース
アプレットでもやってろよw
>894 演算子の優先順位とか結合度とか全く気にする必要ないもんな パーザの挙動は全て括弧に書いてあるから
>>879 > with-open-fileの高階関数版みたいなもん
with-open-file のボディはマクロ展開すると unwind-protect に渡される
高階関数なんだが…
単純に「マクロじゃない」という意味だろうjk
899 :
ちんこ ◆GbXlaaQNk. :2009/05/14(木) 10:34:19
>>893 だからおれはそうしてんだろ。
主観で話してもしょうがねえんだよ。
これだから文系出身プログラマどもはwww
Lispなんてまともな開発出来ねえよ。
LispでTDDなんて出来るのか?
おれはソースコードへのこだわりはあるが、
言語の内部構造、つまり実装や設計についてはこだわりはない。
ソースコードを美しくしてくれて、開発効率の高い言語が、設計としても美しい。
Pythonの開発者はそこらへんが分かってる。
本当にソフトウェア開発の効率を上げることで、人類の進化に貢献しようという気概がある。
・ファイルのクローズをする
・エラー処理をする
という両方を入れた場合、
Java
>>869 はどう考えても可読性や開発効率が他の言語より劣っているよね。
Ruby
>>877 と比べれば一目瞭然。
ちんこはどう思う?
Javaは発表当時は美しかったよ。当時主流だったC++と比べると。 C#は一体どこまでぶくぶくと肥大化していくんだろう。もう誰も仕様把握できてなくね?w
ここはまずちんこにPythonで書いた場合を出して解説・他と比較してもらうのがスジだろう。
lispでまともな開発ができるという実証はPaul Grahamが行った あとlispにもclunitとかTDDのライブラリはあるよ
>>902 こういうながれでソース出した奴みたことない。
ちんこはまた単に言い逃れをするだけ。
ちんこはこの例をPythonで書いて見せることすらできない。
905 :
ちんこ ◆GbXlaaQNk. :2009/05/14(木) 11:05:28
>>903 実際にTDDをLispで行ってる人はいますか?
現状で行われてるTDDのほとんどはJavaかRubyかPythonによるものだろ。
C++でユニットテスト書く人すらも少ない。
>>900 よくファイルの読み書きで美しいだとかなんだとかいう人がいるけど、
あなたは一体、1つのソフトウェアを作る中で何回ファイルの読み書きをするつもりですか?
これは開発効率の中でボトルネックとなる部分なのですか?
あなたは読み書きをして終了するだけのソフトウェアは実用性があると思いますか?
おれはないと思います。
この、開発におけるボトルネックという考え方が日本人には出来ないらしい。
日本人はリスク管理が出来ないからね、それと同じなんだ。
ファイル読み書きとか、
生のコードについて美しいだとか美しくないだとか言ってる人は知れてる。
そういう人は、
メソッドの構造化リファクタリングとか、
メソッドオブジェクトの抽出リファクタリングだとかいうものを知らないんだろうな。
ものすごい飛躍を見た
ということで、ファイルの件はもういいから、通常の開発で 何度も出てくるようなボトルネックとなるコードをクタる例で美しさを語ってもらおうか。>ち
>>583 >>590 において、たった十数行のサンプルプログラムのようなものに噛み付いて、
吐き気がするだの死ぬべきだだの大げさに言ってた奴が、
> よくファイルの読み書きで美しいだとかなんだとかいう人がいるけど、
ちんこよ、それはイカン。その態度ではお前は価値を下げる。
>>905 >あなたは一体、1つのソフトウェアを作る中で何回ファイルの読み書きをするつもりですか?
>これは開発効率の中でボトルネックとなる部分なのですか?
>あなたは読み書きをして終了するだけのソフトウェアは実用性があると思いますか?
違う違う。
エラー処理をする際の、リソースの後始末はどうするかという話だよ。
これなら実用的なコードのあちこちで見る典型的な処理だろ?
じゃ、言い換えよう。
・使用したリソースの後始末をする
・エラー処理をする
という両方を入れたコードの例を示した場合、
Java
>>869 はどう考えても可読性や開発効率が他の言語より劣っているよね。
Ruby
>>877 と比べれば一目瞭然。
ちんこはどう思う?
>>905 C++でもBoostのライブラリは殆どがBoost.Testによるテスト付きで、
そのBoost.Testもオープンソースのソフトを中心に広く使われている。
Boost以外でもcppunitとかテストライブラリは古くから出てるし、
C++の世界でもTDDの概念はそうマイナーなものではないと思う。
lispのclunit以外でもgaucheとかテストライブラリが添付の処理系もある
gaucheは処理系のソースにテストコード付いてるぐらいだしね。
>>884 ちんこ「プログラミング言語にとってもっとも重要なのは、可読性の高さである。
可読性の高い言語は、開発効率の直結する」
↓
>>900 俺「Javaは可読性や開発効率が他の言語より劣っているよね」
↓
>>905 ちんこ「あなたは読み書きをして終了するだけのソフトウェアは実用性があると思いますか?
ファイル読み書きとか、生のコードについて美しいだとか美しくないだとか言ってる人は知れてる」
この流れ、論理的でないと思うが、どうだろう?>ちんこ
用は開発効率なんて、慣れだろ。 文法が強制されるってことは、ある程度のものを書くと ひとつの形に集約されてくるってことだろ。 スタイルを強制されるのはびもーだな。 >あなたは読み書きをして終了するだけのソフトウェアは実用性があると思いますか? えっとね、UNIXだとあるよ? 勉強不足だね。 ファイルが存在するか否かを確認するだけのプログラムもある。
そもそも、「俺はAという言語で○○という処理をしているが、Bと言う言語で、○○という処理は出来るのか」なんてのは 出来るってしか言いようが無いだろうに... 機械語使えばなんでも出来るってのと同レベルの話だろ
914 :
ちんこ ◆GbXlaaQNk. :2009/05/14(木) 11:52:27
>>908 それは違うね。
おれが言ったのは凝集度の問題であって、
ファイル読み書きのコードはそれ自体、凝集度が高い。
悪いところがない。
Pythonでも凝集度の低いコードは書けるよ、
それはプログラマの能力次第な部分だ。
しかし、Pythonには凝集度が高くなるような誘導がある。
ヘボが書いてもそれなりの可読性を保てるようになっている。
例えば、不変オブジェクトを導入することによって可読性が高くなるということがよく分かっている。
メソッドオブジェクトは不変オブジェクトの特化だ。
メソッドオブジェクトの抽出は、コードの可読性を上げる。
お前ら働けよ
917 :
ちんこ ◆GbXlaaQNk. :2009/05/14(木) 11:56:33
>>912 では、あなたはファイルの存在を確認するプログラムを100個くらい量産してください。
さぞ素晴らしい読み書きプログラムが100個生産されるのでしょう、とても楽しみです。
ソフトウェアは再利用されるものです。
すでに存在するプログラムを二度作る必要はありません。
ソフトウェアは作り、使われるものです。
そして、新規に作る場合、それはこの世に存在しないものであるべきです。
存在するのであれば、作る必要はありません。
>>917 だから、UNIXには既に「在る」って書いてるだろ
UNIXの世界観を何もしらないのかコイツは
ソフトウェア関連で一番馬鹿らしい話が「車輪の再発明」だよな "再発明"などと言う大上段に構えた言い方で、初心者の学習機会を奪っている 子供のころ工作で、厚紙で車輪を作ったことがあるだろう 厚紙だと細すぎて上手く回らないから、ダンボールを使って車輪を作っただろう 創意工夫というのは、自分で作ることから始まるものだ どんな些細な物でも、自分で作って納得して初めて自分の技術になる 興味がある物ならば作ってみる それが技術習得の一番の近道だと俺は思う
ちんこって頭悪いな 自分で何を言ってるのか全然把握せずに書き込んでる
言語の優劣の議論なんて一流の技術者、研究者がやってもgdgdになるものを 素人の俺等やちんこがやったらgdgdどころじゃないだろうなと思ったら案の定
まぁただのJava厨だしな
ただのJava厨か Javaの仕事なんて下請けでオバサンが家で仕事してる時代なのにw
>>884 >869と>875を見比べた時、明らかに>875の方が可読性が高いんだが。
詩でも書いてるつもりになってオナニーしてんじゃねえよ。
>>925 可読性高くねーよ
デタラメ言ってんじゃねえ
慣れの問題だ
どっちが指が疲れるかのほうが重要だろ
>>869 は逐次的で処理がわかりやすい。
>>875 はコードが短くて(抽象度が高くて)わかりやすい。
そこでRuby
>>877 ですよ。いかがですかw
ぶっちゃけ、いつも使っている言語が一番
美人は三日で飽きるんだよ
>>917 どでもええけど、TDD が必要なのはなぜか良く考えてみよう
副作用前提(状態持ちまくり)の糞言語から見たら別の話なんだろうけどなw
>>920 再発明は×、再製作は○、この違い分かる?
iPhoneのサンプルコード眺めてたら字面の醜悪さに眩暈がしてきた・・・
>>931 をみて、ふと思ったんだが
「あ、きれいなコードだな」って思うコードは
使ってる言語問わず、副作用をうまく隠蔽してある、つか
例外条件が少なくなるようにデザインしてるなと感じる
>>934 それを考えるとC言語は既に十分醜いな
副作用に動作が依存する場面がすごく多い
また演算子の記号がAPLに次いで2番目に多い
(C++があるから今はどうなのかわからないが)ので
プログラムをコンパクトに書ける反面直感に反した
結果を出す事が多い
演算子の優先順位があり、しかも適応方向が
右から左か左から右かバラバラに混在しているから
C言語の宣言なんかはパッと見て理解できない場合
が多い
副作用って代入か入出力ですよね 代入を隠蔽するのはいわゆるカプセル化だと思いますが 入出力を隠蔽することがあるんでしょうか
>>935 いあ、うまい奴がつくると C でも本当にきれいに書いてある
>>936 > 入出力を隠蔽することがあるんでしょうか
デバドラ回りの階層化ってのはそのためにやってあるんじゃないんでしょうか?
>>936 割り込みを使ったストラテジーに分解する事はある意味隠蔽だと思います。
OS側からデータを送る部分とバッファに溜まったデータを割り込みによって
ハードウェアに吐き出す部分は明確に区別されています
入力も順序が逆なだけで似たようなものです
>>936 直接、入出力の話じゃないけど………
キャッシュの容量だとかラインサイズだとか、誰も気にせずにプログラムしてるだろ?
仮想記憶のページサイズとかもほとんど気にせずプログラムできるだろ?
Cの仕様には入出力がないっていう話があって、 既にもうそれ以上隠蔽しようがなくなってる気がする。
はあ?
にゃ くぱぁ。
943 :
ちんこ ◆GbXlaaQNk. :2009/05/15(金) 00:26:29
だからおれはイミュータブルなメソッドオブジェクトを好めって言ってるんだよ。 状態っていうのは、害悪でしかない。 状態はなるべく少ないように設計しなければいけない。 それが、ThoughWorksアンソロジーに書いてある、 インスタンス変数は1つまでというプラクティスの有力な根拠だ。 もちろん凝集度の話もあるけどね。 信じられるだろうか。 おれは信じられない。 問い合わせと更新を同時に行うメソッドを実装する人を。 リファクタリングで分離しなければならない。 美しいソースコードの書き方を知らないカスが、 美しい言語を語るなんていうのは、 プログラミング言語を芸術かなんかだと勘違いしている証拠だ。 そこに哲学は存在するが、芸術ではない。 プログラミング言語は眺めて楽しむものではなく、 動くソフトウェアを作ってこそ価値を見出せるものだからだ。
俺はケツの毛を剃った。まで読んだ。
>>943 ポエマーなあなたは、言語なんか探してないで、自分でポエミーな言語を
作っちゃいなさい。
>>943 言ってることは支離滅裂だわ
都合の悪い事は語らないわ
お前はいったい誰に愚痴をいってるんだ?
そこら辺に転がってた考え方を唯並べてるようにしか見えんな
最近基地外の振りしてでも構ってもらいたがるレス乞食が急増しててその中の一人って事だろ。 寂しいんだよ。
もしかしたら、ここがお話が出来る唯一の場所なのかもしれん。 そうだったら、かわいそうな気がしてきた。。。
>>943 問い合わせと更新を同時に行うのは信じられないらしいけど
それじゃキューやスタックはどうやって実装する?>ちんこ
やめとけ ちんこはお触り禁止
相変わらず空気読めない奴だ。
STLのvectorとかstackとかは更新と問い合わせが別々じゃなかったっけ
953 :
ちんこ ◆GbXlaaQNk. :2009/05/15(金) 22:54:32
参照だけするtop()もあるじゃん
>>953 そこまでこだわりをもってるということは、プログラムで生業を立ててるの?
問い合わせ回数を記録しておく場合はどう実装するの?
スレ違いの話ばかりしやがって 糞コテのオナニーになんか付き合うなよ
オナニーつーか、薄っぺらいわな
現場の土方グラマはこういう基本を疎かにしがちだから ちんこに教えを請うのもいいかもしれないな。
ねぇねぇ、なんでここID非表示なの?
自演するためだよ
962 :
ちんこ ◆GbXlaaQNk. :2009/05/16(土) 11:50:11
土方どころか、
多くの日本人プログラマは、
リファクタリングすらも読んだことないんだろ。
まじで環境汚染だからコード書くな池沼どもw
>>956 デコレータなどを作ってください。
おれが言ってるのは、なるべくという話です。
分離出来るなら分離した方がいいくらい。
Stackの場合は、
参照してから取り出す(この時、取り出したものは返さない)
という風にすればいいですが、あまりよくないです。
Stackというものが概念的に確立されたものだからです。
このおれがPythonが美しいというのだから、
お前らは全員Python使ってりゃいいんだよ。
バカな自分の意見をもつことすら許されないんだよ^^とうまー
金玉に毛が生えてきた、まで読んだ
>>956 の要件だとHaskellだとWriter monad使うかな
MonadWriterというものが概念的に確立されたものだからいいよな
糞共よく聞け 人間なんてものは、「ボトルガム」を「ボルトガンダム」と読んじまうような奴ばっかりだ
>>962 ちょっと質問なんだけど、君はGlenford J. Myers の1970年代の
一連の著作(複合設計など)を読んだことあるかい?
967 :
ちんこ ◆GbXlaaQNk. :2009/05/16(土) 14:50:45
>>966 誰だそいつ。
そんな古い本読む必要ないよ。
The Art of Software Testingは古いけどいい本だよ
デバッグの良い本ってないかのう
古きを尻、新しきを汁 若いのさ
そういえばCode Completeのbibliographyにも彼の著作であるStructured, Designがあった
973 :
ちんこ ◆GbXlaaQNk. :2009/05/16(土) 16:05:45
>>970 おれは研究者志望ではあるが、
ソフトウェアの研究者になる方針ではない。
ソフトウェアの設計やその他もろもろについては、
欧米の誰かが研究したものをまとめたサーベイ論文のようなもの
(Code Completeはその類だろう)
を読んで理解して、自分なりの設計指針を固めていけばいいと思っている。
自分の設計指針が正しいのをみんなに知らしめるには、
どの分野もそうだろうが、理論的アプローチと実験的アプローチがある。
おれは、後者を選びたいし、ソフトウェアにおいては圧倒的に後者が正しいと思っている。
数学など、理論ガチガチの世界でも、ソフトウェアを使った証明が少しずつ導入されているようで、
そういう意味では、これからの世界では理論ベースから実験ベース、
ハードウェアからソフトウェアにシフトしていくのだろう。FPGAのような感じで。
結合度に関しては、
TDDと可読性の視点から指摘している。
理論的な結合度の理論などどうでもいい。
TDDを実践するには結合度の低いコードの方がやりやすい
(リファクタリングもしやすいし、コードも書きやすい)し、
可読性という点を考えた場合も、
結合度の高いコードは何がなんだか分からない。
爆発的によく分からなさが増大していく傾向がある。
結合度という概念を知ってそうしているならまだ許せるが、
無関心にそういうクズコードを書いて他人に読むことを強制する人間は到底許されない。
法律で裁かれるべきだとすら思っている。
このように、おれはソフトウェアに対してこだわりがあるが、
日本のソフトウェア業界にはおれレベルのこだわりを持った人間がいないということは納得している。
日本人は思考停止が好きだからな。なんでもおざなりにやっつけて、最後には愛想笑いだ。はははwはははw
は!?
よって、おれはプログラマにはなる気がないから、研究者になるしかない。
なんだかんだいって、忠告してあげるんだから 優しいなお前ら
>>973 で、結局読んでもいないし、知りもしないわけね。
976 :
ちんこ ◆GbXlaaQNk. :2009/05/16(土) 16:09:58
おれが優秀で有望な人間だからだろ。 おれなら、日本の腐ったソフトウェア業界を変えてくれるはず、 そう信じているんだよ。 おれは、言ってみりゃ、仙道のような男だということだろ。 でも、おれは日本でプログラマになる気はさらさらないんだ。 妥協妥協、正しい道があるのに、それに目を瞑って腐った上司の命令に従順しなければいけない。 おれは東大か京大の理系大学院を出た人間にしか命令されたくない。 あるいはハーバードとかMITとかそのレベルの人間にしか従いたくない。 よって、おれは企業に入る気をなくしている。 おれと同等に優秀な人間とだけ付き合いたいんだ。
>>976 ならさっさとここから出て行って、良い仲間みつけとけ
その書き方だと やりやすいコードを結合度の低いコードって表現してるだけのように取れる わかりにくいコード→結合度の高いコードとか 参照グラフとクラス図の相関として数値で出すような手法(これだと凝集度だけど) とかもありそうなんだけどなー
まぁ、やりたいことはわかるがー もういいよ。飽きたー
定量化できるなら誰も苦労しないでしょ
コンポーネント間の凝集度の定量化はLCOM3とか方法はいくつかあるみたい ただ人間に役立つ情報にしようとすると大変っぽい それを踏まえると、これよりさらに「人間寄り」な結合度という概念は、 同じように参照グラフを使ってなんとかしようとしてもさらに苦労するんだろうな
問題を定量化して計算機の力で解決するのがITの持つ価値創造能力なのに それを最初から諦めるとは何事だ むしろ言語の美しさに形式的定義を与えてこの長年の論争に終止符を打つぐらいの気概を持つべき
定量化されるのは問題じゃなくて解のほうだな。 解が先にあって、数字を後付けする。
あれ、STLのスタックにあるpop()ってvoidじゃなかったっけ
自己愛性人格障害者コテハンの長文が満載だな。
>>1 日本語プログラミング言語で、日本語としてまだ美しいほうなのは、
なでしこ
このスレで、仕事でプログラミングやってる人どのくらいいるんだ?
988 :
ちんこ ◆GbXlaaQNk. :2009/05/16(土) 22:59:37
ちなみにニートでつ。
仕事で書いたソースを見せてくれる人なんて見たことないな。
仕事で書くソースって、人に見せたくない、絶対に売り物にしたくない、やっつけ感バリバリの物だろ?
991 :
デフォルトの名無しさん :2009/05/16(土) 23:40:25
開発で4種類、 執筆で2種類、 趣味で10種類くらいのプログラミング言語を使ってますw
仕事で書いたコードは機密です 著作権も自分ひとりのものではない
仕事で書くが、みなすとあーここがーきたねーとか。 手直しできないのが切ない。修行不足だな。
後半このスレをここまで引っ張ってくれた「ちんこ」くんに乾杯。
次スレもID非表示か。。。オワタ
>>565-567 このスレでの収穫は、表計算はかなり美しいプログラミング言語だということがわかったこと。
あと、某氏に反論するために色々なことを調べて勉強になったw
表計算はチューリング完全ではないと思う なのでプログラミング言語とはいいにくい
999 :
デフォルトの名無しさん :2009/05/17(日) 16:16:22
= 終了 =
1000 :
デフォルトの名無しさん :2009/05/17(日) 16:30:35
= 終了 =
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。