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

對語言之爭的看法

開發(fā) 后端
又看到語言之爭,各種吐嘈,唉…… 說說我的看法,我覺得一門編程語言用到極致就行了,何必糾結(jié)語法層面的差異?

又看到語言之爭,各種吐嘈,唉…… 說說我的看法,我覺得一門編程語言用到極致就行了,何必糾結(jié)語法層面的差異?

 

因?yàn)闅v史原因,我用.NET比較多,當(dāng)然Windows編程、Java編程、Linux/Unix編程、C/C++編程、Python,JavaScript等動(dòng)態(tài)語言甚至是匯編編程我也粗有研究,也測試過一門動(dòng)態(tài)編程語言Python。刨去Visual Studio昂貴的費(fèi)用(我一開始用的是盜版,當(dāng)然現(xiàn)在因?yàn)锽izspark的關(guān)系終于用上正版了……),說實(shí)話我還是比較喜歡C#的,做項(xiàng)目的時(shí)候,我這個(gè)人沒什么節(jié)操,什么語言來錢快用什么語言。

 

那怎么個(gè)來錢快呢?

1. 學(xué)習(xí)成本比較低,在編程時(shí)碰到不會(huì)用的函數(shù)我一般都是點(diǎn)點(diǎn)點(diǎn),在下拉框里找。不知道我是人笨還是怎么回事,反正我每次寫Python,JavaScript、PHP這些程序的時(shí)候,每次都得Google,比如啥“Open a database in python”,“Javascript substring”啦之類的。

 

也許你會(huì)說不是有Eclipse嗎?Eclipse的確是一個(gè)很偉大的編輯器,但就一點(diǎn)不好,這個(gè)慢啊!每次打開工程,就會(huì)讓我有種天黑下來的感覺。特別是掛上一些插件,特別是Maven的插件,Oh My Lady Gaga,隨便打開一個(gè)開源工程就在那更新什么Index,暈死,其實(shí)我就是想小小的編譯一下代碼看看效果,然后就看到命令行一陣陣的輸出下載什么不知所云的包文件,Maven果如其名,像我這種非Java內(nèi)行,總是要從這個(gè)天黑等到那個(gè)天黑才能編譯完一個(gè)小程序。

 

2. 編譯方面,這方面我對C/C++最大的抱怨就是,現(xiàn)在內(nèi)存都已G計(jì)算了,怎么還是在用KB內(nèi)存時(shí)代的單文件編譯再鏈接的方式編譯程序?隨便寫個(gè)程序就是各種-I,-L,-l選項(xiàng),更讓人抓狂還有C++ mangling這東東,不僅不同編譯器的mangling方式不一樣,這個(gè)編譯器不能鏈接那個(gè)編譯器生成的庫文件也就罷了!同一個(gè)編譯器不同版本Mangling也有問題,我04年改squid的源碼,加一個(gè)代理計(jì)費(fèi)的功能,數(shù)據(jù)庫用的是Oracle,為了方便用C++和OCCI寫計(jì)費(fèi)程序,我靠,同樣是Oracle的OCCI庫,我在Mandrake(這個(gè)版本的Linux稍微新一點(diǎn)的IT人估計(jì)都沒聽說過)竟然無法鏈接OCCI庫,就是因?yàn)镺racle發(fā)布OCCI時(shí)是在Redhat等GCC 3上編譯的,而我的系統(tǒng)是GCC 4?!為了避免格盤裝Redhat(我那個(gè)時(shí)候的機(jī)器是512M內(nèi)存的賽揚(yáng)機(jī),雖然早就開始玩VMware,但那個(gè)配置跑虛擬機(jī)基本上等于自殺,而Mandrake那時(shí)的界面的確比Redhat好看好多,什么WindowMaker, Enlightenment之類的窗口管理器真的會(huì)讓你有種黑客的感覺),于是我就用OCI實(shí)現(xiàn)了最小集合的OCCI的接口,才搞定這個(gè)事情。

 

更不要提什么autoconf, automake, make之類各種詭異的語法了,還有g(shù)db全命令行的調(diào)試界面,哦,對了,如果有興趣,建議你玩玩emacs里啟動(dòng)gdb、jdb之流體驗(yàn)一下偽所見即所得的源碼級調(diào)試支持。

 

