一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么說可視化編程是糟糕的想法?

電子工程師 ? 來源:lq ? 2018-12-16 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

可視化編程語(yǔ)言可以讓程序員通過操縱圖形元素來創(chuàng)建程序,而無需鍵入文本命令。

眾所周知的例子是 Scratch,這是一種麻省理工學(xué)院開發(fā)的可視化編程語(yǔ)言,用來教孩子們學(xué)編程。

該語(yǔ)言的優(yōu)勢(shì)在于新手和普通用戶可以更容易接觸編程。二十世紀(jì)九十年代曾經(jīng)有一種非常流行的運(yùn)動(dòng),即通過所謂的 CASE 工具將這類工具帶入企業(yè),這些企業(yè)的系統(tǒng)可以通過 UML 進(jìn)定義和生成,而無需雇傭訓(xùn)練有素的軟件開發(fā)人員。

這涉及“round tripping”的概念,即通過可視化的手法為系統(tǒng)建模,根據(jù)模型生成程序代碼,而且任何代碼的變更都可以反向反映到模型上。但最終這些工具未能兌現(xiàn)承諾,而且大多數(shù)這類嘗試現(xiàn)在也已基本放棄了。

因此,除了一些非常有限的領(lǐng)域外,可視化編程都未能成功。其中的原因基本上可以歸于以下幾種對(duì)編程的誤解:

文本編程語(yǔ)言混淆了本質(zhì)上很簡(jiǎn)單的過程。

抽象和解耦是外圍問題,對(duì)編程的意義不大。

為支持編程而開發(fā)的工具并不重要。

誤解一:文本編程語(yǔ)言混淆了編程本質(zhì)

第一個(gè)誤解認(rèn)為軟件開發(fā)的門檻很高,因?yàn)槲谋揪幊陶Z(yǔ)言混淆了編程的本質(zhì)。Scratch 在教育學(xué)家中的流行就屬于這種誤解。

該觀點(diǎn)認(rèn)為編程實(shí)際上非常簡(jiǎn)單,我們只需通過清晰的圖形來表現(xiàn),就可以大大降低創(chuàng)建和閱讀軟件所需的學(xué)習(xí)曲線和努力程度。

我認(rèn)為這種誤解是因?yàn)橛行┤宋茨苷嬲x懂用標(biāo)準(zhǔn)的文本編程語(yǔ)言編寫的程序,并想象可以將程序轉(zhuǎn)換成盒子和箭頭等圖形元素。

如果你這樣做,很快就會(huì)發(fā)現(xiàn)一行代碼經(jīng)常需要映射到多個(gè)盒子上,一個(gè)簡(jiǎn)單的程序包含數(shù)百行代碼的情況是常態(tài),因此這將轉(zhuǎn)化為成百上千個(gè)圖形元素。在頭腦中理解如此復(fù)雜的圖形往往比閱讀同等的文本更加困難。

在這個(gè)問題上,大多數(shù)可視化編程語(yǔ)言的解決方案是使用“塊”來代表更為復(fù)雜的操作,從而可以讓每個(gè)可視化元素都代表一大段文本代碼??梢暬鞒坦ぞ呤亲锟?zhǔn)住?/p>

問題是我們需要在某個(gè)地方定義這些代碼。于是,這就成了“屬性對(duì)話編程”??梢暬乇旧韮H代表最高級(jí)別的程序流程,而大多數(shù)的工作是通過隱藏在盒子中的標(biāo)準(zhǔn)文本代碼完成。這種做法釀成了現(xiàn)如今兩邊皆難堪的局面。一邊的文本編程語(yǔ)言沒有現(xiàn)代工具支持。

屬性對(duì)話編程通常是低配版的標(biāo)準(zhǔn)開發(fā)環(huán)境,而且你必須選擇特定的語(yǔ)言,通常是某種腳本語(yǔ)言。而在另一邊,可視化元素只能等待有經(jīng)驗(yàn)的程序員創(chuàng)建,而且只有通過閱讀底層的代碼才能讀懂程序,所以大多數(shù)視覺化表現(xiàn)手法的優(yōu)勢(shì)都喪失了。

視覺上的“代碼”和文本代碼之間存在著阻抗失配,而且程序員必須不斷在兩者之間來回切換,時(shí)間都浪費(fèi)在滿足圖形編程工具的需求上,而不是解決手頭的問題。

誤解二:抽象和解耦是外圍問題

因此才有了第二個(gè)誤解,即抽象和解耦是外圍問題??梢暬幊碳僭O(shè)大多數(shù)程序都是簡(jiǎn)單的程序序列,有點(diǎn)像流程圖。實(shí)際上,這也是大多數(shù)新手程序員想象的軟件工作原理。

