我是一名 JetBrains 的忠实粉丝。我学习编程语言的经历大概有 10 年左右,使用 JetBrains 大概有 7 年左右。在这么多年的学习编程和使用 JetBrains 全家桶的过程中,我认为 JetBrains 的成功不仅仅是技术原因,还有的是产品上面的创新,而这些创新都离不开大型软件工程的实战经验,因为只有经历过大型软件工程的开发与不断迭代过程,才知道一款优秀的 IDE 里面需要什么功能,哪些功能能够帮助程序员高效地开软件。
网传 JetBrains 的 IDEA 系列最早的“杀手锏”功能是 refactor (rename)重构功能。例如在 IDEA 中你可以使用 Shift+F6 快速将一个变量改名,并且这个改名操作将应用到所有 引用了该变量的代码。这就需要 IDEA 对整个项目中的所有代码做 parser,追踪他们之间的引用关系。这类功能的背后离不开强大的代码静态分析技术。所以做专业软件,首先是需要有技术方面的支持 。
其次是产品方面的设计考量
IDEA 的重构功能极为强大,包括各种强大的 extract,路径移动等。

IDEA 的强大远不如此。它的功能包括但不限于
- 图形化 debug
- 图形化 git 操作,一键 rebase
- 代码结构梳理,也就是左下角那个 structure 功能区(自从用过 CLion 之后我在也没用过 source insight 了)
- 代码收藏,同样对 trace code 友好
- 和各大主流框架和编程语言的紧密结合(例如 WebStorm 对 npm 有极为强大的支持,能够分析 scripts 和 .nvm 自动选择合适的 node.js 版本启动 script,能够自动分析 node_modules 判断当前依赖是否匹配 package.json 等)
- 最新推出的 code with me 功能,在疫情远程工作的大背景下,这个功能能够方便同事之间在无法物理接触的情况下进行手把手 debug
- generator(例如 JavaBean 中的 getter setter 方法可以一键生成),也可以配置 live template 和 file template,例如我写 React.js 的时候经常会有很多重复性的样板代码,例如 const {children} = this.props,这个我就配置为 cctp,我只要按下cctp再按 tab 就能快速输入
- 更多功能就不说了
想到以上这些功能的创意,需要 JetBrains 的产品经理需要有极长时间的一线 coding 经验,并且这些软件工程项目的质量要求很高(如果是屎山项目,也就没有用到重构功能的必要性),尤其是经历过从 0 搭建起一个项目,并且后面又遇到需要重构的情况。
而我国做不出来这类软件,原因也主要有如下
- 有极长 coding 经验的人没有国外那么多,大部分是在2010年之后的互联网红利开始才学习 coding 的,甚至很多是生化环材转码。人少,那么诞生出这些天才产品经理的几率也更少
- 大部分人还是有一种“勤劳的守旧”观念,也就是认为使用工具提升生产力是一种偷懒和投机取巧的表现,推崇使用 vim 等高门槛和学习曲线陡峭的软件是一种“技术能力强”,“能吃苦学习”的习惯。
- 优秀的产品经理需要跨界经验,例如 JetBrains 的产品经理肯定不仅仅是画个原型图和写个 PRD 那么简单,这些都需要深入一线软件行业,掌握大量工程师人脉,和非常多的软件工程师交流,了解他们真正需要什么。站在他们的角度思考一款优秀的 IDE 应该要给我带来什么样的功能。国内 一些PM 论坛的交流内容还是以互联网 APP 产品为主,这类产品的 PM 还是停留在学校学学 UI 设计,出来跟着“人人都是产品经理”的网课学学做 PPT 画原型图写 PRD 的水平。PM 的上限水平过低,缺乏垂直行业的经验与人脉导致了做不出顶级的工业软件
- 缺乏工程师文化。所谓工程师文化,指的就是产品进步是由工程师推动,工程师使用科学技术提升产品的用户体验,可靠性,安全性等。由于各种环境原因。真正拥有“工程师心态”在人群中还是偏少数,抱有“功利心”去读书刷 GPA,去工作刷 KPI ,很难诞生优秀的专业软件。缺乏工程师文化的根本还是和经济基础与分配平衡有关,经济基础过差的情况下,大家会更容易选择保守,保守则不容易引发对创新的思考。而分配平衡过差,则会导致“工程师”们更倾向于使用“技巧”去内卷抢得少数资源,而非使用“科学技术”去创造更多资源与价值。
- 奶粉钱,产假,房价,教育公平,没有好的环境就留不住顶尖的工程师与专业的产品经理,知乎都说烂了的事情就没必要提了。。。
做工业软件,最好就需要是这个领域的工程师直接转行来做工业软件的产品经理,因为只有自己行业的人才最了解自己人。而我们的现状是连抱有工程师思想以及拥有工程师文化的公司都非常稀少,更别指望真正的工程师们在拥有丰富经验之后转行 PM ,然后设计优秀的工业软件帮助我们加速生产效率,解放生产力。
最后再谈谈 JetBrains 在获客与留存方面做的努力
很多工业软件都有 help 帮助文档。但是大家可以扪心自问一下,你们真的有看过专业软件的 IDE 吗?你们有点开过专业软件的 help 菜单吗?
以 JetBrains 家的 goland 为例,当你初次安装时时,首次启动软件会显示引导画面,里面会使用言简意赅的文档和样例代码帮助你快速掌握这款 IDE 的各类 feature
如图所示,这是 goland 的 learn 功能,而图上此时此刻显示的则是如何使用快捷键快速删除代码行或者换行,以及将过长可变参数的代码自动转换为可读性较强的多行格式

