duangsuse::Echo
954 subscribers
4.9K photos
154 videos
588 files
7.26K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): a19a0b
Download Telegram
duangsuse::Echo
#PLT 做了一个可爱的小动物logo,Gemini上居然用了10分钟呢 不过幸好有AI,不会被卡住。svg也配套了. Shiba inu 还是很可爱的
#PLT #design

纯粹设计中。前天搞了一个比较难崩的小插曲

row Wtf() set ItCloses :{- i new 0}
fun{}

req `ItPoint` set ItInStr
fun {
go(){ for(pts>>$p)...}
safe()> if{(1==1)? ON} Or NO
}

或
以 物件() 悟 It可闭 :{一 i 移 0}
是 { }

依 `It点` 悟 It可阅
是 {
走() { 全(pts >> $p) ... }
为完整()> 取 { (1==1)? ON; (并非 pts)? NO; (n(pts) 并非 1)? NO } Or NO
}


这个属于autofix转译的附带功能,我直接连CJK俄语俄德语都插进去了……

事实证明,它对设计师的意义大于实际使用意义,给了我很大声明式一致性方面的启发(和调整),而且让我意识到HOLP的范式在跨文化上可以保留语感到如此地步,C-like 绝对做不到。

emoji 这个比较出片,也有 emojicode.org 的先例在(我认为放在文档速览里是绝配)

#ai探讨 https://chat.librechat.ai/share/oHKZ5TldP-WsO14M1vRB3

https://www.hedy.org/ 这个新手101很有趣,但不如jupyter
Forwarded from 煎蛋无聊图
HeHeDa: jandan.net/t/6215286
OO: 177 XX: 19
红白机: 你房间倒是挺多大肥鱼周边的。
OO: 50, XX: 0
duangsuse::Echo
#game #vibe https://claude-opus-5-5.riba2534.cn/ Opus完成的鹈鹕小游戏,可以自定义,玩了下觉得掌握程度好的多了
#bash #signal #statement

org.gnome.Platform.Locale 总计 386 MB 的体积,实际传输却只有 22.6 kB;同时系统里 GNOME 49、50、51 三代平台运行时可以毫无怨言地并存。

不敢想象有内容寻址/下层依赖复用之前人们是怎么更新软件、确保安全的

/usr/lib 的噩梦让人感叹,如果对无结构性的通用优化一无所知,真的还不如AI写的代码。 用文件名来分发代码的时代还不如AUR和js世界

#security
刷到了 AF_ALG 内核态管道加密(爆一键root的那个aead,搞了半天比libssl还慢)被开除的视频,感叹到真的有许多人不知道自己的动机是什么,而且占很大体积,还不如AI让鹈鹕骑自行车

AI让鹈鹕骑自行车就是svg/canvas+js,主要烧在设计体验上,要新风格只用加个按钮,而且随叫随到。 AF_ALG 没有跑分也无封装,莫名其妙就进make和vmlinuz了,现在又全部清退,简直像为了炫耀内核态有 stb.h 而做了整个libuv(但是又只能给管道加密用!)。幸好AVX和WebAPIs没有跟着内核态崇拜跑偏,真是把屎山当经验了


Linux 的 inotify 也不支持对目录树进行原生递归监听。php本身的非应用服务器(热重载)能力很强也不用fs.push事件。

遗憾的是,哪怕变更监听不行,因果链溯源还是很容易的,比如编辑器pid(textDocument/didSave)和解压部署。 文件夹监听的应用是F5,所以一切都是文件夹选择、用户交互

【因果链溯源】是设计师的视角



仔细想想,比如安全领域,就像苹果的【高成本造假】或通用sudo模态框的策略(对比win的软弱UAC/过度ACL)高下立判,然而遇到RCE问题时,也会变成只能靠ASLR和滚动更新挽尊的屑。 

投入不一定有回报,要懂场景,想入非非工程量再大也是砸自己的脚。C的人均手搓集合类是谁跑分出来的?一出就是大事
duangsuse::Echo
这个属于autofix转译的附带功能,我直接连CJK俄语俄德语都插进去了……
虽然说这个“中文编程”是八国语言版本的,但弄的也挺细心,硬编码层没有漏缺

