最も美しいプログラミング言語は? Part6

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/03/23(火) 16:44:08
最も美しいプログラミング言語を語れ

前スレ
http://pc12.2ch.net/test/read.cgi/tech/1262707694/
2011/07/16(土) 23:15:52.99
prologはプログラミングしてるってより、データベース作ってる気分になる。。。
haskellベースに論理型言語を足したcurry

もしくは、prologベースに関数型言語を足したmars辺りは美しいんかね?
2011/07/24(日) 03:40:58.69
関数スコープなのって、実装が簡単だからでしょ。
関数スコープで十分だとかって言うのは、酸っぱいブドウ。
ブロックスコープに越したことはない。
2011/07/24(日) 03:42:37.65
Lisp を勉強すれば分かる
2011/10/12(水) 01:49:49.75
手続き型はobjective-cが綺麗
cはオブジェクト指向が使えん。汎用的なコレクションライブラリがない
c++は山ほどのドキュメントを読まないと怖くてSTLすら使えない。cとの中途半端な互換性
javaは命名規則が長い。オペレータをオーバーロードできない。プロパティがない。GUIが発展しない
c#はネストが深い。ヘッダが読めん。ポインタ使い辛い
2011/10/15(土) 07:03:48.59
Objective-Cは、必要な機能がない。
2011/11/06(日) 22:05:48.37
>>315
GObjectつかえばCでも現代的なOOはできるぞ。
2011/11/06(日) 22:08:51.60
>>299
ブロックスコープ使うならwithが綺麗。
with({ a: 1, b: 0})
{
  b = a++; //withで宣言したラベルを使う
}
//ここでaとb消滅
319318
垢版 |
2011/11/06(日) 22:12:15.02
早とちりした。ごめん。なんでもない。
320uy
垢版 |
2012/01/26(木) 12:02:06.30
>>315
C++べつに使えるよ
自分が覚えにくい&挙動が不審な部分は絶対に触らないようにしていけばいいだけ
複数人で組む場合は知らない。そもそもそれはC++に想定された使い方ではないと思う

あとobjective-cはゴミ
あんなゴミは見たことない


そういや神オブジェクトって奴いたなぁと思ってみにきたが
死んだのか?

大言はいてたわりにはあっさりと消えたな

見た目が綺麗なのはPythonかLispだろうな


ただ俺はRubyのソースコードのほうが自分の中で思考がまとめやすいってだけかな
キチガイに刃物ってこういうことだと思う

rubyはuyに持たせてはいけない刃物だったんじゃないかと最近思う
俺がかくrubyコードとネットにあがるrubyコードって質がまず違うよね、何故俺にはここまでrubyが使えるのだろう
Matzには本当に感謝をしている、rubyがなければ自分が何年間もかけて言語を作らなければならなくなった
俺が何年間もかけて言語を作っていたはずの、その時間で俺は別のことをやれる
とてもこれは感謝以外に何ものでもないよ
2012/01/26(木) 15:34:56.56
別なことって2chの書き込みかよ
2012/01/26(木) 20:24:41.85
ttp://twitter.com/akiradeveloper
奴ならここに
323uy
垢版 |
2012/01/26(木) 20:43:06.69
>>322
礼をいうべきか否か
リンクたどっていったら冗談きついくらいのヒゲ画像と本名が出てきて
さらにググったら京都大学スレでも晒されてるし涙でてきた

とりあえず、なんか技術者としては平凡以下に収まってしまったようだな
Rubyプログラミング関数型プログラミングって3年前も同じことを言ってるの見たわ
この3年間何やってた。。

少しは期待していたのに化ける事がなかった残念
やっぱりJAVAなんて使っているから・・・
324uy
垢版 |
2012/01/26(木) 20:50:30.90
>>321
誰へのレスかと思ったら俺へのレスか
俺が1日中2chしかやっていないと思っているのだろうか?
書き込み数はコテハンだから多く見えるだけ
325uy
垢版 |
2012/01/26(木) 21:02:57.09
神オブジェクトはでもRubyに興味持ち始めたんだったら、
まだ救う価値はある
どうせあの手のタイプはPython側に行くのはなんとなくわかるけどね
小手先の技術が必要になるようなCやperl等での
手続き型プログラミングのロジックや小さく圧縮されたショートコーディングのようなものは絶対かけないから
rubyはきっと向いていないだろう
自分でrubyはかけても他人のrubyコードが読めないとか前言ってたのは、おそらくそれのせい。
俺にとってはどんなrubyコードでも読みやすいけど
奴はPythonに収まるだろうな
2012/01/26(木) 23:32:25.15
【うゆ】uyスレ6【クソコテホイホイ】
http://kohada.2ch.net/test/read.cgi/prog/1316933376/
2012/01/27(金) 00:08:58.25
http://yutori.2ch.net/test/read.cgi/news4viptasu/1200955041/
328uy
垢版 |
2012/01/27(金) 08:27:34.60
ああ、大学楽しそうでいいな
329デフォルトの名無しさん
垢版 |
2012/08/06(月) 20:52:03.54
学校でSchemeを勉強して以来Schemeが好きになった。
括弧の多さなんて気にならない。
見た目はそんなに美しいってわけでもないけど、
非常に書きよい、心地よい。
330uy
垢版 |
2012/08/08(水) 10:49:00.43
汚いのは英数字と記号だからね