然而,一旦程序的規(guī)模超出了簡(jiǎn)單的示例,新手程序員很快就會(huì)被復(fù)雜性壓垮。他們發(fā)現(xiàn)很難推斷程序的代碼庫(kù),而且常常難以大規(guī)模地創(chuàng)建穩(wěn)定又高效的軟件。

編程語(yǔ)言中的大多數(shù)創(chuàng)新都是為了管理復(fù)雜性,最常見的是通過抽象、封裝和解耦。面向?qū)ο蠛秃瘮?shù)式編程中所有類型的系統(tǒng)和裝置實(shí)際上都是為了努力控制這種復(fù)雜性。大多數(shù)專業(yè)程序員會(huì)持續(xù)不斷地抽象和解耦代碼。

實(shí)際上,好代碼和差代碼之間的本質(zhì)區(qū)別也在于此。可視化編程工具很少擁有有效的機(jī)制來執(zhí)行這些操作,而開發(fā)人員也必將陷入二十世紀(jì)七十年代 BASIC 的漩渦中。

誤解三:為支持編程而開發(fā)的工具并不重要

最后一個(gè)誤解是即使沒有現(xiàn)代編程工具的支持,可視化程序員也可以編程。想想代碼編輯器和 IDE 漫長(zhǎng)的演變過程。

例如,Visual Studio 支持高效的智能感知,可以單獨(dú)查找基類庫(kù)中數(shù)千個(gè) API。缺乏良好的源代碼控制是絕大多數(shù)可視化編程工具的另一個(gè)主要的缺點(diǎn)。即使這些可視化工具的布局保存為文本的格式,代碼的差異也毫無可讀性可言,因此毫無意義。

我們很難從大塊的 XML 或 JSON 找出每行代碼的修改來源。一些對(duì)程序的功能執(zhí)行沒有任何影響的因素,比如圖形元素的位置和大小,也會(huì)導(dǎo)致元數(shù)據(jù)的變化,這讓解析差異變得更加困難。

文本編程語(yǔ)言知道將不同的代碼保存到不同的源代碼文件中,因此系統(tǒng)某一部分的變更很容易與另一部分的變更合并。

可視化編程工具通常會(huì)將每個(gè)圖表保存在一個(gè)文件中,這意味著合并也會(huì)成問題,當(dāng)遇到難以解析差異的語(yǔ)義時(shí),難度會(huì)更大。

總之,可視化編程工具提供的優(yōu)勢(shì),即簡(jiǎn)化程序的創(chuàng)建和理解只是一個(gè)海市蜃樓。

只有在非常簡(jiǎn)單的編程中才可行,在這種不理想的形勢(shì)下,最好的結(jié)果也不過是說:可視化元素是具有混淆副作用的文本代碼的容器。

補(bǔ)充說明

可能在第一段中加上 Scratch 的截圖并用作主要示例是錯(cuò)誤的做法。我不是一名教育工作者,我不知道 Scratch 是否可以作為一種有效的教學(xué)工具。

許多人提到,Scratch 在編程教學(xué)方面非常有用,特別是對(duì)兒童而言。任何可以引導(dǎo)人們進(jìn)入精彩紛呈的編程世界的東西,我都?xì)g迎。

我并不想通過這篇文章抨擊 Scratch,提到它只是因?yàn)樗谴蠖鄶?shù)人都聽過的最有名的可視化編程系統(tǒng)。

有人在 Reddit 上提到的另一個(gè)反面例子是靜態(tài)結(jié)構(gòu)工具,例如 UI 設(shè)計(jì)工具、數(shù)據(jù)庫(kù)模式設(shè)計(jì)工具或類設(shè)計(jì)工具。

我同意這些工具非常有用。任何有助于可視化數(shù)據(jù)結(jié)構(gòu)、或程序的大規(guī)模結(jié)構(gòu)的工具都是好東西。

但這些不足以支撐他們的論點(diǎn)。PowerBuilder 等 90 個(gè)試圖通過在圖形可視化之上構(gòu)建工具,來開發(fā)出一個(gè)完全不用寫代碼的開發(fā)環(huán)境,可是最終都失敗了,這恰恰證明了我的觀點(diǎn)。

你如何看待可視化編程?

針對(duì)可視化編程并不是理想的想法,評(píng)論區(qū)的不少網(wǎng)友也發(fā)表了不一樣的看法:

評(píng)論1:

你混淆了圖形數(shù)據(jù)流語(yǔ)言(帶有隱藏選項(xiàng)框和連接這些框的箭頭)與Scratch。Scratch 是一種文本語(yǔ)言,里面的程序語(yǔ)句和類型是預(yù)定義的形狀,可以消除語(yǔ)法錯(cuò)誤。

你無法在 Scratch 中犯語(yǔ)法錯(cuò)誤,因?yàn)檫@些框無法組合在一起。 除了這種語(yǔ)法幫助之外,Scratch 不會(huì)隱藏任何內(nèi)容,并且格式也與純文本語(yǔ)言沒有差別。

也就是說,我同意你說的有關(guān)其他教學(xué)語(yǔ)言的大部分內(nèi)容,例如用于 Lego Mindstorms 機(jī)器人套件的語(yǔ)言。

該語(yǔ)言源自 LabView,大多數(shù)初學(xué)者發(fā)現(xiàn)很難超越幾個(gè)塊或連接變量之類的東西。我的猜測(cè)是,一種能夠通過變量賦值來達(dá)到復(fù)雜性障礙的語(yǔ)言并不能很好地?cái)U(kuò)展:-)。

評(píng)論 2:

我認(rèn)為你的文章的出發(fā)點(diǎn)不正確,因?yàn)榭梢暬幊谈静皇菫槌绦騿T準(zhǔn)備的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36586
  • 可視化
    +關(guān)注

    關(guān)注

    1

    文章

    1260

    瀏覽量

    21821

原文標(biāo)題:為什么說可視化編程是糟糕的想法?

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    工業(yè)設(shè)備可視化管理系統(tǒng)是什么

    工業(yè)設(shè)備可視化管理系統(tǒng)是一種基于物聯(lián)網(wǎng)(IoT)、大數(shù)據(jù)、云計(jì)算、數(shù)字孿生等技術(shù),對(duì)工業(yè)設(shè)備的運(yùn)行狀態(tài)、性能參數(shù)、維護(hù)信息等進(jìn)行實(shí)時(shí)監(jiān)測(cè)、數(shù)據(jù)整合與可視化呈現(xiàn)的智能管理平臺(tái)。它通過將復(fù)雜的設(shè)備數(shù)據(jù)
    的頭像 發(fā)表于 05-27 14:56 ?198次閱讀
    工業(yè)設(shè)備<b class='flag-5'>可視化</b>管理系統(tǒng)是什么

    VirtualLab Fusion應(yīng)用:3D系統(tǒng)可視化

    描述和F-Theta透鏡的應(yīng)用示例。 光學(xué)系統(tǒng)的3D-可視化 VirtualLab Fusion提供的工具可以實(shí)現(xiàn)光學(xué)系統(tǒng)的3D可視化,因此可以用于檢查元件的位置,以及快速了解系統(tǒng)內(nèi)部的光傳播情況
    發(fā)表于 04-30 08:47

    可視化組態(tài)物聯(lián)網(wǎng)平臺(tái)是什么

    可視化組態(tài)物聯(lián)網(wǎng)平臺(tái)是物聯(lián)網(wǎng)技術(shù)與組態(tài)技術(shù)相結(jié)合的產(chǎn)物,是通過提供豐富的圖形組件和可視化元素,讓用戶能夠以直觀、便捷的方式對(duì)物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行監(jiān)控、分析和管理的平臺(tái)。以下是其具體介紹: 定義 組態(tài)
    的頭像 發(fā)表于 04-21 10:40 ?280次閱讀

    VirtualLab Fusion中的可視化設(shè)置

    摘要 VirtualLab Fusion中的全局選項(xiàng)對(duì)話框可以輕松定制軟件的外觀和感覺。還可以保存和加載全局選項(xiàng)文件,以便可以輕松地將偏好設(shè)置從一個(gè)設(shè)備轉(zhuǎn)移到另一個(gè)設(shè)備。本文檔說明了與可視化和結(jié)果
    發(fā)表于 02-25 08:51

    VirtualLab Fusion應(yīng)用:光波導(dǎo)k域布局可視化(“神奇的圓環(huán)”)

    特定光波導(dǎo)布局的光導(dǎo)和耦合條件。 概念 方向轉(zhuǎn)換器計(jì)算器 可以通過“開始”>“計(jì)算器”找到方向轉(zhuǎn)換器計(jì)算器,這有助于演示指定角度的不同方式。 k域可視化 k域可視化:平面波的傳播
    發(fā)表于 02-21 08:53

    七款經(jīng)久不衰的數(shù)據(jù)可視化工具!

    工具 · D3.js:D3.js 是一個(gè)基于 JavaScript 的數(shù)據(jù)可視化庫(kù),允許開發(fā)者創(chuàng)建豐富的交互式圖表。它具有極大的靈活性,但需要編程知識(shí),因此適合開發(fā)者或具有技術(shù)背景的用戶
    發(fā)表于 01-19 15:24

    光學(xué)系統(tǒng)的3D可視化

    **摘要 ** 為了從根本上了解光學(xué)系統(tǒng)的特性,對(duì)其組件進(jìn)行可視化并顯示光的傳播情況大有幫助。為此,VirtualLab Fusion 提供了顯示光學(xué)系統(tǒng)三維可視化的工具。這些工具還可用于檢查元件
    發(fā)表于 01-06 08:53

    什么是大屏數(shù)據(jù)可視化?特點(diǎn)有哪些?

    大屏數(shù)據(jù)可視化是指通過大屏幕展示大量數(shù)據(jù)和信息,以直觀、可視化的方式幫助用戶理解和分析數(shù)據(jù)。這種展示方式通常用于展示復(fù)雜的數(shù)據(jù)集、實(shí)時(shí)監(jiān)控系統(tǒng)、企業(yè)管理儀表盤等。以下是關(guān)于 大屏數(shù)據(jù)可視化 的詳細(xì)
    的頭像 發(fā)表于 12-16 16:59 ?672次閱讀

    如何找到適合的大屏數(shù)據(jù)可視化系統(tǒng)

    選擇合適的大屏數(shù)據(jù)可視化系統(tǒng)是企業(yè)或組織在數(shù)字轉(zhuǎn)型過程中至關(guān)重要的一步。一個(gè)優(yōu)秀的大屏數(shù)據(jù)可視化系統(tǒng)能夠?qū)崟r(shí)呈現(xiàn)關(guān)鍵業(yè)務(wù)數(shù)據(jù),提升決策效率,同時(shí)提供直觀、易于理解的視覺呈現(xiàn),助力企業(yè)洞察數(shù)據(jù)背后
    的頭像 發(fā)表于 12-13 15:47 ?479次閱讀

    智慧能源可視化監(jiān)管平臺(tái)——助力可視化能源數(shù)據(jù)管理

    博達(dá)可視化大屏設(shè)計(jì)平臺(tái)在智慧能源領(lǐng)域的價(jià)值體現(xiàn)在實(shí)時(shí)監(jiān)控、數(shù)據(jù)可視化、決策支持和效率提升等方面。借助該平臺(tái),企業(yè)可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產(chǎn)和生活,實(shí)現(xiàn)能源的可持續(xù)發(fā)展。
    的頭像 發(fā)表于 11-29 10:00 ?941次閱讀
    智慧能源<b class='flag-5'>可視化</b>監(jiān)管平臺(tái)——助力<b class='flag-5'>可視化</b>能源數(shù)據(jù)管理

    智慧樓宇可視化的優(yōu)點(diǎn)

    智慧樓宇可視化是指通過數(shù)據(jù)可視化技術(shù)來展示和分析樓宇的各種數(shù)據(jù),為樓宇管理者和用戶提供直觀、清晰的信息展示和決策支持。以下是智慧樓宇可視化的優(yōu)點(diǎn),詳細(xì)介紹其在樓宇管理和運(yùn)營(yíng)中的重要作用: 1.實(shí)時(shí)
    的頭像 發(fā)表于 11-19 14:25 ?472次閱讀

    智慧地鐵站可視化建設(shè)的意義

    隨著城市規(guī)模的不斷擴(kuò)大和人口數(shù)量的增加,地鐵成為現(xiàn)代城市重要的公共交通方式之一。為了提高地鐵運(yùn)營(yíng)效率、乘客體驗(yàn)和安全管理水平,智慧地鐵站可視化建設(shè)逐漸成為發(fā)展趨勢(shì)。本文古河云科技將深入探討 智慧
    的頭像 發(fā)表于 07-26 14:16 ?459次閱讀

    三維可視化運(yùn)用的主要技術(shù)

    三維可視化技術(shù)是一種強(qiáng)大的工具,可用于呈現(xiàn)復(fù)雜的數(shù)據(jù)和概念,使人們能夠更直觀地理解信息。在當(dāng)今數(shù)字化時(shí)代,三維可視化已經(jīng)成為許多領(lǐng)域中不可或缺的技術(shù),包括工程、醫(yī)學(xué)、地理信息系統(tǒng)、游戲開發(fā)等。本文將
    的頭像 發(fā)表于 07-19 13:56 ?636次閱讀

    三維可視化的魅力與應(yīng)用

    三維可視化是一種強(qiáng)大的工具,它融合了藝術(shù)、科學(xué)和技術(shù),通過在三維空間中呈現(xiàn)數(shù)據(jù)、概念和想法,為人們提供了一種直觀而生動(dòng)的方式來理解和探索信息。這項(xiàng)技術(shù)在當(dāng)今世界中的應(yīng)用非常廣泛,涵蓋了科學(xué)、教育
    的頭像 發(fā)表于 07-17 14:19 ?543次閱讀