资讯专栏INFORMATION COLUMN

历经10年,我写了一个没人用的编程语言

DataPipeline / 2961人阅读

摘要:周末在网上闲逛,发现了一个叫波兰程序员,从年开始,开发一个叫做的语言。注意,不是语言啊,在字母上还有一撇,这是个波兰字母,我搜了一下发音好像有点像赤。

周末在网上闲逛, 发现了一个叫Piotr Fusik波兰程序员,从2011年开始,开发一个叫做Ć的语言。 

GitHub :https://github.com/pfusik/cito

注意,不是C语言啊,在字母C上还有一撇,这是个波兰字母,我搜了一下发音好像有点像“赤”。

他一个人整整维护了10年!

这个语言是干嘛的呢? 

当然可以用它去写程序,不过它的厉害之处在于:可以自动编译成 C, C++, C#, Java, JavaScript, Python, Swift, TypeScript and OpenCL C, 是不是很酷?!

我来了兴致,决定尝试一下。 

Ć使用C#写的, 需要 .NET 5.0, 这并不难,一会儿就安装好了。

然后用"赤"语言写个Hello World: 

public class HelloCi{    public static void SayHello()    {        Console.WriteLine( "Hello, world!");    }}

满满的C# Style 。 

完成了“赤”语言源码, 然后就可以把它编译成各种其他语言了。  

先试试Python :cito -o hello.py hello.ci  

结果如下:

class HelloCi:  @staticmethod  def say_hello():    print("Hello, world!")

再试试JavaScritpt :cito -o hello.js hello.ci  

"use strict";function HelloCi(){}HelloCi.sayHello = function(){  console.log("Hello, world!");}

编译成C语言会是什么样?cito -o hello.c hello.ci      

#include #include #include "hello.h"struct HelloCi {};void HelloCi_SayHello(void){  puts("Hello, world!");}

总之,一次编写,跨语言到处编译,看起来非常牛的样子。

没有深入尝试,但是我想这哥们应该会在编译以后的代码中体现各个语言的最佳实践,而不是拼凑的垃圾代码。 

可是这样的语言有什么用呢? 

比如用Ć怎么去写Web程序?

对不起,没有类库和框架,没有生态,得从头写起。

即使是哼哧哼哧写出来了,如何编译成别的语言呢?

每个语言都有自己独特的类库,所以也编译不了 —— 得了解所有语言的所有类库的所有细节,估计只能神才能办到吧。

Ć这样的语言,只能写那些完全独立,不依赖第三方类库的程序,比如Piotr Fusik用它实现了图像解码器,加密、解密等工具。 

但是这样的程序又有多少呢?

可是这哥们居然坚持了10年之久,就是凭兴趣做事,这是真爱啊。

我的知识星球“码农翻身”的球友“孔令贤”说: 

这种项目在现实中没什么卵用,但作为个人业余时间的兴趣和研究,对编程语言底层逻辑的基本功的提升却大有裨益。如果跟工作相关,那自然最好,否则拿出来吹吹牛逼当做茶余饭后的消遣也还不错,让人眼前一亮

确实是这样,做这样的项目需要精通多达10种编程语言,同时精通编译原理,对个人的技术功力大有提升。 

我到LinkedIn看了一下,他经历丰富,2004年从华沙大学毕业以后,做过兼职,在公司做过全职,自己开公司干过,现在在Intel,做高级编译器工程师。

我想他应该不是996,应该没有无穷无尽的需求,他有时间、有精力十年如一日地维护这样的项目,追随自己的兴趣。 

这样程序员多了,一定会产生伟大的技术发明和创造。

相信大家都有这样的体验:高强度,满负荷、被逼迫的软件活动只会产生垃圾。

好的、有创造性的想法通常产生在自己感兴趣的领域,在适度的压力下,在不断的追求中,突然灵机一动想出来的。

“有闲”很重要。 

年轻时我也有自己的梦想:

可是,梦想败给了现实。 

我丝毫不怀疑中国有很多天才程序员,只是绝大多数都被几座大山压着,每天累得要命,没有机会用自己的聪明和才智去创造。

算了,不说了,我去干活去了。 

(完)

最后,再介绍一下我的一个备份号“想躺平的程序员”,防止被人投诉后失联,请小伙伴们保存一下吧。

这个号不会空着,经常会发一下轻松有趣的东西,让大家在紧张的工作之余乐呵一下。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123961.html

相关文章

  • SF博客小助手v1.1.0更新日志

    摘要:登陆通过动态获取的和进行登陆操作,给授权。发表博文核心操作,未来支持更多业务逻辑。同时保证账号的安全。预览博客小助手正在申请申请成功开始登陆登陆成功开始发表发表成功地址是安全退出 前言 我是在第一个版本发布了之后的第二天才发现这个bug的,因为segmentfault每天只允许发表10篇博文,而我,不知道。 因为最早的时候,这个项目我从未想着对外发布,但是嘛,入乡随俗,javasc...

    Sourcelink 评论0 收藏0
  • 我是如何在自学编程9个月后找到工作的

    摘要:昨天在我在国外网站上看到一篇文章,作者分享了他自学编程个月后找到工作的经历。而本文中,我主要针对想要通过学习编程找工作的角度来谈。我在年月犯了一个错误我认为首要任务是找到一份前端开发的工作。 昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他 自学编程 9 个月后找到工作 的经历。文章不到一天就得到3千多赞,2百条回复。我看了下内容,非常中肯,其中有不少建议也是我在编程教室...

    gaosboy 评论0 收藏0
  • 假如时光倒流,我会这么学习Java

    摘要:看起来没有集合框架,线程,等那么耀眼,但它可是很多框架的基础啊回复反射查看相关文章,先把基础学会,后面的得用到它。 回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般, 但是分享下我的心得,估计也能帮大家少走点弯路。[入门]我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让...

    bladefury 评论0 收藏0
  • 监听器应用【统计网站人数、自定义session扫描器、踢人小案例】

    摘要:现在,我们想要统计的是网站的在线人数。隔一段时间去做某事,这肯定是定时器的任务呀。定时器应该在服务器一启动的时候,就应该被创建了。定时器扫描容器的时候,可能是获取不到所有的的。 从第一篇已经讲解过了监听器的基本概念,以及Servlet各种的监听器。这篇博文主要讲解的是监听器的应用。 统计网站在线人数 分析 我们在网站中一般使用Session来标识某用户是否登陆了,如果登陆了,就在Ses...

    Awbeci 评论0 收藏0
  • 写在35岁,过去现在和未来

    摘要:团队有差不多号人,正在带团队主攻一个产品平台,未来有望多个项目借这个平台孵化。目前唯一可以确定不变的事就是变化本身,而目前大概率正确的事就是不断的学习和改进自身接受和控制。 ...

    fanux 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<