近日,Reddit 上有一篇帖子:您對無代碼數據科學有何見解?發帖者稱,本身曾花了不少時間反對「無代碼」,可是最近他在考慮:「若是不能擊敗它們(無代碼),請加入它們」。不少開發者也在帖子下說出了本身的見解,並給出理由。程序員
最近 GPT-3 的出現,展現了其強大的、對包括代碼在內的語言的處理能力;MIT 聯合英特爾等推出代碼類似性平臺等事件,也再次將「無代碼」話題推到開發者面前。今天借 Reddit 這篇帖子,整理支持和反對的主要觀點,藉以呈現開發界對無代碼開發的見解。算法
什麼是無代碼數據科學
無代碼數據科學,直白來講,就是不用經過編寫代碼來完成一些數據科學工做。編程
數據科學的定義並無達成固定共識,比較流行的一個說法是它是跨學科領域的概念,通常包括機器學習、數據挖掘、大數據相關理論和應用。具體可能同時涉及計算機科學、數學、統計、信息可視化、圖形設計、以及業務層面的操做。如機器學習領域開發者,會爲數據科學研究數據分析的方法,並建立算法。機器學習
所以,以往作數據科學工做須要比較高的進入門檻。貝爾實驗室在上世紀80年代左右,專門開發了一門語言來作這些開發——R 語言就是爲作數據探索,統計分析、計算、做圖等專門開發的。模塊化
就像發帖者最開始說的:(數據科學)分析人員的主要語言是 R 和 Python。但許多「無代碼」工具,已經擴展到了「數據科學」的研究領域。工具
能作到無代碼數據科學分析的工具備不少,包括機器學習工具,如 BigML、scikit-learn;數據分析工具,如 Alteryx 和 KNIME;數據可視化工具 Power BI 和 Tableau 等等。oop
機器學習類工具主要經過內置的模型,算法,參數分析數據。BigML 支持原始數據加載,內部也有免費的數據集和模型可以使用。scikit-learn 是由數據科學家 David Cournapeau 在2007 年發起的一個開源項目,用語數據挖掘和數據分析,基本功能主要被分爲六大部分:分類,迴歸,聚類,數據降維,模型選擇和數據預處理。這類工具相較還有必定的使用難度。性能
一些專門的數據分析工具和平臺,更關注使用者能夠一站解決業務問題。德國康斯坦茨大學2004年開發開源分析工具 KNIME 時,目標是建立一個模塊化,高度可擴展和開放的數據處理平臺,從而輕鬆集成不一樣的數據加載,處理,轉換,分析和可視化探索模塊,而沒必要關注任何特定的應用領域。KNIME 容許用戶直觀地建立數據流(或管道),有選擇地執行一些或全部分析步驟,而後檢查結果,模型和交互式視圖。2011年註冊成立的 Alteryx 公司,其數據分析平臺 Alteryx 的使用更簡單——拖拽式操做。Alteryx 稱可讓每一個人經過其自動化工做完成數據科學的工做。學習
此外還有主要解決可視化的「無代碼」工具。 Tableau 一樣支持拖拽式操做,即把數據拖放到數字「畫布」上,就能建立各類圖表,快速分析、可視化數據信息。開發工具
上述雖對這些工做作了分類,但實際上它們的功能很大部分是重合的,只是各有側重。好比 BigML 也有可視化工具,Alteryx 內部也包含數據分析的模型算法,一些可視化工具也支持數據抓取等等。這些軟件爲想要跳過寫代碼,直接分析數據的公司和人員提供了多個選擇。與之相似的新工具、新平臺也在不斷出現。
專業分析者早前很看好無代碼數據科學。Gartner 2017年預測,2020年前,公民數據學者(citizen data scientist)所完成的高級分析將在數量上和價值上超越數據科學家。很不幸,這個結果彷佛還沒到來。可是,無代碼開發工具也在不斷髮展,它已經使得許多開發者改變了本身的態度,好比開頭提到的 Reddit 發帖者。
反對的聲音
幾乎全部的開發者都有理由反對無代碼開發。「做爲具備良好計算機科學背景的工程師,我一直將這些工具視爲行業中的不良影響者」,這是發帖者反對的出發點之一。靠寫代碼爲生的工程師們,爲什麼要去接受無代碼工具?
更況且對一些開發者來講,無代碼工具還沒有成熟,並不十分好用——這也是它最爲詬病的一點。好比沒法適當擴展、沒法維護、若是想要自定義一些功能,仍然須要寫代碼或是其餘額外操縱等等。好比說 scikit-learn 不支持深度學習和強化學習;有些商業化分析軟件須要屢次購買。
另外一個技術擔心是,機器學習的模型是否存在偏見與不足,進而影響結果。這也是人工智能領域自己的問題,即便用人工建立的訓練的數據的 AI 系統,老是會受到人類錯誤假設的限制,最好的證據的是各類人臉識別、AI 分類分析系統帶有歧視性。爲了使 AI 達到真正的超人類性能,必須容許 AI 進行本身的實驗,並將其結論置於高於人類結論之上。包括 GPT 系統,是基於人類眼中,經過數學定義認爲好的文章,進行優化、猜想等活動。
那麼這些工具可能會成爲:容許人們作錯事的工具。
只有一小部分數據科學家使用無代碼工具進行操做,而這些數據科學家每每對他們正在構建和維護的內容沒有深入瞭解。
更現實的考慮是,「無代碼」工具會限制招聘池,形成公司與技術人員的綁定。
我喜歡我目前的工做,可是最近咱們將被迫在項目開發中使用 Alteryx,這可能會成爲我開始找新工做的主要緣由之一。
許多開發者認爲,當然如一些無代碼或是低代碼的自動化工具更容易上手操做,可是這也會致使對編程、使用更高級的工具,作更復雜開發的熟練程度下降,換工做的選擇就會更小。就比如開手動擋的人能夠開自動擋,但最初就開自動擋想換去開手動擋就須要時間。
前文還提到,數據科學的概念並無固定。所以有人提出,無代碼解決方案的「分析師」角色,並不能替代數據科學家。分析是將問題拆解成更小的部分,以幫助快速瞭解總體或系統的某些發展方向,有時僅僅是專家對文檔的審查和對事實的闡述。分析師可能完成前80%的工做。可是實際公司須要的數據科學家,要比分析師更成熟,他們能夠提供更多的參考系和更新穎的東西,完成某項任務最後的20%。這個理由,就比如人們對許多機器學習的吐槽:產品(經理)都不知道產品的需求在哪,機器能知道?
支持的理由
首先,隨着時間的流逝,無代碼工具正愈來愈強大。雖然有人吐槽這些工具的性能,但事實是不少公司和我的已經用這些工具作了不少:
2008年,在 Hadoop 中使用 MapReduce 計算中位數很困難,須要專業程序員。今天,即便是 ML 也能夠經過拖放操做完成。
出節省開支的目的,公司可能也會選擇使用自動化工具來完成一些數據工做,畢竟一位精通 R/Paython 的工程師薪水不低:
我能夠教別人使用 PowerBI,並在45分鐘的課程結束後產生商業價值。通過一週的培訓,他們將在提供價值(包括須要 ML 的項目)方面擊敗初級數據科學家。無代碼開發工具能夠減輕數據分析師的工做,快速提取價值,即使無代碼開發不是最便於維護的方案。但理想狀況下,它使得數據科學「民主化」,犧牲了一些可維護性以實現價值。教某人使用 PowerBI 比教某人有效使用 R 或 Python 要容易。
就像 Gartner 預測中所說的,公民數據學者能夠經過這些工具,完成數據科學家的一些工做。尤爲是在這些工具不斷完善的狀況下。
另外,選擇和「無代碼」工具和解,有時也是必須作的選擇,好比在公司領導肯定在公司推廣某個「無代碼」工具的時候。
和解前的問題
支持的理由雖然看上去簡單,但隨着使用者愈來愈多,「無代碼」成爲的許多人繞不過去的一個選擇。發帖者在考慮與之和解,但在完全和解前他也提出了問題:
- 你在工做中使用無代碼開發工具嗎?你喜歡這些工具嗎?這與 R/Python 相比有什麼好處?無代碼工具普及是件好事仍是壞事?
- 若是你選擇站在無代碼開發工具的一邊,你如何看待其餘正大力推進基於代碼的數據科學的工程師和科學家?
須要考慮的問題能夠總結爲兩個大方向:一個是技術自己,另外一個是人際關係處理。後者包括如何與領導層溝通,如何在公司創建良好的系統,抗拒者與擁躉者如何「和平共處」之類的問題。
有開發者的出發點可能僅僅是出於對後者的考慮,這也致使有調侃說無代碼開發是「面向領導編程」。
上述大可能是關於「無代碼數據科學」的討論,不過討論背後的觀點、價值觀一樣也能夠放到更普遍的「無代碼」應用中去討論。
那麼,在「無代碼」工具愈來愈強的當下,你是選擇加入完善它,仍是反對它們?