「Cでプログラミングするには人生は短すぎる」か?

このエントリーをはてなブックマークに追加
83デフォルトの名無しさん
Javaはもともとは組み込み向け。
84デフォルトの名無しさん:2011/02/11(金) 03:02:11
あんな遅くででかい言語のどこが組み込み向けかと
85デフォルトの名無しさん:2011/02/11(金) 03:21:00
ブルーレイやケータイに乗ってるの知らんのか
86デフォルトの名無しさん:2011/02/11(金) 03:34:35
てんでバラバラな仕様のため、互換性がまるで無い組み込み界で
相互の移植がしやすい言語を、と開発されたんだっけ?
87デフォルトの名無しさん:2011/02/11(金) 04:13:03
>>84
ライブラリがでかいだけでVM自体は小さくできる。
カードにも組み込まれたこともある。
88デフォルトの名無しさん:2011/02/11(金) 10:51:26
VMって言っても元祖MS-BASICのパクリみたいなもんだからな。
MS-BASICでさえROMに格納されてたくらいだし、今となってサイズなんて知れてるわな。
http://ja.wikipedia.org/wiki/Microsoft_BASIC
89デフォルトの名無しさん:2011/02/11(金) 11:11:15
組み込み系とかほざいてるバカがいるな
Javaでの組み込みなんて全体の1割にも満たないだろ
90デフォルトの名無しさん:2011/02/11(金) 11:22:49
>>89
そもそもどこまでを組み込み系って言ってるのかわからんし、
ソースコードの量なのか組み込まれている実行コードベースの
話かも示さずに1割云々と語ってるやつのほうがバカに見える。
91デフォルトの名無しさん:2011/02/11(金) 11:27:11
>>89
組込ライセンスと意味なら、Java使ったサーバーサイドのシステムが1つ売れる間に数千数万のケータイが売れてると思うよ
92デフォルトの名無しさん:2011/02/11(金) 11:53:22
>>88
MS-BASICよりもっと古いp-codeのパクリ。
p-codeになったのは、Visual Basicになってから。
というか、スタックマシンをパクリって言うやつまでいるのか。
93デフォルトの名無しさん:2011/02/11(金) 13:44:15
>>92
なにを言ってるんだお前は?
無知にもほどがある
94デフォルトの名無しさん:2011/02/11(金) 17:49:54
>>93
何を言いたいのか分からない。
JavaのVMとMS BASICのインタプリタは似ていない。
95デフォルトの名無しさん:2011/02/11(金) 21:23:59
>>93>>94
MS BASICはエミュレータ+インタプリタだからな。
JavaのVMに似てはいるが、Javaそのものと言うよりはJRubyなんかに近い。
96デフォルトの名無しさん:2011/02/11(金) 23:06:30
Java VMはMS BASICなんてパクってないだろ
どう考えてもSmalltalk-80のVMのパクりw
97デフォルトの名無しさん:2011/02/11(金) 23:30:21
MS BASICのi8008エミュはVMはVMでもVMwareとかのノリだし、
単語は同じでも「仮想マシン」の意味が違うだろ。

Javaが目指したJavaチップを順序は逆だが実現していたという
意味では先進的だが。
98デフォルトの名無しさん:2011/02/12(土) 00:45:21
>>96
俺もそう思うけど、世の中の若人は Smalltalk なんて知らないのかもね...

もし若人でないのに知らないなら目も当てられないけど...
99デフォルトの名無しさん:2011/02/12(土) 00:54:26
>>97
MS BASICのi8008エミュっていったい何のことを言いたいのか?
100デフォルトの名無しさん:2011/02/12(土) 00:59:21
Javaはコレクションのクラス設計が、Smalltalkに似てた気がする。
101デフォルトの名無しさん:2011/02/12(土) 07:39:57
>>100
Smalltalk-80のCollectionをJavaのヘッポコCollectionsやArraysと一緒にすんなやw
102デフォルトの名無しさん:2011/02/12(土) 07:44:46
ただの中間コード+インタプリタを'Java仮想マシン'と言い張ったJavaの営業戦略は大したもの
103デフォルトの名無しさん:2011/02/12(土) 08:02:20
>>102はかわいそうな人ですね
技術センスゼロだから転職したほうがいいよ
さようなら
104デフォルトの名無しさん:2011/02/12(土) 08:24:38
>>103
技術センスゼロの人にもわかるように違いを説明できるの?
105デフォルトの名無しさん:2011/02/12(土) 08:42:51
今は、インタプリタではないJava VMが主流ではないか。
ネイティブで実行するCPUもあるし。
106デフォルトの名無しさん:2011/02/12(土) 09:07:01
VMはインタプリタだろ。少なくともネイティブコンパイラではないし、ネイティブコードを実行するものでもない。
Java CPUはほとんど使われてないだろうし、一般的でもない。
107デフォルトの名無しさん:2011/02/12(土) 09:13:07
「ランタイム」と言えば角が立たない
108デフォルトの名無しさん:2011/02/12(土) 09:26:40
>>106
Java VMをインタプリタで実装するならわかる。
109デフォルトの名無しさん:2011/02/12(土) 13:09:58
JavaチップだのJITコンパイラだのは後付けのだからねぇ。
インタプリタ高速化技法のひとつとして考えた方がいいと思うぞ。
とくにJavaのJITは起動時ではなくインタプリタで実行中に裏でコンパイルするというものだし。
110デフォルトの名無しさん:2011/02/12(土) 13:33:25
PHP3まではインタプリタ、PHP4からはPHP仮想マシン
ok?
111デフォルトの名無しさん:2011/02/12(土) 13:37:12
仮想マシンとインタプリタの違いは何?
112デフォルトの名無しさん:2011/02/12(土) 13:53:14
BASICとの比較のコンテキストでインタプリタといったら、ソースコードと中間コードが同値という意味か、コンパイラの反対語か。
113デフォルトの名無しさん:2011/02/12(土) 15:03:27
予め用意されたマシン語の命令セットを実行するのと、その場でソースをマシン語に翻訳して実行するのの違いじゃない?
114デフォルトの名無しさん:2011/02/12(土) 15:13:43
>>111
中間言語をネイティブに変換してから実行するのが仮想マシン
インタプリタは、中間言語を使わず、ソースコードのまま
毎回命令を解釈してから実行するもの
115デフォルトの名無しさん:2011/02/12(土) 15:16:59
とすると、>>103 の言い分がよくわからんな
116デフォルトの名無しさん:2011/02/12(土) 15:19:26
>>114
じゃあ、Java VM はどちらでもないの?

