`
weiqingfei
  • 浏览: 319161 次
  • 性别: Icon_minigender_1
  • 来自: 黑洞
社区版块
存档分类
最新评论

关于语言

 
阅读更多

自从入坑以来,七七八八的也用过了不少编程语言了。

一直都是处于学语法,写代码的程度。从来没有认真想过编程语言是什么。

也许是老了,有时候也不会闷头往前冲,而是停下来,静静的想一下,自己在写什么,为什么会这么写。

 

程序这种东西,最终的目的是让cpu来处理数据,只是因为过程太过复杂,慢慢的演变出来很多种语言。

[处理数据],很简单的一句话,那么就包括了[数据]和[处理]两个概念。复杂的程序,自然也会包括复杂的数据,也包括复杂的处理。

那么我们要做的就是合理的去归类数据,合理的安排处理的逻辑,这里的处理在程序上就是表现为方法。

 

一个语言要解决的问题,就是数据如何传递,另外一个是方法如何串联。

 

最早接触的是c和pascal这样的语言,这类语言比较初级,数据和方法比较零碎,完全由程序员自己去归类这些东西。

这时候,如果摆放不合理,就会发生方法依赖错综复杂,数据传递极其繁琐的情况。

 

后来开始接触面向对象语言,类似于java一类。

一个类就是数据和方法的组合。从某种程度上,帮助程序员进行了归类。

但是在实际使用中你会发现,大多数情况,一个类要么就是一个数据的组合,要么就是方法的组合,反而数据和方法同时出现的情况比较少。

用java开发web应用的情况非常多见,看看form,dto,entity等类型的类,基本就是pojo实际上是不带有任何处理方法的,而controller或action,

service,logic,dao等,又都是方法簇,并没有任何的数据,那么数据的传递却是通过方法参数以及返回值来实现。

这哪里体现了面向对象的优越性了?

当然,之所以这么做,也可能是妥协的结果,因为这样的设计比较好测试。

 

另外还有一些其它语言比如golang,暂且不去讨论它是不是属于面向对象语言,那么从数据和方法的安排上来看,数据用struct来描述,

方法当然可以独立存在,也可以作为类方法赋给struct,那么在实际应用中,会发现,很多struct是空的,它的目的只有一个,就是归类许多个类方法形成一个方法簇,

这样的实现给上面java web开发中的contoller的应用没有任何区别。

 

既然上面看起来并不是特别的完美,那么函数式编程呢?函数式编程同样数据是数据,但是方法调用的话,却是通过传递方法变量的方式,把方法调用串联起来。

这样的组合方式跟以前面向过程编程中的函数调用有啥不同呢?一个就是同类方法组合的重用,类似于面向对象编程中泛型的使用,另外一个就是柯里化。

其实挺讨厌柯里化的,因为使用了柯里化,也就意味着时刻注意context chain,如果搞不清楚这个的话,你就会迷失在调用深渊里,比起面向过程的编程方法难理解多了。

 

可见编程语言里没有银弹这不是说着玩的。

以上是这些年来的编程感受,语言匮乏,不一定能反映出内心的想法,同时描述也不甚准确,希望不会误导别人。

分享到:
评论

相关推荐

    关于语言就业趋势

    "关于语言就业趋势"这一主题揭示了全球化背景下,掌握多种语言对于就业市场的重要性,以及语言技能如何影响求职者的职业前景。下面将详细探讨这一领域的关键知识点。 首先,随着全球化的加速推进,跨国公司和国际...

    国旗下关于语言美的讲话稿.pdf

    国旗下关于语言美的讲话稿.pdf

    xp系统语言包东南亚语言包

    不过,它并没有提供关于语言包的直接信息。 【压缩包子文件的文件名称列表】: 1. fpdfcjk.bin:此文件名可能代表“FPDF(Flexible Document Format)”库的一个版本,专门处理中文、日文、韩文等东亚语言的PDF文档...

    语言学概论(自考最全)..doc

    《语言学概论》是关于语言学基础知识的总结,涵盖了语言和语言学的基本概念、理论以及相关领域。在本章中,我们主要讨论以下几个关键知识点: 1. **语言的客观存在形式**:语言分为口语和书面语两种形式。口语是最...

    语言的演变资料PPT课件.pptx

    - **标题与描述**:“语言的演变资料PPT课件.pptx”这一标题简单明了地指出了该文档的主题是关于语言演变的研究资料。描述部分重复了标题内容,意味着这份资料可能是围绕语言演变这一主题展开的详细介绍。 #### 二...

    最新杨忠--语言学概论-课后综合测试题及中文版答案.pdf

    首先,关于语言作为一个系统,它是由语音、结构和意义三方面组成的。语音指的是语言的声音系统,结构涉及语言内部的组织规则,而意义则是指语言所表达的内容和信息。这三个方面共同构成了语言学研究的核心内容,也是...

    所有程序设计语言数据集合

    其中包括关于语言的事实,例如它是哪一年创建的,它的排名是什么,以及在探索数据集后您将知道的其他参数。 该数据集包含超过4000种编程语言的信息。其中包括关于语言的事实,例如它是哪一年创建的,它的排名是什么...

    形式语言 期末试题 04-06年

    在哈工大的这些期末试题中,学生们还可能遇到关于语言的闭包性质、泵引理(Pumping Lemma)、Chomsky等级(Chomsky Hierarchy)等话题。这些都是评估学生对于形式语言理论深度理解的重要考点。 最后,形式语言与...

    语言演化与语言保护:语言经济学的浅析框架.pdf

    文章进一步提出三个关于语言演化的命题:首先,语言与文字的起源和发展具有本质的区别,语言更多依赖于自然演化,而文字则主要是人为设计和构建的产物;其次,随着社会的进步,语言作为信息载体的功能趋向于统一和...

    语言学概论精讲1到12知识重点总结1

    语言与哲学的关系历史悠久,如荀子关于语言约定性的观点。语言研究的里程碑包括索绪尔的结构主义、布隆菲尔德的北美结构主义和乔姆斯基的转换生成语法。 语音作为语言的物质基础,其物理属性包括音高、音强、音长和...

    2021年电大专科学前教育学前儿童语言教育试题及答案(13).pdf

    问答题部分要求考生回答关于语言教育中幼儿自由交谈时教师的任务、如何在日常生活和游戏中进行语言教育、影响学前儿童语言学习的因素、语言学习的特点,以及不同评价方法的优缺点。这些问题要求考生具备较为深入的...

    语言学教程胡壮麟考研笔记.pdf

    关于语言的起源存在多种理论,包括: 1. 拟声理论(Bow-bow theory):认为语言起源于模仿野生动物的叫声。 2. 咕噜理论(Pooh-pooh theory):认为人们通过发出本能的声音来表达疼痛、愤怒和快乐。 3. 哼唱理论...

    语言文字法律法规常识PPT课件.pptx

    《中华人民共和国国家通用语言文字法》是我国第一部关于语言文字的专项法律,旨在规范国家通用语言文字的使用,保障公民的语言文字权益,促进社会语言文字的健康发展。这部法律于2000年10月31日由第九届全国人大...

    胡壮麟《语言学教程》笔记1-3章归类.pdf

    胡壮麟《语言学教程》笔记1-3章归类.pdf是一个关于语言学的笔记,涵盖了语言学的基本概念、语言的定义、语言的功能、语言的起源、微观语言学、宏观语言学等方面的知识点。 语言的定义是指语言的基本特征,包括任意...

    索绪尔语言学产生的背景PPT课件.pptx

    惠特尼强调语言的符号性和惯例性,认为语言是一种社会约定俗成的符号系统,这与索绪尔关于语言任意性的观点相呼应。他认为,尽管不同语言对同一事物有不同的命名,但这并不妨碍它们有效地进行交际。 综合以上背景,...

    CMU 15-312 编程语言基础讲义.pdf

    归纳定义的一个关键应用是通过归纳推理来证明关于语言的属性。以括号计数为例,我们可以证明如果一个字符串属于`M`,那么它包含相同数量的左括号和右括号。这一证明是通过规则归纳来完成的,具体来说,需要对每一条...

    go语言编程指南

    基础 一开始,将学习关于语言的所有基础内容。 定义变量、调用函数、以及在你学习下一课之前所需要了解的全部内容。 包、变量和函数。 学习 Go 程序的基本组件。 流程控制语句:for、if、else 和 switch 学习如何用...

    自然语言与人类认知功能的研究进展

    内容概要:本文综述了过去二十年关于语言的功能及其在人类认知中的角色的研究进展。研究表明,尽管语言在现代人类中主要用于沟通,但它并不是复杂思考的前提条件。相反,语言似乎是一种有效的信息传递工具,在进化...

Global site tag (gtag.js) - Google Analytics