稍微大一点的系统可以不能用一种开发语言来处理,往往是混合在一起的,比如服务器端开发用c和c,业务逻辑用java,前端展示用php,消息中间件等等。
nodejs可以在服务器端快速原型化(原来只有c系统和java才能做高性能的东西),代码量会少很多;还有一点就是它的语法优势,js封闭等等。但不适合cpu密集型处理,只能绕弯解决。肯定的,据说这次会有人在qcon上分享这方面的研究成果,大家可以关注一下。
每种语言都有自己适合的领域。没有必要强迫一种语言解决一切,它具有其他语言的特点。只有不断地通过权衡做出制度才是目标。
tsr闭包是可以包含自由(不绑定到特定对象)变量的代码块;这些变量不是在这个代码块或任何全局上下文中定义的,而是在定义代码块的环境中定义的。
单词"关闭"来自于要执行的代码块(因为代码块中包含了自由变量,所以这些自由变量及其引用的对象不会被释放)和为自由变量提供绑定的计算环境(作用域)的组合。
inscala,scheme,commonlisp,smalltalk,groovy,javascript,ruby,python,targetcandotherlanguages,wecanfinddifferentdegreesofsupportforclosures.
tsr闭合是一个精确但困难的计算机术语。
在perl中,闭包被实现为一个匿名函数,它能够连续引用函数范围之外的文字变量。
当闭包函数最初被定义时,这些外部文字变量神奇地保留了它们的值(深层链接)。
如果编程语言允许一个函数传递回另一个函数(就像perl一样),闭包就有了意义。
需要注意的是,有些语言虽然提供了匿名函数的功能,但是不能正确处理闭包;python就是一个例子。
如果你想了解更多关于闭包的知识,我建议你去找一本关于函数式编程的教科书。
scheme不仅支持闭包,还鼓励更多的使用。
unity中的js与其说是js,不如说是unity脚本。unity里的js会编译,性能和本地速度差不多。在官方教材《unity4.x从入门到精通》中,unity宣称c#、boo、js的性能都差不多。
unity中的js脚本可以用c#脚本代替,自然就有了大量的数据类型、对象继承、oop概念等传统语言。
不过写varspeed5是可以的,因为编译器会自动理解为varspeed:int5。但是,其他数据类型,如gameobject和transform,将不起作用。声明变量时必须指定数据类型。。
自然,标准js中的许多特性在unity中不被支持,比如高阶函数和闭包。
unity3d中的数学对象叫做mathf。unity中的js可以直接调用c#封装的mono、dll等。
调试。log用于调试unity中的语句。每一行都必须后跟一个分号。
简而言之,unity中的js会先编译成本地代码再运行。它和标准的js只在文字上相似,但内部完全不同。
比如js是非阻塞的,而unity里的js是阻塞的;js是动态语言,而unity中的js是不折不扣的静态语言。所以前端攻城狮如果想掌握untiysjs熟练,最好的办法就是参考js官方脚本,这个我相信。手还是快的,毕竟语法很像。