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

周末在网上闲逛, 发现了一个叫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 <stdio.h>
#include <stdlib.h>
#include "hello.h"


struct HelloCi {
};


void HelloCi_SayHello(void)
{
  puts("Hello, world!");
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

“有闲”很重要。 

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

48b823855e1b830e01fd5ac838cf81c1.png

可是,梦想败给了现实。 

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

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

(完)

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>