為什么大多數(shù)程序員不看好圖形化編程?
寫了十幾年代碼的來分享一下!可以關(guān)注我,聊聊寫代碼的經(jīng)歷
圖像化編程也不是剛出現(xiàn)的概念,以前在我讀書的時候在電子工程專業(yè)中電路設(shè)計實(shí)際上就用上了圖形化編程來設(shè)計電路的。雖然那時的應(yīng)用還很有限,但是發(fā)展了那么十幾年還是應(yīng)用非常有限,實(shí)際上還是有其原因的。
研發(fā)困難任何一個產(chǎn)品要使用起來簡單往往代表著需要復(fù)雜的研發(fā)過程,圖形化編程就是這樣的一個產(chǎn)品,畢竟編程是一個非常個性化的過程。就算有很多代碼規(guī)范,但是每個項(xiàng)目都有他們獨(dú)特的方面,那作為圖形化編程工具就需要考慮到方方面面,簡單舉例來說,一個按鈕,可能就會有十幾個不同的參數(shù),如果是一系列按鈕的話,那就更復(fù)雜了。這個時候如果要做出可用的圖形化編程工具就需要非常抽象的設(shè)計每個組件。那如果對一個組件,參數(shù)設(shè)置一多實(shí)際上就體現(xiàn)不出圖形化編程的優(yōu)勢了。以前電路設(shè)計的時候,因?yàn)槊總€組件所需要設(shè)置的參數(shù)非常有限,所以就比較容易實(shí)現(xiàn),比如一個三極管可能只需要設(shè)置觸發(fā)電壓值就可以了。
功能有限這個和研發(fā)復(fù)雜是有直接關(guān)系的,因?yàn)檠邪l(fā)過程中需要考慮到很多可能性,或者為了有一款可用的產(chǎn)品,就會犧牲一些功能,這樣就會對于最終使用這個編程工具的用戶感覺限制變多了,畢竟程序員基本是通過編程來實(shí)現(xiàn)某個類型的產(chǎn)品,而且很多時候新產(chǎn)品需要比較創(chuàng)新的寫法,如果編程工具在擴(kuò)展性上有限制就不會是一款很值得使用的編程工具了。再說剛剛那個按鈕組件的例子,比如工具開發(fā)的時候沒有將按鈕在畫板外會是什么樣的狀態(tài)做設(shè)計,那么如果需要一個不可見的按鈕時如何處理呢?
邏輯不清可能是因?yàn)槌绦騿T看代碼比較習(xí)慣,圖形化編程過程中很多邏輯都不是那么一目了然。尤其對于一些隱形不可見的邏輯,比如點(diǎn)擊這個按鈕,某段文字會變色等等這樣的交互就不太容易在圖形化編程中實(shí)現(xiàn),可能可以通過連線來關(guān)聯(lián)兩個不同組件的邏輯關(guān)系,不過當(dāng)系統(tǒng)比較復(fù)雜之后,這樣的線就會很多,也就變得非常難以一眼看明白。
代碼實(shí)現(xiàn)效率高圖形化編程可能一個優(yōu)勢就是可以不用記代碼的意義,直接通過所見即所得的方式來選擇不同組件,建立組件之間的關(guān)系。不過因?yàn)樯婕昂芏鄥?shù)的設(shè)置,一行代碼能解決的樣式,可能在圖形化中需要通過幾次鼠標(biāo)點(diǎn)擊加上幾次鍵盤輸入才能完成。寫代碼最高效的過程是雙手不離開鍵盤,這樣既減少了手從鍵盤到鼠標(biāo)這個過程所需的時間,而且打字和點(diǎn)擊鼠標(biāo)需要不同的操控習(xí)慣,反復(fù)切換也會比較浪費(fèi)時間。
總之程序員不會看好圖形化編程主要還是現(xiàn)在通過寫代碼能做的事情比圖形化編程要多,而且效率還高。不過,圖形化編程還是有其適合的領(lǐng)域的,比如少兒編程入門等等,這樣圖形化編程的優(yōu)勢就能被更大的發(fā)揮了