REST,沒有 Request 怎麼可能有 Response 呢
#14 楼 @ery 不懂指針和資源管理,怎縻可能寫出高效的代碼來呢?C++0x 加上了 rvalue references && 和 move 機制,簡直把高效發揮到極致了,越看越喜歡 ;) ruby 並不簡單,比如 甚麼 class instance variable,extend 和 include 的差異,block 和 proc 的差異,singleton 啦,mixin 啦,都不是那麼直觀的。python 的 self,meta class 還不如 C 的 myclass_meth (obj, arg) 來得明白。要講簡單,還是 java 最簡單,php 次之,但是很容易把程序員訓練成呆子。靈活的語言學起來纔有意思。
python:
for x in range(1,11) :
pass
ruby
for x in 1..10
blah
end
python
def showName (self)
print self.name
ruby
def show_name
puts @name
end
相比較而言,還是 ruby 更直觀,更適合初學。只是真想寫出點像樣的東西,那些比較繞騰的 cloure,mixin 之類都得把原理搞清楚,那就比 ANSI-C 要難了。C 只是用起來不舒服,學起來還是相對容易的。而且所介紹的一些概念都是至關緊要的。若是我帶學生,學編程的步驟就是
C -> JAVA -> ruby/python/javascript/C#/C++(任選)
更外,MFC 也不好用 winform 來取代吧。除非是工作的須要,那講不了。感覺 .NET 沒甚麼前途。想作桌面程序還是學用 QT 吧。C#是很不錯的語言,比 JAVA 強得太多,只是被.NET 給限制住了。如果是自己做東西,別說跨平臺不容易,就是 win 本身,國內的一般用戶恐怕有一多半是連.net 2.0 都沒裝的。想要自己的程序不受限制,要麼做 web 要麼做 c/c++ 連 ruby/python 都是 fat ass,佈署非常頭疼的。
有沒有別的環境的,我不用 emacs 的
#8 楼 @TsingHan 應該是 CSI 吧,我不太清楚這個名目的具體所指。UCS除非是用UCS-4的(我所知的只有QT和linux上的python用ucs-4),一處理大字集就卡殼了(java/javascript/c#都是ucs-2)。雖有補救的辦法,但是很麻煩,比如python,win32上用的是ucs-2,我們編一個支持大字集的程序,從linux port 到 win 就很頭痛。說是 run everywhere,豈不成了空話!而 UCS-4 是一切字符都 4 個字節,比較浪費內存的說。但是處理效率可能會高一些,因為電腦的 word 就是 32/64 位的。
ruby 1.9 之前,本身是甚麼碼都不支持的,ruby string 就相當於 c string,只是以字節為單位。1.9 則內置了 utf-8(1 至 4 字節的不定長碼)的算法。
UCS-2 是每字符兩字節,超出 BMP 的字用 surrogate pair UCS-4 是每字符 4 字節,unicode 全包括了 utf-8 是 1-4 字節。格式為
0xxx xxxx - ASCII
110x xxxx 10xx xxxx
1110 xxxx 10xx xxxx 10xx xxxx - 漢字 CJK /CJK - A
1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx - 漢字 CJK-B/C/D
其中 xxx..為有效 bits,1110、10 之類是碼長標志位。 utf-8 可直接兼容 ASCII,這就是它的最大好處。中文字都是 3 碼或 4 碼,3 碼字有效位剛好為 16,正對應 ucs-2 的雙字節碼,這個空間就叫 BMP,中文 GBK\BIG 就收容在內。然而大字集收了 7 萬字,有 4 萬多是在 BMP 之外的,如用 utf-8,因算法是固化的,一般無障礙,遇到 ucs-2 就很麻煩。如 java,你得用到 codePoint() 一類的函數,若用到 swing 還往往顯示不出。若是 js,乾脆連函數也沒有,只得自己寫算法。
不懂 GTD 是個啥思路。懂行的朋友能不能簡單介紹一下,學習學習。
@TsingHan
1.8 本身不支持 utf-8,比如你 打 “A一大".length
,得出來的不是 3,而是 7,因為 A 一個字節,「一」「大」各三個字節。
而 1.9 each_char , length
之類默認的就是 utf8. "A一大".length
就是 3,想知道字節數要用"A一大".bytesize
。
此外如「𣊫」「𥗉」之類大字集的字(4 字節,不知你看到沒),python(win 版), java,javascript 都不能自識別,要當成 surrogate pair 來處理。如 “A一𥗉大"
,本來只 4 個字,javascript "A一𥗉大".length
得出來的卻是 5。我們要跟中文打交道,能用上 1.9 近乎完美的 utf-8 支持真是賞心樂事
@TsingHan 這樣 parse 的速度更快呀,那還用問嗎!
我也一樣,ubuntu 真是傷不起,逼得我轉到了 arch
$ ruby -e 'STDIN.readlines.uniq.each{|l|print l}' <test.txt
在文件首加上 # encoding: utf-8 就行了 ruby1.9 的 unicode 支持非常好。比 1.8 和 python 強得太多。是我所知道的編程語言中最好的。比 java\javascrpt\c# 都要好,可以直接處理 cjk b/c/d(utf-8 四字節) 的字符。
不信你在 irb 上 打: ?字.ord 它會直接給出 unicode codepoint "天地玄黃".each_char{|chr| puts chr} 也是預想的結果。
Ruby 並不比 c 簡單,只是 battery included(電池己附),標準庫中有的是好用的類和函數,相比 C 的標準庫和 C++的 STL 較容易上手。
學編程從 C 入手是正道,起碼能熟悉流程控制、基本數據類型、指針一類概念。作運維應該知道一點 bash 吧,我倒覺得 bash 是最難學的,太多希奇古怪的句法,好像迷魂湯。
服务器端可以为不支持 js 的浏览器和搜索引擎渲染出静态内容 這是甚麼意思?跟據 request header 中的 agent 發頁面嗎。實際意義不大,不如真接作 web 和移動兩個 view。而且 Node.js 是基於 gecko 的並不能自動解決跨流覽器的這兼容問題。
變量全都沒 type,一會 and 一會&& ,ansi-c 也沒有 try{}catch{}
Node.js is just a server with some server side commonjs support. It itself is not a all included framework as rails is.