谈写脚本、写代码和编程三者的区别
,讨论。我把我的⼀些关于此问题的看法写在这⾥,不当之处欢迎批评指正。
就像⼀些⼈在论坛指出的那样,三者之间的区别有时⽐较模糊,因为这三种说法有时候可以互相转换。我可以同时在做写脚本,写代码和编程这三件事。如何定义你是在写脚本,还是写代码或者是写程序,常常取决于你在开发什么。
写脚本
传统意义上的写脚本常常令⼈联想到那些“不完整的”或者“受限制的”计算机语⾔,这些语⾔通常⽤来把⼀些不同的应⽤“粘合”到⼀起,或者只是写起来快速并且随意、能让某些实际中的任务⾃动化运⾏的简单的计算机语⾔。典型的例⼦有JavaScript,ActionScript,和Shell脚本。
是的,也许10年前JavaScript就已经被看成是⼀种“受限制的”语⾔,那时候它通常被⽤于快速的格式校验或者给浏览器的⽂档内容加⼀些滚动效果,然⽽今天这些都已经是过去式了。但如今还有⼀些⼈认为JavaScript是⼀种“受限制的”语⾔,对于JavaScript的这种误解常见于那些并不理解它或者只⽤过它来使显⽰内容滚动起来的开发⼈员,还有⼀个原因是“JavaScrip”t中的后⼀个单词是“Script(脚本)”。关掉你浏览器⾥的JavaScript,然后试试使⽤Gmail,Facebook或者Google+。你会发现JavaScript已经不再是
⼀种“不完整的”或者“受限制的”语⾔,实际上如果没有JavaScript,你的那些⽹页应⽤反⽽会看起来是“不完整的”,不完整的就像1995年时候的⽹页。如今,开发⼀款基于JavaScript的应⽤要求你像⽤C或者Java开发应⽤时那样思考和设计,你需要使⽤那些应⽤于后台的设计模式。说到后台,现在你甚⾄可以让JavaScript运⾏在服务器端,所以可以只⽤JavaScript就写出⼀个⼭寨的Gmail。
ActionScript也是这样。开始时ActionScript作为⼀种⽤来写Flash动画、游戏以及应⽤的脚本语⾔⽽出现。⼤约10到12年前,我还把Flash和ActionScript混为⼀谈。那时它运⾏不同的帧,并按照⼀帧⼀帧的原理来写游戏或者动画。今天,ActionScript 3.0实际上已经不再是脚本语⾔了,它和那些所谓完整的计算机语⾔是⼀样的。它能被编译并且运⾏在ActionScript虚拟机上,完全就像Java代码在Java虚拟机上编译及运⾏⼀样。在我看来,作为⼀种计算机语⾔,ActionScript和Java相⽐并没有⽋缺什么。如果你还是认为ActionScript是⼀种“不完整的”或者“受限制的“语⾔,那么请浏览Showcase,然后清理掉你那些陈旧的观点,以便你能继续阅读这篇⽂章。
另⼀种关于写脚本的错误定义是,写脚本就是写⼀些让其他程序解析的指令,不过所谓代码其实都是这样的,代码都是些让其他东西运⾏的指令。那么⽤于数据库查询的SQL脚本呢?它也是⼀种⽤来写⼀些告知诸如MySql或者Oracle等程序如何获取数据的指令的脚本语⾔。但是我们有Oracle脚本员的说法吗?我们只会说SQL程序员。并且没有SQL程序员会说⾃⼰正在写⼀个X和Y的交点然后把它和B相连的脚本。
那么,到底什么是写脚本?我认为写脚本就是写⼀个或多个⼯具使得⼀个或者⼀系列任务⾃动化,⽽这和使⽤什么语⾔来写⽆关。我有时候很懒,如果可以的话我想要写⼀个⾃动做早餐的脚本。不必只局限于命令⾏。⽤你觉得最合适的⽅法来尝试实现你想要的⾃动化。有时候我⽤shell脚本,有时可能是⼀个Excel脚本,可能是PHP,可以是Java,甚⾄可能是C,⽆论什么都可以。
写代码
来谈谈写代码吧。我本⼈并不喜欢写代码。但有时候我也是⼀个码农,这是⼯作的⼀部分。当我作为⼀名码农时,我就像这个家伙⼀样:
所以,所谓码农就是把⼀种语⾔编码成另⼀种语⾔的⼈。可以是把英语译成摩斯电码,也可以是把英语译成Java代码。当你写代码时,你就是在把需求翻译成你的应⽤所要运⾏的那个环境(服务器,PC,
iPhone,浏览器等等)能够完全看懂的语⾔,这也就是所谓“代码猴
⼦”的出处和我不喜欢写代码的原因。有时候你要做的只是搞清楚你要做的是什么并把它变成代码。
编程
给任何机器或者应⽤编程就是给它⼀套可以它可以运⾏的指令集。⽐如你最爱的咖啡机已经被编好程序使它可以在早晨7点15分准备好咖啡。⽐如你把⾃⼰喜欢的频道都编⼊到你车⾥的收⾳机⾥。或者⽐如你告诉你的浏览器怎样在⽹页上显⽰⼀个弹跳球的动态图。showcase
那么,这篇⽂章的结论是什么呢?结论就是写脚本、写代码、编程都是⼀样的,抱歉本⽂对此给不出什么巧妙的解释。归根结底,⽆论你是在写脚本,写代码或者是编程,你所做的都是给某个环境,像是个⼈电脑、机器⼈、或者浏览器,提供⼀套指令集让它完成它需要完成的任务。这和⾼级语⾔还是低级语⾔⽆关,和语⾔是以”Script”结尾还是以“++”结尾⽆关,和运⾏在浏览器还是主机上⽆关,和被卖个⽆数⼈或者只有你⼀个⼈⽤⽆关。
我建议你不要⽤写脚本、写代码或是编程来定义⾃⼰在做什么。你是⼀个做软件的⼯匠,⽤最适合于你所⾯临问题的技术去设计并到解决⽅案从⽽解决你需要解决的问题,这样就可以了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。