无论是样例代码,还是帮助文档的文案,他们都设计得言简意赅,而且即使是英文,也是选择了计算机领域常见的英文单词,不会对非英语母语人士造成太多障碍。
只有当用户能够很快学习上手你的软件,那么你才能长久留存客户。而这一点,在我见过的绝大多数驰名全球的顶级专业软件(包括设计领域的 Adobe 全家桶,电子工程领域的 MATLAB,Cadance ICC、Altium Designer、TI 德州仪器的 LabView 和 Multisim,Intel Quartus,Xilinx Vivado)都做得非常差,基本没有像 JetBrains 那样提供言简意赅的解释和恰到好处的样例代码让你快速上手。一款专业软件令人难以上手,学习门槛极高,也是很难留存客户的。而 JetBrains 在快速入门与帮助文档的细节设计上绝对可以说是优秀至极。
评论区也有人讨论 vim 是否适应键盘操作?或者 vim 是否有在 ssh 上面直接编辑代码这种场景。
首先是键盘适应方面,如果你有深入使用过JetBrains,其实会发现 IDEA 的纯键盘操作效率并不比vim低,你想要的所有功能都有默认快捷键,没有的话也能自己配置,并且这个配置是云端同步的,我在公司电脑,自己的surface平板电脑和家里的游戏机上全平台同步。而且自动完成可以根据自己的coding领域习惯写自定义live template。最后是ctrl+shift+a以及alt+enter几乎可以在任何地方完成绝大部分写代码的常用操作。我并没有觉得vim在这方面有比JetBrains的效率高多少。
另外就是 ssh 直接编辑代码这种场景。我认为这种场景是非常危险且不规范的做法。真正符合工程化的项目都是本地使用 IDE 编辑,IDE 的静态分析功能帮你检查出可能出错的地方,确认没问题后,用版本控制工具提交,提交过程 IDEA 会跑代码格式化,lint 规则检查,import 优化,清理 unused 代码,自动帮你做 GPG git 签名,如果是公司或者开源组织机构的项目,还会自动帮你更新 copyright,然后做 TODO 检测,code analysis,git hook,最后 push 代码后,CI/CD平台开始跑单元测试,集成测试等,全部通过后则自动由 CI 平台通过 SSH 发布到生产环境。如果你的代码经常需要直接 SSH 连上去直接用 vim 修改,没有经过任何工程化工具的前置处理以及 code review,那么我只能说你的项目非常不规范,开发这种不规范的项目当然体验不到 IDE 能够带来的好处。


