C# vs Java どっちが好き? その4©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/03/23(金) 06:53:27.25ID:fAaAwLdW
前スレ
C# vs Java どっちが好きか教えてくれ3
http://mevius.5ch.net/test/read.cgi/tech/1490027947

関連スレ
Java/C++ VS C# どっちが好きか教えて
http://mevius.5ch.net/test/read.cgi/tech/1490027947
C++ Builder vs C# どっちがいいか教えて
http://echo.2ch.net/test/read.cgi/tech/1459000291/
304デフォルトの名無しさん
垢版 |
2018/04/08(日) 19:53:55.06ID:g9QpbpX8
確実に分かった事が一つある
ここの人たちはハイレベルだな
俺にはチンプンカンプンだもんね
305デフォルトの名無しさん
垢版 |
2018/04/08(日) 21:34:05.79ID:R2AG9wiQ
>>302
C#自体の設計自体はOS依存じゃなく
設計時から切り離されてるよ
2018/04/08(日) 21:51:51.67ID:3hKhfzCU
Javaの教祖マーティン・ファウラー御大、名著「リファクタリング」第2版にJavaではなくJavascript を採用してしまうwwwww
https://martinfowler.com/articles/201803-refactoring-2nd-ed.html
307デフォルトの名無しさん
垢版 |
2018/04/08(日) 22:03:20.88ID:lHtMncRP
ファウラー本人にも葛藤があったようだけど今リファクタリングすべきコードで溢れてるのはJavaScriptだから仕方ない
2018/04/08(日) 22:22:07.73ID:6bK6CrsC
>>301
https://docs.microsoft.com/ja-jp/previous-versions/visualstudio/visual-studio-2008/77859s1t%28v=vs.90%29

パスやファイル名を表す文字列を引数にとるルーチンでは、UNIX 互換のパス デリミタを使用します。
UNIX ではパス デリミタとしてスラッシュ (/) しか使用できませんが、
Win32 オペレーティング システムは円記号 (\) とスラッシュ (/) の両方を使用できます。
2018/04/08(日) 22:22:42.49ID:xGLPvfyA
>>303
関係大有りだと思うけど。また、fake news だ。
2018/04/08(日) 22:24:24.40ID:xGLPvfyA
>>305
それを言うなら、CもC++も設計自体は、OS依存じゃなく設計時
から切り離されてる。数十年前から。
2018/04/08(日) 23:46:12.40ID:aXntJlTD
>>299
普通にOSSのライブラリを使えばok
https://blogs.msdn.microsoft.com/dotnet/2017/01/19/net-core-image-processing/

C#の標準ライブラリがマルチプラットフォームに機能不足なのは確かだけどね
GUIのマルチプラットフォームはElectronでいいかなーという気分
クソ重いけど
312デフォルトの名無しさん
垢版 |
2018/04/08(日) 23:55:13.06ID:R2AG9wiQ
>>310
それ意味違うわ
2018/04/09(月) 00:12:14.18ID:cLZZUAsH
>>312
再コンパイルすればC++だって、ほとんど全ての環境にも互換性があるのは同じ。
互換ライブラリさえあれば、マルチプラットフォームなのはC++だって当たり前。
2018/04/09(月) 01:56:25.43ID:msbZsOvU
そういうわけでlinuxで動いていたバイナリをwindowsに持ってきたのだ
315デフォルトの名無しさん
垢版 |
2018/04/09(月) 06:16:48.20ID:ADjt/9Tk
>>314
バイナリが動くのCPUが同じ系列の間だけね
2018/04/09(月) 11:30:58.31ID:dDqA630c
>>302
x 対応している
o 対応を謳っているが品質が低く、テストしてデバッグして修正しないと動かない
2018/04/09(月) 11:35:48.51ID:94M/ERa8
んなわきゃあない
2018/04/09(月) 11:37:54.62ID:dDqA630c
>>317
>>293
2018/04/09(月) 12:02:35.01ID:94M/ERa8
絶対嘘
マイクソソフトお得意のFUDだろ
2018/04/09(月) 13:08:19.82ID:oK9yQ0Ek
Java は GUI を使った場合でも結構簡単に、他のプラットフォームでも動く。
実際、ブラウザ上のアプレットでも実行できるようになっているわけで、
現実に動く確率はとても高い。

