作者ztwo79 (銘)
標題Re: [討論] 學習php跟java的實用性
時間Sat Jul 21 14:07:31 2018
文長, 如果懶得看的話可以先只看短結論
短結論:
如果是希望找網頁後端開發工作的話我推薦 PHP ,因為約有80%的網站使用 PHP 作為後端語言(參考註1),工作機會相對比較多。
PHP 相對於JAVA的學習門檻也來得比較低。
但如果你是希望能夠跨平台,ex 網頁後端開發,桌上型應用程式, 手機 Andriod 開發的話建議 JAVA。
我先說一下我的個人經驗,目前工作五年,開發上主要以 PHP 為主,JAVA 有兩個接案開發的經驗
一個是舊系統維護和新功能需求的開發。一個是新創的案子,使用Spring framework 開發,
所以我 JAVA 相對比較不熟悉,如果下面的說法有誤,歡迎指正。
在比較 JAVA 和 PHP 之前,我想先說不同的語言有他當初創造出來的目的和設計理念,各自有各自的優點和缺點。
沒有必要特別去戰哪個語言起哪個語言好,不同的條件就會有適合和不適合的情況。
PHP 本來設計就只是為了放在網頁裡面增加判斷的邏輯,弱型態語言,開發上相較於 JAVA 彈性很多。
不用在一開始就定義變數的型態,就不用像JAVA可能要比較字串的時候需要做 toString, 要計算的時候又要轉成 int。
PHP 又因為學習門檻低,所以你很容易接手維護到品質很差的 code。很容易碰到各種各樣的義大利麵程式碼。
像是 php/sql/html/js/css 全都在同一頁互相夾雜的程式。
各種奇耙作法的程式,像是用php echo出 javacript 再使用 include 給另外一隻 php。
各種奇奇怪怪的作法會讓你維護到想哭。
這也是很多人不喜歡 PHP 的主要原因之一。
但近代的 PHP 隨著增加 autoloader/namespace, composer 方便套件管理,PHP 7 的效能提升,以及 Laravel 變成主流的框架。
PHP 7 和其他語言再網頁開發這塊,算是蠻不錯的選擇了。
JAVA 的話,由於整個設計理念都是圍繞在 OOP 的架構,所以對於新手來說學習門檻是偏高的。
新手可能很容易連 compile 都不過,連個畫面都沒有就決定放棄了。
JAVA 本身算是一個有一個很好的生態系。跨平台的特性是很多語言無法取代的。
JAVA 也很有本身又有很多現成的 package 可以用。
中大型企業開發上蠻喜歡 JAVA 的, JAVA 本身在執行上也是蠻穩定的(除了很容易因為型態沒設計好而壞掉,不過我覺得算是開發者的問題)。
其實比起語言的選擇,我個人覺得更重要的是開發的觀念更為重要
ex
程式開發的觀念
OOP的觀念:
封裝/繼承/多行
design pattern:
不同的 design pattern, 以及什麼樣的情況適合用什麼樣的 design pattern 去實作和設計
測試:
TDD/BDD/Unit testing/Integration testing
Code Refactoring
Dry Principle / Solid Principle
資安觀念
sql injection, xss, csrf
這些觀念不管你要轉換什麼語言都是可以共用的,而且可以讓你寫出更好維護且更安全的應用程式
參考來源
(註1)
https://goo.gl/ZddPI0
※ 引述《utap2001 (尋找一個漫長的答案 )》之銘言:
: 各位前輩好
: 最近因為工作需要在學習php跟java
: javascript也有稍微懂一點
: 不過我不是資工的本科生
: 會想學java主要是想把基礎打好
: 還有也想開發視窗程式
: 不過學了java之後
: 發現java上如果要開發ui
: 其實是比php複雜
: 畢竟php有html現成標籤可以用
: 還有java的語法是比較不直覺
: 同樣一個功能可能沒有函數可以用
: 跟javascript和php差很多
: 我舉個例子
: 假如我想寫一個前端的資料庫介面
: 可以給使用者操作
: 像這樣的情況下
: 開發網頁ui的速度就直接比java視窗介面快很多
: 功能也幾乎一樣
: 所以想請問大家
: 如果想學程式開發的話
: 是不是從網頁這邊下手會比較容易入門
: 也比較實用
: 還有大家在工作之後
: 實務上會用到java或是C++等中階語言的機會多嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.11.17.245
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1532153253.A.3AB.html
1F:→ tkdmaf: 80%這個在台灣我不確定,實務上企業找asp.net的比較多 07/21 15:31
2F:推 nacoyow: 嗯,一般工作在南部也是asp.net比較多 07/23 21:56
3F:推 r567tw: 讚 08/01 19:32
4F:推 molopo: 推 08/24 02:05
5F:推 XD9527: asp.net ? 笑了 08/24 20:54