中間言語は使うが、実行中に必要な部分だけ
(ロードされた部分だけ)ネイティブに変換する
117デフォルトの名無しさん:2011/02/12(土) 15:19:34
>>114
ハズレw

仮想機械は仕様
インタプリタは実装
118デフォルトの名無しさん:2011/02/12(土) 17:11:43
プ
119デフォルトの名無しさん:2011/02/12(土) 18:02:24
>>114
その定義だと、やはりPHPはPHP仮想マシンだなw
120デフォルトの名無しさん:2011/02/12(土) 18:03:49
>>117が一番しっくりくるな
121デフォルトの名無しさん:2011/02/12(土) 19:19:27
Pコードインタプリタって仕様をもらって、自分でコンパイルしたプログラムを手で実行したことがあったなぁ。
122デフォルトの名無しさん:2011/02/12(土) 19:46:06
仮想機械の仕様さえ満たせば
インタプリタ実装しようが
コンパイラ実装しようが
ハードウェア実装しようが
同じバイトコードが動く。

インタプリタ実装するにしても、
ベタなインタプリタでもいいし、
JITコンパイラ使ってもいいし、
複数の仮想機械で分散処理してもいい。
あくまで仮想機械の仕様さえ満たせば
コードを動かせる。

それが仮想機械じゃねえの?
123デフォルトの名無しさん:2011/02/12(土) 21:47:35
N88BASICのDOS版ってたしかPコードとJITコンパイラだったはず。
今みたいにインストールなんて概念がなく、
EXEファイルにJITコンパイラを埋め込む仕様で
ファイルサイズが絶望的なほどでかかった記憶がある。
124デフォルトの名無しさん:2011/02/13(日) 02:36:09
>>123
今使えば信じられないほど小さくて速いだろうなw
125デフォルトの名無しさん:2011/02/13(日) 18:24:09
マシン語でプログラミングするには人生は長すぎる
その前に精神が壊れる
126デフォルトの名無しさん:2011/02/13(日) 22:54:39
>>125
人間なんだから少しは工夫しよう。今ならマクロ使えばCに近い書き方ができるし、
使いやすいライブラリを多く用意してそれらを活用すればだいぶ見やすく書ける。
127デフォルトの名無しさん:2011/02/13(日) 23:02:27
>>126
昔は実際そうだったな。
今なら、そんなことするぐらいならC使って、パフォーマンスいるところだけグリグリやるところだけ。
128デフォルトの名無しさん:2011/02/14(月) 00:02:12
「Cでプログラミングするには人生は短すぎる」と言いつつアセンブラ技術者募集の求人を出すミゲルさんw
http://twitter.com/migueldeicaza/status/9631116499615744
http://d.hatena.ne.jp/atsushieno/20101201/p1
129デフォルトの名無しさん:2011/02/14(月) 00:08:48
おぉ、迷える子羊よ。彼は犠牲になったのだ
多くの人たちがCでプログラミングしないために
130デフォルトの名無しさん:2011/02/14(月) 01:08:30
>>1
プログラミングをソフトウェアを生み出す為のプロセスとして捉えたらその通りだけど、
プログラミング自体が楽しいなら言語は何でも良いし、どれだけ時間が掛かっても良い。
なぜならプログラムを書く事自体が目的だから。
131デフォルトの名無しさん:2011/02/14(月) 05:29:49
>>130
納期に追われ、デスマで死にそうな奴にそんなこと言ったら刺されるぞ。
132デフォルトの名無しさん:2011/02/14(月) 08:23:51
間に合わせなければいいのに。
そうすれば自然と仕事を適切な規模のところに持っていってくれるし
死にそうな目には遭わずに済むのに。
133デフォルトの名無しさん:2011/02/14(月) 08:51:06
間に合わせないと無能扱いされて会社を追い出される。追い出されても死にはしないが
金がなくなればやってけなくなる。
134デフォルトの名無しさん:2011/02/14(月) 08:57:27
本当は俺プログラマになりたかったのに、そういう怖い話ばかり聞かされるから
結局ならんかったよ・・・

一日中コーディング出来るってちょっと羨ましい
135デフォルトの名無しさん:2011/02/14(月) 12:45:12
コーディングって本当に楽しいか?

コーディング前の、どうやって実現しようかとか、
コーディング後の、なんで動かないんだろ、
と考えてる時の方が圧倒的に楽しくないか?

まぁ、そういうのも含めてコーディングって言ってるのかも知れんが
136デフォルトの名無しさん:2011/02/14(月) 16:34:30
俺は設計よりコーディングの方が好き、
ステップ数が少なく機能的なコードを書くのが楽しい。

