在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子工程師 ? 來源:lq ? 2018-12-16 11:14 ? 次閱讀

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

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

該語言的優勢在于新手和普通用戶可以更容易接觸編程。二十世紀九十年代曾經有一種非常流行的運動,即通過所謂的 CASE 工具將這類工具帶入企業,這些企業的系統可以通過 UML 進定義和生成,而無需雇傭訓練有素的軟件開發人員。

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

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

文本編程語言混淆了本質上很簡單的過程。

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

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

誤解一:文本編程語言混淆了編程本質

第一個誤解認為軟件開發的門檻很高,因為文本編程語言混淆了編程的本質。Scratch 在教育學家中的流行就屬于這種誤解。

該觀點認為編程實際上非常簡單,我們只需通過清晰的圖形來表現,就可以大大降低創建和閱讀軟件所需的學習曲線和努力程度。

我認為這種誤解是因為有些人未能真正讀懂用標準的文本編程語言編寫的程序,并想象可以將程序轉換成盒子和箭頭等圖形元素。

如果你這樣做,很快就會發現一行代碼經常需要映射到多個盒子上,一個簡單的程序包含數百行代碼的情況是常態,因此這將轉化為成百上千個圖形元素。在頭腦中理解如此復雜的圖形往往比閱讀同等的文本更加困難。

在這個問題上,大多數可視化編程語言的解決方案是使用“塊”來代表更為復雜的操作,從而可以讓每個可視化元素都代表一大段文本代碼。可視化流程工具是罪魁禍首。

問題是我們需要在某個地方定義這些代碼。于是,這就成了“屬性對話編程”。可視化元素本身僅代表最高級別的程序流程,而大多數的工作是通過隱藏在盒子中的標準文本代碼完成。這種做法釀成了現如今兩邊皆難堪的局面。一邊的文本編程語言沒有現代工具支持。

屬性對話編程通常是低配版的標準開發環境,而且你必須選擇特定的語言,通常是某種腳本語言。而在另一邊,可視化元素只能等待有經驗的程序員創建,而且只有通過閱讀底層的代碼才能讀懂程序,所以大多數視覺化表現手法的優勢都喪失了。

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

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

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

然而,一旦程序的規模超出了簡單的示例,新手程序員很快就會被復雜性壓垮。他們發現很難推斷程序的代碼庫,而且常常難以大規模地創建穩定又高效的軟件。

編程語言中的大多數創新都是為了管理復雜性,最常見的是通過抽象、封裝和解耦。面向對象和函數式編程中所有類型的系統和裝置實際上都是為了努力控制這種復雜性。大多數專業程序員會持續不斷地抽象和解耦代碼。

實際上,好代碼和差代碼之間的本質區別也在于此??梢暬幊坦ぞ吆苌贀碛杏行У臋C制來執行這些操作,而開發人員也必將陷入二十世紀七十年代 BASIC 的漩渦中。

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

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

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

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

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

可視化編程工具通常會將每個圖表保存在一個文件中,這意味著合并也會成問題,當遇到難以解析差異的語義時,難度會更大。

總之,可視化編程工具提供的優勢,即簡化程序的創建和理解只是一個海市蜃樓。

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

補充說明

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

許多人提到,Scratch 在編程教學方面非常有用,特別是對兒童而言。任何可以引導人們進入精彩紛呈的編程世界的東西,我都歡迎。

我并不想通過這篇文章抨擊 Scratch,提到它只是因為它是大多數人都聽過的最有名的可視化編程系統。

有人在 Reddit 上提到的另一個反面例子是靜態結構工具,例如 UI 設計工具、數據庫模式設計工具或類設計工具。

我同意這些工具非常有用。任何有助于可視化數據結構、或程序的大規模結構的工具都是好東西。

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

你如何看待可視化編程?

針對可視化編程并不是理想的想法,評論區的不少網友也發表了不一樣的看法:

評論1:

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

你無法在 Scratch 中犯語法錯誤,因為這些框無法組合在一起。 除了這種語法幫助之外,Scratch 不會隱藏任何內容,并且格式也與純文本語言沒有差別。

也就是說,我同意你說的有關其他教學語言的大部分內容,例如用于 Lego Mindstorms 機器人套件的語言。

該語言源自 LabView,大多數初學者發現很難超越幾個塊或連接變量之類的東西。我的猜測是,一種能夠通過變量賦值來達到復雜性障礙的語言并不能很好地擴展:-)。

評論 2:

