有没有这样一种编程语言

2019-10-08 22:40:24 +08:00
 zacharyjia

想要有以下这些特性,V 站大佬们见多识广给分析分析:

  1. 可以和 C/C++交互,在动态库层次上进行互相调用,即能编译成动态库给 C/C++调用,也能调用 C/C++生成的动态库;
  2. 有统一的包管理机制( C/C++千奇百怪的编译系统和依赖管理实在是头疼),各类常用库较为齐全;
  3. 性能较高,应该是 Go 或者更高级别的;
  4. 语法相对简单,开发效率较高。

最近把各种语言都看了看,发现符合大部分要求的就是 Rust 和 Go 了,但是 Rust 的限制实在太多,写起来脑壳疼。Go 的话使用 CGo 和 C 进行交互的时候貌似开销不小,性能下降得挺厉害。

然后其实还看了看 JVM 系和.NET 系。JVM 要想和 C/C++互调,基本上得有个 GraalVm 之类的东西,但是我看了一下一方面好像还不太成熟,另一方面在互相调用的时候语法也不够直接,需要很多额外的适配。.NET 的话其实现在有了 CoreRT 这样的东西,可以把 C#编译成 Native 代码,但是好多年了也不够成熟,随便写了一些 Demo 都有 Bug。

各位大佬看看,有没有什么比较合适的,感觉需要的是一个Simplified Rust?实在没办法就只能回去怼 Rust 编译器了,头疼🤣

6032 次点击
所在节点    问与答
42 条回复
momocraft
2019-10-08 22:56:43 +08:00
交互是什麼意思 以任意比例任意方式混合?
看過 JNI 嗎
zacharyjia
2019-10-08 23:01:32 +08:00
@momocraft jni 应该是只能从 java 调 c 吧,不能把 java 生成 dll 给 c 调用。其实大部分语言都能调起 dll 来,我们更希望能用其他语言生成 dll,这样可以慢慢替代原来用 c 写的库。
cmdOptionKana
2019-10-08 23:04:55 +08:00
V 语言? vlang.io
cmdOptionKana
2019-10-08 23:06:19 +08:00
V 语言宣称结合了 rust 和 go 的优点
oyjc
2019-10-08 23:06:42 +08:00
nim
zacharyjia
2019-10-08 23:12:11 +08:00
@cmdOptionKana 要是 vlang 真能像他说的那样那还真的挺合适,但是前段时间好像 v2 上还讨论过这玩意儿到底靠不靠谱😂😂
Leonard
2019-10-08 23:14:58 +08:00
objc😏
momocraft
2019-10-08 23:16:04 +08:00
jni 有嵌入 c 的用法 (我沒用來寫過大東西)
https://docs.oracle.com/en/java/javase/11/docs/specs/jni/invocation.html
arYUWang
2019-10-08 23:16:14 +08:00
不是大佬,就想抛个砖。Cython 难道不符合这个要求吗?
Trim21
2019-10-08 23:24:22 +08:00
除了性能 cython 都符合…
clino
2019-10-08 23:27:10 +08:00
lua 其他符合,就是性能可能不符,但已经是动态语言里最厉害的了
bequt
2019-10-08 23:51:45 +08:00
@zacharyjia vlang 年底可以自举了吧
这货最近是真的活跃
silhouette
2019-10-08 23:59:24 +08:00
MATLAB
ppphp
2019-10-09 00:30:54 +08:00
能编成动态库,那只能是编译型语言了,编译型语言就那么几种,去 llvm 和 gcc 下面看一圈不就完了
wayslog
2019-10-09 00:47:32 +08:00
Rust 吧。学习,持续的学习,是一种能力,加油。
sosilver
2019-10-09 01:10:21 +08:00
还有个 Zig
dawn009
2019-10-09 01:48:43 +08:00
所以,没考虑 Swift 的原因是哪一条?
noqwerty
2019-10-09 01:51:20 +08:00
除了性能 R 都符合,我现在很多数据处理类的脚本用 R 比 Python 还顺手了
lizhuoli
2019-10-09 02:59:42 +08:00
@dawn009 不支持 C++调用,只能 export C。所以为啥不直接用 Objective-C++和 Rust ? Lark 就是大量这样的 Rust 代码和 OC++混编才跨平台的
66450146
2019-10-09 07:38:18 +08:00
@dawn009 没有 C++ interop 第一条就砍了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/607236

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX