我的世界一個程序導致JAVA,Java地位無可動搖的12個原因

如今,面對曾經在程序員中被各種新技術掩蓋直至堙滅的技術值得懷念。猶如COBOL這當年被老程序員們尊為神器的語言如今也基本沒有價值。而Java作為現代程序員的中堅力量在這點上或許會成為下一個COBOL。

有關JAVA的技術賣出多少本書已經是一個很久遠的記憶了。現處中年時期的Java語言的用途已經不再出現在各種雜志的封面上了。JAVA從出生到現在已經19年了,應用開發圈已經開始繞著那些更有吸引力的新技術。Java或許是Web 1.0時代的一個傳說。

從招聘信息你就可以知道,跟iOS相關的開發有2500左右的招聘,Java則有17000多個。數據不一定能完美的衡量技術的價值,但是在不斷推陳出新的技術推廣壓力下,Java職位是iOS的7倍之多可以說明問題。

在忘記Java在計算機行業里所扮演的角色和做出的那些卓越貢獻前,有12個絕對的理由來告訴你Java不但不會和COBOL一樣被堙滅,并且在其后時代中更加壯大。換句話說:Java一直就在并且其地位無法撼動。

Java在市場斗爭中不屈不撓

技術界從來沒認為Java會成功,盡管它的對手太多但依然繁榮發展起來。那些詫異Java仍然存在的人們并沒有真正去理解為什么Java會成功。微軟是 Java第一個面對的強大對手,因為那時MS-DOS提供了通用性,而微軟看到Java是此通用性最具可能性的替代者。

此外,蘋果Steve Jobs從來沒接收過Java,即使是在Mac被除了Adobe之外所有人忽視的年代。Java的兼容性可以帶來很多有用的代碼,但是Apple一直未把Java視作第一選擇。

Java內部的很多斗爭也給它帶來了巨大痛苦。IBM喜歡Java,但是一直在和Sun斗爭。IBM將其開發的優秀的IDE工具稱為“Eclipse”的決定,一直沒被Sun的人員欣然接受。Sun也從來沒像IBM那樣深刻理解商業領域。

盡管這些原因,盡管Java創造者也在Java發展中有許多失策之處,Java依然快速壯大,在服務器應用領域如魚得水,在桌面應用領域滿足基本業務需求。

Java虛擬機優化線程的魔力

Java虛擬機的強項之一是多線程控制。JVM針對大型多核機上數百線程的穩定性做了極佳的優化。其他語言會為了能跑在JVM上面搞出交叉編譯器和模擬 器。Java的這個能力同時也吸引了很多高流量的網站。他們可以在臺式機上搞開發然后丟到服務器上讓JVM發揮出多核的功效。

Ruby因為語法的簡潔和源碼可讀性好成為了Java目前的一個對手。但是當性能成為瓶頸時,Ruby開發人員轉到了JRuby,一個用Java模擬出來的Ruby環境并增強了高負載下的線程處理能力。

Java成為編程初學者的語言

作為大學AP計算機課程,意味著在美國很多學生第一次接觸到的計算機語言就是Java。由于這個先入為主的原因,當他們學習其他新的語言時,即便轉行學其他語言課程,但是他們在思考的時仍會受到Java的影響。

12-reason-java-unshakable-position.html

(圖片來源chron.com)

Java作為一個教學語言是有它的原因的。聲明數據類型看上去可能比較抽象,但是為了能讓初學者理解計算機的原理,聲明數據類型通過編譯器會告訴他們數 據類型不匹配而無法編譯時,可以讓他們更好的理解計算機的底層原理。而一些新語言已經摒棄了花括號,維護麻煩使得新人有所厭倦,但是花括號對那些新手是非 常有用的,因為能幫助他們理解嵌套的代碼塊。

Java具有跨平臺兼容性

雖然Java并不是第一個提供跨平臺兼容能力的語言,但是Java已經成為最受歡迎的跨平臺編程工具,Sun以及Oracle已經為程序可以跨平臺使用提供支持。當程序不能在多個平臺上使用時,導致問題的原因通常是可以解決的。

Java程序員可以使用他們的桌面開發工具進行編碼,并部署到目標設備,可能是一臺手機或者一臺服務器。如果編譯器包含了正確的庫并且使用了正確的版本,代碼就可以運行。

12-reason-java-unshakable-position.html

