質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Scala

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

2125閲覧

フリーツールとしてダウンロードするファイルの容量はどれくらいまで許容できる?

SaburomaruJiro

総合スコア12

Scala

ScalaはJava仮想マシンで動作を行うオブジェクト指向型プログラミング言語の1つです。静的型付けの関数型言語で、コンパイルエラーの検出に強みがあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/01/29 05:08

編集2017/01/29 05:42

普段はJavaでフリーのPC向けツールを作成して配布しています。
最近Scalaという言語について触り始め、
Javaの時と同じように実行可能jarとして配布したいと考えているのですが、
Scalaでは実行可能jarにScalaのライブラリを同封しないといけないので
どうしてもファイル容量が大きくなってしまいます。

Javaのみで作成した実行可能jarで大きくても1.5MBくらいだったのにたいして
Scalaでためしに作ったHelloWorldレベルのGUIツールで20MB超えてしまいます。
proguardなどを利用すれば軽量化できるなどの話もあるのですが、
まだそのあたりは勉強中でよくわかっていません。

個人的にはJavaよりもScalaのほうがプログラムを書く身としては好きなのですが、
単体のツールとして配布するにはサイズが大きくなってしまうのが悩みです。
他の言語で作成することも考えたのですが、
個人的にはJavaかScalaのどちらかをこれからも使っていきたいです。

そこで質問なのですが、
フリーの便利ツールとしてネットからダウンロードする際に
どれくらいのファイルサイズまでなら許容できるでしょうか?
一般のPCユーザとしての視点からみて、
ただの便利ツールのファイルサイズが20MB超えというのは
やはり大きすぎるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

月並みな回答ですが、物の良さや使っている技術とトレードオフです。
有名モダンエディタの例としてAtomとSublimeのリンクを用意しました。

同じような動きをするこの2つのエディタはファイルサイズにして10倍もの開きがあります。
まず、Atomは元AtomShellと呼ばれるElectronの仕組み(Node,Webkitなど)がまるまる入っており、
Scalaで動作させる為に様々なライブラリを同梱している質問者さんと同じような立ち位置です。

対してネイティブでコンパイルされたSublimeは超軽いですね。
では、ユーザーはどちらを選ぶのでしょうか?
結論から言えばSublimeとAtomはほぼ互角です。

その理由は色々考えられますが、
根本的な問題としてこれらのツールのファイル重量自体はあまり重視される項目ではないからです。
HDDやSSDに保存して、何時でも使える価値があればなんでも良いですからね。

ファイルサイズが1MB以下と超軽くても、メモリをゴリゴリ使って無限ループするようなバグがいくつも混ざっているプログラム使いたくありません。
100MB超えるようなプログラムでも、不具合が少なく、こまめにバージョンアップされてすぐに不具合がなくなるようなプログラムを使いたいですね。


ハローワールドを書くのに20MB?Electronを内包したら似たような状況にすぐなります。
ハードウェアの仕組みはどんどん良くなる以上、多少のファイルサイズには目をつむる代わりに、
可読性がよく、速く良いものをリリースされるScala等の言語は台頭してくるかと思います。

それ以降の機能の盛り込みは同じペースで行われるので、
Javaで20MBのプログラムなれば、Scalaでは40MB程度と目立たなくなってくるんじゃないですかね?


質問に答えてなかったですね。

どれくらいのファイルサイズまでなら許容できるでしょうか?

HDDはテラバイト当たり前、SSDでも256GBが当たり前のご時世なので100MBや200MBでブーブー言う人は居ないでしょう。
下記、一般人としての目線でアプリを評価しました。

そこらのフリーで作った方のプログラムは100MB前後が気になるラインじゃないかと思います。
Chrome(200MB)、Vagrant(175MB)クラス級の需要がある大型ソフトなら300MB~1GB程度までは許容されると思います。

ゲームはまた特殊で、画像や音声が入るとまた飛躍的にファイルサイズが肥大化しますね。
ユーザーもまぁしゃあないと妥協しているので、ゲーム次第ですが10GB程度までなら許容されます。

投稿2017/01/29 07:26

編集2017/01/29 07:44
miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SaburomaruJiro

2017/01/29 08:02

回答ありがとうございます。 技術とトレードオフ、というのは意識していませんでしたが 確かにjavaよりもscalaのほうがメンテはしやすいですし、開発速度も速いと思います。 より品質の良いものが提供できるなら、容量の増加はたいした問題ではないような気がしてきました。 メンテのしやすいscalaをこれからも勉強しつつ趣味に使っていきたいと思います。 容量についても回答いただけて、とても参考になりました。 ありがとうございます。
guest

0

(どうしてもOS非依存にしたいとか、あるいはAndroidアプリを作るのなら全く別ですが)Java系の言語をクライアントアプリに使うこと自体、今の時代には向いていないのではないかと思います。

Javaアプレットも事実上終息していて、JREのインストール率も減っていますので、そういう状況でも入れたければ、数十MBあるJREを入れなければならなくなってしまいます。

投稿2017/01/29 05:31

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SaburomaruJiro

2017/01/29 06:03

回答ありがとうございます。 マルチプラットフォームで且つ言語としてそれなりに使い慣れている、ということで javaを使っているのですが、やはりクライアントアプリ向きではないですよね・・・。 jreのインストール率が減っているというのは全然知りませんでした。 最近のpcは標準でjavaがインストールされてるとばかり思ってたのですが、 もしインストールされてないとなると、実行可能jar + jre で 余計ユーザの負担になってしまいそうですね。 やはり各プラットフォームに向いている言語ないしGUIツールキットを使って クロスコンパイルして配布する以外ファイルサイズの軽量化は難しいのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問