タグ

2016年9月20日のブックマーク (12件)

  • 関数型プログラミングはオブジェクト指向の正当な後継である - Qiita

    この記事の補足を書きました。併せてご覧いただけると幸いです。 「関数型プログラミングはオブジェクト指向の正当な後継である」がわからない理由 対象読者 この記事はオブジェクト指向設計を格的に学びドメイン駆動設計や責務駆動設計等を実践したことがある人々に「オブジェクト指向と関数型プログラミングの関係」を深く知ってもらうことを目的としています。これらの人々の中には手に馴染んだオブジェクト指向に未だに固執している人や、関数型プログラミングが気になってSwiftScalaを触り始めているがイマイチ関数型プログラミングの質が見えていない人も多いと思います。そうした人々が次の一歩を踏み出すキッカケになれば幸いです。 なぜこの記事を書こうと思ったのか? IT系の情報サイト等で「Haskellがすごい」という記事を見かけるようになってからもう10年近く経とうとしています。私自身もこれまでに何度か関数型

    関数型プログラミングはオブジェクト指向の正当な後継である - Qiita
  • なぜHaskellを学ぶと良いか - Qiita

    なぜこれを書くのか 私がQiitaに投稿した記事を見た方から、メールが届きました。 プログラミング言語のHaskellを勉強し始めたものの、難しくてやめようかと考えているそうです。 その気持ちも非常によく分かります。 すごいHが出版されてから年月も経ち、それなりに勉強しやすくなったとはいえ、お世辞にもHaskellを学ぶ環境が整っているとは言えません。 私はHaskellで製品開発をする会社を保守運用していたことがあり、また自分自身もHaskellでプログラムを書いています。 また、Haskellを普及させるべく、「こわくないHaskell入門」という記事を書いたこともあります。 これらの経験を踏まえ、この機会にあらためて「なぜHaskellを学ぶと良いか」についてまとめたいと思い立ちました。 Haskellについてまだよく知らない方が、入り口として読める内容を目的としているので、できる

    なぜHaskellを学ぶと良いか - Qiita
  • Clojure vs Haskell

    gist.md Haskell vs Clojure The JSON data is in the following format { "Genesis": { "1": { "1": "In the beginning..." , "2": "..." }, "2": { ... } }, "Exodus": { ... }, ... } In JSON, keys aren't ordered and must be strings. The goal is to parse the JSON file, order everything correctly (which means parsing the keys into integers), and produce an array that looks like this: [ ("Genesis", 1, 1, "In

    Clojure vs Haskell
  • Haskell Day 2016 #hsd2016 まとめ

    Haskell Day 2016 http://connpass.com/event/37892/ のハッシュタグ #hsd2016 がつけられた発言のまとめです。ほかのイベントのハッシュタグとかぶってしまったようなので、それらしきものは避けています。 あと、トレンド系のbotっぽい発言も。

    Haskell Day 2016 #hsd2016 まとめ
  • 【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め

    Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経

    【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め
  • JavaOne 2016が開幕、JDK 9ではJava Shellが登場予定。JavaOne 2016

    JavaOne 2016が開幕、JDK 9ではJava Shellが登場予定。JavaOne 2016 サンフランシスコでJavaの年次イベント「JavaOne 2016」が開幕しました。基調講演に登場したJava Platform Groupチーフアーキテクト、Mark Reinhold氏は、来年3月にリリース予定のJDK 9の新機能を紹介。 さらにJDK 9の先に実現されるであろう新機能についても触れました。その内容をダイジェストで紹介します。 インタラクティブな「JShell」 Java Platform Groupチーフアーキテクト、Mark Reinhold氏。

    JavaOne 2016が開幕、JDK 9ではJava Shellが登場予定。JavaOne 2016
  • 大規模開発でオブジェクト指向は本当に変更に強いのか?

    オブジェクト指向(OOP)は変更に強い、と一般に言われます。 カプセル化とかいろいろな機能のおかげで、あとから仕様変更する場合などに他に影響が及びにくい、と。 しかし実際には銀行や官公庁の大規模プロジェクトで、システム開発の失敗や遅延、頓挫などをしばしば見聞きします。 それらはおそらくJavaでOOPで開発されているはずです。 失敗や遅延などする理由は、発注元の曖昧な要求や後出しの仕様変更の多発などが想像されます。 でもOOPであれば、少なくとも仕様変更には強いはず。 なのに、なぜ失敗しまくるのでしょうか? なぜ仕様変更のたびに膨大な影響範囲の調査・テストが必要なのか? ある一部分の機能を変更するだけなら、そのクラスの単体テストだけでいいんじゃないの? 「OOPは設計が大事。最初の設計がダメだった」という意見が想定されます。 しかし数百億円・数千億円規模のプロジェクトに関わるレベルの人です

    大規模開発でオブジェクト指向は本当に変更に強いのか?
  • Gitを実践的に使うために参考にすべき記事20選

    チームで開発を行うときにGitのスキルは必要不可欠なものとなってきています。以前、Git初心者向けにスライドをまとめたものを紹介しましたが、今回はGitGitHub)をさらに活用するために参考にしたい記事を紹介します。 この記事は以下のような方におすすめです! ・ブランチをどのように運用すれば良いのかわからない。 ・コミットメッセージの書き方にいつも悩んでしまう。 ・issueやPull Requestをもっとうまく活用したい。 ・Git�やGitHubに関する便利なテクニックを知りたい。 ・間違ってコミットしてしまったけど対処法がわからない。 今回は、運用編、コミットメッセージ編、issue編、Pull Request編、テクニック編、問題解決編と5つの内容で分類してみました。実践的な読み応えのある記事ばかりなので、ぜひ参考にしてみてください。 運用編 中の人に聞いたGitHub fl

    Gitを実践的に使うために参考にすべき記事20選
  • iOS開発者の堤修一さんにインタビュー(前編):カヤックで「使えないおじさん」からエースエンジニアになるまで - THE BRIDGE(ザ・ブリッジ)

    ベルリンのコワーキングスペースBetahausにてインタビューに応じていただいた堤修一さん 世界中を旅しながら仕事をするというヒップなライフスタイルを実践するハッカー集団「Hacker Paradise」に先日ベルリンでインタビューをしましたが、そこで日人として唯一参加されていたのが、iOS開発者の堤修一さんです。堤さんといえば、日のiOS開発者界隈では有名な方。ブログで積極的にiOS開発関係のことを発信するブロガーとして、またGitHub上で積極的に活動されていることでもよく知られています。 最近は「海外仕事をしたい」モードだという堤さんに、これまでのキャリアの話を色々と伺ってみました。話を聞けば聞くほど「以前の職場カヤックには、一度面接で落ちている」「カヤックに入ったはいいものの最初はぜんぜん使いものにならない窓際エンジニアだった」などという意外な過去が次々と明らかに。 インタビ

    iOS開発者の堤修一さんにインタビュー(前編):カヤックで「使えないおじさん」からエースエンジニアになるまで - THE BRIDGE(ザ・ブリッジ)
  • Haskellの父Simon PJ氏、GHCの内部実装について日本のHaskellerと激論を交わす

    プログラミング言語Haskellの処理系「GHC」(Glasgow Haskell Compiler)のメイン開発者であり「Haskellの父」と呼ばれるSimon Peyton Jones(Simon PJ)氏(現在の所属は米マイクロソフトリサーチ)が2016年9月17日に来日し、東京で開催されたイベント「Haskell Day 2016」で講演した。このイベントにはHaskellに興味がある、あるいは業務で利用しているといった100人以上の技術者が参加しており、同氏はそうした技術者とGHCの内部実装や最適化について熱い議論を交わした(同イベントに関するTwitterの発言)。 同氏は下も履いていない裸足で、常に大きな身振りで熱弁をふるった。参加者が黙って聞いていると「質問はないのか」と催促。途中からは参加者から活発に質問が飛び出すようになり、2時間たっぷり熱い議論が繰り広げられた

    Haskellの父Simon PJ氏、GHCの内部実装について日本のHaskellerと激論を交わす
  • GoogleのQUICプロトコル:TCPからUDPへWebを移行する | POSTD

    QUIC(Quick UDP Internet Connections)プロトコルは、TCPではなくUDPをベースとして開発された、全く新しいWeb向けのプロトコルです。 (冗談で) TCP/2 と呼ぶ人までいます。 私がQUICについて知ったのは数週間前のことです。 SysCast Podcastcurlとlibcurlについてのエピソード を聞いていた時でした。 QUICプロトコルの当に面白い点は、UDPへの移行というところだと思います。 現在、Webの伝送プロトコルは、信頼性を確保するため、TCP上に構築されています。このTCP接続を開始するためには、 3wayハンドシェイク が行われています。つまりこれは、接続を開始するたびにラウンドトリップ (ネットワークパケットの往復) が追加されるということであり、新たな接続先に対し大幅な遅延を生じさせているのです。 (出典: UDPを介

    GoogleのQUICプロトコル:TCPからUDPへWebを移行する | POSTD
  • Haskell チュートリアル (Haskell Day 2016) - Qiita

    agenda 演習時間を使ってチューターに質問して下さい。 事前準備 チューターの自己紹介 Haskellの基 演習 I/Oアクション 演習 Turtleを使ったShellプログラミング 演習 問題が解けたら、 演習問題の回答例 も参照してみて下さい。 Haskellとは 普通のプログラミング言語 他の言語で書ける全てのプログラムは書くことができる 一方で、特徴的な側面もある Haskellの特徴 純粋関数型言語 強力な型推論 遅延評価 関数型言語とは 全てを式で表す プログラムの実行 = 式の評価 副作用のある式を評価すると副作用が起こる 手続き型との違い 手続き型の言語では、1行目を実行し、2行目を実行する。

    Haskell チュートリアル (Haskell Day 2016) - Qiita
    yu_dotnet2004
    yu_dotnet2004 2016/09/20
    Haskellerがどうやってコードを組み立てるのか分かって、すごく勉強になった。