换言之,每种范式都引导人们带着某种的倾向去分析问题、解决问题

冒号续道:“范式译自英文的paradigm,也有译作典范、范型、范例的。所谓编程范式(programming paradigm),指的是计算机编程的基本风格或典范模式。借用哲学的术语,如果说每个编程者都在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。”

  • 编程范式是计算机编程中的基本风格和典范模式,是编程者在其所创造的虚拟世界中自觉不自觉采用的世界观和方法论。每种范式都引导人们带着其特有的倾向和思路去分析和解决问题。OOP就是一种编程范式。
  • Object-Oriented多译作“面向对象”,不如“对象导向”贴切。
  • 如果把一门编程语言比作兵器,它的语法、工具和技巧等是招法,它采用的编程范式则是心法。
  • 抽象的编程范式需要通过具体的编程语言来体现。范式的世界观体现在语言的核心概念之中,范式的方法论体现在语言的表达机制中。一种语言的语法和风格与其所支持的编程范式密切相关。

借用哲学的术语,如果说每个编程者都在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。

https://www.cnblogs.com/xyz98/archive/2009/03/17/1414324.html

1.4初识范式——程序王国中的世界观与方法论

言者所以在意,得意而忘言                                                ——《庄子·外物》

提问

  • 什么是编程范式?
  • 编程范式与编程语言的关系是什么?

讲解   

问号第一个从小说里走出来,问道:“刚才谈到了低级语言和中级语言,现在该谈高级语言了吧?”

冒号微叹:“高级语言大概有近千种,流行的也不下几十种,有时候选择过多反而无所适从啊。”

逗号不以为然:“最流行的不就那么几个:Java、C++、C#还有VB吗?”

不意此言遭到冒号连珠炮似的反问:“可你知道它们为什么会流行吗?是不是学会这几样就是一个合格的程序员了?它们会不会变得不那么流行,甚至被其他语言取代?如果不会,为什么?如果会,又怎么办?”

逗号赧然语塞。

冒号口气放缓:“掌握一门语言的语法、工具和技巧固然重要,但那只相当于学会一门兵器的招法,更重要的当然是心法。招法重形,心法重意。得形而忘意,无异舍本逐末;得意而忘形,方能游刃有余。下面要谈的就是一种心法:编程范式。”

问号不解:“编程范式?听上去很学究,那是什么东东?”

冒号续道:“范式译自英文的paradigm,也有译作典范、范型、范例的。所谓编程范式(programming paradigm),指的是计算机编程的基本风格或典范模式。借用哲学的术语,如果说每个编程者都在创造虚拟世界,那么编程范式就是他们置身其中自觉不自觉采用的世界观和方法论。”

叹号吸口气:“好抽象哦!”

句号心中一动:“您是说我们都是虚拟世界的创造者,都在创造自己的黑客帝国?”

大家不禁莞尔。

冒号动情地说:“难道不是吗?只不过帝国有大小之分、优劣之别罢了。当你编程之时,便进入到自己创造的世界之中。这是你的世界,只有注入你的想象力、创造力和激情,它才有勃勃生机。你编写的岂止是代码,分明还有乐曲;你敲击的岂止是键盘,分明还有琴键;你运行的岂止是程序,分明还有世界。当优美的旋律奏起,整个世界都随之翩然起舞,一种莫可名状的满足是否会充溢你的全身?”

大家都被冒号诗化的语言感染了,没想到编程也可以如此感性。

良久,引号试探地问:“面向对象编程就是一种编程范式吧?”

冒号点头:“不错,它是时下最流行的一种编程范式。顺便说一句,‘面向对象’ 译自Object-Oriented,但‘面向’二字令人费解。据说有本书叫‘面向对象方法’,比别的计算机书都畅销,知道为什么吗?不少同学把它当成恋爱指南买走了。 ”

全班笑倒。

冒号认真地说:“将Object-Oriented译成‘对象导向’[1],虽然稍嫌拗口,但更贴切。并非刻意要咬文嚼字,这关系到对编程范式的理解。我们知道,编程是为了解决问题,而解决问题可以有多种视角和思路,其中普适且行之有效的模式被归结为范式。由于着眼点和思维方式的不同,相应的范式自然各有侧重和倾向,因此一些范式常用 ‘oriented’来描述。换言之,每种范式都引导人们带着某种的倾向去分析问题、解决问题,这不就是‘导向’吗?而‘面向’ 的宾语往往是预先确定的目标,如面向世界、面向未来、面向用户、面向问题等等。此外,‘面向’强调静态结果,而‘导向’强调动态趋势,显然后者更生动,也更符合编程的特质[2]。”

句号一语惊人:“找对象是‘对象导向’的,去约会是‘面向对象’的。”

全班再倒。

句号得意地解释:“按梦中情人的标准去找对象,具体目标未定但选择倾向已定,这就是一种导向,而且是对象导向。找到之后再约会,不就面向对象了吗?”

众人称绝。

“我们是来谈编程范式的,不是来谈对象的。” 冒号一脸的道貌岸然,“编程范式是抽象的,必须通过具体的编程语言来体现。它代表的世界观往往体现在语言的核心概念中,代表的方法论往往体现在语言的表达机制中。一种范式可以在不同的语言中实现,一种语言也可以同时支持多种范式。任何语言在设计时都会倾向某些范式、同时回避某些范式,由此形成了不同的语法特征和语言风格。”

插语

[1] 港澳台地区将其译为“物件导向”。即使单从字面上翻译,oriented是“以...为方向的;以...为目的的;导向的;定向的”的意思,也比译为“面向”更合适。

