文法が気持ち悪い言語

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
perl
2デフォルトの名無しさん:2012/09/29(土) 15:55:58.12
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
3デフォルトの名無しさん:2012/09/29(土) 16:07:23.55
文法が気持ち悪いの意味がよく分からんな。

あるperlプログラムが見た目気持ち悪い、とかなら分かるが、
文法に対して感じる気持ち悪さというのが、ちょっと想像できない。
4デフォルトの名無しさん:2012/09/29(土) 16:29:10.10
HSPだな
5デフォルトの名無しさん:2012/09/29(土) 16:29:19.50
Dim a As Array(3)
a(1) = 1
a(2) = 2
a(3) = 3

これは文法による気持ち悪さだろうか
それとも文法の貧弱さによる記述の限界からくる気持ち悪さだろうか
6デフォルトの名無しさん:2012/09/29(土) 16:34:18.87
文法が気持ち悪いというのは、
例えばその文法がBNFで表現されてても感じるんだよな。
7デフォルトの名無しさん:2012/09/29(土) 16:38:52.02
ドイちゅ語はキモかった
8デフォルトの名無しさん:2012/09/29(土) 17:04:57.58
Pascalは今見ると鬱陶しい
9デフォルトの名無しさん:2012/09/29(土) 17:36:27.52
java
awt/swingで無名クラスをEventListenerに追加するところなんて特に気持ち悪い
10デフォルトの名無しさん:2012/09/29(土) 17:49:11.23
文の途中で改行するときにアンダースコアを書かないといけない言語。
11デフォルトの名無しさん:2012/09/29(土) 18:24:24.30
>>9
そうか?
おまいが馬鹿なだけじゃね?
12デフォルトの名無しさん:2012/09/29(土) 19:03:52.42
パッと見不格好だよね >>9
(で、Groovy にしてスッキリした。)

Ruby 良さそうなんだけど
@@variable <- これ気持ち悪い 何とかして。
13デフォルトの名無しさん:2012/09/29(土) 20:08:17.72
Python

__init__


Rubv

         end
      end
   end
end

14デフォルトの名無しさん:2012/09/29(土) 20:37:30.86
アンダーバーは外から参照しない特殊な名前に付けるものだから
15デフォルトの名無しさん:2012/09/29(土) 21:46:14.71
>>11
おまえjava書いたことないだろ
16デフォルトの名無しさん:2012/09/29(土) 23:06:00.88
COBOLかな、セクションごと、命令ごとに文法作りましたって感じで
統一性がまるで感じられない気持ち悪さ
17デフォルトの名無しさん:2012/09/30(日) 00:47:12.02
PHP
偽がおぼえられません。ごめん
18デフォルトの名無しさん:2012/09/30(日) 03:24:47.99
>>17
どの言語なら偽の定義を覚えられますか?
19デフォルトの名無しさん:2012/09/30(日) 07:59:23.03
C
0は、偽。
それ以外は真
20デフォルトの名無しさん:2012/09/30(日) 10:47:40.46
Pythonの真偽値は若干分かりにくいけど、突き詰めると

None
ゼロ
__nonzero__() か __len__() メソッドがゼロを返す

が偽ってだけなんだよな
Falseは数値で、数値として扱うと値はゼロだし
シーケンスは大概 len がゼロ返すし

PHPは知らんけど、そういうのないの?
21デフォルトの名無しさん:2012/09/30(日) 10:57:30.03
PHP は === がきもい
22デフォルトの名無しさん:2012/09/30(日) 11:26:59.56
だいたい他の言語にもあんだろw
23デフォルトの名無しさん:2012/09/30(日) 11:46:19.50
If isOpenWindw = False Then
キモい
24デフォルトの名無しさん:2012/09/30(日) 11:52:20.57
On Error Resume Next
うんこ
25デフォルトの名無しさん:2012/09/30(日) 17:43:05.48
==や===というのは、比較を数値で行うか、
文字列で行うかということの違い。

型なし言語は、型がないので
変数だけでは数値か文字かという判断ができない。

だから演算子で書かないといけなくなる。
==とかeqとか、「何型として比較する」という
型あり言語では不要なことをしないといけない。
26デフォルトの名無しさん:2012/09/30(日) 17:55:47.02
>>25
> ==や===というのは、比較を数値で行うか、
> 文字列で行うかということの違い。

なにこれ?どの言語の話?
27デフォルトの名無しさん:2012/09/30(日) 19:21:37.77
>>25
VBのバリアントでもRubyでもPythonでも普通の等価演算子で比較出来るが。
28デフォルトの名無しさん:2012/09/30(日) 19:30:11.45
逆に静的型のJavaは==では比較できなくてequalsを使う
しかもequalsの引数型がObjectなので、型の同値性を調べるためには
instanceofで型を調べる必要がある

なにこの糞言語
29デフォルトの名無しさん:2012/09/30(日) 21:28:14.03
>>27
できるんじゃなくて、できないんだろ?

