标签: dynamic-languages

嵌入式设备的动态语言?

我需要将动态语言部署到一个小型嵌入式Linux设备上,并且很难找到合适的语言:我想用这种语言构建一个小型的Web应用程序(使用像Sinatra或Camping这样的小框架)并编写一些用于维护的脚本.

我更喜欢Ruby,因为我有一些经验,但经过几天尝试交叉编译,我只能构建裸线解释器,没有libs(miniruby).它的问题是,它只是太大了:剥离超过1 MB!

您使用的是哪种语言,以及使其运行有多困难?

ruby dynamic-languages embedded-linux

4
推荐指数
1
解决办法
1798
查看次数

除了性能问题,为什么Java仍然选择Groovy/JRuby等?

[这是关于最新技术的经验问题:我不是在问Java是否比在JVM中运行的动态语言更酷或更酷.

除了性能是主要决策因素的情况之外,公司/开发人员是否仍然愿意选择Java而不是Groovy,JRuby或Jython?

编辑:如果答案是"是",为什么?

个人注意:我要问的原因是,虽然我在Ruby中做了一些我的专业工作(现在不是JRuby),但在我的个人项目中,我使用的是Java.虽然我在Groovy中编写了非平凡的应用程序,但更喜欢Java,但我想知道我是否应该克服它并在Groovy中做所有事情.我喜欢Java,因为我觉得静态打字可以节省我的时间并帮助重构.(不,我不熟悉Scala.)但是,我觉得这个非常经验的,关于主题的编程问题可能会为我的决定提供信息.

java groovy dynamic-languages jruby

4
推荐指数
3
解决办法
1381
查看次数

Ruby:比Java/C#更灵活?

我是学习Ruby的新手,还是它有更多的方法来编写(相同的)Java/C#的东西?另外,如果它比Java更灵活,那么Ruby的语言特性通常不会用于避免混淆吗?

例子可能是并行赋值和编写字符串的所有不同方法吗?

注意:我不是要求与Java/C#进行比较......只是这个语言问题,请...

编辑:我知道C#,Java和Ruby是强类型的,并且只有Ruby(如Python和其他)是动态类型的(而Java/C#是静态类型的).一些答案说动态类型的语言更灵活.这是否正确,它如何影响语法?我只询问语法灵活性.

(PHP也是动态类型的,就我所见,它似乎没有 Java/C#更灵活.再说一遍,我的意思是语法方面,不是在部署方面,也不是任何其他方面......)

ruby syntax language-features programming-languages dynamic-languages

3
推荐指数
1
解决办法
964
查看次数

除了动态类型,是什么让Ruby"比Java更灵活"?

我几乎一直在使用Java,因为它刚出现,但在过去的五年中已经被烧毁了,即使做最简单的事情也变得多么复杂.我开始在我的精神科医生的推荐下学习Ruby,呃,我的意思是我的同事(年轻,冷静的同事 - 他们使用Macs!).无论如何,他们不断重复的一件事是,Ruby是一种"灵活"的语言,而不是像Java那样的老式,更加拙劣的语言,但我真的不知道这意味着什么.有人能解释是什么让一种语言比另一种语言"更灵活"?请.我对动态类型有所了解,可以看出这对简洁有什么好处.Ruby语法很漂亮.还有什么?动态打字是主要原因吗?

ruby java dynamic-languages duck-typing

3
推荐指数
3
解决办法
1211
查看次数

是否可以将 python 函数转换为类?

我是来自 C++ 背景的 Python 新手,这是我第一次看到一种只包含对象的语言。我刚刚了解到类和函数也只是对象。那么,有没有办法将下面的函数转换为类呢?

In [1]: def somefnc(a, b):
...:     return a+b
...: 
Run Code Online (Sandbox Code Playgroud)

我首先尝试将__call__变量分配给以None消除函数的“可调用性质”。但正如您所看到的,__call__成功替换为None但这并没有导致该函数在调用时停止添加数字,尽管在分配给somefnc.__call__(1,3)之前正在工作somefnc.__call__None

In [2]: somefnc.__dict__ 
Out[2]: {}

In [3]: somefnc.__call__
Out[3]: <method-wrapper '__call__' of function object at 0x7f282e8ff7b8>

In [4]: somefnc.__call__ = None

In [5]: x = somefnc(1, 2)

In [6]: print(x)
3

In [7]: somefnc.__call__

In [8]: print(somefnc.__call__(1, 2))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
ipython-input-8-407663da97ca     
in <module>()
----> 1 print(somefnc.__call__(1, 2)) …
Run Code Online (Sandbox Code Playgroud)

python dynamic-languages python-3.x

3
推荐指数
1
解决办法
3674
查看次数

哪些脚本语言与ECMA类似?

我正在寻找一种ECMAScript替代方案,作为自定义应用程序逻辑的脚本语言.我喜欢ECMA,特别是新规范的语法(如AS3).

不幸的是,AS3引擎不是开源的,无法集成到项目中.我想要一种专为面向对象使用而设计的脚本语言.

具体来说,是否有一种语言:

  • 静态类型变量(可选)
  • 课程,包括公共/私人会员
  • 继承,包括接口
  • 软件包(可选)
  • 清洁语法
  • 必须能够作为应用程序的内部脚本语言(如浏览器的Javascript)接口,不能是外部系统调用.

我宁愿做的事情

  • 凌乱的ECMA prototype对象

您了解哪些语言符合此个人资料?我很难找到专为良好的面向对象设计而设计的高质量脚本语言.

javascript scripting-language dynamic-languages actionscript-3 ecma262

2
推荐指数
1
解决办法
1332
查看次数

你怎么知道一种语言是否是一种"动态语言"?

我正在努力更好地处理语言"动态"的真正含义.我对Lingo有很多经验,Lingo是Adobe(以前的Macromedia)Director产品系列的脚本语言,我只是想知道它是否会被视为"动态语言".

变量和列表的处理方式似乎非常"动态语言" - 对我而言.

有了变量,你只需要写foo = 3bar = "Hello World".你没有将变量声明为- int或者string- 将数据表示为原样.

使用列表,您可以编写类似的内容miscCollection = [3, "Hello World", #helloWorld, ["Embedded List", "Goes Here", 3], [#phrase: "Property List goes here", #value: 3]].这不一样tuple吗?

这些功能是否足以符合"动态语言"状态?

有趣的是,我一直在使用C#而且导演/ Lingo要少得多,但是现在对动态语言的所有兴奋,我想知道我是否真的反对这个问题.

编辑

关于Mark Rushakoff回答,下面,这里是试图分析Lingo是否有资格使用这篇维基百科文章 "动态" :

  1. Eval- Lingo有dovalue关键字.do将执行整个命令,例如,do "foo = 23"do "foo = sum(20, 3)".value尝试将字符串转换为数字,但它不仅仅是一个解析运算符 - 它实际上可以将变量的字符串表示转换为其数字,例如,假设 …

c# lingo dynamic-languages dynamic esoteric-languages

2
推荐指数
1
解决办法
368
查看次数

Clojure代理总是调用super.method()吗?

使用Clojure代理时,fns传递给代理应该覆盖现有方法还是与它们一起调用super.method()

在以下代码中,RequestHandler.get()与代理一起被调用get [].

;see: http://github.com/paulosuzart/JTornado
(ns org.ctornadoweb)
(import '(org.jtornadoweb Web$RequestHandler))
(import '(org.jtornadoweb HttpServer Web$Application))


(let [myHandler (proxy [Web$RequestHandler] [] 
                  (get [] 
                    (.write "Hi CLJ"))
                  (post []
                    (.write "POST")))]

(.listen
  (HttpServer.  
    (.add (Web$Application.) "/" (class myHandler))
    false nil false) 8089))
Run Code Online (Sandbox Code Playgroud)

编译/继承版本也是如此:

; Starts a JTornado HTTP Server and a sample RequestHandler.
; Bit verbose due to compilation directives. Recommendation is to generate 
; a set of macros to hide this.
(ns org.ctornadoweb
; …
Run Code Online (Sandbox Code Playgroud)

functional-programming dynamic-languages clojure

2
推荐指数
1
解决办法
755
查看次数

powershell和ruby之间的区别

我是动态语言界的新手,并试图找到一个好的起点.

看看微软如何减少Iron Ruby在其产品中的作用,我正在寻找一种将在dotNET平台上支持的动态编程语言.您是否可以列出在一个而不是另一个中找到的特定功能,以帮助您进行选择.

.net powershell ironruby dynamic-languages

2
推荐指数
1
解决办法
2312
查看次数

变量没有符号的语言如何处理动态调度/调用?

动态语言允许从值仅在运行时获知的变量调度和调用值.Perl中的对比示例:

  1. 班级名称

    这些都是相同的,除了第一个是边缘情况.如果在具有该名称的范围中定义了子例程,则调度发生在其返回值上,这导致难以理解的错误.引用的版本总是安全的.

  2. 方法名称

  3. 功能名称

我想知道,变量名称没有符号(通常或根本没有)的语言如何处理这些问题,特别是他们的语言设计者如何消除以下歧义?

  1. 解析类名称FooBar.some_method,其中类FooBar可能是名称文字,或者是值为类名称的变量
  2. 调度SomeClass.foo_barwhere方法foo_bar可能是name literal或其值是方法名称的变量
  3. 调用foo_bar函数可能是名称文字或值为函数的变量

我主要对这个问题标签中提到的三种语言感兴趣,但是如果你知道一种不同的动态语言,你也可以回答.

javascript ruby python dynamic-languages sigils

2
推荐指数
1
解决办法
496
查看次数