C#は、上で挙がっている例のように、そもそも動くように設計すらされてない。
2018/04/09(月) 13:13:34.19ID:oK9yQ0Ek
>>319
実際、MSのFUDだと思う。現実にJavaは、1つのソースでどのプラットフォーム
でもちゃんと動くし。C#は、そもそも最初から動かない事がはっきりしてる。
2018/04/09(月) 13:23:20.78ID:oK9yQ0Ek
>>311
Electron も wasm も、ベースが JS だから、マルチスレッドの対応がとても弱い。
例えば、何か重たい処理を実行中に「中止ボタン」付きのダイアログを出して、
中止できるようにすると言うようなことが、やりにくい。スレッドの中断自体は
terminate メソッドで可能だが、「クリーンアップ処理」ができない。

Win32だと、他スレッドへ「例外」を送ることができるので、catch すれば、
クリーンアップ処理できるはず。
2018/04/09(月) 13:28:44.39ID:oK9yQ0Ek
Javaも、Win32と同様に他スレッドに例外を throw できるらしいので、
今言ったようなことをすることができるはず。つまり、重い処理を
ワーカー・スレッドで実行しているときに、メインスレッドの「中断」ボタン
を押すと、処理を中断して、なおかつ、クリーンアップ処理もできるはず。
しかも、中断ボタンが押されたかをワーカースレッドでは、ポーリング
する必要はないので効率はとても良い(Win32/MFCでもその点は同じだが)。

Electron/wasm/JS などではそれができない。
2018/04/09(月) 13:30:06.95ID:IhScfRbR
>>320
でもJREを入れなきゃ動かないし
世間的にJREはウィルス扱いだからなぁ
2018/04/09(月) 14:15:56.52ID:ml5ntbUH
workerはpostMessage on messageできるだろ
2018/04/09(月) 14:23:34.70ID:oK9yQ0Ek
>>325
それで、WokerThread は、イベントが発生したことを知ることまではできると思う。
しかし、そのイベント・ハンドらの中から、例外を throw しても、WorkerThread
の本体では、catch する事はできないはず。だから、クリーンアップ処理を行う
のは難しい。
2018/04/09(月) 14:32:58.01ID:zAEr4q/W
swingとか久しぶりに聞いたなw
あんなもんでGUI作ってる人まだいるのか
2018/04/09(月) 15:16:54.10ID:ml5ntbUH
>>326
メッセージングでやりゃいいんだよ。
なんかtrycatchが目的化してない?
goで導入しなかった理由読んだ?
そういう考え方もあんだよ。
2018/04/09(月) 15:32:10.22ID:oK9yQ0Ek
>>328
WorkerThread が、例えば、4重のforループの中で、データを処理していたとして、
MainThreadで「中止」ボタンが押されたので、WorkerThreadを中断したい場合、
どうやってWorkerThread が作成した中途半端なデータをクリーンアップするの。

あと、少し論点がずれるけど(最初考えてなかったので)、
char *pBuf = new char [・・・]; (1)
・・・
delete pBuf; // (2)
pBuf = NULL; // (3)
みたいなものは、必ずセットで行わなくてはならないことが多い。
しかし、(2),(3)の間に「中止」のイベントが入ってきた場合、困った問題が起きそう。
2018/04/09(月) 15:36:02.71ID:oK9yQ0Ek
昔だったら、for文の先頭あたりに、1バイトのint3命令を書き込むという
コード書き換えテクニックを使う手もあったけど、LLVMとwasmでは
そんなこともできそうにないし。
2018/04/09(月) 15:41:15.88ID:oK9yQ0Ek
誤:delete pBuf; // (2)
正:delete [] pBuf; // (2)
2018/04/09(月) 16:09:47.94ID:oK9yQ0Ek
(2)と(3)の間で (中止)例外を throw されても困るので、(中止)例外
が throw されてもいい場所に、ある関数check_stop()を書くようにしておいて、
check_stop() は、瞬間的に中止要求があるかどうかを示す flag をポーリングして、
もし「1」になっていたら、例外を throw するようにすればいいかな。

