![](https://cdn-ak-scissors.b.st-hatena.com/image/square/159d476bfbdd8d4f55638cf07b4601f74935310d/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9bnVsbCVFNSVBRSU4OSVFNSU4NSVBOCVFMyU4MSVBNyVFMyU4MSVBQSVFMyU4MSU4NCVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSVBRiVFMyU4MCU4MSVFMyU4MiU4MiVFMyU4MSVBRiVFMyU4MiU4NCVFMyU4MyVBQyVFMyU4MiVBQyVFMyU4MiVCNyVFMyU4MyVCQyVFOCVBOCU4MCVFOCVBQSU5RSVFMyU4MSVBMCZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9Yzc3NGY0ZGMzMmFjZjJjMzFjOTAxOTg2ZDVlNzUwMTY%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrb2hlciZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Y2E4ZTI5ZjNiMGVmZDMwMGM5ZDVjMjZjZTVkNWVkZTA%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gUW9uY2VwdCwgSW5jLg%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D6082ccf02139a62bec3a6e6629c2eb57)
エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント134件
- 注目コメント
- 新着コメント
![n314 n314](https://cdn.profile-image.st-hatena.com/users/n314/profile.png)
n314
DBのnot null制約を見て型を変えるプログラムをHaskellで作ったり、フォームのrequiredを見て型を変えるプログラムをScalaで作ったけど、実用までいかなかった。PHPerだからHackを使えばいいのかな。
![Dai_Kamijo Dai_Kamijo](https://cdn.profile-image.st-hatena.com/users/Dai_Kamijo/profile.png)
Dai_Kamijo
null安全でない言語は、もはやレガシー言語だ by @koher on @Qiita — 上條 大 (@Dai_Kamijo) December 29, 2016 from Twitter https://twitter.com/Dai_Kamijo December 29, 2016 at 04:11PM via IFTTT
![keisuke_ohta keisuke_ohta](https://cdn.profile-image.st-hatena.com/users/keisuke_ohta/profile.png)
keisuke_ohta
ニュース&utm_campaign=e2476aa459-Qiita_newsletter_234_11_16_2016&utm_medium=email&utm_term=0_e44feaa081-e2476aa459-32884417 iPhoneから送信
![kmizushima kmizushima](https://cdn.profile-image.st-hatena.com/users/kmizushima/profile.png)
kmizushima
細かい部分で言いたい部分はもうちょっとあるけど、使ったこともなさそうな人が不便になるとか結構的外れな反発してるブコメがたくさんあるなあ。これ、動的型ディスりでもあるのでその辺で反発するのはわかるが。
![te2u te2u](https://cdn.profile-image.st-hatena.com/users/te2u/profile.png)
te2u
調べてみたけど、今のところnullを許容しない型が定義できる、というぐらいの認識。そうすることで避けられる問題はあると思う。ただ、nullによる問題がそれで解決できるのは懐疑的。あ、nullの乱用を避ける仕組なのか。
![mactkg mactkg](https://cdn.profile-image.st-hatena.com/users/mactkg/profile.png)
mactkg
とりあえずnullチェックでエラー回避しちゃお〜。という人はこういう仕組みがあっても良いコードは書けない気が。それ以外の人が得するはず。レガシー言語だというのは建前であって、あんまり真に受けてもなあ…。
![naga_sawa naga_sawa](https://cdn.profile-image.st-hatena.com/users/naga_sawa/profile.png)
naga_sawa
null がくるかもって部分と絶対にnullにならんと保証できる部分とを明示的に示したいではある/非nullが保証されるならnullチェック省けるわけで全ての型にnullableとunnullableな表現があればいい?
![UhoNiceGuy UhoNiceGuy](https://cdn.profile-image.st-hatena.com/users/UhoNiceGuy/profile.png)
UhoNiceGuy
途中のScalaの人と同じで、変数にnull入れるなという思想なのでnull安全と言われると付け焼き刃に感じる。Maybe IntはNothingが入るIntではなくてIntが入るMaybeだよ。
![meg_nakagami meg_nakagami](https://cdn.profile-image.st-hatena.com/users/meg_nakagami/profile.png)
meg_nakagami
Nullである可能性をチェックすべきで、言語がある程度それをサポートしてくれても『よくわからんけどコンパイラに怒られるからNullじゃないってことにしとく』的なコードはかける。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
いまの話題をアプリでチェック!
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
null安全でない言語は、もはやレガシー言語だ - Qiita
これらは、表中の﹁リプレース対象言語﹂に挙げたように、多くのメジャー言語に対する代替手段でもあり...
これらは、表中の﹁リプレース対象言語﹂に挙げたように、多くのメジャー言語に対する代替手段でもあります。 Java の代わりには Kotlin や Ceylon が、 JavaScript には TypeScript や Flow が、 Objective-C には Swift が、そして PHP には Hack があります。 Python は自身に null 安全 を取り込みました。 Crystal は直接 Ruby と連携して使えるわけではありませんが、 Ruby 風の null 安全 な言語です。 Rust は C++ の代替を目指して開発され、 Firefox の一部で C++ のコードを置き換えるのに使われています [^100] 。 null が引き起こしてきた数々の問題を考えると、僕は、 null 安全 はGC︵やその他の安全なメモリ管理手法︶に匹敵するプログラミング言語の進
2016/11/07 リンク