Java、Groovy、および Scala の評価を完了しました。
私が考慮した要因は次のとおりです。読みやすさ、精度
知りたい要素: パフォーマンス、統合の容易さ
BigDecimal レベルの精度が必要でした。
ここに私の結果があります:
ジャワ
void someOp()
{
BigDecimal del_theta_1 = toDec(6);
BigDecimal del_theta_2 = toDec(2);
BigDecimal del_theta_m = toDec(0);
del_theta_m = abs(del_theta_1.subtract(del_theta_2))
.divide(log(del_theta_1.divide(del_theta_2)));
}
グルーヴィー
void someOp()
{
def del_theta_1 = 6.0
def del_theta_2 = 2.0
def del_theta_m = 0.0
del_theta_m = Math.abs(del_theta_1 - del_theta_2) / Math.log(del_theta_1 / del_theta_2);
}
スカラ
def other(){
var del_theta_1 = toDec(6);
var del_theta_2 = toDec(2);
var del_theta_m = toDec(0);
del_theta_m = (
abs(del_theta_1 - del_theta_2)
/ log(del_theta_1 / del_theta_2)
)
}
Java と Scala では静的インポートを使用したことに注意してください。
Java:
長所: Java
短所: 演算子のオーバーロードがない (多くのメソッド)、かろうじて読み取り/コード化可能
Groovy:
長所: デフォルトの BigDecimal は目に見えるタイピングがないことを意味し、すべての演算 (除算を含む) に対する BigDecimal のサポートは驚くほど少ない
短所: 別の言語を学ぶ必要がある
Scala:
長所: BigDecimal の演算子のオーバーロードがあります
短所: 除算による驚くべき動作 (Decimal128 で修正)、別の学習言語