精通 Scala 是一種怎樣的體驗 ?
用scala做項目的,不敢說精通,反正scala用久了之後就覺得其他語言各種無聊,新語言基本沒創意,java8的lambda四不像。學其他語言成本很低,語法什麼看一遍就能寫東東了(僅僅是語法層面,大神勿噴)。還有scala的並發庫,花式線程調度幾行代碼就完成了,java什麼的都能寫出一個工程了
話說,我是不是該匿名...
不會再想用java了
不敢說精通,只是略有研究。寫Scala的感受跟寫ruby一樣爽,比Java寫起來舒服多了,而且類型推斷能盡量減少各種類型聲明,這一點就有點像動態語言的感受。
而且模式匹配用起來也很自然,完全不用嵌套if這種反人類的寫法
不敢說自己精通Scala,但是作為一個學習了多門語言,比如Ruby,Python,Scala,Haskell,Java等的程序員來說,學習Scala對你的視野拓展很有好處。
精通XXX語言一般上的理解就是給你一個場景,你可以很快地用Scala式的思維得到一個解決方案。這種思維既有OOP,也有FP。習慣OOP的人以設計模型為主,各種OOP的原則。習慣FP的人看數據,看操作,看信息流。如果你只會OOP比如Java的設計思維,又或是你只有FP的使用經驗,這些不能保證你能寫出Scala風格的代碼。君不見設計出演算法的人寫的代碼大多「慘不忍睹」,這也難怪,人家有學術思維,沒有程序員思維。所以你能把具體問題用Scala寫出來並且解決了,我覺得算是Scala化的一大進步。
個人之前練習過Scala99的絕大部分題目,除了最後幾道中的數獨有個專門的解法DLX所以沒用Scala實現之外,幾大基本數據結構的問題都有所嘗試,並且還做了一個簡單的語法解析器出來。Scala做語法解析器比你邊看編譯原理邊用Java或者C/C++實現要容易。
但是我覺得這只是入門。雖然學了那麼多語言,看別人學ES6的那20幾個特性19個自己在其他語言中看到過,對使用場景也有所了解,但是一直覺得Scala非常難。為了FP先學Haskell再回頭看Scala,為了類型系統先看一些wikipedia上的類型學術信息,actor之前是參考Erlang,現在獨立出來用AKKA,並發依賴JVM,最近自己重新看Java並發設計。我覺得如果再把指針加進來,就足夠使得Scala成為史上最難學的語言了,因為參雜了很多東西。
不過業界的精通只是唬人用的,所謂的資深程序員明知並發的情況下還用HashMap而不是ConcurrentHashMap,並發知識嚴重不足,24種設計模型只知道一種(單例),沒有核心框架開發經驗之類的人很多。招聘的時候你把你最熟悉的語言做得框架亮出來技術上一半就PASS了,真心想要找好的技術型人才的自然知道這類人的Github和看的書肯定與一般人不同。所以,說到底,精通只是一種描述而已,Scala本身門檻就很高,如果你能熟練使用的時候就說明了你的編程語言功底已經很好,眼界也很開闊了,和那些XXX語言最好,其他語言非常差,學好C語言其他語言1個星期內學會的人已經有很大的不同了,剩下的就是寫點東西,在你的CV(簡歷)上寫上精通兩個字就行,懂的人自然知道這種語言下的難度與份量。
寫起來爽 但一些代碼運行效率不及java
以前的爆棧問的一些問題:performance - Why is the code written in scala 6 times slower than in java?同時感覺坑很多 做一些小項目之類的非常快小項目 java SSH寫 和 用scala play寫 哪個爽就不用說了
真有人能精通一門Bug多達1371個的語言?
不敢說精通,不過用了一陣子 Scala 我的感受是:Scala = Haskell 的類型系統 + Java 的庫和 VM + Ruby 的語法 = 碉堡了
精通倒是算不上,簡單用用就已經感覺很舒服了
Spark+Scala,處理分散式數據的時候,同樣的機子,能比別人快好幾倍。。。莫名其妙地感覺Java更好用了。。。。。這應該不是錯覺。。。
接觸過一點Scala和Haskell,Scala確實借鑒了很多Haskell的東西,但是就代碼美感而言,比Haskell差了很多...
Scala算是一種OOP和FP的折衷方案吧。scala寫起來很爽
用了半年,把公司以前的日誌採集程序翻新了,感覺很酷。不打算在用java。
用了好多年的java 感覺scala語法特別奇葩 哈哈哈哈哈哈哈哈哈哈哈哈
題主是不是身背使命而來呢?招聘釣魚是這樣操作的嗎?
最近在看Kafka源代碼 在看之前不懂Scala 現在也不懂..
一開始無法區分object和class的區別 區分不出immutable和mutable的區別 找不到區分對象屬性和類屬性的地方 無法看到構造器函數在哪 到處都是case case case...
於是我另開了一個項目 看到一個不懂的語法 查文檔 寫一次..JDK8的函數式編程已經滿足我的需求了 雖然我很喜歡多返回值和元組 以及簡化生成集合對象的方式 但是我忍不了那種不帶括弧的函數調用方式(分不清是屬性還是函數讓我鬱悶半天)、沒有代碼塊的構造器(以為初始化工作已經完成了 結果往下一拖還他媽有..)、那些到處聲明(函數內、函數外..)的長的要死匿名函數(語法導致的編程習慣?)
繼JStorm之後 應該馬上會出現JKafka了...嗯用完scala 覺得java再也不好使了,,方便爆了
scala裡面雜糅者面向對象和函數式編程語法,讓人很難適應。大道至簡!
推薦閱讀:
※當腐敗分子是怎樣一番體驗?
※作為家裡的長子(長女)是怎樣一種體驗?
※智商140以上的人生是一種什麼樣的體驗?
※有兩個兒子是一種什麼體驗?
※有個陝師大女朋友是怎樣一種體驗?