當前位置: 首頁 ?  新聞中心 ?  解決方案 ? 零代碼時代即將到來?沒那么簡單

零代碼時代即將到來?沒那么簡單

通望科技 2020-02-13 3112

“零代碼”概念如今變得越來越流行。

“零代碼”意味著,無需專業(yè)的軟件知識,你也能輕松規(guī)劃一個商業(yè)邏輯或者開發(fā)一個應用程序。

這當然是一個好的趨勢,而且,市場上已經(jīng)出現(xiàn)了一些優(yōu)秀的“零代碼”工具。

所以,“零代碼”時代真的要到來了嘛?沒那么簡單!

為什么要“零代碼”?

“零代碼”的優(yōu)勢很明顯。培養(yǎng)一個軟件開發(fā)人員的成本很高,人才稀缺,而且一般的軟件開發(fā)人員資歷尚淺,再加上運維成本很高,軟件項目的開發(fā)也就困難重重。

一個“數(shù)字化企業(yè)”需要大量的軟件,而且絕大部分都是量身定制的,無法實現(xiàn)量產(chǎn)。于是,整個市場對軟件的需求量是十分大的。

如果有一種全新的方式可以取代開發(fā)大量軟件的過程而同樣實現(xiàn)產(chǎn)業(yè)數(shù)字化,何嘗不是一種重大的突破呢?然而,萬事開頭難。

將整個商業(yè)流程數(shù)字化有以下兩個明顯的好處:

整個項目的更新迭代將由軟件完成從而節(jié)省了人力成本。發(fā)布一個新的軟件明顯比重新修改流程和培訓工人輕松得多。創(chuàng)新使企業(yè)在競爭同行中脫穎而出。當所有企業(yè)的想法都一致時,整個行業(yè)的服務會變得單一而平庸。這對一些企業(yè)來說不算什么壞消息,但消費者可不一定會喜歡。

然而,許多企業(yè)的數(shù)字化轉(zhuǎn)型都以失敗告終。因為要實現(xiàn)這一質(zhì)的飛躍,一般企業(yè)先得轉(zhuǎn)型成為至少半個軟件開發(fā)公司,當然,大多數(shù)企業(yè)并不具備這樣的條件。只要擁有足夠的資源(時間,資金,人員),開發(fā)軟件并非一件難事,但人們大都善于表達各種奇思妙想而缺乏把這些想法落實到位的能力。

“零代碼”解決了什么問題?

編寫代碼不僅是數(shù)字化轉(zhuǎn)型的關(guān)鍵也是其制約。因為代碼通常不是那么好些的,于是,簡化代碼或者實現(xiàn)“零代碼”的意義是巨大的。

簡言之,用規(guī)范的程序語言語法來編寫和實現(xiàn)商業(yè)邏輯是一件枯燥乏味的事情。就像會開車的人只需掌握簡單易操作的駕駛技巧而無需知道發(fā)動機如何工作一樣,代碼界也需要這樣的運作模式以實現(xiàn)軟件開發(fā)的普適化。

不幸的是,這個問題已經(jīng)被仔細研究過很長時間了,卻沒有被很好地解決。

抽象語言具體化

然而,代碼的抽象性往往決定了它很難被簡化。程序員一般都力求代碼具體化以保證其簡單易懂。

復雜代碼簡單化

考慮到主要矛盾是編寫文本的復雜性,人們嘗試著開發(fā)了許多圖形化編程語言。例如Scratch(麻省理工學院的“終身幼兒園團隊”開發(fā)的圖形化編程工具,主要面對青少年),只需稍做改變就可以實現(xiàn)不同邏輯。

然而,魚與熊掌不可兼得。簡單易操作的語法架構(gòu)通常難以實現(xiàn)復雜場景的邏輯,反之亦然,一些領(lǐng)域特定語言(DSLs)又因其強針對性而難以推廣到其他領(lǐng)域。

用配置取代代碼

許多“零代碼”擁護者通過使用Zapier這樣的工具將不同的應用程序整合集成在一起來使事情變得簡單。

然而,這么做會有兩個缺陷:

第一,邏輯被分散到不同的應用程序中從而使反向推理變得困難。

第二,也是更重要的一點,邏輯由不同應用程序的配置而非編寫某種具體代碼實現(xiàn)會使得其性能表現(xiàn)受制于這些應用程序的水平。于是,程序員經(jīng)常面臨這樣的困境:我們是信任外部系統(tǒng)并在其中投入大量的配置工作,還是嘗試自己處理更多的代碼邏輯?

邏輯不會消失。因此將其嵌入到Zapier規(guī)則的布線中并不能減輕任何維護和測試的負擔。

代碼的等價性

軟件開發(fā)人員仍然使用純文本的編程語言是有原因的,主要是為了提高工作效率和流程的簡潔性。毫無疑問,如果有很多更好的工具出現(xiàn),軟件開發(fā)人員會像扔燙手的山芋一樣放棄文本。

然而,不同的邏輯表示方式并不意味者邏輯本身的簡化,就像“2”和“two”來表達“兩個”的性質(zhì)一樣。當然,實現(xiàn)商業(yè)邏輯的方式還有很多種。

也就是說,在可視化開發(fā)環(huán)境中的這個過程:

 aa55213f16cf7fe9a185fe623011de95.png

可以完全等同于:

