分享一位影響業界的巨人,RxJava的設計者 —— Erik Meijer

前言

本人在接觸RxJava以後,因爲被其獨特的優雅之處深深吸引,便自發的瞭解一些背後的歷史(考據狂本質),在瞭解以後十分想爲你們分享這位站在RxJava背後的巨人 —— Erik Meijer。php

注:因爲本文大多數連接來自Youtube。並且還沒有發現國內有轉載。因此幾乎有所視頻可能都須要FQ觀看。敬請諒解。所謂 Knowledge comes to those who crave for it. 我相信對你們來講這應該不是問題。程序員

背景

Erik Meijer 出生於庫拉索,是一位資深學院派計算機科學家,同時也是一位企業家,和扎染愛好者面試

早先在微軟做爲軟件架構師,對.Net,F#等有重要貢獻。包括LINQ,Volta,Rx.Net等等。至今Rx擴展到多種語言,尤爲以RxJava和RxJs最爲出名。編程

同時 Erik Meijer 做爲堅決的學院派,參與設計Haskell。而且也參與推出一系列課程好比:C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals架構

在離職微軟後,與facebook合做參與設計 Hack (php的一種方言)。與Google合做參與設計 Dart。機器學習

目前 Erik Meijer 在Facebook就任,而他的主要工做就是咱們討論的不少的人工智能。主要課題就是如何訓練模型來自動生成代碼。異步

Erik Meijer 與 Rx

Erik 本人其實也出過許多的Rx解釋視頻。其中最爲精華的我認爲即是這個Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) 。我也是第一次從這個視頻接觸到 Rx 是從IEnumerable(Java 中的Iterable)來推導出。也第一次從這個視頻瞭解到 Erik 是如何將 Monad 的概念應用到 Rx 中,來使其更增強大。 從 IEmuerableIObservable 一個簡單的對偶操做。極大的簡化了異步的複雜度。Erik 本人也稱 Rx 是異步的表現形式(representation of asynchrony)。 對這個概念的具體解釋,能夠參考個人以前一篇文章:一篇不太同樣的RxJava介紹 async

Erik Meijer 與 Machine learning

我第一次據說到Erik Meijer 是有些驚訝卻又以爲理所固然的。 驚訝是我我的覺得他會繼續在軟件架構或者函數式編程上繼續深造。而理所固然的是,他本人做爲數學的狂熱愛好者,作以數學爲主的機器學習就顯得十分理所應當。ide

我第一次接觸是在Erik Meijer 在一次 Kotlin Conference 中提到:KotlinConf 2017 - My Life as a Tech Transfer Monad by Erik Meijer 。 雖然他在研究機器學習相關,他本人並不認同「人工智能」這一說法。他認爲這只是對數據的一個通常化(Generalization),而且用的是18世紀的古老數學:貝葉斯機率公式。 視頻中,他有講到在咱們目前的軟件工程世界(Software 1.0)。程序員喝咖啡(吃零食),寫代碼。而在新世界(Software 2.0)。咱們給機器輸入數據,經過機器學習來生成模型。 函數式編程

軟件
而模型與代碼的重要區別就是:代碼是精確的,例如一個 Boolean類型就必定只會是 truefalse。而模型是不肯定的,他的結果多是一個機率分佈,例如80%可能性下是true,20%是false。 另外一個區別是代碼是離散的,模型是連續的。
代碼與模型的區別
並且也由此引出了,貝葉斯公式其實其實是一個Monad(真的是萬物皆可Monad)。
Monad
至此,後面Erik講到他將經過幾率編程(probabilistic programming)的方式,來對模型進行訓練。從而實現機器本身生成代碼而不是由人來進行手寫代碼。 因爲本人對機器學習,機率編程等等概念並非十分了解。因此也不在此多作解釋。有興趣的同窗能夠觀看視頻嘗試理解一下。 視頻中也提到了他們團隊目前的一些目標:

Goals

看了以後以爲若是真的在短時間內作成功,可能我這種程序員就要面試「失業」了吧。固然,擁抱將來和變化的咱們,也不該該恐懼。而是更加期待這一天的到來。

總結

短短一篇博文確定不能概述Erik對業界的貢獻。並且做爲一個普通程序員,我對這種級別的大神的瞭解只能停留在Conference和一些視頻,文獻等等資料中。僅僅是冰山一角。可是他的種種貢獻對我能夠說是改變了人生軌跡。從一個過程式編程程序員慢慢走向了函數式的世界。 也從RxJava等等中瞭解了數學以及範疇論中一些的一些理論。更在以後的講座中瞭解機率編程這種目前來看十分超前的概念。 他在視頻中說到:

若是糾結於Framework諸如 Vue和React 哪一個更好,Flutter和Kotlin哪一個更該學這種問題,咱們無疑是自掘墳墓。

這句話也是我想分享給你們這篇的主要緣由。雖然生活不易,可是若是想在技術上有一些建樹,就不要把眼界放的太窄,只糾結於眼前這些區別不大而又收穫甚微的細節。

最後

雖然此次其實也是因爲某位粉絲強烈催更下寫出。但本着寫文章就不要水的原則。也是糾結了好久的主題。但願你們看完這篇會有所收穫而不會以爲浪費了人生中寶貴的5分鐘。

相關文章
相關標籤/搜索