それらの言語では、型まで一致させる比較ができないんだろ?
30デフォルトの名無しさん:2012/09/30(日) 21:40:10.12
31デフォルトの名無しさん:2012/09/30(日) 21:42:43.48
>>30
1 と "1” を同じとみなす比較方法は?
32デフォルトの名無しさん:2012/09/30(日) 21:47:20.52
>>31
え?そりゃto_iとかで変換すればいいだろ?
いわゆる強い型付けの言語なら静的でも動的でも変わらん
33デフォルトの名無しさん:2012/09/30(日) 22:43:35.73
へ? 普通スクリプト言語と言ったら
==で数値と文字を区別しないで比較するもんだよね。
それがスクリプト言語の手軽なところでしょ。
34デフォルトの名無しさん:2012/09/30(日) 22:59:14.22
いや、そんなお前の勝手な思い込みは知らん
とにかく>>25>>29は間違い
35デフォルトの名無しさん:2012/10/01(月) 00:09:42.53
>>33
それはシェルスクリプトやバッチファイル、AWK、Perl、PHP、JavaScript、昔のVBあたりの考え方
スクリプト言語は何らかの手軽さを持つのが普通だが、求める手軽さはそれぞれ違う
36デフォルトの名無しさん:2012/10/01(月) 06:50:02.67
知らずに叩いてる奴は滑稽だが、その害悪さに腹が立つ
37デフォルトの名無しさん:2012/10/01(月) 07:08:47.29
基本、質問者にレスをつける。ウソつきな回答者を無視する。
そうしないと、スレが荒れる。
38デフォルトの名無しさん:2012/10/01(月) 07:25:11.83
ここ質問スレじゃなさそうだが何の話をしてるんだ
39デフォルトの名無しさん:2012/10/01(月) 07:34:44.83
>>18
% Prologで Pが偽 は

偽(P) :- P,!,fail.   % Pが真の時、偽
偽(P).       % Pが偽の時、真 (Pが真の時以外)
40デフォルトの名無しさん:2012/10/01(月) 08:40:26.40
きもちわるい回答者と
きもちわるい叩きが
きもちわるく罵り合うのを
鑑賞するすれせよ
41デフォルトの名無しさん:2012/10/01(月) 08:54:01.65
鑑賞するスレセヨ〜
42デフォルトの名無しさん:2012/10/01(月) 10:53:34.81
>>39
偽の定義というより否定の定義じゃないか?
43デフォルトの名無しさん:2012/10/01(月) 12:56:00.03
>>42
そうだね
44デフォルトの名無しさん:2012/10/01(月) 19:27:29.31
>>41
期待通りのレスありがとう
45デフォルトの名無しさん:2012/10/01(月) 19:58:40.61
ここまでをまとめると
Javaが最も文法が気持ち悪い言語ってことだね
46デフォルトの名無しさん:2012/10/01(月) 20:22:59.57
ちがうよ
47デフォルトの名無しさん:2012/10/01(月) 21:49:19.47
Random rand = new Random() みたいなのが気持ち悪い
なんで二回言うの?って感じ
48デフォルトの名無しさん:2012/10/01(月) 23:17:43.56
>>47
それはJavaのものではなくて元はC++からだろ

Random* rand = new Random();


いやC++以前の静的型づけ言語由来かも
49デフォルトの名無しさん:2012/10/01(月) 23:48:28.21
>>48
別にJavaって言ってないじゃんC++もC#も馬鹿すぎ
50デフォルトの名無しさん:2012/10/01(月) 23:57:20.96
>>47
> なんで二回言うの?って感じ

Random rand = new MyAlgorithmRandom()

こういうコードが書けるようにだよ。
51デフォルトの名無しさん:2012/10/02(火) 00:27:16.93
別に型宣言しなくても書けるけど
52デフォルトの名無しさん:2012/10/02(火) 00:58:27.79
型推論ってやつね。
53デフォルトの名無しさん:2012/10/02(火) 01:17:37.61
>>50
そういうときだけ2回言う文法だったら良かったのに
なんかレアケースのために、通常ケースが冗長になってる感じなんだよね
54デフォルトの名無しさん:2012/10/02(火) 01:56:25.77
Random rand;

while(true) {
  rand = new Random();
}
55デフォルトの名無しさん:2012/10/02(火) 02:30:50.96
>なんかレアケースのために、通常ケースが冗長になってる感じなんだよね

