包括不限于错误 /异常处理,泛型,OOP 等, 还有就是缺失类似 spring 的 bean 扫描功能
101
cmdOptionKana 2022-05-13 10:18:56 +08:00
@lysS 勉强可以,主要看楼主究竟有什么需要,打包的目的是方便使用还是要求运行效率高,如果要求二进制是目的是运行效率高,又要求生态好,那就只有 C/C++, Rust, Go 等几种选择了。
其实我就是想听楼主说一句 Python 那种打包不行,要类似 Rust/Go 那种二进制才行,那就能一下子排除掉一大堆语言了。最终的目的就是想听楼主说 “我也不知道我想要什么” 或者 “我想要一种不存在的完美语言”。 |
102
jun771480011 2022-05-13 10:25:39 +08:00
别问,问就是 PHP
|
103
bthulu 2022-05-13 10:50:16 +08:00
@ComputerIdiot 看了, 里头用 Task.Run 启动一个 await Task.Delay(xxx)的任务来实现的.
``` static void RT(Action action, int seconds, CancellationToken token) { Task.Run(async () => { while (!token.IsCancellationRequested) { action(); await Task.Delay(TimeSpan.FromSeconds(seconds), token); } }, token); } ``` 如果不用 Task.Run, 直接定义一个 async Task 方法调用, 像下面这样, 这跟上面那种有啥区别, 是不是都是一个意思? 还有, 这个任务启动, 且主线程从 RT 方法里退出后, 就没有任何地方引用这个无限循环的任务了, 长时间运行过程中, 这个任务有没有可能会被 GC 回收掉? ``` static void RT(Action action, int seconds, CancellationToken token) { _ = RT0(action, seconds, token); } static async Task RT0(Action action, int seconds, CancellationToken token) { while (!token.IsCancellationRequested) { action(); await Task.Delay(TimeSpan.FromSeconds(seconds), token); } } ``` |
104
huruwo 2022-05-13 10:55:54 +08:00 1
rust 绝对是邪路
|
105
userforg2021 2022-05-13 11:09:53 +08:00
|
106
bequt 2022-05-13 11:12:16 +08:00
vlang 是未来吗?
|
107
bthulu 2022-05-13 11:45:38 +08:00
@userforg2021 你这些知识都哪里学到的, 有书或者网址么?
|
108
buffzty 2022-05-13 12:02:13 +08:00
每次看到菜鸟发这种帖都想笑. 你甚至都不能称为程序员,只能算个 cv 搬砖的,怎么好意思讲出这些笑话来的
|
109
wdv2ly 2022-05-13 12:16:10 +08:00 via Android
没人提名 typescript 吗
|
111
laowudxf 2022-05-13 12:33:54 +08:00
Swift 说正是在下! Web 开发框架 Vapor ,号称 Swift 版 Laravel ,静态语言,语法糖很多,打包二进制,异步非阻塞,内置 WebSocket ,基础生态有 SSWG 撑腰,其他的生态就不算太好。
|
112
XCFOX 2022-05-13 12:59:33 +08:00 3
C# 宇宙第一。
TypeScript 也很不错,我称之为 C#-Lite 。而且 TypeScript 能无缝衔接 JavaScript 生态,生态非常繁荣。 Anders Hejlsberg YYDS |
113
superchijinpeng 2022-05-13 13:04:37 +08:00
Kotlin
|
114
rogerrrrrr 2022-05-13 13:10:17 +08:00
语言太甜不怕得糖尿病吗
|
115
securityCoding 2022-05-13 13:10:42 +08:00
@vchroc 我没有明白你到底想要什么程序的自动化,不想重复就自己不断的抽象出来就好了啊,java 不用你做无非是语言层面或者类库已经帮你做好了。策略模式注册自动化你抽象一个 factory 类库出来不就好了吗,跟语言有多大关系呢
|
116
vchroc OP @wenning 当前基本是这么处理的,模拟了一部分 java 枚举的功能。
但其他人想用这个特性的时候,需要额外安装某些组件,有额外的沟通成本,为什么不能内置? |
117
vchroc OP @securityCoding 生态。Go 的生态里目前没有发现很方便的自动注册发现组件
搜了下 goplus 可能是个选择,至少比 Go 官方那几个固执的老头强 |
118
vchroc OP @rogerrrrrr 😂
|
119
lidashuang 2022-05-13 13:42:26 +08:00
Elixir
|
120
userforg2021 2022-05-13 13:44:18 +08:00
@bthulu CLR via C#
|
121
wonderfulcxm 2022-05-13 14:11:15 +08:00 via iPhone
为什么 go 的帖子经常回复分分钟过百?考虑语言还是太初级了,务实的程序员面向业务开发。
|
122
Akitora 2022-05-13 14:26:13 +08:00
只是自己捣鼓的话,Kotlin+spring native 可以玩玩,虽然目前还有些和别的库的兼容性问题
|
123
asuraa 2022-05-13 14:49:53 +08:00
@cmdOptionKana asp.net core 也可以直接打包为二进制文件 无需安装 runtime
|
124
shiweifu 2022-05-13 15:39:08 +08:00 1
喜欢甜口的可以试试 Ruby
|
125
likeccpo 2022-05-13 16:46:53 +08:00
rust 啊
|
126
bigdaxin 2022-05-13 17:45:30 +08:00
试试全世界最好的语言?
|
127
cenbiq 2022-05-13 18:31:51 +08:00 via iPhone
我写过 Java 、C#、Kotlin 、JS 、TS ,其中 Kotlin 和 TS 都有不少的 C#风味,建议使用 Kotlin 搭配 Java 技术栈,这应该是最优解。但也可以了解了解 C#
|
129
ciaoly 2022-05-13 20:17:19 +08:00 via Android
nodejs !
|
130
xsen 2022-05-13 20:24:28 +08:00
@wonderfulcxm #119 因为用 go 心智负担低,很多人都用脚投票了。而且有多年经验的人,用 go ,大概率是一圈语言都转了个遍,最后选了 go
|
131
jeesk 2022-05-13 20:28:27 +08:00 via Android
scala
|
132
jeesk 2022-05-13 20:29:09 +08:00 via Android
scala 可以享受 java 所有的生态, 😅
|
133
wonderfulcxm 2022-05-13 22:12:42 +08:00 via iPhone
@xsen 为什么都是这些陈词滥调?都是什么心智负担低,写代码的又不是弱智。
|
134
ychost 2022-05-13 22:29:59 +08:00
C# 满足你的所有幻想
async/await 、EF 、LINQ 爽的一批 |
135
securityCoding 2022-05-13 22:32:43 +08:00
@xsen go 确实简单易上手,工程能力非常强。cr 代码心智负担很小
|
136
yuekcc 2022-05-13 22:52:42 +08:00
kotlin 可以的。不想要 jvm 的,就 rust
|
137
Rocketer 2022-05-13 23:42:39 +08:00 via iPhone
自己玩就 C#,你要的这些都有。只是国内用户偏少,工作不好找。
很多人觉得 C#“生态不行”,其实那也只是对国内而言的,如果你有一定的英文阅读能力,C#的生态与 Java 是同一级别的。nuget 像 npm 一样要啥有啥,躺平做个调包党很舒服。 |
138
cokyhe 2022-05-14 06:07:56 +08:00 via iPad
语法糖少是优点吧 甚至格式都一致 看别人代码不累。
go 的错误处理真是烦 s 了 |
139
FrankHB 2022-05-14 17:04:11 +08:00
提 Rust 的,我就有点好奇,满口 unwrap 口味怎么样……
@cmdOptionKana 别尬黑,http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0534r3.pdf 就没落地,没法用可移植的 C++取得合理的实现。 (虽然你提到的几个语言一样都没这本事,反倒这玩意儿在 boost 里现成有还算能用的实现。) 和 OP 的需求相关的后果是,没有在语言中确保提供类似可移植的功能,就不可能把一般意义的异常处理实现为语法糖,原则上必须原生。(虽然 C++异常一坨 ABI 屑问题,虽然大多数语言一样做不到,以及做得到的语言多数同时自带原生异常,等等……不过都是另外的问题了。) |
140
dbskcnc 2022-05-14 17:09:05 +08:00
|
141
zzhaolei 2022-05-14 17:48:57 +08:00
为什么用 Rust 就满口的 unwrap ?如果全是 unwrap ,那和 go 不处理 err 有区别吗?而且 Rust 拆包也有语法糖,为什么不用呢
|
142
xsen 2022-05-14 18:46:45 +08:00
@dbskcnc #138 还真是,哈哈哈哈。这句话或许有道理(哈哈哈),
I also noticed that those who dislike Go and like Rust instead, tend to be in their 30s and under. |
143
xsen 2022-05-14 18:48:56 +08:00
@cokyhe #136 其实习惯了 c 那样的错误处理的,都习惯 go 这样的错误处理
一定程度上也与做的偏底层有关——能处理的错误都处理,而不是就往上抛,个人觉得这是个好习惯 |
144
xsen 2022-05-14 18:51:00 +08:00
|
145
pipi32167 2022-05-15 18:37:25 +08:00
是时候来个 Go++了
|
146
Aloento 2022-05-15 19:16:50 +08:00 3
看到这么多人推荐 C#我就放心了
这世界还是正常的 |
147
beyondex 2022-05-15 21:41:51 +08:00
.NET C#
|
148
Aloento 2022-05-23 02:46:25 +08:00
@bthulu 是又不是,你可以看到一个叫 ConfigureAwait 的东西,建议搜一下看看
不会被 GC 回收,因为这是一个 Task ,一旦开始执行后其实调度器会持有对它的引用 但是如果不开始或者结束,那就有可能会被销毁 |
150
bthulu 2022-05-23 08:25:59 +08:00
@Aloento 哪里有现成的库啊,你是说 Timer,FluentScheduler,TaskScheduler,Gofer.NET,Coravel,Quartz.NET,Hangfire 这些么?你真有看过这些任务调度框架嘛?里头全都是 ScheduleAtFixedRate 这种到点定时调度功能, 没有 ScheduleWithFixedDelay 这种完成延迟调度功能
|
152
haolongsun 2023-08-23 23:43:10 +08:00
挖坟一下 Kotlin 是真的甜,和 c#一样甜掉牙了
|