首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用什么语言来制作跨平台库?

我应该使用什么语言来制作跨平台库?
EN

Software Engineering用户
提问于 2011-11-24 15:49:37
回答 4查看 2.7K关注 0票数 10

我想要构建一个SyncML解析库(无UI),它应该能够根据宿主应用程序提供的信息构建消息,并由库的方法提供。此外,库应该能够对宿主应用程序中的方法执行回调。

我希望能够编译它,并使它在尽可能多的平台上可用: Windows,Windows 7 OS,OSX,iOS,Linux,Android,BlackBerry。基本上是尽可能多的平台。

优先事项是在移动设备上提供这一功能。

问题:

  1. 我应该使用什么设置?(编程语言、编译器、IDE等)
  2. 如何为这些不同的平台编译这个库,以及如何连接到它?
  3. 还有其他消息吗?例如,涉及跨平台开发主题的文章?

我以前还没有做过这样的跨平台项目,所以任何能让我走上正确方向的信息都会受到欢迎。

我本人有C#/.NET和Objective的背景。

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2011-11-25 04:08:00

使用Java平台/ JVM是显而易见的选择--它的跨平台覆盖范围是任何语言中最广泛的,如果您有C#/.Net背景,那么概念将非常熟悉。

请注意,您不必使用Java语言来获得Java平台的好处--实际上,如果现在从头开始一个项目,我可能会引用以下内容之一:

  • Scala --如果您想要一个强大的、静态类型的、多范式的语言,在JVM上具有很好的性能。如果你有C#背景的话,就适合你了。
  • Clojure --如果您喜欢函数式编程,喜欢动态语言,并且喜欢生活在最前沿。Clojure有真正优秀的并发能力,这可能很有吸引力--链接的视频非常值得观看,以获得一些深刻的洞察力。
  • Groovy --如果您想要一种简单但有效的动态面向对象脚本语言,C#/Java开发人员将感到非常熟悉。

所有这些语言都获得了JVM (出色的JIT编译器、非常有效的垃圾收集、庞大的库集)的所有好处,但它们的工作效率要高得多。

顺便说一下,已经有一个可在中获得的称为Funambol的开源SyncML库了。不确定这在多大程度上对您有直接的帮助,但这是一个例子,说明了这样一个事实:通常有一个开放源码Java库,用于几乎任何东西.

关于其他选择的想法:

  • C/C++当然可以跨平台工作,但它需要为每个平台重新编译(和随后的测试)为本机代码。对于JVM语言,这是不必要的,因为编译后的字节码本身是可移植的。除非您绝对需要C/C++来提高性能或访问原始硬件特性,否则我认为这是一个您应该避免的头疼问题。
  • Mono形式的C#可以工作(例如,统一作为跨平台库取得了成功),但就成熟度、库可用性甚至原始性能而言,它都不是JVM的生态系统。而且,它永远不会与微软.Net 100%兼容,因为.Net有特定于windows的特性,这对可移植性来说是一场噩梦。不过,如果你决心坚持使用C#,还是值得考虑的。
  • 如果您对在客户端和服务器端使用库感兴趣,Javascript可能是一个外部选项。
票数 8
EN

Software Engineering用户

发布于 2011-11-24 16:12:57

.NET很难在很多平台上使用,目标C甚至更糟,加上.NET有点慢,ObjC在苹果之外基本上没有支持。C作为一种语言根本不值得考虑,除非有一些外部因素使你使用它。

唯一可行的语言是C++。

票数 4
EN

Software Engineering用户

发布于 2011-11-24 18:58:51

您可能想尝试一下(虚拟机)是跨平台的,Java可以用于使用Android (或Java )的移动设备,而.NET则非常简单。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/121529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档