找回密码
 立即注册
查看: 454|回复: 2

Ai8051U第五集 小伙伴们都睡着了吧

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2025-04-29 11:41:00
已绑定手机

11

主题

16

回帖

183

积分

注册会员

积分
183
发表于 2025-1-7 17:39:03 | 显示全部楼层 |阅读模式
  想起学习计算机语言的时候,我都一个接触的Pascal语言,现在都忘了具体写法,用现在的看法,Pascal语言有点像伪语言,据说是1968年开始的,1970发布,后来查询资料发现 C语言竟然也是1970年发布。
今天冲总给大家普及了以下基本语法,感觉讲了很多,由于时间的限制,实际上关于C语言的设计思想没有讲,只讲了基本的变量类型和基本符号类型用法。关键是这里面好多内容都和我上大学的时候讲的一样,上来就一顿输出,对于没有了解过C语言的朋友,只能抓紧用本记啊。
  那么有的同学会问,学习一门语言到底怎么学?那我就经验之谈了。
首先,我们要了解我们学的是什么语言,什么语言学习的难度、知识储备、应用场景、特性都不一样,不然为什么会出汇编、C、C++、VB、C#、Java、JavaScript、ActionScript、Go、Python、SQL、Rust等等,以下我罗列几个:
1.机器语言:0、1两种组合,人和机器最早的交流,那时候老师们都是拿着打孔纸,基本上早先人都用不上,因为机器太少,属于短缺资源,这类语言可以学习,但是主要应用于计算,例如算个炮弹轨迹、破解个密码,造个原子弹啊等等,所以没有迫不得已没人会使用它。
2.汇编语言:属于底层语言,也是迄今为止你能听到的最早的语言(但实际上也不算爷爷),目前这种语言仍然在使用,主要解决调试、驱动、要求极高的算法等等,这种语言虽然比0、1强,但是也比较难用,因为它都是在操作寄存器,你用它就是各种倒弄,把数据从这弄到那,又弄到那等等,忙的不亦乐乎,连最基本的字符串用的费劲,跟别谈什么文字处理了,总之,汇编不难,非常简单,难在沟通还是太费劲。
3.C语言,属于中级语言,他是专门解决“汇编语言”的弊端的,它的设计初衷就是书写上让人类能看懂,例如3+2=?这样的操作,用C语言仅仅是printf(3+2);就可以了,但是要用汇编那就得

mov ax, 3
mov bx, 2
add ax, bx //结果为5
存储在AX中//关键是写完这些,还没往屏幕上输出呢


C语言的出现使得人类编程得到飞速的发展,开始用汇编语言编写了C语言编译器、后来用C语言重新编写了自己编译器,同时用自己的编译器编写了自己的所有扩展功能,自己创造自己,从那时起C语言肩负着革命性的进步,相比汇编语言C语言属于结构化语言,既可以把数据结构化管理(因为语言最终都是处理数据),这种进步在当时已经非常了得了!!!,由此unix,linux,window都是由C语言开发的,但是也仅仅是结构化,所以人们从汇编脱离出来,计算机由原来处理国家关键问题,转而处理民用问题,因此编写逻辑的需求日益增大,所以C语言开始不够用了。

4.C++ 属于高级语言,起到承上启下的作用,由于C语言是结构化语言,因此工程师们有发明了C++语言,又称C plus,看名字就比C强,但是C++是完全兼容C的,你也可以人为是基于C,增加了面向对象的逻辑写法。你可能面试的时候会被问道:“抽象、封装、集成、多态”这样的问题,这些都是从C++开始的,就拿单纯的“抽象”,好多C语言工程师都玩不明白呢,为什么呢?因为C语言注重实现功能,写法更贴近硬件,而C++注重思想(面向对象的思想),换句话说C++更符合人类表达的业务需求,但是为什么符合人们的思想结果更难学呢?这就归功于“多态”的出现,即思想太多了,都乱套了,再加上C++本身就是C的扩展,C的老毛病(指针溢出、内存溢出)也都整一起了,写的老复杂了,问题老多了,所以C语言虽然好,但是不好驾驭。C++什么都能干,例如现在的音视频处理、图形计算、编译器、QT、嵌入式等等,都用C++,因为他继承了C的优势,同时还有抽象封装的思想,但是就是因为能力大,所以不好控制,你想想你们公司的能人,是不是脾气也不好。


5.Java,属于高级语言,话说用C++的同事头发都掉光了,后来用Java的头发都长回来了,Java语言和C++一样都是面向对象语言,但是没有C++强大,速度也没有C++快,但是人们就说它厉害,你说为啥?!我们中国易经曾说过,物极必反,C++太强了,强到什么都可以做,而Java呢只会C++的一部分,即处理数据、面向对象其它的一改不会,如果太复杂了,还得用JNI(与C配合)来救场,但是你说怪不怪,今天大型互联网公司都有Java的踪影,除了不能被替代的,Java都把C++的许多事替代了。这也说明了能当上领导的,觉得不是最强者,都是半斤八两,那如果遇到解决不了的问题呢? 那找强人救场呗。


6.GO语言,这个语言我得好好说说,话说今天Java地位都这么厉害了,结果还被GO敲了竹杠,真是江上自有人才出,前浪拍在沙滩上啊!先写到这吧

先感谢 冲总的课程,真的很用心讲,下面的图大家可以背背,我是从课程里截取的,以后总能用到。

截图202501071524372250.jpg

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-04-30 08:40:57
已绑定手机

