本集简介
双语字幕
仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。
欢迎收听跨国串门计划。
欢迎收听跨国串门计划。
这是一档专注于让中文听众无障碍欣赏全球优质外语播客的节目。
这是一档专注于让中文听众无障碍欣赏全球优质外语播客的节目。
通过先进的AI声文克隆技术,我们不仅将内容翻译成中文,还完美保留了原主持人和嘉宾的独特声音,为您呈现全球顶尖的AI财经、健康与科技领域精品内容。
通过先进的AI声文克隆技术,我们不仅将内容翻译成中文,还完美保留了原主持人和嘉宾的独特声音,为您呈现全球顶尖的AI财经、健康与科技领域精品内容。
我是主播易凯,一位热衷于AI领域的产品经理,很荣幸能为您搭建这座跨越语言障碍的桥梁。
我是主播易凯,一位热衷于AI领域的产品经理,很荣幸能为您搭建这座跨越语言障碍的桥梁。
关于本播客的制作方式,您可以在SPE跨国串门计划背后的故事中深入了解。
关于本播客的制作方式,您可以在SPE跨国串门计划背后的故事中深入了解。
每期节目的SHOW NOTES中,附有原播客信息和文字精华。
每期节目的SHOW NOTES中,附有原播客信息和文字精华。
这些内容经过精心提炼和重点标注,便于您快速获取核心知识。
这些内容经过精心提炼和重点标注,便于您快速获取核心知识。
欢迎各位听友加入交流群,一起探讨这些国际前沿话题。
欢迎各位听友加入交流群,一起探讨这些国际前沿话题。
如果您发现了值得分享的优质外语播客,也请不吝告知。
如果您发现了值得分享的优质外语播客,也请不吝告知。
接下来,让我为您简单介绍本期我们克隆的这档节目,并分享几句非常精彩的原话。
接下来,让我为您简单介绍本期我们克隆的这档节目,并分享几句非常精彩的原话。
本期我们克隆的是由前UBER工程师GREGORY ARROSE主持的深度技术播客THE PRAGMATIC ENGINEER。
本期我们克隆的是由前UBER工程师GREGORY ARROSE主持的深度技术播客THE PRAGMATIC ENGINEER。
本期的嘉宾是传奇开发者PETER SANBERGER,他曾创办了拥有十亿用户的PSPDFKET。
本期的嘉宾是传奇开发者PETER SANBERGER,他曾创办了拥有十亿用户的PSPDFKET。
而现在他正站在AI编程的最前沿,探索一种每天合并几百个COMMIT的全新开发模式。
而现在他正站在AI编程的最前沿,探索一种每天合并几百个COMMIT的全新开发模式。
他在对话中提到的几句话非常颠覆传统,让我印象特别深刻。
他在对话中提到的几句话非常颠覆传统,让我印象特别深刻。
我发布的业务代码我自己都不读,但我现在比以前任何时候都更看重系统架构。
我发布的业务代码我自己都不读,但我现在比以前任何时候都更看重系统架构。
软件的关键在于感觉,而不是功能堆砌。
软件的关键在于感觉,而不是功能堆砌。
就像大家买苹果的产品是因为感觉更棒,而不是功能更多。
就像大家买苹果的产品是因为感觉更棒,而不是功能更多。
以前重构架构可能要花两周,现在AI只要三个小时就能搞定。
以前重构架构可能要花两周,现在AI只要三个小时就能搞定。
这种开发模式就像是在玩游戏,让人极其上瘾。
这种开发模式就像是在玩游戏,让人极其上瘾。
这些观点背后隐藏着软件工程未来的巨大变革。
这些观点背后隐藏着软件工程未来的巨大变革。
那我们就一起来听听这期的完整对话。
那我们就一起来听听这期的完整对话。
如果你一天能合并600个COMMIT,而且代码质量还特别高,你会怎么想?
如果你一天能合并600个COMMIT,而且代码质量还特别高,你会怎么想?
今天的嘉宾PETER STEINBERGER就在做这件事儿。
今天的嘉宾PETER STEINBERGER就在做这件事儿。
他是CLOUDBOT的创始人,也是一个特别厉害的开发者。
他是CLOUDBOT的创始人,也是一个特别厉害的开发者。
他以前开发的PSPDFK的框架有超过十一台设备在用。
他以前开发的PSPDFK的框架有超过十一台设备在用。
后来他职业倦怠了,卖掉股份,在技术圈消失了三年。
后来他职业倦怠了,卖掉股份,在技术圈消失了三年。
今年他回归了,但他的开发方式跟传统的软件开发完全不一样。
今年他回归了,但他的开发方式跟传统的软件开发完全不一样。
我们今天会聊聊为什么他现在发代码基本不看,而且这事儿听着离谱,其实挺合理的。
我们今天会聊聊为什么他现在发代码基本不看,而且这事儿听着离谱,其实挺合理的。
还会聊聊他的CLOUD项目,这个个人助手现在特别火,感觉就像未来的SIRI。
还会聊聊他的CLOUD项目,这个个人助手现在特别火,感觉就像未来的SIRI。
我们还会讨论闭环原则,这是区分高效AI编程和那种全屏感觉的VIBE CODING的关键。
我们还会讨论闭环原则,这是区分高效AI编程和那种全屏感觉的VIBE CODING的关键。
他甚至觉得代码审查已经过时了,PR应该叫提示词请求。
他甚至觉得代码审查已经过时了,PR应该叫提示词请求。
如果你对AI如何改变未来的软件工作流感兴趣,这期节目一定别错过。
如果你对AI如何改变未来的软件工作流感兴趣,这期节目一定别错过。
本期节目由STATS赞助,他们是一个集成了FLAG分析和实验的统一平台,感兴趣可以去节目介绍看看。
本期节目由STATS赞助,他们是一个集成了FLAG分析和实验的统一平台,感兴趣可以去节目介绍看看。
二月十一号,我还会和赞助商们在旧金山办一个PRAGMATIC峰会。
二月十一号,我还会和赞助商们在旧金山办一个PRAGMATIC峰会。
好了,Pete,欢迎来到播客。
好了,Pete,欢迎来到播客。
谢谢邀请。
谢谢邀请。
GARGLE.
GARGLE.
很高兴能见到你本人。
很高兴能见到你本人。
是啊,我刚才差点迟到了。
是啊,我刚才差点迟到了。
怎么了?
怎么了?
记错时间了吗?
记错时间了吗?
这种事儿经常发生吗?
这种事儿经常发生吗?
平常倒不会。
平常倒不会。
主要是最近Cloud Bot这个项目太火了,我现在的状态挺有意思的。
主要是最近Cloud Bot这个项目太火了,我现在的状态挺有意思的。
我现在觉得都不太够睡,但确实挺有意思。
我现在觉得都不太够睡,但确实挺有意思。
我以前从来没见过哪个社区能增长得这么快,干起活来真的特别带劲。
我以前从来没见过哪个社区能增长得这么快,干起活来真的特别带劲。
在聊CLOBBOT和你现在做的这些趣事之前,我想先往回倒一倒。
在聊CLOBBOT和你现在做的这些趣事之前,我想先往回倒一倒。
你做的PS、PDF、KIT应该有超过十亿用户在用,只要是看PDF估计都见过。
你做的PS、PDF、KIT应该有超过十亿用户在用,只要是看PDF估计都见过。
但最开始你是怎么入行的?
但最开始你是怎么入行的?
哦,入行经历。
哦,入行经历。
我来自奥地利农村,以前性格挺内向的。
我来自奥地利农村,以前性格挺内向的。
后来家里来了个暑期房客,是个电脑迷,我就被他的机器迷住了。
后来家里来了个暑期房客,是个电脑迷,我就被他的机器迷住了。
求我妈也给我买一台,那时候我大概十四岁吧。
求我妈也给我买一台,那时候我大概十四岁吧。
从那以后我就开始瞎捣鼓。
从那以后我就开始瞎捣鼓。
我记得最早是偷了学校的一个DOS游戏,然后给软盘写了个防复制保护,想把它卖掉。
我记得最早是偷了学校的一个DOS游戏,然后给软盘写了个防复制保护,想把它卖掉。
哈哈。
哈哈。
当时那个程序要加载两分钟,我总是在琢磨这些。
当时那个程序要加载两分钟,我总是在琢磨这些。
当然也玩很多电脑游戏,但动手做东西的感觉就像在玩游戏一样。
当然也玩很多电脑游戏,但动手做东西的感觉就像在玩游戏一样。
说实话,现在做开发的感觉比玩维多利亚还有意思。
说实话,现在做开发的感觉比玩维多利亚还有意思。
刚开始我写过WINDOWS上的批处理脚本,后来做网站写点JAVASCRIPT。
刚开始我写过WINDOWS上的批处理脚本,后来做网站写点JAVASCRIPT。
虽然那时候完全不知道自己在干嘛,真正开始学怎么写程序是在上大学的时候。
虽然那时候完全不知道自己在干嘛,真正开始学怎么写程序是在上大学的时候。
我从没见过我爸家里比较穷,所以得一直打工赚学费。
我从没见过我爸家里比较穷,所以得一直打工赚学费。
别人度假的时候,我都在全职工作。
别人度假的时候,我都在全职工作。
第一份正式工作是在维也纳,本来只打算干一个月,结果干了半年。
第一份正式工作是在维也纳,本来只打算干一个月,结果干了半年。
那是服完兵役和上大学之间的一个过渡,结果我在那儿一干就是五年。
那是服完兵役和上大学之间的一个过渡,结果我在那儿一干就是五年。
记得。
记得。
第一天,他们给了我一本厚得要命的书,叫MICROSOFT MFC。
第一天,他们给了我一本厚得要命的书,叫MICROSOFT MFC。
现在想起来还是噩梦,我觉得那玩意儿太难用了。
现在想起来还是噩梦,我觉得那玩意儿太难用了。
后来我就偷偷改用NET,没告诉他们。
后来我就偷偷改用NET,没告诉他们。
过了几个月我才坦白,那时候我已经做了好几次现代化改造,来不及改回去了。
过了几个月我才坦白,那时候我已经做了好几次现代化改造,来不及改回去了。
不知道他们为什么一直留着我,大概是因为我写的东西确实好使。
不知道他们为什么一直留着我,大概是因为我写的东西确实好使。
我当时用的是NET2.
我当时用的是NET2.
0,已经有泛型了。
0,已经有泛型了。
不过那时候程序启动特别慢,因为第一次运行得先编译,硬盘响个不停。
不过那时候程序启动特别慢,因为第一次运行得先编译,硬盘响个不停。
如果你还记得的话。
如果你还记得的话。
那你是怎么接触到IOS的PS、PDFK的想法?
那你是怎么接触到IOS的PS、PDFK的想法?
又是哪来的?
又是哪来的?
当时我还在上大学,有个朋友给我看了IPHONE,我上手摸了一分钟就立马买了一台。
当时我还在上大学,有个朋友给我看了IPHONE,我上手摸了一分钟就立马买了一台。
那种感觉特别对,对我来说那就是个卧槽时刻,因为它太不一样了。
那种感觉特别对,对我来说那就是个卧槽时刻,因为它太不一样了。
好用的离谱,那是2009年或者10年左右。
好用的离谱,那是2009年或者10年左右。
有一次我坐地铁,当时在用一个同性交友APP,那是IPHONE OS二代的时候。
有一次我坐地铁,当时在用一个同性交友APP,那是IPHONE OS二代的时候。
我打了一大段很长的信息,刚点发送就进隧道了。
我打了一大段很长的信息,刚点发送就进隧道了。
那个网页版的JAVASCRIPT把发送按钮禁用了,然后报错。
那个网页版的JAVASCRIPT把发送按钮禁用了,然后报错。
那时候还没法复制粘贴,也没法截图。
那时候还没法复制粘贴,也没法截图。
那段话写的挺动情的,结果全没了。
那段话写的挺动情的,结果全没了。
我当时气疯了。
我当时气疯了。
心想这什么破玩意儿,回家我就下载了XCODE。
心想这什么破玩意儿,回家我就下载了XCODE。
当时还在找IDE在哪儿呢?
当时还在找IDE在哪儿呢?
我基本上是把那个网站给黑了,用正则表达式去解析HTML。
我基本上是把那个网站给黑了,用正则表达式去解析HTML。
这做法其实特别不专业。
这做法其实特别不专业。
我做了一个APP,用的是IPHONE OS三代贝塔版,还有CORE DATA。
我做了一个APP,用的是IPHONE OS三代贝塔版,还有CORE DATA。
为了在三代系统里用上BLOCK,我还用了一个破解版的GCC。
为了在三代系统里用上BLOCK,我还用了一个破解版的GCC。
折腾了好久才跑通,因为我当时啥也不懂,用的全是些奇奇怪怪的技术。
折腾了好久才跑通,因为我当时啥也不懂,用的全是些奇奇怪怪的技术。
最后我给那家公司写信,说我给你们做了个APP。
最后我给那家公司写信,说我给你们做了个APP。
一你们觉得怎么样?
一你们觉得怎么样?
结果没人理我,我就直接把它发到APP STORE去了。
结果没人理我,我就直接把它发到APP STORE去了。
所以你是为那个交友APP做了一个客户端对吧?
所以你是为那个交友APP做了一个客户端对吧?
你看了看API.
你看了看API.
觉得能轻松搞定。
觉得能轻松搞定。
当时是在API之上,其实就是解析APP。
当时是在API之上,其实就是解析APP。
没有我真的就是在硬盘一起没有。
没有我真的就是在硬盘一起没有。
所以你就是把HT猫给解析了,把它当成你自己的API来用。
所以你就是把HT猫给解析了,把它当成你自己的API来用。
这招挺聪明的。
这招挺聪明的。
我是说那时候估计没人能想到还能这么搞。
我是说那时候估计没人能想到还能这么搞。
我把它上架了APP STORE,卖五美元。
我把它上架了APP STORE,卖五美元。
第一个月就赚了一万美元。
第一个月就赚了一万美元。
当时我完全不知道自己在干嘛,技术上也挺复杂的。
当时我完全不知道自己在干嘛,技术上也挺复杂的。
那是很早以前了,APPLE的表格特别怪,我就填了我爷爷的银行账户。
那是很早以前了,APPLE的表格特别怪,我就填了我爷爷的银行账户。
结果有一天我爷爷给我打电话说:‘有点奇怪,我收到一笔APPLE汇来的巨款’。
结果有一天我爷爷给我打电话说:‘有点奇怪,我收到一笔APPLE汇来的巨款’。
我说那是我的,那是我的,千万别动。
我说那是我的,那是我的,千万别动。
最逗的是这软件火了之后,有次我在夜店看到有人在用我的APP。
最逗的是这软件火了之后,有次我在夜店看到有人在用我的APP。
我特别自豪,我真想拍拍他肩膀说:‘这玩意儿是我写的’。
我特别自豪,我真想拍拍他肩膀说:‘这玩意儿是我写的’。
但我当时觉得那样太怪了,就没去。
但我当时觉得那样太怪了,就没去。
后来我去了那家工作了五年的公司,跟老板说我不干了,我要去搞这个项目。
后来我去了那家工作了五年的公司,跟老板说我不干了,我要去搞这个项目。
这事儿太让人兴奋了,结果我老板嘲笑我说:‘我犯了大错,这东西就是昙花一现,活不了多久’。
这事儿太让人兴奋了,结果我老板嘲笑我说:‘我犯了大错,这东西就是昙花一现,活不了多久’。
这真的激起我的好胜心了。
这真的激起我的好胜心了。
我当时就想,总有一天我要开一家比你公司还值钱的公司。
我当时就想,总有一天我要开一家比你公司还值钱的公司。
结果我花了八年时间做到了。
结果我花了八年时间做到了。
我这人有点成瘾人格,干起活来特别疯,就像我现在这样。
我这人有点成瘾人格,干起活来特别疯,就像我现在这样。
我当时在APP上投入了大量精力,进步特别快。
我当时在APP上投入了大量精力,进步特别快。
那阵子我也开始玩推特了,这对我的职业生涯影响很大。
那阵子我也开始玩推特了,这对我的职业生涯影响很大。
APP做得确实不错,但有天凌晨三点我喝得有点多,突然接到一个美国电话,对方说:你好,我是APPLE的JOHN。
APP做得确实不错,但有天凌晨三点我喝得有点多,突然接到一个美国电话,对方说:你好,我是APPLE的JOHN。
你的app出问题了,有人举报里面有图片。
你的app出问题了,有人举报里面有图片。
然后我的APP就这么凉了,挺可惜的。
然后我的APP就这么凉了,挺可惜的。
但我当时刚辞职,心想去你的APPLE吧。
但我当时刚辞职,心想去你的APPLE吧。
后来我开始做自由职业,我去参加了WWDC,在旧金山凌晨两点的酒吧里,有人把我介绍给别人,说我是奥地利最牛的IOS开发者之一,然后我就在那边找了份工作,在美住了一阵子。
后来我开始做自由职业,我去参加了WWDC,在旧金山凌晨两点的酒吧里,有人把我介绍给别人,说我是奥地利最牛的IOS开发者之一,然后我就在那边找了份工作,在美住了一阵子。
后来我去参加诺基亚开发者大会,现在听起来都像石器时代的事儿了。
后来我去参加诺基亚开发者大会,现在听起来都像石器时代的事儿了。
当时有人找我说他们在东欧做了个APP能用但老崩溃,那是IPAD刚出来的时候,STEVE JOBS说这是救星,所以大家都在做杂志APP。
当时有人找我说他们在东欧做了个APP能用但老崩溃,那是IPAD刚出来的时候,STEVE JOBS说这是救星,所以大家都在做杂志APP。
我觉得这活儿挺有意思,就答应帮他们看看。
我觉得这活儿挺有意思,就答应帮他们看看。
我一打开代码,天呐,那是我这辈子见过最烂的代码,几千行OBJECTIVE ACT全写在一个文件里,居然还用WINDOW当TYPE用。
我一打开代码,天呐,那是我这辈子见过最烂的代码,几千行OBJECTIVE ACT全写在一个文件里,居然还用WINDOW当TYPE用。
我都很惊讶,这玩意儿居然能跑起来,简直像个纸糊的房子。
我都很惊讶,这玩意儿居然能跑起来,简直像个纸糊的房子。
我本来想做外科手术室的修复,但动一个地方,别的地方就坏。
我本来想做外科手术室的修复,但动一个地方,别的地方就坏。
最后我跟他们说:‘这太疯狂了,我给你们重写吧’。
最后我跟他们说:‘这太疯狂了,我给你们重写吧’。
他们本来打算花半年,我说一个月搞定,结果花了两个月,也还算没差太远。
他们本来打算花半年,我说一个月搞定,结果花了两个月,也还算没差太远。
于是我就开始研究PDF渲染,不管做什么领域,总能找到有意思的技术挑战。
于是我就开始研究PDF渲染,不管做什么领域,总能找到有意思的技术挑战。
当时有个C语言调用来渲染PDF,可能要占30MB内存。
当时有个C语言调用来渲染PDF,可能要占30MB内存。
那整个系统才64MB,如果你在后台不小心一点,系统直接就把你进程杀了。
那整个系统才64MB,如果你在后台不小心一点,系统直接就把你进程杀了。
我当时特别执着于把细节做好,比如翻页时的动画效果,我太纠结这些细节了,所以才花了两个月。
我当时特别执着于把细节做好,比如翻页时的动画效果,我太纠结这些细节了,所以才花了两个月。
不过结果确实很好。
不过结果确实很好。
后来有个朋友跟我发信息说他在做杂志APP,觉得特别难。
后来有个朋友跟我发信息说他在做杂志APP,觉得特别难。
我说不会吧?
我说不会吧?
我刚做一个,他问能不能把代码卖给他,我就把PDF渲染那部分拆出来卖给了他。
我刚做一个,他问能不能把代码卖给他,我就把PDF渲染那部分拆出来卖给了他。
我想既然他想要,别人肯定也想要。
我想既然他想要,别人肯定也想要。
我弄了个WORDPRESS模板,把它改的能在GITHUB PAGE上跑,最后跳转到我个人的DRAWBOX链接下载源码。
我弄了个WORDPRESS模板,把它改的能在GITHUB PAGE上跑,最后跳转到我个人的DRAWBOX链接下载源码。
我就在推特上发了一下,那一周就有三个人买了,一个人大概二百美元。
我就在推特上发了一下,那一周就有三个人买了,一个人大概二百美元。
当时我觉得太神奇了,不光有人买,还有十个人发邮件抱怨说圈圈娜好腻。
当时我觉得太神奇了,不光有人买,还有十个人发邮件抱怨说圈圈娜好腻。
我这人受不了鸡,他们说没文本选择功能。
我这人受不了鸡,他们说没文本选择功能。
我想这能有多难?
我想这能有多难?
结果三个月后我发现这玩意儿真难。
结果三个月后我发现这玩意儿真难。
尤其是在PDF里做文本选择。
尤其是在PDF里做文本选择。
对,俗话说得好,公司都是年轻人开的,因为他们不知道这事儿有多难。
对,俗话说得好,公司都是年轻人开的,因为他们不知道这事儿有多难。
我当时完全不知道PDF这种文件格式有多变态。
我当时完全不知道PDF这种文件格式有多变态。
前几周还有人发邮件让我帮他搞PDF相关的活,我直接回他:不好意思,我已经还完债了。
前几周还有人发邮件让我帮他搞PDF相关的活,我直接回他:不好意思,我已经还完债了。
我对PDF的了解已经超过正常人的极限了,我都去接受心理咨询了。
我对PDF的了解已经超过正常人的极限了,我都去接受心理咨询了。
祝你好运!
祝你好运!
当时我一边等签证一边搞这个项目,买的人越来越多。
当时我一边等签证一边搞这个项目,买的人越来越多。
夏天我躺在湖边就收到邮件说有人花600或者800美元买了。
夏天我躺在湖边就收到邮件说有人花600或者800美元买了。
随着功能变多,我就涨价。
随着功能变多,我就涨价。
等我真去旧金山上班时,这项目赚的比工资还多。
等我真去旧金山上班时,这项目赚的比工资还多。
但我当时觉得还是得去上班。
但我当时觉得还是得去上班。
所以你还是搬去旧金山了。
所以你还是搬去旧金山了。
去了之后我在那家公司也得用我自己的框架,但创业公司嘛,不可能只干八小时,我自己项目也要花时间,睡眠就严重不足。
去了之后我在那家公司也得用我自己的框架,但创业公司嘛,不可能只干八小时,我自己项目也要花时间,睡眠就严重不足。
三个月后我经历撒兵问我你还好吗?
三个月后我经历撒兵问我你还好吗?
他让我选。
他让我选。
要么留下来干活,要么继续搞我的项目。
要么留下来干活,要么继续搞我的项目。
我只有一周时间考虑,如果不留下来,因为签证问题我就得离境。
我只有一周时间考虑,如果不留下来,因为签证问题我就得离境。
但我很快就决定了,我要出来单干。
但我很快就决定了,我要出来单干。
那时候项目已经起飞了,你应该能看出来这是门大生意,收入能抵得上美国的工作了。
那时候项目已经起飞了,你应该能看出来这是门大生意,收入能抵得上美国的工作了。
其实我从来不是为了钱,我就是想做出让人觉得惊艳的东西,我喜欢打磨细节,喜欢那种惊喜感。
其实我从来不是为了钱,我就是想做出让人觉得惊艳的东西,我喜欢打磨细节,喜欢那种惊喜感。
当时虽然有竞争对手,但我憋着一股劲儿,我要像APPLE那样去打磨产品,倾注心血,把细节做到极致。
当时虽然有竞争对手,但我憋着一股劲儿,我要像APPLE那样去打磨产品,倾注心血,把细节做到极致。
很多同行其实不理解这一点,虽然对手功能多、资历老,但我的产品更成功,因为开发者试过一圈之后发现我的用起来手感最好。
很多同行其实不理解这一点,虽然对手功能多、资历老,但我的产品更成功,因为开发者试过一圈之后发现我的用起来手感最好。
我觉得软件的关键在于感觉,而不是功能堆砌。
我觉得软件的关键在于感觉,而不是功能堆砌。
就像大家买APPLE的东西,不是因为功能比WINDOWS多,而是因为感觉更棒。
就像大家买APPLE的东西,不是因为功能比WINDOWS多,而是因为感觉更棒。
你当时离开公司开始卖那个PDF组件是怎么过渡过来的?
你当时离开公司开始卖那个PDF组件是怎么过渡过来的?
到什么时候你才意识到这事儿能做大?
到什么时候你才意识到这事儿能做大?
开始雇第一个人。
开始雇第一个人。
的回到维也纳后,我觉得必须全力以赴了。
的回到维也纳后,我觉得必须全力以赴了。
刚开始我找了些兼职帮忙,但说实话动手太晚了。
刚开始我找了些兼职帮忙,但说实话动手太晚了。
其实我早该招人的,但迈出那一步确实挺难。
其实我早该招人的,但迈出那一步确实挺难。
后来这项目就开始有了自己的生命力。
后来这项目就开始有了自己的生命力。
我职业生涯有十几年都在搞这个产品,名字起得挺怪,我也一直没改。
我职业生涯有十几年都在搞这个产品,名字起得挺怪,我也一直没改。
当时就花了五分钟想名字,叫PSPDFK。
当时就花了五分钟想名字,叫PSPDFK。
后来虽然改过名,但如果让我选,我可能根本不会改。
后来虽然改过名,但如果让我选,我可能根本不会改。
这名字读起来挺绕口,但确实很有辨识度。
这名字读起来挺绕口,但确实很有辨识度。
如果你写过Objective,就能理解它其实就是个命名空间。
如果你写过Objective,就能理解它其实就是个命名空间。
在当时这名字挺合理的。
在当时这名字挺合理的。
我的营销策略一直是只关注开发者。
我的营销策略一直是只关注开发者。
虽然决策是高层做的,但只要我能说服公司里的开发人员,他们就会在公司内部帮我推销和游说。
虽然决策是高层做的,但只要我能说服公司里的开发人员,他们就会在公司内部帮我推销和游说。
这招特别灵。
这招特别灵。
我们从不发那种冷启动邮件,也不搞激进营销,全是客户主动找上门。
我们从不发那种冷启动邮件,也不搞激进营销,全是客户主动找上门。
我们就是把产品做好,写有深度的技术博客。
我们就是把产品做好,写有深度的技术博客。
我也经常去参加各种会议,我觉得只要大家看到做产品的人懂行且热爱这行,这种专业度就会反映在产品上,效果特别好。
我也经常去参加各种会议,我觉得只要大家看到做产品的人懂行且热爱这行,这种专业度就会反映在产品上,效果特别好。
那PS、PDFK背后的技术栈是什么样的?
那PS、PDFK背后的技术栈是什么样的?
最开始是OBJECTIVE BACK嘛,后来用的SWIFT嘛。
最开始是OBJECTIVE BACK嘛,后来用的SWIFT嘛。
还有没有别的,比如C之类的?
还有没有别的,比如C之类的?
后来我们扩展到了所有平台。
后来我们扩展到了所有平台。
一个大转折是把苹果那个BUG挺多的渲染器换成了一个大型的C加加渲染器,然后在所有框架里通用。
一个大转折是把苹果那个BUG挺多的渲染器换成了一个大型的C加加渲染器,然后在所有框架里通用。
我们在外部领域也走得很早,是首批支持外部三部里的PDF框架之一。
我们在外部领域也走得很早,是首批支持外部三部里的PDF框架之一。
我当时做了件特别聪明的事儿。
我当时做了件特别聪明的事儿。
那时候WEB ASSEMBLY刚起步,我们搞了个基准测试,结果谷歌、微软、苹果这些公司都拿这个测试去优化他们的浏览器,因为他们想让我的渲染器跑得更快。
那时候WEB ASSEMBLY刚起步,我们搞了个基准测试,结果谷歌、微软、苹果这些公司都拿这个测试去优化他们的浏览器,因为他们想让我的渲染器跑得更快。
而那个测试跑的就是我们的代码。
而那个测试跑的就是我们的代码。
随着公司变大,我记得你2019年写过一篇博客,讲的是团队协作,你提到每个功能都从一份提案开始,而且因为API用户很多,你们做的很保守。
随着公司变大,我记得你2019年写过一篇博客,讲的是团队协作,你提到每个功能都从一份提案开始,而且因为API用户很多,你们做的很保守。
还有像童子军军规那样的代码重构。
还有像童子军军规那样的代码重构。
你觉得当时六十多人的团队文化是怎么样的?
你觉得当时六十多人的团队文化是怎么样的?
其实我卖掉股份时已经有七十人了,现在快两百人了。
其实我卖掉股份时已经有七十人了,现在快两百人了。
我一开始就知道在维也纳招不到我需要的所有人才,所以一直是远程优先。
我一开始就知道在维也纳招不到我需要的所有人才,所以一直是远程优先。
后来我们搞了种混合模式,反而让事情变复杂了。
后来我们搞了种混合模式,反而让事情变复杂了。
我一路上学到了很多,我其实一直没想当CEO,我只想写代码。
我一路上学到了很多,我其实一直没想当CEO,我只想写代码。
所以我请了很多人来帮我处理其他事务。
所以我请了很多人来帮我处理其他事务。
商业方面我能应付,我觉得我也挺擅长的。
商业方面我能应付,我觉得我也挺擅长的。
但我真不喜欢,比如那种大客户销售电话,你得琢磨报多少钱合适。
但我真不喜欢,比如那种大客户销售电话,你得琢磨报多少钱合适。
大企业那套流程哎,真的挺烦的。
大企业那套流程哎,真的挺烦的。
皮特刚才感叹大客户销售最头疼,确实把东西卖给大公司非常复杂,不光是价格难定,还得开发各种企业级功能。
皮特刚才感叹大客户销售最头疼,确实把东西卖给大公司非常复杂,不光是价格难定,还得开发各种企业级功能。
我们接着聊聊皮特说的大企业定价问题。
我们接着聊聊皮特说的大企业定价问题。
这种模式确实是唯一行得通的。
这种模式确实是唯一行得通的。
你是指大客户销售吧?
你是指大客户销售吧?
也就是定制化定价。
也就是定制化定价。
你能给听节目的开发者讲讲吗?
你能给听节目的开发者讲讲吗?
大家看到供应商网站上不标价,只写着联系我们,通常都挺挫败的。
大家看到供应商网站上不标价,只写着联系我们,通常都挺挫败的。
为什么非得这样?
为什么非得这样?
哦,那是因为我们要看你的公司规模,然后估一个你大概愿意付的数字。
哦,那是因为我们要看你的公司规模,然后估一个你大概愿意付的数字。
听起来挺糟糕的,但如果你的产品没法按具体指标分档,那就得看情况了。
听起来挺糟糕的,但如果你的产品没法按具体指标分档,那就得看情况了。
一个自由职业者和一家世界五百强公司找过来。
一个自由职业者和一家世界五百强公司找过来。
那差别太大了,他们的使用量和获得的价值完全不同。
那差别太大了,他们的使用量和获得的价值完全不同。
收一样的钱不合适,如果报得太低,大公司的采购部门会觉得不靠谱;五百美元的东西,他们连流程都懒得走;报得太高,小客户又流失了。
收一样的钱不合适,如果报得太低,大公司的采购部门会觉得不靠谱;五百美元的东西,他们连流程都懒得走;报得太高,小客户又流失了。
所以虽然这过程看着不公平,但其实是最合理的。
所以虽然这过程看着不公平,但其实是最合理的。
我觉得软件产品有四个象限。
我觉得软件产品有四个象限。
简单、困难、有趣、无趣,我们刚好在困难且无趣那一块儿。
简单、困难、有趣、无趣,我们刚好在困难且无趣那一块儿。
如果你做的东西每个开发者都想自己写一个,那很难卖;买东西给开发者本来就难。
如果你做的东西每个开发者都想自己写一个,那很难卖;买东西给开发者本来就难。
如果太简单或太有趣,大家就自言了;但如果这活又累又难,大家就会觉得:‘天呐,我才不想碰这个’。
如果太简单或太有趣,大家就自言了;但如果这活又累又难,大家就会觉得:‘天呐,我才不想碰这个’。
这就是个完美的切入点。
这就是个完美的切入点。
我发现了一个特别好的利基市场,里面全是极其复杂的坑。
我发现了一个特别好的利基市场,里面全是极其复杂的坑。
你快给我讲讲解析PDF能有多难?
你快给我讲讲解析PDF能有多难?
不都有标准规范吗?
不都有标准规范吗?
我是工程师,我懂规范。
我是工程师,我懂规范。
这事儿到底难在哪儿?
这事儿到底难在哪儿?
我举个例子,PDF里有链接,比如点击目录跳转到第三十七页。
我举个例子,PDF里有链接,比如点击目录跳转到第三十七页。
我最初假设一个文档顶多也就一百到四百个链接,结果有个大客户找过来,他们付了不少钱,然后抱怨说加载一个PDF要花四分钟。
我最初假设一个文档顶多也就一百到四百个链接,结果有个大客户找过来,他们付了不少钱,然后抱怨说加载一个PDF要花四分钟。
我一看,那是一个来自加拿大的5万页的文本,每页有100多个链接。
我一看,那是一个来自加拿大的5万页的文本,每页有100多个链接。
5万。
5万。
页没错,总共50万个链接。
页没错,总共50万个链接。
我的数据模型当时彻底崩了,因为我的假设整整差了1000倍。
我的数据模型当时彻底崩了,因为我的假设整整差了1000倍。
但那时候产品已经成熟了,还有API。
但那时候产品已经成熟了,还有API。
所以你怎么在不破坏大家使用的情况下,把内部架构彻底重构?
所以你怎么在不破坏大家使用的情况下,把内部架构彻底重构?
突然之间所有东西都得改成延迟加载。
突然之间所有东西都得改成延迟加载。
之前处理这些很简单,但重构的时候想让大家能继续正常用,真的太难了。
之前处理这些很简单,但重构的时候想让大家能继续正常用,真的太难了。
我记得我花了两个月就在搞这个彻底重构内部逻辑,还要保证用户用起来没感觉,他们不需要知道哪些是预加载、哪些是延迟加载,或者拷贝东西的时候怎么保持连接。
我记得我花了两个月就在搞这个彻底重构内部逻辑,还要保证用户用起来没感觉,他们不需要知道哪些是预加载、哪些是延迟加载,或者拷贝东西的时候怎么保持连接。
得保留那些引用,对还有类似的一些细节。
得保留那些引用,对还有类似的一些细节。
还有一点我特别喜欢做技术支持,我觉得这也是公司能成的一个关键因素。
还有一点我特别喜欢做技术支持,我觉得这也是公司能成的一个关键因素。
你想如果你发个工单,结果CEO亲自回信帮你解决问题,那影响力是不一样的。
你想如果你发个工单,结果CEO亲自回信帮你解决问题,那影响力是不一样的。
我当时的策略一直是倒序处理工单,因为如果你发了工单。
我当时的策略一直是倒序处理工单,因为如果你发了工单。
五分钟内就收到回复,那简直跟魔法一样。
五分钟内就收到回复,那简直跟魔法一样。
但如果你等个一两天,那回复就没啥惊喜了。
但如果你等个一两天,那回复就没啥惊喜了。
所以那两个月我一直在死磕这个问题,最后终于快搞定了。
所以那两个月我一直在死磕这个问题,最后终于快搞定了。
那一定很有成就感。
那一定很有成就感。
确实非常有成就感。
确实非常有成就感。
你当时是亲自写了很多代码,还是参与了大部分代码的编写?
你当时是亲自写了很多代码,还是参与了大部分代码的编写?
虽然当时已经有大团队了,但你还是在把控全局,对吧?
虽然当时已经有大团队了,但你还是在把控全局,对吧?
我是说你还是深入到了技术细节里。
我是说你还是深入到了技术细节里。
我当然有一个很棒的团队,有些部分我参与的多一些。
我当然有一个很棒的团队,有些部分我参与的多一些。
比如移动端,因为那是我的兴趣所在。
比如移动端,因为那是我的兴趣所在。
但我一直对技术钻得很深,至于营销和业务那边,我有JONATHAN帮忙,还有专门负责营销的人。
但我一直对技术钻得很深,至于营销和业务那边,我有JONATHAN帮忙,还有专门负责营销的人。
我找到了合适的人才。
我找到了合适的人才。
其实有一点很重要,如果你喜欢写博客,记录你如何解决那些有趣又硬核的问题,这会帮你招到同样想解决这些难题的牛人。
其实有一点很重要,如果你喜欢写博客,记录你如何解决那些有趣又硬核的问题,这会帮你招到同样想解决这些难题的牛人。
我记得PS PDF K的博客经常会上HACKER NEWS,读起来真的很有意思。
我记得PS PDF K的博客经常会上HACKER NEWS,读起来真的很有意思。
说实话,我对PDF没啥研究,但如果让我提一个PDF相关的品牌,我会想到PS PDF K,因为只有你们会写这种高质量的工程博客,将怎么优化、怎么发布。
说实话,我对PDF没啥研究,但如果让我提一个PDF相关的品牌,我会想到PS PDF K,因为只有你们会写这种高质量的工程博客,将怎么优化、怎么发布。
那个博客现在还在我,有时也在想为什么别的公司不这么干?
那个博客现在还在我,有时也在想为什么别的公司不这么干?
是因为你必须得是一个懂技术且喜欢写东西的CEO或高管才行吗?
是因为你必须得是一个懂技术且喜欢写东西的CEO或高管才行吗?
顺便问一下,你写这些的时候是觉得会对别人有帮助,还是纯粹为了自己爽?
顺便问一下,你写这些的时候是觉得会对别人有帮助,还是纯粹为了自己爽?
比如把解决难题的过程记录下来。
比如把解决难题的过程记录下来。
我喜欢分享,也喜欢启发别人。
我喜欢分享,也喜欢启发别人。
有时候公司内部也会有冲突,大家会说:‘我们要不要写这个?
有时候公司内部也会有冲突,大家会说:‘我们要不要写这个?
这可是我们的核心机密’。
这可是我们的核心机密’。
但我通常不怎么听这些意见。
但我通常不怎么听这些意见。
而且当你把东西写下来的时候,有个原则:如果你只是理解了,那是第一层;但如果你想教会别人,你就必须得彻底搞懂。
而且当你把东西写下来的时候,有个原则:如果你只是理解了,那是第一层;但如果你想教会别人,你就必须得彻底搞懂。
所以对我来说,这也有点像是我解决难题后的某种记录。
所以对我来说,这也有点像是我解决难题后的某种记录。
我想把它保存下来,去帮到别人。
我想把它保存下来,去帮到别人。
当然我也挺享受那种被关注的感觉,而且很有意思。
当然我也挺享受那种被关注的感觉,而且很有意思。
一年后我甚至会回头翻自己的博客,把它当成公司的文档或者我自己的笔记本,这在很多方面都很有用。
一年后我甚至会回头翻自己的博客,把它当成公司的文档或者我自己的笔记本,这在很多方面都很有用。
很多大公司流程太繁琐,而且很多开发者其实不爱写东西。
很多大公司流程太繁琐,而且很多开发者其实不爱写东西。
所以我当时强制要求每个人每个月抽出一整天专门写一篇博客。
所以我当时强制要求每个人每个月抽出一整天专门写一篇博客。
但你给了他们时间,你告诉他们那天不用干活,只要写东西就行。
但你给了他们时间,你告诉他们那天不用干活,只要写东西就行。
对,给你一天时间憋出一篇稿子,其实一天时间挺充裕的。
对,给你一天时间憋出一篇稿子,其实一天时间挺充裕的。
我现在写东西也只要几个小时,我不想在这些细节上纠结太久。
我现在写东西也只要几个小时,我不想在这些细节上纠结太久。
我觉得公司刚起步的时候是最有意思的,到了增长期,流程变多了,人也变多了。
我觉得公司刚起步的时候是最有意思的,到了增长期,流程变多了,人也变多了。
你更多是在修剪产品,而不是搞那种从零到一的开发,更多是迭代。
你更多是在修剪产品,而不是搞那种从零到一的开发,更多是迭代。
所以这些年我觉得没那么有意思了,而且人事纠纷也多了,人越多,破事就越多。
所以这些年我觉得没那么有意思了,而且人事纠纷也多了,人越多,破事就越多。
我不怎么享受那个过程,当时真的非常非常倦怠。
我不怎么享受那个过程,当时真的非常非常倦怠。
你觉得是什么让你职业倦怠了?
你觉得是什么让你职业倦怠了?
哦,我当时拼得太凶了。
哦,我当时拼得太凶了。
大多数周末都在加班,我试着把所有物质需求都推掉。
大多数周末都在加班,我试着把所有物质需求都推掉。
作为CEO,你基本上就是个垃圾桶,因为别人处理不了、做不到或者搞砸的事情,最后都得你来补救。
作为CEO,你基本上就是个垃圾桶,因为别人处理不了、做不到或者搞砸的事情,最后都得你来补救。
而且这位置挺孤独的,很多事情你没法公开谈。
而且这位置挺孤独的,很多事情你没法公开谈。
虽然我把公司架构设计得很开放,但作为老板,你不能表现出负面情绪。
虽然我把公司架构设计得很开放,但作为老板,你不能表现出负面情绪。
即便发生了很糟糕的事情,你也得撑着。
即便发生了很糟糕的事情,你也得撑着。
我记得有一个周末凌晨五点,我合伙人给我打电话说有一家大型航空公司因为我们的软件崩溃导致飞机都停飞了。
我记得有一个周末凌晨五点,我合伙人给我打电话说有一家大型航空公司因为我们的软件崩溃导致飞机都停飞了。
那个周末过得非常精彩,直到我反编译了他们的APP,证明是因为他们用了外包代码触发了授权码的回退机制才导致了那个问题。
那个周末过得非常精彩,直到我反编译了他们的APP,证明是因为他们用了外包代码触发了授权码的回退机制才导致了那个问题。
但当时那种如果他们起诉公司就完了的压力是巨大的,这种事还不少。
但当时那种如果他们起诉公司就完了的压力是巨大的,这种事还不少。
这种状态你能撑一段时间,但我认为倦怠不一定是工作太多导致的,至少对我来说是因为你正在做的事情你不再相信了,或者是团队冲突太多。
这种状态你能撑一段时间,但我认为倦怠不一定是工作太多导致的,至少对我来说是因为你正在做的事情你不再相信了,或者是团队冲突太多。
我们管理层当时吵得很凶,我当时犯了个错,以为管理公司应该更民主一些。
我们管理层当时吵得很凶,我当时犯了个错,以为管理公司应该更民主一些。
那也是让我倦怠的原因之一。
那也是让我倦怠的原因之一。
不过我一点也不后悔经历这些。
不过我一点也不后悔经历这些。
在外人看来,你卖了股份,赚够了这辈子不用再工作的钱。
在外人看来,你卖了股份,赚够了这辈子不用再工作的钱。
对很多创业者来说,这就是终极梦想。
对很多创业者来说,这就是终极梦想。
虽然现实中大多数人做不到,但你做到了,就像爬山登顶、敲钟一样,任务完成了。
虽然现实中大多数人做不到,但你做到了,就像爬山登顶、敲钟一样,任务完成了。
但我注意到你的博客停更了好几年,那段时间你干嘛去了?
但我注意到你的博客停更了好几年,那段时间你干嘛去了?
学到了什么?
学到了什么?
我需要大量的时间来解压,我疯狂补课那些我觉得错过的生活。
我需要大量的时间来解压,我疯狂补课那些我觉得错过的生活。
比如经常去派对,有几个月我甚至连电脑都不开。
比如经常去派对,有几个月我甚至连电脑都不开。
有一段时间我完全找不到方向,在想我努力还有什么意义呢?
有一段时间我完全找不到方向,在想我努力还有什么意义呢?
你本不该这么年轻就退休,或者说这种再也不用工作的退出方式,让我的心态有点崩。
你本不该这么年轻就退休,或者说这种再也不用工作的退出方式,让我的心态有点崩。
那几年过得挺艰难的,直到今年四月我突然想起多年前的一个点子,甚至是我之前开始过的一个侧边项目。
那几年过得挺艰难的,直到今年四月我突然想起多年前的一个点子,甚至是我之前开始过的一个侧边项目。
我想诶,我想继续搞那个。
我想诶,我想继续搞那个。
于是,在过了三年多之后,我终于坐回电脑前,重新开始写代码。
于是,在过了三年多之后,我终于坐回电脑前,重新开始写代码。
当时那个项目是个推特分析工具,是用SWIFT和SWIFT UI写的。
当时那个项目是个推特分析工具,是用SWIFT和SWIFT UI写的。
那我当时意识到,如果把它做成一个网站,效果会好得多。
那我当时意识到,如果把它做成一个网站,效果会好得多。
所以这是一个你一直记在脑子里的旧想法。
所以这是一个你一直记在脑子里的旧想法。
关于TWITTER分析的。
关于TWITTER分析的。
对,就是我想给自己造个工具,因为当时市面上没有结果,三年后还是没有,甚至现在也没有。
对,就是我想给自己造个工具,因为当时市面上没有结果,三年后还是没有,甚至现在也没有。
不过后来我有点跑偏了,我当时想用WEB技术来做,但外部开发一直是我公司里我碰的最少的部分,因为我招了马丁,他非常聪明,一直负责那一块,所以我从不需要操心。
不过后来我有点跑偏了,我当时想用WEB技术来做,但外部开发一直是我公司里我碰的最少的部分,因为我招了马丁,他非常聪明,一直负责那一块,所以我从不需要操心。
展开剩余字幕(还有 480 条)
所以你以前不怎么亲自动手搞react之类的。
所以你以前不怎么亲自动手搞react之类的。
对?
对?
所以我回来写代码的时候,水平基本上是什么是prop那种程度。
所以我回来写代码的时候,水平基本上是什么是prop那种程度。
这是很多开发者的陷阱。
这是很多开发者的陷阱。
你在某项技术上越顶尖,跳到新领域就越痛苦。
你在某项技术上越顶尖,跳到新领域就越痛苦。
不是说你做不到,而是那种落差太疼了。
不是说你做不到,而是那种落差太疼了。
在苹果那套技术站里我闭眼都能写,但在外部站里我连最基础的东西都得去谷歌搜。
在苹果那套技术站里我闭眼都能写,但在外部站里我连最基础的东西都得去谷歌搜。
那种感觉让你觉得自己像个白痴。
那种感觉让你觉得自己像个白痴。
我觉得经验越丰富,那种感觉就越糟糕。
我觉得经验越丰富,那种感觉就越糟糕。
我是说你肯定会说要拥抱变化之类的,但这种感觉确实不太好。
我是说你肯定会说要拥抱变化之类的,但这种感觉确实不太好。
你会觉得自己没以前那么高效了,明明知道自己本来可以更快,对吧?
你会觉得自己没以前那么高效了,明明知道自己本来可以更快,对吧?
对,所以我回来的时候就在想,天哪,肯定有什么东西大家都在聊的这个AI到底是什么,我得研究一下。
对,所以我回来的时候就在想,天哪,肯定有什么东西大家都在聊的这个AI到底是什么,我得研究一下。
四月份那会儿,咱们很多人都对AI挺不屑的。
四月份那会儿,咱们很多人都对AI挺不屑的。
可能当时确实有理由这么想。
可能当时确实有理由这么想。
但是其实某种程度上我挺感谢那三年没怎么碰电脑的,因为在那几年里你们都在试AI,然后发现它挺烂的。
但是其实某种程度上我挺感谢那三年没怎么碰电脑的,因为在那几年里你们都在试AI,然后发现它挺烂的。
对,就像我刚才想说的,你错过了GET UP COPILOT的测试版,就是那个被神话的自动补全,当时还是GPT三,甚至还没到那水平。
对,就像我刚才想说的,你错过了GET UP COPILOT的测试版,就是那个被神话的自动补全,当时还是GPT三,甚至还没到那水平。
后来有了GPT三五,那是次大飞跃,再到后来的GPT四,它变得越来越好。
后来有了GPT三五,那是次大飞跃,再到后来的GPT四,它变得越来越好。
所以你回来的时候,第一个用的工具是什么?
所以你回来的时候,第一个用的工具是什么?
毕竟你错过了这两年,错过了开发者们从嫌弃到在一些细分场景里尝试它的整个过程。
毕竟你错过了这两年,错过了开发者们从嫌弃到在一些细分场景里尝试它的整个过程。
或者是CLOTH CODE。
或者是CLOTH CODE。
所以你是从CLOTH开始的。
所以你是从CLOTH开始的。
我觉得他们刚出的时候我就开始用了,就是C.
我觉得他们刚出的时候我就开始用了,就是C.
LOTH CODE刚出不久,大概是五月份。
LOTH CODE刚出不久,大概是五月份。
不过之前有测试版,对对。
不过之前有测试版,对对。
我觉得他们二月份就有东西了吧?
我觉得他们二月份就有东西了吧?
对他们二月份确实有个测试版。
对他们二月份确实有个测试版。
所以。
所以。
所以COLD COOL是你用的第一个,你刚结束休假回来,一回来就直接用上了COLD COOL,把之前的全都跳过了。
所以COLD COOL是你用的第一个,你刚结束休假回来,一回来就直接用上了COLD COOL,把之前的全都跳过了。
毕竟歇了挺久嘛。
毕竟歇了挺久嘛。
而且你知道吗?
而且你知道吗?
我记得我拿了一个以前做的挺乱的侧边项目,我有个浏览器插件能把GITHUB仓库转成一个大的MARKDOWN文件,大概一点三兆。
我记得我拿了一个以前做的挺乱的侧边项目,我有个浏览器插件能把GITHUB仓库转成一个大的MARKDOWN文件,大概一点三兆。
我把它拽进Google AI Studio,用了GAMENIGHT十五输入给我写个技术规范。
我把它拽进Google AI Studio,用了GAMENIGHT十五输入给我写个技术规范。
它真生成了400行规范,然后我把规范拽进CLOCK CODE跟他说开搞。
它真生成了400行规范,然后我把规范拽进CLOCK CODE跟他说开搞。
我就一直在那点继续、继续、继续、继续,我自己同时在忙别的。
我就一直在那点继续、继续、继续、继续,我自己同时在忙别的。
最后他告诉我这已经完全达到生产环境标准了,结果我一运行崩了。
最后他告诉我这已经完全达到生产环境标准了,结果我一运行崩了。
我估计大家对这种事儿都挺有共鸣的。
我估计大家对这种事儿都挺有共鸣的。
AI说代码能上线了,结果一跑就崩,这故事挺逗的,也挺真实。
AI说代码能上线了,结果一跑就崩,这故事挺逗的,也挺真实。
但我个人是不太敢在不验证的情况下就相信AI生成的代码的。
但我个人是不太敢在不验证的情况下就相信AI生成的代码的。
咱们接着聊PETER说的AIAGENT为什么还不能完全被信任。
咱们接着聊PETER说的AIAGENT为什么还不能完全被信任。
不过后来我加了MCP,这样它就能用浏览器了。
不过后来我加了MCP,这样它就能用浏览器了。
我记得当时MCP已经能用了,它又跑了几个小时,然后我得到了一个推的登录页面。
我记得当时MCP已经能用了,它又跑了几个小时,然后我得到了一个推的登录页面。
它确实做出了点东西,我是说虽然不算完美,但确实能跑。
它确实做出了点东西,我是说虽然不算完美,但确实能跑。
对我来说,那是真的让我惊掉下巴、感到震撼的时刻。
对我来说,那是真的让我惊掉下巴、感到震撼的时刻。
这大概是今年四五月份的事儿吧。
这大概是今年四五月份的事儿吧。
对吧,当时那个效果已经好到让我看到潜力了。
对吧,当时那个效果已经好到让我看到潜力了。
我意识到这就是未来的方向。
我意识到这就是未来的方向。
从那之后好几个月,我兴奋得觉都睡不着。
从那之后好几个月,我兴奋得觉都睡不着。
我记得有次我在TWITTER上给你发私信,那天我起得特别早,大概凌晨五点吧。
我记得有次我在TWITTER上给你发私信,那天我起得特别早,大概凌晨五点吧。
结果你秒回:‘你怎么起这么早?
结果你秒回:‘你怎么起这么早?
’你说这很正常,你还在用CLOUD这玩意儿太上瘾了。
’你说这很正常,你还在用CLOUD这玩意儿太上瘾了。
我记得你当时说:‘再来一个提示词就好。
我记得你当时说:‘再来一个提示词就好。
’到底是什么让它这么让人停不下来?
’到底是什么让它这么让人停不下来?
这种心理机制跟去赌场玩老虎机是一样的,你按一下按钮叮叮叮,可能出来一堆垃圾,也可能出来一个让你惊掉下巴的东西。
这种心理机制跟去赌场玩老虎机是一样的,你按一下按钮叮叮叮,可能出来一堆垃圾,也可能出来一个让你惊掉下巴的东西。
你说它让你惊艳,这可不容易。
你说它让你惊艳,这可不容易。
你是个资深开发者,见过好代码,分得清垃圾代码和优秀代码,你的门槛是很高的。
你是个资深开发者,见过好代码,分得清垃圾代码和优秀代码,你的门槛是很高的。
挺逗的,以前在公司里我纠结每一个细节,空格、换行、命名,在这些细枝末节上浪费了太多时间。
挺逗的,以前在公司里我纠结每一个细节,空格、换行、命名,在这些细枝末节上浪费了太多时间。
现在回想起来,图啥呢?
现在回想起来,图啥呢?
客户又看不见代码内部。
客户又看不见代码内部。
当然,基本标准得有得跑得快、安全、稳定。
当然,基本标准得有得跑得快、安全、稳定。
但以前那种过度纠结真的挺傻的。
但以前那种过度纠结真的挺傻的。
虽然你这么说,但大家喜欢PS、PDF、KIT,不就是因为它打磨得好好用吗?
虽然你这么说,但大家喜欢PS、PDF、KIT,不就是因为它打磨得好好用吗?
那种对细节的执着,其实是在压制技术债吧。
那种对细节的执着,其实是在压制技术债吧。
我觉得你不仅是在做产品,还在维持一种代码卫生,这才是高性能的基础。
我觉得你不仅是在做产品,还在维持一种代码卫生,这才是高性能的基础。
你怎么看?
你怎么看?
某种程度上是对的。
某种程度上是对的。
我最近那篇博文也坦白了,我说我发布的业务代码我自己都不读。
我最近那篇博文也坦白了,我说我发布的业务代码我自己都不读。
这个咱们得好好聊聊。
这个咱们得好好聊聊。
但我同时也花很多时间做架构重构。
但我同时也花很多时间做架构重构。
就在今天,我还想提交一个一万五千行的PR,把所有东西都改成插件架构。
就在今天,我还想提交一个一万五千行的PR,把所有东西都改成插件架构。
我对此特别兴奋,我非常看重结构。
我对此特别兴奋,我非常看重结构。
但我读完所有代码了吗?
但我读完所有代码了吗?
没有,因为很多代码就是无聊的管道工程。
没有,因为很多代码就是无聊的管道工程。
说白了,大多数APP是干嘛的?
说白了,大多数APP是干嘛的?
数据从API进来,解析一下,打包成另一种格式存进数据库,再取出来变成HTML展示。
数据从API进来,解析一下,打包成另一种格式存进数据库,再取出来变成HTML展示。
你整天就是在APP里倒腾各种格式的数据。
你整天就是在APP里倒腾各种格式的数据。
真正难的部分,那些大牛三十年前就在POSTGRES里解决了。
真正难的部分,那些大牛三十年前就在POSTGRES里解决了。
软件开发确实有意思的部分,但我没必要纠结按钮怎么对齐,或者用了哪个TILE WIND类。
软件开发确实有意思的部分,但我没必要纠结按钮怎么对齐,或者用了哪个TILE WIND类。
比起逐行读代码,我更看重系统架构。
比起逐行读代码,我更看重系统架构。
明白?
明白?
那聊聊你现在的流程做CLOUD的时候,你用什么工具?
那聊聊你现在的流程做CLOUD的时候,你用什么工具?
几个终端,你说你不怎么审代码,但会思考架构。
几个终端,你说你不怎么审代码,但会思考架构。
那你的一天是怎么过的?
那你的一天是怎么过的?
挺有意思的。
挺有意思的。
今年四月我开始用CLOUD CODE,然后就彻底入坑了。
今年四月我开始用CLOUD CODE,然后就彻底入坑了。
中间试过CURSOR,还用过一阵子JEMINA一点五。
中间试过CURSOR,还用过一阵子JEMINA一点五。
后来GPT四出来,我带身边不少朋友都入教了。
后来GPT四出来,我带身边不少朋友都入教了。
我那种狂热劲儿把他们都搞懵了。
我那种狂热劲儿把他们都搞懵了。
结果后来他们也开始凌晨五点起床写代码,我管这叫黑眼圈俱乐部。
结果后来他们也开始凌晨五点起床写代码,我管这叫黑眼圈俱乐部。
我还在伦敦搞了个线下聚会,名字就叫CLOUD CODE匿名阶段会,因为它真的像某种药物,太好玩了。
我还在伦敦搞了个线下聚会,名字就叫CLOUD CODE匿名阶段会,因为它真的像某种药物,太好玩了。
最让我震惊的是,我意识到我现在能造出任何东西,以前你得挑着做侧边项目,因为写软件太难了。
最让我震惊的是,我意识到我现在能造出任何东西,以前你得挑着做侧边项目,因为写软件太难了。
现在呢,虽然我有些技术很强,有些很烂。
现在呢,虽然我有些技术很强,有些很烂。
比如我想写一个够语言的命令行工具,但我其实根本不懂够,但我懂系统架构。
比如我想写一个够语言的命令行工具,但我其实根本不懂够,但我懂系统架构。
一旦你有了这种大局观,你就能感觉到什么是对的,什么是错的,这本身就是一种技能。
一旦你有了这种大局观,你就能感觉到什么是对的,什么是错的,这本身就是一种技能。
有人说写代码时能感觉到阻力,从而设计出好架构,我写提示词时也有这种感觉。
有人说写代码时能感觉到阻力,从而设计出好架构,我写提示词时也有这种感觉。
我看着代码飞快生成,看AGENT会不会推脱,看生成的代码是乱七八糟还是逻辑清晰。
我看着代码飞快生成,看AGENT会不会推脱,看生成的代码是乱七八糟还是逻辑清晰。
我发个提示词,心里大概就知道要花多久。
我发个提示词,心里大概就知道要花多久。
如果花的时间比预期长,我就知道我哪里搞砸了。
如果花的时间比预期长,我就知道我哪里搞砸了。
所以你是在感知模型?
所以你是在感知模型?
对,这是一种共生关系。
对,这是一种共生关系。
我学会了怎么跟模型对话,我的技巧在进步,模型也在进步。
我学会了怎么跟模型对话,我的技巧在进步,模型也在进步。
今年夏天是个转折点,它变得太强了。
今年夏天是个转折点,它变得太强了。
你甚至不需要亲手写代码就能做出软件。
你甚至不需要亲手写代码就能做出软件。
真正让我彻底服气的是GPT40,我觉得它被低估了。
真正让我彻底服气的是GPT40,我觉得它被低估了。
我不知道为什么大家还只盯着CLOUD CODE,我理解那种工作方式。
我不知道为什么大家还只盯着CLOUD CODE,我理解那种工作方式。
但OPEN I I搞出的这玩意儿简直强得离谱了。
但OPEN I I搞出的这玩意儿简直强得离谱了。
我写的每个提示词几乎都能给到我想要的结果。
我写的每个提示词几乎都能给到我想要的结果。
在CLOUD这个项目里,我会并行用五到十个AGENT。
在CLOUD这个项目里,我会并行用五到十个AGENT。
如果你习惯了CLOUD CODE,你得忘掉以前为了拿好结果而做的那些琐碎操作。
如果你习惯了CLOUD CODE,你得忘掉以前为了拿好结果而做的那些琐碎操作。
那个团队定义了一个全新的产品类别,写代码很棒。
那个团队定义了一个全新的产品类别,写代码很棒。
我现在每天也还在用,但如果是写复杂应用的业务逻辑,O一这种模型更好,因为它更有耐心。
我现在每天也还在用,但如果是写复杂应用的业务逻辑,O一这种模型更好,因为它更有耐心。
考可能读三个文件就觉得稳了,然后开始写,你得一直盯着它、推着它,多读点代码,它才能看到全局。
考可能读三个文件就觉得稳了,然后开始写,你得一直盯着它、推着它,多读点代码,它才能看到全局。
呃,O一会儿安安静静读十分钟文件。
呃,O一会儿安安静静读十分钟文件。
如果你只用一个终端,你可能会觉得慢的受不了。
如果你只用一个终端,你可能会觉得慢的受不了。
但我更想要这种效果,而且你不需要教他怎么做。
但我更想要这种效果,而且你不需要教他怎么做。
这是一种对话,我会问模型:咱们看看这个结构有哪些方案?
这是一种对话,我会问模型:咱们看看这个结构有哪些方案?
你考虑过这个功能吗?
你考虑过这个功能吗?
因为模型刚开始对你的产品一无所知,你得给他点方向。
因为模型刚开始对你的产品一无所知,你得给他点方向。
我不需要专门的计划模式,我们就一直聊,直到我说开搞。
我不需要专门的计划模式,我们就一直聊,直到我说开搞。
只要我说咱们讨论一下或给我几个方案,在我下令之前他们不会乱动代码。
只要我说咱们讨论一下或给我几个方案,在我下令之前他们不会乱动代码。
所以你的提示词很大一部分其实是在跟AGENT一起做规划。
所以你的提示词很大一部分其实是在跟AGENT一起做规划。
对我会提醒他,比如我们需要文档放哪合适,他会给建议;我会说不行,这得单独开一页,或者我们需要个配置项怎么跟那个功能结合。
对我会提醒他,比如我们需要文档放哪合适,他会给建议;我会说不行,这得单独开一页,或者我们需要个配置项怎么跟那个功能结合。
我是在设计系统,因为我理解整个产品的形状和结构。
我是在设计系统,因为我理解整个产品的形状和结构。
我不需要逐行理解代码,那是OE干的事儿。
我不需要逐行理解代码,那是OE干的事儿。
我是那个架构师,听起来你就像那种大写字母A开头的架构师。
我是那个架构师,听起来你就像那种大写字母A开头的架构师。
以前这种角色挺招人恨的,因为他们只管画蓝图,不写代码,最后把东西丢给开发团队。
以前这种角色挺招人恨的,因为他们只管画蓝图,不写代码,最后把东西丢给开发团队。
但在你这儿,你虽然是架构师,带着一堆AGENT干活,但你还是得负责。
但在你这儿,你虽然是架构师,带着一堆AGENT干活,但你还是得负责。
如果代码上线把系统搞崩了,就像你最近搞崩了CLOUD一样,最后还得你来扛。
如果代码上线把系统搞崩了,就像你最近搞崩了CLOUD一样,最后还得你来扛。
区别在于,以前大公司的架构是有层层流程保护,而你是直接面对结果的。
区别在于,以前大公司的架构是有层层流程保护,而你是直接面对结果的。
我倒不想说自己是架构师,我更喜欢开发者builder这个词。
我倒不想说自己是架构师,我更喜欢开发者builder这个词。
开发者对说到这儿,我发现那些用AI特别成功的人和用得特别痛苦的人,其实能分成几类。
开发者对说到这儿,我发现那些用AI特别成功的人和用得特别痛苦的人,其实能分成几类。
对我来说,我更看重结果和产品,看重它的体验和感觉。
对我来说,我更看重结果和产品,看重它的体验和感觉。
至于底层的细节,我虽然关注架构,但不会死磕每一个小地方。
至于底层的细节,我虽然关注架构,但不会死磕每一个小地方。
但还有一类人,他们特别喜欢钻研硬核代码,比如研究算法、对搞产品、搞营销什么的没啥兴趣。
但还有一类人,他们特别喜欢钻研硬核代码,比如研究算法、对搞产品、搞营销什么的没啥兴趣。
他们就喜欢解决难题,这类人往往最痛苦,甚至会排斥AI,因为AI抢的就是他们的活——解决那些硬核难题。
他们就喜欢解决难题,这类人往往最痛苦,甚至会排斥AI,因为AI抢的就是他们的活——解决那些硬核难题。
有时候我会给AI一些指点,但说实话,这一年我学到的架构和设计知识比过去五年都多。
有时候我会给AI一些指点,但说实话,这一年我学到的架构和设计知识比过去五年都多。
那些模型简直就是知识宝库,只要你问对问题,什么都能在那找到。
那些模型简直就是知识宝库,只要你问对问题,什么都能在那找到。
当然前提是你得知道该问什么。
当然前提是你得知道该问什么。
我也在做一个类似TWITTER的项目,还没做完之前遇到个问题,程序用久了就会变卡,特别奇怪而且很难复现,就是用的越多就越慢。
我也在做一个类似TWITTER的项目,还没做完之前遇到个问题,程序用久了就会变卡,特别奇怪而且很难复现,就是用的越多就越慢。
后来发现是因为POSTGRESQL数据库里有一些触发器,在插入数据时会被触发,导致数据库非常忙,但模型一开始看不出来。
后来发现是因为POSTGRESQL数据库里有一些触发器,在插入数据时会被触发,导致数据库非常忙,但模型一开始看不出来。
因为那个副作用隐藏在一个完全没关联的文件里,函数名也很难搜到。
因为那个副作用隐藏在一个完全没关联的文件里,函数名也很难搜到。
直到我问他这地方有没有什么副作用,才把它找出来修好。
直到我问他这地方有没有什么副作用,才把它找出来修好。
所以说一切全看你能不能问出那个对的问题。
所以说一切全看你能不能问出那个对的问题。
对,不过你还是得有足够的专业知识和经验才行。
对,不过你还是得有足够的专业知识和经验才行。
是的,所以刚才说的那类人会排斥AI,而那些不太纠结底层细节。
是的,所以刚才说的那类人会排斥AI,而那些不太纠结底层细节。
只想把东西做出来的人就非常成功。
只想把东西做出来的人就非常成功。
还有一点对我帮助很大,就是以前开公司的经历。
还有一点对我帮助很大,就是以前开公司的经历。
当你雇了人,你不能整天盯着每个人的脖子,要求每一行代码都必须按你的想法写。
当你雇了人,你不能整天盯着每个人的脖子,要求每一行代码都必须按你的想法写。
很多没带过团队的人不懂得怎么放手,其实你应该明白,虽然代码不完美,但它能让你离目标更近。
很多没带过团队的人不懂得怎么放手,其实你应该明白,虽然代码不完美,但它能让你离目标更近。
我非常相信迭代改进。
我非常相信迭代改进。
以前在公司,我也得学会放手。
以前在公司,我也得学会放手。
所以现在用CLOCK的时候,感觉就像在带一群不完美、偶尔犯傻,但有时又非常有才华的工程师。
所以现在用CLOCK的时候,感觉就像在带一群不完美、偶尔犯傻,但有时又非常有才华的工程师。
我得引导他们去完成共同的目标,这种感觉就像又当回了老板。
我得引导他们去完成共同的目标,这种感觉就像又当回了老板。
很有意思。
很有意思。
你在AI时代之前已经做了十五年甚至更久的传统开发了,而且你非常擅长带团队,标准也很高,非常讲究代码工艺。
你在AI时代之前已经做了十五年甚至更久的传统开发了,而且你非常擅长带团队,标准也很高,非常讲究代码工艺。
现在你用了快一年的氛围编程VIBE CODING,或者说代理开发,你觉得最大的变化是什么?
现在你用了快一年的氛围编程VIBE CODING,或者说代理开发,你觉得最大的变化是什么?
哪些东西是没变的?
哪些东西是没变的?
首先,我不喜欢氛围编程这个词。
首先,我不喜欢氛围编程这个词。
好吧,那该叫什么?
好吧,那该叫什么?
我觉得这个词现在快变成贬义词了。
我觉得这个词现在快变成贬义词了。
我管它叫带星号的工程维护。
我管它叫带星号的工程维护。
对我来说,氛围编程就像是凌晨三点干的活。
对我来说,氛围编程就像是凌晨三点干的活。
现在那些琐碎的代码活都自动化了,我速度快多了,但脑子也更累了。
现在那些琐碎的代码活都自动化了,我速度快多了,但脑子也更累了。
我依然能进入那种心流状态。
我依然能进入那种心流状态。
感觉和以前一样,但精神消耗更大了。
感觉和以前一样,但精神消耗更大了。
因为我不是在带一个员工,而是像在同时带五到十个,不停地在各个任务之间切换。
因为我不是在带一个员工,而是像在同时带五到十个,不停地在各个任务之间切换。
一会儿弄这个子系统,一会儿弄那个新功能。
一会儿弄这个子系统,一会儿弄那个新功能。
我会先设计好方案,估计AI跑完要40分钟到一个小时,我就先布好局,然后让他在那儿炖着,我去干别的。
我会先设计好方案,估计AI跑完要40分钟到一个小时,我就先布好局,然后让他在那儿炖着,我去干别的。
等那边炖好了,我再切回来。
等那边炖好了,我再切回来。
我脑子里的不停的跳,虽然我希望以后模型够快了就不用这么累。
我脑子里的不停的跳,虽然我希望以后模型够快了就不用这么累。
但现在为了保持心流,我必须得高度并行。
但现在为了保持心流,我必须得高度并行。
我通常有一个主项目,旁边还有几个卫星项目也需要处理。
我通常有一个主项目,旁边还有几个卫星项目也需要处理。
我可能只要花五分钟交代一下,让它跑半小时,这样就不用占用太多脑力。
我可能只要花五分钟交代一下,让它跑半小时,这样就不用占用太多脑力。
听起来像两件事儿,一个是像那种精英厨房的游戏,你得根据菜单不停的跳来跳去。
听起来像两件事儿,一个是像那种精英厨房的游戏,你得根据菜单不停的跳来跳去。
也有点像星际争霸,你有主基地,还有提供资源的副基地。
也有点像星际争霸,你有主基地,还有提供资源的副基地。
没错,我还想到国际象棋大师同时下二十盘棋,他们扫一眼棋盘就能做决定。
没错,我还想到国际象棋大师同时下二十盘棋,他们扫一眼棋盘就能做决定。
虽然每盘棋都在占用精力,但只要你会切换上下文,就能实现自我扩充。
虽然每盘棋都在占用精力,但只要你会切换上下文,就能实现自我扩充。
区别在于像CLOUD CODE这种工具虽然快,但输出的东西往往第一次跑不通。
区别在于像CLOUD CODE这种工具虽然快,但输出的东西往往第一次跑不通。
它可能会漏掉一些更新,或者直接崩溃。
它可能会漏掉一些更新,或者直接崩溃。
所以高效的关键是闭环,一定要让它能自己调试、自己测试。
所以高效的关键是闭环,一定要让它能自己调试、自己测试。
这就是秘诀,也是我效率变高的一大原因。
这就是秘诀,也是我效率变高的一大原因。
以前用CLOUD CODE,我得经常会去修补或者反复迭代,其实没快多少。
以前用CLOUD CODE,我得经常会去修补或者反复迭代,其实没快多少。
但现在的模型几乎每次都能写对。
但现在的模型几乎每次都能写对。
我的策略是做新功能时一定要让它写测试,并且确保测试能跑通。
我的策略是做新功能时一定要让它写测试,并且确保测试能跑通。
明白。
明白。
比如我昨天调一个MAC应用的BUG。
比如我昨天调一个MAC应用的BUG。
MAC应用调试起来特别麻烦,得编译、启动、盯着看。
MAC应用调试起来特别麻烦,得编译、启动、盯着看。
我就直接让AI写一个专门调试用的CLAY工具,调用同样的路径,然后让它自己在那儿跑。
我就直接让AI写一个专门调试用的CLAY工具,调用同样的路径,然后让它自己在那儿跑。
跑了一个小时,它告诉我这有个静态条件,那儿有个配置错误。
跑了一个小时,它告诉我这有个静态条件,那儿有个配置错误。
我一看确实有道理,我根本不需要看它怎么写代码。
我一看确实有道理,我根本不需要看它怎么写代码。
因为你建立了验证闭环,你信任它。
因为你建立了验证闭环,你信任它。
因为它跑过测试了,这其实跟大公司的项目很像。
因为它跑过测试了,这其实跟大公司的项目很像。
只要测试全过了,虽然不代表百分之百没问题,但基本也大差不差了。
只要测试全过了,虽然不代表百分之百没问题,但基本也大差不差了。
哪怕是再小的项目,也总会有BUG。
哪怕是再小的项目,也总会有BUG。
比如有的工具在处理循环调用时格式会有问题。
比如有的工具在处理循环调用时格式会有问题。
你就得做一些过滤。
你就得做一些过滤。
明白C一幺四。
明白C一幺四。
那玩意儿坏了一堆,我反映了好久才发现。
那玩意儿坏了一堆,我反映了好久才发现。
诶,我在这儿费什么劲呢?
诶,我在这儿费什么劲呢?
直接自动化不就完了吗?
直接自动化不就完了吗?
所以我当时就用CODEX搞了一套类似于设计那种实时测试,能自动启动DOCKER容器,安装好所有东西,然后跑个循环,直接调用我文件里存的各种APIKEY。
所以我当时就用CODEX搞了一套类似于设计那种实时测试,能自动启动DOCKER容器,安装好所有东西,然后跑个循环,直接调用我文件里存的各种APIKEY。
你只要告诉模型去读一张图,或者先生成一张图,然后再让它看图里有什么。
你只要告诉模型去读一张图,或者先生成一张图,然后再让它看图里有什么。
我不只是给它指令,还会让它用TO CALLING工具调用去搞定结果,他自己就把问题解决了。
我不只是给它指令,还会让它用TO CALLING工具调用去搞定结果,他自己就把问题解决了。
虽然花了挺长时间,但他把我从ANTHROPIC到JEMINI所有的APIKEY都测了一遍。
虽然花了挺长时间,但他把我从ANTHROPIC到JEMINI所有的APIKEY都测了一遍。
之前因为我没把逻辑闭环,经常会出现TO CALLING失效或者顺序错误这些小细节,最后全被他修复了。
之前因为我没把逻辑闭环,经常会出现TO CALLING失效或者顺序错误这些小细节,最后全被他修复了。
这就是独立出来了。
这就是独立出来了。
你说的闭环是指让AGENT有办法去验证他自己的工作。
你说的闭环是指让AGENT有办法去验证他自己的工作。
对吧?
对吧?
对,这就是为什么现在的模型写代码很强。
对,这就是为什么现在的模型写代码很强。
那些创意文案就一般,因为文案很难简单的去验证。
那些创意文案就一般,因为文案很难简单的去验证。
但代码不一样,我可以编译、可以跑LINT、可以执行,还能检查输出。
但代码不一样,我可以编译、可以跑LINT、可以执行,还能检查输出。
只要你设计得当,就能形成一个完美的闭环。
只要你设计得当,就能形成一个完美的闭环。
哪怕是现在做网站,我也把核心部分写成了可以用CLICK命令行运行的形式,我需要这种急速的执行循环。
哪怕是现在做网站,我也把核心部分写成了可以用CLICK命令行运行的形式,我需要这种急速的执行循环。
因为浏览器端那个循环实在是太慢了,你得让它转得快起来。
因为浏览器端那个循环实在是太慢了,你得让它转得快起来。
听起来有一点是没变的那种后端或者业务逻辑很重的东西,验证起来总是更容易一些。
听起来有一点是没变的那种后端或者业务逻辑很重的东西,验证起来总是更容易一些。
没错,就是用AI编程会让你变成更好的程序员,因为你不得不更深入地思考架构,好让代码更容易被验证。
没错,就是用AI编程会让你变成更好的程序员,因为你不得不更深入地思考架构,好让代码更容易被验证。
毕竟可验证才是做出好东西的唯一途径。
毕竟可验证才是做出好东西的唯一途径。
这让我想起AI出现之前,大家做复杂系统时有经验的人上手第一件事儿就是想这东西怎么测试。
这让我想起AI出现之前,大家做复杂系统时有经验的人上手第一件事儿就是想这东西怎么测试。
你得设计接口、设计类,考虑要不要做FAKE,要不要用MOCK,或者跑那种很耗时的端到端测试。
你得设计接口、设计类,考虑要不要做FAKE,要不要用MOCK,或者跑那种很耗时的端到端测试。
这些架构决策其实挺难的,一旦定了就很难改。
这些架构决策其实挺难的,一旦定了就很难改。
在你的语境下,如果你让模型去做大规模重构,它可能要想很久。
在你的语境下,如果你让模型去做大规模重构,它可能要想很久。
虽然有测试的话,它最终能搞定,但这些权衡依然存在。
虽然有测试的话,它最终能搞定,但这些权衡依然存在。
归根结底,它还是软件工程。
归根结底,它还是软件工程。
我想说,自从我不亲自动手写代码之后,我写的代码反而更好了。
我想说,自从我不亲自动手写代码之后,我写的代码反而更好了。
虽然我以前写的也挺好,但以前在公司里做测试真的很枯燥,你得想各种边界情况和分支逻辑。
虽然我以前写的也挺好,但以前在公司里做测试真的很枯燥,你得想各种边界情况和分支逻辑。
特别烦。
特别烦。
除了像KENT BACK这种我非常尊重的专家,他上过我节目,到现在还坚持测试驱动开发TDD。
除了像KENT BACK这种我非常尊重的专家,他上过我节目,到现在还坚持测试驱动开发TDD。
他跟我说,他不介意我不写测试,但如果代码质量烂,那是你自己的锅。
他跟我说,他不介意我不写测试,但如果代码质量烂,那是你自己的锅。
说实话,我认识的开发者里,包括我自己,没几个喜欢写测试的。
说实话,我认识的开发者里,包括我自己,没几个喜欢写测试的。
哪怕装得再像,心里其实也不爱写。
哪怕装得再像,心里其实也不爱写。
对我来说,写文档和写测试从来都不是一种创意表达。
对我来说,写文档和写测试从来都不是一种创意表达。
但现在这事儿变得特别爽。
但现在这事儿变得特别爽。
就拿我最近的项目来说,文档写得极好,但我一个字都没亲自动手。
就拿我最近的项目来说,文档写得极好,但我一个字都没亲自动手。
我不写测试,也不写文档,我只负责给模型解释各种权衡。
我不写测试,也不写文档,我只负责给模型解释各种权衡。
告诉他我们为什么这么做,然后我跟他说帮我写个入门章节,要对新手友好。
告诉他我们为什么这么做,然后我跟他说帮我写个入门章节,要对新手友好。
最后再加点技术细节,结果写出来的东西特别棒。
最后再加点技术细节,结果写出来的东西特别棒。
我以前的项目从没过这么好的文档,现在每设计一个功能,这都成了流程的一部分,包括测试也是。
我以前的项目从没过这么好的文档,现在每设计一个功能,这都成了流程的一部分,包括测试也是。
我会想这东西做好了怎么测呢?
我会想这东西做好了怎么测呢?
可以这样那样测。
可以这样那样测。
那如果我们换种写法,是不是更容易测了?
那如果我们换种写法,是不是更容易测了?
这已经成了我的思维习惯。
这已经成了我的思维习惯。
我总是在想怎么闭环,怎么让模型能自我验证。
我总是在想怎么闭环,怎么让模型能自我验证。
这反而逼着我去优化架构。
这反而逼着我去优化架构。
但你觉得为什么还有那么多资深开发者在抵触AI?
但你觉得为什么还有那么多资深开发者在抵触AI?
觉得AI没那么大能耐。
觉得AI没那么大能耐。
就在一周前,我看到一篇博客,作者是我非常尊重的一位大佬,我从他那学过很多。
就在一周前,我看到一篇博客,作者是我非常尊重的一位大佬,我从他那学过很多。
但那篇博文通篇都在喷现在的模型不行。
但那篇博文通篇都在喷现在的模型不行。
他测了五六个模型,里边甚至还有一些莫名其妙的模型,比如OPENAI那个1200亿参数的开源版。
他测了五六个模型,里边甚至还有一些莫名其妙的模型,比如OPENAI那个1200亿参数的开源版。
然后结论是这些模型写不出好代码。
然后结论是这些模型写不出好代码。
据我了解,他大概就是写了个PROMPT提示词扔进CLOUD的网页版,点个发送,然后把输出的代码拿来跑,结果编译失败了,他就觉得很失望。
据我了解,他大概就是写了个PROMPT提示词扔进CLOUD的网页版,点个发送,然后把输出的代码拿来跑,结果编译失败了,他就觉得很失望。
但我想说,这当然行不通啊。
但我想说,这当然行不通啊。
难道我写代码就能一次性写出没BUG的这些模型?
难道我写代码就能一次性写出没BUG的这些模型?
就像是人类集体智慧的投影,他们的工作方式其实跟人很像。
就像是人类集体智慧的投影,他们的工作方式其实跟人很像。
他们第一次肯定会犯错,所以你才需要建立反馈闭环。
他们第一次肯定会犯错,所以你才需要建立反馈闭环。
而且你不能只发一个PROMPT就完了,你得跟他对话。
而且你不能只发一个PROMPT就完了,你得跟他对话。
他抱怨模型用了旧版本的API,那是他没指定版本啊。
他抱怨模型用了旧版本的API,那是他没指定版本啊。
模型只能默认猜一个模型是在海量数据上训练出来的。
模型只能默认猜一个模型是在海量数据上训练出来的。
旧数据肯定比这两年的新数据多。
旧数据肯定比这两年的新数据多。
你越了解这些小怪兽是怎么思考的,你的PROMPT就写得越好。
你越了解这些小怪兽是怎么思考的,你的PROMPT就写得越好。
那位大佬可能就玩了一天,然后就断定这技术不行。
那位大佬可能就玩了一天,然后就断定这技术不行。
但想真正发挥威力,你得投入更多时间。
但想真正发挥威力,你得投入更多时间。
这就像你会弹吉他,我把你按在钢琴前,你试了两下说这玩意儿真难听,我还是回去弹吉他吧。
这就像你会弹吉他,我把你按在钢琴前,你试了两下说这玩意儿真难听,我还是回去弹吉他吧。
不行,这是一种全新的构建方式,一种全新的思维。
不行,这是一种全新的构建方式,一种全新的思维。
你都不知道我有多少次凌晨三点对着clock尖叫,因为他干了件蠢事。
你都不知道我有多少次凌晨三点对着clock尖叫,因为他干了件蠢事。
但我慢慢开始理解他们为什么要这么干,其实他们完全是在执行我的指令。
但我慢慢开始理解他们为什么要这么干,其实他们完全是在执行我的指令。
有时候你得直接问他,比如最近做CLOUD这个项目。
有时候你得直接问他,比如最近做CLOUD这个项目。
我感觉自己就像个人形合并按钮,因为社区太活跃了,我整天都在审PR,根本没时间自己写代码。
我感觉自己就像个人形合并按钮,因为社区太活跃了,我整天都在审PR,根本没时间自己写代码。
刚开始他经常胡乱TIP捡选代码,然后就把PR关了。
刚开始他经常胡乱TIP捡选代码,然后就把PR关了。
看得我火大,我就问他:‘你为什么要这么干?
看得我火大,我就问他:‘你为什么要这么干?
’他说:‘当你说了某某话时,我的理解是某某意思。
’他说:‘当你说了某某话时,我的理解是某某意思。
’我才恍然大悟,我慢慢学会了机器的语言,调整了我的提示方式。
’我才恍然大悟,我慢慢学会了机器的语言,调整了我的提示方式。
现在它能完全按我的想法来了,这跟其他技能一样,都是需要磨练的。
现在它能完全按我的想法来了,这跟其他技能一样,都是需要磨练的。
萨门威森也说过类似的观点。
萨门威森也说过类似的观点。
我觉得一旦开始用AI,就会意识到自己虽然还行,但其实能做得更好。
我觉得一旦开始用AI,就会意识到自己虽然还行,但其实能做得更好。
咱们来做个假设,你现在做的CALL还没怎么变现,虽然用户很多,火得一塌糊涂,但它不像你之前的PS、PDF、K那样是个撑起整个公司的核心业务。
咱们来做个假设,你现在做的CALL还没怎么变现,虽然用户很多,火得一塌糊涂,但它不像你之前的PS、PDF、K那样是个撑起整个公司的核心业务。
如果今天PS、PDFK突然没了,让你用现在的AGENT重新做一个,会有什么不同?
如果今天PS、PDFK突然没了,让你用现在的AGENT重新做一个,会有什么不同?
你会给他们多少信任?
你会给他们多少信任?
哪些工作会外包给他们?
哪些工作会外包给他们?
如果你要围绕这个产品组建团队,现在的团队构成会有什么变化?
如果你要围绕这个产品组建团队,现在的团队构成会有什么变化?
我觉得只要百分之三十的人手就能跑起这家公司。
我觉得只要百分之三十的人手就能跑起这家公司。
不过找这种级别的员工可能挺难的。
不过找这种级别的员工可能挺难的。
你需要的是那种非常资深的工程师,他们既要懂底层架构,又要擅长委派工作,知道哪些部分必须亲自动手,哪些部分可以交给AI去折腾。
你需要的是那种非常资深的工程师,他们既要懂底层架构,又要擅长委派工作,知道哪些部分必须亲自动手,哪些部分可以交给AI去折腾。
这种人才现在并不多,尤其在AI圈推特上,到处是那种叫得响但其实啥都不懂的人。
这种人才现在并不多,尤其在AI圈推特上,到处是那种叫得响但其实啥都不懂的人。
还有很多很蠢的概念,比如那个所谓的RACK方案。
还有很多很蠢的概念,比如那个所谓的RACK方案。
诶,那不过是大家为了绕过OPUS模型的限制搞出来的笨办法。
诶,那不过是大家为了绕过OPUS模型的限制搞出来的笨办法。
当你用上CODEX,除非是那种有一长串可以自动化的独立任务,否则你根本不需要搞那么复杂。
当你用上CODEX,除非是那种有一长串可以自动化的独立任务,否则你根本不需要搞那么复杂。
但软件开发通常不是那样的。
但软件开发通常不是那样的。
我看到很多人在搞那种极其复杂的编排层:一个AGENT自动开票,另一个AGENT去领票,然后AGENT之间还互相发邮件,搞得一团乱。
我看到很多人在搞那种极其复杂的编排层:一个AGENT自动开票,另一个AGENT去领票,然后AGENT之间还互相发邮件,搞得一团乱。
图啥呢?
图啥呢?
他们说这样设计,几个小时机器就能跑一整天,把东西做出来。
他们说这样设计,几个小时机器就能跑一整天,把东西做出来。
我完全不信这套,这不就是软件开发里的瀑布模型吗?
我完全不信这套,这不就是软件开发里的瀑布模型吗?
我们早就知道这行不通了,也许对某些人管用,但在我这儿肯定不行。
我们早就知道这行不通了,也许对某些人管用,但在我这儿肯定不行。
我得从一个想法开始,有时候我会故意给AGENT一个信息量不足的PROMPT,看他能碰撞出什么新点子。
我得从一个想法开始,有时候我会故意给AGENT一个信息量不足的PROMPT,看他能碰撞出什么新点子。
可能百分之八十的东西都是垃圾。
可能百分之八十的东西都是垃圾。
但总有那么一两点是,哎,我怎么没想到。
但总有那么一两点是,哎,我怎么没想到。
然后我在不断迭代打磨,我得亲自去点开看,去感受它。
然后我在不断迭代打磨,我得亲自去点开看,去感受它。
我觉得好软件是需要品味的。
我觉得好软件是需要品味的。
AI最缺的就是品味。
AI最缺的就是品味。
我得感受这个功能用起来怎么样。
我得感受这个功能用起来怎么样。
现在的妙处在于开发功能的成本太低了,不爽就扔掉或者重写。
现在的妙处在于开发功能的成本太低了,不爽就扔掉或者重写。
我的开发模式通常是一路向前的,很少需要回头重做。
我的开发模式通常是一路向前的,很少需要回头重做。
就像雕刻一样,你拿块石头这儿凿一点,那儿修一下,慢慢的大理石里就浮现出一尊雕像。
就像雕刻一样,你拿块石头这儿凿一点,那儿修一下,慢慢的大理石里就浮现出一尊雕像。
这就是我理解的构建。
这就是我理解的构建。
看来软件工程真的在变。
看来软件工程真的在变。
以前没AI的时候,前期的规划非常重要。
以前没AI的时候,前期的规划非常重要。
我记得在PS、PDFK那会儿,你坚持要求大家写详细的提案PROPOSAL,因为那时候开发的成本太高了。
我记得在PS、PDFK那会儿,你坚持要求大家写详细的提案PROPOSAL,因为那时候开发的成本太高了。
你觉得这种变化是因为写代码的成本降下来了吗?
你觉得这种变化是因为写代码的成本降下来了吗?
我觉得我还是会做规划,但是。
我觉得我还是会做规划,但是。
你现在还在写代码吗?
你现在还在写代码吗?
对吧?
对吧?
但我现在没花那么多心思了,因为现在看结果、调形状太容易了。
但我现在没花那么多心思了,因为现在看结果、调形状太容易了。
如果不合适,大不了换个思路重写,成本也低。
如果不合适,大不了换个思路重写,成本也低。
感觉现在写代码更像是在玩儿。
感觉现在写代码更像是在玩儿。
对,毕竟以前带新人或者实习生给个任务得做一两天,现在不是一两天的事儿,是几分钟的事儿。
对,毕竟以前带新人或者实习生给个任务得做一两天,现在不是一两天的事儿,是几分钟的事儿。
哪怕慢一点,也就十分二十分钟。
哪怕慢一点,也就十分二十分钟。
而且你不用干等着,可以并行处理,完全不觉得浪费。
而且你不用干等着,可以并行处理,完全不觉得浪费。
在开发CLAUDE的时候,我最开始设想是单个AGENT,后来变成了多个。
在开发CLAUDE的时候,我最开始设想是单个AGENT,后来变成了多个。
本来只打算接WHATSAPP,后来也接了多个平台。
本来只打算接WHATSAPP,后来也接了多个平台。
如果是我自己写改这些架构,简直是噩梦,得动全身的代码。
如果是我自己写改这些架构,简直是噩梦,得动全身的代码。
结果CODEX只用了三个小时就搞定了,我自己写起码得两周。
结果CODEX只用了三个小时就搞定了,我自己写起码得两周。
所以那种前期的详细规划虽然我本来也能做,但现在我知道随时能改,处理技术债变得容易多了。
所以那种前期的详细规划虽然我本来也能做,但现在我知道随时能改,处理技术债变得容易多了。
你的思路能随着项目开发不断进化,所以我不信那种写好文档就能自动生成一步到位的模式。
你的思路能随着项目开发不断进化,所以我不信那种写好文档就能自动生成一步到位的模式。
不写出来,你怎么知道自己到底想要什么?
不写出来,你怎么知道自己到底想要什么?
你在写的过程中学到的东西会反过来改变你的系统构思。
你在写的过程中学到的东西会反过来改变你的系统构思。
这对我来说是一个循环。
这对我来说是一个循环。
爬山不是直着上去的,你会绕路,偶尔还会走偏,但最终总能登顶。
爬山不是直着上去的,你会绕路,偶尔还会走偏,但最终总能登顶。
这就是我的感觉。
这就是我的感觉。
那你开发CLOUD BOAT有多久了?
那你开发CLOUD BOAT有多久了?
两个月还是三个月?
两个月还是三个月?
这么说吧,四五月的时候我就想做一个超个性的助手,不是那种只会发早上好、列任务清单的,而是真正懂我的。
这么说吧,四五月的时候我就想做一个超个性的助手,不是那种只会发早上好、列任务清单的,而是真正懂我的。
比如我回家后,他会问我刚才见朋友聊得怎么样,或者提醒我三周没联系THOMAS了。
比如我回家后,他会问我刚才见朋友聊得怎么样,或者提醒我三周没联系THOMAS了。
而他刚好在城里,因为他刷到了人家的INSTAGRAM,甚至能发现我每次见某个人之后心情都不好,问我为什么。
而他刚好在城里,因为他刷到了人家的INSTAGRAM,甚至能发现我每次见某个人之后心情都不好,问我为什么。
就是那种深度的个人连接,有点像电影。
就是那种深度的个人连接,有点像电影。
他哈现在的模型处理文本和找规律非常厉害,虽然只是没灵魂的矩阵运算,但感觉很不一样。
他哈现在的模型处理文本和找规律非常厉害,虽然只是没灵魂的矩阵运算,但感觉很不一样。
我甚至开过一家公司,叫AMANTO MACHINER,意思就是有爱机器。
我甚至开过一家公司,叫AMANTO MACHINER,意思就是有爱机器。
但夏天那会儿模型还没到位。
但夏天那会儿模型还没到位。
有些结果不太理想,但这反而让我兴奋。
有些结果不太理想,但这反而让我兴奋。
因为AI发展太快了,过阵子再看肯定就不一样。
因为AI发展太快了,过阵子再看肯定就不一样。
我觉得大公司都在搞个人助手,以后每个人都会有一个机器死党,懂你的一切,能帮你做事,还会主动出击。
我觉得大公司都在搞个人助手,以后每个人都会有一个机器死党,懂你的一切,能帮你做事,还会主动出击。
这得消耗大量TOKEN,但负担得起的人都会备一个。
这得消耗大量TOKEN,但负担得起的人都会备一个。
随着系统效率提高和芯片普及,这肯定会下沉到大众市场。
随着系统效率提高和芯片普及,这肯定会下沉到大众市场。
这是大势所趋。
这是大势所趋。
你看OPENAI已经开始搞一些生产力功能了,只是现在的算力还撑不起这种完整的特性。
你看OPENAI已经开始搞一些生产力功能了,只是现在的算力还撑不起这种完整的特性。
另外我希望这东西跑在自己的电脑上,数据归我自己,把邮件、日历甚至交友软件全给ANSWER PICK,还是挺吓人的。
另外我希望这东西跑在自己的电脑上,数据归我自己,把邮件、日历甚至交友软件全给ANSWER PICK,还是挺吓人的。
我有很多非技术圈的朋友,把AI当心理医生用,效果惊人。
我有很多非技术圈的朋友,把AI当心理医生用,效果惊人。
他很会倾听,能理解你的问题,不像GPT4O有时候会说些给沙拉里加薯条之类的蠢话。
他很会倾听,能理解你的问题,不像GPT4O有时候会说些给沙拉里加薯条之类的蠢话。
大多数时候他表现很好,我也试过,其实光是向他倾诉、自我反思的过程就已经很有帮助了。
大多数时候他表现很好,我也试过,其实光是向他倾诉、自我反思的过程就已经很有帮助了。
哪怕机器只是重复你的话,其实都有用。
哪怕机器只是重复你的话,其实都有用。
更何况他还能提出有见地的问题。
更何况他还能提出有见地的问题。
我之前做过不少好玩的东西,比如WEB TUNNEL。
我之前做过不少好玩的东西,比如WEB TUNNEL。
不过这个超个性助手的念头一直挥之不去。
不过这个超个性助手的念头一直挥之不去。
前几个月,我终于把它做出来了。
前几个月,我终于把它做出来了。
最开始叫 WHATSAPP RELAY,只是想通过 WHATSAPP 遥控我的电脑。
最开始叫 WHATSAPP RELAY,只是想通过 WHATSAPP 遥控我的电脑。
后来我去摩洛哥给朋友过生日,整天在外面就一直用 WHATSAPP 跟他聊天,结果彻底入坑了。
后来我去摩洛哥给朋友过生日,整天在外面就一直用 WHATSAPP 跟他聊天,结果彻底入坑了。
他能带我逛城市、讲笑话,还能帮我给朋友发信息。
他能带我逛城市、讲笑话,还能帮我给朋友发信息。
当时技术还挺简陋的,我发了个语音,我根本没给他写处理语音的功能。
当时技术还挺简陋的,我发了个语音,我根本没给他写处理语音的功能。
结果他回了我一条消息,我惊了,问他怎么做到的。
结果他回了我一条消息,我惊了,问他怎么做到的。
他说:‘哦,你发了个文件,我看后缀是OG,就用FFM PACK转了一下,然后在你电脑里找到了OPEN AIR的KEY,调了WHISPER的接口,转成文字读了。
他说:‘哦,你发了个文件,我看后缀是OG,就用FFM PACK转了一下,然后在你电脑里找到了OPEN AIR的KEY,调了WHISPER的接口,转成文字读了。
’我当时心想:‘天呐,这模型OPUS四点五也太机灵了,别人可能觉得得专门写个技能或系统。
’我当时心想:‘天呐,这模型OPUS四点五也太机灵了,别人可能觉得得专门写个技能或系统。
’他自己就给搞定了。
’他自己就给搞定了。
我慢慢就用上瘾了,我用它当闹钟。
我慢慢就用上瘾了,我用它当闹钟。
他跑在伦敦的MAC STUDIO上,通过SSH连到我摩洛哥的MACBOOK,因为他看我不回消息,就把音乐声音越开越大。
他跑在伦敦的MAC STUDIO上,通过SSH连到我摩洛哥的MACBOOK,因为他看我不回消息,就把音乐声音越开越大。
为了让他主动做事,我加了个心跳机制。
为了让他主动做事,我加了个心跳机制。
从安全角度看,这简直疯了。
从安全角度看,这简直疯了。
你给模型一个指令,说做点酷的事,给我个惊喜,然后每隔几分钟发给他,让他去过你的任务清单。
你给模型一个指令,说做点酷的事,给我个惊喜,然后每隔几分钟发给他,让他去过你的任务清单。
这大概是史上最贵的闹钟了,但真的很有趣啊。
这大概是史上最贵的闹钟了,但真的很有趣啊。
他发的信息也很有意思,因为他知道我得早起看我,不回他就在那推理。
他发的信息也很有意思,因为他知道我得早起看我,不回他就在那推理。
Peter 没反应,他必须起床,不能再睡了。
Peter 没反应,他必须起床,不能再睡了。
我给朋友们看,大家都觉得这玩意儿太神奇了,但我发到推特上反应却很平淡,可能大家还没理解这种新产品类别。
我给朋友们看,大家都觉得这玩意儿太神奇了,但我发到推特上反应却很平淡,可能大家还没理解这种新产品类别。
有点像你当年对iPhone的感觉,光看广告和电视没觉得怎么样,非得亲自用上才行。
有点像你当年对iPhone的感觉,光看广告和电视没觉得怎么样,非得亲自用上才行。
对我最近两个月一直在打磨它,名字也改了,因为Claude问我这名字是不是不太合适。
对我最近两个月一直在打磨它,名字也改了,因为Claude问我这名字是不是不太合适。
因为它功能变多了,我就改成了CLOUD BOT。
因为它功能变多了,我就改成了CLOUD BOT。
这算是个内部梗,因为我喜欢神秘博士DOCTOR WHO这个名字更好记,域名也好。
这算是个内部梗,因为我喜欢神秘博士DOCTOR WHO这个名字更好记,域名也好。
然后我开始完善我的工具军团,把所有东西都做成CLAY,包括GOOGLE搜索、床头灯、音乐等等。
然后我开始完善我的工具军团,把所有东西都做成CLAY,包括GOOGLE搜索、床头灯、音乐等等。
为什么要用CLI?
为什么要用CLI?
为什么不用MCP?
为什么不用MCP?
你觉得MCP怎么样?
你觉得MCP怎么样?
那是种权宜之计。
那是种权宜之计。
MAP唯一的贡献是让公司重新考虑开放API,但整个概念挺傻的。
MAP唯一的贡献是让公司重新考虑开放API,但整个概念挺傻的。
你得在绘画开始时预加载所有功能说明模型,还得发精准的JASON块。
你得在绘画开始时预加载所有功能说明模型,还得发精准的JASON块。
其实模型非常擅长用BASH。
其实模型非常擅长用BASH。
举个例子,如果是天气服务模型,想查某个城市,MCP可能会返回500个城市列表,模型没法过滤或者查个天气,它丢给你温度、风力、降水等50项数据。
举个例子,如果是天气服务模型,想查某个城市,MCP可能会返回500个城市列表,模型没法过滤或者查个天气,它丢给你温度、风力、降水等50项数据。
但我其实只想知道下不下雨,结果上下文里全是垃圾信息。
但我其实只想知道下不下雨,结果上下文里全是垃圾信息。
如果用T L I模型,可以直接用J Q之类的工具过滤出它真正需要的部分。
如果用T L I模型,可以直接用J Q之类的工具过滤出它真正需要的部分。
那这听起来像是MCP在上下文加载方面的局限。
那这听起来像是MCP在上下文加载方面的局限。
如果不用全塞进上下文,能有个发现机制或者按需选择,是不是就行了?
如果不用全塞进上下文,能有个发现机制或者按需选择,是不是就行了?
没错,现在大家都在搞这个。
没错,现在大家都在搞这个。
但还有一个问题,你没法把它们穿起来。
但还有一个问题,你没法把它们穿起来。
我没法简单地写个脚本,说帮我找气温超过25度的城市,然后过滤出特定信息,并把它打包成一条指令。
我没法简单地写个脚本,说帮我找气温超过25度的城市,然后过滤出特定信息,并把它打包成一条指令。
马KMP的调用都是独立的,没法像写脚本那样灵活。
马KMP的调用都是独立的,没法像写脚本那样灵活。
对,不过我觉得这只是时间问题。
对,不过我觉得这只是时间问题。
就像我们现在写个天气APP,就算没AI,我也知道该怎么搞:获取数据、找API、对比价格和优缺点,然后选一个,甚至把几个API串联起来。
就像我们现在写个天气APP,就算没AI,我也知道该怎么搞:获取数据、找API、对比价格和优缺点,然后选一个,甚至把几个API串联起来。
这事儿在AI出现之前我们就解决过了,现在只是需要点时间。
这事儿在AI出现之前我们就解决过了,现在只是需要点时间。
谁知道以后会是什么形式呢?
谁知道以后会是什么形式呢?
我做了一个叫MAC PORTER的小工具,是用TYPE SCRIPT写的,能把MCP转成CLAY。
我做了一个叫MAC PORTER的小工具,是用TYPE SCRIPT写的,能把MCP转成CLAY。
所以其实可以直接打包号。
所以其实可以直接打包号。
所以你是说现在的CLI效率更高?
所以你是说现在的CLI效率更高?
对,在CLOUD BODY我还没加原生MAP支持,但通过MAC PORTER你可以用任何MCP,你甚至可以用手机发指令,比如让VASEL MAP去干活,它会自动联网找到并加载。
对,在CLOUD BODY我还没加原生MAP支持,但通过MAC PORTER你可以用任何MCP,你甚至可以用手机发指令,比如让VASEL MAP去干活,它会自动联网找到并加载。
以前用MCP还得重启CLOUD CODE,体验太差了。
以前用MCP还得重启CLOUD CODE,体验太差了。
所以我悄悄搞了一大堆自动化,工程量挺大的。
所以我悄悄搞了一大堆自动化,工程量挺大的。
前几天提议还发了个视频,说我这人简直疯了,因为功能清单已经长得离谱了。
前几天提议还发了个视频,说我这人简直疯了,因为功能清单已经长得离谱了。
我一直在折腾,想让他干更多活儿。
我一直在折腾,想让他干更多活儿。
一月一号那天我突发奇想,干了件特别疯狂的事:我建了个DISCORD的频道。
一月一号那天我突发奇想,干了件特别疯狂的事:我建了个DISCORD的频道。
把我的AGENT放了进去,有人贡献了DISCORD的支持的代码。
把我的AGENT放了进去,有人贡献了DISCORD的支持的代码。
我虽然犹豫过,但还是合并了。
我虽然犹豫过,但还是合并了。
结果就是我把一个对我电脑有完整读写权限的AGENT扔进了公共DISCORD的频道。
结果就是我把一个对我电脑有完整读写权限的AGENT扔进了公共DISCORD的频道。
这能出什么岔子呢?
这能出什么岔子呢?
是啊,太疯狂了!
是啊,太疯狂了!
大家进频道后看到我展示这东西的威力,比如查看摄像头、搞全屋智能,甚至帮我打碟。
大家进频道后看到我展示这东西的威力,比如查看摄像头、搞全屋智能,甚至帮我打碟。
我在厨房时跟他说:看一下我屏幕,它就能操作。
我在厨房时跟他说:看一下我屏幕,它就能操作。
因为它有完整权限,能点开终端帮我打字。
因为它有完整权限,能点开终端帮我打字。
它能看见屏幕,告诉我代码写了什么。
它能看见屏幕,告诉我代码写了什么。
我正在优化这一块,想改成流式传输,用文本形式会更好。
我正在优化这一块,想改成流式传输,用文本形式会更好。
但现在已经能跑通了。
但现在已经能跑通了。
它会盯着我的屏幕,如果我干了什么蠢事,它还会吐槽两句。
它会盯着我的屏幕,如果我干了什么蠢事,它还会吐槽两句。
每个试过几分钟的人都上瘾了,这项目爆火得太快了。
每个试过几分钟的人都上瘾了,这项目爆火得太快了。
一周内 GET UP STARS 就从一百涨到了三千三百多。
一周内 GET UP STARS 就从一百涨到了三千三百多。
我已经合并了500个PR了,感觉自己就像个人形合并按钮。
我已经合并了500个PR了,感觉自己就像个人形合并按钮。
这几天我忙得晕头转向。
这几天我忙得晕头转向。
这东西最美妙的地方在于技术本身仿佛消失了,你就像在跟一个无所不知的朋友聊天,他能看你的邮件、日历、文件,能建网站、抓数据,还能给朋友或商家打电话。
这东西最美妙的地方在于技术本身仿佛消失了,你就像在跟一个无所不知的朋友聊天,他能看你的邮件、日历、文件,能建网站、抓数据,还能给朋友或商家打电话。
我正准备合并拨打电话的功能。
我正准备合并拨打电话的功能。
它能直接给店里打电话帮你定位,你根本不用考虑计算或者上下文这些事儿。
它能直接给店里打电话帮你定位,你根本不用考虑计算或者上下文这些事儿。
它都有记忆系统,虽然还不完美,但已经很神奇了。
它都有记忆系统,虽然还不完美,但已经很神奇了。
比如我发张活动照片给CLOUD,它不仅能告诉我评价,还能查我日历有没有冲突,甚至看朋友有没有聊过这个。
比如我发张活动照片给CLOUD,它不仅能告诉我评价,还能查我日历有没有冲突,甚至看朋友有没有聊过这个。
它掌握的上下文太多了,给出的反馈比现在那些关在小盒子里的工具强得多。
它掌握的上下文太多了,给出的反馈比现在那些关在小盒子里的工具强得多。
听起来你做出了苹果一直想让Siri实现却没做成的东西。
听起来你做出了苹果一直想让Siri实现却没做成的东西。
说实话,我感觉自己给Anthropic做了一个最强的营销工具。
说实话,我感觉自己给Anthropic做了一个最强的营销工具。
不知道有多少人因为Cloud Bot订阅了那个200美元的套餐。
不知道有多少人因为Cloud Bot订阅了那个200美元的套餐。
这东西非常费TOKEN,倒不是因为它效率低,而是大家太爱用了,停不下来。
这东西非常费TOKEN,倒不是因为它效率低,而是大家太爱用了,停不下来。
因为技术细节被隐藏得很好,用户看不见它在后台启动了多少个SABEJEN,或是做了多少复杂操作。
因为技术细节被隐藏得很好,用户看不见它在后台启动了多少个SABEJEN,或是做了多少复杂操作。
他们只会觉得用起来很丝滑,其实背后有很多工程上的苦活,把复杂性藏起来,让它看起来像魔法一样,这才是最难的部分。
他们只会觉得用起来很丝滑,其实背后有很多工程上的苦活,把复杂性藏起来,让它看起来像魔法一样,这才是最难的部分。
就是这很有意思,我能感觉到你在架构上花了很多心思。
就是这很有意思,我能感觉到你在架构上花了很多心思。
你做了几个月,现在火了。
你做了几个月,现在火了。
你脑子里有CLOUD BOT的完整结构图吗?
你脑子里有CLOUD BOT的完整结构图吗?
比如哪块需要改,哪块需要重构来提升效率?
比如哪块需要改,哪块需要重构来提升效率?
你会考虑内存占用。
你会考虑内存占用。
TOKEN消耗这些事儿吗?
TOKEN消耗这些事儿吗?
关于TOKEN消耗更多是看怎么写PROMPT。
关于TOKEN消耗更多是看怎么写PROMPT。
至于内存,说白了就是TYPE SCRIPT在那儿跑。
至于内存,说白了就是TYPE SCRIPT在那儿跑。
我把LAM生成的文本存到本地或者发到WHAT'S UP。
我把LAM生成的文本存到本地或者发到WHAT'S UP。
现在我们支持TEAMS。
现在我们支持TEAMS。
SLACK、DISCORD、SIGNAL、MESSAGE、WHATSAPP,还有两个新平台快上线了。
SLACK、DISCORD、SIGNAL、MESSAGE、WHATSAPP,还有两个新平台快上线了。
现在的规模挺大的,但本质上就是把文本转成各种格式发给不同的供应商或AGENT。
现在的规模挺大的,但本质上就是把文本转成各种格式发给不同的供应商或AGENT。
里面有很多像接水管一样的琐碎工作,倒也没什么特别难的技术挑战。
里面有很多像接水管一样的琐碎工作,倒也没什么特别难的技术挑战。
但这些琐碎的事情堆起来也不容易。
但这些琐碎的事情堆起来也不容易。
软件开发就是这样,在AI出现之前也没什么特别高深的关键,还是得去学语言,去理解它。
软件开发就是这样,在AI出现之前也没什么特别高深的关键,还是得去学语言,去理解它。
难点在于如何让它感觉像魔法。
难点在于如何让它感觉像魔法。
我花了很多精力优化安装流程,现在只要一行命令,它会自动检查你有没有装HOMEBREW和NO的自动装安片包,你只需要一直按回车就行,在WHAT'SAPP上输入号码就能跑起来。
我花了很多精力优化安装流程,现在只要一行命令,它会自动检查你有没有装HOMEBREW和NO的自动装安片包,你只需要一直按回车就行,在WHAT'SAPP上输入号码就能跑起来。
我还做了一个命令行界面,当你唤醒它时,我写了一个引导文件,让模型建立自己的身份和灵魂,融入用户的价值观。
我还做了一个命令行界面,当你唤醒它时,我写了一个引导文件,让模型建立自己的身份和灵魂,融入用户的价值观。
模型会自我介绍,问你是谁。
模型会自我介绍,问你是谁。
我看别人用过魔法,就是从那一刻开始的。
我看别人用过魔法,就是从那一刻开始的。
用户不再觉得自己是在跟GPT4.
用户不再觉得自己是在跟GPT4.
2聊天儿,而是在跟一个朋友沟通。
2聊天儿,而是在跟一个朋友沟通。
我把它设定得很有趣,他会经历这个引导阶段,然后删掉引导文件,生成你的用户信息文档、灵魂文档和身份文档,包括他的名字、专属表情包,甚至你们之间的内部梗。
我把它设定得很有趣,他会经历这个引导阶段,然后删掉引导文件,生成你的用户信息文档、灵魂文档和身份文档,包括他的名字、专属表情包,甚至你们之间的内部梗。
这些文档会随着互动不断进化。
这些文档会随着互动不断进化。
它会直接在WHAT'S UP上给你发消息,这种丝滑的体验才是最难做的。
它会直接在WHAT'S UP上给你发消息,这种丝滑的体验才是最难做的。
而且你不需要手动改配置,AGENT会自己改,你也不用手动更新,你直接问它更新一下,它就会自己下载新版本并重启,告诉你它有了什么新功能。
而且你不需要手动改配置,AGENT会自己改,你也不用手动更新,你直接问它更新一下,它就会自己下载新版本并重启,告诉你它有了什么新功能。
让技术退居幕后,这就是魔法所在。
让技术退居幕后,这就是魔法所在。
这感觉和你以前做PS、PDF、KIT很像,都是把PDF那些复杂的底层逻辑给藏起来了,用户只要点点旋转操作一下就行。
这感觉和你以前做PS、PDF、KIT很像,都是把PDF那些复杂的底层逻辑给藏起来了,用户只要点点旋转操作一下就行。
对,当年在API层面就是这么做的。
对,当年在API层面就是这么做的。
这事儿挺奇妙的,让我想起刚看的一集《黑镜》叫《游戏测试》。
这事儿挺奇妙的,让我想起刚看的一集《黑镜》叫《游戏测试》。
里面有个数字小生物,虽然结局挺暗黑的,但那也是个游戏。
里面有个数字小生物,虽然结局挺暗黑的,但那也是个游戏。
咱们之前聊过,你现在不怎么玩游戏了,但我觉得你做的这个就很像个游戏,只是它和现实世界相连,兜了一圈又回到了软件工程。
咱们之前聊过,你现在不怎么玩游戏了,但我觉得你做的这个就很像个游戏,只是它和现实世界相连,兜了一圈又回到了软件工程。
这很有意思,你做出了一个真正的产品,现在还得不停合并PR,因为大家都在用它。
这很有意思,你做出了一个真正的产品,现在还得不停合并PR,因为大家都在用它。
回想一下,像PS、PDFK那样的公司规模挺大的。
回想一下,像PS、PDFK那样的公司规模挺大的。
有几十甚至上百个开发人员在做生产软件。
有几十甚至上百个开发人员在做生产软件。
结合你现在做CLOUD以及使用这些工具的经验,你觉得那些大公司的软件工程会发生什么变化?
结合你现在做CLOUD以及使用这些工具的经验,你觉得那些大公司的软件工程会发生什么变化?
因为我发现对于像你这样的个人开发者来说,AI简直是天作之合,让你的生产力大幅提升,而且一切尽在掌握。
因为我发现对于像你这样的个人开发者来说,AI简直是天作之合,让你的生产力大幅提升,而且一切尽在掌握。
但在那些有大量既有代码的大公司里,节奏还是挺慢的。
但在那些有大量既有代码的大公司里,节奏还是挺慢的。
虽然大家也会用AI做这做那,但感觉这两个世界之间存在巨大的鸿沟。
虽然大家也会用AI做这做那,但感觉这两个世界之间存在巨大的鸿沟。
作为前CEO,你觉得这种差距会怎么演变?
作为前CEO,你觉得这种差距会怎么演变?
还是说这只是个时间问题?
还是说这只是个时间问题?
毕竟新技术总是先被爱好者们玩起来。
毕竟新技术总是先被爱好者们玩起来。
我觉得大公司想要高效落地AI会特别难,因为这需要彻底重构公司的运作方式。
我觉得大公司想要高效落地AI会特别难,因为这需要彻底重构公司的运作方式。
你看像在Google这样的地方,你要么当工程师,要么当经理。
你看像在Google这样的地方,你要么当工程师,要么当经理。
如果你还想定义UI长什么样,对不起,没这个职位,因为你要么写代码,要么做设计。
如果你还想定义UI长什么样,对不起,没这个职位,因为你要么写代码,要么做设计。
但在这个新世界里,我们需要的是有产品愿景、什么都能干的人。
但在这个新世界里,我们需要的是有产品愿景、什么都能干的人。
公司不再需要那么多人了,但留下来的必须是那种自主性极强、能力极高的人。
公司不再需要那么多人了,但留下来的必须是那种自主性极强、能力极高的人。
其实你可以把公司裁剪到只剩百分之三十的规模,这听起来挺吓人的。
其实你可以把公司裁剪到只剩百分之三十的规模,这听起来挺吓人的。
从经济角度看,处理不好可能会演变成一场灾难。
从经济角度看,处理不好可能会演变成一场灾难。
很多人可能很难在这个新世界里找到位置,所以现在的公司没法成功运用AI。
很多人可能很难在这个新世界里找到位置,所以现在的公司没法成功运用AI。
关于 Bayt 播客
Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。