トップページ⇒tech
890コメント227KB

C系列って欠陥言語だろw

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2009/07/22(水) 04:45:02
行末に「;」とかw
0002デフォルトの名無しさん2009/07/22(水) 04:47:48
あと、無駄に厳しすぎる型チェックと、それによる無駄なオーバーライドや条件分岐の多発。
別にあんなに型チェックを厳しくしても、バグの撲滅に全然役に立ってない。
むしろ型エラーで増やしてるw
0003デフォルトの名無しさん2009/07/22(水) 04:48:40
単に文を次行でも継続するときに明示するか
文を終了するときに明示するかの違い
欠陥言語と言うならもっと別のところに欠点はあるから、そこを指摘しような
0004デフォルトの名無しさん2009/07/22(水) 04:49:29
>>2
それは何言語のことだ
少なくともC系列共通の話題ではないぞ
0005デフォルトの名無しさん2009/07/22(水) 05:00:09
あと、言語仕様が貧弱すぎて、エラー箇所が正確に特定できないよね。

だいたいこの辺が間違ってんじゃないの?って言われて、よくよく見直してみると、
呼び出し元がおかしいだけだったり。

とにかく、エラーが役に立たない。
0006デフォルトの名無しさん2009/07/22(水) 05:01:54
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

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

                  京都大学霊長類研究所
0007デフォルトの名無しさん2009/07/22(水) 05:02:22
>>2
型エラーのバグってどんなんだろう?
コンパイルエラーで取れないんだよね?
0008デフォルトの名無しさん2009/07/22(水) 05:25:49
C++って、最近は関数型言語の取り込みにハマってる感じだけど
最終的には論理型も取り込んで、手続きオブジェクト指向関数論理の全てができる言語を目指すつもりなのかな
0009デフォルトの名無しさん2009/07/22(水) 07:38:02
ネタが持たない。
0010デフォルトの名無しさん2009/07/22(水) 09:09:06
>>5
プロトタイプ宣言をしてない、とか、warningを無視するとか、適切な型を使わず
キャストでごまかすとか、エラーにならなきゃいい、というダメな行いが原因です。
0011デフォルトの名無しさん2009/07/22(水) 09:39:44
コンパイルエラーのことかwww
0012デフォルトの名無しさん2009/07/22(水) 21:55:12
未成年の主張系のスレは欠陥スレだろw
0013デフォルトの名無しさん2009/07/22(水) 22:34:36
夏休みになってアイちゃん急増中
0014デフォルトの名無しさん2009/07/22(水) 23:18:09
アイちゃん「たぶん私は3人目だと思うから…」
0015デフォルトの名無しさん2009/07/22(水) 23:37:54
>あと、無駄に厳しすぎる型チェックと、それによる無駄なオーバーライドや条件分岐の多発。

オーバーライド(再定義)じゃなくて、オーバーロード(多重定義)じゃないの?
0016デフォルトの名無しさん2009/07/23(木) 00:56:11
アイちゃんも不快指数うなぎのぼりの夏の到来に頭おかしくなっちゃってるなぁ。
0017デフォルトの名無しさん2009/07/23(木) 01:32:27
多発するメモリリーク
delete [] foo;
仮想デストラクタ
複雑化するテンプレート
暗黙的に呼ばれまくるコンストラクタ
コピーコンストラクタと代入演算子の混同
多すぎるキャストの種類

罠だらけ

厳しい型チェックは許す
0018デフォルトの名無しさん2009/07/23(木) 01:37:32
JavaやC#、JavaScript辺りもC系列に入りますよね?
0019デフォルトの名無しさん2009/07/23(木) 01:39:53
perl,PHPもC系統だよな?
0020デフォルトの名無しさん2009/07/23(木) 01:52:25
1と2を見て「なんで今更Ada?20年おせーよ」と思ったら…