3. 編輯器支持,這一點(diǎn)我對Python抱怨非常大,前些天我自己給svn寫的python插件出了點(diǎn)小問題,那我得調(diào)試修復(fù)代碼呀!各種print那就不說了,更要命的是,原來的python程序是在emacs下寫的,為了圖快就用Visual Studio編輯,結(jié)果Visual Studio里的Tab鍵代表的空格數(shù)有那么一點(diǎn)點(diǎn)的小差別,解釋器也不告訴你是哪一行,就說了一個(gè)什么“Indention miss match”就退出了。最后還是在記事本里編輯才解決這個(gè)問題,12345678(個(gè)空格),一行行地修復(fù)。本來我費(fèi)了些功夫才在自己設(shè)計(jì)的編程語言里加上縮進(jìn)支持的,經(jīng)過這一鬧騰徹底把那些代碼刪了。

 

這方面,Object-C我就不想說什么了,xcode運(yùn)行的好端端的,突然就不見了……大概是因?yàn)槲以赑C上用虛擬機(jī)跑Mac OS X引起的吧。

 

4. 調(diào)試支持,這也是為什么我喜歡用C#、.NET的原因,各種調(diào)試支持,什么跟進(jìn)到數(shù)據(jù)庫的存儲過程,遠(yuǎn)程調(diào)試,跟進(jìn)遠(yuǎn)程DCOM RPC接口,內(nèi)存驗(yàn)尸分析,C#和C++的混合調(diào)試?yán)玻谏a(chǎn)服務(wù)器調(diào)試時(shí)自動(dòng)幫你從源碼服務(wù)器上下載正確版本的源碼啦。Python、PHP等動(dòng)態(tài)語言我不知道各位是怎么調(diào)試的,對我這種不常用的人來說,就是各種print…… 如果不是后面瀏覽器里集成了JavaScript調(diào)試支持,以前也是各種window.alert – 邦邦邦邦,object undefined - 。

 

Java其實(shí)對調(diào)試的支持做的也還可以,JDK里也有不少的工具,比如jstack, jhat之類的,jhat的OQL的思想的確不錯(cuò)!只不過很可惜,如果是在生產(chǎn)服務(wù)器上用,找源碼有時(shí)還是蠻費(fèi)勁的。當(dāng)然如果機(jī)器配置差點(diǎn),大白天也會(huì)看到日食的。

 

5. 可配置性,這里我恨透了所有以XML做配置文件的程序,只要是配置錯(cuò)那么一點(diǎn)點(diǎn)就罷工,這也就罷了,象tomcat竟然還有好幾個(gè)xml配置文件,什么context.xml,server.xml,web.xml。象我這樣性急的人,有時(shí)就是想部署一個(gè)簡單的網(wǎng)站而已,結(jié)果就是各種less catalina.xxxx.log,Google “How to deploy a servlet in tomcat”。好容易部署成功吧,運(yùn)行一下又掛了,less一下:

 

Org.Hibernate.XXXException……

 

只好用eclipse attach tomcat進(jìn)程上去看看……

 

6. 類庫支持,什么gem、pear之類的,我就不明白為什么rubygems這種看起來跟紅寶石、葡萄酒一樣的單詞怎么就會(huì)變成敏感詞匯?

 

在Ubuntu上裝個(gè)PHPUnit都費(fèi)勁,就僅僅是因?yàn)镻HPUnit需要用最新的pear安裝,然后我用pear自己給自己升級就不知道怎么的裝到home目錄里了?結(jié)果是不停地cp –r ~/pear/XXXX /usr/share/pear/XXXX

 

7. 編寫GUI程序的便利性,當(dāng)然C++有QT,WTL, MFC,Python有pygtk,Java有swing之類的東東,但我實(shí)在不想就為了在窗口上放個(gè)按鈕控件,注冊一個(gè)點(diǎn)擊事件,一會(huì)用boost::function之類的玩意封裝個(gè)回調(diào)函數(shù),一會(huì)寫個(gè)什么new IXXXX() { void Click(); }神馬的匿名類。

 

拖拖拉拉,這點(diǎn)點(diǎn)那點(diǎn)點(diǎn)多好?

 

