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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2011/02/01(火) 00:02:54
Monoプロジェクトの公式発表ではないが、その主導者であるミゲル・デ・イカザ氏の言葉として、
「Cでプログラミングするには人生は短すぎる」という標語が掲げられている。
http://bit.ly/fJCXb0
28デフォルトの名無しさん
垢版 |
2011/02/02(水) 19:24:00
>>25
リアルタイムで搭載CPUを調べて、レジスタ数やサポートしている拡張命令などに
ガチガチに依存したネイティブコードを生成するJITコンパイラの方が未来はある。

.NETもVC++比で、その差4%程度まで来ているし抜くのも時間の問題。
C言語自体もclangで中間コード/JITコンパイルの方向に進んでいるし。
2011/02/02(水) 20:32:50
>>3
構造体がOOだと思っちゃう奴って…
2011/02/02(水) 20:42:18
はじめからソースコードで配布できればよかったんやけど
2011/02/02(水) 20:43:23
当たらずとも遠からずってやつだろ。COMのインタフェースとか構造体で表現してるだろ、あれ。
32デフォルトの名無しさん
垢版 |
2011/02/02(水) 21:39:11
GNOME完成しそうにない宣言
33デフォルトの名無しさん
垢版 |
2011/02/02(水) 23:34:59
>>3の上3つを掲げ、4つ目のごとく標準ライブラリ(GTK)を作り続けた結果が、5つ目もとい>>1
34デフォルトの名無しさん
垢版 |
2011/02/02(水) 23:36:10
ようするに>>3が全て。
俺にはほど遠い世界。
35デフォルトの名無しさん
垢版 |
2011/02/03(木) 01:04:33
プログラムと呼べるのはCぐらいなもんだろ。
JAVAやC#は女子供のお遊びみたいなもん。アセンブリは知らん。
36デフォルトの名無しさん
垢版 |
2011/02/03(木) 01:06:16
心ではみんなそう思ってるだろ。大声では言えないだけで。
2011/02/03(木) 01:41:03
JavaやC#がおもちゃなら
PythonやRubyはどうなるんだよ
2011/02/03(木) 03:39:15
むしろオモチャこそが理想じゃね?
Cはオモチャの範疇を超えちゃってるのがいけない
2011/02/03(木) 03:42:41
>>28
clangは俺も期待してるが、まだCとObjective-Cくらいしか動かないからこれからだね。
多くの人はAjax環境とかPHP、Rubyなんかの遅いものばかり使ってるからね。
Ruby->clangだったら楽できそうなんだが。
2011/02/03(木) 04:37:32
CにはCのよさがあるからね
その処理に向いた言語を使うだけ
41デフォルトの名無しさん
垢版 |
2011/02/03(木) 09:30:16
適材適所
それこそシェルスクリプトで十分な超簡単なものをC言語で
書いてれば時間が無くなるのは当然。
2011/02/03(木) 13:12:14
この短い人生では、あんなめんどくさい言語やってる余裕はないっす。
strcpyとか今更勘弁してほしいっす。
2011/02/03(木) 15:06:33
仕事ではUNIX Cで開発している。
で、部分的には(擬似的な)OOPの考え方をCでの開発に導入している。
GNOMEのGObjectと同じ発想だけど、それほど洗練されていないし、
一貫したOO的な設計にはなっていない。

以前は、もしC++/JavaのようなOOPに置き換えられたなら、
幸せになれるのではないかと考えていた時期もあった。
ただ、Smalltalk/Rubyのような動的で純粋なOOP言語を知ってしまった今、
それらと比較するとC++/Javaは「いびつなOOP言語」にしか見えない。
CからC++/Javaへ移行することで多くの利点はあるかもしれないけれど、
その代償として新たな問題(STL/総称型/動的型)の問題を抱えるのがリスクになる。

趣味のプロジェクトであれば試しにC++でやってみるか?も可能だけど、
失敗した場合を考えると、それは許されない世界。
(理想は試作(C++)と本番(C)を別部隊に分離することだと思うが、自分にそんな権限は無い)
だから、最終的な納品物はonly Cで、その開発支援ツール類は、部品がRubyでそれらを
sh/awk/makeで統合する、というスタイルになっているのが現在の姿。

今は、makeをrakeへ全面移行すべきか?、あるいはこの先もrubyを選択し続けることが
はたして正しいのか?(他の言語はどうよ?)、が検討課題だったりする。
2011/02/03(木) 18:03:36
だから初めから Haskell にしとけばよかったんだよ
2011/02/03(木) 21:01:30
衰退してしまったSmalltalk
衰退しつつあるRuby
言語が崩壊してしまっているC++
中途半端な仕様になってしまったJava
2011/02/03(木) 21:03:51
何をするにしたって 人生は短すぎる
2011/02/03(木) 21:10:32
驚くことに、人生をすればちょうど人生とぴったりの時間
2011/02/03(木) 22:37:49
なにもしないでいるには人生は長すぎるが、何かを成すためには人生は短過ぎる。
2011/02/03(木) 22:38:30
昔、テキスト処理するツールをCでひーひー言いながら書いたことが何度かある。
今はPerlでもPythonでもRubyでも軽々動くからな。本当にいい時代。
2011/02/03(木) 22:44:23
適材適所を知らんバカと、ITメディアや@ITあたりの記事に踊らされて
流行の言語()とか乗っちゃってるバカ。
2011/02/04(金) 00:03:54
SmalltalkはObjCの中で生き残ってんじゃないの
2011/02/04(金) 00:26:38
ふつーにSmalltalkとして生き残っていんだけどな…。しょぼーん。
http://smalltalk.cincom.jp/
http://squeak.org/

これらはXEROX謹製Smalltalkの直系子孫だけど、他にも企業やファンの独自実装も多数。

商用でも使われているし、プロダクトはTwitterや米海軍関連に買われたり地味に頑張っている。
http://dabbledb.com/
http://www.teleplace.com/
2011/02/04(金) 01:13:44
何故に、Smalltalkなんかで製品を実装したのか小一時間問い詰めたい
Smalltalkって処理速度どうなの?Javaと比べてどんなメリットがあるんだ
Javaですらも、NaClがまともに動き出したら、消えてしまいそうな気がするけど
2011/02/04(金) 01:42:22
30 年前ならいざ知らず、LL 全盛の現在では Smalltalk の開発効率の高さは
相対的に低下してしまったと思うな。それでいて、イメージベースの扱い辛さとか、
GUI と結びつきが強すぎるとか、最適化がし辛いとか、負の面は変わってないから
ちょっと使い辛い。

Lisp みたいに Hacker 気質を持ったプログラマを惹き付ける様な事もないし。

>>53
超対話的環境だから、プロトタイプが作り易い。
55デフォルトの名無しさん
垢版 |
2011/02/04(金) 11:48:47
だからってC#は変態すぎると思うんだ
2011/02/04(金) 14:00:43
>>53
> 何故に、Smalltalkなんかで製品を実装したのか小一時間