まぁ現状は理想論になりつつあるけど。。
137デフォルトの名無しさん:2011/02/15(火) 08:47:57
LispやPerlはコード書くこと自体が楽しい
138デフォルトの名無しさん:2011/02/15(火) 14:32:06
俺はPerlの記号だらけのソースは大嫌いなので見たくもないんだが
139デフォルトの名無しさん:2011/02/15(火) 16:15:40
Perlは書きたくなることはあるが読みたくはないな
なので矛盾はしていない
140デフォルトの名無しさん:2011/02/15(火) 20:03:13
俺の中でコーディングというのは感覚的には清書作業に近いな
141デフォルトの名無しさん:2011/02/15(火) 20:58:22
Perlが好きな奴は三ヶ月後の自分への愛が足りない人
142デフォルトの名無しさん:2011/02/15(火) 22:03:19
俺はコーディングしながら考えるタイプだから清書って感覚はないなあ
むしろ俺言語でいいからコードっぽいものに起こさないと
思考が遮られてはかどらないや
143デフォルトの名無しさん:2011/02/15(火) 22:30:11
Haskell ではコーディングしながら考えてると死ぬ
144デフォルトの名無しさん:2011/02/16(水) 03:27:33
そんなものは使ってはいけない。自分の時間を無駄に捨ててるようなもんだ。
145デフォルトの名無しさん:2011/02/16(水) 03:38:03
そして時間は次から次へやってくる
146西野圭吾 ◆MBzg6vmZNmjx :2011/02/16(水) 05:10:49
あと少しで人生の終点。
147デフォルトの名無しさん:2011/02/16(水) 10:11:18
だから時間を無駄に使うのはやめろということ。使いやすく、開発効率のいい言語を使え。
148デフォルトの名無しさん:2011/02/16(水) 10:12:19
そんなものはない
149デフォルトの名無しさん:2011/02/16(水) 11:05:04
ないと思うなら自分で作れ
150デフォルトの名無しさん:2011/02/16(水) 11:18:10
言語とか開発環境の変化について行くだけの人生とかありえない
生産性(笑)
151デフォルトの名無しさん:2011/02/16(水) 12:22:07
>>149
1.よし!作ろう
2.作るために、「使いやすく、開発効率のいい言語」を探す
3.「そんなものはない」事に気が付く
4.1へ
152デフォルトの名無しさん:2011/02/16(水) 12:42:56
1.よし!作ろう
2.作るために、「使いやすく、開発効率のいい言語」を探す
3.何とか使えるのを探して作り始める
4.出来上がったら、不満があるところを改良していく
5.最初の目的が達成されたら公開する
だろ
153デフォルトの名無しさん:2011/02/16(水) 12:55:12
Cが駄目なら、C++があるじゃないか
154デフォルトの名無しさん:2011/02/16(水) 13:11:01
何とか使えるんならそれ使ってりゃいいやん
155デフォルトの名無しさん:2011/02/16(水) 13:16:54
不便で生産性が悪いから改良するんだろ。
日本人は器用だから使いにくい道具をなんとか使いこなしてしまうが、西洋人は先に使いやすい道具を作る。
道具がいいと生産性が高くなるし誰でも使えるから生産コストがうんと下がる。
器用なことが必ずしもいい結果にならない。
156デフォルトの名無しさん:2011/02/16(水) 14:27:56
Cで書かれている現役ソフトウェアは大量にある。
157デフォルトの名無しさん:2011/02/16(水) 15:41:34
全てをJavaで置き換えられると錯覚しそして破滅する。
158デフォルトの名無しさん:2011/02/16(水) 16:43:10
Cでダメな場面があまりないな
159デフォルトの名無しさん:2011/02/16(水) 16:47:23
相当慣れないと面倒なだけで
160デフォルトの名無しさん:2011/02/16(水) 17:23:19
Cで正規表現で置換。
161デフォルトの名無しさん:2011/02/16(水) 17:31:02
POSIX正規表現 regex.h
162デフォルトの名無しさん:2011/02/16(水) 17:43:59
検索はできても、置換は実装する必要があるのだよ。
163デフォルトの名無しさん:2011/02/16(水) 17:51:51
え?まさかその程度のこともできないなんてことはないよな?
164デフォルトの名無しさん:2011/02/16(水) 18:06:38
置換が必要なアプリだと、簡易的でもGCか賢いコンテナがないと
ヒープメモリがズタズタになってメモリリークしまくりとか。
165デフォルトの名無しさん:2011/02/16(水) 18:20:18
>>163 クソコードだけど。
#include <stdio.h>
#include <stdlib.h>
#include <regex.h>

#define BUFSIZE 1024
#define NUMBER_OF_BRANKETS 10 /* 0の方が高速 */

/*
*dst : 置換後の文字列を書き込む領域確保済みのバッファ
*src : 置換前の文字列
*st_string : 置き換える文字列
re : コンパイル済み正規表現
*/
int replace(unsigned char *dst,
const unsigned char *src, unsigned char *st_string, regex_t re);


main()
{
regex_t re; /* 正規表現コンパイル結果を格納する構造体 */
unsigned char *re_string = "[0-9]+"; /* 正規表現 */
unsigned char *st_string = "[number]"; /* 置換後の文字列 */
unsigned char *dst, *src, *emsg;
unsigned int ecode; /* エラーコード */

/* 正規表現をコンパイルする */
if(0 < (ecode = regcomp(&re, re_string, REG_EXTENDED))){
// コンパイル失敗時はエラーメッセージを出して終了
emsg = malloc(BUFSIZE);
regerror(ecode, &re, emsg, BUFSIZE);
fprintf(stderr, "%s\n", emsg);
166デフォルトの名無しさん:2011/02/16(水) 18:21:03
fprintf(stderr, "%s\n", emsg);
free(emsg);
exit(-1);
}

/* メモリーを取得 */
src = malloc(BUFSIZE);
dst = malloc(BUFSIZE);

while(!feof(stdin)){
/* 標準入力から1行入力 */
if(NULL==fgets(src, BUFSIZE, stdin))
continue;
/* 置換を実行 */
replace(dst, src, st_string, re);
/* 置換した文字列を標準出力へ出力 */
printf("%s", dst);
}

/* メモリーを開放 */
free(src);
free(dst);

/* 構造体を開放 */
regfree(&re);

return 0;
}
167デフォルトの名無しさん:2011/02/16(水) 18:21:46
int replace(unsigned char *dst,
const unsigned char *src, unsigned char *st_string, regex_t re)
{
unsigned char *p, *q;
unsigned int i; /* 入力文字列のための添字 */
regmatch_t *pmatch = NULL; /* 一致データの格納先 */
unsigned int ecode; /* エラーコード */

pmatch = calloc(NUMBER_OF_BRANKETS + 1, sizeof(regmatch_t));

/* パターン・マッチング */
if(REG_NOMATCH == (ecode = regexec(&re, src, NUMBER_OF_BRANKETS + 1, pmatch, 0))){
pmatch[0].rm_so = -1;
}
/* 置換処理用のポインターをセット */
q = dst; i=0;
/* コピーと置換処理 */
while('\0' != src[i]){
/* 正規表現とマッチする位置に来たときの処理 */
/* pmatch[0]が一致文字列全体、pmatch[1]以降が括弧内の部分一致部分の情報 */

if(i == pmatch[0].rm_so){
/* q - dst < BUFSIZE - 2 はバッファー・オーバーフロー対策 */
for(p = st_string; '\0'!=*p && q - dst < BUFSIZE - 2; p++){
*q++ = *p;
}
/* 入力文字列の文字位置を表す添字に加算 */
i += pmatch[0].rm_eo - pmatch[0].rm_so;
/* 再帰でグローバル・マッチングにする */
q += replace(q, src + i, st_string, re);
/* 再帰先で処理が終了しているのでループを抜ける */
break;
168デフォルトの名無しさん:2011/02/16(水) 18:22:30
} else if(q - dst < BUFSIZE - 2){
/* 1文字コピー */
*q++ = src[i++];
}
}
/* NULL文字をつけ足す */
*q = '\0';

free(pmatch);

/* 置換後の文字数を戻す */
return q - dst;
}

