程序員對自己的語言有沒有感情的?
舉例,如果你是一名出道以來過去10年一直專註於X語言的程序員,現在給你1.5倍的月薪(不考慮千萬、億年薪那種不同幾何級別的情況),要你跳到Z語言的平台,你會頭也不回地跳過去嗎?
剛剛還在群里扯到一個類似的話題。
λ字軍東征開始了!
----
另外如果讓我跳到agda、idris當然可以啊(我看完sf和cpdt就看這倆吧……)……
然後haskell、scala、ocaml我也都能寫(雖然後面兩個基本是只會寫點的程度……)……
C++也不錯,畢竟我讀過C++ Template Metaprogramming Concepts, Tools and Techniques from Boost and Beyond,也不尖括弧過敏……
----
真是學好type theory,什麼語言都不怕。
語言這麼重要的東西怎麼能隨便換呢?
肯定會有的。
我剛入行主要用的是Java,然後部門被兼并了,不得不轉為C++,我還記得最後一次全手會(All Hands Meeting)上領導說:「誰都會自己做的東西有點感情的……大家既然會用Java,那在新工作中用C++肯定沒有問題吧?」 靠,誰敢說有問題,但是大家打心裡都覺得不爽。
在微軟一開始用C++,後來又要用C#,雖然C#最初就是Java的一個copycat,但是那個時候感覺對C++還有點不舍,不過一想C++的各種難用,心裡也感覺好了很多。
再往後來,主要編程語言是JavaScript,現在業界很多人轉為用TypeScript,但是我對這玩意真不是很感冒,我就是一個戀舊的人吶。
話說回來,思想如手足,語言如衣服,重要的還是編程思想,而不是語言本身。
關注我吧@程墨Morgan
如果沒有其它不利條件,必須頭也不回地跳過去!
只有沒發展起來的程序員才會拘泥於一種語言,都十年多了,還只抱著一個語言睡覺,基本也不會有薪資1.5倍的機會來找。
至於對語言的感情,必須是有的,然而誰說程序員和語言之間一定要一對一組合了?我就是妻妾成群型的,你管得著嗎?我個個都愛!對沒摸過的,更是垂涎欲滴!
當然,我最愛的,還是讓人慾仙欲死的——漢語!
語言如衣物,演算法如手足(笑
其實我越寫到後面就越在意語言的表現力
因為本質上語言是驅動機器的東西
所以就更希望他抽象程度高,表達力強,寫得和dsl一樣主要看Z語言如何,Java語言用了20年了,對Scala,Go感覺都不錯。動態類型語言需要時間熟悉。
跳槽影響因素太多了,不如改為一個公司的不同崗位。如果價格公道,換什麼你定。
「我第三次catch終於捕獲了這個異常把它交給了log4j。」
我淡淡的回了一聲哦然後繼續擺弄.net隨手輕鬆的使用UnhandledException 事件捕捉了所有異常。
「我又在網上給你找到很多學習資料《深入理解java虛擬機》、《think in Java》、《effective Java》...」
我看著node.js非同步爬來的火辣的美女圖片冷冷的打斷了他:「別煩我,忙著呢」。
「今天,二兒子tomcat家裡很乾凈,我在那裡做事情很快。」
我嘲諷道:「怕是帶著你那把破劍JVM去蹭飯吧!」
他臉色有點難堪又帶點生氣,我突然覺得自己的話有點過,但礙於面子也沒去安慰她。
第二天我要去上課,他走到我面前整理下我的衣服:「在學校不要把私人物品放在public柜子里容易被人亂動,實在不行寫個synchronized字條,說中文要用UTF-8翻譯器,別人找你零錢的時候不能放在int的口袋......」
好了,你再說下去我都要遲到了,人家js阿姨讓她的女兒從來都是什麼東西都可以裝進var背包里天天就是你破事多、嘮叨的要死。
他慢慢轉了身說道:「好了,你快去上學吧,我在家裡等你回來!」
夜晚回家發現他留在桌子上的字條:「我去參加第八次武林大會,順便散散心,別擔心過幾天就回來。」
今天是他離開的第三天,我有點想他,想起來好多年前第一次見他,他帶著一個「咖啡」樣式的書包。裡面有個三國類型遊戲的光碟,那是我第一次接觸遊戲,我玩的很開心,我們年齡相仿很快成為了好朋友。以後的日子裡,他幫我做數學計算,教我用另一個方式認識網路,在我焦急的找工作的時候是他在背後支持我,我在公司犯了錯是他一直陪我加班到深夜。我不禁想到難道真的因為太熟悉我就可以輕視他嗎?難道他對我的好居然成了我肆意傷他心的理由嗎?最過分的是我還嘲諷了他的劍JVM,那是他的驕傲,他說那是他的媽媽給予他最好的禮物,在那個豪強並起的年代,他就靠著那把寶劍行遍三山五嶽,睥睨天下。
第七天他終於回來了,他的氣質內斂了很多,帶點滄桑,我衝上去抱緊他,泣不成聲,他也不問我為什麼哭彷彿他都知道只是輕輕的拍了拍我:「男子漢大豆腐哭什麼,我給你帶了禮物!」
我擦了擦眼淚,等待著他把禮物拿出來,可他只是張開了上衣的口袋說道:「你不一直覺得函數那玩意太重不能裝進我的口袋不方便嗎?現在可以直接扔進來了,我這口袋大著呢。」
我心裡一陣震動:「他這麼有潔癖居然為我做了這麼大改變!」我平靜的走到他的身旁搭著他的肩膀:「你這風衣有點帥啊,借我耍兩天!」。我們已經很久沒有這麼親近了,我感受到他身體在輕微的戰慄,只見他慢慢開口:「回去把你小子第E個房間的什麼ipz-809、iptd-678...那些影響我行動的玩意都清出去,我就把風衣借你」。
我撓撓頭不好意思的哈哈一笑:「好好,都清出去。對了,今天gayhub公園很精彩,h5那小子在耍雜技,我們一起去看看!」
這問題問得。。。。
假如我很缺錢,那語言就不是問題了,50%!50%的RMB!
反過來說,不缺錢就看興趣了
你讓我跳去寫GO/JS/C++我是不願意的,給我3倍我也不寫
寫HASKELL/F*/RACKET/RUST/ERLANG...,我倒貼一半也行題主題目寫得不清楚,雖然看題意寫Z語言應該會有讓人產生吃翔的錯覺
這個不一定,比如我14年開始學的C++,這是我第一個編程語言,後來因為Linux編程需要就接觸了C,不過由於C和C++比較相似所以沒怎麼費勁。16年因為學校的一個項目用Google Play上一個應用3小時大致學了學Java,然後一兩天做出來個App交差之後就扔了。如果給我1.5倍的工資讓我去寫C,我一定去,如果給我1.5倍的工資讓我去寫Java,我可能會慎重考慮。但是我認為沒有哪個企業會腦殘到開1.5倍的工資讓一個熟悉C++的人去寫不怎麼熟悉的Java。
沒有感情,只有習慣。不換除了錢不夠,還有就是不習慣。
說有也有,說沒有也沒有。
聽到微軟放棄FoxPro支持的那一刻,心裡一陣傷感飄過;看到Borland風雨中飄搖,也會冒出一絲無奈。
但跟我口味一樣,南北菜肴我都行(除了偏甜的菜)。語言上雖有偏好,但真要用某一門具體的編程語言,也不會太挑剔,比如Java。不知道別人,我自己肯定是對語言有感情的,為免於陷入語言之爭,不提名字,我自己喜歡的語言大概有三種,分別是 一個字母的語言和一個字母兩個符號的語言,還有那個人生苦短的腳本語言,最討厭某咖啡名的語言,這輩子不會用,其實也不是有什麼偏見,主要是當年剛出來時印象不好,就一直沒用過,也從來沒在項目里用過,不論工資給多少,不喜歡的堅決不用,這是做人的原則。
會啊,為什麼不會我還干過跳過學JAVA 直接寫安卓APP的事呢
2001年剛入職的時候,寫慣了C++,需要轉成java語言編程
各種不情願
總是忍不住思念C++的指針、memcpy、函數指針
特別反感java里為了簡單的一個函數被迫包裝成一個介面
思念typedef
討厭一個類一個文件的做法
討厭package的層級命名規則
一直偷偷的採用_member的寫法
當時也發了很多評論,罵java
++++++++++++++
後來啊,吐啊吐啊就習慣了
rpc,dbcp,mvc,ioc
各種第三方組件用的不要太爽
自己也變成了介面的設計狂
各種設計模式簡直就是為java定製的
java的反射機制簡直是天才的發明
++++++++++++++
3年前吧,接觸到scala
看到了久違的類似於函數指針的東東
看到了typename
義無反顧投入了scala的懷抱。。。
嗯,看來,我對java的感情只有那麼多〣( oΔo )〣
有啊。最愛C++,接下來Python,Java、JavaScript、C#和Swfit平分我的珍愛。
13年進入大學,在一個文商類學校學商科,純理論,數學都不怎麼學。不過因為愛好,我還是開始自學C語言。因為當時看北大一個老師的課程, 他是以C++來教學的,把C++和C相對重疊的部分來當做C語言來教。最後學完了才知道自己學的是C++。不過為了鞏固,我就把浙大翁老師的課又學了一遍。從而導致我計算機二級差一點點就滿分的考過了(文科大學還是很流行考計算機二級的,大家都考Office,但是我懶得學別的了。而且學校不允許報名C++和Java,奇葩)。
不過大一因為沒人教,經常一個環境配置花我好幾天的時間,樂趣全無啊,當時因為學校課程安排有問題,導致大一期間學業特別重,所以一年了也就只算是入門了個C語言,可以寫一些簡單的計算問題。
大二上學期去圖書館借了本C指針有關的書,天天看,終於把指針深刻的理解了(這個經歷導致我C++學起來還是挺輕鬆的),然後趕上雙十一,買了本《C++ Primer》和《Python基礎教程》(這本書純粹是為了湊價錢,然後就可以打五折了)。不過買回來之後就糾結了,網上說《C++ Primer》不適合入門,身為小白的我沒辦法,就找了本C++的大學課本,花了兩個星期看完了。然後躊躇滿志的看《C++ Primer》。基本上每天上課都拿著書在看,五一也推掉了同學的邀請去自習室看。終於花了兩個月時間看完了,不過後面很多內容很難理解,包轉發這些知識當初也只能是知道有這種東西。自此,我完全愛上了C++。
買了《Python基礎教程》還是得看啊,要不然浪費了,可能因為有C++的功底了,斷斷續續花了一周時間把《Python基礎教程》看完,嗯,語法果然簡單,但是後面很多實際應用部分我卻不會,八皇后問題我也想不懂。沒辦法,看著Python語法這麼棒,我就封裝C++代碼,盡量做到Python的語法,把Python的切片啊,字元串啊這些的都給實現了一遍(如今代碼已刪,太難看了,當初的我竟然還津津有味)。不過始終都是個黑框框,受不了。於是找到了Python的一個GUI庫——wxwidget,後來才知道這是C的庫。。。花了一下午,邊看邊寫,寫了人生中的第一個GUI程序。很開心,記得當時還用C++的某個特性解決了一些問題,不過忘記是什麼了。
但是只寫GUI,也沒什麼別的功能啊。看到人家Android平台的軟體那麼好用,於是就開始用C++寫Android平台的軟體,不過NDK並不好用,所以乾脆決定學Java,並試著結合著一起寫。但是我的電腦太慢,Android Studio安裝不上,所以最終就只是學了Java的語法。
這個時候我已經大三了,對於編程也終於有了認識。只知道語法真的不是真正的編程,於是我開始學習各種計算機知識,網路啊、數據結構啊、計算機原理啊、操作系統啊,統統都學,同時語言我也不想放下,《C++ Primer》陸陸續續看了四五遍,把之前看不懂的地方都看明白了,而且還學了很多書中沒有的知識,並找了一本《Effective C++》和《Effective Modern C++》開始看,看完了之後到Python官網上,把Python3的教程陸續看了一遍(之前學的是Python2.6)。Java利用晚上的時間看官方的tutorial。學了演算法,好,用這三種語言分別實現一下,然後盡量寫的符合這種語言的特性。學了網路,好,三種語言分別實現。可是最終我都沒有用C++寫出來一個完整的GUI,用Python寫一個完整的爬蟲,用Java寫一個完整的Android程序。
OK,到了大三下學期,被我們班一個軟粉問,你會不會寫爬蟲。雖然他是善意的,但是我是果粉,你一個軟粉竟然這麼問我,一怒之下學了HTML、CSS和正則表達式,準備用Python寫爬蟲。嗯,爬蟲寫出來了,我也又多了三個技能。然後我知道了Qt,很開心,拖拖控制項就可以寫出來很多不錯的GUI程序。後來手裡有金山詞霸導出的單詞文件,想用Qt寫出一個背單詞的軟體,可以結合自己定義的的一些功能,但是界面做齣動畫效果實在是困難,不想學QML(因為覺得它沒有太大的通用性)。最終決定用QWebEingine來展示一個Web頁面。OK,正好之前學過HTML+CSS。就差JavaScript了,於是利用一個上午,在手機上把JavaScript看完,開始做Qt和JavaScript的交互,還是挺簡單的,花了一下午把這個軟體大致寫出來了。
OK,意識到自己不能再只學語言了,於是又開始鑽研數據結構、演算法等內容。基本上是今天用C++實現,明天用Python、後天用Java。至於為啥沒用JavaScript,因為我沒有Node.js也懶得放到瀏覽器里運行了。
後來大學差不多過完了。我找了一份房地產公司的工作,做文員。正好也換了蘋果電腦,於是順帶學了Swift,不過僅限於語法,從沒用它寫過完整的應用。因為雖然我是果粉,但我對iOS開發並不感冒,MacOS平台的軟體平時也都用C++寫了。
工作了大概兩個月,我的工作就是整理各種資料,我懶得做,也怕出錯,乾脆用Python寫了一個腳本,自動把我一天的活全乾完。於是我一天都可以閑下來,於是就去了解我衍生自最愛的C++的C++/CX(但我並不想學),發現還是挺好用的,然後看到C++/WinRT,哇,更厲害,然後C++/WinRT的文章基本上都在和C#對比,然後看著看著。。。我一個軟黑喜歡上了C#,鑒於最近需要給腳本包個殼,本來想用Qt實現,不過覺得還是學了C#之後用C#寫一個吧。
我也認識到我在語言上投入的精力太大了,不過就是忍不住去學習。
C++投入的精力最大,我學的也最深,因為它自由,強大,同時開發工具也比較完善
Python靈巧,漂亮,功能不錯同時也有極高的開發效率
Java嚴謹,雖說走彎路,但是可以把C++里容易出錯的地方都屏蔽掉,而且功能和性能也有一個很好的折中
JavaScript十分靈活,在V8下速度也很快,一大堆第三方前端框架無論是寫網頁還是Hybrid App都十分好用
Swift,學得不深,但是裡面一部分特性還是很喜歡的,據說性能也很好。
如今在學C#,因為它也很有優雅的語法,很好的工具鏈,完善的文檔,易用性、工程性和性能都有很好的表現。
對於我會的每一個語言,我都有不同的感受在裡面,他們每個都有很好的發光點和吸引力。可能因為我暫時不是專業的,所以我對於語言可以想學哪個學哪個,因為C++,讓我對其他語言底層有了很好的了解,因為Python和JavaScript,讓我在處理簡單工作的時候不用抓狂,因為C++17、Java、C#和Swift,讓我知道了性能和易用性也可以兼得。
經常看見程序員吵架,說C++就是不如C#啊,C#就是不如C++啊什麼的。我想說,為什麼不都學了?管它們誰厲害,都學了能死嗎?
我寫過
VB、delphi、java、php、js
我應該對哪種語言有感情?
——嘛,都是小項目&>_&< 最早在外包干過
如果 X 是 Lisp
Z 是 Haskell / OCaml 那我肯定跳啊
如果 Z 是 Clojure / Scala 然後公司給配個 128 g 內存的電腦我也跳(逃
你試試看說python的壞話?
要看新語言怎麼樣。從 Java 到 Scala,就算工資少點我也要跳;從 Haskell 到 brainf**k,想都別想。
推薦閱讀:
※蘋果系統為什麼用Objective-C,而不用C++?
※為什麼盡量不要使用using namespace std?
※如何delete數組?
※c/cpp 中從源代碼到可執行文件的過程,鏈接是必須的嗎?
※c++中有現成的string hash函數么?