通常ケースは
Random rand;
で良いよ
56デフォルトの名無しさん:2012/10/02(火) 07:27:41.89
Javaでぬるぽが無くならない訳だ
57デフォルトの名無しさん:2012/10/02(火) 09:24:15.38
  ∧_∧
  ( ・∀・)    | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__∧∩
  _/し' // V`Д´)/
 (_フ彡        / ← >>56
58デフォルトの名無しさん:2012/10/03(水) 22:11:20.29
>>53
つまり、js最強なわけだね!
59デフォルトの名無しさん:2012/10/04(木) 10:33:48.89
馬鹿には無理
60デフォルトの名無しさん:2012/10/04(木) 20:48:27.22
>>58
javascriptって冗長さを省いたスリム仕様なん?
61デフォルトの名無しさん:2012/10/04(木) 22:40:13.63
うん
62デフォルトの名無しさん:2012/10/04(木) 22:54:14.64
javascriptは弱い型付けのクソ言語
63デフォルトの名無しさん:2012/10/05(金) 12:26:26.23
>>55
それでインスタンスが作られるようにしたいってこと?
64デフォルトの名無しさん:2012/10/06(土) 02:42:01.99
言語じゃなくてライブラリのせいだけど、prototype.jsやjQueryの$関数が大嫌い。
見た目も気持ち悪いし、検索しづらいし。
65デフォルトの名無しさん:2012/10/06(土) 13:38:49.11
>>63
C++は実際それで引数なしのコンストラクタ呼ばれてインスタンス作られる
(引数与える場合はClassName variable(引数);)

…んだが、結局両方とも書く形もあるしそっちがメインになる
上に書いた形はスコープ抜けたら破棄されちゃうんよね
ローカル変数やフィールドとして使うぐらいかと
66デフォルトの名無しさん:2012/10/06(土) 17:43:33.67
C++の場合はdelete忘れ系の勘違いを後で誘発しそうだから、クラスは必ずポインタ変数って決めといたほうがいいんじゃね?
67デフォルトの名無しさん:2012/10/06(土) 20:03:05.33
>>66
バカは死んでください。
68デフォルトの名無しさん:2012/10/06(土) 20:13:37.60
C++の<<とか>>が納得いかない
69デフォルトの名無しさん:2012/10/06(土) 20:45:53.43
>>64
なんで$関数を検索するんだ?
公式マニュアルを見ればすむ話だろう。
70デフォルトの名無しさん:2012/10/12(金) 14:33:18.15
終了。
71デフォルトの名無しさん:2012/10/12(金) 14:41:41.67
再開
72デフォルトの名無しさん:2012/10/13(土) 12:43:12.56
rubyにも << があるよ
(g = "") << s[0] << s[10] << s[12]
print g
73デフォルトの名無しさん:2012/11/15(木) 13:25:17.19
hsp
74デフォルトの名無しさん:2012/11/16(金) 01:55:16.10
hspの継ぎ接ぎ感
75デフォルトの名無しさん:2012/11/16(金) 02:48:25.14
継ぎ接ぎ(つぎはぎ)
76デフォルトの名無しさん:2012/11/16(金) 20:25:07.87
>>53
遅レスだが、C++11では、
auto rand = new Random();
でいける。
気持ち悪さではRに一票。
77デフォルトの名無しさん:2012/11/17(土) 21:02:16.22
rubyはキモイ
ruby信者もキモイ

一番バランスとれてるのはc++。c++11でさらによくなった点もあるけど、カオス成分も増したよね・・・。
78デフォルトの名無しさん:2012/11/17(土) 21:24:10.55
C++は昔からカオスだろ
79デフォルトの名無しさん:2012/11/19(月) 12:18:28.78
c++がバランス?
80デフォルトの名無しさん:2012/11/19(月) 23:56:29.34
わからないなら黙っててください。
81デフォルトの名無しさん:2012/11/20(火) 08:18:18.71
分からない?
82デフォルトの名無しさん:2012/12/07(金) 23:08:04.62
文法の不条理さに怒りを感じたことはあっても、気持ち悪さまでは感じたことは無いなぁ…。

流行った言語にしか手を出してなくて。
流行った言語にはそれなりの理由があって、本とかネットで調べれば理由が理解できるから。

意味も理由も分からない電波言語にはまだ遭遇していない。
83デフォルトの名無しさん:2012/12/10(月) 00:10:16.32
>>47
List<String> list = new ArrayList<String>();
みたいに基底クラスとして扱いた場合がある
84,, ・´ ∀ `・ ,,)っ-○○○:2012/12/10(月) 04:32:28.15
ダントツでObjC
85デフォルトの名無しさん:2012/12/10(月) 11:38:37.87
間違いなくC言語だよな
86デフォルトの名無しさん:2012/12/11(火) 11:50:55.99
今一番使っている言語だけどObjCだな。
でも、慣れてくるとキモカワイイ言語。
87デフォルトの名無しさん:2012/12/11(火) 14:08:08.49
実例をあげてキモさを語ってくれると興味がわくのだが
88デフォルトの名無しさん:2012/12/11(火) 17:39:58.46
ObjC++に決まってるだろ
89デフォルトの名無しさん:2012/12/11(火) 19:19:58.24
>>47
型に厳格なほうがわかりやすいよ
90デフォルトの名無しさん:2012/12/11(火) 22:01:36.68
インデント
  インテンド
    ニンテンド
うん、&#160;だね?分かった。

さあ、コーダさんなら、書いて伝えるのです!
91デフォルトの名無しさん:2012/12/12(水) 01:02:50.84
幸田さん
92デフォルトの名無しさん:2012/12/12(水) 06:39:34.09
シャーミンか
93デフォルトの名無しさん:2012/12/12(水) 06:41:27.06
夏夏C
94デフォルトの名無しさん
++i++