[WokerThread]
try {
 for (・・・) {
   check_stop();
  ・・・
 }
}
catch(ストップ例外) {
 /*クリーンアップ処理*/
}

volatile BOOL  g_bStop = FALSE;
void check_stop()
{
 if ( g_bStop ) {
  throw ストップ例外;
 }
}

見たいな感じ。
2018/04/09(月) 18:26:49.92ID:mPtK6yuR
>>320
アプレットwww
334デフォルトの名無しさん
垢版 |
2018/04/09(月) 19:43:39.03ID:dDqA630c
>>319
キミはいつJavaを始めたんだね? Javaのバグの歴史ぐらい勉強してほしい。
歴史を捏造するようになったら、もうそれはネトウヨだ。
335デフォルトの名無しさん
垢版 |
2018/04/09(月) 20:47:18.13ID:YgZ7vT9e
>>334
今のJavaの話じゃないの?
336デフォルトの名無しさん
垢版 |
2018/04/09(月) 21:10:54.39ID:dDqA630c
>>335
フフフ、今まで碌にテストしないでリリースしていたJava開発者がこれからは急に心を入れ替えてテストするというのかい?
2018/04/09(月) 21:14:06.06ID:GcHmgXrk
>>334
朝鮮ネトウヨの歴史捏造は酷いからな
歴史をコリエイトと言われているくらい嘘と願望だからな
338デフォルトの名無しさん
垢版 |
2018/04/09(月) 21:19:48.40ID:xfuEg0jA
>>337
貴方は優秀なエンジニアだ思うんだけど話がそれがち〜
2018/04/09(月) 21:43:56.15ID:NyS/oHv5
>>320
JavaならAWTを使ってどこでも動くGUIアプリ作れるよ

AWTは糞だよ、これからはSwingだよ

Swingも糞だよ、これからはJavaFXだよ

JavaFXを標準から外すよ、AWTやSwingも将来の保証はないよ

