- 主题:有没有比C++和golang更高级的静态编译型语言?
移动端我们用的还不错
【 在 keygen 的大作中提到: 】
: java一直到现在也没怎么aot啊
: aot倒是go的天生优势
: .net 的问题是跨平台搞得太晚,错了一大波server端
: ...................
--
FROM 61.149.167.*
你说的移动端是指wp?
我说的是xamarin
【 在 keygen 的大作中提到: 】
: 不是说不能用,而是说微软在移动端失败之后,它就不是主导了,只能打打辅助
: 有苹果那样的地位,就算它规定要用一坨屎来开发 iOS App,也得捏着鼻子上啊
:
--
FROM 61.149.167.*
这个c#早就能干了,roslyn几年前就搞了个compiler as a service,程序访问自己的语法树什么的,只需要引用个nuget包就行。在17年就有出版的书介绍compiler as a service了,具体什么时候开始的不太清楚。
有几个序列化的库使用了这个特性,编译期自动分析并产生代码,因为在ios上是禁止动态生成代码的。
source generator是compiler as a service进一步方便用户的简化
【 在 hgoldfish 的大作中提到: 】
: 瞄了一眼 c# 的博客。发现我也想过这个 source generator,
: 各种语言的宏,和 c++ 的 template 本质上都是在编译期生成代码。c 宏太过于简单,c++ template 则非常强大图灵完备。这两个办法都没有利用好语言本身的语法,而是生造了另外一套语法进去。而且 c++ 的 template<> 只拥有部分被描述代码的信息,qt 不得不搞了 moc 预编译分析 c++ 代码。无论怎么搞,C++ 的 template 都是半残,这条路走死了。
: lisp 以及各种函数式编程语言的宏运行在语法解析阶段,好处是灵活容易学习,坏处是太过于灵活. 每个人的 DSL 各不一样,很难看懂。
: ...................
--
FROM 61.149.167.*
跨平台开发,xamarin占有率应该是最高的,只是目前跨平台开发这个市场还比较小。
但是随着两个移动端平台的稳定,跨平台开发占比会越来越多
【 在 keygen 的大作中提到: 】
: 就是整个移动端的设备
: 微软错失了这个市场,导致 .net 在这个市场也分不到多少羹,无足轻重
:
--
FROM 61.149.167.*
猜测也许都支持,它兵强马壮的,不差这点人。
而且这俩使用场景也不完全重合,wasm功能受限,xamarin性能/功能可以和native媲美但是简易程度不如wasm
【 在 keygen 的大作中提到: 】
: 后面微软到底是支持 xamarin 还是 blazor 不太明确
:
--
FROM 61.149.167.*
它确实挺有前景,rust在wasm方面估计干不过它,后端和工具链方面差太多了,剩下的似乎没有能打的了
【 在 keygen 的大作中提到: 】
: blazor 已经可以绑定到移动端和桌面端 native 了
: 就看后面框架能不能打磨得足够简单易用了
: 就冲这个这个势头和进取精神我撑它
: ...................
--
FROM 61.149.167.*
你说的情况这个是两步,现在 Source Generator直接就是使用普通c#文件,不需要csc文件
https://github.com/dotnet/roslyn/blob/master/docs/features/source-generators.cookbook.md
【 在 hgoldfish 的大作中提到: 】
: 这是以库的形式提供的。
: 我觉得应该做到语言里面。比如,c# 可以弄个 .csc 类型的文件,编译器运行之前先找到一下工程目录底下所有 .csc 类型的文件,编译并把它们作为模块插入编译器,作为插件。再弄一种类似于 python 的 decorator 语法,凡是被 decorator 描述的函数,都把 ast 传给编译器插件处理。
:
--
FROM 61.149.167.*