SeasideやCroquet(先のDabble DBやTeleplaceが使っている変態FW)を
Smalltalk以外のまともな言語で組んでみたらどんなことになるのか
逆に、興味がわくな。
2011/02/04(金) 18:03:18
なんで変態FWなんか使うの?
まともなFWはないの?
2011/02/04(金) 18:07:44
まともなFWじゃできないことがあったからだろうJK
2011/02/04(金) 19:01:47
いや、だからまともなFWじゃできないことってなんなのよ
まともなFWでは物理的に不可能ってわけじゃなければ、
普通は変態FWの仕組みをまともFWに取り込むことを考えるでしょ
2011/02/04(金) 19:51:57
GemStone Smalltalkはすばらしかった。
一度あれに慣れると他のDBMSがカスに見える。
2011/02/05(土) 02:16:11
MongoDBと比べるとどうなの?
62デフォルトの名無しさん
垢版 |
2011/02/09(水) 22:11:56
Javaてsunがjreを配布しなくなったら即おわってしまうね。
Cはどこがつぶれようとコンピューターがあるかぎり永遠に続くよ。
2011/02/09(水) 22:16:03
>>62
Android
64デフォルトの名無しさん
垢版 |
2011/02/09(水) 22:28:13
C++で使いやすい部分だけ使えばいいじゃない。
2011/02/09(水) 22:45:44
>>62
は?JREって、色んなとこが出しているんじゃないの?
ってか、せっかくデファクトになったのに、
無料配布しないと競合する.NETが広まるだろうし
オラクルだって金を取りたくても取れないでしょ
66デフォルトの名無しさん
垢版 |
2011/02/09(水) 23:17:07
だからその色んなところがつぶれたら終わるでしょう。
2011/02/09(水) 23:18:25
>>66
そうですね。
2011/02/09(水) 23:40:30
>>62
思い込みで書き込む前に事実関係を多少とも調べようとしなかったの?
そんなに人生は短すぎるの?
69デフォルトの名無しさん
垢版 |
2011/02/10(木) 00:08:22
おおもとのsunがjreやめたら、色んなとこもいずれ皆javaをやめるだろ?
2011/02/10(木) 00:29:42
>>69
Apache Foundation が何をやっているかとか、IBM が何をやっているかとか、
GCC や LLVM がどうなっているかとか、Dalvik って何だろうとか、
Open JDK とは何なのかとか、Bluray プレーヤーに何が乗っているのかとか、
少しでも調べる気はないの?
71デフォルトの名無しさん
垢版 |
2011/02/10(木) 00:56:11
じぶんもそんなに知らないくせに偉そうに書きなさんな。
2011/02/10(木) 01:01:03
相手も知識が無いかもしれないから自分も知らないで良いと思い込む人間と、
知らない事があったら調べようと思う人間は、何が分かれ道だったんだろうなあ
73デフォルトの名無しさん
垢版 |
2011/02/10(木) 02:14:44
と さらに知ったかぶりをしてみると。
2011/02/10(木) 02:16:49
反論出来ないからと言って斜に構える必要は無いんだぜ
みんな分かってる事だから
2011/02/10(木) 03:08:53
Javaが無くなったら食いっぱぐれる連中を
からかってるだけだって。
そんなムキになんなよ。
2011/02/10(木) 03:10:46
という事にしたいのですね。分かります。
2011/02/10(木) 04:04:15
ヘッダファイルって自動で作れないものなの?
2011/02/10(木) 04:41:39
>>66, 69
そしたらMSがおいしくいただきます。
2011/02/10(木) 08:52:17
Javaほど現実に負けた言語も珍しい
理想が高すぎたのだろうな
2011/02/10(木) 19:57:05
実際は Java は現実を指向した言語で、現実に広く受け入れられている言語でもある。
勿論、現実と言うのはネットに住まう有象無象じゃなく産業界の話だがな。
2011/02/10(木) 20:29:36
現実志向でない言語ってWhitespaceとかか?
2011/02/10(木) 20:33:58
you name it.
2011/02/10(木) 22:46:00
Javaはもともとは組み込み向け。
2011/02/11(金) 03:02:11
あんな遅くででかい言語のどこが組み込み向けかと
2011/02/11(金) 03:21:00
ブルーレイやケータイに乗ってるの知らんのか
2011/02/11(金) 03:34:35
てんでバラバラな仕様のため、互換性がまるで無い組み込み界で
相互の移植がしやすい言語を、と開発されたんだっけ?
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
2011/02/11(金) 11:11:15
組み込み系とかほざいてるバカがいるな
Javaでの組み込みなんて全体の1割にも満たないだろ
2011/02/11(金) 11:22:49
>>89
そもそもどこまでを組み込み系って言ってるのかわからんし、
ソースコードの量なのか組み込まれている実行コードベースの
話かも示さずに1割云々と語ってるやつのほうがバカに見える。
91デフォルトの名無しさん
垢版 |
2011/02/11(金) 11:27:11
>>89
組込ライセンスと意味なら、Java使ったサーバーサイドのシステムが1つ売れる間に数千数万のケータイが売れてると思うよ
2011/02/11(金) 11:53:22
>>88
MS-BASICよりもっと古いp-codeのパクリ。
p-codeになったのは、Visual Basicになってから。
というか、スタックマシンをパクリって言うやつまでいるのか。
93デフォルトの名無しさん
垢版 |
2011/02/11(金) 13:44:15
>>92
なにを言ってるんだお前は?
無知にもほどがある
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なんかに近い。
2011/02/11(金) 23:06:30
Java VMはMS BASICなんてパクってないだろ
どう考えてもSmalltalk-80のVMのパクりw
2011/02/11(金) 23:30:21
MS BASICのi8008エミュはVMはVMでもVMwareとかのノリだし、
単語は同じでも「仮想マシン」の意味が違うだろ。

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

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

中間言語は使うが、実行中に必要な部分だけ
(ロードされた部分だけ)ネイティブに変換する
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が一番しっくりくるな
2011/02/12(土) 19:19:27
Pコードインタプリタって仕様をもらって、自分でコンパイルしたプログラムを手で実行したことがあったなぁ。
2011/02/12(土) 19:46:06
仮想機械の仕様さえ満たせば
インタプリタ実装しようが
コンパイラ実装しようが
ハードウェア実装しようが
同じバイトコードが動く。

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

それが仮想機械じゃねえの?
123デフォルトの名無しさん
垢版 |
2011/02/12(土) 21:47:35
N88BASICのDOS版ってたしかPコードとJITコンパイラだったはず。
今みたいにインストールなんて概念がなく、
EXEファイルにJITコンパイラを埋め込む仕様で
ファイルサイズが絶望的なほどでかかった記憶がある。
2011/02/13(日) 02:36:09
>>123
今使えば信じられないほど小さくて速いだろうなw
2011/02/13(日) 18:24:09
マシン語でプログラミングするには人生は長すぎる
その前に精神が壊れる
2011/02/13(日) 22:54:39
>>125
人間なんだから少しは工夫しよう。今ならマクロ使えばCに近い書き方ができるし、
使いやすいライブラリを多く用意してそれらを活用すればだいぶ見やすく書ける。
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況