回答編集履歴
3
d
answer
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
> 開発系の業務に就くことになったのですが,会社からはC#で書くように指示されています.自分はPythonに関しては割とかける方だと思うのですが,C#は初めてです.そこでなのですが,C#でコードを書くメリットを教えて欲しいです.
|
4
4
|
|
5
5
|
Python はあくまでスクリプト言語であり、exe 形式で動かす1つのソフトウェアを作成するのには向いていないと思います。
|
6
|
-
Pyinstaller がありますが、Python
|
6
|
+
Python の exe 化は Pyinstaller がありますが、Python インタプリタと使用ライブラリを全部まとめたものになるので、バイナリサイズが他の言語で開発した場合に比べ、非常に大きくなります。
|
7
7
|
|
8
|
-
特に Windows で中規模以上の GUI アプリケーションを開発する場合は C# のほうが優れています。Python も tkinter といった GUI ライブラリ
|
8
|
+
特に Windows で中規模以上の GUI アプリケーションを開発する場合は C# のほうが優れています。Python も tkinter といった GUI ライブラリがありますが、小規模な GUI アプリを作るのを目的としたもので、中規模以上の GUI アプリケーションを開発する場合は機能的に不十分です。
|
9
9
|
|
10
10
|
> よく挙げられるデメリットとしてPythonは遅いというのが挙げられますが,Cythonなどを駆使すればC#に匹敵する速度になるとは思います.(C#じゃないと間に合わない位の速度を要求される場面は現実的にあるのでしょうか?)
|
11
11
|
|
@@ -15,6 +15,9 @@
|
|
15
15
|
|
16
16
|
> 業務としては,コードの中身を見られたくないのでexeファイル形式で納品することになっているそうなのですが,PyarmorやPyinstallerを用いれば比較的容易に難読化,exe化できると思っています.
|
17
17
|
|
18
|
+
難読化を重視するのであれば、機械語にコンパイルされる C++ で開発したほうがよいです。
|
19
|
+
以前、C# で開発したことがありますが、逆コンパイルするソフトでコードの中身が見れました。
|
20
|
+
|
18
21
|
> これらの知識はあるという条件を満たした上で,果たして新しくC#を学習し,C#で開発を行うメリットがあるのか教えていただければ幸いです.
|
19
22
|
|
20
23
|
スクリプト言語以外の C#、Java または C++ のどれかを学んでおくことは十分価値があると思います。
|
2
d
answer
CHANGED
@@ -26,6 +26,7 @@
|
|
26
26
|
Python
|
27
27
|
* Web アプリケーション (言語より Web フレームワークの選定が第一)
|
28
28
|
* 機械学習、画像処理を試す場合 (機械学習や、画像認識を使うアプリとして開発するなら、C++ を使う場合が多い)
|
29
|
+
* アプリにするほどではない処理を実行する場合
|
29
30
|
|
30
31
|
C#
|
31
32
|
* Windows 上で exe 形式で動かすアプリケーション (とくに GUI アプリケーション)
|
1
d
answer
CHANGED
@@ -17,4 +17,15 @@
|
|
17
17
|
|
18
18
|
> これらの知識はあるという条件を満たした上で,果たして新しくC#を学習し,C#で開発を行うメリットがあるのか教えていただければ幸いです.
|
19
19
|
|
20
|
-
スクリプト言語以外の C#、Java または C++ のどれかを学んでおくことは十分価値があると思います。
|
20
|
+
スクリプト言語以外の C#、Java または C++ のどれかを学んでおくことは十分価値があると思います。
|
21
|
+
|
22
|
+
## まとめ
|
23
|
+
|
24
|
+
C# と Python を比較した場合のユースケース
|
25
|
+
|
26
|
+
Python
|
27
|
+
* Web アプリケーション (言語より Web フレームワークの選定が第一)
|
28
|
+
* 機械学習、画像処理を試す場合 (機械学習や、画像認識を使うアプリとして開発するなら、C++ を使う場合が多い)
|
29
|
+
|
30
|
+
C#
|
31
|
+
* Windows 上で exe 形式で動かすアプリケーション (とくに GUI アプリケーション)
|