[2] 作为类比,经济学中的“market-oriented”译为“市场导向(或取向)的”的远多于译为“面向市场的”。

总结

  • 编程范式是计算机编程中的基本风格和典范模式,是编程者在其所创造的虚拟世界中自觉不自觉采用的世界观和方法论。每种范式都引导人们带着其特有的倾向和思路去分析和解决问题。OOP就是一种编程范式。
  • Object-Oriented多译作“面向对象”,不如“对象导向”贴切。
  • 如果把一门编程语言比作兵器,它的语法、工具和技巧等是招法,它采用的编程范式则是心法。
  • 抽象的编程范式需要通过具体的编程语言来体现。范式的世界观体现在语言的核心概念之中,范式的方法论体现在语言的表达机制中。一种语言的语法和风格与其所支持的编程范式密切相关。

转载于:https://www.cnblogs.com/feng9exe/p/10186315.html

编程思想-编程范式-编程思想是一组世界观和方法论-(初识范式——程序王国中的世界观与方法论)...相关推荐

  1. python编程基础(一):编程思想

    编程核心思想:以前我java老师曾告诉我们编程思想:初级选手应该从内而外.从小到大,先从实现一个简单的小功能开始,一点一点往里加,最后让功能变复杂(简单->复杂:可以先假定最理想.最简单的数据, ...

  2. C++的编程思想和进阶编程

    文章目录 C++的编程思想和进阶编程 软件设计模式 泛型编程的思想 STL 六大组件 容器 仿函数 算法 迭代器 适配器 空间配置器(allocator) 总结 C++多线程 C++的编程思想和进阶编 ...

  3. 如何建立编程思想和提高编程思想

    一.首先,什么是编程思想? 编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为. 如果理解这话的意思呢?打个比方,中华文明千百年在民众心中形成了一个"统一天下"的思想 ...

  4. python基于c语言开发_C高级编程:基于模块化设计思想的C语言开发 PDF 超清版

    给大家带来的一篇关于C语言相关的电子书资源,介绍了关于C高级编程.模块化.设计思想.C语言开发方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小80 MB,吉星编写,目前豆瓣.亚马逊.当当 ...

  5. JAVA编程思想.姊妹篇.JAVA编程讲义.第1章 Java开发入门

    1.1 Java概述 1.1.1 Java的由来与发展 Java是一种高级计算机语言,它是由Sun公司(2009年4月20日被Oracle公司收购,2010年完成合并)于1995年5月推出的一种用来编 ...

  6. 计算机领域的范式,编程领域的范式转移

    范式转移(Paradigm shift),这个名词最早出现于美国科学哲学家托马斯·库恩的代表作之一<科学革命的结构>.库恩认为范式是指特定的科学共同体从事某一类科学活动所必须遵循的公认的模 ...

  7. java函数式编程_说说函数式编程的那些事

    今天这篇文章我们主要来聊聊函数式编程的思想. 函数式编程有用吗? 什么是函数式编程? 函数式编程的优点. 总所周知 JavaScript 是一种拥有很多共享状态的动态语言,慢慢的,代码就会积累足够的复 ...

  8. 第11章 假如没有编程 《丰富多彩的编程世界》

    第11章 假如没有编程 <丰富多彩的编程世界> 丰富多彩的编程世界 作者 陈光剑 第1章 名可名非常名 第2章 语言的构成 第3章 有趣的编程 第4章 编程语言大观 第5章 编程语言的组成 ...

  9. python函数式编程模式_函数式编程指引

    概述¶ 本章介绍函数式编程的基本概念.如您仅想学习 Python 语言的特性,可跳过本章直接查看 迭代器. 编程语言支持通过以下几种方式来解构具体问题: 大多数的编程语言都是 过程式 的,所谓程序就是 ...

  10. python 图形化socket编程_Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

最新文章

  1. AD域中NTP服务器的配置
  2. 02-CSS基础与进阶-day7_2018-09-07-21-27-32
  3. 窗体间的跳转传值 1124
  4. Android p Sign Tool
  5. 大数据之-Hadoop3.x_Yarn_资源调度器介绍说明---大数据之hadoop3.x工作笔记0140
  6. Change Eclipse Tooltip's Color in Ubuntu
  7. 解决在IE6下使用display: inline-block;的不兼容性问题
  8. 步进电机正反转实验_电机正反转电路图讲解
  9. 软件工程专业知识体系
  10. DDR核心频率、工作频率,等效频率详解
  11. html 页面北京怎么设置,怎么给html设置背景色
  12. 小智机器人有初中课程吗_张小智
  13. 用python画爱心动图_python 动态绘制爱心的示例
  14. barcode4j生成条形码及打印条码开发介绍
  15. Python网络爬虫爬取智联招聘职位
  16. 大数据与机器学习-大数据预测
  17. jQuery动画练习
  18. 股票短线详解,股票短线的方法技巧?
  19. 我们诚心诚意的给射手座挑选了两款礼物,希望还来得及丨钛空智慧星球
  20. 哪些应届生能年薪50W?

热门文章

  1. 类与对象的基本语法+练习题
  2. 2016英语三级分数计算机,公共英语三级考试分数权重计算方法
  3. 【学习笔记】Stern-Brocot Tree
  4. 单目3D多人姿态估计网络(整合自上而下和自下而上网络)
  5. linux发送邮件mail详解
  6. HackingLab 脚本关
  7. ChucK学习笔记(零)——前言
  8. poj-1979改-红与黑
  9. matlab导弹追踪,导弹追踪代码
  10. git 一个分支完全覆盖另一个分支