我認為你的文章的出發點不正確,因為可視化編程根本不是為程序員準備的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1947

    瀏覽量

    34848
  • 可視化
    +關注

    關注

    1

    文章

    1198

    瀏覽量

    20989

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

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    光學系統的3D可視化

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

    什么是大屏數據可視化?特點有哪些?

    大屏數據可視化是指通過大屏幕展示大量數據和信息,以直觀、可視化的方式幫助用戶理解和分析數據。這種展示方式通常用于展示復雜的數據集、實時監控系統、企業管理儀表盤等。以下是關于 大屏數據可視化 的詳細
    的頭像 發表于 12-16 16:59 ?245次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現能源的可持續發展。
    的頭像 發表于 11-29 10:00 ?388次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源數據管理

    智慧樓宇可視化的優點

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

    三維可視化的魅力與應用

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

    大屏數據可視化 開源

    在當今信息爆炸的時代,數據已經成為各個行業決策制定和業務發展的關鍵。為了更直觀、準確地理解和利用海量數據, 大屏數據可視化 成為一種強大的工具。通過將數據以圖表、圖形等形式展示在大屏幕上,不僅
    的頭像 發表于 06-27 16:06 ?436次閱讀
    大屏數據<b class='flag-5'>可視化</b> 開源

    如何實現園區大屏可視化?

    孿生可視化 構建平臺利用Web三維可視化技術對現實場景進行仿真,實現園區級業務場景 的可視化呈現,助力企業快速完成項目的實施。實現園區場景立體可先,極致可視。那么,今天古河云科技就來給
    的頭像 發表于 06-19 15:39 ?457次閱讀
    如何實現園區大屏<b class='flag-5'>可視化</b>?

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將數據以圖形、圖像、動畫等視覺形式展現出來的技術,特別是在處理和分析態勢數據時,該技術能夠將復雜的數據轉化為直觀、易于理解的視覺表現。以下是態勢數據可視化技術
    的頭像 發表于 06-11 15:47 ?399次閱讀

    上位機可視化界面編程軟件有哪些

    上位機可視化界面編程軟件是一類用于開發圖形用戶界面(GUI)的軟件工具,它們通常提供了豐富的界面元素、易于使用的編程接口和強大的功能。這些軟件可以幫助開發者快速構建出美觀、易用且功能豐富的應用程序
    的頭像 發表于 06-06 10:48 ?2665次閱讀

    c語言怎么做可視化界面

    C語言是一種通用的編程語言,廣泛應用于系統編程、嵌入式開發等領域。雖然C語言本身并不支持直接創建可視化界面,但通過結合一些圖形庫和工具,我們可以為C語言程序開發出直觀、易用的可視化界面
    的頭像 發表于 06-06 10:46 ?2467次閱讀

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據源管理、數據處理、視覺編碼、用戶界面與交互設計等。
    的頭像 發表于 06-04 15:02 ?652次閱讀
    智慧大屏是如何實現數據<b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以便用戶能夠直觀、清晰地理解數據背后的含義和關聯。在信息化時代,數據已經成為企業決策和運營的重要依托,而
    的頭像 發表于 06-03 17:56 ?721次閱讀

    數據可視化:企業數字建設效果的呈現

    數據可視化即通過圖表的形式將數據的內在信息有邏輯性地呈現給用戶,使用戶更容易發現數據中蘊藏的規律,找出問題,進而做出決策;另一方面,數據可視化項目也是一張重要的名片,是企業數字建設效果的呈現。本文
    的頭像 發表于 04-29 10:18 ?483次閱讀
    數據<b class='flag-5'>可視化</b>:企業數字<b class='flag-5'>化</b>建設效果的呈現

    FUXA基于Web的過程可視化軟件案例

    FUXA——基于Web的過程可視化軟件
    發表于 04-24 18:32 ?2次下載

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將復雜、動態的態勢數據以直觀、易于理解的方式展現出來的技術手段。以下是幾種主要的態勢數據可視化技術: 網絡安全態勢指標可視化分析系統及方法,針對安全態勢指標不準
    的頭像 發表于 04-22 15:17 ?436次閱讀
    主站蜘蛛池模板: 草伊人| 午夜看一级特黄a大片| 日韩免费网站| 日本中文字幕在线播放| 欧洲精品码一区二区三区免费看| 91在线免费看| 一女多夫嗯啊高h| 欧美卡一卡二卡新区网站| 在线看免费视频| 147西西人体大胆免费网| 天堂在线最新版在线www| 四色成人网| 孩交精品xxxx视频视频| 亚洲激情四射| 日本三级黄在线观看| 国产在线观看黄色| 视频一区二区在线观看| 在线天堂bt中文www在线| www.日本免费| 一区二区精品| 精品国产免费一区二区| 欧美伦理影院| 三级网站免费看| 欧美天天视频| 色香蕉在线| 免费人成观看在线网| 人人做人人澡人人人爽| 辣h高h肉h激h超h| 国产成人精品免费视频大全可播放的| 久久综合九色综合欧洲色| 欧美天堂在线视频| 国产综合色精品一区二区三区| 黄色美女网站在线观看| 永久免费影视在线观看| 久久伊人影视| 一区二区三区www| 一级毛片q片| 男女爱爱福利| 午夜视频免费国产在线| 3344a毛片在线看| 国产超爽人人爽人人做|