如果要PoC的话三天应该也能做到 hedy.org/ 那样?不过我的稿子还没冻结…… 但是可以分享一些近期亮点

定义关键字(row, 物件, я, 읏, ✨)和实现关键字(fun, 是, суть, 뜻, ⛳️)可以千变万化,关键不是在于好写,而是全兼容、精炼与可读(PEG层没有换皮能力会卡编程语言的上限)。

同时,在这张跨越数年的设计体系中,我也找到了现代化的点 ,比如 ✨ AnyType 💭 comment ⛳️ {set fn{asserts} %{copilot提示词} } 这样的折叠优先词法结构(1/10个想法而已)。就看未来执行时怎么样了

以及,是在中日跨文化的过程中,我才想到把forif 从 实(x 于 xs) 易{(x==0)? ..} 的认知惯性更新成 全(xs >> $x) 取{(x==0)? ..} ,也因此能与nd数组的赋值 - a [1 2 3]; a?.((i, x) { x+1 >> b.[i] }) 相配套

如果不是为了中日词法间省一个差异化,鬼能想到【取/exists】可以和全/forall 搭配着用,而且没有架子。这个结构更像是 SQL(from xs, select where then) 或 LINQ。

再比如 and or not 该怎么翻译。且或非? 那么 a!=b 怎么翻译? 这不是一个东一榔头西一棒子的文本替换问题。

(A isnt B)?, (isnt A.b)? .. 在中文里不是 “不是” “难道不”,而是 “并非”。“并且” 为了减少低回报率的差异化, ((1==1) and (A.b))? 可以写成 (1==1, A.b)? ,与乘法的 (1 a b), (1a+2b) 同类。

(>>) 的遍历与赋值,和数据流是互文的,而 (A isnt B)?. {} Or {} 与【认假为空,认空为错】的HOLP公理是高度一致的,这比 (A != B).As {} 或 if not A.b {} 像人话多了。 范式的革新,也需要自然的语感来polyfill



命名不只是命名而已,它可是CS两大难题之一。更现代的解释是【代码应该这样读】。

这种一致性让我意识到,如果投入的精力足够,编程语言可以很优雅,就像ES6的 class{}, export{} 与return {} 的同像性一样, %{} :{} 其实就是heredoc,ext-dict 字面而已,但在特定的语法位置,它成为内建的comptime,让你觉得以前的语言不这样设计(而是def层级语法不能用在表达式上)很奇怪

< Astra: 用词不够严谨

你的批评不能作数。 我解释一下,这确实是数据流语言,而且为只读和一致性优化

以 Pair(A,B) 悟 It可显示
是 { swap()>Pair(B,A) }

定义 Pair(A,B) 实现 可文本
实现体 { swap()>Pair(B,A) }

前者在翻译的基础上,有锚点可抓,后者看上去严谨,实际上把语感踩在脚下,另外 悟 在日韩里都是·号。 我不是在给小白课堂做机翻,这是有工程价值的设定基础

以、依、是、思, 这些在语音和长度上对齐,你的长度都没对齐。型/実/体/新/各/若 就更是败笔了,而且这里的 forif 模式是 全() 取 {奇数?.. 偶数?..} ,是when套了C-like的皮

而且,悟(set) 还有调用copliot, set swap{} %{doc} 的功能,依(req) 还有Squeak式面向断点编程的功能, 移(new)也是与 inc(arr, it); inc引({i: i+1}) 匹配的,至于Or也有配套。


== 数组的读写在真正意义上是“指针语法”

for(inc.[0:n(a)] >> $i) 的enumerate()实现,本身就可以在显式声明 new i 0; for() ,也就是 移 i 0; 全(.. >> $i){a.[i]} ,或者用 As { Loop() Or i==n(a) OK; "单行" >> a.[i]; inc({i: i+1}) } 中文写作: 移new i 0;.. 引inc({i()> u+1})

如果用有参IIFE trust_me([0], (i) { Loop(i+1) Or i==n(a) OK; "单行" >> a.[i] }) 则会更具结构性,而且绝无letrec的花架子。Loop()尾递归拿来bisect也非常自然

As { for(inc.[0:n(a)/2] >> $i) { a.[i] >> b.[i]; if { (a.[i]==0)? OK } } }

这个例子也比较有趣,因为HOLP是数据流的,不认同非async的Loop,所以流控break可以用IIFE return@As{}来做,实现不稀奇,但配合范式思想就不一样了 。 同时数组下标支持多维和slice,并且仅仅绑定 at_(*nd) 元方法(赋值时F.nextAT=v),也是必需品。 系统的区分了数组和KV,前者用 inc(a, last) 增后者用 kv("k", v) , inc(A,B) 包含头尾而 inc.[A:B] 是工程风格,a.[01] 是a.[0] ,考虑了常识和表格认知

让你觉得py只是缩窄了json集合类,而并未真正理解它们

不是说for/while 循环中的 break 和 continue 是停下的副作用,而是它们无法在计算/参数值依赖图的视角下表达,只能用FnHo信号的?.await和回调化。不然就是用伪递归和 CPU.trust_me() 必要时弹框等待(抢占式)。在一个App里,本没有【停下】这个概念,只有列表处理、FnHo之间的赋值与触发。

并不是只有UIUX里这样,而是这才是常态。没有线程,只有任务唤醒,写循环是需要trust_me的。


上面提到的跨文化、数据集、forif 在设计时都是下了成月成月的休息时间的死力气(甚至绕坑里了)

但到最后就发现非常非常容易,而且几乎每一个都和top10的编程语言不一样

我选了整个系统设计的20%来理解这门语言,非常期待最后会有多么自然呢? 🤗
❤1
duangsuse::Echo
命名不只是命名而已,它可是CS两大难题之一。更现代的解释是【代码应该这样读】。
#plt
最有趣的设计思考是: 我现在很希望通过献祭code的【写瓶颈】来“免费”提升可读性/整体把握的加分,但没找到方案。

代码是像人读时 (Markdown inline)、桌面运行时(F12) 那样编辑的,所以问题不在如何学BASIC/COBOL那样膨胀关键字的长度。 多语种利用的是autofix REPL,不是手写。

唯一的思路是从pyjs转译并展开 e.on(), a.filt() 这些常见接口到cyy的生态库,但扩展性和类型安全真很考验宏系统(forif里的.on也要展开)。把类型检查放进宏执行里可能是个完整的PoC,

毕竟任何的新语言都不可能跳过pyjs的无缝兼容而长久。我不明白今天做工具链不支持导入代码还有几个人用...

讽刺吧, AIGC测试最完整的,是最简单、最无歧义的pyjs,而不是高端的c++或rust 。有人用TS写MC,但Rust写就失败了


和gdb/gtkqt配合是个有趣的设想,但毕竟本身就转译pyjs,作为一个haxe那样的多平台实现一定会更有意思

我渴望的那种,简单的1换1(慢写换快读) 可能只在算法的世界里存在 😅😅😅

而code并不是一种 “数据结构”!如果你读的很轻松,它基本就容易被创造、二创。 所以,Haxe+gdb(F12) 外壳这个roadmap比纯粹的贪心法更可靠,如果能用于给框架迁移、跑分,大概就是它的适配生态位。
#ai探讨 https://chat.librechat.ai/share/DFXEu4iVmhZqDd6M-WJcn
duangsuse::Echo
关键不是在于好写,而是全兼容、精炼与可读(PEG层没有换皮能力会卡编程语言的上限)。
现在真觉得【骨相】太重要了, if, else, elif 这些皮换什么语言都有一种恶感 #design

- AB  if { (u.hp < 0)? A ; (health < 0)? B } Or "else panic"
[1 2 3]?.{ if { (u==1)? OK^1 }; w@ '{u}..' } # 2.. 3..

- two As { for([1 2 3] >> $x) if { (x==2)? OK(x) } }
- f_ (i) { Loop(i+1) Or i==3 OK; sleep_(1) }; f_(0)

- one ("1").if { "1" 1; "one" 1; =TAG= 2; =TWO= 2 } Or NaN


😁 这些关键词都不需要 for, while, do, break, continue, if, else, elif, switch, case, default

if和throw六个词只剩两个,while系只有Loop OK OK^ngoto,switch只需要会if,for和$变量解构共用一个for字


真的是脑子坏掉了才去写什么 public, self. , this.a=a, Ruby 也输给了end ,还有那些该死的、不运行的分号和int术语,不要给人类阵营的语感天分抹黑了好不好…… 你如果不把它翻译为中文(甚至八国语言),根本意识不到程序员活在一个楚门的世界里,

编程语言是驯兽师,不是助手。 它们觉得自己理解了冷门知识就有资格来教育创作者了(其实都是copycat)

如果你把一般的kt,java,py类、接口、函数流控像cyy这样的翻译,就会发现没那么简单,或者就弄成《易语言》那样半通不通(极有可能语法带坏API翻译,语感雪崩)。

从这个角度,HOLP列表处理也可以说超过了【慢写换快读】的牺牲逻辑,大人全都要

首先破功的就是【踩屎感】的 fun/val/void/int 这些毫无语意的提示词,if elif else 这一个赋值控制结构,就把cyy for if Loop-Or-OK 三个的学习成本占了 ,还不用说构造器赋值、构造器vs接口,和priv var :{-i 0 -j 1 -s "Hi"} 这些需要一项一项去堆的感觉。这边是按更Python+TOML的Lisp打底的, Int Str的位置可以直接写 0,"",[""] 的 row req implied,public void 不用写

就是方言照抄Clike,再高级的范式(eDSL,serde/RPC)也没有。一个 Named("Don").Duck(age=3) 的原型或elm的Visitor多态有吗?以至于一个Rust和Go(赎罪之作也依然有nil问题)都牛逼成那样,Clojure和CoffeeScript都比有编译器VM的语言牛逼。你又没有Lua那样干净谁管你抄大学老师的底层技术, 大学生态70%都过时的好不好

(自设新语法真进ECMA262了,让JS成了当代更新最不寒掺的运行时)

回顾赶工的js parseInt('08') === 0,为了一个不存在的八进制功能,闹出和yaml的no一样的问题

肯定会有【语言律师】有这样那样的借口,比如py是渐近有类型 self. 只是首参约定,没法和全局slot区分,我QNMD,Ruby也有同样的问题,人家就是一个大小写解决了,没有它就没有GitHub。

py自己也是一个下划线和缩进就解决了java的【踩屎感】public+分号。 实在解决不了,就用 @row def Pair(A,B): 闭包模仿dict原型都行啊。 真的就没天理了,所以,可读性自然是被真正的人造人吊打, #PLT 都是人机怎么玩


许多CS学生喜欢从C出发,却忽略了Dataflow。他们其实是可以从 import ast 开始(做个模板匹配器),而不是以性能或原理性为理由选择以libc为运行时。 编程是一个snippet与handover的组装、即时检查问题,而不是编译。70%的人终生不碰libc供应链的成果比碰的多许多, 身为PLT人连正交分解和元编程都不会,不是很反身份么?

如果你写转译器,自举还能够测试往返编译的完备性,而如果你输出IR,说明你可能连r2、ImHex、cffi.{lua,py}都没用过,与C交互是填pattern,不是填指针加法,而且自制语言抢不了C的饭碗,还去凑热闹。

cffi比编译器作者更理解全貌。怎么就想不明白这回事呢?

如果你在乎原理,就应该实验手动把C的调用链转为(void*)deref,给forif写成goto,再asm("")处理下指针和寄存数算术,或者去 godblot.org 熟悉 call rax 的秘密,或者用pyjs写这些应用,而不是抢前人的饭碗然后白瞎了自己的时间。

编译器有一大堆是在js里写个 (...lit)=>env=>{subst/ccode.push} 能打5折的,还有2折是代码和语言特性本身对优化器的心智模型不友好的垃圾,有效的学习不到精力的30%,要知道C本身=>闭包和async都没有,感染者早被偶然复杂性宠坏了。libc打包本身就是废物,自带一个手搓版make不会让编译器多活一个月。

如果你连【语法结构】有几个都没摸清楚就开始照猫画虎的决定AST的repr(),那就没精力去想CST和rustfmt那样的工具链了,而且语言本身也会只剩下“平台垄断/集成度”的价值。集成度确实很好,但这不是学习者该追求的。 一个优秀的编程语言会先考虑写什么【方便】,然后是语法表现力,哪怕是AHK这样的野路子缝合怪也总是先考虑语意的集合


与其学什么编译原理,还不如学二开、源码调试定位、PoC和pyjs移植进目标、元编程,可惜这是工程能力和MVP策略问题,没法算分。

能自举的语法+库设计有几个?但是它们也是垃圾。 Tk的作者是有真本事,后面的人多是在完成作业,但它们的失败性是很难预见的(就是“写时复制”,暴力impl,rework,没redefine)

图灵完全会把bf和qemu归成一种东西,而且会给ML99.h不及格,【自举】就不一样。它一下就确保了实现本身简洁,与标准库能跑js级小应用。

元编程就是这样的,两个字就把泾渭分清楚了,这才叫PLT的能力。
The Pragmatic Engineer
The Pulse: RoR creator sparks new “death of coding by hand” debate
#ai #web

gemini.google

我真是服了现在的软件工程了,一个编辑框输入法,经常出问题。这组件也没有比H5精心多少,到处是问题,甚至在触屏版会导致草稿丢失

多行粘贴,行号乱序,输入,经常卡字,粘贴html格式(它自己生成的!!),直接出bug;我看这功能就是一个黑底的textarea,复杂性飙到输入法都能卡掉!

AI厂自己的软件是什么测试质量,还好意思说前端下岗
duangsuse::Echo
#ai 喜报: https://chat.librechat.ai/ 支持 Steering Messages 了 喜欢发长文的人可以分段后直接批量发送了 ps. 没想到他们给 Send Queue 起了这样的名字。 按我看,这个功能ChatUI第一天就应该做,比什么 /prompt 角色扮演重要多了 花大量精力去卷各种浮夸的 Agent 工作流或 Prompt 广场,反而把最基础的“人机输入交互”当成了理所当然的单行道。 “挤牙膏”式等待。 比起 Gemini 好久还支持的 Edit,LC早就可以替换或…
#ai 😅😅😅

这个ChatUI输入框和时间线的功能,真的什么都没有,就真是纯文本,最多预处理下。 然后就能搞出如此之多的毛刺,之前拖选复制,往bash粘还能乱序! 真是让我低估了任天堂的优化了(它也没什么功能,但就是找不出问题,tg是功能很多、兼容绝杀,看体验找不出问题)

这下视觉:hov都有问题了,我都懒得看是不是平台或响应式问题, Gemini 可能会是谷歌质量最vibe的应用。 手机版只是把三个点绑定到longclick,安装包384MB

一个良好测试的前端交互模态,每加一个功能(Spark、研究、上传repo),都是对它的启发;而一个连输入法和复制粘贴都有问题的纯文本框,推出什么功能都会影响用户体验

这就像经典的“客服转人工”难题一样。令人感叹,编程真的人人喊打到只剩“编码”了吗? 为打磨投入精力这样困难

我真的不明白,一个做好的圆角按钮是怎么重新做坏的(在没有任何相关功能更新的情况下,尽管此前select#mode没加记忆),可能这就是viber的诅咒吧,拿AI的js吞吐量,做人类用的艺术。

AI可以直接把js当成显卡汇编用,人却拿它写人机界面
duangsuse::Echo
到处是问题,甚至在触屏版会导致草稿丢失
这还不是一个元素出问题,问题如此统一以至于我都以为瘪圆角这是什么新审美了

苹果耗费几年时间用微分几何在工业设计和操作系统里打磨正常的svg体验,这里在全站批量生产“几何塌陷”,我刚刚打这条还触发了输入法漏字…… 之前从来没有听说过文本框UI还能这样

😫 我槽点不是 on"compositionstart",而是在如此平庸的组件上(再次强调:只有纯文本+@补齐 ),能写出三四个莫名其妙的坑,简直有log4j RCE和fastjson“快速shell”那味道了,究其根本都是极其诡异的设计(比如日志里能写 ${}、子类多态不用标list),让人怀疑写出能跑代码的作者脑子是怎么长的??!

我猜以后RPA测试能修正这类问题,但有必要那样吗? 一个纯文本框和MD按钮而已,我的天……
Forwarded from duangsuse
https://t.me/hyi0618/15076 #life

前面会来一段“食谱:桑拿鸡肉/牛肉/..”

食用方法:大火小火云云

鸡肉3分钟、其他食材2分钟


这样也可以留足食客的注意力给宣导部分。但是如果没有加先导,就是程序员病了

这样的做法在海底捞菜单上很明显,比如【3秒豆皮卷】【5秒鱼片】,命名带动词一方面确保了出品质量(降低新手摩擦),也显得很内行(品牌溢价++),

所以说程序员思维有时是好的,前提是你分清楚哪些是正资产

我见过一半会写码的人把行数和难搞程度当正资产
duangsuse::Echo
#plt 最有趣的设计思考是: 我现在很希望通过献祭code的【写瓶颈】来“免费”提升可读性/整体把握的加分,但没找到方案。 代码是像人读时 (Markdown inline)、桌面运行时(F12) 那样编辑的,所以问题不在如何学BASIC/COBOL那样膨胀关键字的长度。 多语种利用的是autofix REPL,不是手写。 唯一的思路是从pyjs转译并展开 e.on(), a.filt() 这些常见接口到cyy的生态库,但扩展性和类型安全真很考验宏系统(forif里的.on也要展开)。把类型检…
#kt #design

用中文读代码,是一个【语法+视觉边界感】的设计问题,同时是一个【写比读难优化】的踩坑问题,而不只是词法和语序的替换。

这方面典型的负面案例,就是OOP和FP的始祖——Smalltalk、Lisp,可以拿 emojicode.org 的 say(🔤Hi!🔤) 来形容——对,读起来就是这种感觉。甚至你没有输入法。 许多 #PLT 人只知道词法语法,为了写个亲爱的parser用尽全身力气(写“虚拟机壳”),却不明白人眼人脑的【感知】。



语感差异在编程里,不是特别重要,尤其是不值得为了套皮而打乱语序。

比如 for x in 图表xs: 或 对xs里的x: ,我的选择是让所有套皮都基于数据流/管道感,for降级为函数,而不是制造分裂

类似的事情,其实决策并不是很容易。 😨

比如 OOP this 的写法(u参数),我近几年改了五版 (可能是黑历史了,但确实在全语言全文化killer诞生之前,都在纠结)

- 像Kotlin那样,给 class T{fun op} 和 extfun T.op; T.()->Res 分开的
- 去掉箭头类型,用 hex: [Int Str F.n1] 或 toHex: [Int Str F.u1] 区分函数vs方法的 (从typer的实现反向优化的语法设计)
- 在js里用 (1).[_ => toStr(16)] 希望在库层面实现改绑定到首参数_的,还希望把div(p())的DSL也绑上
- 认为3参可以用ABC指代,所以 F.u1 是 An 而 F.n1 是A的,那时还叫 F.n1 vs N1, F.An1 vs F.n1 ,还和vec2的N2(x,y)撞车……
- A,An反过来指代的。因为咱发现, f.map(x=>) 一旦x是对象就会多写"x." 索性it默认this。 这里有Groovy的一个坑

直到:咱发现 u=you, ur 的网络语言,以及,把list,map从各种玄学优化(addr,表,行..)改到统称为 are,am,isMounter(diff赋值) ,这段历史,才彻底结束。

现在的OOP就是纯粹的封装。任何叫u的参数都免前缀(BELT作用域-而非LEGB),全局用 imp.alert() 调,成了和Ruby一样的约定优于配置。

可以直接加 fun op(u: T) 当extfun,F.u1只是FFI提示,让 .let .run 的差异彻底成为历史,[1 2 3]?.(u=>u+1) 和are(*对象)没差别


——就只是this变成u,simple but lethal。 为了这一碟醋,就可以百搭一堆配套。就像现代安卓把安装页变成安装框那样,够脑残,但直接消灭一堆额外需求。let/run/apply/also/with,直接合并吞掉。

全局进 imp.,裸名不可能是全局;u 是有名字的参数,被内层遮蔽报错了,外层随时能改叫 x =>,或者干脆写 u.field——永远有逃生口; —— 但你不需要明白这些深奥逻辑,就能知道you,这是合理设计。BELT这个想法比UFCS还好

这个经历让我深刻的理解了《人月神话》的程序员与普通的A player,有什么思想的不同,并且让我专心为【人类可解释】探索边界。 🤗
duangsuse::Echo
这个经历让我深刻的理解了《人月神话》的程序员与普通的A player,有什么思想的不同,并且让我专心为【人类可解释】探索边界。 🤗
有了四五个,这样的设计经验后,我就开始重新审视自己对【大佬】的定义标准了

我发现,许多能解决问题的人,不明白自己在解决什么。 #statement

他们写代码,却摸不清代码被删除后的因果链。 这能跑,但没有长期意义,尤其是面对AIGC时。 如果一个this->u就能删掉5个版本的【编译器基建】,他们,又删过什么? —— 不要只问你今天又做了什么。

我敢于推倒所有代码重来,但不是为了Rust,是为了【编程本来的面目】。

其实这是个不容易的决定,尤其是在你自以为写的很好时 ——无论码力多少,承认这几天啥都没干,扔掉,都是反人性的。 把事情给初中生解释清楚, 意味着你好像没上过大学,没有更牛逼的知识了。

因此,我才开始唾弃【幕后的复杂性】——尽管,我依然不会解决许多许多的问题, 但我改刁了自己的taste。 并且我相信,类似以上的故事,正好是各种工程难题上的【本质问题】

无论如何,这儿有个事实 —— 开源世界,目前仍在60% Geek触及的应用领域上,没有领先。甚至与工业/top榜的软件差距山大。 都是我们认为理所当然的code和知识,但它们,确实不顶用。

【咏唱】没有让你获得【魔法】。知识不等于力量。 开源代码,确实在某些领域,是倒数的。不在top20里——它们的代码库和心路历程。

杀贼。破山中贼易,破心中贼难。


许多技术人。并不在乎【屏幕之外的技术】,像他们对安全(或许多组件/模块)的理解,从未把【用户的反应】和【自身的市场定位】考虑在内。他们不会横向对比,更不考察用户的【软件配套】,因为那是别人的App。 好像你在乎用户的苦难,就是不在乎代码那样。并非如此——编程不是数学,没有最终无人机交互的软件。

【运行时】正是因果链最好的取景地,而它却被照猫画虎的大佬无视。

所以说,如果你要开发老鼠药的话…… 最好别往API里写【撬开嘴巴放进去】!

我宁可加几段《老鼠为什么要喝老鼠药?》的梗图,因为,编程本来就不是【专业】。这才是计算机的前沿性与魅力。
❤2
duangsuse::Echo
我发现,许多能解决问题的人,不明白自己在解决什么。 #statement
当你【热爱的领域】里80%的人都在做【与之相悖】的事情,是什么感受? 📚

我认为,编程还不至于招人烦到只剩下【AI编码】的程度。Scratch、MC,甚至拼豆,人们都愿意停下来理解它们,唯独所谓的全栈(尤其是原生),编程领域的自己人都避之不及。JetBrains的IDE被讽刺为 “面对AI只剩下调试可用”,StackOvf 则“彻底无用”。

PLT 做的事情,理应是让编程成为Flash/Rust那样的媒介、共鸣和创作动力,而不是让AI,从50行乱码里生成500行 “形式化” 证明,由此让我们知道,【数学对用户免责】。

不,“泰坦尼克必将沉没” 不是数学断言,是社会的彻底失败。 理性告诉你钢铁会沉,可是真爱、“永不沉默的茉莉” 不会沉没。

数学可以撒谎,但 code smell 不会。


如果你要开发老鼠药的话——API里会有“撬开嘴巴放进去”吗? Pythonic的答案是,不会。 我们知道自己【想要】干什么,而且让科学界做到了。 C++,paper搜索引擎,做不到。 他们也拒稿过Google的PageRank。

编程无关计算机,就像天文无关望远镜。

很遗憾,我认识过90%的大佬,他们的README里,看不出写上万行的动机、选型、数据流。

正因如此编程才会沦为【编码】啊……

📚 大家都在以“丑”为荣,并把堆砌“丑”的能力,称之为“资深”和“硬核”。但 Alan Kay 的思想,不需要Apple来【形式化证明】,可绝大部分人,总是《没头脑或不高兴》。

我想,这大概就是陶哲轩听到《dfs证明四色定理》《GPT6证明N-S方程上限是有损模拟》时那样的心情。

数学界,不也说了几个世纪《数学优雅性》,最后让初中微积分被EPS-dt这个catch{}语句,绑定了初衷。


物理的km/h,支付宝的柱状图左移1位自减,是一点都不说啊。 ——catch{} 的 try{} 是怎么发生的?我们需要知道牛顿和莱布尼兹,才能理解微积分吗? 在池塘发明之前,人们扛着船走?

知识界 ——你们尊崇的到底是真理,还是老师?

时间地点人物,最重要的,是人物,还是前因后果? 难道同期没有别的工具诞生了吗? 你们,学到了牛顿的【语境】吗?

【秤】上被你们量化精确的【脑黄金】,你们自己,在乎吗? 牛顿不是为了物理学做物理,是为了展示上帝的优雅,是为了收集海滩上的“贝壳”。

你们只写那个 catch{},但try{}里的语意,是空的占位符。里面空无一【人】。

所以AIGC来了,你们【震惊跌坐】——原来人类做了这么多低质量的、不可“风格迁移”的重复工作。 到底是机器更人,还是人没有【更崇尚真理】?

不是【英雄迟暮】【生不逢时】,是他们从来没当过英雄。计算机领域的革命尚未发生。 Python本身之于AI,好比和制二字词汇之于汉语。 CV使用卷积核压榨GPU,而另一种核,是安装在人脑里的。OOP之父如此理解【革命】。

就像经上记着的—— 神差使者过来,人们却不能相信。因为他们太【人】了,没有【真理】的外貌。

法尚应舍,何况非法。
duangsuse::Echo
好吧:「20KB 签名器今天还能跑。uber-apk-signer 是 3MB 这件事没有变成 20KB 是错的?」
你会买百公里耗油100升,甚至1000升的汽车吗? 在软件行业,我们一直这么做。

这不是公开的秘密,因为对大部分人来说,它就像空气一样自然

现代汽车工作效率,可以达到当前引擎设计/物理原理的98%的水准,城市用刚刚好的材料来搭建,并且能在当地条件下,保持安全。

如果医疗设备或飞机失事,灾难会发生;可是开源,仅仅只是【爱好者】的产出——但他们又不想承认自己是MC/红石的脚本小子。

他们敏捷、TDD、OKR、GoF…… 他们懂所有的模式,却不在乎代码丑成什么样子。 一个【编程语言】的主页上,可能没有1行该语言的代码,没有1个值得import的社区库。

这是他们如何对待软件背后的 "token"。 我不敢想象PHP在注入越来越严重的年代,依然没有推出 ES6 (s, ...arg)=> "exec ret" 的安全内插

这是他们如何对待软件背后的 "token"。

计算机是科学吗?软件工程师像【工程师】那样严谨对待地心引力吗? 80% 的从业者,我看未必。 他们在往根基里加私货,而且【工作很好】。现在有 #vibe 了,所以 “一切更加的好起来”

这正是《软件幻灭》的原因