最噁心的語言是 Objective-C么?
本人Android程序員,從c/c++到Java,感覺很輕鬆,為什麼oc會如此噁心的語法,這個語言是不是語法最噁心的~?
我個人接觸過的語言里我也最不喜歡Objective-C,語法倒還好,把參數插到方法名中間的寫法還挺有意思,我不喜歡它是因為給空指針發消息不會崩潰,導致程序掛掉的位置經常不是有bug的位置,調試難度大幅增加。我只學了一學期所以也沒資格評價這門語言,但是一學期過去了我依然看不出上面這個設計有什麼意義。
有個語言叫 brainfuck,Hello world是長這樣的。
++++++++[&>++++[&>++&>+++&>+++&>+&<&<&<&<-]&>+&>+&>-&>&>+[&<]&<-]&>&>.&>---.+++++++..+++.&>&>.&<-.&<.+++.------.--------.&>&>+.&>++.
希望你喜歡。
題主是理解不了, 所以就搞"能力不夠譴責來湊"嗎?
oc的語法確實有點老, 但說噁心, 還真指責不上. 我玩過的N種語言, oc的優勢也是挺突出的. 不知道題主指的哪個具體的點上噁心呢? 否則這個指責聽起來太泛泛了, 想駁都不知道怎麼駁.有幾種噁心的代碼,讓題主您見識見識,都用"hello world"來舉例1、Befunge
"dlroW olleH">:v
^,_@
2、Lolcode 網路語言形源代碼
HELLO
CAN HAS STDIO?
VISIBLE "HELLO WORLD!"
KTHXBYE
3、Brainfuck 數加號都數暈了……
++++++++[&>++++[&>++&>+++&>+++&>+&<&<&<&<-]&>+&>+&>-&>&>+[&<]&<-]&>&>.&>---.+++++++
..+++.&>&>.&<-.&<.+++.------.--------.&>&>+.&>++.
4、Piet
這是個圖形化語言,這……說實話我也不會5、Chef 就像菜譜一樣put cinnamon into 2nd mixing bowl
6、Shakespeare 啥是筆呀的劇本一樣
[enter julet]
[enter romeo and juliet]
[exit romeo]
[exeunt romeo and juliet]
[exeunt]
7、Zombie
HelloWorld is a zombie
summon
task SayHello
say "Hello World!"
animate
animate
8、Ook! 這個brainfuck差不多,別被嚇著,我要去數Ook了
Ook.Ook.Ook.Ook.Ook!Ook?Ook?Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook?Ook!Ook!Ook?Ook!Ook?Ook.
Ook!Ook.Ook.Ook?Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook!Ook?Ook?Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook?
Ook!Ook!Ook?Ook!Ook.?Ook.Ook.Ook.Ook!Ook.Ook.Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook!Ook.Ook!Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook!Ook.Ook.Ook?Ook.Ook?Ook.Ook?Ook.Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook!Ook?Ook?Ook.Ook.Ook.
Ook.Ook.Ook!Ook.Ook.Ook?Ook.Ook?Ook.Ook?Ook.Ook.Ook.Ook.Ook.Ook.
Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook!Ook?Ook?Ook.Ook.Ook.
Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook?Ook!Ook!Ook?Ook!Ook?Ook.Ook!Ook.
Ook.Ook?Ook.Ook?Ook.Ook?Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.Ook.
#……對不起,我數不下去了,但正是真的,還有ord!四個字元我實在懶得查了……
還有一些我不想寫了……比如Intercal 還有像Malbolge和BIT!
最初寫c,後來寫Java,現在OC、Swift,也開始接觸一些腳本語言
我覺得OC挺好, 最好的地方感覺是自描述
你不用這個語言,然後碰一下就覺得噁心,那沒什麼說的,噁心就別碰就好了自從寫了oc,我就不寫注釋了。
我是OC程序員,我覺得JAVA好噁心我是PHP程序員,我覺得JAVA好噁心我是JAVA程序員,我覺得PHP好噁心,
我是C程序員,我覺得上面的都噁心。
我會漢語,我學習英語法語德語,感覺很輕鬆,為什麼義大利語會有如此噁心的語法,義大利語是不是最噁心的語言?
我平時吃羊肉,我也嘗鵝肉,豬肉,雞肉,感覺也不錯,為什麼牛肉會有如此噁心的味道,牛肉是不是最噁心的肉?可以把上面的英語法語德語義大利語互換位置。
可以把鵝肉豬肉雞肉牛肉互換位置。評價一種語言不應該這麼評價。每種語言有每種語言的歷史,擅長方向,應用領域。不能這麼武斷吧當你討厭一個東西的時候就失去了向它學習的機會。OC是我見過的最接近自然語言的編程語言。雖然剛接觸的時候覺得很變態,那是因為你先學會了別的語言。
一看就沒到段位的碼農,高級碼農從不會認為學語言是件多麼麻煩的事,特別是C和C++比較熟練的,簡直就是碼農裡面的九陽神功,學深入之後在學習一般的其他語言非常容易。
如果限定編程範式為面向對象來比較C,C++,java,OC的話,我認為恰恰相反,OC是對這一範式支持最好的語言。 糾纏一些瑣碎的差異沒有什麼意義,比如selector,block相較於java的every callback must be an interface熟優熟劣,調用一個方法誰比誰短一點。語法層面的問題花時間熟悉熟悉,習慣就好了。
關鍵一個category就夠讓OC一騎絕塵了。 這個特性能更好的幫助實踐開閉原則OCP. 在很多地方都可以以此避免耦合性最大的繼承來解決問題。
例如對於一個已經存在,且已經在系統中到處被用到的類, 如果我要給他添加新功能,並不用改變原有實現的一行代碼,只要新為其實現一個category就可以做到,在某個集中的位置調用擴展的新方法即可應用(比如初始化時 )。 而在java中你只能去修改原有實現,或者替換原有類型為新類型。 當然如果抽象的好,只需要修改對象創建時的類型。 但如果不是在代碼中指定的,例如要把原來使用的TextView換成更高級的XXXTextView呢? 是不是還得去改布局的xml?
此外objc擁有這些語言中最強的運行時,也更容易做各種hook,method swilzzing等黑魔法(用這些你需要清楚的知道自己在做什麼,不要自己挖坑給自己。。)
當然你說代碼寫起來是不是有些羅嗦,這個確實有點。但通過合理的設計,能寫出更少重複,更易於維護的代碼。 所以還望放下對語法的執念,用好這把快刀。這很正常啊,obj-C這種垃圾起源是上世紀7,80年代. 你想這麼古老的語言沒火起來不就是因為設計的太差么? 跟他同期的那一幫子 如pascal, basic, 都至少火過一段.而obj-c,要不是蘋果強推.誰知道有這麼個垃圾玩意兒?它的設計理念就是反人類的閱讀習慣. 火不了正常.你厭惡也正常.
才到objective c就覺得噁心了啊。世界上不像C的語言多了去了。python,ruby,haskell,list,basic,logo什麼的都試一下就好了。
你還是太年輕,去看看易語言吧!
只能說明你沒見識,剛寫兩年程序就來評判語言了,哈哈哈哈哈
最先學的是C/OC,所以後來再學其他語言時,覺得可讀性都是渣渣
語法不像C的編程語言不是好語言。如果按照這個標準來評價,OC確實夠噁心的。
釣魚又見釣魚~
建議去讀一讀用perl寫的大型程序
因為還沒有學習lisp之類的括弧無比多的。。。
object-C 是啥?沒聽說過
是啊,有什麼問題嗎?
愛用用不用拉倒。賺錢還想不噁心?
推薦閱讀:
※Objective-C 語法上有任何的優點嗎?
※有哪些令人拍案叫絕的代碼/優化?
※你見過哪些令你瞠目結舌的C#代碼?
※Mathematica怎樣才能提高可讀性?
※為什麼程序語言要設計成使用這麼多shift?
TAG:編程語言 |
