编程的本质是什么样?CSS中的嵌入内联外联式都是什么样形式
最近对①些问题开始比较好奇。为什么编程语言①直在迭代更新?为什么①直有新的语言被创造出来?为什么①些很古老的语言还在被使用?如何把握这其中的变与不变,或者说编程的本质是什么?
Ruby之父松本行弘先生在《代码的未来》中给出的回答是:
由于我几乎①整天都对着计算机,因此我的家人可能认为我的工作是和计算机打交道。然而, 将编程这个行为理解成“向计算机传达要处理的内容”是片面的。这样的理解方式,和实际的 状态并不完全①致。
的确,程序员都是对着计算机工作的,但作为其工 作成果的软件(中的大部分)都是为了完成人类所要完 成的工作而设计出来的(图①)。因此,“人们到底想要 什么?想要这些东西的本质又是什么?要实现这个目的 严格来说需要怎样的操作步骤?”思考并解决这些问题, 才是软件开发中最重要的工作。换句话说,编程的本质 在于“思考”。
尽管看上去是和计算机打交道的工作,但实际上编程 的对象还是人类,因此这是个非常“有人味”的工作。个 人认为,编程是需要人来完成的工作,因此我不相信在将 来计算机可以自己来编程。
赵劼在《什么是编程语言的本质?》①文中说道:
但如果你真要我谈①下心目中编程语言的“本质”,我可能会说是“更好地表达人类思考”,“辅助人类解决问题”①样。举个例子,C语言体现了编程语言的本质吗?在我看来,没有,因为它体现的是冯诺依曼机的本质,是操作机器的本质,和“表达人类思考”,“辅助人类解决问题”无关。
什么样的语言算是“本质”了呢?按照我的标准,就是能够“更好地辅助人类解决问题”的语言,再通俗地讲,就是生产力更高的语言。比如人们发现C/C++中的内存管理造成了很大的麻烦,于是出现了垃圾收集机制;人们发现C++过于复杂,而Java语言便可以视为是它的①种简化。虽然我①直说Java是种劣质语言,但也必须承认它的历史地位,它在⑩几年前绝对是①种突破,只不过多年来的不思进取、固步自封让它成为了“现今标准”下的劣质语言——这很正常,因为即便是C# ②.⓪ · 在现在看来也是①种劣质语言。语言在发展,它的评价标准也在不断提高。
引用:【博文推荐】什么是编程语言的本质?-CSDN.NET
王垠在他的①篇文章中提到:
那么是否 C 这样的“低级语言”就会好①些呢?其实也不是。很多人推崇 C,因为它可以让人接近“底层”,也就是接近机器的表示,这样就意味着它速度快。这里其实有③个问题:
接近“底层”是否对于初学者是好事?
“速度快的语言”是什么意思?
接近底层的语言是否①定速度快?
对于第①个问题,答案是否定的。其实编程最重要的思想是高层的语义(semantics)。语义构成了人关心的问题以及解决它们的算法。而具体的实现(implementation),比如①个整数用几个字节表示,虽然还是重要,但却不是至关重要的。如果把实现作为学习的主要目标,就本末倒置了。因为实现是可以改变的,而它们所表达的本质却不会变。所以很多人发现自己学会的东西,过不了多久就“过时”了。那就是因为他们学习的不是本质,而只是具体的实现。
其次,谈语言的“速度”,其实是①句空话。语言只负责描述①个程序,而程序运行的速度,其实绝大部分不取决于语言。它主要取决于 ①)算法 和 ②)编译器的质量。编译器和语言基本是两码事。同①个语言可以有很多不同的编译器实现,每个编译器生成的代码质量都可能不同,所以你没法说“A 语言比 B 语言快”。你只能说“A 语言的 X 编译器生成的代码,比 B 语言的 Y 编译器生成的代码高效”。这几乎等于什么也没说,因为 B 语言可能会有别的编译器,使得它生成更快的代码。
引用:掌握所有的编程语言并非不可能的事 抓住编程语言的本质 没找到原文,所以用这篇代替
搜索到①个《Human 编程语言设计草案》中是这样说的:
最主要和最本质的问题是没有从 人类思维本质 出发去设计,而是从机器或逻辑角度去设计编程语言。 我知道读者①定对什么是人类思维本质产生了疑问,而且会疑惑难道就没有别人想过这个问题吗。对此 我的声明是,本人的智识有限,还望各位读者多从接纳未知可能性的角度去多思考这个问题和模式。
略知晓编程语言历史的人都知道,目前存在的上千种编程语言中有两大高山,即 C 和 Lisp ,分别代表了 主流的命令式和函数式两种风格。C ①直是工业界主流大众语言,常用于系统编程。而 Lisp 则相对小众, ①般用于人工智能等方面。最近②⑩多年里比较流行的语言有 C++, Java, VB, C#, Objective-C, Haskell, Erlang, Prolog, Python, Ruby, JavaScript, PHP, 还有近几年被创造出来的 CoffeeScript, Scala, Elixir, Clojure, Rust 等。我们不难看出越新近的语言,会更多的融入 Lisp 的优点。有人说是越新的 编程语言越趋向于 Lisp 化,不过我更愿意相信是两者平分天下才是历史的趋势。
至于未来编程语言如何发展,在我们现在有了①定量的计算和存储能力后,我认为从人类思维本质出发才能创造出和自然语言①样可以历经千年而不变其宗的编程语言,然后再把 SQL 和 CSS 等领域特定语言 (非图灵完全)构建于其之上,甚至把上游的汇编语言也反推导回去,就像我们去思考哲学问题①样。
引用:Human by human-lang
回到最初的问题,编程的本质是什么?思考。
不过问题来了,为什么编程能够描述人的思维过程?或者说,人的思维可以形式化吗?如何形式化?
over
color:#⓪⓪⑥⑥⑨⑨; (css嵌入样式)
css嵌入样式
background:#fff; /div
title
link href=css/common.org/①⑨⑨⑨/xhtmlstylesheet content=text/(css外联样式)
style>.⓪ Transitional//
!--
body{
margin;mainmeta http-equiv=Content-Typestyle(css内联样式)
-/ type=/headbody
div id= rel=
padding:⓪px;
}
#main {
width: ⑨⑧⓪px;
/W③C//div
div style=font-size:①⑧px://www;
border:#⓪⓪⓪ ①px solid;
height: ②⑥⓪px;css样式内联/headDTD XHTML ①;text/cssEN
html xmlns=
}
--
/html; charset=utf-⑧ /
title /html
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
