`

关于语言的一点看法

    博客分类:
  • java
阅读更多

 语言

 

       《设计模式》中对框架的定义是:框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。使用开发框架可以减少重复开发工作量、缩短开发时间,降低开发成本。同时,框架的引入和使用还可以使程序设计更加合理和稳定,利于二次开发和维护。

  • Ruby是一门因开发框架而走红的语言。没错,是Rails框架才使Ruby变得如此热门。目前,Ruby on Rails已经进阶主流Web开发技术,使用其开发的各种网站不计其数,详细可以参考51CTO之前的报道《TOP 50 Ruby on Rails开发的网站》。
  • PHP每次HTTP请求都要初始化资源,这个过程的开销非常大。
  • 比如对Java而言,Hibernate专注于数据层的持久化,Struts则精于业务逻辑的处理。
  • JavaScript方面,Dojo面向对象功能强大,提供丰富的库及UI控件;jQuery则以简洁、快速著称,对DOM对象和事件处理尤为擅长;prototype则显得更为轻量,善于处理Ajax的交互过程。
  • 首先第一点,语言是设计出来给人看的,各种语言最终会通过某些工具变成机器可以执行的形式。语言设计出来也是为了进行大规模的开发,否则使用机器码01来编写不现实。此外,语言也带来了一些新的设计思路,比如java的面对对象设计等思想。

     

    我这里把除了语言规约外语言实现的其他方面统称为“平台”。因此,这个平台其实包括多种东西,例如:

    • 将程序文本转化为二进制形式的:编译器(包括解释器,Linker等等)。打个比方,主流C++编译器有VC++,GCC;C#编译器也有微软实现的CSC及Mono上的MCS。同样的源文件交由不同的编译器,得到的结果会有不同,而最终也会影响程序性能等因素。但是,我们可以简单认为,这些编译器最终生成的结果是符合一个统一标准的,也就是说它们得到的结果可以用相同的规则来识别与执行。
    • 运行时也是平台的重要组成部分。例如,使用微软的CSC编译出的程序集可以在微软的CLR或Mono提供的运行时上执行,同样Sun的Java编译器生成的Byte Code也可以在Sun和IBM两种JVM上运行。由于运行时实现不同,所涉及的标准库也有不同,其程序执行的性能和稳定性都会有所区别。

    当我们谈论到一门语言“能做什么”,“性能如何”时,往往就是在讨论的就不(仅仅)是语言,而是平台了。

    语言中的很多部分也在真切地影响其平台相关的部分,例如C语言的目标是系统语言,因此便尽可能的接近计算机体系结构,没有高级的语言特性,要把很多细节都交由程序员去控制。而如C#或Java这样的语言,从语言特性上就注定了其执行环境需要GC能力,这样对于一些空间密集型的场景可能就比不上如C语言般精细控制所带来的性能;同样,C/C++这样的语言可能并不适合高性能计算,因为它的语言设计注定了会遇上“别名检测(alias detection)”方面的问题,于是编译器便无法像一些无副作用的函数式编程语言那样进行自动并行,或者生成充分利用系统缓存的高性能指令。

分享到:
评论

相关推荐

    C语言也能干大事 关于一些人偏见的看法

    TC 只能用来学 C 的基础,要进行实际开发必须使用先进一点 的工具。还是让 TurboC 进博物馆吧。 (2)为什么不用更高版本的 VC? 我们不使用高版本的 VC 主要是如下考虑: VC6 和高版本的 VC 没有本质区别 (VC6 是 ...

    自然语言处理:自然语言进动-情感分析

    通常,全球范围内的情绪分析概念也涉及中性意见,但我不会考虑到这一点。 情感分析通常被视为对全球推文的研究。 此外,可以通过人们对电影,产品和公司的看法来进行情感分析。 我将对数据集中的批评进行情绪分析,...

    wordai:自然语言处理辅助背单词

    个人对背单词的一点看法背单词不能只针对独立的单词,需要放到语境中学习。单词需要自己完整的拼写出来,不能是只进行选择题。不然实际应用中容易出现拼写错误的情况。单词记忆时要关注时态、语态。学习的内容不能...

    人工智能的黎明:从信息动力学的角度看ChatGPT| 观点

    这一点本身已经是老生常谈了,但这里有一个我想深入讨论的问题,就是大语言模型的诞生究竟是一个什么意义上的临界点? 我认为,重要的并不是ChatGPT能够实现多少功能,能够比之前的AI多做多少事情,问题的关键不是...

    研究酒吧KZ「Research Bar KZ」-crx插件

    在它的帮助下,各种各样的公司会发现你对他们的产品和服务的看法。我们问你一些问题,还建议安装一个特殊的软件组件。它允许我们在整体调查统计中包含关于您的互联网活动的匿名信息。多亏了这一点,企业才能更好地...

    关于人工智能的随笔-谈人工智能时代的学习.doc

    关于人工智能的随笔 谈人工智能时代的学习 关于人工智能的随笔:谈人工智能时代的学习 我们可以将深度网络成工厂的一条生产线。输入原材料后,它们将随着传送带向下 传递,后续的各个站点或层会分别提取不同的高级...

    Research Bar KZ-crx插件

    语言:русский 扩展成员InternalAnketa.kz 扩展InternetAnketa.kz参与者ResearchBar是参与者Internalanketa.kz的扩展这是一个研究项目。有了它,最不同的公司将学习您对其产品和服务的看法。我们向您询问问题...

    计算机程序设计比赛试卷[修改版].docx

    学生会 2012年5月20日 第三篇:计算机程序设计发展史 我对程序设计的一点粗浅看法 ——计算机程序设计发展史 【内容提要】 程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分...

    微妙 - Netflix的字幕「Subtly – Subtitles for Netflix」-crx插件

    随时创建自己的单词列表并学习它们,但是我们当然希望变得更好一点,这就是为什么我们计划做更多的事情-支持更多的语言翻译-支持更多的内容提供商(例如Amazon Prime,Hulu,Showtime等)-使翻译更相关,更智能,更...

    ChatGPT到底会取代哪些工作岗位?程序员是最先出局的职业吗?

    还只能是给出一段功能性的代码,能提高程序员的工作效率,对于程序员有一定的辅助作用,但它是没有办法根据需求生成整个系统的,更不用说安装运行环境,调试,测试之类,而对于高级或者资深一点的程序员,...

    汉语的英语级别提示:可能是让你受益匪浅的英语进阶指南

    汉语水平的英语小贴士 不久前,备考托福的女神问...在这份指南里,我会调整地综合我主观的看法与一定的科学依据,为大家提供一份详尽的英语进阶指南,真心希望本指南能给你带来一点小小的帮助。 GitBook链接 想要获得更

    谁获得什么,何时,如何获得? 权力、组织、市场、金钱和资源分配-研究论文

    语言描述提供了对历史、法律、哲学、社会习俗和政治结构的综合看法,为经济运作提供了背景。 亚当·斯密、他的老师弗朗西斯·哈奇森牧师和他的密友大卫·休谟生动地说明了这一点。 在这本纤薄的卷中,有两个不同但...

    微软CMS/Blog系统oXite

    微软于2008年12月6日在自己的开源社区CodepPex发布了首款内容管理系统oXite,目前为Alpha版本,大家可以Google一下oXite,很容易的就可以找到很多关于oxite的介绍,目前oXite.com/oXite.cn/oXite.com.cn等域名或...

    asp.net知识库

    关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...

    C语言培训教程.doc

    10、气象数据中心项目开发 16 5、 毕业总结 16 各种技术方向分析 对大部分即将进入IT行为的人来说,普遍存在一个问题,如何选择技术方向,以下谈 谈我个人的看法. 1。1、JAVA 优点 几乎可以做任何事情,适用于各种操作...

    蒙台梭利教学法.doc

    蒙台梭利还试图区分了儿童不同心理的敏感期 : 感觉的敏感期( 2 到 5 岁)、秩序的敏感期 (1 岁到 4 岁 ) 、细节的敏感期( 2 岁到 5 岁)、语言的敏感期( 2 月到 8 岁)、手的动作敏感期( 1.5 岁到 3 岁)、行走...

    《程序员》杂志2012年第1期.pdf (免费积分下载)

    而且更重要的是,它们都不会设定自己的经营边界,而且对远景的看法有诸多相似:都相信自己能够大大改善而非仅仅取代现有的各种产品和服务。 2012年,平台之战已经一触即发。 我在2011年4月撰写的“云计算:...

    BodBot - 私人教练和锻炼提醒「BodBot - Personal Trainer & Workout Reminder」-crx插件

    同样,如果您过去一个星期的睡眠下降,或者突然发烧,那么以前的健身轨迹-以及上周对本周最佳训练计划的看法-就会过时。 您需要一个可以反映您的新情况的建议。 ■尽管变化很少有如此剧烈的变化,但错过锻炼,意外...

Global site tag (gtag.js) - Google Analytics