描写动态和静态的作文,动态语言和静态语言的本质区别是什么?_抒情诗歌_诗歌大全

诗歌大全>诗歌>抒情诗歌

描写动态和静态的作文,动态语言和静态语言的本质区别是什么?

发布时间:2022-12-13 08:01:56

分类:抒情诗歌发布者:陌颜
動态語言是“微機時代”的代表,爲編寫KB級項目而設計的,從技術上講非常過時。windows95出現之後,絕大多數動态語言都“死掉”了。
微機時代計算機并不是獨立學科,而是屬于電工學的一個分支。所以嚴格意義上,當時沒有程序員,隻有“寫代碼的電工”。
那個年代的計算機使用軟盤儲存數據,最大容量才1.4MB,程序都特别簡單,一個操作系統才幾百kb。由于動态語言的語法簡潔,可以有效節省磁盤空間,因此在那個儲存空間非常緊張,計算機還十分“腦殘”的年代,非常有優勢,處于統治地位。
但從windows95誕生,計算機全面進入圖形化時代,程序開始變得越來越龐大,商業軟件從平均幾KB,增大到幾MB,幾十MB,甚至幾百MB。計算機成爲獨立學科,職業程序員大量出現。“微機時代”宣告結束,“IT時代”到來。
從此,動态語言越來越難以編寫出合格的程序。硬盤普及,磁盤空間不再緊張。智能IDE的出現,拉動靜态語言全面崛起,終結了動态語言的統治地位。
動态語言和靜态語言最大的區别,在于可讀性、可維護性的不同。
小學生剛剛學習寫作文的時候,總有很多字不會寫。有的老師會讓學生,把不會寫的字,畫成一個圈兒,即O。
一個句子,原本應該寫成寫成“今天下雨了”。而有些小學生不會寫“雨”字。就可以寫成“今天下O了”。這個“O”可以代表任何東西,當然也可以代表雨。
對于判作業的老師來說,這個“O”就是動态的。直到老師猜出這個“O”是雨之後,才能确定這個句子是不是病句。
這種畫圈兒的規則,是一把雙刃劍,整體講是弊大于利的。好處是可以讓學生隻掌握很少的漢字,就能開始學習寫作文。但缺點是圈兒一旦變多,就會失控。常常連作者自己都分不清,每個圈兒分别代表啥?寫的時候很容易,可第二天連自己都看不懂。
而對于高年級的學生,就不允許使用“O”了。遇到不會寫的字,就要去查字典,隻有寫出所有的字,才能把作文寫完。對于判作業的老師來說,這就是靜态的,有沒有病句,一眼便知。雖然寫出作文的門檻提高了,但表述更加清晰,無論任何時間翻出來,都能一目了然。
編程語言比我們的例子要複雜,但道理是一樣的,區别就是它不能隻畫“O”,而是不同的東西,需要用不同的“名字”表示,爲了便于說明,下面的“名字”都使用一個字母來命名。
比如一個句子是“板凳寬,扁擔長,板凳不讓扁擔綁在板凳上”。
用動态語言表示,則寫成“A寬,B長,A不讓B綁在A上”。
寫起來很省事,但維護起來就費勁了。因爲A和B可以代表任何東西,憑什麽一定就是“板凳寬,扁擔長”,而不是“肥皂寬,牙刷長”?。
而用靜态語言表示,則是“板凳A寬,扁擔B長,A不讓B綁在A上”。
通過對比發現,靜态語言比動态語言,多了一開始的“板凳”和“扁擔”這兩個詞語。相當于從一開始,就标明了A是板凳,B是扁擔。雖然要多寫四個字,但可以避免歧義,增強可讀性。
隻要用腦子記住“A是板凳,B是扁擔”,豈不就能達到同樣的效果?僅僅一個句子當然是可以的,人人都能記得住。而商業程序的代碼量,一般在十萬行以上。你不僅需要記住什麽代表板凳和扁擔,你還得記住水桶,暖壺,掃帚,簸萁,鍋,碗,瓢,盆,油,鹽,醬,醋,煙,酒,茶,糖。
所以,爲了解決這個問題,動态語言就需要靠加注釋,來彌補自身可維護性的不足。可這樣做也是不靠譜的。因爲如果對代碼進行封裝,所需要注釋的文字量,就會超過代碼量本身,到時候你根本不是“寫代碼加注釋”,而是“寫注釋加代碼”。
總之,動态語言隻适合寫非常非常小的程序,中型以上的程序,通常要使用靜态語言編寫,才會比較容易維護。我個人隻在編寫1000行以内的小工具時,才會使用動态語言,如Python、Lua等。但即便如此,還是常常一不小心,就陷入“第二天看不懂”的窘境。
當然,“不适合”并不代表“絕對不能”,就像“徒手搬磚隻适用于小型建築,大中型建築要使用工程機械”,這說法我一般認爲是正确的。但總有一些人會舉極端的例子來反駁,說萬裏長城和金字塔是用手磊出來的,這就實在沒意思了。
動态語言存在的的第二個問題,就是容易産生BUG,并且很難在第一時間發現。
假如我們遇到一個遊戲,它是用靜态語言編寫的,其中有一段代碼是這樣的僞代碼:。
角色A=李逍遙;。
怪物B=樹妖;。
技能C=禦劍術;。
武器D=鋼劍;。
然後我們編寫了一段代碼:“A裝備着D,發動了C,擊敗了B”。
這段代碼很容易翻譯,就是“李逍遙裝備着鋼劍,發動了禦劍術,擊敗了樹妖”。
假如我們一時不小心,把代碼寫成“李逍遙裝備着樹妖,發動了鋼劍,擊敗了禦劍術”的話,會怎麽樣?。
這時候IDE會立刻報錯,并提示你出現了三個錯誤。
1,樹妖是怪物,不能裝備。
2,鋼劍是武器,不能當做技能使用。
3,禦劍術是技能,無法被擊敗。
如果不排除這些錯誤,你的程序就無法繼續順利編寫下去。所以你隻好先排除這三個問題之後,才能繼續寫代碼,套用前面的例子,也就是高年級學生“查字典”了。
由于絕大多數的問題,都必須在寫代碼的過程中,通過“查字典”排除掉,所以隻要你的程序可以順利寫完,運行起來也基本不會有太大的問題了。
但如果這個程序是使用動态語言編寫的,則不會報錯。既然B可以是任何東西,那憑什麽必須是鋼劍,而不能是樹妖?這完全符合動态語言的語法規則,IDE當然不會報錯。
所以直到你的程序寫完,BUG一堆一堆的冒出來,IDE卻始終認爲你的代碼完全正确。
所以使用動态語言,有很多錯誤,IDE是不會幫你檢查的。你就要在每一個可能出錯的地方,加上注釋,提醒自己A是啥東西,B又是啥東西。。。。。最後你會發現,若要保證你自己寫的程序不出BUG,而且日後還可以正常維護的話,那麽你需要寫的注釋,比代碼本身還多。寫着寫着,你就不像在編程了,而像在寫一本說明書。

