`
weiqingfei
  • 浏览: 317294 次
  • 性别: 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”这一标题简单明了地指出了该文档的主题是关于语言演变的研究资料。描述部分重复了标题内容,意味着这份资料可能是围绕语言演变这一主题展开的详细介绍。 #### 二...

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

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

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

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

    语言学概论精讲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

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

    go语言编程指南

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

    阳光学校关于成立语言文字工作领导小组的通知.pdf

    3. 法规学习:组织教师学习国家和地方关于语言文字的政策法规,增强法制观念,确保学校活动符合相关规定。 4. 培训与宣传活动:安排普通话培训课程,通过多样化的推广普通话活动,全面提高教师的语言文字规范意识和...

    PostScript语言教程与手册 英文

    - 解答关于语言定义或规格的具体问题。 #### 四、PostScript语言教程详解 - **第一章:介绍** - **1.1 PostScript作为页面描述语言**: - 介绍了PostScript如何作为一种标准用于描述打印页面,以及它的设备独立性...

    儿童发展心理学儿童语言的发展PPT课件.pptx

    最后,关于语言获得的理论,主要包括学习论、先天论和相互作用论。学习论认为儿童通过模仿和强化来习得语言;先天论强调语言能力在很大程度上是生物决定的,如乔姆斯基提出的语言天赋理论;而相互作用论则认为认知和...

    C关于语言的动态内存管理

    malloc、calloc、realloc动态内存函数的介绍及常见的动态内存错误

Global site tag (gtag.js) - Google Analytics