java常見

Java是世界上使用最廣泛的語言(需要引用),每個人對此都有自己的見解。 由於它是主流,所以通常會嘲笑它,有時是對的,但有時批評並沒有觸及現實。 我將嘗試解釋我最喜歡的5個關於Java的誤解。

  1. Java速度很慢 – Java 1.0可能確實如此,並且最初聽起來似乎合乎邏輯,因為Java不是編譯成二進制,而是編譯成字節碼,而字節碼又被解釋了。 但是,現代版本的JVM進行了非常非常優化(JVM優化不僅是一篇文章,而且是一整本書的主題),而且不再是遙不可及的了。 如此處所述在某些情況下 ,Java甚至可以與C ++媲美。 如果您是Ruby或PHP開發人員,那麼開個關於Java變慢的笑話當然不是一個好主意。
  2. Java太冗長了 –在這裏,我們需要將語言從SDK和其他庫中分離出來。
    • JDK(例如java.io)中有一些冗長的細節,這是:1.用事實上的標準庫(例如guava)輕鬆克服了2. 一件好事
    • 至於語言的冗長性,唯一合理的一點是匿名類。 在Java 8中,這些功能不再是問題。 Getters和setters, Foo foo = new Foo()而不是使用val (可能)是樣板,但它並不冗長-不會在代碼上增加概念上的重量。 不需要花費更多的時間來編寫,閲讀或理解。
    • 其他庫–看到像AbstractCommonAsyncFacadeFactoryManagerImpl這樣的類確實很嚇人。 但這與Java無關。 可以説,有時這些長名稱是有意義的,也可以説它們是如此複雜,因為底層的抽象不必要地複雜,但是無論哪種方式,這都是每個庫做出的設計決定,而語言或語言都不是什麼。 SDK本身就強加了。 看到過度設計的東西是很常見的,但是Java絕不會將您推向這個方向-可以使用任何語言以簡單的方式完成東西。 您當然可以在Ruby中擁有AbstractCommonAsyncFacadeFactoryManagerImpl ,只是沒有一個愚蠢的建築師認為這是個好主意,並且使用Ruby。 如果“大型,認真,沉重”的公司都在使用Ruby,我敢打賭我們會看到相同的情況。
  3. 企業Java框架是過時的軟件 –肯定在2002年使用EJB 2時(或者“已經”,我還太年輕,無法記住)確實如此。 而且,您仍然確實不需要一些過度設計和過時的應用程序服務器。 人們使用它們的事實是他們自己的問題。 您可以使用Spring,Guice甚至CDI之類的框架來完美,易讀,易於配置和部署Web應用程序。 使用諸如Spring-MVC,Play,Wicket甚至最新的JSF之類的Web框架。 甚至沒有任何框架,如果您不想重複使用通過真實世界使用的框架。 您可以使應用程序使用消息隊列,NoSQL和SQL數據庫,Amazon S3文件存儲等,而不會帶來任何意外的複雜性。 的確,人們仍然喜歡吃驚的東西,並在不需要的地方添加幾層,但是框架為您提供這種功能的事實並不意味着他們會讓您做到這一點。 例如, 這是一個應用程序 ,可對政府文檔進行爬網,為其編制索引,並提供用於搜索和訂閲的UI。 聽起來有點簡單,確實如此。 它是用Scala(非常用Java的方式)編寫的,但是僅使用Java框架-spring,spring-mvc,lucene,jackson,guava。 我想您可以開始快速維護,因為它很簡單。
  4. 您不能使用Java快速原型設計 -這與上一點有關-假定使用Java的速度很慢,這就是為什麼如果您是初創公司或週末/黑客松項目,則應使用Ruby (使用Rails),Python,Node JS或其他任何可以讓您快速原型化,保存和刷新,輕鬆進行迭代的東西。 好吧,那根本不是真的,而且我甚至都不知道它來自哪裏。 可能是因為流程繁重的大公司使用Java,因此製作Java應用程序會花費更多時間。 而且“保存並刷新”對於初學者來説可能令人望而生畏,但是使用Java(針對Web)編程了一段時間的任何人都必須知道一種自動化方法(否則他是n00b,對嗎?)。 我已經總結了可能的方法 ,並且大多數方法都可以。 這裏的另一個示例(也可以用作上述示例)–我做了這個項目,用於驗證週末+ 1天之內網站的安全密碼存儲,以解決晚上的問題。 包括安全性研究。 Spring-MVC,JSP模板,MongoDB。 再次-快速簡便。
  5. 如果沒有IDE ,您將無法在Java中執行任何操作 -當然可以,您可以使用notepad ++,vim和emacs。 您將只缺少重構,保存時編譯,調用層次結構。 就像使用PHP或Python或javascript進行編程一樣。 關於IDE與編輯器的爭論漫長,但是您可以在沒有IDE的情況下使用Java。 這樣做沒有任何意義,因為從IDE獲得的收益遠遠超過從文本編輯器+命令行工具獲得的收益。

您可能會説我能夠快速編寫出色而簡單的Java應用程序,因為我擁有豐富的經驗,我確切地知道要使用哪些工具(哪些不是),並且我是一些常識性的稀有開發人員。 儘管我對此感到很受寵若驚,但我與優秀的Ruby開發人員或Python專家沒有什麼不同。 只是Java太廣泛了,以至於沒有好的開發人員和工具。
如果有那麼多人使用其他語言,那麼可能會生成相同數量的糟糕代碼。 (即使使用更少PHP,PHP也已經領先)。
我是最後一個不嘲笑Java的人,它當然不是靈丹妙藥,但是如果人們因傳聞證據或以前的不良經歷而對誤解的理解減少了,我會更高興la“從我以前的公司開始,我就討厭Java,因為該項目非常was腫”。 不僅是因為我不喜歡別人有偏見,而且因為您可能會以一種不起作用的語言開始下一個項目,只是因為您聽説過“ Java不好”。

翻譯自: https://www.javacodegeeks.com/2014/04/common-misconceptions-about-java.html

java常見