这个问题我感觉我可以说几句:
泽森科工,专注于做好一款面相下一代3D内容生产的程序化建模与动画软件系统
procedural modeling and animation software
可以负责任的说泽森是在对标houdini的功能甚至在局部超越上走得最远的中国企业(放眼全世界可能也就我们)。
有关于zeno各种方面的特性和能力,可以去看我的想法,回答,以及我们的github主页等。
你们知道我作为zeno这个项目的发起者和创始人,被问的最多的问题是什么吗?
“你这是面向专业领域给业内人士使用的软件啊?怎么赚钱啊?大家都用盗版的,你们怎么赚钱?”
“有没有办法做成小白也能用?”
— 关键我发现对于小白二字的理解居然还有偏差,我脑子里小白是个三维内容水平不高的从业者,别人语境里的小白可以是个打算进入短视频行当的自由UP主。
“专业性软件如何变现”这个问题是横贯在中国软件行业发展的一大毒瘤。
人们愿意为劳动力付费(项目制),但人们很少愿意为“专业”付费。
三维行业是生命力极强的行业,从造型设计 到产品设计到视觉创意到娱乐都离不开三维内容的制作。
三维行业的基底制作软件提供了极强的专业性,帮助文创类客户deliver最终的内容产品。
然而明明是这么有活力,而且常做常有的一盘生意,偏偏要在中国人的意识里是
“你软件都是盗版啊凭啥赚钱?”
三维内容虽然不卡脖子,内容工业依然是工业啊!他其实和衣食住行有更多的相关。
所以中国人做不做得出xxxx,其实都是用户们用钱投票出来的。 夸张点说,你要是肯给软件的好功能“打赏刷火箭”,信不信中国的环境能开发出并让小学生用上火箭推进器研发设计系统?
人们肯为专业买单,干专业的人才不白干。
https://mp.weixin.qq.com/s/ki4QOQoE3lDB3oOq6l9npw
我们需要1-2位有产品力的开发者。
因为国内IT领域创业者普遍都有一种“增长病”
在周鸿祎、张一鸣、贾跃亭这些老一辈创业者看来,不增长的公司就没有意义,不增长的公司就注定要失败。所以他们在一个已有的优秀产品的基础上,会不断想要做全产业链,做上下游,做所有自己可以伸得到手的领域。
最典型的就是360全家桶。在最一开始他宣布完全免费的时候,全家桶就已经成了一种必然。他不指望通过贩卖自己的软件来获取合理的利润,而是希望通过越来越多的“免费软件”来挤占用户的电脑→进而快速获取大量的客户→进而可以讲出来更宏伟的企业故事,吸收更多的资本加入。
但是回过头我们就会发现,哪怕你通过免费软件增长成为了互联网头部企业,商业逻辑是不会变的。人们能用免费就用免费,那就根本没法产生利润,投资人天天拿着财报到公司本口堵你们老板。这个时候各个互联网公司又会拿出来跟他们做增长时完全不匹配的商业头脑,想办法来创造利润——俗称“变现”。
后面的事情你们就都知道了“贪玩蓝月”、“莆田医院”、“油腻的师姐在哪里”、“XX贷”“XX金融”、“XX商城”。搞了一圈,最后能赚钱的还是这些灰产。而所谓“不作恶”的互联网公司,则成了他们的专属广告公司。然而哪怕如此,每年财报上各家IT大佬依然是巨幅亏损。不过好歹有进项,故事还讲的下去。
但那是在过去几年经济上行的时候,市场上热钱很多,大家也愿意用不断投资来博取一个更高收益的预期。可是一旦经济下行,所有的投资人都开始挤兑自己的现金的时候,靠讲故事来增长的企业就没法坚持下去了。说到底这就是一个庞氏骗局,越来越多的人相信,就有越来越多的人加入进来,然后来给第一波投资人发红利。只要能不断“增长”下去,这个庞氏骗局就不会暴露。但是一旦不信任开始产生挤兑风暴就会迅速干垮一家企业。所以才有了“明天回国贾跃亭”。
回到我们的问题,为啥Jetbrains做IDE可以养活自己,而国内的“大型”IT公司就要倒闭?
因为两者根本是两种公司,前者是纯正的IT作坊,后者往往是披着高科技外皮的金融巨鳄。IT作坊可以穿越牛熊,只要需求还在,他们可以千百年的营业下去。但是金融巨鳄不行,他们会在顺风的行情中赚取IT作坊一百年都赚不到的钱(韭菜),然后在风头过去以后迅速衰败。少部分金融巨鳄会选择转型(比如造车),但是大部分都直面了自己的内心,扯下来高科技的遮羞布,认真做起了放贷、买菜的生意。
因为那样的软件,国内确实做不出来呗。急功近利,或者说(卷)的大环境下,是做不出某些软件的。
而且还喜欢找借口,忽视了俄罗斯人也同样喜欢盗版的这个事实。jb是把软件卖到全世界的,本地人喜欢盗版影响它盈利吗?当年瑞星很赚钱,可后果怎么样?本地人都买就能让一个不思进取的软件企业生存下去吗?
你知道程序员的编辑器哪怕卖四千块都有的是人买吗?竟然还拿程序员舍不得出钱说事,你做出来的东西真对得起这个钱?
愿意一步一步的脚踏实地的把软件做好,而不是把所有人都push到极限让员工缺乏了创造力。这是中国公司挺难做出来的选择。
要知道996会让人没法深入思考,变成写代码的机器,而这样,是写不出世界级的伟大软件的。中国企业以为自己用人更有效率,可这种效率是在扼杀创造性创新性为前提的,只适合一些无需创造性,需求明确的软件。如果不能给程序员轻松愉快的环境,我们永远搞不出这样的软件。
是的,工贼内卷让我们失去了创造力,有些软件就是没法在国内环境做出来。中国的程序员没问题,出国之后他们创造力都是不错,所以我觉得还是环境问题。
这下面几个回答者,压根不了解jetbrains就在那想当然,自以为是。
1.没技术积累!或者准确说,有那个技术水平的人,人家要么run出国了,要么在一线大厂高薪养着,压根没动力需要做独立软件创业。又苦又累,而且做软件创业是有风险的。有这个理想,天天在网上打嘴炮的人,他们又没技术。譬如说,jetbrains的IDE是有社区版的,免费开源的,github上就有源代码,你去网上搜一搜,有人去把这个开源代码改一改然后出一个国产自研IDE卖钱吗?没有吧?为什么,估计网上嘴炮打得山响的程序员连人家IDE源码都看不懂吧,有些人就是不肯承认自己没技术,不承认没用,人家开源代码就放在网上,有能力你去改呀!
2.市场不同。国外软件很多是面向全球销售的,而国人开发软件往往只盯着国内一亩三分地。你怎么跟人家比?国人确实付费意愿低,但人家又不是依靠中国市场养活,可以收割美金、欧元。中国人开发软件只卖给中国人,国人不愿意付费,直接养不活死翘翘。
3.对知识产权保护也不同。jetbrains的IDE是卖给企业,是赚的企业的钱,个人是免费使用的。国内软件要想打开toB市场很难的,所以往往依靠个人用户付费来养活。而个人往往是不肯给钱的人。你在公司里用这些商业软件不付费,人家是会告你的,一般企业也很重视,譬如我司的jetbrains全家桶都是买的正版的,然后给员工使用。包括很多国外软件都是买正版的。但是对员工用一些盗版国产小软件就不怎么重视了。
说到底,还是技术实力不行。为什么企业愿意买,愿意付钱呢?企业又不是傻子,软件商业化程度达到一定水平,值得购买人家才买呀。网上也很多免费开源软件,什么vscode这类的,不要钱,企业为什么不切换到这些免费的工具上呢?真听信网上几句吹捧,就相信这些免费工具能完全替代大型商业化IDE了吗?
jetbrains两个创始人很早就研究IDE工具开发了,人家上班的时候就是做这个的,后面水平达到一定程度,零几年才出来辞职创业的,这叫技术自信。没有那个金刚钻揽不了瓷器活。到现在,jetbrains公司已经积累了相当丰富的IDE开发经验,并不是说随便一个程序员就能开发IDE的。有那个实力的人,人家干什么不赚钱?要去赚这个辛苦钱,而且对国内软件市场也没信心。如果IDE开发门槛那么低,大部分程序员都有能力写,各种国产IDE早就泛滥了
多说一句,我发现很多菜鸟喜欢拿个锤子满世界找钉子,没有什么工具是最好的。最好的工具,是最适合解决当前问题的工具!别像个傻子一样被网上吹子洗脑带节奏,我本人工作中也频繁使用vscode,因为我觉得它是个很不错的编辑器,但是我不会去吹捧它。我比较讨厌吹捧一个工具,因为我经常会装很多工具,分场合使用,没必要厚此薄彼。以前用windows,我喜欢用notepad++检索日志,因为它的搜索功能非常强劲,其他一些编辑器差远了。学习研究一些源码,我也会用SI这个源码阅读神器,但我从不用SI写代码。在c/c++方面,比起visual studio,我更喜欢CLion,go方面我喜欢goland胜过vscode,Python方面我喜欢vscode胜过pycharm,所以为什么一定要分个高下呢?举个例子,为什么Python上我更喜欢vscode,因为我写Python都是写工具脚本,当shell用,而不是写django这种后端。这就说明,什么样的使用场景,决定什么工具更好用。同样,做Java后端,也不可能用vscode去替代idea
因为从生意的角度看这确实不是一个好生意。


