感悟 编程思想:Rust,不同于面向过程思想与面向对象思想 (**)

2023-05-16

编程思想的演变

面向过程思想?

面向对象思想?

Rust语言,据说既有面向过程的特征,又有面向对象的特点?

不要过分地拘泥于在一个项目中采用面向过程思想与面向对象思想。实际上,可能同时采用了这两种思想,甚至还采用了新创造出来的编程思想。

一个项目的最佳表达,可能是所有编程思想的交互使用,甚至还需要采用全新创造出来的新的编程思想。只不过当太多的编程思想在混合使用时,会导致理解、或维护等等问题

有时,最佳表达,却并不是最合理、最可理解、最具效率等等的表达:需要取舍。

编程者需要又自己的思想,不要受限于在编程中所使用的、具体的计算机编程语言思想的束缚。打破桎梏,放飞自我,自由思想,才有可能不断地创造出新的编程思想。

当旧的 CPU的架构被打破时,各种各样的新编程思想,将会批量式涌现。

语言只是工具,是人类智慧指引和思想控制着工具的使用,而不是被工具所控制。

如何:取舍、折中、糅合、创新

放弃面向过程思想,过分使用面向对象的“类”思想,将导致程序臃肿;

Rust语言,不同于面向过程思想,也不同于面向对象思想;

Rust语言之后,一定还有新的编程思想的出现。。。。。

,才是永远的不变!

也许Rust语言更先进,但是否能够给自己带来某种好处,比如在金钱上的好处呢?这并不一定。

从个人的角度而言:不要忘记了自己的学习目的,如果因为某种计算机语言更加先进,于是为了学习而学习,这将会浪费大量的时间和精力,其结果可能毫无效益?人生百年?不到百年的居多吧?

不学习各种编程语言的具体用法,而是从宏观上学习和掌握各种编程语言的创造原理和思想,却又是会对自己有益。

鱼和熊掌,常常不可兼得,设置考究个人的智慧取舍。

===================================

编程语言的发展史:从FORTRAN到Rust

https://blog.csdn.net/a871923942/article/details/130566759

Rust到底值不值得学--Rust对比、特色和理念

https://www.cnblogs.com/andrewwang/p/11665836.html

有限的面向对象特征

面向对象是现代开发语言的基本能力。但Rust只提供了有限的面向对象支持。
我衷心的认为这是一件好事,我一直认为现在很多的程序员,往往为了面向对象而去面向对象开发。把原本很简单的事情做的过于复杂,使得代码量和运行开销高企不下,开发效率和执行效率完全失控。

Rust中没有直接提供“类”(class)的概念希望使用“对象”的程序员,可以直接在结构(struct)和枚举(enum)类型上附加函数方法,

 ---------------------------

Rust 的面向对象特性

面向对象编程(Object-Oriented Programming,OOP)是一种模式化编程方式。对象(Object)来源于 20 世纪 60 年代的 Simula 编程语言。这些对象影响了 Alan Kay 的编程架构中对象之间的消息传递。他在 1967 年创造了 面向对象编程 这个术语来描述这种架构。

关于 OOP 是什么有很多相互矛盾的定义;在一些定义下,Rust 是面向对象的;在其他定义下,Rust 不是。

在本章节中,我们会探索一些被普遍认为是面向对象的特性和这些特性是如何体现在 Rust 语言习惯中的。接着会展示如何在 Rust 中实现面向对象设计模式,并讨论这么做与利用 Rust 自身的一些优势实现的方案相比有什么取舍。

Rust是不是就相当于新时代的C语言?

https://www.zhihu.com/question/496992250

网红编程语言Rust到底是个什么鬼?
https://zhuanlan.zhihu.com/p/149297256

透过 Rust 探索系统的本原:编程语言 ******
https://zhuanlan.zhihu.com/p/365905673

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

感悟 编程思想:Rust,不同于面向过程思想与面向对象思想 (**) 的相关文章