http://uncorrelated.no-ip.com/20101023.shtml からコピペ
169デフォルトの名無しさん:2011/02/16(水) 18:23:27
Perlだと一行で正規表現で置換できるんだが、POSIX Cだとこんな感じらしい。
170デフォルトの名無しさん:2011/02/16(水) 19:03:47
これは…人生が短く感じるな
ちなみに、Perlで言うところのどんな操作なんだ?
171デフォルトの名無しさん:2011/02/16(水) 19:29:21
>>170
こんな処理
while(<>){
s/[0-9]+/[number]/g;
print;
}
172デフォルトの名無しさん:2011/02/16(水) 20:13:31
つまり数字が連続している文字列を [number] という文字列に変換するってことか?
PerlやRubyでも-peとかやったら1行になりそうだ
sedならむしろ2行以上に伸ばすほうが面倒だな…w
173デフォルトの名無しさん:2011/02/16(水) 20:23:32
正規表現だけではなく、Cではリストやハッシュ等のコンテナがないので、せっせと実装することになる。
174デフォルトの名無しさん:2011/02/16(水) 20:24:51
ハッシュ関数も自前で用意する事になるが、数学的に周期が短い関数になると、値が偏るので注意しないといけない。
175デフォルトの名無しさん:2011/02/16(水) 20:27:14
ANSIには浮動小数点を文字列に変換する関数もない。
printfを使うと速度的に遅いため、高速な変換関数を用意する必要がある。
176デフォルトの名無しさん:2011/02/16(水) 20:28:26
ANSIのソート関数は、比較関数のオーバーヘッドが大きいため、クイックソートやマージソートを必要に応じて実装する。
177デフォルトの名無しさん:2011/02/16(水) 20:30:03
ANSI Cには標準的な機能が定義されていない。スレッドや排他処理、共有メモリ、GUIなどの現在のOSでは当然に使えるものの大半が、機種依存コードになる。
178デフォルトの名無しさん:2011/02/16(水) 20:35:37
Cには、メモリ開放を忘れるリスクと同時に、解放後のポインタにアクセスしてしまうリスクがある。
ポインタが適切な位置を指しているかは、コンパイラはチェックしない。
179デフォルトの名無しさん:2011/02/16(水) 20:37:03
>>165-168 >>174-178 の問題はJavaやスクリプト言語では解決済み。
180デフォルトの名無しさん:2011/02/16(水) 20:39:35
そういう時はC++使うんじゃないの
181デフォルトの名無しさん:2011/02/16(水) 20:41:39
ANSIの仕様にある物もない物も、実装済みである確率はさほど変わらない
182デフォルトの名無しさん:2011/02/16(水) 21:01:25
最近はJavaからスクリプトを実行できるから面白い。
ある種開き直ったテンプレートエンジンとして使えるな。
183デフォルトの名無しさん:2011/02/16(水) 21:45:02
なんつうか、どうでもいい部分ばかりだな。
184デフォルトの名無しさん:2011/02/17(木) 00:27:07
>>1のGLib作者みたいな人と一般PGでは認識が違うのは当然
185デフォルトの名無しさん:2011/02/17(木) 15:51:25
スクリプトやJava等は、結局環境に応じた実行環境をネイティブ言語で書いておかなければならない。
所詮他の言語が存在しないと役立たずの分際で、デカイ顔してるんじゃないよ。
186デフォルトの名無しさん:2011/02/17(木) 16:48:56
UI自体が言語だった時代には、Cとshなど複数言語が存在するのが当然だった。
GUIのせいで単一の言語にこだわる人間が増えた。

Cでプログラミングするのは何の問題もない。
問題は単一の言語にこだわることだ。
Cをよく知っている人はむしろこだわらない人の方が多い。
187デフォルトの名無しさん:2011/02/17(木) 18:38:45
iPadみたいなキーボードレスなのが主流になったら、プログラミングも変わるのだろうかね。
188デフォルトの名無しさん:2011/02/17(木) 21:41:35
MacBookにはキーボードが付いてるだろ?
189デフォルトの名無しさん:2011/02/17(木) 22:42:28
>>187
iPad のソフトウェアキーボードを触らせてもらった事あるけど、使い易かったよ

ガシガシ入力するなら Bluetooth のキーボードを使うんじゃないかな
文字を入力する必要があるのはプログラマだけじゃないし
190デフォルトの名無しさん:2011/02/17(木) 23:02:15
>>189
寝言は
191デフォルトの名無しさん:2011/02/17(木) 23:08:56
むにゃむにゃ
192デフォルトの名無しさん:2011/02/17(木) 23:11:52
もう食べられないよお
193デフォルトの名無しさん:2011/02/17(木) 23:27:12
>>189
スマホよりは使いやすいわな。
194デフォルトの名無しさん:2011/02/18(金) 12:35:15
Macの超絶クソなアイソレートキーボードより、iPadのソフトキーボードの方が使いやすいくらいだしなw
195デフォルトの名無しさん:2011/02/18(金) 16:35:53
ねーよ
196デフォルトの名無しさん:2011/02/19(土) 17:24:39
>>3
そもそもcはランタイム支援のない環境でインフラを
構築するために作られた言語。
基礎が整った環境でcを使うなとk&rやlinusも
言っている。
目的を達成できるならshellやら
出来るだけ抽象的なものを使うべき
197デフォルトの名無しさん:2011/02/19(土) 17:26:57
昔は crt って無かったのかな

C は C で進化してるんだよね
次のスペックではマルチスレッドも採用されるみたいだし
198デフォルトの名無しさん:2011/02/19(土) 17:36:10
>>28
C++の肩持つ訳じゃないが4%ってどっから出てきた数字だ?
テンプレ関数+スタック変数 (C++)
vs
オーバーライド+new (C#)

だと10倍近く差が出たんだがな。
199デフォルトの名無しさん:2011/02/19(土) 17:38:27
まぁアプリ全体でずっとnewしてるわけじゃないから
200デフォルトの名無しさん:2011/02/19(土) 17:46:41
>>66
vb6何て死んだも同然だけど
いまだに使われてるよな。
32bitのサポートが終わったら完全にしぬだろうけど。
201デフォルトの名無しさん:2011/02/19(土) 17:47:22
Microsoftは潰れてないじゃん。比較にもなってない
202デフォルトの名無しさん:2011/02/19(土) 17:53:15
>>199
ベクトル(線形幾何)演算やってると悲惨だぞ。
使うであろう座標、ベクトル、行列をstaticにするなり、
配列に集めるなりしてあらかじめ確保しとかにゃならん。
203デフォルトの名無しさん:2011/02/19(土) 18:50:36
マルチスレッドが普及してから15年以上経って、仕様に取り込むところがC。
204デフォルトの名無しさん:2011/02/19(土) 19:06:35
軽佻浮薄に流行を追いかけるチャラ男よりも、一本芯が通った時代遅れ。
それでいいじゃないか。
205デフォルトの名無しさん:2011/02/19(土) 19:09:33
爺にウケるわけだ
206デフォルトの名無しさん:2011/02/19(土) 19:12:43
C++ の仕様にスレッドって入ってたっけ?
207デフォルトの名無しさん:2011/02/19(土) 19:26:15
最近入ったかも
208デフォルトの名無しさん:2011/02/19(土) 19:55:15.80
>>202
スタックフレームを自作するとかな。
ベクトル用スタックフレーム
行列用スタックフレーム
四元数様用スタックフレームと。
それぞれあらかじめ30個位インスタンスぶちこんどくんだ。
あれ?これってC++の方が楽じゃね?
209デフォルトの名無しさん:2011/02/19(土) 23:22:26.81
C++0xで入る
210デフォルトの名無しさん:2011/02/20(日) 05:43:23.73
でもまあ、Cでのマルチスレッドとか、ずいぶん前から、APIとしてほぼすべての環境にあったし。
というか、マルチスレッドを言語の機能にする方が間違ってると思うんだが。俺としては。
あくまで、OSが提供する機能だろう?ならばやっぱり、APIとして提供される形こそが理想だと思う。

なんでも言語の機能にすればいいというものではないと思うな。
211デフォルトの名無しさん:2011/02/20(日) 06:03:02.75
>>210
言語の機能と API という区分がよく分からないけど、
C1x のスレッドはライブラリなんじゃないの?
212デフォルトの名無しさん:2011/02/20(日) 06:17:18.55
>>210
言語仕様と言う意味では、その言語のコア機能だけで実装出来ない機能は
言語仕様に入れて良いと思う。C のコア機能だけではスレッドは実装する事が
出来ないので、スレッドを言語仕様に入れるのは問題無いでしょう。

それ以外にも、よく使用される機能が何度も繰り返し再実装されるのを避ける為に
言語仕様を定めるのも理に適っていると思う。昨今の CPU 実装の変化を考えると
スレッドはますます使用頻度が増えて行くのは確実で、言語仕様に入れるのは
正しいと思う。

標準仕様に含める事で、ポータビリティが上がるという利点もある。統一的な
仕様を決めておく事で、色々なプラットフォームで動作するプログラムを
効率よく実装する事が出来る。移植性の高いマルチスレッドのコードが書ける
様になるのは歓迎すべき事だと思う。

副次的な効果として、C の教科書でスレッドを教えるのが容易になるという点も
意外と重要じゃないかと思う。標準仕様で定まっていれば、初学者が学習する際に
迷う事が少なくなり、マルチスレッドプログラミングの普及がより進むと思う。

Programming languages should be designed not by piling feature on top of feature...
という一節が有名だけど、今の時代、スレッドは言語に含まれてしかるべき
機能だと思うよ。
213デフォルトの名無しさん:2011/02/20(日) 06:18:44.59
>>211
言語の機能として実装する場合、その言語を実装する環境すべてでその機能が無いといけない。
つまりOSが無い環境へのコンパイラでも、マルチスレッドを実装するコードを生成しなければならなくなる。
214デフォルトの名無しさん:2011/02/20(日) 06:55:12.78
>>213
実際は、freestanding の環境では複数のスレッドを起動しなくても良い事になってる。
C1x の 2010/12 のドラフトの 5.1.2.4 に書いてあるよ。
215デフォルトの名無しさん:2011/02/20(日) 06:59:02.67
はて? C言語ってOSがない環境で
ファイル読み書きできたっけ?
216デフォルトの名無しさん:2011/02/20(日) 07:29:20.57
>>215
それ、C言語とかんけいない。
217デフォルトの名無しさん:2011/02/20(日) 07:57:10.99
まぁ普通OSが無くてもFW経由で読み書きできるんでないかい
218デフォルトの名無しさん:2011/02/20(日) 10:05:25.33
>>216
標準ライブラリはISOのC言語仕様の一部ですよ
勿論ファイル入出力はそれに含まれています
219デフォルトの名無しさん:2011/02/20(日) 14:09:46.65
>>218
言語の仕様には入っていない。
220デフォルトの名無しさん:2011/02/20(日) 14:38:11.08
>>212
昨今の変化を考えるというなら
簡単に変化できないような堅苦しい仕様書を作ってはいけない
221デフォルトの名無しさん:2011/02/20(日) 14:41:53.09
JavaのThreadは1994年から、ほとんど使い方に変化が無い。
222デフォルトの名無しさん:2011/02/20(日) 15:30:16.47
>>220
今度の仕様で策定される様な部分はスレッドの本当に基本的な部分で
長年の実績に基づいた機能だから簡単に変化する様な物ではないと思われ

むしろ基本の部分の仕様が固まる事で、その上に様々なライブラリを
構築する事が容易になって、言語の発展に大いに寄与する事と思われる
223デフォルトの名無しさん:2011/02/20(日) 15:34:09.91
>>221
Thread Classがあまり変わっていないだけで、それの使い方は大いに変わっている。
224デフォルトの名無しさん:2011/02/20(日) 15:54:43.52
Class を変えずに色んな使い方が出来るなら結構な事じゃない
どう転んでも新しい技術の脚を引っ張らないって事でしょ
225デフォルトの名無しさん:2011/02/20(日) 15:59:04.92
>>222
長年の実績で固まった機能が言語の発展に寄与した。
これは過去の話だ。
まともな人間なら「固まる事で、寄与する事と思われる」なんて言わない。
226デフォルトの名無しさん:2011/02/20(日) 16:05:58.98
普通に言うだろ。
まともな人間は本筋に関係無い所で無意味な難癖をつけたりはしない物だよ。
227デフォルトの名無しさん:2011/02/20(日) 16:06:50.77
だな
228デフォルトの名無しさん:2011/02/20(日) 16:21:54.11
>>221
んなこたーない。
例えばスレッドの止め方一つ取っても当時と今じゃ全く違うだろ。
229デフォルトの名無しさん:2011/02/20(日) 16:40:02.04
>>228
詳しく。
230デフォルトの名無しさん:2011/02/20(日) 16:46:05.03
deprecateされてるだろ
231デフォルトの名無しさん:2011/02/20(日) 16:46:40.08
>>226
難癖つけるやつがいないなら、厳密な仕様書も要らない
232デフォルトの名無しさん:2011/02/20(日) 16:48:01.46
そいつは結構、好都合
233デフォルトの名無しさん:2011/02/20(日) 16:52:16.64
昔からスレッドはkillすると、システムが不安定になるもんです。API的には用意されているけどね。
234デフォルトの名無しさん:2011/02/22(火) 08:46:18.42
>>215
I/Oの機械語コード並べた配列を関数ポインターにぶちこんで呼ぶか、
あればメモリマップドI/Oを使えばいい。
でも、これ物理デバイスを制御できるだけでファイルシステムは自前で
作らなきゃならん。
235デフォルトの名無しさん:2011/04/12(火) 10:56:28.52
「Cでプログラミングするには人生は短すぎる」か?
http://hibari.2ch.net/test/read.cgi/tech/1296486174/
236デフォルトの名無しさん:2011/04/28(木) 05:31:53.80
工学や理学の問題を解きたくてプログラム勉強し始めたのに、
プログラミング技術の果てしない探求に取り付かれて
プログラムは手段である事をすっかり忘れちゃうよね。
解決したい問題をさっさと解ける可能な限りの高級言語を使うのがいいと思った。
237デフォルトの名無しさん:2011/05/12(木) 05:14:24.87
手段が目的になっちゃうね
238デフォルトの名無しさん:2011/05/13(金) 11:29:26.32
手段が目的になる。大いに結構。
目的が感嘆には達成されないからこそ人類の発展があったんだよ。
そうじゃなきゃメシ食ってSEXして寝るだけの存在になってただろう。
239デフォルトの名無しさん:2011/06/21(火) 08:41:39.60
「今こそAndroidはJavaを捨ててMonoを採用する時です」
http://twitter.com/#!/migueldeicaza/status/81755106231599104
240uy ◆yyC0rYWEq2 :2011/06/21(火) 15:14:06.84
>>238
気持ち悪いんだよ 氏ねゴミ


マジレスすると、Cはもうそんなに使えなくても良い
JAVA以外をやれよksが
241デフォルトの名無しさん:2011/06/21(火) 20:29:51.43
>>239
つ Go
242デフォルトの名無しさん:2011/06/22(水) 20:44:36.76
>>241
Go(笑
243デフォルトの名無しさん:2011/06/22(水) 20:59:49.67
>>242
楽しそうだなw
244デフォルトの名無しさん:2011/06/22(水) 21:06:13.19
www#
245デフォルトの名無しさん:2011/06/22(水) 21:08:41.67
u(o#www#o)y
246デフォルトの名無しさん:2011/06/23(木) 08:57:39.37
>>245
かわいい
247デフォルトの名無しさん:2011/06/24(金) 05:17:33.18
てst
248デフォルトの名無しさん:2011/07/08(金) 21:31:07.14
>>240
Javaはオワコン
249デフォルトの名無しさん:2011/07/09(土) 01:33:21.10
cが重厚プログラムだと思ってるやつが馬鹿。
250デフォルトの名無しさん:2011/07/09(土) 21:14:05.84
>>236
そんなこと言ってる研究室のハゲは、
ポインタを理解していないどころか、構造体の意味も理解していない、
随所にマジックナンバーを埋め込んで、
数値計算ライブラリの利用方法も知らずに
逆行列を求める自作のプログラムをよこしてきて、
極めつけにはループ用変数のi,j,kをグローバルにしている

そんなヤツにソースコードが汚いと言われる日々
地底の情報系研究室は地雷だらけだぜ
251デフォルトの名無しさん:2011/07/14(木) 23:06:21.64
こんなのを見た日には、Cが嫌いになる。

a+++++b;
252デフォルトの名無しさん:2011/07/14(木) 23:33:04.84
そうか?頭の中で違和感なく一瞬で
a++ + ++b;
に変換されたんだけど。
253デフォルトの名無しさん:2011/07/14(木) 23:36:04.76
じゃあ最初からそう書けば良い。
254デフォルトの名無しさん:2011/07/15(金) 14:21:22.95
そんな書き方するやついないし
255デフォルトの名無しさん:2011/07/15(金) 15:02:45.42
c+++++love
256デフォルトの名無しさん:2011/07/16(土) 17:46:18.12
int orz=3;
257デフォルトの名無しさん:2011/07/20(水) 23:03:57.00
IOCCC(The International Obfuscated C Code Contest
国際邪悪なCコードコンテスト)のコードは凄まじいな。仕事で似たような
コードをやられたらたまらん。
258デフォルトの名無しさん:2011/07/21(木) 00:01:42.58
トリッキーなコード書きたくてしょうがない人のガス抜きになっているという説もある>IOCCC
259デフォルトの名無しさん:2011/07/21(木) 01:38:39.55
教えてあげないよ雀
260デフォルトの名無しさん:2011/07/24(日) 03:28:42.72
トリッキー → ポ●ンキー かw
261デフォルトの名無しさん:2011/07/30(土) 17:28:17.03
トリッキー トリッキー 錯覚系の秘密はね
262デフォルトの名無しさん:2011/08/03(水) 23:40:59.79
ホシュ
263デフォルトの名無しさん:2011/09/18(日) 17:00:55.65
俺も次が最後のプログラム
264デフォルトの名無しさん:2011/10/18(火) 16:12:07.54
C++でプログラミングするには人生は短すぎる
265デフォルトの名無しさん:2011/10/31(月) 21:33:27.99
結論:Cでプログラミングをすると人生が短くなる
266デフォルトの名無しさん:2011/11/29(火) 12:04:51.63
わらたw
267デフォルトの名無しさん:2011/11/30(水) 01:55:51.54
c#すら面倒なんで、pythonつかうよ
268デフォルトの名無しさん:2011/11/30(水) 17:38:21.65
Cは、それ自体が目的と化してしまう。
269デフォルトの名無しさん:2011/11/30(水) 23:39:17.33
Cでプログラミングしてると、プログラムをそもそもつくろうとした目的を忘れてしまう
脳の容量がたくさんないとやってられない
270デフォルトの名無しさん:2011/11/30(水) 23:47:59.59
高速化、最適化(自分の思い込みが多分)が
目的になってしまうことがあるな
271デフォルトの名無しさん:2011/11/30(水) 23:48:50.04
つまりホントの目的が達成できないと
272デフォルトの名無しさん:2011/12/01(木) 00:13:39.91
それは苦Cな
273デフォルトの名無しさん:2011/12/01(木) 10:26:59.94
274デフォルトの名無しさん:2011/12/05(月) 10:56:49.27
たいていのプログラムは20年もあれば完成するよ
275デフォルトの名無しさん:2011/12/05(月) 15:32:21.77
80人月のプログラムを一人で作るとか泣きたくなるな
276デフォルトの名無しさん:2011/12/06(火) 22:19:29.80
Cじゃなきゃできないこと以外ではCは使いたくないな
めんどくさい
277デフォルトの名無しさん:2011/12/13(火) 21:21:04.60
デバイス屋は、C(もしくは、C++)しか使わないという噂は本当か?
278デフォルトの名無しさん:2011/12/14(水) 00:22:26.24
x 使わない
o 使えない

ついでに言うと C++ も所謂 better C としての使い方しか出来ない
279デフォルトの名無しさん:2011/12/14(水) 13:36:02.58
っていうかC++でプログラミングしててなんかいいことあったの?
自己満足以外で
280デフォルトの名無しさん:2011/12/14(水) 16:14:41.24
Cのほうがよかったね
281デフォルトの名無しさん:2011/12/14(水) 21:35:22.80
STLには、お世話になった。boostは使ってなかったから、auto_Ptr止まりだけど、メモリ管理からの解放になれると、Cには戻れない。

今はもう使ってないけど
282デフォルトの名無しさん:2011/12/14(水) 23:04:11.98
今は使わなくなった理由は?
283デフォルトの名無しさん:2011/12/15(木) 00:20:51.07
.NETやってるとレガシーモジュールをラップするのにC++/CLI使わざるを得ないよ
284デフォルトの名無しさん:2011/12/15(木) 00:42:50.68
>>282
その頃使ってたフレームワークが廃れてしまったのと、Javaやスクリプト言語に流れたから。

よりメモリ管理から解放されたのが大きい。
最高のパフォーマンスを求めるのであれば、C / C++になるのだろうけど、現状そこまで必要としてないから。
285デフォルトの名無しさん:2011/12/15(木) 02:52:36.47
アプリなんてメモリ管理しなくても
終了時にOSが捨ててくれるだろ
286デフォルトの名無しさん:2011/12/15(木) 20:14:36.81
Cをやることが目的になってしまう
287デフォルトの名無しさん:2011/12/19(月) 23:42:18.60
プログラミング言語にはレイヤーがあるからな。
どの言語も同じレイヤではない。
@OSやさらに上級のプログラミング言語、仮想環境をつくる言語:C,Go
A上記の言語でつくられた環境でプログラミングするための言語:Java、C#
B簡単にコンピュータに対し命令を指示する言語(スクリプト):Perl,Python,Ruby,PHP,Javascript

BをやるためにCで書くのは確かに時間がない
Aを目的としても同じ。
ただし、@をやるためには、Cくらいしか適した言語はないだろう。
288デフォルトの名無しさん:2011/12/20(火) 18:17:31.40
おまえの理論ならJavascriptはレイヤ4だ
289デフォルトの名無しさん:2011/12/24(土) 04:56:08.18
弘法筆を選ばず
290デフォルトの名無しさん:2011/12/24(土) 10:14:13.67
うすうすそうなんじゃないかなって思い始めてたよ
291デフォルトの名無しさん:2011/12/25(日) 23:33:13.07
>>287
もちろんそうなんだけど、
CでAやBをやろうとしてた時代があったんじゃないの
292デフォルトの名無しさん:2011/12/26(月) 10:57:37.09
そのころはCプログラマの寿命はもっと長かった
293デフォルトの名無しさん:2011/12/31(土) 18:04:36.70
寿命が延びたんじゃなくて納期が短くなった
リーナスがLinux作ったみたいに、納期気にしなければ作れるわけで
294デフォルトの名無しさん:2012/01/01(日) 04:18:15.42
同意
295デフォルトの名無しさん:2012/01/01(日) 04:42:11.17
大半の自称プログラマにはいくら時間があっても無理
296デフォルトの名無しさん:2012/01/01(日) 09:15:15.76
自称ってどこまでの範囲
297デフォルトの名無しさん:2012/01/01(日) 10:06:48.06
サンプル見ながら打ち込んでコンパイルして実行出来ます(キリッ)

くらい
298デフォルトの名無しさん:2012/01/01(日) 13:00:56.92
>>293 みたいのだろ
299デフォルトの名無しさん:2012/01/01(日) 18:09:38.45
時間が無限にあれば作れるのは自分がつくったフリーソフトを今誰かが使ってありがとうって言ってくれてるレベルだろ

リーヌスは苦しょっぱい青春しながら+学生としての勉強しながら作ったんだろうから、時間が無限にあった訳じゃない。もっと上だな。

俺?無料に決まってんじゃん
300デフォルトの名無しさん:2012/01/01(日) 18:11:26.14
アホか俺
無料じゃねえ無理だろ(鬱
301デフォルトの名無しさん:2012/01/02(月) 01:31:56.83
まあ無限は言い過ぎだな
0×∞
を定義しようとしているようなもんだ
302デフォルトの名無しさん:2012/01/05(木) 03:26:32.65
プログラミングするには人生は短すぎるお
303デフォルトの名無しさん:2012/01/15(日) 10:03:53.57
304デフォルトの名無しさん:2012/01/15(日) 17:47:42.43
Cだろうが何だろうが、完成させなきゃ何を使おうが変わらん。
生産性がどうのと語ろうが、現実完成した成果物を出せてないならなんの意味もない。
305uy:2012/01/21(土) 00:40:19.14
>>287
名無しにしては随分マシなレスをかくなと思った
入門書の最初にレイヤーについては書くべきだね
そうしないと1個の言語で何もかもやろうとする奴が絶えない

本職でプログラマやる奴は、1,2,3のレイヤークリアして無いとカスだわ
趣味でやるにしてもレイヤー3だけはクリアしてないと正直見てて可愛そう

Rubyは必死にレイヤー2に干渉しようとしてるけど
もっと並列化が進んで速度上がらないと無茶かなぁ
306デフォルトの名無しさん:2012/02/08(水) 00:30:32.60
>>304
何を言いたいのか分かりません
307デフォルトの名無しさん:2012/02/14(火) 13:49:48.65
>>1
C++も仲間に入れてやってください。
308デフォルトの名無しさん:2012/02/25(土) 17:32:29.07
【消しゴム】MONOを使ってみるスレ4【じゃない】
http://toro.2ch.net/test/read.cgi/tech/1329023778/
309デフォルトの名無しさん:2012/02/25(土) 17:36:41.40
>>307
この人、C++を拒絶しまくってたからな。
310デフォルトの名無しさん:2012/03/12(月) 00:58:54.94
Webコミック「21日でC++を習得する方法」
http://gihyo.jp/dev/clip/01/orangenews/vol56/0009

これでお前らでもC++が使えるようになる!
311デフォルトの名無しさん:2012/04/27(金) 06:58:07.99
言語の基礎部分だけなら1週間もあれば充分かもな。
実際VC++の昔のチュートリアル本なんて、びっくりするくらい薄かったし。
312デフォルトの名無しさん:2012/09/10(月) 20:58:18.92
何がLinuxデスクトップを殺したか
著者: Miguel de Icaza
日本語訳: yomoyomo
http://www.yamdas.org/column/technique/linuxdesktopj.html

このひと、相変わらずだぜw
313uy:2012/09/10(月) 21:09:23.07
よく1週間とか日にちで習得日数いう奴いるけど、
てめーは1日何時間なんだよ

って思う
1日1時間しか集中できないごみ化すなら市ね
314デフォルトの名無しさん:2012/09/10(月) 22:46:19.99
エンペツ方面がコケそうだからかね、この兄ちゃんのいいたい事って
315デフォルトの名無しさん:2012/12/19(水) 06:30:11.97
>>13
>>14
ヘイ! おまえたちラッパーを馬鹿にするなYO!

>>23
♪闘う君の歌を〜闘わない女が歌うんだろ〜
316デフォルトの名無しさん:2012/12/20(木) 02:22:48.83
>>274
プログラムとソフトウェアを混同する人おおいよね
317デフォルトの名無しさん:2012/12/20(木) 02:27:47.11
>>279
実験用の書き捨てコードに便利。
javaやc#じゃネストが深いし、ファイル数とタイプ数が多くて嫌
318デフォルトの名無しさん:2013/04/27(土) 17:07:20.17
効率もとめて新しいものいちいち追ってる間に
Cで書いたほうがはるかに早いことを悟った
もう新しい言語はいらない
319デフォルトの名無しさん:2013/04/27(土) 19:27:54.50
Cの標準ライブラリに連想配列はありますか?
320片山博文MZパンク ◆0lBZNi.Q7evd :2013/04/27(土) 20:02:49.44
>>319
ありません。
321デフォルトの名無しさん:2013/04/28(日) 08:29:45.82
なんかそのへんに転がってないっすかね
322デフォルトの名無しさん:2013/04/28(日) 11:19:50.88
ggrks
323デフォルトの名無しさん:2013/04/30(火) 01:49:37.10
MONOで作るって人生を賭けて作るようなモノじゃないから。
2、3日後の明方には既に腐ってるようなモノだから。
324デフォルトの名無しさん:2013/04/30(火) 05:08:06.70
カスw
325デフォルトの名無しさん:2013/05/05(日) 11:03:22.58
>>3
Objective-CやれObjective-C
326デフォルトの名無しさん:2013/05/05(日) 12:12:32.40
彼らはBASICから得られた体験を ” タブー視 ” しなければいけないため、常に孤立を要求される。
327デフォルトの名無しさん:2013/05/21(火) 00:30:26.23
ゲーム業界ではいまだにアセンブリゴリゴリ書くらしくて驚いた
328デフォルトの名無しさん:2013/05/22(水) 20:18:47.64
隅から隅までって訳じゃあるまいし
キモのところでアセンブリ書いててもおかしくない
柔軟さが要求される部分ではLua とか使ったりもするらしいし
329デフォルトの名無しさん:2013/11/12(火) 21:41:53.92
Cはいくらライブラリ作っても何も蓄積されない感がある。
オブジェクト指向を駆使してもC++じゃ今一歩だめだ。
javaくらいの簡易さでやっとライブラリに価値が生まれるレベル。
330デフォルトの名無しさん:2013/11/12(火) 22:36:56.73
Cは詰めが甘いから早く絶滅させるべき
331デフォルトの名無しさん
Cでプログラミングするには人生は長すぎるんじゃないか?

人生を記述し切っているCソースを見てみたい