一点感想
用C#,C++越多,发现做得重复的事情越多,当初自认为重要的技术细节,越来越显示不出生产力。
首先,不可否认,C#, java, C++等都是非常优秀的语言,一个偌大的中国,也没有发明不了可以与之媲美的语言。
但是,这些语言,对完成我们的业务来说,还是远远不够。
这说明,一门实用语言编译器开发, 是多么困难的事。
各个不同的业务,用到的逻辑,不仅仅是千差万别。
以下两句话,修改自http://www.cnblogs.com/parallet/archive/2011/06/22/2087099.html
很多时候,用于逻辑的代码, 才那么几行, 其他的代码都为了那些枝杈努力去了。
一旦函数之间的嵌套比较深入, 就会变得非常复杂, 而且它很难实现各种循环, 更难实现的, 很多时候, 代码给拆分出非常多块, 基本上每一小块都要try/catch.
上面两句话,说的是异步编程的问题,如果你每天都是在编写异步程序,对这个问题,就会有比较深的感觉。
实际上,这样的业务领域的问题,太多了。
如果你和你的团队,几十年来,天天都在有限元的计算, 人工智能计算,机器人控制,数据挖掘,图像处理,而不是一些社会上非常大众的管理信息系统,你越来越发现,你用的工具,是那么的丑陋,越来越不能满足你的要求,越来越让你崩溃,没有了当初初入行时的兴趣和幻想,沉得自己做的事,没什么意义。
不信,你去一些做专业性很强的重复工作的部门,你会了解这个问题是多么的严重:多少人为些付出了沉重的代价,健康,家庭的自吹和睦,甚至生命!
虽然外面的人,对你这个行业很敬畏,觉得高深,这很大成分是因为所使用工具的落后:技术要求高,重复性强,整天专注于繁琐细节,磨灭了创新。
甚至有一天,你再也忍受不了,要么发明自己的
工具(语言),要么转行。很多时候,我们所要的,其实就只是在原有工具上加上一点东西,就可以了。
可这很难很难。
如果我们的电脑内在小了,我可以换个大的从500M换到4G,移动服务不喜欢,我们可以换个联通的...
可是,软件却没那么容易,想换就换。
.net十年了,可在.net平台,可用的语言,也就那么区区的几种,别的多是出于个人爱好,或者科学研究,多处于实验阶段,实用的语言还非常少。
虽然visual studio支持dsl,但你要是试过了DSl,你就会发现,那个DSL开发,实际上是多么的复杂,关键还不实用。
即使你不写一行代码,直接打开附带的示例,运行后,鼓捣鼓捣下,竟然就会出现异常,让你手中无措。
既然visual studio有那么强的Extensibility,有visual studio package, vsix project, 谁能让中国清华大学(或者别的大学)计算机专业的30%的本科生独立做出一个类似于linq的OSQL出来?做出一个DOS系统的命令出来?
不要说后面的各种异常,单是这些DSL怎么和已有的宿主语言集成,就是个问题。
难道我本来只想在linq上,加入OSQL的功能,就要自己从头到尾编写一个编译器,实现C#,linq?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?