原来库是对操作系统指令的封装

2020-04-10 08:35:34 +08:00
 qof3990
我是一名业余编程爱好者。虽然很多年前我就知道了标题这句话。但是最近我才进一步理解了它。这句话的意思是学技术要学最前沿的库框架和最底层的 api 。
学最前沿的东西是为了开发效率,以及方便沟通。为了人好。但学底层是为了程序运行效率,以及方便扩展功能。为了机器好。
多年以来,由于没有理解这个道理。在面对一些特殊的需要时,会用高层的库+复杂的组合,得到一个效率特差的代码。但如果能掌握底层。就可以重载类来增加功能。
原来重载是干这个用的!原来查看类的内容是干这个用的!多年疑惑恍然大悟!
而且以前由于误解,我以为越高层的指令越少。越底层的指令越多。所以学了高层的类,不想打开看底层的系统级的指令。
其实正好相反!!!不管什么高层都是底层那些指令组合出来的!显然底层才是精炼的,高层才是一遍又一遍组合出越来越复杂的类库框架!!!
可惜可惜,二十年光阴荏苒,虚掷蹉跎。如果我早明白这个道理,可以节省多少时间啊!无数次我打开类的内容,茫然四顾,匆匆离去。一次次将近在眼前的机会,轻轻丢落。如果我早明白了,也许我现在也是一名正真的程序员,而不是一名爱好者。
时光一去不再来,只留悔恨泪滂沱…
3788 次点击
所在节点    随想
25 条回复
nnnToTnnn
2020-04-10 17:42:01 +08:00
@qof3990 打个比喻把。 同样一直笔,有的人只能画出一些杂乱的线条,而有的人却可以画出来非常美丽的画。 和描述出非常详细的房屋设计图。

所谓的底层,无非就是笔和纸张而已。 是什么样的笔,什么样的纸,有没有直尺,圆规。这些都不重要。重要的是你想用编程来创造些什么? 其他无非只是工具,花时间熟悉而已。

学习,就是不断自己去探索的一个过程。

有人喜欢汇编,所以用汇编写了一个编辑器 RadASM 。
nnnToTnnn
2020-04-10 17:44:55 +08:00
```
可惜可惜,二十年光阴荏苒,虚掷蹉跎。如果我早明白这个道理,可以节省多少时间啊!无数次我打开类的内容,茫然四顾,匆匆离去。一次次将近在眼前的机会,轻轻丢落。如果我早明白了,也许我现在也是一名正真的程序员,而不是一名爱好者。
时光一去不再来,只留悔恨泪滂沱…
```

时间并不是借口,只要你想去做这个事情,那么你就一定会做成功,成为正真的程序员,之所以没有成为,而是你自己不想成为。 仅此而已。。 你不愿意去为了去成为程序员而去放弃一些东西。
qof3990
2020-04-10 18:22:00 +08:00
@nnnToTnnn 先生所言,振聋发聩。前有王江民 38 岁学编程,我现在能幡然醒悟,定为时不晚。
话说用汇编写汇编语言编辑器还真是有趣又硬核的行为啊。佩服~


@chitanda 原来还有这样的操作。
“ UNIX 所使用的技术是为每个系统调用在标准 C 库中设置一个具有同样名字的函数。

  从实现者的角度观察,系统调用和库函数之间有重大的区别;但从用户角度来看,其区别并不非常重要。系统调用和库函数都以 C 函数的形式出现,两者都为应用程序提供服务。但是,我们应当理解,必要时我们可以替换库函数,而通常却不能替换系统调用。

  应用程序可以调用系统调用或者库函数,而很多库函数则会调用系统调用。

  系统调用和库函数之间的另一个差别是:系统调用通常提供一种最小接口,而库函数通常提供比较复杂的功能。”
听起来似乎给系统做了个增强。程序员的知识又增加了。
no1xsyzy
2020-04-11 13:52:32 +08:00
@qof3990 #16 你可能被降权了…… 回复不在消息列表里。
你这么一说我才意识到这就是一切皆文件这一理念的基础…… 我之前理解还是差了点。
其实我都是各处只言片语拼装出来的 —— 只是我比较擅长拼装,一句话可以记到十年后可供拼装的另一句话出现。
qof3990
2020-04-11 16:37:23 +08:00
@no1xsyzy 降权了…可能,上一帖我没搞清就嘴臭了别人,帖子被移到水深火热了。可能管理员出手了吧。希望还有机会能解除惩罚。

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

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

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

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

© 2021 V2EX