Scala Days 2012

私はScalaが倧奜きです。私の愛のおかげもありたすが、私たちはプロゞェクトでこの蚀語を䜿甚しおいたす。それを曞くこずは倧きな喜びです。 数幎間、私はScala Daysを芋お、行くこずを考えたした。 圌らは昚幎カリフォルニアにいたした玠晎らしい堎所ですが、十分に遠く、私は行くこずができたせんでした。 同じ幎に、Scala Daysはロンドン4月17〜18日で開催されたした。これは玠晎らしい機䌚でした。ロンドンはスタンフォヌドよりもモスクワにずっず近いので、短い䌑暇を取っお行きたした。







以䞋は、私が埗たレポヌトのレビュヌず、写真を䜿甚したむベントの䞀般的な印象です。



Scala DaysはBarbicanで開催されたした。これは、䞻に芞術に関連する倚くの文化むベントが開催される倧きな建物です。











登録埌、小さなオヌプニングスピヌチがあり、その埌レポヌトが始たりたした。



ScalaTest、ScalaMock、SubCutを䜿甚したNirvanaの実甚的なテスト



Scalaのプログラミングの䜜者である Bill Winners 右はScalaTestに぀いお、BDDスタむルでテストを䜜成する方法、開発者ツヌルずの統合に぀いお説明したしたEclipseを䟋ずしお䜿甚したすが、IntelliJ IDEAで個人的に詊したしたが、すべおが非垞にレベルが高いです。



ディック・りォヌルは、ScalaのGoogle GuiceポヌトであるSubCutに぀いお話したした。 䜿甚方法ず䜿甚される甚語は完党に同じですが、Scalaのコヌドをよりクリヌンにするために改善が行われたした。 Guiceのように、クラスの名前およびオプションで識別子で実装をバむンドしたり、オブゞェクトの䜜成を完党に制埡する独自のプロバむダヌを䜜成したりできたす。 私が聞いた唯䞀のこずは、スコヌプの完党なサポヌトがないため、プロバむダヌを介しおスコヌプを゚ミュレヌトする必芁があるずいうこずです。







先物、オファヌ、ブロヌカヌずの䞊行プログラミング



Twitterのマリりス・゚リクセンは、同期プリミティブに぀いお話したした。 暙準的な「順次プロセスの通信」で開始し、基本オブゞェクトである同期ずチャネルに移動したした。



それらから、圌は先物ず玄束に移りたした。 簡単に蚀うず、Futureでは蚈算結果を返すこずができたすが、ただ存圚しないか、蚈算で゚ラヌが発生する可胜性があるずいう譊告がありたす。 ただし、このような「将来」の結果に基づいお、次の「将来」の結果を取埗する蚈算を䜜成するこずができたす。 ぀たり、コンポゞションがそれらに察しお定矩されおいるため、それらはモナドです。 Promiseはリバヌスオブゞェクトであり、クラむアントが実行される操䜜を呌び出すこずができたす。



圌が最埌に達したずき、圌はOffers and Brokersを思い出したした。「さお、Offerは玄束であり、BrokerはChannelです。それをTwitterで呌んでいたす」ず圌は蚀いたす。 GitHubでオヌプン゜ヌスぞのリンクを提䟛したした。







玄束された未来



前回のレポヌトで、マリりスはビクタヌ・クランが先物ず玄束に぀いおさらに語るだろうず䜕床も蚀及したした。



ビクタヌクランは、これらが非垞に䞀般的なオブゞェクトであり、これたでどのような方法でも暙準化されおいなかったずいう事実に぀いお話したした。Scala、Javafor Future、 akka、および圌が䜿甚した他のいく぀かのラむブラリに実装がありたす。 Scala 2.10には暙準のFutures / Promisesラむブラリscala.concurrentがあり、akkaは埐々に移行したす。 新しい暙準Futures / Promiseは誰にずっおも良いものであり、構成可胜であり、倚くの䟿利なメ゜ッドが定矩されおいたす。暙準ラむブラリにはサポヌトがありたす。







コヌヒヌブレむク



すべおの䌑憩ず昌食はトロピカルガヌデンで行われたした。 興味深い察話者を芋぀けたり、コヌヒヌを充電したり、ラップトップから登っおVPNで䜜業したり、ゞェンガのゲヌムをプレむしたりできたす。























クラりドでのHaskellに向けお



䌑憩の埌、Haskellの䜜成者であるSimon Peyton-Jonesが登堎したした。 SimonのスピヌチはScala自䜓に぀いおではなく、䞊列コンピュヌティングのための関数型プログラミングの利点に぀いおでした。 具䜓的には、サむモンは、プログラムをクラりド䞊で実行できるようにプログラムを線成する方法ず、これに必芁な蚀語ツヌルHaskellなどに぀いお話し、必芁な蚈算をさたざたなノヌドで自由に埪環させお実行できるようにしたした。 さらに、最初は゜ヌスコヌドをクラりドのすべおのノヌドに配眮する必芁はありたせん。 特に、圌は孊生のプロゞェクトを䟋ずしお挙げたした。圌のシステムは、倧量のデヌタを䜿甚しおHadoopにデプロむされた同様のシステムを远い越したした。







特に、サむモンのパフォヌマンスに付随する倧隒ぎに泚目したいず思いたす。 サむモンはステヌゞを駆け巡り、明瞭に衚珟し、圌の論文を明るい色で発衚し、時折、Haskellが䜕かよりRocksよりも優れおいおきれいだずコミュニティをからかいたした。 私は圌がこのような速床でこれをすべお䌝えるこずができる方法に心から驚きたした。 その衚珟のほんの䞀郚を賞賛する喜びをあなたに䞎えたす







楜しさず利益のための非同期および非ブロッキングScala



Brendan McAdams ScalaのMongoDBドラむバヌの䜜成者は、Nettyたたは玔粋なRaw NIOを䜿甚しお、非同期の非ブロッキング操䜜甚のコヌドを正しく蚘述する方法を、ドラむバヌを䟋ずしお䜿甚しお説明したした。 それずは別に、圌は機胜的なテクニックがコヌドの合理化ず゚ラヌ凊理にどのように圹立぀かを語った。







各リク゚ストのストリヌムをブロックするコヌドを曞くのはずおも悪いです







特殊な型クラスを介した汎甚数倀プログラミング



゚リック・オスハむムは、数字の操䜜に関する圌のラむブラリに぀いお話したした。そこでは、数孊の堎合ずたったく同じように、すべおの操䜜を泚文し、プロパティを遞択したした。 ぀たり、プログラムがそれを必芁ずする堎合、そのラむブラリヌを䜿甚しお、セミグルヌプ、リング、およびモノむドに到達でき、これらは別々のType Classに分離されたす。







軜量ポリタむプステヌゞングScalaのネストされたデヌタ䞊列化ぞの新しいアプロヌチ



同胞のアレクサンダヌ・スルサレンコは、DSL䞀般的には、あらゆるプログラムに適しおいたすを䜿甚しお、䜜業セクションナニット仕事のず䟝存関係の分析。 すべおを正しく理解しおいた堎合。







Scalaの非察称感芚



Scalaに぀いお曞いおいる私のお気に入りの著者の1人であるRunar Bjarnson  Apocalisp は、非察称レンズに関するTony Morrisの蚘事を䜜成したした。 非察称レンズは、玔粋に機胜的な蚀語ではすべおのオブゞェクトが䞍倉であるため、他のオブゞェクトのプロパティぞのアクセスたたは倉曎を提䟛するオブゞェクトです。 レンズは、ゲッタヌずセッタヌに䌌た2぀のメ゜ッドを定矩したす。



case class Lens[R,F] ( get: R => F set: (R,F) => R )
      
      





ここで、 Rはプロパティの読み取り元のオブゞェクトのタむプであり、 Fはこのプロパティ自䜓のタむプです。 Runarは、これらのレンズの構成をオブゞェクトぞの䞀連の倉曎ずしお衚瀺し、そのような耇雑な修正を転送し、より耇雑な操䜜を定矩するこずができ補品たたは「遞択」、他のオブゞェクトず操䜜を助けを借りお衚珟できるず蚀いたす。 最終的には、機胜的なクリヌンさず䞍倉性を維持しながら、プログラムはほが必須のスタむルで蚘述できるようになりたす。 レンズを操䜜するために、 レンズ付きコンパむラヌ甚の特別なプラグむンもありたす。これにより、蚀語の䞀郚ずしおレンズをすぐに䜿甚できたす。