我上面抱怨了這么多,各位編程大牛肯定覺得是我太菜,不懂就別瞎說。

 

別的語言我就不多說了,我覺得其實(shí)一個(gè)程序沒有必要非要用一門編程語言寫,哪個(gè)合適就用哪個(gè)好了,比如去年我用C#給網(wǎng)游寫些輔助,除了訪問內(nèi)存、調(diào)用函數(shù)用些C++和匯編外(其實(shí)都可以用C#寫,但是不想P/Invoke麻煩),在進(jìn)程里注入個(gè).NET虛擬機(jī)也不覺得有什么不方便的地方,而且從里面開一個(gè)remoting服務(wù),避免了很多寫前臺管理程序的各種煩。

 

那我最近寫個(gè)C#程序,有幾個(gè)Java的庫沒心思找替換的庫,用ikvm好像也沒什么大問題,而且在Linux用mono跑這個(gè)程序也沒有問題哦。

 

至于在一些規(guī)則系統(tǒng)里,需要運(yùn)行python、ruby、javascript等動(dòng)態(tài)腳本寫的規(guī)則定義時(shí),無非就是用DLR解釋運(yùn)行一下好了。

 

至于調(diào)用COM組件,在IE里把.NET程序當(dāng)作ActiveX控件,與Win32/COM互操作,我覺得COM Interop在這方面做得已經(jīng)很好了。

 

再不濟(jì),如果是分布式環(huán)境,大不了就用Ioc和SOA整合一下其他語言寫的系統(tǒng)好了,為什么非要糾結(jié)于一兩門編程語言語法上的優(yōu)劣呢?

 

不好意思,函數(shù)語言還沒研究過,就不提它們了。

原文鏈接:http://www.cnblogs.com/killmyday/archive/2012/08/13/2635642.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2017-10-13 10:02:12

Java

2012-08-07 09:29:09

程序員編程

2020-09-08 17:09:49

編程語言后端開發(fā)

2019-07-30 07:30:56

編程語言PythonJava

2011-12-11 19:06:57

Windows Pho

2012-02-13 10:03:31

編程開發(fā)

2010-03-22 13:35:49

云計(jì)算

2009-11-20 09:14:15

Chrome OS系統(tǒng)評價(jià)

2011-11-03 09:46:39

社交網(wǎng)絡(luò)

2012-11-09 10:46:24

Canonical

2016-10-12 18:58:15

大數(shù)據(jù)PIGHive

2017-06-14 09:37:05

R語言Apriori算法

2021-10-23 06:42:14

Go語言接口

2018-08-01 15:10:02

GolangPython語言

2021-10-03 22:18:14

Go語言整數(shù)

2020-12-31 09:06:44

Go語言Reflect

2022-10-21 18:41:23

RustC++Azure

2009-09-24 08:45:26

微軟競爭對手Chrome

2011-01-14 14:22:50

Linux匯編語言

2011-01-14 14:08:17

Linux匯編語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美国产日韩在线观看 | 久久成人一区 | 夜夜草| 亚洲高清在线 | 国产欧美一区二区三区国产幕精品 | 日韩一级电影免费观看 | 国产精品区一区二区三区 | 久久综合伊人一区二区三 | 精品亚洲一区二区三区四区五区 | 久久精品国产清自在天天线 | 亚洲国产成人精品久久久国产成人一区 | 中文字幕乱码一区二区三区 | 国产女人精品视频 | 在线黄av| 午夜在线影院 | 国产美女在线观看 | 欧美精品一区二区三区视频 | 精品国产一区二区三区久久影院 | 玖操| 日本a视频 | 国产黄色大片网站 | 一区二区三区播放 | 在线免费看91| 三级成人片 | 国产高清在线精品 | 国产精品久久久久久久久久 | 情侣av| 欧美激情视频一区二区三区在线播放 | 日韩高清中文字幕 | 欧美一区二区三区在线 | 一级免费a | 欧美美女二区 | 奇米四色在线观看 | 日韩精品一 | 视频在线亚洲 | 国产精品美女视频 | 欧美一区二区三区视频 | 日韩欧美在线视频 | 91免费观看 | 亚洲精品视频在线观看视频 | 国产精品小视频在线观看 |