下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论程序的三个基本要素:语言,API和工具语言
语言通常是中立的,和特定的平台无关(汇编语言与系统语言除外);但是,某些语言确实比较适合某些平台。以Apple平台来说,显然objective-C会是最好的选择;以NET平台来说,显然C#会是最好的选择。好的语言选择可以让你具有更多资源,和平台有更好的整合,且新版本推出的速度更快。
语言通常也和专业领域无关(当然,像VHDL.这样的语言除外),大多数语言在介绍自己时,用到「General-Purpose」(一般用途)形容自己。但不可否认的,不同语言可能会有不同的适用性,有些语言适合开发Web前端,有些适合开发Web后端,有些适合开发桌面程序。语言通常会带有作风(paradigm,也称为「范式」),有些是00P的范式、有些是FPP的范式…。经过多年的融合与演变,大多数的语言至少会同时具有两、三种范式,有些甚至会多达七、八种。语言范式越多时,程序设计师可以依据自己的需求和喜好,采用不同的范式。但范式多不见得是好事,有可能表示这个语言没有中心思想,驾驭的难度可能更高,写程序时犯错的机会可能更大。
语言有高阶和低阶的分别,高阶者比较接近人类,低阶者比较接近机器。很多人误以为越低阶的语言越「难」,事实上可能不是如此。在我使用8086汇编语言的时候,我就领悟到,汇编语言其实相当好学,因为语言元素(指令)相当少,月变化不人,基本概念都差不多。多数人认定汇编语言很「难」,其实是在于「难读」(不容易借山阅读源码得知原的意图)与「难写」(即使要表达一件简单的事,也必须写出很多程序码),而非「难学」。
对于语言的选择,除了平台、领域、范式之外,还有相当多面向需要考量,其中有-些是许多人所疏忽的,像是可读性、可写性、上手快慢。另外,也要考虑到API,如果你选择的语言没有你需要的[API],那么你的麻烦就大了。
API
API通常和特定的平台无关,但是和专业领域有关。至于那些和专业领域无关的API(例如排序、字串处理),我都把它们归纳到语言中,而倾向不认定它们是API。
大多数的API都是以函数的方式存在。00P的API会将函数集合成类别,将类别集合成框架;FP的API会将函数集合成模组。API的单位很难认定,你可以说一-个框架或模组是一一个API.一个Class是一个API、或者一个函数是一个API。
我认为语言、API、工具这三者中,API是最难学的。以Java来说,package有上百个,类别有上千个,方法(函数)更是有上万个。API牵涉到专业领域的知识,有特定的呼叫次序和参数需求。
其中最难的API通常是GUI(图形化使用者界面)。资料库的API可能反倒很简单,因为许多资料库API都只是CLI(Cal1-LevelInterface),只负责将SQL语法送到DBMS。从某种角度来看,不只这些负责连线到资料库的函数是API,SQL语言应该也算是资料库API的一部份。而SQL是一种DSL(DomainSpecificLanguage)。
这又牵涉到这几年开始流行的一一个话题-以DSL形式存在的API,例如Ruby-on-Railso由于DSL是语言,所以使用弹性自然比函数(类别、框架)大,加上语言用途特定,所以很容易学,这些都是DSL式的API受到大家的瞩目的原因。而且,DSL可以让程序码大幅缩短,有助于减少对某些开发[工具]的依赖。
工具
当然,最基本的开发工具是编辑器、编译器(或解译器)、除错器,但这已经是远古时代的事情了。现代的软件开发,用的工具越来越多。尤其是程序产生器的地位越来越重要。
现在的开发工具都很强调程序产生器,利用程序产生器提高生产力。以往只需要U1traEdit就能写程序,不需要这些庞大的开发工具,现在却很难办得到,正是因为程序码产生器的缘故。很多人即使不知道底层的作法,也可以很快地把系统做出来,可以在名片印上「资深软件工程师」,这也是拜程序产生器之赐。
现在的软件开发都已经走火入魔了。开发的速度提升,不是因为需要写的程序变短,而是程序码产生器帮我们产生出更多程序,而这些产生出来的程序,如果没有像VisualStudio这样的T具协助,以后会相当难以维护。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 染色体病检测指南及规范
- 企业年金管理效率提升研究
- 汽车露营地装修施工合同范本格式
- 供应链协同管理方案
- 科技清水池防水施工合同
- 电力公司总经理劳动合同范例
- 旅游管理专业教师聘用合同
- 渔业公司电工招聘及维护协议
- 医疗捐赠物品使用准则
- 健康管理中心健身房租赁协议
- Intercultural Communication 跨文化传播-暨南大学中国大学mooc课后章节答案期末考试题库2023年
- 不稳定血红蛋白病
- 六年级上册数学教学设计-第五单元 数据处理∣北师大版
- 免费下载装修合同范本
- 医院人事管理制度汇编
- GB/T 30030-2023自动导引车术语
- 药理学学习指导及练习题
- 双重预防机制运行情况评估报告
- 婴幼儿如厕照料(婴幼儿回应性照护课件)
- 面相与手相课件
- 《婴幼儿行为观察、记录与评价》习题库(项目一)认识婴幼儿行为观察、记录与评价
评论
0/150
提交评论