文字のすべてが
・ ― |  ■ あたりで構成されていれば綺麗だよ
2012/08/10(金) 10:51:51.00
ここまでpiet無し
332デフォルトの名無しさん
垢版 |
2012/09/15(土) 17:05:12.35
ランク付けは要らないが、各言語の「考え方」と「記法」を区別してスマートさの得失整理するのは有意義。
333uy
垢版 |
2012/09/15(土) 20:53:59.98
パールパイソンルビーには特色があって
開発者のやりたかったことも伝わってくるけど
PHPやJSにはそれがないんだ
主張のようなものを何も感じない
ただのなんのへんてつもない言語A、言語Bって感じ
あとC#にも主張がなにもないな
C++にはかなりある
javaには少しある


俺様にとってプログラミングは道具ではなく一般的じゃない変な方法を探し出しその上で効率よく目的を達成するゲームだから
言語に癖がないとさ
プレイする価値のないクソゲなんだよ
2012/09/15(土) 21:00:26.81
やはりPrologが美しい
335uy
垢版 |
2012/09/16(日) 00:28:01.37
誰も聞いてない
336デフォルトの名無しさん
垢版 |
2012/09/16(日) 05:32:18.88
Prologは極めて美しくもなるし、醜悪に書くこともできる。
自在性のプログラム言語。
337デフォルトの名無しさん
垢版 |
2012/09/16(日) 14:54:40.27
>>333 まぁ、分類としては概ね同意するよ。
perl/php/JS あたりは、そもそもが綺麗なプログラミング言語を作ろう、というのが主目的で作られたものじゃないから。JS はそれでもよくできているが。
2012/09/16(日) 15:03:41.95
c#は、javaとc++の失敗から学んで生まれた実践から出来た言語だよ。
jsとrubyも同じようなもの
perlとPHPがユーザーのニーズから後付で膨れて失敗したか、失敗しそうな言語
c++は、どっちかっていうとアカデミックな立ち位置から生まれ、
速度といった十字架を背負った唯一無二のソフトウェアを書くための言語
2012/09/16(日) 18:35:52.49
>>333
このスレで美しさの欠片もない言語をいくら並べてみても仕方ないだろう
2012/09/16(日) 21:11:00.14
美しいというのは基準が酷く漠然としているが
長いプログラマー経験から思う、一般的に美しい
プログラムと言われやすい書き方の特徴を挙げてみよう。
1.変数名、関数名が極端に長くならず、かつほぼ一定の長さで揃えられている
 おおむね8-10文字である事が多い。
2.変数名や関数名に大文字が使われることはなく、連続した単語の
 結合にはアンダーバーが使われる。
3.大部分の関数の定義は50行以下で、main関数のような中心的な
 処理のみ100行を少し超えるくらいである
