为什么国内做不出 JetBrains 那样的产品?

知乎上有一个提问:

67a6e3f773ff9df964c16fea6dbcad4d.png

分享一个很有意思的回答。

作者:昌维 | 来源:https://www.zhihu.com/question/537774494/answer/2534015588

1

我是一名 JetBrains 的忠实粉丝。我学习编程语言的经历大概有 10 年左右,使用 JetBrains 大概有 7 年左右。

在这么多年的学习编程和使用 JetBrains 全家桶的过程中,我认为 JetBrains 的成功不仅仅是技术原因,还有的是产品上面的创新。

而这些创新都离不开大型软件工程的实战经验,因为只有经历过大型软件工程的开发与不断迭代过程,才知道一款优秀的 IDE 里面需要什么功能,哪些功能能够帮助程序员高效地开软件。

网传 JetBrains 的 IDEA 系列最早的“杀手锏”功能是 refactor (rename)重构功能。

例如,在 IDEA 中你可以使用 Shift+F6 快速将一个变量改名,并且这个改名操作将应用到所有引用了该变量的代码。

这就需要 IDEA 对整个项目中的所有代码做 parser,追踪他们之间的引用关系,这类功能的背后离不开强大的代码静态分析技术。

所以做专业软件,首先是需要有技术方面的支持,其次是产品方面的设计考量IDEA 的重构功能极为强大,包括各种强大的 extract,路径移动等。

fbd22903de2f87071e0f53f249d56566.png

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 搭建起一个项目,并且后面又遇到需要重构的情况。

2

国内做不出来这类软件,原因也主要有如下

  • 有极长 coding 经验的人没有国外那么多,大部分是在2010年之后的互联网红利开始才学习 coding 的,甚至很多是生化环材转码。人少,那么诞生出这些天才产品经理的几率也更少

  • 大部分人还是有一种“勤劳的守旧”观念,也就是认为使用工具提升生产力是一种偷懒和投机取巧的表现,推崇使用 vim 等高门槛和学习曲线陡峭的软件是一种“技术能力强”,“能吃苦学习”的习惯。

  • 优秀的产品经理需要跨界经验,例如 JetBrains 的产品经理肯定不仅仅是画个原型图和写个 PRD 那么简单,这些都需要深入一线软件行业,掌握大量工程师人脉,和非常多的软件工程师交流,了解他们真正需要什么。站在他们的角度思考一款优秀的 IDE 应该要给我带来什么样的功能。国内 一些PM 论坛的交流内容还是以互联网 APP 产品为主,这类产品的 PM 还是停留在学校学学 UI 设计,出来跟着“人人都是产品经理”的网课学学做 PPT 画原型图写 PRD 的水平。PM 的上限水平过低,缺乏垂直行业的经验与人脉导致了做不出顶级的工业软件缺乏工程师文化。

  • 所谓工程师文化,指的就是产品进步是由工程师推动,工程师使用科学技术提升产品的用户体验,可靠性,安全性等。由于各种环境原因。真正拥有“工程师心态”在人群中还是偏少数,抱有“功利心”去读书刷 GPA,去工作刷 KPI ,很难诞生优秀的专业软件。缺乏工程师文化的根本还是和经济基础与分配平衡有关,经济基础过差的情况下,大家会更容易选择保守,保守则不容易引发对创新的思考。而分配平衡过差,则会导致“工程师”们更倾向于使用“技巧”去内卷抢得少数资源,而非使用“科学技术”去创造更多资源与价值。

  • 奶粉钱,产假,房价,教育公平,没有好的环境就留不住顶尖的工程师与专业的产品经理,知乎都说烂了的事情就没必要提了。。。

做工业软件,最好就需要是这个领域的工程师直接转行来做工业软件的产品经理,因为只有自己行业的人才最了解自己人。

而我们的现状是连抱有工程师思想以及拥有工程师文化的公司都非常稀少,更别指望真正的工程师们在拥有丰富经验之后转行 PM ,然后设计优秀的工业软件帮助我们加速生产效率,解放生产力。

3

最后,再谈谈 JetBrains 在获客与留存方面做的努力很多工业软件都有 help 帮助文档。

但是大家可以扪心自问一下,你们真的有看过专业软件的 IDE 吗?你们有点开过专业软件的 help 菜单吗?

以 JetBrains 家的 goland 为例,当你初次安装时时,首次启动软件会显示引导画面,里面会使用言简意赅的文档和样例代码帮助你快速掌握这款 IDE 的各类 feature

如图所示,这是 goland 的 learn 功能,而图上此时此刻显示的则是如何使用快捷键快速删除代码行或者换行,以及将过长可变参数的代码自动转换为可读性较强的多行格式。

1d8e6b75866baf32a6b53649799ec9ff.png

无论是样例代码,还是帮助文档的文案,他们都设计得言简意赅,而且即使是英文,也是选择了计算机领域常见的英文单词,不会对非英语母语人士造成太多障碍。

只有当用户能够很快学习上手你的软件,那么你才能长久留存客户

而这一点,在我见过的绝大多数驰名全球的顶级专业软件(包括设计领域的 Adobe 全家桶,电子工程领域的 MATLAB,Cadance ICC、Altium Designer、TI 德州仪器的 LabView 和 Multisim,Intel Quartus,Xilinx Vivado)都做得非常差,基本没有像 JetBrains 那样提供言简意赅的解释和恰到好处的样例代码让你快速上手。

一款专业软件令人难以上手,学习门槛极高,也是很难留存客户的。而 JetBrains 在快速入门与帮助文档的细节设计上绝对可以说是优秀至极。

4

有人问 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 能够带来的好处。

【热门内容】

抖音服务器带宽有多大,才能供上亿人同时刷?

别再写 main 方法测试了,太 Low!

System.currentTimeMillis() 太 Low 啦

中年失业是一种什么体验

isEmpty 和 isBlank 的用法区别

Spring的Controller是单例还是多例,怎么保证并发的安全

程序员新人上午使用 isXxx 形式定义布尔类型,下午就被劝退?

再见收费的Navicat,操作所有数据库就靠它了!

你敢信?开发一个管理系统我只用了两天

300多本程序员经典技术书籍高清PDF
加我微信,备注:资料

扫码备注:资料,自动获取
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JetBrains系列产品在开发者社区中有很高的口碑。特别是它们的主要产品IntelliJ IDEA在Java开发领域被广泛认可,被誉为最好的Java IDE之一。另外,PyCharm在Python开发领域也有很高的口碑,被认为是Python开发的首选工具。总的来说,JetBrains系列产品在编程工具领域有着很高的声誉。 ### 回答2: JetBrains系列产品经过多年的发展与优化,已经成为软件开发行业中备受赞誉的工具之一。以下是我基于用户评价和市场反馈列出的JetBrains系列产品的口碑排名。 位居榜首的是IntelliJ IDEA,它是JetBrains旗下最受欢迎的集成开发环境(IDE)。IntelliJ IDEA以其强大的代码智能提示、丰富的插件生态系统和高效的性能而闻名。它在Java开发领域广受好评,也被许多其他语言开发人员使用,如PythonJavaScript等。 在第二位是PyCharm,一个专为Python开发而设计的IDE。PyCharm通过提供强大的调试和代码分析功能,让Python开发者可以更轻松地编写和调试代码。同时,PyCharm支持Django和Flask等流行的Python框架,大大提高了开发效率。 WebStorm位居第三。作为一款专注于web开发的IDE,WebStorm为JavaScript、HTML和CSS开发提供了强大的工具和功能。它的代码智能提示、错误检查和自动补全功能被认为是出色的。 另外还有一些非常受欢迎的JetBrains产品,如RubyMine(专为Ruby和Rails开发而设计)、PhpStorm(专为PHP开发而设计)和DataGrip(用于数据库开发)。它们都以其独特的功能和高效的性能而备受赞誉。 总体来说,JetBrains系列产品在开发者社区中享有很高的声誉,被广大开发者认可为顶级的开发工具。无论是其强大的功能、友好的用户界面还是良好的技术支持,都是用户爱用JetBrains产品的原因。 ### 回答3: JetBrains是一家全球知名的软件开发工具公司,该公司的产品被广泛使用并赢得了良好的口碑。 首先,JetBrains旗下的产品IntelliJ IDEA是一款功能强大的Java集成开发环境,被广大开发者喜爱。IntelliJ IDEA提供了丰富的功能和快捷键,可以大大提高开发效率。它的智能代码补全和强大的静态代码分析功能使得开发者可以更轻松地编写高质量的代码。此外,IntelliJ IDEA还提供了其他语言的开发插件,如PythonJavaScript,进一步满足了开发者的需求。 其次,JetBrains的另一款产品是PyCharm,这是一款专为Python开发者设计的集成开发环境。PyCharm不仅具备了IntelliJ IDEA的一些功能,如智能代码补全和代码分析,还提供了其他专门针对Python的功能,如调试器和单元测试等。开发者们赞扬PyCharm的易用性和对Python的全面支持。 此外,JetBrains还拥有其他产品,如WebStorm(用于JavaScript开发)、PhpStorm(用于PHP开发)和DataGrip(用于数据库管理)。这些产品也长期以来都获得了良好的评价,被广大开发者认可和喜爱。 总而言之,JetBrains系列产品在软件开发工具领域享有很高的声誉和口碑。这些产品通过提供丰富的功能和智能化的开发环境,可以帮助开发者提高效率和编写高质量的代码。由于其卓越的性能和出色的用户体验,JetBrains系列产品在开发者社区中被广泛推崇和使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值