15

主题

630

回帖

730

积分

高级会员

积分
730
发表于 2025-1-7 18:20:12 来自手机 | 显示全部楼层
还没下班呢,能睡?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:49
  • 最近打卡:2025-04-29 11:41:00
已绑定手机

11

主题

16

回帖

183

积分

注册会员

积分
183
发表于 2025-1-7 20:11:41 | 显示全部楼层

继续讲Go

说到Go语言那也是2006-01-02 15:04:05诞生,与2009正式上线发布,我觉得这真的很不错,你可以认为他就是加强C,而不是C++,也不是Java,咱们书接上文,Java都说了是个非常好的语言,但是说实话,Java虽然简单,但是写起来总有一种感觉,就是“Java把你当成没懂事的孩子,对你百般照顾,又是百般约束。”,又像是“一个温柔体贴的女孩,对你事事关心,小心翼翼,纠缠不已”,Java的编写生涯就像是过家家,刚开始很好,逐渐的研发了这种生活,最后还刷不掉...,没错不只是Java凡是后期能构建大型项目的语言都有这个毛病,只是用Java的太多了,这门语言的特色让你潜意识不舒服。而和我一样的亢奋程序员甚多,只是没办法,但是偏偏有人不适应,而且还不是一般人,他们厌倦了当前的语言,重新开发了一种新语言GO。我是用GO语言得有10年了,中途还用工重新写了JavaScript ES3的解析引擎,还用其开发好几个大型项目,朋友你知道吗,Kubernetes和Docker都是用GO开发的,Google的云服务、集群服务都是GO在默默支持,你能想象一个在Java风靡全球的世界里,GO还敲了Java竹杠,这世界太疯狂,都咋了,目前GO已经在编程语言排行榜排名前五了,难以置信,但是也在情理之中。
用了10多年的GO,和Java相比,GO就是那种“你需要她,她就来,你希望他离开,她就从容离开,即使你睡了她,他也不会让你负责。有种说不的感觉,GO就是一个高冷的少妇,又是一个人情的少女,她懂你,会让你很爽,但又不会犯错,无法形容!”,


为什么会是这种感觉,因为这是我们程序员的初中,语言不是我们主体,思想才是主体,当我们把手放到键盘的那一刻,就是将思想立即兑现,而不是弄什么配置、导入什么包、又是编译、又是梳理什么流程...,没错他们做到了。

让我熟悉下这几位天才打工人都是谁:
由请第一位:
Rob Pike(罗勃·派克)
截图202501072027337279.jpg
  • Go 语言项目总负责人
  • Unix 的团队成员
  • UTF-8 编码创始人
  • 参与了[color=var(--vt-c-brand)]贝尔实验室和[color=var(--vt-c-brand)]Inferno操作系统的 Plan 9 的创建,以及[color=var(--vt-c-brand)]Limbo 编程语言
  • 1980年奥运会射箭的银牌得主
  • 业余天文学家

截图202501072029206128.jpg
Ken Thompson(肯·汤普逊)

  • Unix 之父(他和 C 语言之父丹尼斯·里奇一起开发了 Unix 操作系统)
  • C 语言创始人(C 语言之父和他,在他开发的 B 语言基础上开发了 C 语言)
  • 1983 年获图灵奖
  • UTF-8 编码创始人


Robert Griesemer(罗伯特·格瑞史莫)

截图202501072029565459.jpg
Google V8 JavaScript 引擎、Chubby 和 Java HotSpot JVM 的主要贡献者。


我们来看看 Rob Pike 他2023年演讲的一段文字,我给他翻译中文了(截取)
首先,对于编程语言来说,什么是好什么是坏,很大程度上是主观而非客观的,很多人对Go或任何其他语言,乃至一些非常细节的特性发表了很多争议。

还有很多关于诸如换行符放在哪里,nil的工作原理,使用大写字母进行导出,垃圾收集,错误处理等方面的讨论。虽然可以讨论的方面很多,但几乎都已说过了。

但我要谈论的不仅仅是语言本身,因为这门语言并不是这个项目的全部。我们的目标并不是创建一种新的编程语言,而是创建一种更好的编写软件方式。无论是什么语言,我们每个人可能都会认为我们使用的语言有一些问题,但问题根源并非来自这些语言的特性,而是因为使用这些语言创建软件的过程。

新语言的创建为探索其他思想提供了一条新路径,但这只是促成因素,而不是最终目的。如果不是因为当初我在工作中构建二进制文件需要45分钟之长,Go就不会诞生,但这45分钟并不是因为编译器慢(实际上编译器并不慢),也不是因为编写代码所使用的语言很糟糕(实际上语言本身也不差),慢的原因来自其他因素。

而这些因素正是我们想要解决的问题:构建现代服务器软件的复杂性,控制依赖性,大型编程团队的人员不断变动,如何易于维护、高效测试、有效利用多核CPU和网络等等。

简而言之,Go不仅仅是一种编程语言。当然,Go也确实是一种编程语言,这是它的定义,但它的目的是提供一种更好的方法来开发高质量的软件,至少优于我们14年前的环境。

而这仍然是今天的目标:Go是一个旨在降低构建生产软件的难度并提高效率的项目。
文章的最后,我有些感慨,三位天才依旧是程序员,不是工作不好,而是梦想太大!大到改变世界。这也是我看好stcai的工作人员们,希望你们推出更好,更便宜的好芯片!!!




回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-6 11:11 , Processed in 0.113039 second(s), 63 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表