JavaやったらC++はきもく感じる
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2007/01/10(水) 19:07:35int(100)とかだっさー(笑)int&なんてきんもーっ★って感じなんだけど。
標準で使えるスレッドもないしさ。バッドノウハウだらけの
使えない気持ち悪い言語だよなこれ。前時代の人たちはほんとにこんなモノで開発してたのか。
マジご愁傷様です。
C99のほうがまだ拡張性が高くていい感じになってるのが皮肉だね。
0821デフォルトの名無しさん
2007/02/07(水) 22:48:47コードをごちゃごちゃにして誰にも管理できないものを作っちゃう。
ありゃカスグラマの自己満足用機能だろ。
0822デフォルトの名無しさん
2007/02/07(水) 23:02:10cinとかcoutの>>,<<はおかしいと思った。
まだC++があまり知られていないころ
coutが使われていて
なんじゃこの記号だらけの変な言語は
って思った。
そういう俺は未だにprintf派
coutの書式指定はトリッキーで好きになれん。
そもそも演算子オーバーロードは
使うことってほとんどないな。
どうしてもあったほうが便利って時だけにすりゃいいし、
前置インクリメントと後置インクリメントを別々に作らないといけなかったり
ちょっと変
0823デフォルトの名無しさん
2007/02/07(水) 23:06:16どっちかというとオーバーロードの使用例っつーかティップスみたいな感じがするが
0824デフォルトの名無しさん
2007/02/08(木) 00:40:23いらん言うやつはこっちの世界未経験なんだろうなと。
0825デフォルトの名無しさん
2007/02/08(木) 02:16:380826デフォルトの名無しさん
2007/02/08(木) 09:03:240827デフォルトの名無しさん
2007/02/08(木) 10:29:53mov [edx + ecx*4], eax
みたいなことするし
0828デフォルトの名無しさん
2007/02/08(木) 13:23:560829デフォルトの名無しさん
2007/02/08(木) 14:27:16じゃあ、さっさと実用化してくれよ。
仕事じゃ関数型言語なんてろくに使わないし
0830デフォルトの名無しさん
2007/02/08(木) 14:29:35> >>805
> もちろんそうなんだが、クラス単位にすると機能が多すぎて、微妙に違う機能が
> 必要になったりとかすると継承したりしてどんどん複雑になっていくから、
> 関数単位だと楽なんだよ。
> デザインパターンとかいろいろ考えてる人もいるけど、実際の現場では机上の空論なんだよ。
そりゃおまえんとこの現場が恵まれていないだけ田尾。
> もちろん初めはちゃんと考えて設計しているつもりが、いつの間にか変な進化をとげていたりするんだよな。
まだまだ修行が足りないんだよ。最低でも結城浩本くらい読んで理解すれば
そこそもデザインパターンを使えるようになる。
デザインパターンはJavaの標準APIにも随所に存在しているため、
無意識にデザインパターンについて詳しく知ろうという動きとりやすいのがJavaの利点。
0831デフォルトの名無しさん
2007/02/08(木) 14:38:28> まだまだ修行が足りないんだよ。
修行が必要なことなら一般プログラマには不可能だな。
0832デフォルトの名無しさん
2007/02/08(木) 14:39:33そのデザインパターンがすべてのケースを網羅しているわけではないことはGOF本にも書いてあることだがね。
0833デフォルトの名無しさん
2007/02/08(木) 15:35:51> 演算子オーバーロードがない言語は文系。
クマー
0834デフォルトの名無しさん
2007/02/08(木) 15:38:45まだまだ進化の余地はある。
家電Java実現が待ち遠しい。
家電製品を自作したJavaプログラムで
操れる日がやってくると期待しているぞ
テレビ、HDDVDレコーダ、アンプ、スピーカーだけでなく冷蔵庫、洗濯機、
炊飯器、電子レンジ、防犯扉すべてをJavaで操るハイテクハウスを実現するのだ。
0835デフォルトの名無しさん
2007/02/08(木) 15:39:500836デフォルトの名無しさん
2007/02/08(木) 15:40:05天才だな
0837デフォルトの名無しさん
2007/02/08(木) 15:40:09> 演算子オーバーロードじたいは悪くないと思うけど
それもかなり盲目的だね。
無闇に演算子の乱立を防ぐために規格で統一したようなものが
Javaでの演算子オーバーロードを禁止した理由だ。
0838デフォルトの名無しさん
2007/02/08(木) 15:41:00> 数値計算とか3Dプログラミングとかやってたら、演算子オーバーロードがないなんてありえないだろ。
> いらん言うやつはこっちの世界未経験なんだろうなと。
経験有りだが。おれのソースコード、add(),subtract(),multiply(),divide(),transpose(),norm(),inverse(),det()
だらけだw
0839デフォルトの名無しさん
2007/02/08(木) 15:41:07プロジェクトの中で一貫性が保たれていればいいんだから
0840デフォルトの名無しさん
2007/02/08(木) 15:41:150841デフォルトの名無しさん
2007/02/08(木) 15:41:42じゃ演算子オーバーロードでも使ってろw
0842デフォルトの名無しさん
2007/02/08(木) 15:42:14だからデザインパターンはGoFだけじゃないし
0843デフォルトの名無しさん
2007/02/08(木) 15:42:49C++で演算子オーバーロードしまくったソフトウェアなら
糞セキュリティ扉を作ることができる。
0844デフォルトの名無しさん
2007/02/08(木) 15:44:54> なんでも闇雲に乱立させて構わないんじゃない?
> プロジェクトの中で一貫性が保たれていればいいんだから
乱立するのは言語やOSだけにしてくれ。
一つの言語に乱立させるとおかしくなる。
プロジェクトの中だけだろ。
だが、会社の経営陣がいきなり、そのプロジェクトで
使われたプログラムを他社のあっちのソースコードと併合してくれと
いってきたときどうする?
名前空間だけで解決できるか? 無理だろう。
0845デフォルトの名無しさん
2007/02/08(木) 19:45:56それがMSに目をつけられて業界標準言語になったのが第二の悲劇
そして、それに気づかず脳天気に使った開発者は死に、儲かったのはMSだけというのが最後の悲劇
君たちの怨念からJavaは生まれた。やすらかに眠りたまえ。
0846デフォルトの名無しさん
2007/02/08(木) 21:54:100847デフォルトの名無しさん
2007/02/08(木) 21:54:340848デフォルトの名無しさん
2007/02/08(木) 21:57:490849デフォルトの名無しさん
2007/02/08(木) 22:02:08>>845の言ってることが理解できたの?
思わず日本語でおkってレスしそうになった俺の為に>>845がなにを言ってるのか解説してくれまいか?
0850847
2007/02/08(木) 22:10:50正直何を言いたいのかよくわからなかったが、
「MSを儲けさせるのは良くない」という意図があるのはわかったのでああ書いた
1行目はまだしも2行目は何の業界のことだかわからんし
3行目の「開発者は死に」のくだりは理解不能だねえ
0851デフォルトの名無しさん
2007/02/08(木) 23:00:11>>845
日本語でおk
0852デフォルトの名無しさん
2007/02/08(木) 23:24:22C++って「C知らないヤツお断り」的な雰囲気があって嫌って意味なのかな
0853デフォルトの名無しさん
2007/02/08(木) 23:35:26お前が盲目だな
最初の1行を除いて演算子オーバーロードに否定的な発言なのに
0854デフォルトの名無しさん
2007/02/09(金) 00:35:590855デフォルトの名無しさん
2007/02/09(金) 00:37:30kwsk
0856デフォルトの名無しさん
2007/02/09(金) 00:40:33> だが、会社の経営陣がいきなり、そのプロジェクトで
> 使われたプログラムを他社のあっちのソースコードと併合してくれと
> いってきたときどうする?
そんなありそうも無いことを心配してどうするよ。
バカジャーねーの?
0857デフォルトの名無しさん
2007/02/09(金) 01:35:54それはC#のことか。なるほど。良く分かる。
>>847 >>850
SunはJavaで全然儲かっていないが。残念だったな。
逆にお前はM$が儲けることになっているようだな。
Javaでお金儲けをしているのはIBMやHP、BEAなどサードパーティだ。
しかもJavaは去年の11月17日、GNU General Public Licenseで
リリースし直された。これがどういうことかわかるか?
Sunを儲けさせる心配もないということがよくわかっただろう。
>>850
俺が代わって改めて聞こう。10年前にC/C++で作ったプログラムを
今正しく動かすことができるか?
0858デフォルトの名無しさん
2007/02/09(金) 01:37:14> でも1行目はあれかな
> C++って「C知らないヤツお断り」的な雰囲気があって嫌って意味なのかな
そうではないな。コンパイラの互換性が違いすぎること
仕様が乱立しすぎて、その乱立した仕様に従ったソフトウェアやライブラリが多すぎる
こと。それが問題。それにヘッダファイルの扱いも問題有りだ。
未だにグローバル変数を使う奴がいることも。
0859デフォルトの名無しさん
2007/02/09(金) 01:43:03意味が解らん。
演算子オーバーロードの副作用を防ぐために
Javaでは演算子オーバーロードが導入されていない。という意味だと思うが。
そもそも、Javaに演算子オーバーロードを入れるべきかどうか
という話はもう何年も前から語り尽くされている。他のJavaスレでも
そういう議論は散々あった。
少なくとも、C++と全く同じ仕様の演算子オーバーロードを
Javaに完全移植することだけはやってはならないことだ。
それだけはいえる。
Java5から登場したenum型もGenericsも『完全移植』しなかったから
うまく導入することができた。もしCのenum型そのまんまや、C++Templateの
仕様をそっくりそのままJavaにもってきたら、その言語はJavaではなくなってしまうだろう。
C#に退行し、果てはC++サイドに堕ちる。
0860デフォルトの名無しさん
2007/02/09(金) 01:46:18> >>844
> > だが、会社の経営陣がいきなり、そのプロジェクトで
> > 使われたプログラムを他社のあっちのソースコードと併合してくれと
> > いってきたときどうする?
> そんなありそうも無いことを心配してどうするよ。
> バカジャーねーの?
馬鹿ジャーねーのだって?
じゃあ、みずほ銀行の、異なる言語、COBOLやFortranが紛れた
あの異なる三つ基幹システムを統合したあの二重引き落とし事件は
なぜ起きたのか説明できるか?
Java開発では、他のプロジェクトで開発したソフトウェアをライブラリのように
統合して新たに製品開発するということは頻繁に起こっているぞ。
もしこれがC++だったら、とんでもないことになって
顧客からの信用を失っていたことだろう。
0861デフォルトの名無しさん
2007/02/09(金) 02:13:34かなり盲目とかいっておきながら
>>822では
むしろ演算子オーバーロードは使うこと少ないと書いてあるだろ。
演算子の乱立なんか進めていないだろ。
Javaに演算子オーバーロードなんて進めていないだろ。
なんで勝手に話ふくらませてんだよ。
Javaだってa=-(5+6);をa = new int(-1.times(5.plus(6)));なんてしないだろ。
5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。
でも
実際によく見かける演算子オーバーロードはcin,coutとか変なのだよな。
それと
演算子オーバーロードって前置インクリメントと後置インクリメントの
両方作らなきゃいけないし+つくったら+=も欲しくなるし
結局面倒くさいから最初興味があって遊ぶだけで作らないよなってことだよ。
0862デフォルトの名無しさん
2007/02/09(金) 03:55:290863デフォルトの名無しさん
2007/02/09(金) 04:01:56COBOLに罪無し。
0864デフォルトの名無しさん
2007/02/09(金) 05:42:24がprivateなのかprotectなのかpublicなのかを明示しなくても良いのに改めて驚いた
かつ、C++のprivateやprotectやpublicのラベルの便利さに感心した
ま、それで俺の意見としては、JAVAはJAVAで良いところも悪いところもあるC++も同様。
言語なんて、なにをするかによって、最適な言語を選ぶべきだから
ちなみにVBをちょっとかじったら、セミコロンを付けない仕様がきもく感じた。
でもVBでプログラミングをしてきた人にとってはセミコロンはきもく感じるだろう。
ついでにC#を勉強しだしたが、プロパティやインデクサに抵抗を感じた。
かつ、クラスを作るとき継承関係はclassの頭で宣言する形にC++に慣れた俺はびっくりした。
あとPerlは、もう、ビックリ。でもPerlでプログラミングを勉強したなら、C言語はわけわからんと思う。
ま、要はそれぞれ言語には、その言語を使う理由としての環境によるものだろうと思います。
だから、この言語をやったらこの言語はきもいって感じても、勉強していくうちに慣れていく。
そして、混乱しだす。
0865デフォルトの名無しさん
2007/02/09(金) 05:44:440866デフォルトの名無しさん
2007/02/09(金) 07:48:310867デフォルトの名無しさん
2007/02/09(金) 08:17:260868デフォルトの名無しさん
2007/02/09(金) 08:42:41アセンブリ言語の限界 < C++の限界 <<<<<<<< Javaの限界
0869デフォルトの名無しさん
2007/02/09(金) 08:45:170870デフォルトの名無しさん
2007/02/09(金) 08:45:40しょっぼっい感想だな。そんな表層的なことでグダグダいってるんじゃねーよ
個人で開発するなら、SchemeでもHaskellでもHSPでもすきなのを使えばいいんだよ
問題は大規模化、長期化だ。これはスケーリングの問題だ。
0871デフォルトの名無しさん
2007/02/09(金) 09:58:300872デフォルトの名無しさん
2007/02/09(金) 10:40:160873デフォルトの名無しさん
2007/02/09(金) 11:44:040874デフォルトの名無しさん
2007/02/09(金) 14:25:48> >>837 >>859
> かなり盲目とかいっておきながら
> >>822では
> むしろ演算子オーバーロードは使うこと少ないと書いてあるだろ。
そのくせ演算子オーバーロードをマンセーしている馬鹿は一体何なんだろうな。
> 演算子の乱立なんか進めていないだろ。
C++では容易に演算子オーバーロードを勧めることができるし、多くの演算子マンセーしてる奴は
副作用について何も考えていない。
開発コミュニティの統合や企業の吸収合併についてろくに考えていないことが良く分かる。
バブル時代で脳みそがとまってるんじゃないかと疑いたくなるね。
オープン化の波に逆行して溺れているジジイみたいだ。
> Javaに演算子オーバーロードなんて進めていないだろ。
> なんで勝手に話ふくらませてんだよ。
マンセーしているやつがいるからだろ。
> Javaだってa=-(5+6);をa = new int(-1.times(5.plus(6)));なんてしないだろ。
> 5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。
java.lath.BigIntegerとjava.math.BigDecimalを知らないのか。
Jakarata Commons Math のMatrixクラス、Complexクラスを知らないのか。
0875デフォルトの名無しさん
2007/02/09(金) 14:27:58> 俺はJAVAやってC++やって、再度JAVA勉強再開したらクラス内のメンバ
> がprivateなのかprotectなのかpublicなのかを明示しなくても良いのに改めて驚いた
> かつ、C++のprivateやprotectやpublicのラベルの便利さに感心した
そいつは釣りかね? それともタダの無知なのか?
『アジャイルソフトウェア開発の奥義』を読めばお前はいかに頭が悪い発言を
しているかがよくわかるぞ。
0876デフォルトの名無しさん
2007/02/09(金) 14:28:51C++ハゲ信者もどうかと思うけどね。
ザビエルみたいだ
0877デフォルトの名無しさん
2007/02/09(金) 14:35:33>両方作らなきゃいけないし+つくったら+=も欲しくなるし
まず operator+= を実装してからそれを利用して operator+ を実装するのが定石
MyNumber MyNumber::operator+(const MyNumber& rhs) const
{
MyNumber tmp(*this);
tmp += rhs;
return tmp;
}
0878デフォルトの名無しさん
2007/02/09(金) 15:52:41>なんで勝手に話ふくらませてんだよ。
病気なんだろ。
>5+6ぐらい自然なことなら演算子オーバーロードもいいかもしれなあってことだよ。
んー、でも自然に見えるのって、代数的なクラスくらいだよなあ。
>>874
>マンセーしているやつがいるからだろ。
じゃそいつに言えば?
0879デフォルトの名無しさん
2007/02/09(金) 16:56:11//MatrixOperator.java
package my.package.alg;
import my.pacage.Matrix
public algebra MatrixOperator{
//staticと書かなくてもstaticメソッド
//適宜命名可能な名前に置換(operatorにhashCode("+=")を付加したもの)
public void operator+=(Matrix dest,Mat rhs){
dest.add(rhs);
}
}
//Foo.java
package my.package;
import static my.package.alg.MatrixOprator.operator+=;
public class Foo{
public void bar(Matrix s,Matrix t){
//MatrixOperator.operator+=(s, t);に置換
s += t;
}
}
0880デフォルトの名無しさん
2007/02/09(金) 16:56:480881デフォルトの名無しさん
2007/02/09(金) 18:31:03operator +=からoperator +を作るのは定石だけど、
2つを定義するという点では861の主張がそう変わるものではないと思う。
まあBoost.Operatorsで多少楽はできるけど。
0882デフォルトの名無しさん
2007/02/09(金) 18:40:23Calculatable(名前テキトー)インタフェースとか作られるんかな
0883デフォルトの名無しさん
2007/02/09(金) 20:25:24したらもう駄目だけどな。(C++のstd::stringは可換じゃなかったっけw)
だが、,カンマ演算子とか再定義されたらもう他人にはコード読めないぞ。強力すぎるんだよ。
D&EによるとBjarne(読めない)は
cout < x, y, z;
なんてのをカンマをオーバーロードして実装しようとしていたらしいぞ。作者からしてこういう
センスゼロの真似をしようとするんだ。使用者の言語センスはマイナスだなw
Cと中途半端に互換性を保とうとしてわけわからん規格にしたのに、C99になって
完全に互換性がなくなったぜm9(^Д^)プギャーwwwww
0884デフォルトの名無しさん
2007/02/09(金) 21:16:25こってりとした濃いcoreが射るのはc++だけ
0885デフォルトの名無しさん
2007/02/09(金) 23:32:58これが大小比較だったらとっても素敵だと思った
0886デフォルトの名無しさん
2007/02/09(金) 23:36:26演算子多重定義ではないけれど、JavaのStringの+は可換なのか、知らなかった。
あと、D&Eのその節では直後に当時のC++ではまだカンマ演算子のオーバーロードが
できなかったと書いてある。
(そして当時積極的にカンマ演算子のオーバーロードを
導入しようとは思っていなかったという風に、個人的には感じる)
0887デフォルトの名無しさん
2007/02/09(金) 23:37:490888デフォルトの名無しさん
2007/02/10(土) 00:22:330889デフォルトの名無しさん
2007/02/10(土) 00:25:55コミュニティとか、開発者のレベルについてはノーコメント。
0890デフォルトの名無しさん
2007/02/10(土) 00:32:34C++でプログラミングしてるやつは頭がいいやつが多い
解っているのはそれだけだ。
0891デフォルトの名無しさん
2007/02/10(土) 00:34:250892デフォルトの名無しさん
2007/02/10(土) 00:36:070893デフォルトの名無しさん
2007/02/10(土) 00:38:11両方やってる人は?
0894デフォルトの名無しさん
2007/02/10(土) 00:54:10でも大規模開発になっても、かなり上手くスケーリングできると思う。
C++使いは頭がいいというより、BKをよく知ってるって人が多いなあ。
C++は現代的な言語のくせして落とし穴が多すぎるんだよ
0895デフォルトの名無しさん
2007/02/10(土) 00:56:45頭が悪い且つ頭がいい。
0896デフォルトの名無しさん
2007/02/10(土) 01:02:43両方やってる人というのはマルチリンガルだから、比較している頭の良さとは違う。
0897デフォルトの名無しさん
2007/02/10(土) 01:06:250898デフォルトの名無しさん
2007/02/10(土) 01:14:260899デフォルトの名無しさん
2007/02/10(土) 01:16:12頭のいい人と話しているときには頭がよい受け答えが出来て、
バカと話しているときにはバカみたいな話しか出来ない人って居るだろ?
JavaとC++はそんな関係。主に染まれば赤くなる。
0900デフォルトの名無しさん
2007/02/10(土) 01:23:55最近増えてきたC#信者について一言きぼんぬ
0901デフォルトの名無しさん
2007/02/10(土) 01:28:380902デフォルトの名無しさん
2007/02/10(土) 01:29:160903デフォルトの名無しさん
2007/02/10(土) 01:29:560904デフォルトの名無しさん
2007/02/10(土) 01:32:36.NET Frameworkすら使ってないのにましてC#なんて使っているものか。
0905デフォルトの名無しさん
2007/02/10(土) 01:33:440906デフォルトの名無しさん
2007/02/10(土) 01:34:300907デフォルトの名無しさん
2007/02/10(土) 01:34:59これに対する反論さ。
MS Office が C++ なら MS で固めたシステムなら C# が最強というわけでもない。
0908デフォルトの名無しさん
2007/02/10(土) 01:36:56OfficeそのものがC++で作られてると何?
0909デフォルトの名無しさん
2007/02/10(土) 01:38:53C# という選択肢が最強ではない、という意味。
MS Office を利用する側の話をしているのではない。
0910デフォルトの名無しさん
2007/02/10(土) 01:40:02人の話きけよ馬鹿
0911デフォルトの名無しさん
2007/02/10(土) 01:40:590912デフォルトの名無しさん
2007/02/10(土) 01:41:21君は1つの解釈に囚われていないか?
0913デフォルトの名無しさん
2007/02/10(土) 01:43:070914デフォルトの名無しさん
2007/02/10(土) 01:43:590915デフォルトの名無しさん
2007/02/10(土) 01:44:330916デフォルトの名無しさん
2007/02/10(土) 01:53:53少なくともOffice 2003のVBAは相変わらずVB6ベース。2007は知らない。
0917デフォルトの名無しさん
2007/02/10(土) 02:00:25> >>861
> >なんで勝手に話ふくらませてんだよ。
> 病気なんだろ。
こう煽っておきながら、
> >>874
> >マンセーしているやつがいるからだろ。
> じゃそいつに言えば?
なんだC++厨のこの無責任な発言。
匿名であることをいいことに反論ができない都合の悪い話は
自分がした発言であっても、他人が発言したことにして
そういう言い逃れかい。そんなうそをつくお前が病気だよ。
0918デフォルトの名無しさん
2007/02/10(土) 02:02:49で、その実装はStringの+演算子のように最初から定義されているものなのか、
それともC++とまったく同じようにユーザが自由に定義するものにするのか、
それとも機能限定版、型安全性版Template, Java Genericsのように
限定的な演算子オーバーロードをJavaに適用したいという話なのか?
具体例がないようでは、
JavaからJNI経由でC++使ってるのと変わらないだろう。
Javaに導入するうえでの具体例を出すべき
0919デフォルトの名無しさん
2007/02/10(土) 02:05:02それはimmutableオブジェクトに適用できないな。
不変性がないので却下。
0920デフォルトの名無しさん
2007/02/10(土) 02:05:34そんなものより、アノテーションでやってほしいな。
レス数が900を超えています。1000を超えると表示できなくなるよ。