當(dāng)前位置:
首頁(yè) >
why xml sucks
發(fā)布時(shí)間:2024/6/5
48
豆豆
生活随笔
收集整理的這篇文章主要介紹了
why xml sucks
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2000年以來,這是一個(gè)xml大行其道的年代。xml無所不能,我們?nèi)缤绨輝戰(zhàn)警的強(qiáng)悍戰(zhàn)斗力一般崇拜這個(gè)x開頭的萬能者。我們用它來傳輸數(shù)據(jù)(soap),定義數(shù)據(jù)(xsd),存儲(chǔ)數(shù)據(jù)(xml數(shù)據(jù)庫(kù)),配置文件(web.config或者web.xml),做網(wǎng)頁(yè)(xhtml)......換一句二戰(zhàn)的名言:如果xml能夠做飯我就娶她做老婆。
但是神話就是用來打破的。現(xiàn)在是到了打破這個(gè)頂在x字頭頂上的光圈了。
why xml sucks?
當(dāng)然沒有一個(gè)全無能的廢人正如沒有一個(gè)全能超人一樣,xml并不是在所有的時(shí)候都sucks,我的確將題目夸大了。但是我的目的還是很明確的,我們將xml神話了,然后濫用了,之后xml就在很多自己并不擅長(zhǎng)的地方sucks了。
fisrt sucks:存儲(chǔ)數(shù)據(jù)
xml天然的不適合存儲(chǔ)數(shù)據(jù)。第一是冗余數(shù)據(jù)太多,xml文件本身就夠浪費(fèi)的了,然而一個(gè)xml樹在內(nèi)存中會(huì)擴(kuò)大將近10倍的體積,也就是說1M的xml文件在內(nèi)存中會(huì)占據(jù)大約10M的空間。所以用xml來存儲(chǔ)數(shù)據(jù)非常的suck,除非是非常小的存儲(chǔ)量的情況。
second sucks:傳輸數(shù)據(jù)(比如ajax)
在Web上遠(yuǎn)程獲取數(shù)據(jù)使用xml這個(gè)龐然大物簡(jiǎn)直是太浪費(fèi)了,所以很快用ajax遠(yuǎn)程調(diào)用WS的方式很快就從xml的序列化改成了json這種輕量級(jí)的方式。群眾的眼睛是雪亮的。
third sucks:配置文件
如果用過hibernate,或者spring,或者任何java的傳統(tǒng)的類庫(kù),大概會(huì)嚴(yán)重同意xml的配置文件極大的傷害了我們的視力。確實(shí)xml的配置包含了太多的無用內(nèi)容,不容易閱讀(起碼我就覺得還不如ini來得容易看)。而且就用途來說,類似hibernate或者spring的配置來說,與其說配置倒不如說是一種外置的DSL,特別是spring。也可能是java或者c#的死板和強(qiáng)硬造就了xml,所以yaml這類看著易懂,寫起來哈皮的配置方式一直很難看到,還是IronPython的同學(xué)比較有福氣。
老實(shí)說其實(shí)我很贊同程序也就是配置的思想(修改web.config會(huì)導(dǎo)致重新編譯WebSite,那么我們修改了.cs文件導(dǎo)致重新編譯有什么區(qū)別呢?特指WebSite的情況)。
歸根結(jié)底,計(jì)算機(jī)語(yǔ)言 寫的是人,看的是機(jī)器,而xml所標(biāo)榜的語(yǔ)義在很多時(shí)候就毫無意義,為了人看著能明白,結(jié)果是犧牲了機(jī)器處理的效率,結(jié)果最后我們發(fā)現(xiàn),其實(shí)如果沒有很好的工具的話純粹書寫也絕對(duì)是一種酷刑。
so that's why xml sucks
say no to xml:當(dāng)然暫時(shí)還做不到,除非.net支持yaml。
.net和java這對(duì)難兄難弟中xml的流毒很深,所以如果要對(duì)xml say no,還是投奔動(dòng)態(tài)語(yǔ)言的懷抱吧。
【引用】
yaml:
?和GNU一樣,YAML是一個(gè)遞歸著說“不”的名字。不同的是,GNU對(duì)UNIX說不,YAML說不的對(duì)象是XML。
YAML不是XML。
介紹yaml的page:http://www.ibm.com/developerworks/cn/xml/x-cn-yamlintro/
?
轉(zhuǎn)載于:https://www.cnblogs.com/Alexander-Lee/archive/2008/08/26/1277124.html
總結(jié)
以上是生活随笔為你收集整理的why xml sucks的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让我们开一家医生假条商店吧/E
- 下一篇: 合并要素--how to use Con