成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么創造 Charj 語言?從十年以后的編程說起

開發 后端
每隔幾年,我們都會發現有大量地系統都在不斷也被重寫。而除了使用新的框架之外,還有可能使用新的語言。而傳統地方式是使用人肉的方式提取這些信息,再一一重寫。

[[356459]]

上個月,在社區上發布那篇《Charj —— 代碼的代碼化語言》時,遇到一系列的相關問題。起初并沒有想到會在知乎上有這么多的討論,所以我并沒有詳細介紹為什么創造 Charj 的緣由。只是說了說,哦,如果要創造一個語言的語言是這么這么做。由于一直忙著項目,和實現相關的功能。

于是,在完成了 Charj 的 hello, world 之后, 我決定再寫一篇文章,介紹一下 Why & Next?

十年以后,編程會怎么發展?

十年,也就是兩個五年之后,編程會怎樣,這是一個很復雜的問題。而作為一個資深的程序員 & IT 顧問,我年復一年地在考慮這個問題。

2015 年,Google 主導成立了云原生計算基金會(CNCF)。云原生是現在熱點話題。

2017 年,我開始研究 Serverless(參見:我寫的 https://serverless.ink/ ),即函數即服務。你可以想象一下,2014 年微服務剛流行的時候,人們對于這個觀點很驚訝的樣子,而在 2020 年,人們已經對微服務習以為常。現在呢,Serverless 已經慢慢進入了技術圈的視野。想必在 3 年以后的 2023 年,人們會對 Serverless 習以為常。

2018 年,我研究地主要內容是如何應對大型的前端應用架構,即微前端一系列相關的內容,詳細可以見《微前端的那些事兒》

2019 年,我研究了幾個月的低代碼開發,隨后轉向了構建一個理想成熟的理論體系:云研發。(GitHub:https://github.com/phodal/cloud-dev)。

云研發是一種生于云上的閉環 + 代碼化的軟件開發方式。它可以讓業務人員、開發人員、運營人員等在同一個云端共同協作、透明化地完成整個軟件的生命周期(需求、設計、編碼、構建、部署、運營),而非相互隔離,又或者是借助于多個軟件才能完成工作。

而這幾年云 IDE 正好開始了它們的蓬勃事業。相信在未來一兩年內,云研發這個概率將會越來越多的被提及。然后大概會在 2025 年左右開始被接受。

同樣的,去年,我公司的大佬 @大魔頭-諾鐵,提出了一個更超前的概率:填空式編程。即未來人人都會編程,只需要會填空式的寫代碼即可。相應的實現是:類型流,GitHub:https://github.com/notyy/TypeFlow 。詳細視頻見:https://zhuanlan.zhihu.com/p/94522501

2020 年,我上半年主要研究的是研發流程的代碼化:『文檔代碼化』、『需求代碼化』、『如何為代碼建模?』、『Charj —— 代碼的代碼化語言』……。它們是走向云研發閉環的關鍵系內容。

所以,可以遇到的事情是,在未來,編程會變得越來越簡單。但是呢,如我在去年那篇《無代碼編程》中提到的那樣:

復雜度同力一樣不會消失,也不會憑空產生,它總是從一個物體轉移到另一個物體或一種形式轉為另一種形式。

既然,我們在上層實現了接口式的調用,那么我們必然要在下層有對應的實現,也就是編程的基礎設施。

簡單來說就是:10 年以后,編程會變得越來越簡單。位于頂層的應用開發程序員,往往更易受到『人口-紅利』的沖突。而通過一系列的封裝,底層的通用將會變得越來越復雜。

自動化代碼修改 && 自動化重構

與此同時,我研究了另外一個有意思的議題是:自動化重構。這部分的研究,主要是為了幫助我快速完成一個軟件開發咨詢師的工作。來到客戶現場,掏出我開源的工具,自動化地對代碼進行評估,而后再一一有針對地解決問題。并且,其中的一些問題便是對于代碼進行自動化、半自動化地重構。

而作為這一系列的基礎就是編程語言與語法樹。

去年,在公司大佬的指導下,我寫了重構工具 Coca:https://github.com/phodal/coca 。Coca 是一個用于系統重構、系統遷移和系統分析的瑞士軍刀。它可以分析代碼中的 badsmell,行數統計,分析調用與依賴,進行 Git 分析,以及自動化重構等。簡單地來說,就是分析各類語言的代碼,提取特定的結構,分析內容。

隨后,因為 Antlr 對 Go 的支持語言,我改用 Java + Kotlin 來實現其中的語法實現部分,也就是后來的 Chapi:https://github.com/phodal/chapi 。所以,Chapi 被定義為一個通用語言元信息轉換器,能將不同語言轉換為相同的 AST。而由于使用的是 Kotlin 的實現,我可以自由地轉換核心域構建的產品。不過呢,語法解析這種東西,你寫了一個語言,你就不想再寫第二個了。

上個月和我的同事搞的 CSS 重構工具:Lemonj ,也是基于類似的原理。

系統重寫

每隔幾年,我們都會發現有大量地系統都在不斷也被重寫。而除了使用新的框架之外,還有可能使用新的語言。而傳統地方式是使用人肉的方式提取這些信息,再一一重寫。

這一部分工作,必然可以通過一定地自動完成,那就是代碼轉換。

編程基礎設施的缺失

除此之外,最后的一個考量是基礎設施。如你所見,在上一個時代,我們的國家里缺乏一系列的基礎設施,從操作系統、數據庫、瀏覽器等等。而在這一個時代,我們缺少原云生相關的基礎設施。我們總說開源能解決一部分問題,但是事實上并非如此 —— 開源有著巨大的學習成本。(PS:這個我會在另外一篇文章中介紹)。

我接觸過一些國內某大公司,基于開源軟件魔改的操作系統、IDE,還有各類的云原生基礎設施。不僅僅需要對源碼很了解,還需要對系統的設計理念很熟悉。而這些知識則是隱性地藏在源碼中,需要經過大量地練習才能掌握。而這個成本,反而遠比自己創造一個系統的成本要高得多。

簡單來說,就是開源需要巨大的學習成本。

所以,我在 Charj 里打了兩個賭:

Rust 語言會成為系統編程不可缺少的一部分。

未來編程語言已經不重要了。

如果事實可以如此,那么我們(寫 Charj 的人)就可以在 10 年以后不落后,甚至占據先機。

 本文轉載自微信公眾號「phodal」,可以通過以下二維碼關注。轉載本文請聯系phodal公眾號。

 

 

責任編輯:武曉燕 來源: Phodal
相關推薦

2013-04-15 13:53:27

編程程序員

2013-02-19 09:26:17

2013-11-29 15:38:35

2021-08-18 06:48:52

編程語言開發IT

2019-12-13 16:08:57

戴爾

2020-12-30 19:19:35

ARM架構X86架構芯片

2018-04-20 10:17:05

云計算

2010-11-02 15:44:20

瘦客戶端

2022-03-28 11:41:21

物聯網物聯網市場智能電網

2012-07-16 13:18:35

2009-11-25 10:31:33

2014-10-15 10:25:06

淘寶淘寶技術

2022-03-18 13:46:20

物聯網數據技術

2018-04-19 10:11:57

云計算亞馬遜華為

2014-07-02 09:56:33

2020-11-05 22:59:15

技能工業革命技術

2019-07-17 20:27:04

機器學習人工智能計算機

2021-11-11 11:21:23

云計算云遷移

2017-04-26 17:10:00

咕咚MVCMVVM

2015-01-04 11:21:52

編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人在线不卡 | 日韩一级免费看 | www.国产.com | 在线观看中文字幕 | 国产精品精品视频一区二区三区 | 亚洲一区二区三区四区五区午夜 | 欧美在线一区二区三区 | 欧美一区不卡 | 欧美在线a | 成人精品系列 | 日韩中文字幕2019 | 日本精品一区二区三区在线观看视频 | 美美女高清毛片视频免费观看 | 亚洲欧美日韩精品久久亚洲区 | 亚洲成人在线免费 | 色吊丝2288sds中文字幕 | 久久99精品久久 | 亚洲成人av在线播放 | 日韩欧美一区二区三区免费观看 | 亚洲成人福利视频 | 天堂中文av | 一区二区三区av | 91精品国产欧美一区二区成人 | 成人综合视频在线 | 精久久久| 黄色一级毛片 | 亚洲精品一区二区三区在线 | 久久久成人网 | 亚洲在线一区二区三区 | 亚洲 一区 | 99久久精品一区二区成人 | 极品在线 | 国产免费xxx| 99re视频| 激情欧美一区二区三区中文字幕 | 亚洲网站观看 | 99免费在线视频 | 国产免费一级一级 | av先锋资源| av黄色在线观看 | 国产精品亚洲第一 |