ロンドンツアヌずディナヌ



スピヌチが終わったずき、私たちは有名な赀い二階建おバスでロンドン呚蟺の旅行を手配したした。 旅行の埌、私たちはリンカヌンの宿に連れお行かれたした。 コレクションのほずんどすべお







Bill Winnersは個人的にScalaでプログラミングを販売しおいたす。







時々倕食が䞭断され、マヌティンはスピヌカヌず聎衆、特にSkills Matterの䞻催者に感謝し、同様の䌚議で初めお12人が集たったこずに気付きたした:)







翌日は、マヌティン自身による䞀般報告で始たりたした。



Scalaはどこに行くのですか



Martin Oderskyは、Scala 2.10の新機胜先物/玄束、Scala自身のリフレクション/具䜓化、マクロ、倚くのコンパむラヌ最適化に぀いお述べたした。







焊点は反射/具䜓化ずマクロにありたした。 反射はパむのパむの圢で構築されたす:)各モゞュヌルは悪名高いケヌキパタヌンに基づいおいたす 。 1぀のパむはコンパむラのプログラムのモデル、2番目は衚瀺甚のミラヌ、䞀般的なコヌドは3番目のパむそれらの䞊に配眮され、最埌にこれらのパむの䞊に1぀の矎しいパむファサヌドがあり、これは䜿いやすく、基瀎ずなる実装の機胜を隠したすパむ。







マクロを䜿甚するず、 ASTプログラム自䜓にアクセスできたす。 ぀たり、リフレクションのように、メ゜ッドの本䜓を1行ず぀調べお、どのコヌドでどのコヌドが実行されおいるかを調べるこずができたす。 このような远加により、察話者の1人によればコンパむラヌの90がこれらのマクロに組み蟌たれ、カヌネルがクリアされ、すべおのツヌルでの各サポヌトの費甚のかかる開発なしで蚀語拡匵機胜を䜜成できるようになりたす。



Scala-IOの抂芁



Jess EysharはScalaのIOラむブラリを開発しおいたす。 圌のラむブラリには抜象セットが1぀あり、これは䟿利で初心者が混乱しないようにし、蚀語の衚珟力をより有効に掻甚したすが、パフォヌマンスに倚くの泚意を払いながら、コヌドは3000テストをチェックし、そのうち300テストがパフォヌマンスをテストしたす。 これに぀いお話すのは時期尚早ですが、将来的には圌のラむブラリがScalaでI / Oを敎理するための暙準ずなる可胜性があるので、詳しく芋おみるのは理にかなっおいたす。







バむナリ埩元力



Josh Suerethは、互換性を損なうこずなく叀いバヌゞョンの゜フトりェアで動䜜するようにラむブラリを䜜成および曎新する方法を説明したした。 コンパむル時にバむトコヌドに倉換される特性ずJavaで同等の特性に特に泚意が払われたした。







抜象化劥協案のリミックス



Nathan Hamblenは、将来的には高レベルの抜象化ず察話する必芁があるずいう考えに぀いおの考えを共有したした。同時に、䜎レベルのメカニズムにアクセスできるため、䜜業の最適化ず生産性の向䞊が可胜になりたす。 Nathanは、埓来のJavaサヌブレットを眮き換えるために、䌚瀟でフィルタヌなしのnettyを実装した経隓も共有したした。 凊理できるリク゚ストの数ず、応答時間の短瞮方法を瀺したした。







アフタヌパヌティヌ



それが終わるず、誰もが近くのパブに招埅されたした。 私たちは䌚議にロシアの参加者の䌚瀟にいたす、私たちは聞いたこずを話し合っおおり、さらなる協力の蚈画がなされおいたす







䌚議のビデオは、 http  //skillsmatter.com/event/scala/scala-days-2012で埐々に利甚可胜になりたす。 そのため、必芁な堎合でも、倱敗した堎合は、関心のあるレポヌトの衚瀺を開始できたす。



次回のScala Daysでお䌚いしたしょう 次回、再びペヌロッパで開催されるず玄束されたした。



All Articles