この迷走ぶりに対する感想は?
340デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:03:34.99ID:YgZ7vT9e
>>336
今のJavaの話なの?
341デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:04:29.58ID:YgZ7vT9e
>>339
Swing最強伝説
342デフォルトの名無しさん
垢版 |
2018/04/09(月) 22:27:57.57ID:8KwflKKi
ご自慢のGUIを移植できずにcoreから切り離しちゃうよりはマシじゃね?
2018/04/09(月) 22:35:48.49ID:bzBuSR+E
>>342
ざまあwww
2018/04/09(月) 23:14:03.65ID:K8XlSY1+
GUIはわりと独立してるから仕事の影響それほどない
気に入るまで作り直してくれ
345デフォルトの名無しさん
垢版 |
2018/04/09(月) 23:25:28.62ID:lxMrkC5q
メソッドのout 出力はわかった
refがわからん・・・
必死にググってるんだけど
ピンとこないわ エロゲで例えてくれ
2018/04/09(月) 23:26:13.99ID:dNOi8uH1
SwingとかC#と比べたらうんこ過ぎてあんなばっちいもの2度と触りたくないと思ったけど。
2018/04/09(月) 23:30:09.91ID:dNOi8uH1
つかC#よりGUI書きやすい言語ってこの世に存在しないだろ?
2018/04/10(火) 00:00:48.22ID:qmeNshHp
デルファイ
2018/04/10(火) 00:54:35.50ID:tPeGzwzY
>>346-347
は嘘。fake newsなので気をつけよう。
350デフォルトの名無しさん
垢版 |
2018/04/10(火) 01:06:57.11ID:kcsk9GK3
このスレはJava信者がちょっとイタすぎるな。無知すぎる。
2018/04/10(火) 01:11:07.05ID:tPeGzwzY
若造は、最初に見たものをそのまま信じるから困る。
MSのセールストークや「噂」をそのまま信じてる。
2018/04/10(火) 01:13:36.48ID:kcsk9GK3
Java案件=デスマーチと言われるぐらいだからな。多くの若者が鬱になって逃げ出した。
なぜプロジェクトの途中にPGの募集があるのかよく考えよう。
2018/04/10(火) 01:23:00.03ID:tPeGzwzY
デスマーチと言語の良し悪しは直接関係ない。
2018/04/10(火) 01:24:48.08ID:kcsk9GK3
Oracleと仕事すれば分かる。
2018/04/10(火) 01:28:32.30ID:2lsRrdCr
他スレッドの停止はキャンセルトークンなりのパターン使えばいいじゃん
javaアプレットが許されるなら.netはSilverLightやwasmへの変換ができると自慢すればよいのかw?
2018/04/10(火) 01:28:56.51ID:tPeGzwzY
欝の人は、自分と関係した事柄をなんでも悪く取る傾向がある。だから、昔から
ある言語(Java)は悪口書かれやすい。新しく出た言語(C#)は実経験を伴わない
から良いことばかり書かれやすい。
2018/04/10(火) 02:18:42.29ID:EkwdTqcn
>>356
新しく出た言語?いつの時代の話をしてるんだ?
2018/04/10(火) 02:26:16.75ID:2mdp8lT5
>>356
おじいちゃん今年は2018年ですよ
2018/04/10(火) 02:45:47.70ID:RZ6G2IFo
C#の登場は18年前なんですけどwww
2018/04/10(火) 02:52:00.74ID:tPeGzwzY
ちゅうか、Javaは出たときから急激に人気が出たのに対し、C#は実は余り人気が
ないのかも。なんかごった煮で、センスが悪いからかな。
2018/04/10(火) 02:58:29.63ID:tPeGzwzY
Javaは古くからあって、C#は大分新しいと思ってたけど、そうでもなかったんだな。
この感覚の差はどこから来てるんだろう。
2018/04/10(火) 03:05:47.25ID:tPeGzwzY
https://teratail.com/questions/44042

>アプリ開発未経験者が Xamarin を使うのは適していないと考えます。
>Xamarin は基本的に、 Android API, iOS の API を C# から呼び出せるようにしたものなので、両者について知らないとアプリ開発はできません。
>画面までも同一コードで開発できるとされる Xamarin.Forms についても、同一コードで開発できる範囲はとても狭いので、それを超える要件に対応するには、Android や iOS の知識が必要になります。

Java
Android SDK
iOS SDK
Mac
Xcode
C#
.NET Framework
Mono (.NET Framework のオープンソース実装)
Visual Studio
Xamarin.Android
Xamarin.iOS
Xamarin.Forms

これだけの知識をゼロから並行して身に付けていくのは、否定はしませんが効率は悪いと思います。
まずは Java での Androidアプリ開発や、Swift での iOSアプリ開発を経験されて、慣れてから Xamarin の使用を検討することをお薦めします。

また Xamarin でアプリ開発する際のトラブルシューティングの方法について書きました。

Xamarin を使用したアプリ開発での、問題解決の方法 - Qiita
トラブルシュートにも手間がかかるわけですが、このデメリットがメリットを上回ると判断されるなら、Xamarin は使わない方がよいでしょう。
2018/04/10(火) 03:06:25.08ID:tPeGzwzY
まとめると Windows と Visual Studio で Android と iOS アプリの開発を始める場合、以下の知識が必要になります。

Java
Android SDK
iOS SDK
Mac
Xcode
C#
.NET Framework
Mono (.NET Framework のオープンソース実装)
Visual Studio
Xamarin.Android
Xamarin.iOS
Xamarin.Forms
2018/04/10(火) 03:10:51.82ID:tPeGzwzY
C#:「多くのOSで動くが、動くと言うだけで、ほとんど互換性がない」
Java:「同一コードが(再コンパイルもなしに)そのまま動く確率が99.9%」
(C++:「互換ライブラリさえあれば、ソースは共通化可能」)
2018/04/10(火) 03:12:53.69ID:ztQ0o2pM
海外勢がreact nativeに逃げたのも納得w
日本人は真面目だなぁ
2018/04/10(火) 03:22:26.79ID:EkwdTqcn
Java奴隷必死過ぎ
2018/04/10(火) 03:26:35.58ID:3Be3Tst3
>>361
お前が何も新しいことを学んでいないということ
368デフォルトの名無しさん
垢版 |
2018/04/10(火) 03:40:28.58ID:SZEihiTO
まあMS自身が自社製品にC#殆ど使ってない時点でお察しくださいとしか
2018/04/10(火) 05:01:05.43ID:lX4QJIUN
マルチプラットフォームのデスクトップアプリなら
kotlin+javafxが今のとこベストだと思ってる
なんだかんだでどこでも動くし

だが最近のmsは嫌いじゃないしoracle大嫌いだから
xamarinには期待してる
javafxどうなっちゃうんだろ・・・
2018/04/10(火) 08:05:26.35ID:/ovRPQdo
>>368
具体的に
2018/04/10(火) 08:34:25.83ID:YXxfbkbo
>>368
Process Explorerで.netプロセスを色付き表示する設定にしてみろ
お前が思ってる以上に.net使われてるから
2018/04/10(火) 09:07:32.94ID:tPeGzwzY
>>371
Win7で、調べてみたら、Microsoft Expression Web 4 だけが .Net アプリで、
他は全て違っていた。

そして、Expression Web 4 だけが起動が超遅くて、起動後の動作も遅い。
C++、Win32/MFC で作られたソフトでこんな遅いソフトは、まず存在していない。
2018/04/10(火) 09:11:11.73ID:PDf4Bz6d
mono入れたらC#で作ったexe、linuxで問題なく動いたけどな
374デフォルトの名無しさん
垢版 |
2018/04/10(火) 09:31:06.18ID:mZLbPqZa
今時linuxで動く必要ってある?
サーバー以外で使ってる人なんている?
2018/04/10(火) 10:12:47.59ID:tPeGzwzY
Wineが実用段階になってきたので、Winから一気に Linux や ChromeOS なんかに
デスクトップOSが移る可能性がある。その際、Linuxで動くことは重要になる。
2018/04/10(火) 12:30:00.93ID:/ovRPQdo
>>375
ねーよ
2018/04/10(火) 13:10:11.66ID:6CkCb20Q
wineて20年前の技術じゃん。
そんなの使ってるのお前だけ。
みんなゲストOSとしてインストールしてるよ
2018/04/10(火) 13:15:22.44ID:RZ6G2IFo
ID:tPeGzwzY
古代からタイムスリップしてきた人か
2018/04/10(火) 14:19:35.11ID:2lsRrdCr
むしろ、個人のPCでJavaで作られてる有名GUIアプリって何があったっけ
IntelliJ系とかBurpとかは思いつくが

最近はwindbgの外側がC#製になって驚いた
2018/04/10(火) 15:23:02.19ID:tPeGzwzY
新しいものがいいと思ってる馬鹿がいるな。
2018/04/10(火) 15:40:33.23ID:tPeGzwzY
WindowsとLinuxのどっちをゲストOSとしてインストールしてるのか知らんが、
Windowsの支配から離れる、というのが21世紀の人類の目標だ。
人類の多くがその目標に向かっているので多勢に無勢で、Windowsはやがて
終わるだろう。それが目前に迫っている可能性がある。

それに、古いと言うが、Wineの改良は活発に行われている。最近特にVersionUp
が激しいらしい。
2018/04/10(火) 15:46:33.72ID:StgHiS11
ブログでやれ
2018/04/10(火) 15:47:29.52ID:tPeGzwzY
やなこった。
ここでやられると噂が広まって困るもんな、あんたは。
2018/04/10(火) 15:55:29.79ID:tPeGzwzY
ありとあらゆる手段を使って、Windowsは潰される。見ておれ。
2018/04/10(火) 16:03:09.38ID:6CkCb20Q
Windowsの支配から離れる!(シェア90%超)
2018/04/10(火) 16:08:22.27ID:tPeGzwzY
人類をなめるなよ
387デフォルトの名無しさん
垢版 |
2018/04/10(火) 19:10:25.96ID:nvaLZrjf
>>386
前から思ってたんだけど貴方、面白いよね
2018/04/10(火) 19:23:57.49ID:yqUlN2aZ
>>353
関係あるとは認めるんだな
2018/04/10(火) 20:06:25.33ID:kJ0TCzdS
左翼系の人アンチWindowsみたいなの好きだよね
2018/04/10(火) 21:27:55.80ID:BJhrOITA
LinuxがWindowsを倒せるほど良いOSなら
何でGoogleはLinuxカーネルを使わない新OSの開発なんてやってるんだ?ww
391デフォルトの名無しさん
垢版 |
2018/04/10(火) 21:43:15.04ID:hokyRN3e
GPLが嫌なんじゃ?
392デフォルトの名無しさん
垢版 |
2018/04/10(火) 22:19:30.72ID:aYxA2ggB
>>390
googleの新OSは携帯デバイス向けの軽量なものなんじゃ
linuxは汎用のOSである分専用に設計したOSより無駄が多いんじゃよ
googleが新OSを開発してるからといってlinuxが悪いわけじゃない
googleは自社のインフラにlinuxの独自のディストリを使ってたりするしね
何事にも向き不向きがあるんじゃよ
2018/04/10(火) 23:16:00.16ID:UwJTOpqx
ぐう正論
394デフォルトの名無しさん
垢版 |
2018/04/11(水) 01:38:07.52ID:VkA16vdY
初耳だよ。googleは何専用のOSの設計なんだ?
2018/04/11(水) 08:43:17.83ID:a/H3/quZ
>>375
Wineがどうこう言ってる時点で「LinuxにはGUIアプリの資産がろくにない」って白状してるようなものだろ
「何事にも向き不向きがある」んだからLinuxとWindowsも使い分ければいいだけの事
2018/04/11(水) 08:58:58.95ID:pE+Ulocc
>>391
これ
2018/04/11(水) 09:00:57.83ID:pE+Ulocc
Wine/ネイティブよりもMono/.NETの方が安定じゃない?
2018/04/11(水) 15:54:21.94ID:VkA16vdY
GPLが嫌ならAppleやソニーみたいにBSDパクればいいだろう。
399デフォルトの名無しさん
垢版 |
2018/04/11(水) 20:36:48.87ID:hGFjMUTH
BSDライセンスも嫌なんじゃ?
2018/04/12(木) 00:37:51.77ID:84pKEb7m
やっとvarがコンパイルできた
2018/04/12(木) 08:34:54.02ID:9JjN+/h3
>>397
結論から言うと、WineとMonoは、11年の時間差があるのに加えて、
WineにおけるMSのコーレルへの投資と、MonoにおけるMSのXamarine買収
が対応し、開発の鈍化、停滞へと導かれる。

Wine は、開始から25年たった現在、ようやく実用段階に達したが、
まだポツポツとした不具合がなかなか取れない。

一方、Mono は、開始から 14年しか経ってない。だから、後11年経っても、
ようやく現在のWine程度にしかならないと予想される。

Wineプロジェクトは、初期、互換性がなかなか高まらなかったが、
コーレル(など)の支援によって一時的に状況は好転した。しかし、MS の
コーレルへの大規模投資により、支援は中止。

同じことが、MSによる Xamarine買収にも当てはまる。つまり、今後、
Monoの開発は、鈍化する。


[Wine]
開始: 1993年 (ネットニュース上で創始)
MSによるCorelへの投資: 2000/10, 2002/10
0.9(最初のβ版): 2005/10/25

[Mono]
1.0: 2004/06/03
2.6: 2009/12/15
Xamarin: 2011/05
MSによるXamarine買収: 2016/02/24
2018/04/12(木) 08:51:42.88ID:KEFsrVI9
windows1.0  1985
linux 1.0    1994
Android 1.0  2008

開発開始時期に一体何の意味があることやら・・・
2018/04/12(木) 08:55:36.57ID:YFMtDdV/
MSが投資したアップルは割とピンピンしてるし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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