4.間延びした印象になる空白行は避けられ、if分の開始ブレースは
ifキーワードと同じ行に書かれる
例:
if(user_id < 10){
以下の書き方は避けられる
if(user_id < 10)
{
5.カラム数が80桁を超えることは無い
6.インデントが揃っているのは当然であるか、字下げが3段以上深くなるようなことは無い。
 それを誇示するようにエディターのTABを8文字に設定する古参プログラマーも多い
7. 関数のヘッダー部分のコメントは一貫した書式で清書され
 SCCSで装飾されていることで格調が高くなる。

はっきり言えば、上記は古い環境の制限から仕方なくおこなわれてきた物が多く
現代の環境では全く推奨されるべき物では無い。しかし、経験の積んだエンジニアは
古い慣習を引きずっていることが多いし、それをお手本として学ぶ事になる場合が多い



341デフォルトの名無しさん
垢版 |
2012/09/16(日) 22:08:19.31
まぁ、80桁超えないように書くのは今のモニタだとむしろ読みにくいかもしれんね。
2012/09/19(水) 10:36:46.74
オブジェクト指向言語は一体にゴツくて美しいとはいえない。
しかし、主流ではあるし、このクラスは独自に美しさを競うべきではないか。
343uy
垢版 |
2012/09/20(木) 04:57:08.53
lispは勝ち抜けとして考えると次点はpython
閉じ括弧はソースリーディング時にはいらないんだよ
でもコーディング時には必要
2012/09/20(木) 08:30:18.57
Haskellは数式だし、Prologは論理式。
姿は美しいが、実は、先にモデルがあって、記号を入れ替えただけ。
独創性は感じられない。
2012/09/20(木) 09:03:24.45
Scheme Prolog SmallTalk それに手続き型から Python でいいんじゃないか
2012/09/20(木) 11:40:52.90
美しいという定義が何なのかによる。
可読性なのか、コード量が少なさなのか、それは人それぞれだ。

C#は読みやすくて好きだけど、
WPFで使うラムダ演算子とか見ると、読みにくくてきたねーと思う。

PHPは標準関数の名前がグダグタで汚いと思うけど
シンプルに書けるところは綺麗だと思う。

C言語は好きなんだけど、標準じゃ文字列とか解放とか面倒で、色々ライブラリ入れるんだけど、
入れたライブラリを作った人のセンスがマチマチで、何というか関数名の統一の無さが気に入らない。
2012/09/20(木) 12:22:31.45
学術的な部分で強い言語と実用的な言語も分けた方がいいね
2012/09/20(木) 12:28:14.46
>>347
Prologは今日では学術的の方に分類されるだろうがカットは実用的な要請によって
使われて見苦しくなっている
2012/09/20(木) 12:35:12.68
>>348
Prologで美しくない部分って ! だけだろ。
2012/09/20(木) 12:37:09.01
>>349
書き方による
2012/09/21(金) 23:05:15.92
assert,retractでグローバル変数定義なんて糞だと思った
1年ぐらい演習と講義でオタクな準教授から教わったけれども、
現実世界のどこで使われてるのかがわからないし、使いこなすには1年の講義なんて時間は短すぎた。
はっきりいっておく。古典AIなら動的言語で実装した方がマシである。
352uy
垢版 |
2012/09/22(土) 00:24:10.61
そんなの調べりゃ5分でわかること
AIに関わらずそれ何も出来ないよ
2012/09/22(土) 03:33:04.97
assert,retractはグローバル変数ではなく、述語定義(デーベース定義)だし、
Prologは動的言語だ。それにPrologは4時間で使えるようになるよ。
2012/09/22(土) 03:48:02.70
>>353
(データベース定義)ねw
理解するには4時間で十分だが、典型的なプログラムのパターンを知らないと、
書けないね。
2012/09/22(土) 05:57:22.47
APL
356デフォルトの名無しさん
垢版 |
2012/09/22(土) 07:05:17.23
>>350
一度全部リストの読み上げて、というようなことを許せる人にとっては、
十分に美しいよ。プログラムパターンもプログラム言語の中で最少だろうし。
2012/09/22(土) 07:17:11.75
>>356
リストに読み上げてとは、findallで節から引数のリストに変更することかな?
それともファイルからの入力を全て一度リストに取り込むこと?
2012/09/22(土) 07:18:41.32
>>357
両方
2012/09/22(土) 18:00:12.88
>>353
4時間で扱えるって、せいぜいサザエさん課題ぐらいの問題じゃないか
ビッグマウスもほどほどにしろよ。それともΣプロジェクトに加わった人?
大手って、これで自然言語処理だったり仕様記述してたりするのかしら
2012/09/22(土) 20:17:01.96
>>359
そんなこといってもPrologの講習会はほとんどが2+2の4時間だよ
教えることとしてはそれで十分 あとは受講者が工夫する
2012/09/22(土) 20:27:54.52
Prologは
オブジェクト、クラスはもちろん 型、ブロック、スコープ、マクロ、クロージャ、遅延評価、
グローバル変数、ローカル変数、議論の対象となる概念のほとんどと無縁
極論すれば、IF文もループもない 教えることなんてほとんどない
append/3が理解できたらおわり
362uy
垢版 |
2012/09/23(日) 05:49:44.79
関数型厨がλあればなんでもできるとかほざいてるのと一緒で
本当に意味がないんだよそれw

ようはどんな方法でもいいから0と1が表現できたらすべて表現可能

つまりですね

「変数宣言する。変数宣言しない」

01表現できてるよな
これですべてのプログラム組めるよ

こんなことはとっくにわかってんだから
今更珍しがる事とかなんにもないんだよwwwwwwwwwwwwwww
2012/09/23(日) 06:38:10.64
>>362
少なくとも先輩達が難しいこと言って勉強しなくてはならないということは起こらない
2012/09/24(月) 00:38:37.62
>>360
つかってないのに妄想で答えるなよ
2012/09/24(月) 05:47:28.86
Prologは単一化とバックトラックを再帰の枠の中で理解することが必要。
囲碁のルールよりは少し複雑というレベルの一人ゲームのようなもの。
初心者向きの課題を考えて少しずつ「強く」なっていく以外にない。

他言語の重要な構成要素のものでPrologにはないというものがあり、
例えば配列だが、これを用いているアルゴリズムはリストに置き換える
必要がある。そういう時のための情報は外部サイトにほとんどないから
これも自分で考える。
一般に最初から難しい課題が与えられる傾向にあり、これがPrologの
難しさの原因。初心者に初段の課題をやらせても実力向上にはならない。
2012/09/24(月) 07:53:56.12
>>365
囲碁にはどちらが勝つかつまりどうなったら勝負がつくかの難問がありPrologよりずっと難しい。
2012/09/24(月) 07:58:32.92
確かに勝ち負けは帰納的?
2012/09/24(月) 08:14:18.51
囲碁ソフトではルール化されているだろう。問題は人間がどれだけ終局のルールを教えられて
理解できるか。超再帰的直感で理解する人もいるだろうが、ほとんどの人は何回もやってみて
回りにいる人の助言を受けつつ理解していく。
2012/09/24(月) 09:38:29.30
Prologは確かに美しくも、醜悪にも書けますが、
美しく書くことも、醜悪に書くことも、どちらも楽しいですよ。そんなつもりで
書いてみることを勧めます。コードが長いか短いかとか、実行速度が速いか
遅いかなどどうでもよい言語です。書いたものから何か得られれば十分。
370デフォルトの名無しさん
垢版 |
2012/09/25(火) 03:54:08.39
きめえ
2012/09/25(火) 12:31:29.62
MicrosoftとXamarinが業務提携!C#でiPhone/iPad/Androidのアプリ開発ができる!Mono大勝利!
http://engawa.2ch.net/test/read.cgi/poverty/1348536694/l50
2012/09/25(火) 12:40:52.31
オブジェクト指向のクラスではC#っていうのは美しい方に入るのかい?
2012/09/25(火) 14:12:25.07
C#, Javaは、実用的、安全(プログラマを守る)
374uy
垢版 |
2012/09/25(火) 17:37:53.16
守らない
30で使い捨てwwwwwwwwwwwwwww
2012/09/25(火) 23:05:49.63
Javaなんてドカタでも使えるように
わざわざ低能向けに設計されてるんだぜ
設計者の心が美しいよな
376デフォルトの名無しさん
垢版 |
2012/09/26(水) 01:42:26.54
波括弧のブロックに慣れたら、Pythonなんかのインデントブロックには違和感を感じる。
2012/09/26(水) 02:47:28.70
PGを使い捨てると競合増えるから、今後は飼い殺しにする悪寒
2012/09/26(水) 12:09:08.31
オブジェクト指向クラスの言語で美しさの観点から上位3言語をあげてください
2012/09/26(水) 16:20:17.69
クラスベースオブジェクト指向?
2012/09/26(水) 16:27:27.30
>>379
いや、オブジェクト指向を取り込んだプログラム言語全体。クラスといっているのは
オブジェクト指向言語はどうしても構造体表現がゴツくてこのコンテストの対象言語に
なり難いから、これを最初から別クラスとして評価しようという意味。
2012/09/26(水) 17:33:14.55
いみふ(´・ω・`)
382uy
垢版 |
2012/09/26(水) 18:42:52.56
マジで日本語がおかしいよそいつ。。。。

ほんとに終わってる業種だな
2012/09/26(水) 19:06:34.24
>>381
オブジェクト指向言語と非オブジェクト指向言語を分けて評価しようということだよ。
2012/09/26(水) 19:11:31.39
>>383
ズバリ言えばいいじゃないか。オブジェクト指向は醜いと。
見た目がだけどね。
385uy
垢版 |
2012/09/26(水) 19:42:31.79
うるさいしね
2012/09/26(水) 20:33:55.44
>>383
その提案はこのスレでは何度か出てきたと思うけど一度も実現していない
2012/09/27(木) 01:37:25.44
>構造体表現がゴツくてこのコンテストの対象言語になり難いから
ゴツいの意味がわからんがね
388uy
垢版 |
2012/09/29(土) 00:17:34.10
冗長って意味だよ
OO厨はそれが最善だと思ってるのかね
2012/09/29(土) 19:48:43.28
http://toro.2ch.net/test/read.cgi/tech/1197720520/
ちんこの恥ずかしい過去スレ落ちた
2012/09/30(日) 07:54:55.15
SmalltalkやEiffelなんかのオブジェクト指向言語と
オブジェクト指向をめざした「オブジェクト指向指向言語」を
分けるほうが先じゃないか。
2012/09/30(日) 11:02:42.26
もっと一般化して、Lisp、Smalltalk、APL等々のようにスタイルの結晶化を実践した言語と、
COBOL、PL/1、Adaみたいに普通に機能の充実を目指した言語とをきちんと分けたほうが
よい気がする。前者は徹底の度合いで、後者も機能の取捨選択でその美しさを論じられる。

たとえばSmalltalkはメッセージングのOOを実践した言語だけど、クラス指向(抽象データ型)の
OOに汚染されているし、徹底度合いとしてなら Io http://www.iolanguage.com/ のほうが
美しい、とかいうふうに。
2012/10/03(水) 06:43:14.93
>>391
>スタイルの結晶化を実践した言語
Prologのように天から舞い降りた言語もある
393デフォルトの名無しさん
垢版 |
2012/10/03(水) 09:19:26.64
>>392
これっきり これっきり もうこれっきりですか

という仕様
2012/10/03(水) 22:09:43.59
>>392
文法の美しさに反して汚いことしないと、いろいろと実装できないことがわかる
395デフォルトの名無しさん
垢版 |
2012/10/03(水) 23:39:23.28
俺様がC++で書いたコードが最も美しい。
2012/10/04(木) 09:15:30.32
>>394
よく知らないんだけど ! は最初の実装にはなかったのかな
397デフォルトの名無しさん
垢版 |
2012/10/04(木) 09:33:41.35
>>396
伝説によると、カルメラウアはカナダのケベック州の研究所でqという
自然言語のトップダウン解析システムを自作し研究していた。
帰国と共にこれを持ち帰り使用しているうちに、引数評価の部分に
ユニフィケーションを加えれば、論理式がそのままプログラムとして
働く系を作ることができるのではないかということになり、案外簡単に
Prologが生まれた。
この話の雰囲気からは最初の実装ではカットにまで手を伸ばさなかった
のではないか。
2012/10/28(日) 11:47:11.74
オブジェクト指向言語の変数(プロパティ)のget setの羅列が汚い
C#なんかもう自動生成だし本末転倒
本来はこんなのいらないように書くべきなんだよね
2012/10/28(日) 14:15:45.46
publicなんか自動でプロパティになるべき
2012/10/31(水) 17:13:25.24
C#の自動プロパティはViewとコードの分離のためだし
全部をコードビハインドで書いてる人には価値が分からないだろうな
2013/01/20(日) 18:47:21.19
これは圧倒的に

Pascal
2013/02/02(土) 20:29:00.01
やはりCかな

アセンブラに一番近いくせに、アセンブラ臭を完全に消し去っている
表現に無駄がないのに、何でもできてしまう
コンピュータが現在の仕組みである以上考えられる、最も自然な表現だ

ただし残念ながら、標準ライブラリは醜い部類にすら入る
ここを補完する方法が何かないかな
2013/02/03(日) 06:58:25.12
>>402
C++。
Cのスーパーセットだから大体何でもできる。
2013/02/03(日) 09:27:36.88
C++の標準ライブラリは醜いだろ
2013/02/03(日) 10:55:25.77
Lispかな
2013/02/12(火) 11:21:13.32
Prolog
何にでも化けられる点は他の言語とは違う。軽くはないけど、自在。
2013/02/12(火) 19:07:52.48
そうか?
当時の PDP シリーズのインストラクションセットを,
んま仕様にして見ましたって, 雰囲気ありありなんだが… >初版 K&R
2013/02/17(日) 02:50:24.25
Cはポインタを引数に渡して出力値を受け取れる、というか
複数の出力を受け取る手段がそれしかないというのが美しくない
2013/02/17(日) 10:41:12.22
>>408
アセンブラの手法というか
かりに複数出力を受け取れたとしても、それは単なる糖衣構文というか
2013/02/17(日) 10:42:57.70
構造体使えよ
2013/02/17(日) 10:55:25.29
ごほ、ごほ、こ、構造体、じ、自体を、か、返すことはできぬ、ぽ、ポインタを返すことで、ごほ、ごほ、結果を受け取ることは、>>408 と、ごほ、お、同じ、ごほごほ、ごほ
■ このスレッドは過去ログ倉庫に格納されています