题
我一直在与客户讨论一个项目,他们想使用一种语言来部署到尽可能多的平台。
(我不确定这是一个好主意,因为每个平台都提供不同的用户体验和UI隐喻。在某些情况下,屏幕尺寸也有所不同。此外,无论我们使用什么语言,iPhone都无法运行。 ,我离题...)
该项目将每天显示一个任意的文本块,并将跟踪用户是否“读取”它。桌子上的其他一些功能是“ nags”,并且能够转到其他日子的文字。
我知道CS3天的闪光灯,我认为这转化为空气,但我不知道空气是否可以做我们想做的事。
另一方面,我(a)对Java或Python的经验很少,但是这些似乎也是很好的竞争者。
我在这里应该使用哪种语言?为什么?
编辑:
这也将在桌面平台上运行。
解决方案
ActionScript 3是语言。它在各种平台上运行。在浏览器(Flash Player)中,在台式机上(AIR),在浏览器(Android)中的移动设备上以及本机应用程序(Android和iOS)。忘记闪光灯。
其他提示
这些语言具有很好的部署因素:
JavaScript。
为什么?它在浏览器上运行,并且您关心的大多数平台都有浏览器。但是,某些下端手机可能严重剥离了浏览器(或Opera mini,仅在代理侧支持JavaScript,并且客户端JavaScript非常有限)。
JVM
Java虚拟机在几乎所有手机,桌面或服务器计算机上都无处不在。所有其他事情都是平等的,如果您想要简单的便携性,也许是最好的平台。几乎所有新旧手机都支持JVM,唯一的主要例外是iPhone。
Python
Python在Linux和Unix World中无处不在。该语言在不同平台上具有非常一致的行为,您几乎不需要其他工作即可在Python中编写跨平台程序。但是,默认情况下,大多数Windows不会使用Python发货,并且大多数手机不支持Python。 Otoh Jython,将Python代码编译到JVM;这结合了Python的一致性和易用性与JVM平台的普遍存在。
如果您不需要关心iPhone,那么JVM开发是必经之路。如果您讨厌Java的语言语法,那么Jython是更好的选择。但是,如果您需要最多的便携性,那么JavaScript可能是必经之路。但是,在JavaScript中写任何东西是痛苦的。
C
您可以找到可以梦dream以求的任何平台的GCC版本,从最微小的微控制器到最大的超级计算机,如果您找不到它,您只需构建自己的工具链即可。
免费的帕斯卡 (又名FPK Pascal)是开源32和64位专业PASCAL编译器。它可用于不同的处理器:
- 英特尔X86
- AMD64/X86_64
- POWERPC
- PowerPC64
- Sparc
- 手臂
目前支持以下操作系统:
- Linux
- freebsd
- haiku
- Mac OS X/Darwin
- dos
- Win32
- Win64
- Wince
- OS/2
- Netware(LIBC和经典)
- 形态
停产的1.0版本还支持摩托罗拉680x0。
拉撒路 是一种开源跨平台IDE,为Pascal和Object Pascal开发人员提供了Delphi-Mimic开发体验。它是为自由Pascal编译器开发和支持的。 Lazarus可用于Microsoft Windows,几个Linux发行版,FreeBSD以及Mac OSX。
使用.net, 单核细胞增多症, GTK#, 单调 和 android的单声道 您可以使用任何.NET语言到达绝大多数平台,并在每种语言上都有一个本地的UI。
- .net会让你
- asp.net的网络
- Windows和Mac上网络的Silverlight(Mono的Moonlight也可以让您进入Linux!)
- Windows Phone的Silverlight 7
- 带有GTK#的单声道会让您
- MAC OSX
- Linux
- 也许其他人,但看起来不太本地。我听说有些人与Mono一起在Wii上获得了。 。 。
- iPhone,iPad等的单调触摸。
- 单迪特的Android
- 黑莓.NET - 首先,我听说过,但是他们在黑莓上说.net,我假设使用QT。
无法想到您在那里缺少的任何其他主要平台。你?当然,这指出了您可以用来针对所有这些平台的框架。我会让你选择语言。 C#,氧气或VB.NET是.NET上最受欢迎的。 Oxygene(包括在Delphi Prism中)具有与Delphi Anitial在本地Windows开发中部分兼容的额外好处,但是如果您想使用Ironruby或F#,我们将不会阻止您。
听起来这是正确的移动平台吗?在这种情况下,您几乎是不幸的,因为没有语言可以统治所有语言。有些产品可以将解决方案交叉到另一种方案(例如 http://www.xmlvm.org/android/)但是,除此之外,您还必须使用母语/环境。
嗯,怎么样 哈克斯?您现在可以针对许多平台,如果您了解OCAML,您可以免费为您喜欢的任何新后端写一个新的后端。
我 最近阅读了Netflix如何使用HTML5部署到400多个平台。 绝对值得一读。
通常,我不会尝试使用一种语言。在公司,我在我们的工作中使用各种语言和技术。就像您使用合适的工具一样,它是为了将正确的语言用于合适的工作。我不会使用螺丝刀锤击指甲,就像我不会使用锤子更换汽车的凸耳螺母一样。
Livecode / Runtime Revolution
在Mac,Windows和Linux上部署,并为其他各种平台制作独立软件。
使用C#.NET,您可以使用Mono(For Android),Monotouch(for Apple)和BlackBerry.net使用C#.NET本地部署到任何主要的移动平台(与HTML 5个平台(例如PhoneGap)一样差异很大)。
Microsoft的语言和平台得到了许多寻求该技能的雇主的支持。如果您没有完全出售,只需访问您喜欢的技术工作网站,然后开始在搜索框中插入不同的语言/平台。您将了解要采取哪个方向。
Adobe Flash/Flex
(不确定您的问题是否被排除在外)
在几乎所有浏览器,大多数移动平台以及空气,大多数桌面平台中运行。
手表: http://www.youtube.com/watch?v=22vicdlzmki&feature = player_embedded