谈到同一类型中语言的选择,对很多人来说都是不一样的,这里说说我的观点。
排除掉被迫的,不由自主的选择,这些不由自主的选择有的是团队要求的,有些是客户要求,更多是由平台决定的。排除掉这些因素的作用,就是自己的感受了。
某些思想在语言级的支持是一个很重要的因素,比如说OO的支持。尽管要在语言中应用某种思想,对像C这样的语言也是可以办到的,但在语言级的支持会使得实现变得更加自然。现在不仅仅是OO思想,还有一些谈论得较多的特性在不同的语言有着不同程度的支持,这也是目前对于各种语言争论最多的部分。然而,还有一些很朴素东西被人们忽视,如结构化和并发的思想,这些很早就有的东西,随着OO思想的鼓吹,被很多人所忽视。我在看到Verilog HDL语言的时候,就被这种语言的这两种特性所吸引,印象最深的就是Wire变量和持续赋值的概念。随着OO万能的思想被怀疑,很多朴素的东西成为新的语言特性,如函数语言的一些特性。但这些特性本来朴素的面孔由于激烈的辩论和宣扬,变得光彩夺目,好像反而成了语言的根本。我常常和人说,你知道为什么“常量”作为语言的第一课吗,因为面对的现实世界中常量是如此的重要,所以放在第一课,但是很多人在忽视它的存在,仿佛他的世界只有变量。。
现代语言的一个特点是很多“重量级”的成员往往会有一个库在支持,这些库提供了很多可重用的便捷的调用以完成某些功能。使用这些库时有两种方式,显式调用和隐含调用。显示调用比较容易理解,这里就不解释了。而隐含调用可能是语言和库融为一体的方式如linq。当这些库专注于某个领域时,我们感觉不是在操作计算机这种冷冰冰的硬件,这种体验是非常不错的。然而当语言变得无穷大时,库也变得巨大,这个感觉就不好了,我们不知道我们面对的是一个什么东西,不是你能够在地球上看见的任何一种东西,甚至连恐龙都不是。
我早先使用VI编辑程序,当时用的时候很激动,觉得功能非常强劲。然而自从到了Windows平台,原来熟悉的操作已经不会了。这时候编程工具有点像我以前学的五笔,尽管打得快,但是一段时间不用,忘得也快。那么简单的记事本是不是很好呢,有的时候是的,写几行脚本无疑很方便。
当您面对一个系统开发时,开发工具也成了选择语言的一个考量。没有人会用记事本去开发一个大的系统,开发工具是否足够智能,是否足够简单易用决定您是否能够将主要精力用在解决问题上。VC6的感觉是痛苦的,而VS2008的感觉是美妙的。对于非W平台,很难用一个工具去处理大部分的编程问题,我往往都是多管齐下,写脚本的用Jedit,写XML的用XML编辑器,写工作量的用JaWE,写Java的用E...,我实在是拼不出这许多单词的名字,但我知道就是它,名字不重要。
对于语言来说,我实在讲不出更多的东西了,但我是诚恳的,我以Hello World为网名是因为我们认识每一个语言时,我们和它打招呼的方式都是一样的。尊重每一种语言从Hello World开始。
分享到:
相关推荐
二、ArchiMate语言 ArchiMate语言是一种用于描述企业架构的标准语言,提供了一系列的视图和符号来描述企业架构的各个层次。ArchiMate语言可以帮助企业更好地理解和描述自己的架构,从而提高企业的效率和灵活性。 ...
本资源是关于企业架构建模ArchiMate语言的学习教案,共26页,涵盖了架构层次、架构开发方法、ArchiMate图例、ArchiMate视图等多方面的内容。 一、架构层次 架构层次是企业架构建模的基础,它定义了企业架构的各个...
该项目是一款基于Java和Shell语言的二代蜘蛛侠性能优化与架构升级设计源码,包含172个文件,其中Java源文件95个,JAR包文件49个,XML配置文件14个,PNG图片文件5个,Git忽略文件2个,LICENSE文件1个,Markdown文件1...
第5卷,模式与模式语言》是一本深入探讨软件架构中模式应用与模式语言的专著,它不仅总结了单个模式的使用方法,也深入探讨了模式间的相互关系,以及如何将这些模式整合成一个完整的语言。此书对于软件架构师和开发...
#### 二、系统架构师的角色与职责 系统架构师负责设计和规划系统的整体结构,并确保系统满足业务需求和技术要求。主要职责包括但不限于: - 定义系统的高级架构。 - 设计组件及其接口。 - 评估技术选型。 - 指导...
2. 技术选型:架构设计有助于选择适合的编程语言、框架和工具,确保技术栈的一致性和兼容性。 3. 可扩展性:通过模块化设计,架构支持系统的平滑扩展,适应未来需求变化。 4. 可维护性:清晰的架构减少代码耦合,...
这本书深入浅出地阐述了系统架构师所需掌握的核心知识与技能,是备考者的重要参考资料。 系统架构师是信息技术领域中的关键角色,他们负责设计、规划和实施复杂的计算机系统,确保这些系统能够满足业务需求,具有...
"编程卓越之道_第二卷_运用底层语言思想编写高级语言代码_中文版" 本书第二卷的主要内容是运用底层语言思想编写高级语言代码,特别是80x86汇编语言的应用。下面是本书的详细知识点: 一、编程卓越之道的重要性 ...
一、架构师的角色与职责 在软件开发领域,架构师扮演着至关重要的角色。他们不仅要设计系统的整体结构,还要确保这个结构能够满足业务需求,支持可扩展性、性能、安全性和可靠性。此外,架构师还需要具备良好的沟通...
C#是一种广泛应用于前后端开发的多语言架构,尤其在微软的.NET框架中扮演着核心角色。本资源“C# 适用于前后端的多语言架构--完整版)”提供了全面的C#学习资料,旨在帮助开发者深入理解并掌握C#语言在多语言环境中的...
- **定义与作用**:软件架构是关于软件系统的基本结构和组织方式,包括组成系统的组件、这些组件之间的关系以及指导它们交互的设计原则。良好的架构能够提高软件的可维护性、灵活性和可扩展性。 - **影响因素**:...
本系统——"三层架构C#编制的超市管理系统",是一个采用C#语言和B/S(Browser/Server)模式开发的完整应用,旨在提供全面的超市管理解决方案。该系统充分利用了三层架构的优势,结合JavaScript、CSS等前端技术,为...
二、技术架构 技术架构是指系统的技术实现和组件设计,是系统的骨骼所在。它是指系统如何选择技术栈,如何设计系统的组件和接口,如何实现系统的安全、性能和可扩展性等问题。 在技术架构设计中,需要考虑到系统的...
3. **技术选型**:如何根据项目需求选择合适的操作系统、数据库、编程语言、中间件等技术,是架构设计中的重要环节。资料可能会提供不同技术的比较和评估方法。 4. **分布式系统**:随着云计算和大数据的发展,...
2. 模型与图:利用UML或其他建模语言表达架构设计。 3. 文档编写:清晰、准确地记录架构决策和设计细节。 4. 团队沟通:学会与开发团队、项目经理和利益相关者有效沟通,确保所有人都理解架构设计。 五、架构演进与...
领域驱动设计是一个常见的设计原则,它强调对架构与模型的精心打磨,尤其善于处理系统架构的演进设计。领域驱动设计可以帮助开发团队更好地理解系统的需求和设计,并确保系统的整体性和可维护性。 软件架构设计五...