def process_email(self, address): if not self.validate_email(address): raise InvalidDataException(_("Address is not valid")) self.store(address)第一種方法要求開發(fā)人員熟悉圖形化的工作界面,第二種方法要求熟悉文本形式的編程語言,兩種方法都需要開發(fā)人員理解邏輯的內(nèi)在關(guān)聯(lián),而且都簡單易學。

為了更好地理解軟件,開發(fā)人員通常需要在腦海里建模仿真,預測其在不同工作環(huán)境下的反應。

這和許多人在使用現(xiàn)代數(shù)字化設(shè)備時遇到麻煩的原因完全一樣,所謂“VCR”問題就是指因為硬件的輸入按鈕很少,但內(nèi)部工作非常復雜,因此用戶需要在腦海中保留設(shè)備內(nèi)部狀態(tài)的高級模型。

這聽起來有點不大現(xiàn)實,因為照“心智理論”來說,貌似只有懂技術(shù)或者擅長編程的人才會買數(shù)字化設(shè)備,而一般人想要用這些設(shè)備要先經(jīng)過專業(yè)的訓練。從這個層面上來講,編程語言是文本或是圖形化的都無所謂。

“零代碼”不是一個好的趨勢嗎?

毫無疑問,“零代碼”是一個好的趨勢。

縱觀歷史,我們發(fā)現(xiàn),計算機編程語言的發(fā)展仍道阻且長。

因此,我們?nèi)匀粦搰L試改善我們的語言和環(huán)境。考慮以下兩段代碼

#include <string.h>#include <stdlib.h>char *add_domain_name(char *source) {const size_t size = 1024;char *dest = malloc(size+1);strncpy(dest, source, size);strncat(dest, "@example.com", size);return dest;}

和這個:

function add_domain_name(username: string): string {return username + "@example.com";}第一個是段C語言代碼,第二個是TypeScript代碼。事實上,這兩種語言的語法大致都相同,但是TypeScript比C更好用,因為開發(fā)人員無需擔心內(nèi)存分配或者字符串的編碼特性之類的事情。

事實上,對于一個足夠完備的應用程序,其商業(yè)邏輯是十分強大的,以至于實現(xiàn)其的不同編程語言之間的差異可以忽略不計。顯然,編程語言的發(fā)展并沒有取得很大的進步。

“零代碼”面臨的困難

眼下,已經(jīng)有一些很優(yōu)秀的”零代碼”平臺出現(xiàn),例如被譽為“軟件終結(jié)者”的Salesforce Cloud,它可以實現(xiàn)編程、基礎(chǔ)規(guī)則設(shè)定和配置的可視化。

項目通常以“原型”開始,以表明平臺可以做到這一點。這些內(nèi)容匯總起來很快,大致可以完成項目的80%。遺憾的是,成功并不能一蹴而就正如程序員所知:細節(jié)決定成敗。

當平臺無法實現(xiàn)一些功能時,開發(fā)人員通常需要自己構(gòu)建詳盡的解決辦法,有時候也許根本無法解決。比如,我曾經(jīng)使用平臺搭建過一個自動響應電子郵件的程序,但是這個程序無法配置在檢測垃圾郵件的程序后面,也無法檢測到SMTP郵件,因此,它是不能用的。

即使平臺可以自動修復Bug并順利的實現(xiàn)邏輯,你仍然會遇到困難。例如,改善邏輯。

通常的代碼程序需要改進時,開發(fā)人員會編寫一段代碼,然后把它部署到一個獨立的環(huán)境中進行測試,測試成功之后在將其部署到整個商業(yè)邏輯的代碼中,或者,直接把它部署到整體代碼中然后在一步步調(diào)試,由此提高了應用程序的容錯性并把對用戶的影響降到最小。

而“零代碼”增強了程序的專有性,因為,你幾乎不能把同一個更改從一個項目準確的復制粘貼到另一個項目。即使Salesfoce提供了相關(guān)功能,“零代碼”的這種缺點依然很明顯。

“零代碼”的優(yōu)勢

弄清楚軟件需求是件很重要的事。而“零代碼”平臺善于融合不同的軟件,這些軟件的價值會隨著融合而不斷彰顯。

“零代碼”平臺作為非IT系統(tǒng),不僅能讓終端用戶親身參與到軟件設(shè)計的過程中還可以及時收集到用戶反饋。即使所謂靈活的傳統(tǒng)開發(fā)團隊,也很少能做到讓終端用戶參與其中。于是“零代碼”平臺的這一優(yōu)勢不言而喻。

還有很多本質(zhì)上非“零代碼”系統(tǒng)的平臺,但是用戶也能在其中發(fā)揮其主觀能動性。例如我的最愛Looker(商業(yè)智能軟件和大數(shù)據(jù)分析平),和一些類似的平臺。有趣的是,在這些平臺中開發(fā)的模型大都是利用普通的軟件開發(fā)工具以純文本的形式出現(xiàn)的,這或許就是它們成功的秘訣。

結(jié)論

用“零代碼”平臺代替主流的軟件開發(fā)工具迄今仍然是夢想。縱觀過去70年的發(fā)展,沒有任何跡象表明這一夢想會很快被實現(xiàn)。

當然,各種“零代碼”平臺的出現(xiàn)并非沒有價值,但必須謹慎對待。它并非是軟件開發(fā)的靈丹妙藥,而且有可能使事情變得更糟。

    原文來自:大數(shù)據(jù)文摘

 


感謝朋友們一路的支持和提出的寶貴建議

服務熱線

13357700300

在線客服