如果代碼按行付費,會有什麼好玩的事情發生?
還會有人用oop嗎
再也不會有大括弧聖戰了...
轉自西喬的公眾號,網侵刪...程序員聯盟發布了一條消息:以後我們的代碼要按行收費。客戶們立即就炸了鍋,按代碼收費?那你程序員不是想怎麼寫就怎麼寫,我們讓你們做個項目,你寫個空行,寫點注釋什麼的,誰來管?
物競天擇。有人有需求就立即有人響應。正當這些客戶無所適從的時候,一個職業產生了:代碼縮行師。客戶在審查項目交付的時候會先去縮行事務所請一位縮行師。縮行師的職責就是在保證不改變原有系統功能的前提下將程序最大程度的縮減行數,縮行師按照縮減行數的百分之10收費。
縮行師是程序員最大的天敵。
縮行師也是分等級的,最低級的縮行師只能只能縮縮空行,挪一挪括弧,一般人都能做,大抵是被程序員看不起的,往上一級就要稍微懂一點編程知識了,知道怎麼把定義的變數合到一行,怎麼去掉可以去掉的括弧,他們已經一腳踏入了領域和空間的境界了,他們許多是程序員做不下去為了生計討口飯吃,倘若搞好客戶關係,也能活的很滋潤。
再往上一級,這些人是縮行師界的精英,而且隨時可以成為最優秀的程序員,他們把無聊的體力工作交給下邊的人去做,自己則和程序員鬥智斗勇,"你這個變數沒必要定義","你這兩處的功能重複了,回去重構一下","你這個是自己造輪子,去找別人開源寫好的"。
他們有的曾經是最好的程序員,有的是因為忍受不了縮行師的百般挑刺,無奈轉行,有的是因為滿足內心找茬的慾望。他們有的是從事多年的縮行師,從學徒起一步一步坐起,扎紮實實的走到現在的地位,這個級別的縮行師是各大縮行事務所爭搶的對象。
每個客戶都以邀請到他們為榮,預約的人多了,事務所開始準備"縮號",客戶只有搖到了縮號才能有幸邀請到這些人,有的客戶更是為專家縮號大打出手,於是又催生了一種叫"縮牛"的職業,不再贅述。
他們某種程度上已經達到了縮行師的頂峰,但還有一種傳說中的存在,他們是打破規則的存在,如果你僥倖看到他們的傑作,你就會發現上面提到的都是浮雲。一行,只需要一行就夠了,什麼工程,什麼項目,只需要一行。jQuery.min.js就是他們的傑作。
有一個站在巔峰的男人曾經應拉里·佩奇的邀請將谷歌的所有代碼寫成了一行,並且能完整的實現了谷歌現有的所有功能,人們甚至發現谷歌搜索快了將近30%。後來有華爾街和矽谷的資深從業者看到這行代碼後久久不能平靜,對這行代碼給出了5600億美元的估值,當然這行代碼一般人是看不完的,據說這行代碼的長度可以從加州連接到M31星系。
程序員的生活變得越來越艱難,程序員聯盟本身的福祉變成了災難,儘管隨著代碼的行數減少,單行的價格在不斷的升高,程序員行業的整體質量也在不斷的提高,但依舊艱難。程序員聯盟又做了一個艱難的決定:最終的代碼每行不得多於200字元。對於一般的程序,一行200字元足夠了,即使一行內容長,也可以分行解決。
在程序員聯盟認為一勞永逸的同時縮行師的行業發生了驚天動地的變化,對於底層的沒有太大變化,但對於習慣把程序擠到一行的從業者來說無異于晴天霹靂。當原來的方法不適用的時候他們又何去何從?
在進行了多次縮行師技術交流峰會之後他們找到了一個對策,那就是將計就計,把每行的代碼都調整到200字元,在規則的範圍內達到最大的收益。於是縮行師行會陸續制訂了縮行師的規範,守則。
越來越多的人開始分享他們把代碼調整成200字元的技巧,有的縮行師貼出代碼提問「怎麼把這段代碼縮成標準的格式?",就會有很多熱心的縮行師為其解答,也會有不少偽裝成縮行師的程序員冷嘲熱諷甚至謾罵。
隨著縮行技術的發展和普及,程序員和客戶由一開始看到凹凸不平的代碼變成一個個整齊的長方形的代碼的一臉懵逼到漸漸習慣再到麻木。很多年過去以後,新的程序員甚至以為長方型的代碼就應該是代碼本來的樣子。
程序員的世界也發生了很大的變化,越來越多的客戶為了節省一筆縮行師的費用,開始要求程序員去寫每行200個字元的長方形代碼,程序員經過了這麼多年的耳濡目染也漸漸的接受了,這第一批寫方塊代碼的程序員漸漸引領了代碼的潮流《編程方塊》《代碼方塊之道》《方塊之美》《重構-方塊化改善既有代碼》。。這些書開始變得越來越暢銷。
縮行師除了偶爾被叫去做做code review,需要的越來越少了,整個行業也開始沒落。
有人的地方就有江湖,有利益的地方就有衝突。
java程序員的福音,項目還沒開工,已經先賺了幾十萬。
我會跳槽到百度,然後大規模codegen,讓彥宏哥破產
---------------------------------------------------
codegen之外,我們還可以選擇以下手段為公司貢獻更多:
+ 把那些個.c/.cpp逐文件gcc -E一下再重新checkin...
+ 先gcc -O0得到.o文件,再反編譯成C重新checkin...希望他們都是模板重度用戶啦
彙編重回各大排行榜榜首
王小波《革命時期的愛情》主人公王二去美國留學的時候寫代碼的故事:
我編的第一批軟體極有詩意。李後主有詞云:
紅豆啄殘鸚鵡粒。
我的軟體就曲折和彈性而言,達到了此句的境界。後主又有殘句云:
細雨流濕光。
我的軟體就有這麼簡約,別人編十行,我只用一行。等到交活時,教授看了吃一驚:這麼短!能跑(run)嗎?我說你試試嘛。試完了他和我握手道:謝謝!但是到了開支時,我的錢比別人都少。原來是按行算錢,真把我氣死了。等到交第二批軟體時,我就吃棉花屙線屎。古詩云:
一個和尚獨自歸,
關門閉戶掩柴扉。
我的第二批軟體到了這種境界。簡言之,別人編一行,我就編了二十行。等到交活時,教授根本不問能不能run,只說:你這是搗蛋!就打回來讓我改短。資本主義就是這麼虛偽。等到拿了學位,我毫不猶豫就回國來。這是因為我從骨子裡來說是個浪漫詩人,作畫時是個顏色詩人,寫程序時是個軟體詩人。乾癟無味的資本主義社會哪裡容得下浪漫詩人。
/*
@黃宏
八十
八十
八十
*/
寫Java的成為了最富有的程序員
寫Python的會成為最窮的程序員
所有的語言都消失了,最後只剩下PHP,因為PHP才是最好的語言
#include&
int main(int argc, char *argv[])
{
int foo = 1;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
foo++;
foo--;
printf("錢真好賺呀! %d",foo);
return 0;
}
把代碼縮短難,但是把代碼增長簡單。
增加代碼的抽象程度難,但降低代碼的抽象程度簡單。
只要把代碼裡面所有的抽象拉平就行了,而且這件事情用機器做就可以了,完全不需要動手自己多寫什麼。
以一個面對對象語言為例,就是基本上就以下幾個步驟就可以擴展出成噸的代碼量:
1. 展開宏。
2. 展開類繼承。
3. 展開類。
4. 展開函數。
5. 展開語法糖。
很多年前我看《編程珠璣》雜誌里有一個專欄《軟體開發恐怖故事》,其中有這麼一個據說是真實的故事:
一個小老闆(就是小頭目,行業里只要是管理者都稱「老闆」,其實也是打工的)發明了根據代碼行決定績效的方法,這孫子還自以為很懂,寫了一個程序用來計算代碼行數,實行一段時間之後,就找一個以代碼簡潔著稱的骨幹程序員談話,談什麼大家不知道,只知道這個骨幹程序員從小老闆辦公室出來時臉色鐵青,沒幾天之後就辭職走人了,相反,一個寫代碼啰啰嗦嗦的程序員反而被公開表揚,因為人家一天寫的代碼行數多嘛。沒有人是傻子,這伙程序員很快就發現了小老闆寫得計算代碼程序的工作原理了,其實就是數分號的個數,太簡單了,于是之後提交的代碼中就大量出現分號。
我不知道這個故事中的人用的是什麼語言,但是我估計最後寫出來的代碼類似是這樣。
// This is because bla bla bla ;;;;;;;;;;;;;;;;
//
if (this.isStupid) {
var foo = fool_manager + bug;;
} else {
// TODO: do something ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
}
故事的結尾,似乎是小老闆發現底下工作效率激增,大喜過望,向上彙報了自己的「業績」,公司高層也很好奇,就派人來審核,這些伎倆和小老闆的傻B管理方式才曝光。
這個故事告訴我們:千萬不要不懂裝懂,執行任何政策都需要用正確的方法。
你說這個小老闆要是在數代碼行數的時候應用lint不就OK了嘛,數代碼行數之前先要過lint規則,這種渾水摸魚的代碼就會出現一坨錯誤:
- 不能在一行中出現多個分號;
- 不能寫沒有內容的注釋;
- 不能出現連續兩個空行;
- 不許罵人;
科科
了解更多江湖八卦請關注@程墨Morgan
再也沒有*.min.js了
ruby,python,clojure,haskell程序員紛紛轉戰java
那還會有人用循環嗎?
JAVA代碼新規範:每個文件所有代碼必須全寫在同一行
a...
=...
0;
for ...
i...
=...
1:...
5
a...
=...
a...
+...
i...
;
end
disp...
(...
a...
)...
;
越少錢越多嘛?
硬碟漲價
呵呵,我能寫到馬雲破產。
那我就不寫代碼了,我去做回車鍵腳踏板。
推薦閱讀: