作者ripple0129 (perry tsai)
看板Soft_Job
標題[討論] 關於Java開發OS推薦
時間Fri Nov 23 22:26:20 2018
先前推文推薦Java新人使用mac or linux開發
有人不認同
那我就在這邊好好闡述我的觀點吧
企業多數部署JVM的主機OS為Linux
而Linux使用的shell為bash shell為主
Mac OS本身也是直接內建bash shell
在操作部署上面可以無縫接軌
懂得寫shell script基本的自動化可以輕易達到
而當部署時對於linux上的理解就有其必要性
Mac OS本身為BSD改來的核心
同是UNIX系列在多數地方是大同小異
當你java問題狀況發生於系統層面
譬如說權限問題
你對於linux的權限管理就要有所了解
語系問題在linux上的locale你就要有所了解
最終你面對的是系統衍生的問題時
總是容易卡關
使用windows開發java的人
部署時面對是自己不熟悉的系統
處理起來自然綁手綁腳
對於平日就在用UNIX系OS的人
很快就能夠定位問題的原因
這在職場上面真的是看的出差距
至少就我在職場的認知
再來現在不少公司用docker了
你dockerfile要的也是sh指令
畢竟image八成是linux為底
最終導入docker的公司
你不了解shell根本沒辦法寫dockerfile
也只能請同事幫忙打包
Windows用慣的人
往往都要找熟悉linux來處理系統相關問題
當然你要在windows是部署JVM production 環境
我上面說的話就不成立了
不過拿windows來部署的企業看看有沒有1/10吧
Java架構師有不懂windows部署的
還沒看過不懂linux部署的啊
以上是我的觀點
如果有推薦java於windows上開發
好處大於UNIX系的
歡迎提出討論
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.20.127
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1542983182.A.230.html
1F:→ justben: 我只有用過 Android Studio 在 Mac 慢到靠腰11/23 22:31
2F:→ justben: 在win就還蠻快 也因為裝備比較好就是11/23 22:32
3F:→ justben: java ide 類 寧願用win, 有要用 shell script 還是 ulike11/23 22:33
你信仰充值不夠
好吧便宜win桌機是windows的優點之一
這點沒話說
我用桌機時也是用windows在開發
筆電用MacBook pro不會覺得慢到哪
※ 編輯: ripple0129 (115.82.20.127), 11/23/2018 22:39:34
4F:推 abccbaandy: java用途太廣,你說的是哪塊? web那塊用什麼都沒差吧11/23 22:40
5F:→ pttworld: 多數在UNIX11/23 22:43
6F:推 atpx: 桌機還是屌打NB, 如果只用一種開發工具當然不會覺得慢11/23 22:45
7F:→ atpx: 如果同時要開2-3種工具含VM, NB就出局了11/23 22:46
8F:→ loadingN: zsh屌打bash bash是不是過氣了11/23 22:49
等哪天linux內建zsh再說過氣吧
不過zsh用起來就是比bash爽啦XD
※ 編輯: ripple0129 (115.82.20.127), 11/23/2018 22:53:47
9F:推 wildli0422: 推一下,系統改用Mac以後開始被逼著學著下指令11/23 22:59
10F:→ alog: 你跳哪個系統都一樣都有權限問題噢,部署系統本身不論你用W11/23 23:17
11F:→ alog: 或L陣營第一次也是都會有很多需要調整 包括如何調效系統都11/23 23:17
12F:→ alog: 有11/23 23:17
13F:→ alog: 我覺得用Mac的起來的感覺就是舒服 但是不會因為你用什麼作業 11/23 23:19
14F:→ alog: 系統你在處理什麼事就會變得容易理解 11/23 23:19
15F:→ alog: 平常還是要多做功課 多做研究 11/23 23:19
16F:噓 alihue: 老實說應該要同事用什麼你就用什麼,沒得選 11/23 23:20
17F:→ alog: 挑作業系統應以你的軟體生態、使用習慣來決定,讓你發揮出11/23 23:20
18F:→ alog: 最大的產出11/23 23:20
19F:→ alihue: 哪天哪個協作軟體你不能用,就等著被孤立11/23 23:20
20F:→ alihue: 你的講法跟堅持使用text editor不用IDE類似11/23 23:21
說真的還沒遇過有人不會用windows的啦
這就是為甚麼開發建議Unix
21F:→ alog: 部署這種事 我講白一點 如果你只有windows server 可以部署11/23 23:21
22F:→ alog: 同事對linux沒有你想像中的精通你一樣要從菜鳥開始弄起 因11/23 23:21
23F:→ alog: 為你只是熟一部分的部署或設定方法 11/23 23:21
24F:→ alihue: 所有軟體都是為了更方便工作為目的 11/23 23:21
25F:→ alog: 還有如果你的協力廠商的軟體跑在windows跑java你還是會乖乖 11/23 23:23
26F:→ alog: 給他放在上面跑11/23 23:23
27F:→ jej: 瞭解shell是一回事啦11/23 23:23
28F:→ jej: 你一定沒有遇過公司要求你寫power script11/23 23:23
29F:→ alog: 所以你要用什麼作業系統做開發真的是個人自由 因為真的要上11/23 23:24
30F:→ alog: 別人機器時 什麼樣的情況都有11/23 23:24
31F:→ jej: 也有的是公司用power script寫Jenkins docker11/23 23:24
少數啊
看有沒有1/10吧
而用win在開發不會powershell的超級多
32F:→ alog: 部署麻煩大家都必須經歷過的 但一次麻煩 第二次還是 第三次11/23 23:25
33F:→ alog: 繼續這樣就是個人問題或沒再繼續精進了11/23 23:25
34F:→ jej: 只能說都要懂啦11/23 23:25
35F:→ alog: 那些不會是你用什麼系統開發就會免除的 mac 只是運作類似 *n 11/23 23:26
36F:→ alog: ix like的東西 不代表你就不用做其他功課 也沒有這麼神精準 11/23 23:26
37F:→ alog: 找到問題 11/23 23:26
就我看來windows用慣的
在沒GUI就完全沒頭緒的人不少
而unix系的平常就在黑白窗debug
根本不會怕
這是長久以來看到的現象
OS對高手來說根本哪個都沒差
重點是新手平常就在用win
讓開發多了解不同系統絕對有幫助
※ 編輯: ripple0129 (115.82.20.127), 11/23/2018 23:54:17
38F:推 csieflyman: 前公司產品跨平台及資料庫 平時公司內開發測試都是lin 11/23 23:53
39F:→ csieflyman: ux server 但實際客戶平台大多是windows server + sql 11/23 23:53
40F:→ csieflyman: server 結果同事都用mac或linux是怎樣... 只有我用wi 11/23 23:53
41F:→ csieflyman: ndows 撰寫及測試部署腳本 還要研究windows防火牆 AD 11/23 23:53
42F:→ csieflyman: 認證...等一堆東西11/23 23:53
一堆在windows上部署的出現了
我都開始懷疑自己是不是平行世界了
還是其實是5、5波我誤會成1、9波
※ 編輯: ripple0129 (115.82.20.127), 11/23/2018 23:57:30
43F:推 csieflyman: linux 平台我也要弄 script 要寫二份 開發及安裝測試 11/23 23:56
44F:→ csieflyman: 也要二次 如果那時就有docker就好了 11/23 23:56
45F:推 AvatarH: Windows也有Bash Shell和Xshell,SSH到Linux就好了,為何 11/24 00:08
46F:→ AvatarH: 一定要MAC? VMware+Vagrant也可以開發Linux下的系統啊! 11/24 00:10
可以
這樣不就是用linux開發一樣意思嗎
47F:噓 alihue: 嗯,現在win有linux subsystem了11/24 00:10
我有在用
都是用git附的bash shell
結果講到來都是在windows上面要學Unix like
這就是我要表達的啊
最終還是要熟悉Unix系統
※ 編輯: ripple0129 (115.82.20.127), 11/24/2018 00:14:42
48F:→ alihue: 原原po連能不能跟上公司不被裁員,還想建議對方用更不熟的 11/24 00:11
49F:→ alihue: 環境根本是害人 11/24 00:11
一般在用mac os跟linux的公司
對方沒用過還會給進的
不會因為這個就裁員
只會因為code寫不好被裁員
只是要習慣下環境
畢竟code都是一樣開IDE在寫
※ 編輯: ripple0129 (115.82.20.127), 11/24/2018 00:20:57
50F:推 YahooTaiwan: 你是不是沒待過以 Windows 系為主力的公司啊?言語 11/24 00:19
51F:→ YahooTaiwan: 中透露出滿滿的井底之蛙感 11/24 00:19
沒錯耶對windows系的工作
通常興趣不大
因為沒在碰.NET系列的
的確是有點井底之蛙
畢竟因為環境都在非win
太少看到windows架構強的架構師
哪天轉寫.NET到win系的環境
或許可以開開眼界
※ 編輯: ripple0129 (115.82.20.127), 11/24/2018 00:25:12
52F:→ qrtt1: 新人就 java 不熟了,你又叫他用平常沒用過的 linux, osx11/24 00:23
53F:→ qrtt1: 這樣也太痛苦了吧。一個時間有一個主要的學習障礙就夠他受11/24 00:24
好吧標準或許該放低些
54F:→ alihue: 我前面亂嘴IDE,結果你還真的發過IDE文 11/24 00:25
※ 編輯: ripple0129 (115.82.20.127), 11/24/2018 00:27:04
55F:噓 hegemon: 用linux開發才是正解,同樣的價錢買筆電回來自己轉linux11/24 11:29
56F:→ hegemon: 可以買到頂級了,看看macbook那啥鳥價錢11/24 11:29
57F:推 jete: 用久了ubuntu覺得windows好難orz11/24 12:14
58F:→ gpctv: 看標題我以為是用java寫一套OS11/24 14:04
59F:推 jej: 推jete 用Ubuntu後 到現在win10還搞不懂怎麼操作 囧11/24 14:40
60F:→ angusyu: Ubuntu 桌面效能很爛,不是隨便tune一下就能媲美其他系統11/24 17:46
61F:推 justben: 左:ge62mvr Win10 中:Mbp2015 雙螢幕 右: Dell980 嗚幫兔 11/24 20:52
62F:→ justben: 一起用就沒差了 大家都是好捧油 11/24 20:53
63F:推 sharku: 贊同, 覺得macbook不行表示還買太低階11/25 13:01
64F:噓 THEWORLDS: 真可愛 標題跟內文完全沒中點連結11/25 13:10
65F:→ THEWORLDS: 全球95%都是用LINUX在線上跑 但是大概70%都是跑WIN系統11/25 13:10
66F:→ THEWORLDS: 所以最簡單的方式是在WIN寫扣然後再LINUX上跑CODE11/25 13:10
67F:→ THEWORLDS: 這個業界普遍在用的方案連題都沒題還敢自稱推見喔11/25 13:11
68F:→ THEWORLDS: 還有LINUX普遍快的原因是因為內核基礎系統api較少11/25 13:12
這是開發維運拆開的狀況
Windows上開IDE開發沒人不會
Unix不是人人會
所以就說了單純開發什麼都不用管就沒差
會Unix 在未來做架構做CI/CD是有優勢的
※ 編輯: ripple0129 (1.171.213.112), 11/25/2018 14:43:18
69F:→ alan3100: 可是我覺得CICD和container大幅降低碼農OS知識門檻耶 11/25 17:06
就看你是想當架構者還是使用者
※ 編輯: ripple0129 (101.14.135.225), 11/25/2018 19:06:43
70F:→ alan3100: 可是建好CICD跟containermanagement 上個app也只是套用 11/25 22:43
在建立的過程中很難免除掉unix的使用
簡單來說公司給能夠建立的人
跟等著使用的人薪水是不同的
※ 編輯: ripple0129 (101.14.135.225), 11/25/2018 22:51:50
71F:→ alan3100: dockerfile抄一抄就兜起來.不如多看各大廠cloud出的服務 11/25 22:53
72F:→ alan3100: 但你說的不同薪水就因為是不同職缺了呀 11/25 22:55
73F:→ alan3100: 想脫離既有infra就是使用cloudserv,相對簡單且成本低 11/25 23:00
74F:→ alan3100: infra engineer已經跟標題是不同職位了 11/25 23:02
我也選用cloud service
但是使用的過程個人覺得不太可能沒有
Unix與networking的知識
有職位是都要會的
我覺得會的越多越有本錢談薪啊
能多學就多學不要排斥啊
※ 編輯: ripple0129 (101.14.135.225), 11/26/2018 00:24:28
75F:推 fayhong: 其實你這論點拿去 9 成 9 的語言都成立吧,除了是開發 11/26 10:48
76F:→ fayhong: C#、WinForm、Win SDK 等 Windows 相關應用的人,非得使 11/26 10:49
77F:→ fayhong: 使用 C#、VisualC++、VB.Net、ASP.Net 的人以外, 11/26 10:50
78F:→ fayhong: 現在連 M$ 買下的 R,都有 Linux 版的 RStudio 了 11/26 10:50
79F:→ fayhong: 我在 Linux 跟 Windows 上都能開發 Java,如果我在開發時 11/26 10:50
80F:→ fayhong: 還要搞定權限設定問題,那只有一個可能,就是架構設計一 11/26 10:51
81F:→ fayhong: 開始抽象化就做得不好,讓寫程式的人要去煩惱底層的問題 11/26 10:51
82F:→ fayhong: 即使在 Linux 上,現在也能寫一些 C#、F# 之類的程式了, 11/26 10:52
83F:→ fayhong: 其實用什麼系統真的不是那麼重要,順手就好了 11/26 10:52
84F:→ fayhong: 另一方面,Objective-C 之於 macOS 也是如此 11/26 10:54
85F:→ fayhong: 可能是我們團隊維運跟開發分得比較開,我們的架構還真沒 11/26 10:56
86F:→ fayhong: 讓開發人員花太多力氣在處理跟系統相關的 issue 上 11/26 10:57
87F:→ superpandal: 哪裡都馬有權限 看做到哪裡而已 程序外還是程序內 12/01 11:40
88F:→ superpandal: 內外都有那更好拉 12/01 11:41
89F:→ superpandal: 看本質就是這樣而已... 12/01 11:41