`
tibaloga
  • 浏览: 871637 次
文章分类
社区版块
存档分类
最新评论

语言的特性如何取舍

 
阅读更多

我最近在做的关于动态代理的研究时,常常会有这样的感觉。

比如JAVA本身就提供了Dynamic Proxy,而不像在DELPHI下,要用Thunk这样的技术去作复杂的处理。对于序列化,Java/.net也都有现成的实现。

这几天在实现Remoting的服务端时发现,需要一个HashMap,在DELPHI下就成了一件麻烦事。如果是C++,有现成的std::map可用,新的Java和.net也都有了对GP的支持,但是DELPHI(原生)没有。如果要仿照JAVA的擦拭法来模拟的话,又会碰到另一个问题:DELPHI没有GC,容易造成内存泄漏。而且DELPHI不支持在STACK中分配对象,所以也不能实现类似SmartPtr这样的东西。结果最后只好用多态实现,难看而且估计性能也不会好。郁闷啊~~

前几天在里讨论GC时,GrayMemory提到关于C++总是想把别人有的好的特性都加进来(当然主要还是通过库,而不是修改语言)。其实别的语言也一样,程序员总是不知足的。

语言磨砺了我们思维的方式,也决定了我们思考的范围。

现在对大师的这句话是更加有体会了。

曾经也以为不同的语言不过是语法的不同,现在看来,那只是在同一类型的语言范围内成立的观点,对于不同类型的语言,差别有时是本质的。

比如最近正在学习的Python,对于这类的动态语言,OO的思想已经与传统的C++/JAVA很不一样了。像OO中一些经典的DIP之类的原则,已经不重要了,AOP也是很自然的事,GP也是不必要的,更不用说那些设计模式了。

然而有得必有失,动态语言的性能还是一个很重要的问题。

分享到:
评论

相关推荐

    JavaScript语言精髓与编程实践

    javascript作为一种混合式语言的各方面特性,包括过程式、面向对象、函数式和动态语言特性等,在动态函数式语言特性方面有着尤为细致的讲述。本书的主要努力之一,就是分解出这些语言原子,并重现将它们混合在一起的...

    Scala编程(第3版)

    《Scala编程(第3版)》面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala或从事一线编程工作的...

    Scala编程 第3版中文版.7z

    《Scala编程(第3版)》面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala或从事一线编程工作的...

    练习C++语言的代码仓库.rar

    2、abseil:Google出品的基础库,对stl的补充,这个非常推荐给在用c++11但不具备c++17条件的使用,因为里面实现了一部分c++17,甚至20的特性,比如any、variant、optiona、span等等;顶级水平,足够现代。3、folly:...

    Java写的多语言预处理器

    类似于C的预处理,可以根据定义的变量,在后面的条件判断中,取舍不同代码段。 适用于:需要生成多个版本,根据不同的变量,环境等。 例如:针对不同移动设备,因为大部分代码可以共用,需要针对不同设备设置不同的...

    Scala函数式编程

    所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发和语言设计的能力。  ——ThoughtWorks Lead Consultant 杨博  这...

    Agile Java

    还有这本书对于内容取舍也非常得当,Java语言毕竟类库庞大,可以讲的内容太多,这本书选择的内容以及内容的多寡都很得当,可以让你以最少的时间掌握Java最重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得...

    Agile Java 高清中文版

    还有这本书对于内容取舍也非常得当,Java语言毕竟类库庞大,可以讲的内容太多,这本书选择的内容以及内容的多寡都很得当,可以让你以最少的时间掌握Java最重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得...

    概要设计说明书模板

    【说明】章节划分原则、内容的取舍、重点的确定等。 电子文档编写工具 【说明】工具名、版本号、操作系统平台。使用多种工具时,应分别说明。形如: Microsoft Word 97 for Windows 95 Power-Designor 6.0 for ...

    Scala 编程 / Scala Programming

    本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala或从事一线编程工作的读者,也能从本书学到...

    数据库系统概述.pptx

    借助计算机,还可对收集到的信息进行取舍整理。 1.1.1 基本术语 数据库系统概述全文共54页,当前为第4页。 数据是用来记录信息的可识别的符号,是信息的具体表现形式。 可用多种不同的数据形式表示同一信息,而信息...

    数据结构与算法分析——C语言描述.rar

    由于本书选材新颖,方法实用,题例丰富,取舍得当。本书的目的是培养学生良好的程序设计技巧和熟练的算法分析能力,使得他们能够开发出高效率的程序。从服务于实践又锻炼学生实际能力出发,书中提供了大部算法的C...

    空间几何体的结构.doc

    本章中的有关概念,主要采用分析具体实例的共同特点,再抽象其本质属性空间图形而得到.教学中应充分使用直观模型,必要时要求学生自己制作模型,引导学生直观感知模型,然后再抽象出有关空间几何体的本质属性,从而...

    springCloud

    关于微服务架构的取舍 在合适的项目,合适的团队,采用微服务架构收益会大于成本。 微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。 需要避免为了“微服务”而“微服务”。 微服务...

    全诚网络商城源码ACCESS

    本品结合现在国内各种商城系统的功能元素,采用asp.net开发,系统吸取.net2.0语言本身的优势,使的系统更加安全、稳定、快速、优化。 2、系统生成HTML、模板自由定制、更换灵活 本品全站信息模块均超越模拟静态页的...

Global site tag (gtag.js) - Google Analytics