Cで「厳しすぎる」とか…Ada使ったら発狂するな
0021デフォルトの名無しさん2009/07/23(木) 02:18:46
>>20
たぶん、>>2はC++のことだと思う。Cよりは厳しい。
0022デフォルトの名無しさん2009/07/23(木) 03:13:18
>>17
自分の勉強不足を棚に上げてよくそれだけC++の悪口が言えるな
そこに書いてある事は少し勉強すれば絶対に罠じゃなくなるわけだが
0023デフォルトの名無しさん2009/07/23(木) 03:18:23
スレ開いて >>1 を見て、いきなりズッコケたわ
0024デフォルトの名無しさん2009/07/23(木) 03:58:25
もともとC言語って、デニス・リッチーが片手間で考えた言語だろ。
一行で書けるミニプログラム用の言語だから、;で行末を表すことにするとか
変な仕様になってる。
これなら簡単に複数命令を一行で表せるから。

あと、簡易のミニプログラム用だから、コンパイラ設計が簡単になるように、
色んな機能を言語仕様に組み込まなかった。

だいたい、この言語仕様って、巨大なプログラムを組むのに適してないんだよ。
面倒くさすぎるし、ミスが多発する。
0025デフォルトの名無しさん2009/07/23(木) 03:58:56
>>22
もしかしたら17自身は使いこなしていて、実は周りのプログラマのレベルの低さを嘆いているのかもしれないぞ。
0026デフォルトの名無しさん2009/07/23(木) 05:01:03
C系列じゃなくてC++限定の話じゃないのか
それなら理解できるが
0027デフォルトの名無しさん2009/07/23(木) 05:26:00
欠陥言語じゃねーよ

アセンブラでちまちま打ち込むのがどえらい面倒なんで
高級アセンフラ的な言語を考えたのがCなんだろ

しかもこれ実数演算が出来るしポインタが自由自在に
使えるし実行速度も速いし小さく収まるし

その分アドレス計算なんかを理解してないと全く理解不能な
プログラムになってしまうけどな
0028デフォルトの名無しさん2009/07/23(木) 05:32:10
C言語なんて、前時代の遺物にしがみついている
人がいるのは、このスレでつか?w

つーか、未だにC言語なんて使っている人いんの?w
0029デフォルトの名無しさん2009/07/23(木) 05:33:37
何、新しい言語はJavaとかC#とかRubyとか言うんじゃないだろうな?

C#はいいとして、Rubyなんて使い道が限られるし、Javaは遅くて結構
なプログラムにしか使えないじゃん
0030デフォルトの名無しさん2009/07/23(木) 05:41:48
某証券会社のサイトでJavaアプレット使っていて
起動が遅くて相当泣かされた。
言語仕様考えた奴、俺のウン十万返せ。
仮想マシン使っている言語はどれも糞。
0031デフォルトの名無しさん2009/07/23(木) 06:25:00
そんな貴方にCommon Lisp
0032デフォルトの名無しさん2009/07/23(木) 06:33:15
むしろ型が邪魔になるようなプログラミングはCでやるべきではない
0033デフォルトの名無しさん2009/07/23(木) 07:48:27
文法や記法がC系統ならいっぱいあるが
実際はCと似ても似付かないものになっている
0034デフォルトの名無しさん2009/07/23(木) 08:14:38
Cってインラインアセンブラが使える以外はゴミじゃん。

文法はダサイし、間違いやすいし、何よりも冗長的すぎるし、そのくせ文法の制約が多い。
複雑性の管理も全くダメだし、むしろ、他の言語よりもさらに酷いことになるだろ。
0035デフォルトの名無しさん2009/07/23(木) 08:22:18
で、このスレ的にはどの言語がいいわけ?
0036デフォルトの名無しさん2009/07/23(木) 08:23:36
大昔のCはむしろ型付けのゆるい言語の代表格で
ANSIで規格化されるさい型付けを強化した
0037デフォルトの名無しさん2009/07/23(木) 08:24:36
> 一行で書けるミニプログラム用の言語だから、;で行末を表すことにするとか
> 変な仕様になってる。

セミコロンのどこが変だよ。

文 : if文とかwhile文とか | 複文 | 式 ";"
複文 : "{" 文の0回以上の繰り返し "}"

こんだけじゃねーか。行末はただの空白と同じ扱いだろ? マクロ除いて

> これなら簡単に複数命令を一行で表せるから。

意味不明

> あと、簡易のミニプログラム用だから、コンパイラ設計が簡単になるように、
> 色んな機能を言語仕様に組み込まなかった。

コンパイラだけじゃない。ランタイムが小さいことも重要だし、言語機能が大きいと
OSみたいな低水準のものを書くとき困るだろ。

> だいたい、この言語仕様って、巨大なプログラムを組むのに適してないんだよ。
> 面倒くさすぎるし、ミスが多発する。

おまえはJavaでもC#でも使ってろ。適材適所。
0038デフォルトの名無しさん2009/07/23(木) 08:25:22
おまいら半世紀前の人ですか
0039デフォルトの名無しさん2009/07/23(木) 08:33:33
>>35
Lisp
0040デフォルトの名無しさん2009/07/23(木) 09:23:15
>>38
だから「具体的に」何の言語だったら近代的なんだよお前的には?
C++とか言うなよ
0041デフォルトの名無しさん2009/07/23(木) 09:48:45
C++でいいじゃん
0042デフォルトの名無しさん2009/07/23(木) 09:54:14
┐(´д`)┌
0043デフォルトの名無しさん2009/07/23(木) 10:32:15
「C言語入門」や「初めてのC」

この辺の本を熟読してから出直してこい。

ーーーーーーーーーーーーーーー終了ーーーーーーーーーーーーーーー
0044デフォルトの名無しさん2009/07/23(木) 10:40:49
本を熟読しただけでわかった気になられても困る
0045デフォルトの名無しさん2009/07/23(木) 12:26:47
どうせC言語の規格書を読んでこなかったバカが使うためのJavaやC丼で満足している人しかここにはいないんだろ
Java厨C丼厨は逝ってよし
0046デフォルトの名無しさん2009/07/23(木) 12:32:58
自己紹介はもういいから
0047デフォルトの名無しさん2009/07/23(木) 15:44:15
1970年代のファッション誌見て古臭いって言ってるようなもん
0048デフォルトの名無しさん2009/07/23(木) 16:43:27
「初めてのC」でググって何ページ目にセックルがひっかかるか試したら
結構早い段階で出てきたな
C言語なんて所詮はその程度かw
0049デフォルトの名無しさん2009/07/23(木) 16:47:53
なんという偏見
高級言語を使っているゆとりさんは黙っててください><
0050デフォルトの名無しさん2009/07/23(木) 16:55:28
パンチカードとハンドアセンブル以外は全て高級。
マクロや擬似命令の使えるアセンブリ言語使えばパソコンの基礎がわかるとか
言っちゃうような頭沸いてる人が多くて困る
0051デフォルトの名無しさん2009/07/23(木) 17:40:55
「プログラミング言語C」を忘れてた。
0052デフォルトの名無しさん2009/07/23(木) 18:13:44
ttp://www.youtube.com/watch?v=AUHaozTcuaA
0053デフォルトの名無しさん2009/07/23(木) 19:29:57
>>49
お前はマイクロコードでもいぢってろ
0054デフォルトの名無しさん2009/07/23(木) 20:36:12
>>35
 Euphoria[ http://www.rapideuphoria.com/ ] or [ http://www.openeuphoria.org/ ]...といいたいところだが、マイナーすぎるからやめておくよ(現代的な手続き型言語なんだけどね)
自然な構文でリスト構造作れるし、きちんとメモリー保護機構あるし、覚えること少ないし可変長データとか結構扱いやすいんだけど...インストーラーがヘッポコ。あと和訳文章あるけど、そっちもヘッポコ...orz

>>45
 Windows API関連はC/C++の使用を前提として設計されているから結局学ぶ必要があるんだけどなあ...。
あとはC言語で一番厄介なのは言い尽くされているからもう食指ぎみ。習得できないヤツは他の言語にすればいいだけだろ。
0055デフォルトの名無しさん2009/07/23(木) 22:04:21
食傷な
0056デフォルトの名無しさん2009/07/23(木) 22:45:26
>>49
ttp://www.nicovideo.jp/watch/sm80412
0057デフォルトの名無しさん2009/07/23(木) 23:57:39
>>21
Javaじゃないか?
>無駄なオーバーライド
0058デフォルトの名無しさん2009/07/24(金) 01:33:30
>1
一々改行を明記するのは、改行コードの問題が在ったからだと思うが。
CRやLFはまとめて読み飛ばして、別の文字で区切るようにすりゃ
コンパクトに実装できるし、実行効率も上がるだろ。
0059デフォルトの名無しさん2009/07/24(金) 01:37:53
Whitespace最強
0060デフォルトの名無しさん2009/07/24(金) 02:26:31
Pascalのセミコロンのほうが何か気持ちわるい。
0061デフォルトの名無しさん2009/07/24(金) 03:36:59
付いたり付かなかったり
付けると怒られたり
ありゃコンパイラ側の都合を押し付けられてるね
0062デフォルトの名無しさん2009/07/24(金) 08:50:40
Pascalのセミコロンは文の区切り
Cは文の終わり
0063デフォルトの名無しさん2009/07/24(金) 10:55:20
ocalmはもっと酷い
0064デフォルトの名無しさん2009/07/24(金) 16:27:28
Cのセミコロンは、

式の終わりに付いて、式を文(式文)にするもの、だ。
0065デフォルトの名無しさん2009/07/24(金) 20:22:01
>>1
無理してC++覚える必要は無いよ
不器用な人は素直に高級言語つかってればいい。

OSや携帯なんかの組込みアプリは殆どが
C/C++やアセンブラで書かれているが
銀行や企業の業務アプリなんかは殆どがメンテのしやすい
VBなどのでできてるし、今はプログラマーも敷居は低いよw
0066デフォルトの名無しさん2009/07/24(金) 20:27:38
組み込みアプリだったら、Javaも多いんじゃね
0067デフォルトの名無しさん2009/07/24(金) 20:35:55
普通は改行と文の終わりを分けたのはCの少ない美点の一つという評価だと思うんだがな。
改行 = 文の終わり、っていう規則のせいでVBのコードがどれだけ書きづらいか。
0068デフォルトの名無しさん2009/07/24(金) 20:56:13
>>65
C/C++は高級言語だろ、何言ってんの?
0069デフォルトの名無しさん2009/07/24(金) 21:01:07
C/C++は低級言語だろ、何言ってんの?
0070デフォルトの名無しさん2009/07/24(金) 21:02:03
>>67
VBはラインエディタが起源だからなぁw
0071デフォルトの名無しさん2009/07/24(金) 21:09:08
>>69
はぁ?
0072デフォルトの名無しさん2009/07/25(土) 00:08:24
>>71
ポインタを直接弄れるような低級な言語でしょ。
0073デフォルトの名無しさん2009/07/25(土) 00:13:17
アセンブリ言語以外は全部高級言語。
最近のは情報処理の常識を知らないのかな。
0074デフォルトの名無しさん2009/07/25(土) 00:19:42
どこまで真面目に言ってるのか分からんが・・・

高級低級なんて要は甲と乙のどっちがよりハードウエア寄りか、
っていう相対的な概念に過ぎないから、比較対象次第でしょ。
絶対評価じゃない。

確かにオッサン世代としてはC/C++は高級言語だ、って言いたくもなるが、
それはただ頭が硬直化してゼロベースで物を考えられなくなってるだけだ。

っていうか、こんなどうでもいいことに固執するのは頭悪げに見えるなw
0075デフォルトの名無しさん2009/07/25(土) 00:23:03
C言語が欠陥というより、
C言語をメインで使ってる奴の頭が
欠陥持ちである場合が多い。
きたねえコードをこれでもかと書く。
0076デフォルトの名無しさん2009/07/25(土) 00:25:40
>>74の俺理論に吹くw
0077デフォルトの名無しさん2009/07/25(土) 00:56:39
漏れもおさーんだけどCは低級なことが簡単に出来る高級言語だと思ってる
0078デフォルトの名無しさん2009/07/25(土) 01:17:42
managed言語とunmanage言語の違いを言いたいんだろうが、
unmanageであることが崇高と思ってる時点で素人だよな。
0079デフォルトの名無しさん2009/07/25(土) 01:28:21
低級:アセンブラ
中級:C
高級:その他
面倒くさいからこれでいいよ
0080デフォルトの名無しさん2009/07/25(土) 02:03:33
なるほど、こういうスレを立てれば大量に釣れるのか
0081デフォルトの名無しさん2009/07/25(土) 02:04:58
OOP、低級言語、数学、英語
このあたりから選ぶといい
0082デフォルトの名無しさん2009/07/25(土) 06:03:59
漏れもCは高級なことも出来る低級言語だと思ってる
0083デフォルトの名無しさん2009/07/25(土) 06:09:47
俺はCは基本的にアセンブラを言語っぽく見せただけの
代物だと思っている

だからアセンブラが出来る人と出来ない人ではCをdeep C
みたいに使えるかどうかが違ってくるような気がする
0084デフォルトの名無しさん2009/07/25(土) 09:46:14
俺の中で、C/C++より高級言語だと思う言語の基準。

・宣言だけすれば、メモリの確保と開放が不要
・変数に静的、動的の区別が無い
・暗黙的にバリアントを扱い、文字列から数値などのキャストが柔軟
・ポインタを直接操作するような事ことを禁止

こんな感じかな。
俺自身はこんな気持ち悪い言語は使いたくないけど
企業は喜びそうだな
0085デフォルトの名無しさん2009/07/25(土) 10:08:59
OSが書けるほど機械寄りの低級言語。

間違いやすい人間でも使える高級言語。
0086デフォルトの名無しさん2009/07/25(土) 13:10:34
>>84
それは「高級」って言葉の意味を履き違えてないか?w
高級言語の「高級」って高級和牛や高級ウィスキーの高級と違うよ。
このスレだけ読んだってわかりそうなものだが。
0087デフォルトの名無しさん2009/07/25(土) 13:19:43
>>78にあるように高級、低級の分け方を理解してないみたいだな。
アンマネージ=低級じゃねーから。
0088デフォルトの名無しさん2009/07/25(土) 13:38:36
高級言語・・・フリー以外の開発言語
高給言語・・・お金になる言語
降給言語・・・Javaのように需要がなくなった言語
0089デフォルトの名無しさん2009/07/25(土) 15:35:03
現状の日本では基本Javaじゃねーの。
組み込みとか、Web屋より少ないだろうし相対的に。
0090デフォルトの名無しさん2009/07/25(土) 19:38:30
業務系案件が無くなったからJavaPGはいらない子になりました。
0091デフォルトの名無しさん2009/07/25(土) 20:07:22
でも言語仕様が柔軟でない分
開発ツールのインテリセンスがどんどんよくなっていったんじゃない?
今の開発エディタはすごい便利だよ
0092デフォルトの名無しさん2009/07/25(土) 21:54:39
>62
むしろPascal式のセミコロンに慣れると
C系のelseの前にセミコロン書くのがとてつもなく気持ち悪い
0093デフォルトの名無しさん2009/07/25(土) 21:58:30
でもやっぱりbegin - endは面倒臭い
{ } に慣れちゃうと
0094デフォルトの名無しさん2009/07/25(土) 22:29:05
Pythonに慣れちゃうと、{ }すら面倒くさい…
0095デフォルトの名無しさん2009/07/25(土) 22:45:08
みんな!民主党が大変な事になってるよ。
http://www.nicovideo.jp/watch/sm7737318
0096デフォルトの名無しさん2009/07/25(土) 22:46:41
>>92
じゃあ Javascript はどっちかっていうと PASCAL 系になるね
0097デフォルトの名無しさん2009/07/26(日) 06:25:22
え?JavaScriptもelseの前にセミコロン書くだろ?
0098デフォルトの名無しさん2009/07/26(日) 18:52:03
じゃあ、ruby最強って事で。
0099デフォルトの名無しさん2009/07/26(日) 18:57:39
Ruby儲ってマジキモい奴しかいないよな
例えばMatzとか
0100デフォルトの名無しさん2009/07/26(日) 19:22:20
あれはRuby信者じゃなくモルモン信者
0101デフォルトの名無しさん2009/07/26(日) 23:40:28
w
■ このスレッドは過去ログ倉庫に格納されています