动态语言是“微机时代”的代表,为编写KB级项目而设计的,从技术上讲非常过时。windows95出现之后,绝大多数动态语言都“死掉”了。
微机时代计算机并不是独立学科,而是属于电工学的一个分支。所以严格意义上,当时没有程序员,只有“写代码的电工”。
那个年代的计算机使用软盘储存数据,最大容量才1.4MB,程序都特别简单,一个操作系统才几百kb。由于动态语言的语法简洁,可以有效节省磁盘空间,因此在那个储存空间非常紧张,计算机还十分“脑残”的年代,非常有优势处于统治地位。
但从windows95诞生,计算机全面进入图形化时代,程序开始变得越来越庞大,商业软件从平均几KB,增大到几MB,几十MB,甚至几百MB。计算机成为独立学科,职业程序员大量出现。“微机时代”宣告结束,“IT时代”到来。
从此,动态语言越来越难以编写出合格的程序。硬盘普及,磁盘空间不再紧张。智能IDE的出现,拉动静态语言全面崛起,终结了动态语言的统治地位。
动态语言和静态语言最大的区别,在于可读性、可维护性的不同。
学生刚刚学习作文的时候,总有很多字不会写。有的老师会让学生,把不会写的字,画成一个圈儿,即O。
一个句子,原本应该写成写成“今天下雨了”。而有些小学生不会写“雨”字。就可以写成“今天下O了”。这个“O”可以代表任何东西,当然也可以代表雨。
对于判作业的老师来说,这个“O”就是动态的。直到老师猜出这个“O”是雨之后,才能确定这个句子是不是病句。
这种画圈儿的规则,是一把双刃剑,整体讲是弊大于利的。好处是可以让学生只掌握很少的汉字,就能开始学习写作文。但缺点是圈儿一旦变多,就会失控。常常连作者自己都分不清,每个圈儿分别代表啥?写的时候很容易,可第二天连自己都看不懂
而对于高年级的学生,就不允许使用“O”了。遇到不会写的字,就要去查字典,只有写出所有的字,才能把作文写完。对于判作业的老师来说,这就是静态的,有没有病句,一眼便知虽然写出作文的门槛提高了,但表述更加清晰,无论任何时间翻出来,都能一目了然。
编程语言比我们的例子要复杂,但道理是一样的,区别就是它不能只画“O”,而是不同的东西,需要用不同的“名字”表示,为了便于说明,下面的“名字”都使用一个字母来命名。
比如一个句子是“板凳宽,扁担长,板凳不让扁担绑在板凳上”。
用动态语言表示,则写成“A宽,B长,A不让B绑在A上”。
起来很省事,但维护起来就费劲了。因为A和B可以代表任何东西,凭什么一定就是“板凳宽,扁担长”,而不是“肥皂宽,牙刷长”?。
而用静态语言表示,则是“板凳A宽,扁担B长,A不让B绑在A上”。
通过对比发现,静态语言比动态语言,多了一开始的“板凳”和“扁担”这两个词语。相当于从一开始,就标明了A是板凳,B是扁担。虽然要多写四个字,但可以避免歧义,增强可读性。
只要用脑子记住“A是板凳,B是扁担”,岂不就能达到同样的效果?仅仅一个句子当然是可以的,人人都能记得住。而商业程序的代码量,一般在十万行以上。你不仅需要记住什么代表板凳和扁担,你还得记住水桶,暖壶,扫帚,簸萁,锅,碗,瓢,盆,油,盐,酱,醋,烟,酒,茶,糖。
所以,为了解决这个问题,动态语言就需要靠加注释,来弥补自身可维护性的不足。可这样做也是不靠谱的。因为如果对代码进行封装,所需要注释的文字量,就会超过代码量本身,到时候你根本不是“写代码加注释”,而是“写注释加代码”。
总之,动态语言只适合写非常非常小的程序,中型以上的程序,通常要使用静态语言编写,才会比较容易维护。我个人只在编写1000行以内的小工具时,才会使用动态语言,如Python、Lua等。但即便如此,还是常常一不小心,就陷入“第二天看不懂”的窘境。
当然,“不适合”并不代表“绝对不能”,就像“徒手搬砖只适用于小型建筑,大中型建筑要使用工程机械”,这说法我一般认为是正确的。但总有一些人会举极端的例子来反驳,说万里长城和金字塔是用手磊出来的,这就实在没意思了。
动态语言存在的的第二个问题,就是容易产生BUG,并且很难在第一时间发现。
假如我们遇到一个游戏,它是用静态语言编写的,其中有一段代码是这样的伪代码:。
角色A=李逍遥;。
怪物B=树妖;。
技能C=御剑术;。
武器D=钢剑;。
然后我们编写了一段代码:“A装备着D,发动了C,击败了B”。
这段代码很容易翻译,就是“李逍遥装备着钢剑,发动了御剑术,击败了树妖”。
假如我们一时不小心,把代码写成“李逍遥装备着树妖,发动了钢剑,击败了御剑术”的话,会怎么样?。
这时候IDE会立刻报错,并提示你出现了三个错误。
1,树妖是怪物,不能装备。
2,钢剑是武器,不能当做技能使用。
3,御剑术是技能,无法被击败。
如果不排除这些错误,你的程序就无法继续顺利编写下去。所以你只好先排除这三个问题之后,才能继续写代码,套用前面的例子,也就是高年级学生“查字典”了。
由于绝大多数的问题,都必须在写代码的过程中,通过“查字典”排除掉,所以只要你的程序可以顺利写完,运行起来也基本不会有太大的问题了。
但如果这个程序是使用动态语言编写的,则不会报错。既然B可以是任何东西,那凭什么必须是钢剑,而不能是树妖?这完全符合动态语言的语法规则,IDE当然不会报错。
所以直到你的程序写完,BUG一堆一堆的冒出来,IDE却始终认为你的代码完全正确。
所以使用动态语言,有很多错误,IDE是不会帮你检查的。你就要在每一个可能出错的地方,加上注释,提醒自己A是啥东西,B又是啥东西。。。。。最后你会发现,若要保证你自己写的程序不出BUG,而且日后还可以正常维护的话,那么你需要写的注释,比代码本身还多。写着写着,你就不像在编程了,而像在写一本说明书。

