人間が型だけ書けば実装を意識しないでもよくなる未来
型って「どういうことをしてほしいか」っていう 要件 の役割を持ってて、
一方で実装って「どうやってその要件を実現するか」っていう 具体的な手順 の役割を持ってますよね。
ところで仕事ができる人って、「こういうことやりたいな〜って思ってるんだけど〜」って伝えると、
「あ、それなら具体的にこういうやり方をすると良さそうですね〜」って自分で考えて提案して実行してくれてめちゃくちゃ助かるじゃないですか。
そしたら、プログラムの世界でも同じで、要件 (型) だけ書いたら 具体的な手順 (実装) を自動で導出してくれる未来が来たら嬉しい感じがしませんか?
ざんね〜ん! 未来ではなくそれは現代のお話でした〜! 1
type MyApi = "books" :> Get '[JSON] [Book] -- GET /books
:<|> "books" :> ReqBody Book :> Post '[JSON] Book -- POST /books
myApi :: Proxy MyApi
myApi = Proxy
getAllBooks :: Manager -> BaseUrl -> ExceptT String IO [Book]
postNewBook :: Book -> Manager -> BaseUrl -> ExceptT String IO Book
-- 'client' allows you to produce operations to query an API from a client.
(getAllBooks :<|> postNewBook) = client myApi
Haskell の servant-client は上記のように型を書くだけで、
実際に何かのWeb APIに対してリクエストを投げてその結果をパージングしてくれる関数の実装が自動で生成されます。
もう、「型推論が進化したら人間は型を意識しないでいいようになる」なんてあほなこと言っていい時代じゃないんですね!
-
文脈読めないマウンティングゴリラがウンコ投げてて臭いので補足しとくけど、僕も「人間が実装を完全に書かないでいい未来」なんて来るとは思ってないよ ↩
Author And Source
この問題について(人間が型だけ書けば実装を意識しないでもよくなる未来), 我々は、より多くの情報をここで見つけました https://qiita.com/arowM/items/b92075627ddb4ad92d1e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .