不知道是不是学太少导致的错觉:感觉 Web 开发比原生开发体验更好?

2023-09-04 23:26:21 +08:00
 pocarisweat

尝试过学习和使用 SwiftUI/UIKit/AppKit 开发一些苹果生态里的小 App ,虽然能使用的 API 比 Web 更广泛,但要考虑的东西也多了,而且即使是 SwiftUI 这种 MVVM 的框架,写起来感觉也不如 Web 一样简洁明快(即使不用 Vue/React 这类框架)。也在 Copilot 和 ChatGPT 的帮助下非常浅薄地体验了一下写 Android Demo ,感觉和 iOS 差不多。

工具链层面差距可能更大了。iOS 开发就一个说不上哪里不好但用着仿佛隔靴搔痒的 Xcode ,AppCode 都停止维护了。而前端因为体系是开放的,不管 VS Code 、WebStorm 还是 Emacs 之类的写起来都很顺畅。

之前还有过一个想法,就是像 TypeScript 这样的语言应该能编译到真正的 native 代码,这样就可以在此基础上用 FFI 绑定到各平台的原生 API ( Cocoa/WinRT/GTK...),再因为我们有 TSX ,所以能够实现用 Web 语言的方式写原生接口的应用的目的。不过这样……可能只是发明了又一个 React Native ?

6305 次点击
所在节点    随想
69 条回复
FreshOldMan
2023-09-05 11:06:20 +08:00
我从 native 开发,到前端开发,感受就是前端开发确实体验更好一点,可能和前端是开放的原因有关,首先 ts ,基本不用编译,所谓的编译只不过是转换一层而已,实时显示,开发工具多,包多,但是前端更偏向业务,稍微底层的东西要做好还是要 native 的
whyrookie
2023-09-05 11:12:30 +08:00
开发体验而言,前端确实会好很多
binfreeze
2023-09-05 11:17:18 +08:00
@codehz 其实你说的这些我也理解. 但我现在组织语言的能力太差了, 早期学习时候喜欢记笔记, 写心得. 后来渐渐为了效率, 就是想到哪里说哪里, 从折腾笔记工具过渡到只用 txt 文件一顿乱写.. 然后渐渐发现自己就不太会用长文字表达自己的一些想法了. 也是因为接触到的东西越来越多, 有点感觉时间不够用了. 我凭借记忆举几个你说各种指标冲突的例子吧. 我忘了是 Quake 还是 DOOM 的哪个版本了, 源代码被公开的一个. 里面有些功能的实现非常直白, 有一个计算机专业学生, 他觉得这个写的不好, 应该怎样优化, 就给 Carmack 他们发邮件. 结果对方说, 我们有很多的事情要做, 这个优化对于整个项目来说, 无关紧要. 后来我看 jonathan blow 回他母校做的演讲也提到了类似的事情, 比如不仅仅要关注程序的运行时间, 优化程序员自己的人生时间也同样重要. 我自己写代码的时候, 有些地方就会写的很直白, 傻瓜化, 追求未来的可读性而抛弃了一些优化. 你说的这些评价指标之间的取舍, 我能明白什么意思.
heroin80s
2023-09-05 11:38:58 +08:00
你的感觉是正确的。 应用层开发更关注问题域的逻辑,底层约束考虑较少(很多底层框架帮你解决了), 就更为自由。
不了解也不影响你开发,但在某个时刻,你感受到了,就需要往底层看下去。
操作系统,浏览器,IO ,网络,每一个都是天坑,这些更多的是计算机体系知识, 有个大概框架认知,遇到问题知道从哪方面去深入就可以了。 目前的发展程度,每一层都精通是不可能的。 需要有一个自己的精通层面,在这个基础上往上,往下都可以。
binfreeze
2023-09-05 11:41:32 +08:00
@codehz 我想起来一段话, 忘记是谁说的了. "你有一段代码, 一个功能, 你现在没有时间去优化它, 跟你没有能力去优化它, 这之间的区别很大." 我个人理解是, 我们写了一大堆代码, 这里面自己每一步都干了什么, 哪里损失了性能, 哪里损失了可读性, 哪里的结构不合理, 我们应该有一个认知. 而不是就算自己写了很慢的代码, 却以为它很快. 写了可读性很差的代码, 却觉得它很好, 结构不合理, 却觉得就应该这样. 在做出取舍的时候, 如果你明白自己在做什么, 你的取舍没问题. 可如果你压根意识不到问题的所在, 这个取舍的意义就不一样了.
binfreeze
2023-09-05 11:57:50 +08:00
@codehz 继续往下说. 当有一天, 我们遇到一个不得不解决的问题. 那种对很多问题有认知, 也能解决, 却选择没去做的人. 他可以消灭这个问题, 推进项目的进展. 而那种既没有认知, 也每次都选择节省时间的人, 他会被卡住.
可能有些人会说, 卡住以后, 再花时间就是了, 不会可以学嘛, 可以研究嘛.
但能力不是这样获得的不是吗? 他不是一天两天形成的. 这是一个长期的结果.
这两种程序员, 随着时间的推移, 他们之间的技术差距会越来越大. 他对于一个企业的价值也变得天壤之别.
binfreeze
2023-09-05 12:04:24 +08:00
@codehz 我记得之前在知乎上看到一个人说, "写代码不值钱. 解决那种别人解决了无数遍的问题, 也不值钱." 当然, 说这个话的人, 看起来好像是有点水平的. 其实他的水平, 跟这个话也没什么太多关系, 他就是提出了一个观点.
那我思考, 到底什么是值钱的? 什么样的能力是高价值的. 直到后来我看了 carmack 的那个演讲, 听他讲自己解决问题的时候, 才开始明白. "解决那种没人能解决的问题, 才是值钱的." 那个人所谓的值钱, 应该是指这个意思, 而不是能不能找到工作那么简单.
那另外一个问题就出来了, 如何获得这种能力呢? 我们到底应该怎样磨练自己, 才能成为那样的人.
binfreeze
2023-09-05 12:10:22 +08:00
@codehz 我看了下你之前的帖子. 你也接触了 TCC, QEMU 的源代码了, 肯定也知道它们的作者 Fabrice Bellard 是谁. 那问题来了, 为什么他能做到这些事情呢? 我们如何让自己也变得这么强呢. 如果一切都是上天注定的, 先天智商决定的, 那似乎就没有讨论的必要了. 但我觉得智商并不是全部因素, 这里面一定有一些因素, 是我们可以通过后天努力而获得的. 那些优秀的人之所以优秀, 是不是因为他们的每一个选择, 都把他引向了一个成就他的路线上呢.
binfreeze
2023-09-05 12:21:44 +08:00
@codehz Linus 说, "没有什么语言比 C 更好, 他在看 C 代码的时候就像看汇编一样." 那我们看 C++ 代码的时候, 是什么思考方式呢, 我们能看到汇编吗? 更进一步说, 能潜意识地 "看到" 汇编的意义有多大?
高德纳前两年接受 MIT 一个老师访谈的时候说过自己年轻时候跟图灵接触的一些趣闻, 他说图灵强迫自己用计算机的方式思考数字, 就大概强迫自己二进制那样思考吧.
这些前辈们, 他们也有很多疑惑啊, 也在探索一些东西. 也在试图去训练自己, 让自己获得一些特殊的能力, 不然图灵他干嘛那样做. 当然, 这也可能只是我的错误理解.
后翼弃兵 The Queen's Gambit 这个电视剧里面, 有展现那个主角思考国际象棋的方式, 或者顶级棋手的思维模式, 就是跟普通人不一样的. 有没有觉得这和 Linus 所说的看汇编有相似之处.
所以, 计算机科学, 编程, 这里面就是存在一些神秘的地方, 值得让人思考, 让人探索的. 保持好奇心去学习, 去找到各种知识之间对自己的影响, 可能比知识本身, 有着更高的一些价值. 或者高不高已经无所谓了, 能看到一些隐藏的"东西", 是更重要的.
StudentYanling
2023-09-05 12:55:25 +08:00
@binfreeze 老哥 4 楼提到的两个视频,可以给个链接吗?麻烦了🙇‍
mokevip
2023-09-05 13:32:45 +08:00
一共 50 楼 @binfreeze 老哥独自包揽 27 楼

我们理解你的意思了,很多人也做了总结和提炼了,不需要一直反复强调。。

硬核玩家理所当然可以得到所有人的喝彩
1002xin
2023-09-05 13:35:55 +08:00
你做的东西是给用户用的,还是给开发者看的
horizon
2023-09-05 13:43:27 +08:00
@mokevip #51
这位老哥应该是对自己现在做的事很自豪
binfreeze
2023-09-05 14:05:24 +08:00
我也觉得有点说的太多了。我只是把自己想法,想到哪里说哪里,也没考虑那么多对别人的影响。但论坛不是这么玩的。这个论坛为什么不能删账号呢。我想回到自己一个人的小世界,不与外界沟通。我这几年都这样过来的,我每次试图表达什么,感觉最后都很招人讨厌。请管理员把我的账户删了吧
TArysiyehua
2023-09-05 14:13:47 +08:00
我主业是 android 开发,也开了一两年 web ,个人感觉跟你完全相反,web 开发完全做不到 android 开发这么顺畅,体验不如原生开发好
DAPTX4869
2023-09-05 14:44:14 +08:00
@binfreeze #54 没必要删号吧; 虽说看不懂大佬说啥
jwautumn
2023-09-05 14:44:32 +08:00
?这个贴子谁是 OP ?
AsZr
2023-09-05 16:36:35 +08:00
@jwautumn #57 hhhhhhhhh
Canight
2023-09-05 16:51:53 +08:00
@binfreeze 我觉得论坛就是这么玩的,看看别人在干啥,他们的思考,挺有意思的,讨人厌这个事情是很正常的,你不能让所有人都喜欢你,但一般发声的都是讨厌你的人,可能造就了你的错觉
bigbigpeng3
2023-09-05 17:28:56 +08:00
理性讨论问题总是好事,尽量不要带情绪。我觉得这帖子很好,我也看到了更大,更清晰的世界。另外费曼学习法不就是让大家把自己学会的教给别人吗,才能记忆更持久。 @binfreeze 请多讨论,不要躲在一个人的世界。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/970912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX