Soft_Job 板


LINE

讨论程式语言的前景怎麽会变成比较程式语言的功能起来? 很多朋友都有一个误区,那就是你的前景决定於你会什麽程式语言。 这并不完全是对的。 第一个误区 --- > 你的前景决定於你用程式语言解决问题的能力 > 不是「你会不会某种程式语言」。 程式语言是工具,工具,工具。 重要的话说三次。 就跟你想在法国长住你就得学会法文,想在日本常住,那就得学会日文, 就算你想新加坡,菲律宾长住,虽然是他们官方语言是英文,但是也是有 当地的用法,你还是得学会。 你可以用中文,英文去当地旅行,但是当你在当地需要解决生活的问题的 时候,用更适合的语言,可以让你取得更快,更好的优势。 我很久以前就谈过,作为程式开发人员,程式可以分成「体」「技」「用」 三层。 体是程式语言的各种概念,比如多执行绪,记忆体管理,设计模式, ,单元测试,Mocking,TCP/IP,Protocol,类神经网路概念,决策树理论, 动态规划,随机森林....这些横跨程式语言的观念。 技是程式语言,以及程式语言的生态系。 用是你能用程式语言解决的各种问题,比如,撰写跨平台游戏,写App,预测 明天股市涨跌,比对病毒模式。 体,有的学校会教。技,网路上都能自学,花钱上课也都可以。「用」才是难 关。 用才是价值,写程式不能为组织赚钱,你写的程式解决了组织的问题,解决了 客户的问题,才是你的价值。 第二个误区 --- 缺乏对程式语言多面向的了解 很多人对於程式语言缺乏多个面向的了解,只从技术的观点看程式语言本身 ,却没有想过,程式语言的存在包括多个面向,所以才会有这麽多程式语言存在。 举例来说,前面有人说Java程式每次都马要重新编译1, 2分钟才能执行,我是建议 他去Google一下Hotswapagent跟JRebel是什麽东西。 当你想要去贬低一个不是你熟悉,或是不是你主要的程式语言的时候,往往只会看到 一个程式语言某方面了劣势,而忽略的在某方面的优势。 你觉得中文用起来很简单,很熟悉,但是从西方人的角度看,中文是这个地球上最难 学习的语言,他没有曲折,没有时态变化,还有可怕的量词。但是你不会有这个感受。 程式语言也是一样的。 延续第一个误区,你要解决问题,不得不受到Triple Constraint的限制:Schedule, Cost, Quality。 「Java程式语言的效率不可能与C比较」这个命题基本上是胡扯。 对某些人而言,C尽管在好的架构下,可以达到比较好的记忆体管理,但同样的 也更容易产生memory leak,你只考虑了你自己,却没有考虑到,在组织当中, 跟你一样有水准的工程师不一定那麽多,Java执行效率较慢,但他更安全。 也许你的Performance不是第一考量,也许你需要有更好的企业架构。 Java不是单打独斗,Java有整个JVM的生态系在支援它,而且是非常成熟的生态系。 Spring Framework几乎集成了所有企业级的功能,打到官方EJB自爆,其他语言许多 概念,都是衍伸自Java,例如xUnit,logging,DI。 Mybatis, Hibernate都是出道超过10几年的框架,到现在还是可以运作得很好,有 成千上万的成功企业使用Java。 也有人说Java不适合微服务吧,那他也可以去Google一下Spring Boot。 Java也有很好的向下相容性,10几年前的Code,你用现在的JDK9去编译,大多数状况下 它都能很好的运作,所以对於开发出来以後会用上10来年的系统,Java会是一个比较 容易的选择。 你能用.Net Framework去编译VB6的程式吗?或是ASP?Python 2 migrate 到Python 3 ,从2008年推出到现在快10年了,他还在Migration。 我并不是说Java很好,而是往往很多人想说,「天啊,你们公司还在用Java,真老」 ,或是Java缺乏某某功能,比如GC还不能自动控制之类的,那都是用自己偏狭的一方 观点去看一个程式语言,而没有考虑它使用的场合,限制,要解决的问题,也忽略了 整个生态系的完整程度。 我们公司还在用COBOL咧,前端还不是可以吐json接AngularJS跟Vue? 第三个误区 --- 只能会一个程式语言 我不是独尊Java,Java也能做深度学习,有ND4J,Deeplearning4J,甚至直接跟 Spark或Hadoop结合,但Python深度学习这方面起步早,有Tensorflow还有Scikit-learn 这些机器学习套件,他在这方面的生态系比较成熟一些,资料也比较多,我要 搞深度学习,首选还是Python,事实上我们公司主要用Java,COBOL,但Python也有拿 来做机器学习一些data使用。 但不代表你用了Tensorflow,你就一定要用Django做资料视觉化的展示,或是写ERP程式 ,你一样可以利用Java跟Spring打造你的企业应用,用Node.js的socket.io做即时资料 交换,用Meteor写App,如果要拿去卖,卖像要更好就再用Swift跟Andorid打造App, 只有内部使用可以考虑Xamrin。公司跟微软合作良好就去用.Net Framework,同时要 管理server side deploy跟docker image management就再用shellscript跟Ansible。 没有人可以限制你,只有你要自己限制自己,你会得东西越多,你越能在Triple Constraint中找到完美的平衡,选择最适合的解决方案跟生态系。 武术分为很多流派,拳击,桑博,咏春,散打,空手道,但在不同规则下,不同的武术 有不同的优势,没有最强的武术,只有最适合的功夫,最後站在擂台上的,才是胜利者。 另外一个重点是「体」,够有钱,甄子丹也打不过马师傅。 当然你要专精一个程式语言是可以的,但是活用,可以为你取得更多的机会。 最後 --- 你要解决什麽问题,决定了你要使用什麽样的工具,但只要你体质够强壮,任何工具 都能为你所用。 我们从2015年起用Spring打造了一个同仁不知道那是Spring的Spring框架(因为 已经变成convention over configuration了,我们还借镜了一些其他语言才有的观念) ,还有一个专门的部署平台,提供多达80个人共同开发,目前支援超过1400个 Controller, 1000个service以及超过120个Restful Service的ERP以及各类周边系统。 当然我们也有开始试着用一些R, Python, 跟Node,做一些非ERP有关的东西。 Logging/monitor system也从无到有建立了Graylog/Elastic Search丛集,用Sonarqube 做static scan,现在整个Gradle已经快变成天书,但是所有开发同仁可以完全 没有Spring, 没有Gradle的知识。 我们还在把三四十年来的COBOL程式改成Java,我们希望程式语言还可以再战20年, 而且不要变化太快,但也不要跟C一样缺乏开发效率,Java看来是比较合理的选择。 人力盘点的结果,再加上对於各种成本考量,Java可能是最好的选择,尽管我们 还是没买JRebel导致SQLMap改了之後还是要rebuild,hotswapagent有点两光。 但这不就是推动Unit test以及mocking的一项不错的动机吗? 不同产业,不同环境,要解决的问题不同,你的老板是谁,决定了你该会什麽 ,要用什麽。 决定你的目标,再看你的体质,选择最适合的工具。我想这才是大家选择程式语言 前景的目的吧,不要再比较谁好谁坏了,请先把你的命题想好,要解决的问题说清楚 ,才有讨论的价值。 不然跟麦格鲁戈跟五月天打拳击没有两样。 -- 所有我的作品,请到..... ~四十八个德瑞克~http://blog.derekhsu.net 马皇本纪:http://blog.derekhsu.net/2009/08/821 上官先生传:http://blog.derekhsu.net/2009/08/825 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.105.222.185
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1514303283.A.E26.html ※ 编辑: derekhsu (112.105.222.185), 12/26/2017 23:49:48 ※ 编辑: derekhsu (112.105.222.185), 12/26/2017 23:55:58
1F:推 senjor: 整理了很多职场经验,用心推 12/27 00:30
2F:推 icydream: 推 12/27 00:55
3F:推 shps951015: 用心推! 12/27 01:00
4F:推 hegemon: 这才是现实的工作状况... 12/27 01:24
5F:→ hegemon: 很多时候需要用到combo技才能发挥最大的战力 12/27 01:25
6F:→ hegemon: 某些语言就是有足够多的套件支援,真的用到的时候不选这 12/27 01:26
7F:→ hegemon: 种,反而硬拿其他语言去硬刻才真的傻了 12/27 01:26
8F:推 darklose: 推这篇观念 12/27 02:15
9F:→ doomdied: 举例错误,.net framework跟asp是不同的东西,当然不行 12/27 02:48
10F:→ doomdied: jsp换个jdk版本可能就compile不起来了好吗 12/27 02:53
11F:推 wanlinlin: 推经验分享 12/27 07:46
12F:推 imreader: 推,我还是先去用 python 跟 node.js 好了 12/27 08:25
13F:→ imreader: 懒人还是用可以偷懒的工具,比较实在,多点时间打电动 12/27 08:26
14F:推 JohnRoyer: 推程式语言只是一种工具 12/27 11:35
15F:推 senjor: 不同的程式语言之於CODER就如同不同的绘图软体之於绘师 12/27 12:04
16F:→ senjor: 如果绘师之间战什麽绘图软体才最好其实会感觉层次有点低。 12/27 12:05
17F:推 Vendy: 所以我觉得大家避而远之JAVA很奇怪,明明 spring boot 用 12/27 12:20
18F:推 Vendy: 起来很方便阿~ 12/27 12:23
19F:推 ripple0129: 绘图师讨论工具很正常吧,不知道为什麽要把讨论讲成是 12/27 12:27
20F:→ ripple0129: 战,就好比photo impact跟photoshop,讨论哪款适用或 12/27 12:27
21F:→ ripple0129: 开发某种用途的图形的方便性。今天出来一款新的绘图工 12/27 12:27
22F:→ ripple0129: 具,能够在某应用场景下比photoshop还好用,但并没有 12/27 12:28
23F:→ ripple0129: 说photoshop就废掉。 12/27 12:28
24F:推 senjor: 讨论当然不错,不过我说战当然指的是拿来战的那群人 XD 12/27 12:29
25F:→ senjor: 例如说photoshop使用率下降了,用photoshop的块陶喔~ 12/27 12:29
26F:推 GlinX: 刚刚看才注意到这篇文章 推 写得不错 12/27 12:29
27F:→ GlinX: 现在工作需求的趋势都是多技能吃香了 前端後端不分 直接来 12/27 12:35
28F:→ GlinX: 个全端 只是资讯人员很累就是 一直有新东西新概念 12/27 12:35
29F:推 ripple0129: Springboot的方便是对比过去的Servlet与SpringMVC,再 12/27 12:36
30F:→ ripple0129: 对比node或go会发现更方便 12/27 12:36
31F:推 ripple0129: 不用暗喻是我了,我单纯很理性分析个人观感,毕竟语 12/27 12:40
32F:→ ripple0129: 言要学习时间的投入,对资深人员是没差往往都要碰多语 12/27 12:40
33F:→ ripple0129: 言,但是对新手在选择语言时会是很好的参考价值。而 12/27 12:40
34F:→ ripple0129: 不提供有参考价值意见无意义的嘘或捧个人觉得没什麽 12/27 12:40
35F:→ ripple0129: 帮助的。 12/27 12:40
36F:推 Ommm5566: 看前几篇的推文就知道谁在战 因为XXX语言正在下降 12/27 12:46
37F:→ Ommm5566: 所以大家不要用这种逻辑 12/27 12:46
38F:→ Ommm5566: 或者是我不会OOO 所以不使用这个语言 12/27 12:46
39F:→ Ommm5566: 因为自己不会只好贬低来提升自己不会的高尚 12/27 12:46
40F:推 Ommm5566: 而不是说某语言在特殊问题有优势这种讨论方式 12/27 12:49
41F:推 ripple0129: 我对号入座一下吧,我从来没打过大家不要用这句话, 12/27 13:23
42F:→ ripple0129: 不知道哪边看到的。再来Java是我主力语言,只是对於 12/27 13:23
43F:→ ripple0129: 学习成本以及开发速度的关系我老板不爱用,所以只能 12/27 13:23
44F:→ ripple0129: 舍弃Java。而Java的在台湾很大会选用的原因事实上有 12/27 13:23
45F:→ ripple0129: 不少已经是因为人员取得方便以及各种解决方案也有许多 12/27 13:23
46F:→ ripple0129: 的成功案例这方面的面向。我个人是对Java抱持悲观但 12/27 13:23
47F:→ ripple0129: 不代表我就舍弃了Java,事实上Java在现阶段还是有不可 12/27 13:23
48F:→ ripple0129: 取代性,太多的旧案包含我们公司也有,仍然还是要继 12/27 13:23
49F:→ ripple0129: 续使用Java。 12/27 13:23
50F:推 hegemon: 我觉得台湾很多新创团队犯的错误就是看到什麽潮就跟风用 12/27 13:48
51F:→ hegemon: 什麽..却没看看开发环境,套件是否成熟... 12/27 13:48
52F:推 vi000246: 哪个语言实用就学哪个 我也是觉得多多益善 12/27 13:54
53F:→ vi000246: 像我就会分成工作用 写小工具用 写side project用 12/27 13:55
54F:→ vi000246: side project又要看性质决定用哪个语言 12/27 13:55
55F:推 kaitokid1214: 讲超好的 小弟刚进公司写一年多的 code 真心觉得T字 12/27 15:00
56F:→ kaitokid1214: 型发展超重要 12/27 15:00
57F:→ zenixls2: micro也可以用Akka吧,不用局限在spring上 12/27 15:14
58F:推 gmoz: 推 12/27 15:36
59F:推 Sidney0503: 我不是说r大 而是某个人说不会thread所以不使用 12/27 15:54
60F:→ Sidney0503: 我说不会用memory所以C很烂 还有人认同 12/27 15:55
61F:→ Sidney0503: 战java的理由是自己不会用 这种文章还真有"建设性" 12/27 15:56
62F:推 Sidney0503: 搞得我都不知道哪些人是反串 12/27 16:14
63F:推 druid0214: 整个系列看下来 不少分身www 12/27 16:25
64F:→ Argos: 但我还是觉得让JavaScript壮大是程式语言界最大的错误 12/27 17:18
65F:→ Argos: 另一个错误是Flash 还好它快死了 哇哈哈哈哈哈哈 12/27 17:19
66F:→ Argos: 没有最好的只有最适合的 这句话大家都会讲 但事实上真正的 12/27 17:20
67F:→ Argos: 问题是在於「你怎麽知道这时候用这个是最适合的」? 12/27 17:20
68F:→ Argos: 考量再多这也没办法量化 最後还是选用什麽技术还是取决你的 12/27 17:21
69F:→ Argos: 感觉 尤其是当解决方案有好几种都看起来很适合时 12/27 17:22
70F:→ Argos: 就变成「我觉得XXX应该会比较好」 12/27 17:23
71F:→ nelley: 推 12/27 18:32
72F:→ y3k: 应该说 在你遇到问题时选择你会的东西之中最适合的 12/27 18:51
73F:→ ezaki: 推这篇,没有高下之分,语言也是很难比较出来的东西 12/27 22:09
74F:→ ezaki: 硬要比就只能比单一功能面的东西,听到都有点无力感 12/27 22:09
75F:推 onthesea: 好文推 12/27 23:04
76F:→ alan3100: microserivce 有很多范本是akka 12/27 23:32
77F:推 silverzeus: 优文给推~~ 12/29 11:22
78F:推 v9290026: 推 12/29 23:36
79F:推 atpx: 推荐! 12/30 01:37
80F:推 vvind: 推 12/30 16:47
81F:推 vencil: 推这篇 12/30 19:25
82F:推 Naturetee: 推 12/31 21:24
83F:推 allnun: 推! 01/01 10:09
84F:推 Falldog: 推 优文 01/02 14:36
85F:推 a42006310: 推 赞赞 01/14 23:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job 或 站内搜寻

TOP