随机推荐

  • FreeRTOS 常用的几个函数

    1 xff09 vTaskSuspend TaskHandle t Task ID 挂起指定任务 被挂起的任务绝不会得到CPU的使用权 xff0c 不管该任务具有什么优先 级 使用实例 static TaskHandle t LED Tas
  • FreeRTOS 任务设计注意事项

    1 FreeRTOS中程序运行的上下文包括 xff1a 中断服务函数普通任务空闲任务 1 xff09 中断服务函数是一种需要特别注意的上下文环境 xff0c 它运行在非任务的执行环境下 xff08 一般为芯片的一种特殊运行模式 xff08
  • 2022,程序员应该如何找工作

    最近找工作面了不少公司 xff0c 也有不少感悟和心得 xff0c 今天在这里分享给大家 1 想清楚自己为什么离职 每个人离职都有自己的理由 xff0c 这里列举了一些离职理由 钱给的不够干的不开心没有发展前途加班太严重回老家发展领导不好不
  • 我的四轴飞行器经验总结(一)

    从我看到了TED的演讲和不断冒出来大疆的无人机产品新闻开始 xff0c 我开始爱上了做四轴飞行器 xff0c 有的人可能只当做是一个电子产品制作或者DIY什么的 xff0c 可是我觉的我对四轴飞行器有着更加深的感情 xff0c 就连我的桌面
  • 环境变量设置后不生效

    不需要重启系统 xff0c 只需要重启VS
  • mac os上编译vlc视频库的踩坑之旅

    mac os上编译vlc视频库的踩坑之旅 mac os上编译vlc视频库的踩坑之旅 开始编译VLC视频库 一前期准备工作二参照官方编译文档安装软件三开始编译vlc四踩一些坑五总结 新项目开始目涉及媒体播放 xff0c 在android上多媒
  • 【JAVA】Eclipse保存时出现“Save could not be completed”问题

    问题 xff1a Save could not be completed 原因 xff1a eclipse的默认编译语言是 34 ISO 8859 1 34 xff0c 这个语言不支持中文 xff0c 所以如果编辑的程序含有中文而且编译语言
  •  MX-Linux:在distrowatch上的排名,为什么能够做到第一?

    个人观点 xff1a MX Linux 很好 MX Linux 桌面操作系统的成功 xff0c 主要有以下这几个因素 xff1a A 技术因素 xff1a 1 关键因素 xff1a MX snapshots工具 xff1b 2 次要因素 x
  • Qt 出现“程序异常结束”问题可能的解决思路

    第三方库的编译有问题 请注意 xff0c 出现此种问题绝不止这一个原因 xff0c 还包括其它很多原因 xff0c 这些原因可能千奇百怪 xff0c 需要你的开发经验去积累去发掘 在这里 xff0c 根据我自己的经验 xff0c 总结几种可
  • Qt 中如何在主窗口中添加子窗口

    方法 原理其实简单 和在窗口上动态 代码的形式 添加控件的方法一样 但需要设置一下子窗口的属性 在子窗口构造函数中添加代码 setWindowFlags Qt FramelessWindowHint 作用 隐藏子窗口的标题栏和边框 如果不隐
  • Qt5 自定义字体修改: 字体、大小以及颜色(部分要点已实测)

    Qt设置字体类型及添加字体文件 Qt 添加字体文件 1 设置支持的字体 QFont font font setFamily 34 填写字体名称 34 2 通过字体文件来设置字体 字体的名称可以是自带的 xff0c 也可以是外部的 xff0c
  • Qt QTableWidget 表格自适应 高度和宽度

    1 在MainWindow中设置 对被嵌入的子窗口进行设置 xff0c 去除子窗口的一些影响到嵌入的部件 pTable gt setWindowFlags Qt CustomizeWindowHint Qt FramelessWindowH
  • 互斥信号量和二值信号量的区别

    详解互斥信号量的概念和运行 https blog csdn net weichushun article details 122744773 互斥信号量的主要作用是对资源实现互斥访问 xff0c 使用二值信号量也可以实现互斥访问的功能 xf
  • Qt QTableWidget设置表头、菜单 背景色,以及不成功的原因

    Qt QTableWidget设置表头背景色不成功的原因 QTableWidget没有设置背景色的函数 xff0c 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet 34
  • Qt记住上次窗口的位置和状态

    include lt QCloseEvent gt include lt QShowEvent gt void MainWindow showEvent QShowEvent event restoreGeometry config gt
  • git-cola 使用方法

    目录 git cola 的用法实践记录 git cola 是 git的图形界面管理工具 因此 xff0c 在安装 git cola之前 xff0c 一般首先需要安装 git 官网地址 xff1a http git cola github i
  • Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

    在Qt中添加库文件的时候 xff0c Qt会自动在pro文件里生成三行配置 INCLUDEPATH 43 61 dir DEPENDPATH 43 61 dir LIBS 43 61 Ldir llibxxx includepath 和 l
  • STM32--MPU内存保护单元(一)

    先说明一下MPU xff0c MPU有很多含义 xff0c 我们常见的有 xff1a MPU xff1a Memory Protection Unit xff0c 内存保护单元 xff08 本文描述的内容 xff09 xff1b MPU x
  • Qt .pro 官方手册 Creating Project Files (*)

    Creating Project Files Qt 6 5 Creating Project Files qmake Manual Creating Project Files Qt 5 14 Qt 5 14 qmake Manual Cr
  • 感悟 编程思想:Rust,不同于面向过程思想与面向对象思想 (**)

    编程思想的演变 面向过程思想 xff1f 面向对象思想 xff1f Rust语言 xff0c 据说既有面向过程的特征 xff0c 又有面向对象的特点 xff1f 不要过分地拘泥于在一个项目中采用面向过程思想与面向对象思想 实际上 xff0c