Java在移動領域上的持續成功

Java也許并沒在大型應用程序中有很好體現,但它卻在移動領域的細分市場獲得快速發展。Android平臺從上到下都是基于Java構建起來的,并且它如今的銷量輕易的超過了iPhone。JAVA ME作為精簡版的語言和VM已經被廣泛應用在智能手機上,而智能手機如今已經遍布在全世界。

Java在藍光應用取得突破

Java曾經為機頂盒而設計的語言,Sun想在占據此市場,但是Java卻在另外領域中找到了合適的位置。藍光標準是圍繞Java建立,任何想在藍光光 碟中添加額外內容的人,必須得到其Javac編譯器版本。藍光光碟不止限于存放視頻內容。那些額外特性和交互工具可以使用純Java代碼修改并增強。壓縮 后的視頻和壓縮后的Java字節碼的混合。

Java讓花括號能優化代碼工作

類似 Ruby、Python或CoffeeScript等語言的開發者對于Java要求程序員們敲打花括號鍵來明確表達代碼段的開始和結束。括號、花括號、甚 至方括號對于程序員略顯多余。但是改變符號并不能消除復雜性,使用像制表符等空白后你只能用直覺去感受那些無法看到的東西。

如果if語句只引導了一行代碼,這樣不會有問題,但是當很多層嵌套時,就很難看明白。當用Python編程時,并不意味著代碼像理解英文簡單。

Java動態類型語法工具Groovy

Java開發者必須要有一個帶有動態類型的語法,可以使用Groovy一個帶有預處理器的工具,它能夠生成出Java字節碼來。這種語言也完全集成到了Java中,因此可以在Groovy中混入對Java庫的調用。就像是編寫Java代碼的縮略形式。

這一靈活性讓開發工程師得以找到問題的出路。在使用了動態方法調用時,開發者可以用Java來重寫重要的核心操作。

Java虛擬機讓編程更加的靈活

Java虛擬機是按照運行Javac編譯器產生的代碼源頭來設計和優化,但開發者們意識到Java虛擬機也可以運行其他代碼。只要編譯器們產出標準的 Java字節碼,Java虛擬機根本不關心是使用的那種編程語言。Haskell、Scala和Clojure的開發者們設計編譯器就采用Java,而只 是這個由Java虛擬機產生的。

另外,Sun/Oracle 為創建跨平臺環境而努力,工程師們消除平臺間差異,并考慮兼容性問題,然后所有人可以運行他們想運行的程序。微軟在創建C#時為大部分主要語言設計了編譯 器,使得C#虛擬機可以運行這些語言編寫的所有程序。C#程序員可以用很多不同的語言編寫程序,只要通過一個Windows盒子將其運行在一個虛擬機上即 可。

12-reason-java-unshakable-position.html

NoSQL建立在Java之上

數據庫是保存信息并快速有效應對查詢請求。NoSQL的出現讓程序員們可以自己編寫數據庫,并根據需求修剪其代碼。那些最重要NoSQL工具中很多都是 用Java編寫。Cassandra、Lucene、ElasticSearch、HBase和Neo4J只是一些經常提到的NoSQL選擇。

據了解,工具通常是開源的。開發者將其獨立運行,或將它們集成在自己的模塊中,使得Java在數據庫層中成為通用語言,保證了Java開發者們擔心由于字符編碼和行結束符帶來的故障。這意味著Java開發者們可以享受由NoSQL革命帶來的豐碩果實。

Minecraft游戲中00后的情結

非主流們對Java嗤之以鼻,但是Java程序員們卻領先一步。在Ruby時尚團正聚集起自己的一群粉絲時,Minecraft讓之后的一代人愛上了Java。它用Java編寫而成,要擴展該游戲就需學習Java來設計其插件,這保證下一代程序員首選是Java。

開源成就Java代碼廣泛的應用

Sun一直是開源領域中的領導者之一,Java程序員們發布眾多開源許可的庫和項目。Apache項目一直都在使用一個沒要求太多回報的許可證來提供優 秀的Java代碼。07年完成在GPL許可下公開大部分代碼的工作,這種開放的立場一直延續并保證Java平臺很大程度是開放和免費的。

由此,Java有自己的問題,花括號增加混亂等缺點。但目前還沒有一個廣度和深度上可與之競爭的語言。最接近的也許是JavaScript,依靠有閃電般速度的Node.js在服務器領域受到廣泛關注。而語言是開源且靈活多變,意味著Java程序繼續存在甚至更加興旺。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445773.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445773.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445773.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 自定義格式化,PHP自定義函數格式化json數據示例

本文實例講述了PHP自定義函數格式化json數據的方法。分享給大家供大家參考,具體如下:/*** Formats a JSON string for pretty printing** param string $json The JSON to make pretty* param bool $html Insert nonbreaking spaces and s for tabs and …

php 單選框選中事件,html中的checkbox和radio事件選擇用法詳解

radio注冊了click事件以后,神奇的是用鍵盤上的上下左右選擇時,居然會觸發鼠標事件,滾輪也會觸發,這種神奇的事情在mousedown下面是不會發生的。(webkit不能使用上下左右選擇)checkbox注冊click事件后,奇跡再次上演&…

java水文模型,分布式水文模型.ppt

分布式水文模型ppt課件第九章分布式水文模擬技術 第九章 分布式水文模擬技術 9.1 分布式水文模型的發展 9.1.1 分布式水文模型的研究進展 9.1.1.2 幾點討論 9.1.2 分布式水文模型的發展 9.2 基于DEM的流域分布式水文模型 9.2.1 流域水文過程及其數學模擬 流域水循環過程示意圖 …

php 實現的n,php 實現數據N等分。

本例給出實現3等分的代碼和運行結果。在保證&#xff0c;每一個部分都不會宕機的情況下&#xff0c;這種算法是最簡單的。否則就用一致性哈希算法。公式原理&#xff1a;求余算法: hash(object)%Nfor($i 1;$i<100;$i){$result crc32($i) % 3;echo "i:".$i . &qu…

ccf json解析 java,【求助】e4a json解析 求助大佬幫忙老看下怎么取?

[PHP] 純文本查看 復制代碼[{"title":"\u4e1c\u98ce\u7834","url":"\/tv\/QrRobH7kTGTqNX.html","star":"\u4e3b\u6f14\uff1a\u5f20\u7b11\u541b \u5f20\u94ce \u725b\u4e3d\u71d5 \u5218\u5c0f\u950b \u68a6\u6960&qu…

java 場景處理,將黃瓜場景示例作為一個場景處理

我遇到了Cucumber的問題 - 現在我正在進行移動自動化&#xff0c;并且我有使用場景輪廓的功能 - 我在場景中有一些變量&#xff1a;場景大綱&#xff1a;菜單項Given the user is on the hamburger menuAnd the language is Then menu item is Examples:| menu item | language…

mysql 5.5.23 winx64,win10下mysql 5.7.23 winx64安裝配置方法圖文教程

本文記錄了mysql 5.7.23 winx64安裝教程&#xff0c;具體內容如下Step1選擇手動下載版本解壓到自己指定的路徑上圖中的my.ini及data文件夾在壓縮包里是沒有的&#xff0c;后面需要自己添加my.ini如下&#xff0c;直接copy~然后在目錄下創建一個data文件夾Step2設置環境變量電腦…

php if !=,php If else 用法

PHP的&#xff0c;如果聲明是非常類似于其他編程語言使用if語句&#xff0c;但對于那些誰不熟悉它&#xff0c;圖片如下&#xff1a;想想你的決定作出之前&#xff0c;你去睡覺。如果你有這樣做的第二天&#xff0c;說去上班&#xff0c;上學&#xff0c;或任用&#xff0c;那么…

matlab生成均勻部分散點圖,應用halton序列生成均勻散點圖

前言一門課的作業要用RBF-DQ方法計算流場。簡單來講就是要在無網格的條件下用高精度格式實現流場的仿真計算。生成散點圖時&#xff0c;用蒙特卡洛的方法得到的散點圖分布不是很均勻&#xff0c;于是想到一種叫做halton的序列。本篇將運用halton序列生成均勻的散點圖。halton序…

php分頁頁數過多隱藏,織夢DEDE中內容頁分頁數目太多時隱藏方法

在dede程序的文章或圖集模型&#xff0c;內容頁分頁過多&#xff0c;假如分頁80頁&#xff0c;那么dede默認的內容分頁標簽{dede:pagebreak/}會把所有的分頁都顯示出來&#xff0c;這樣會撐破網頁模板&#xff0c;即使使用css控制可以解決這個撐破模板問題&#xff0c;用overfl…

nginx php 跨域訪問權限,nginx + php 實現跨域請求填坑筆記

最近自己構建了一個輕量級的 MVC 框架&#xff0c;現在將該MVC用于生產環境的項目中&#xff0c;目前因為項目中有跨域的請求&#xff0c;所以需要做一些CORS授權&#xff0c;但在實際使用出現了一些問題&#xff0c;目前已解決&#xff0c;故做下記錄。服務器&#xff1a;cent…

python 內存溢出能捕獲嗎,Python——寫自己的異常(形成強大的捕捉和處理能力)...

"""1、編寫自己的異常時&#xff0c;通常是繼承Exception2、如果繼承的是BaseException&#xff0c;那么就不會被通用的except Exception捕捉到3、自己定義的異常Python不會自動觸發&#xff0c;需要自己觸發&#xff0c;用raise進行觸發4、python只會自動觸發它…

解決動態規劃問題4步曲

概述 &#xff08;確定狀態&#xff09;確定問題狀態 提煉最后一步子問題轉化 &#xff08;求得方程&#xff09;轉移方程&#xff0c;把問題方程化&#xff08;設初置界&#xff09;按照實際邏輯設置初始條件和邊界情況&#xff08;確序再解&#xff09;確定計算順序并求解 …

php ajax隊列,AJAX請求隊列實現

這篇文章主要為大家詳細介紹了AJAX請求隊列的實現代碼,具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下AJAX在使用的過程中會遇到一個問題&#xff0c;當用戶短時間內執行了多個異步請求的時候&#xff0c;如果前一個請求沒完成&#xff0c;將會被取消執行最新的一…

php Spreadsheet 導出,PhpSpreadsheet 導出Excel

/*** Excel 助手* sudo composer require phpoffice/phpspreadsheet*/namespace CommonUtil;use PhpOfficePhpSpreadsheetSpreadsheet;use PhpOfficePhpSpreadsheetWriterXlsx;use PhpOfficePhpSpreadsheetStyleAlignment;use PhpOfficePhpSpreadsheetStyleColor;class ExcelUt…

php 不同時區時間轉換,在PHP中將DateTime字符串轉換為不同的時區

好吧,我有以下代碼$from "Asia/Manila";$to "UTC";$org_time new DateTime("2012-05-15 10:50:00");$org_time $org_time->format("Y-m-d H:i:s");$conv_time NULL;$userTimezone new DateTimeZone($from);$gmtTimezone new…

php iis ajax 無效,IIS7中Ajax.AjaxMethod無效的原因及解決方法

最近做用Ajax.AjaxMethod方法的時候&#xff0c;在asp.net的服務器下一切正常&#xff0c;用iis的時候&#xff0c;js中總是cs類找不到&#xff0c;我就郁悶了&#xff0c;折騰了大半天&#xff0c;終于找到錯誤原因了。因為我發布網站用的是iis7&#xff0c;所以在web.config位…

查看oracle監聽服務器,處理Oracle 監聽文件listener.log問題

如果連接時候變得較慢 查看Oracle日志記錄&#xff0c;可能是因為此文件太大&#xff0c;超過2G&#xff0c;需要定期清理&#xff0c;(如果多用戶&#xff0c;記得用root&#xff0c;可能沒權限)查看listener.log&#xff1f;find / -name listener.log經查看&#xff0c;竟然…

oracle添加偽列,Oracle偽列 - jifengtang的個人空間 - OSCHINA - 中文開源技術交流社區...

在oracle10g和下&#xff0c;偽列包括如下內容&#xff1a;lHierarchical Query Pseudocolumns分級查詢是oracle提供的遞歸查詢語法&#xff0c;在這里不做展開。只有在分級查詢下&#xff0c;才可以使用以下偽列&#xff1a;1.CONNECT_BY_ISCYCLE Pseudocolumn2.CONNECT_BY_IS…

美國oracle球場,美國體育館考察——美國體育產業是如何盈利的?

體育是美國一項較高利潤的產業&#xff0c;其發展規模、發展水平和效益都是世界一流的。美國體育館考察&#xff0c;主要考察美國體育產業的盈利模式和體育賽事的贊助模式以及球館的運營管理&#xff0c;并對比中美體育產業的差異&#xff0c;從中獲得先進的體育產業運營思維&a…