編程是個什麼樣子

  最近去了解了財務的一些知識,發現會計記賬屬於西方的模式,表現思路爲公司是一個對立的機構,投資人和債權人都在一方,公司在另一方。國內的一些公司不是的,一些公司是屬於個人所有,先有個人,再有公司,再有公司對應的投資人或者債權人。公司是屬於一個人一個家族,而不是作爲買賣流通。

  這樣就是會計的事,會計用西方的公司思路,滿足了公司對記賬的基本要求,便於上報國家或社會。可是相同的上報內容,也可以用另一些自創的方式、適應國情的方式來匯賬統計。不管使用哪種方式,有一個基本的輸出需求在,只要覆蓋了這個需求,不管是怎樣的輸出形式並不被在意。

  很多事都是這個樣子,一些職業的產生就是爲了做到一些事,不管職業內部用怎樣的方式去實現。編程也是爲了做到一些事,就不清楚編程的需求集合。

  想起來法律的事。法律有很多條例,有些人會去背誦這些條例,並且當遇到事情時候,從相關條例分類去找相關的法律依據。就是依據法去尋找法。可是法律本身是覆蓋勞動事務中的各種糾紛,那些本身就有對錯的糾紛。法律只是用來“可參考的憑據”,把那些對錯很好地闡述記錄出來。所以遇到事情應該是有自我的評斷,並且根據這個評斷來尋找相關法律。並沒有法律不公正了,只有自己沒有找到相關條例。不是站在法律的表述上去尋找條例,而是站在法律的意圖方向上去尋找依據。

  這樣就是先有意圖,後有相關法律。先有事實發生的客觀評斷,後有把這個評斷描述出來的過程。法律只是在不斷細化覆蓋“客觀評斷”,法律有它的需求集。

  編程也要覆蓋它自己的需求集。並不是使用什麼語言,或者並不是使用什麼層次的語言,它有自己的集合需要滿足。到現在沒有找到這個集合,就看不清編程是個什麼樣子的。

  大多開始接觸的是Java Phythen或PHP之類的語言,有對象屬性。或者去探究過c,明白一些對象的由來,怎麼拼湊出來。每門語言,像Java,都有自己的知識集。垃圾回收,多態方式,線程安全,Spring。對應的數據庫,也都有自己的實現方式,爲了快速的讀寫或者數據共享,還產生緩存上的數據庫。

  也包括程序用戶界面的表現方式,以前是窗口,現在更多用HTML,實現各種交互和表現需求。

  還有硬件方面的,除了電腦筆記本,還有手機或者pad。硬件作爲實現的底層,覆蓋了很多需要容納的需求。從硬件到最後的對用戶表現,呈現了一個怎樣的需求集?

  微機原理以8086等簡單的CPU作爲研究模型,進行彙編上的探討。機器有輸入,數模轉化,處理,數模轉化,輸出。“處理”自然就是CPU,大約有移動、計算和中斷。中斷由外部設備決定,中斷的形成更多構建在外圍硬件線路的拼接上。再朝裏走就是CPU本身,可以大體分成的七步,並在個別指令中循環使用。從來沒有接觸過CPU內部的課程,國內也不產這種課。

  這樣每一步裏邊都有自己的知識網絡,從硬件底層到業務編程及最後展現給用戶。那這樣編程原本是什麼樣子,它要去實現的需求是什麼?

  或許做程序做久了,就有一些對在做的事情的思考。可是在進入這一件事情之前,應該能看到些這件事情是在做着什麼。

  好想創建一門語言,因爲Java已經顯得老舊,其它的語言不瞭解,顯得與底層脫離得太遠。如果寫語言的話肯定是用C來寫吧,再有自己的編輯和鏈接模式,可以直接在一些平臺上執行。可是如果寫的話,應該不是想着用C去實現,而是想着要做到什麼,用C去拼湊。也就是不使用C中的思想,不使用C作爲思考依據。或者使用匯編思想,或者使用更底層的命令集合,只是用C來表示這個思路過程。C是路過量,不是起始量。起始量是自己理解的編程本身的樣子。

  至少看清編程的樣子,是有這個用處的。至於其它用處,主要在於明心。

  就像開頭舉例的兩個行業或者其它事情一樣,這件事主要是在做什麼,然後去滿足這個需求集合。不把已經存在的作爲參考依據,而是弄清楚事情本身的意圖,用已經存在的形式去表現出這個意圖。賦事情以靈,大概可以這樣說。

  有多少人想着去看編程的樣子?多少人還可以追溯着上游繼續去講究?在意編程好多年,也沒能沉澱弄明白太多事,有些部分就像一潭渾水。編程的思考是計算機的思考方式,長時間使用這種思考方式會對生活有影響。就像人工智能課上有老師介紹說一個同事收拾東西回家,做人臉識別的,在國外很久了放假回家。桌子上擺放了很多他妻子的照片,那老師問放着這麼多照片你一定很想念你的妻子吧,那同事回答說,她們看起來都一樣。那語言情境下的意思應該是在說他妻子的照片和別的女人的照片看起來都一樣,自己區別不出來。講臺下的學生聽到這段話都笑了,不過確實有這種影響。對生活的影響。隨着深入就會思路朝那方面改變,是計算機的思路過程而不是自然的思路過程,這並不是可以笑得出來的事,是真實的事。

  當然計算機影響人,人也可以影響計算機,讓它朝着更自然的方向發展。可以想出來一些更高效的算法,更適合人思考的算法。更適合人思考就更容易融入編程,更容易應對同樣人的思考產生的社會勞動,也就是更高效的算法。探究底層就可以遇到一些這樣的算法思考。

  從彙編轉換成C是一種思考,把C編輯成Java也有裏邊的思考處理。那麼指令集到彙編自然有它的思考。這些都完成了怎樣的路,Java代碼都是怎樣的指令集在處理,它們怎樣繞行CPU。我想的只是減少用電量,會不會有點遠?因爲現在的框架都是好強的污染,反應在用電上就是污染環境。做同樣的事偏偏繞行浪費電。像Spring就是,java本來是過程語言編輯過來的,把過程語言轉換成對象語言,再把對象語言破解轉換成面向過程,如此反覆。依賴注入就是做的這件事。Java被依賴注入污染得,我都不想用Java了,雖然只會這一個語言。本來是架構的事,卻交給Spring去動態注入,這樣繁複的程序還怎麼擴展,本身整體思路就錯了。國內好少有人批評這件事,卻依然鼓吹它的好。追溯緣由,本來就沒有人做得了架構,沒有人明白指令集到彙編的轉變過程,喫不透底層就用不靈活,用不直白。

  去英文裏學指令集和彙編的轉變過程嗎?這個不好弄,本來上邊這些層就比較不穩當,需要支撐,再去找更底層就不好找了。我本來覺得停留在抽象層,和底層隔斷就好。後來漸漸發現所謂的抽象層可以隔斷底層知識,只是淺薄人的糊弄,根本沒有隔斷,到一定積累量必須要瞭解底層才能弄明白爲什麼要那樣做,不然腦袋裏每次走到那個地方就有些磕絆。減少磕絆就多了平順,多了工作年限。

  以前都指望大俠翻譯一下,現在大蝦都長老了,而自己也長大了,只能靠自己去挖,真糾結。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章