- コンパイル手順の中で、Scala は Java 関連のものをどのようにコンパイルしますか?
Scala は Java をコンパイルしません。クラスのAPIがどうなるかを理解するのに十分なほどJavaについて知っていますが、それだけです。
Java コンパイラで Java ファイルをコンパイルする必要があります。
- .scala の最終的なバイトコードは Java の .class ファイルと同じですか?
はい。Scala は有効な .class ファイルを生成します。ただし、そのファイルを Java コードに変換することはできません。これは、有効なクラス ファイルは、Java が許可しない、または表現できないものを許可するためです。
- Oracle による Sun の買収により、JVM も Oracle に属しますか?
「その」JVM はありません。多くの既存の JVM があり、実際、Oracle には独自の JVM がありました。もちろん、Sun の JVM は今や Oracle のものです。
- いつか JVM がプロプライエタリなソフトウェアを手に入れたら、それは Scala にも影響を与えますか?
常に多くのプロプライエタリ JVM があり、そのうちの 1 つが Oracle のものです。
架空の「最悪のケース」のシナリオを考えてみましょう。世界中のすべての JVM がライセンス (有料) 製品になるか、存在しなくなります。もちろん、Scala は引き続き Dalvik VM で実行できますが、それも有料になるか、存在しなくなったと仮定しましょう。
この場合、Scala は引き続き存在する可能性がありますが、Scala でコンパイルされたプログラムを実行できるようにするには料金を支払う必要があります。実際、Scala は JVM プログラムであるため、コンパイラーを使用するためにさえ料金を支払う必要があります。
あるいは、Scala を他のターゲット プラットフォームに分岐させることもできます。現在、Scala にはそのような取り組みがありますが、それらをプロダクション グレードにするというプレッシャーはまったくありません。必要に応じて、それは行われます。