吹皱了孤单的身影

我在向你倾诉你却依然东流去潺潺的水声是我的悲伤流水能带走什么我应该忘记什么垂柳轻拂流水荡漾吹皱了孤单的身影岸边青翠的春草摇曳着往事是你和我的故事...[全文阅读]

综述:方面级情感分析(三)Aspect

基于方面的情感分析AspectBasedSentimentAnalysis,ABSA[1]是一种细粒度的情感分析任务,旨在识别一条句子中一个指定方面Aspect的情感极性。一个句子中可能含有多个...[全文阅读]

青春就是这样

——致我们这样可爱的青春青春就是这样如树叶间的阳光落在脸上微微的痒青春就是这样如午后的太阳雨溢在掌心淡淡的香青春就是这样如夏暮的虫鸣散在苇旁轻轻的响青...[全文阅读]

描写中国美丽草原的现代诗歌

《九月》。——海子。目击众神死亡的草原上野花一片。远在远方的风比远方更远。我的琴声呜咽泪水全无。我把这远方的远归还草原。一个叫木头一个叫马尾。我的琴声...[全文阅读]

描写思绪回想句子,有没有关于回忆过去的句子?

整理了31句有关回忆过去的句子,喜欢自取。1.当初的誓言太完美,像落花满天飞,让相思变成灰。2.那只是一段浅浅的过往,却不知觉地凝成了悲伤,随着夏末的风,吹痛了我干涸已...[全文阅读]

秦可作品:余生爱你

余生爱你面对繁华而纷乱的当代社会,有时我也很茫然,但彷徨之余我选择坚强的面对,勇往直前地拼搏。虽然我不够富有,但我会给你幸福、快乐。我会用自己的生命呵护你,会用...[全文阅读]

本文标题:描写动态和静态的作文,动态语言和静态语言的本质区别是什么?

本文链接:https://m.biqugena.com/article/522415.html

上一篇:描写啄木鸟的片断,啄木鸟疯狂啄树为什么不得脑震荡?

下一篇:更多抒情诗歌

抒情诗歌相关文章
更多抒情诗歌文章

精选抒情诗歌

经典诗歌分类阅读

抒情诗歌热点