为什么脚本只有VB脚本和Java脚本,而没有C#脚本

推荐答案真是一个神人!

一般情奖品下,脚本是为了辅助某些软件或是程序的功能,在程序外部执行的语言代码。所以一般我们说脚本是是强调了两个方面,一个方面是宿主程序,一方面是语言本身。比如我们说浏览器脚本,flash脚本等,它们是强调用对宿主程序的说明。浏览器脚本的宿主程序当然是浏览器,而脚本语言一般使用了vbscript或是javascript两种。还如flash脚本使用的是actionscript,我们经常说的动作脚本。而3D max 则使用了MaxScript脚本,它是在8.0后加入的。而photoshop在最新版本中也加入了javascript的脚本支持。不管是哪种,你完全可以看出,其实脚本是使用宿主程序有了更强大的功能,并在宿主外执行。

由于在宿主外执行,所以一般选用翻译型语言(语言边解释边执行)进行内置,只有极个别的情况下选用编译型(一次性编译后再执行)进行内置的。

所以从脚本的定义上你可以看出,不是所有的语言都是叫脚本的,而编译的程序就只能叫程序的。比如在windows中有两种脚本解释器,一个是javascript,另一个是vbscript/VB。但就语言本身上来说,他不能称之为脚本,语言只能成为某个宿主的脚本,也就是该宿主程序选定了这种语言。

但是,脚本语言这个名词也有称呼,它是不标准的,这个跟javascript和vbscript有关。javascript是网景公司开发的,它最初的作用就是为了嵌入到浏览器中,以致于现在有很多程序对其进行内置,它却没有自己的确开发环境,而vbscript却是vb的一个子系语言,它的做用就是用来做脚本的,目的很明显,就是要替代javascript——微软公司是不允许别人当老大的,但结果是两种语言完全并行了。现在在IE浏览器中也是支持这两种脚本的。这两种语言的作用就是充当脚本,没有其他的作用,以致于称其为脚本语言。

直到asp框架的出现,也是采用了这两种语言的,有人称asp所使用的语言就是asp的脚本,但是asp实现的是自身的功能,称其为脚本不合适,所以说在asp中可能会使用两种语言,而不再称其为脚本。因为asp只是一个框架,没有任何语言,所以脚本还是语言对于asp来说是比较模糊的。

而你所以的java脚本要么是javascript脚本的一种错误称呼——很多人都以为javascript与java有关——事实上网景公司被银河系公司收购只是这两年的事。两种语言是没有任何关系的。而vbscript却是vb的一个子集,同是microsoft开发的。以前有不少做web前端开发的学生,还没有学到java语言时,总以为javascript就是java,或者误以为javascript是java的一个子集。以致于有java脚本的误传。

但事实上,也真有java脚本一说,该说是源于IE浏览器中的java applet这种插件来说的。在applet插件中使用的是java语言,但是由于微软公司与sun公司的官司,使微软拒绝再向IE中添加applet,sun公司随又对其进行起诉,微软才不得已在IE中内置java applet这种插件的支持——但拒绝对其有任何的更新——要知道当时浏览器IE可是龙头老大的。很多人当时十分看好java applet,但由于微软的不合作,这种技术在现在没有人再用了。

所以事实上我们所说的脚本语言一般指的是javascript与vbscript两种语言的。但就语言本身上来说,如果哪一种选用了C#做脚本也是有可能的。脚本也可以是编译性的,比如SQL,Pl/SQL等等我们有时称其是数据库脚本。它就是可以进行编译后执行——有时也是一句一句地翻译执行。

还有就是DOS也可能会成为脚本的,而在按键精灵之类的软件中,其脚本指的也是那些语言片段。

我想你对脚本已经熟悉了。

一楼做游戏还有C#脚本,其实你们做的那些是程序,相对于游戏来说可称之为脚本,但如果这样脚本的范围也太大了吧?你们所说的脚本其实指的是底层语言。

另,翻译式语言经常被选作脚本,但很可惜的是C#是编译型语言,不是翻译型的。也不要说脚本一定是翻译型的,如果你说脚本是翻译型的语言,那么C#无论如何都不可能是脚本,因为C#只能编译运行,不能翻译运行,VB才有可以翻译也可能编译。

还有问题就是asp到底是什么语言?我见过有人用javascript写asp,也有人用vbscript/VB写asp甚至其他语言,asp是什么语言呢?jsp是java的一个网页框架,使用的是java语言。asp.net是.net的一个框架集,可以使用很多种语言。shell中使用的脚本名字你确定叫shell语言么?语言与框架以后分清楚点——否则内行人真会看你的笑话!