セキュアでバグの発生しにくい言語の条件
条件 | Scala | Ocaml | Haskell | Rust | Haxe | Ceylon | C | Go | Julia | Elixir | Elm | Nim | Oz | kotlin | Crystal | Hack |
静的型付けである | ● | ● | ● | ● | ● | ● | △ | ● | ✘ | ✘ | ● | ● | ● | ● | ||
型推論がある | △ | ● | ● | ● | ● | ● | ✗ | △ | ● | |||||||
暗黙の型変換がない | ✗ | ● | ● | ● | ● | ✗ | ● | ● | ||||||||
ジェネリックプログラミングをサポートしている | ● | ● | ● | ● | ● | ● | ✗ | ✗ | ● | |||||||
デフォルトで変数にnullを代入できない | ✗ | ● | ● | ● | ✗ | ● | ✗ | ● | ● | |||||||
変数がない、もしくは定数の宣言が変数の宣言より簡単に書ける(短く書ける) | ✗ | ● | ● | ● | ✗ | ● | ✗ | ✗ | ✗ | |||||||
デフォルトでクラス変数&メンバ関数はprotectedまたはprivete相当 | ✗ | ✗ | ✗ | ● | ● | ● | ✗ | ● | ✗ | |||||||
switch,match文でbreakを使わない(デフォルトでフォールスルーしない) | ● | ● | ● | ● | ● | ● | ✗ | ● | ● |
- Rust
- Ocaml/Haskell
- Haxe (Flash Playerで動作させる必要があるなら)
- Kotlin(JVMを使う必要があるなら)
- Julia
- Nim
- Flow
最新コメント