作者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/cn.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