• 我为什么开发新语言


    为什么有这么多的编程语言

    1 改革换代,适应时代发展需求

    2 特定的领域需要特定的语言

    3 没有一个语言可以完美适配各种场景

    4 个人习惯

    所有语言都有一个发明初衷

    Lisp - 一切抽象为数学符号,利用公式自动计算结果

    C - 汇编太繁琐,我能更简洁地写逻辑

    C++ - C 只能写普通逻辑,我能用面向对象编程

    Java - C++ 兼容性差,代码复杂,还容易出错,我能做更稳定的服务

    C# - Java 你说的对,但咱爹有钱不想认干儿子,所以我就诞生了,我在 C++ 和 Java 基础上做了一些改进,理论上应该是最强大的语言了

    Python - 我只想做一个运维的小工具,你还让我写个类先?写你妹啊,我能飞速的写好代码下班走人,而你还在等编译结果...另外,这么多括号看得我眼花...能不能让我少敲几个字...很累的

    Ruby - 一切都是对象,一切都能点,是不是很爽

    JavaScript - 领导让我做个脚本引擎,那我就参考 Java 做一个好了,时间有限,先做一个凑合吧,至少能用,咦,居然还挺好用

    Swift -  你们谷歌认领了 Java,微软养活了 C#,而相比我的儿子 Object C 好像确实搓了些,算了,我生个二胎吧,肯定比你们简单很多

    Kotlin - 我给这么多语言做了 IDE,不想终生为人服务,就冲着我阅人无数的优势,我把你们的优点集中一下...发明个新语言,功能我一顶仨

    虽然语言种类繁多,但还是可以分为以下几类

    1 以 C 为代表,适于性能要求非常高,不常更新的系统编程,同分类还有 C++,汇编

    2 以 Java 为代表,适于性能有一定要求,稳定,适合大型企业项目开发,同分类还有 C#,Swift,Kotlin

    3 以 JavaScript 为代表,适合频繁更新,没有性能要求的中小项目开发,同分类还有 PHP,Python,Ruby,Lua

    4 以 Lisp 为代表,适于特定领域的,同分类还有 ML,SQL,CSS

    为什么开发者热衷于某个语言后就不想看别的

    1 学习需要精力,有这时间还不如来一盘王者荣耀

    2 我已经习惯现有语言了,有些不一样的地方改改也就算了,但完全一样的东西也要改就太不习惯了,比如以前一直用 null,你告诉我要用 nil,凭啥不用 null,大家都用 null 不好吗,有区别吗?

    3 别的语言确实有一些先进的功能,但没有这些功能也可以接受,就像我现在已经掌握的语言一样

    4 学别的语言好找工作吗?工资高吗?

    在知道以上这些道理的同时,我为什么想做新语言

    1 我精通 C++,C#,JavaScript/TypeScript,排名前 10 的语言也都会写,更习惯于 C 风格的代码,和大部分人,特别是一线码农习惯差不多。所以新出的一些和 JavaScript 风格上有明显区别的语言都不怎么喜欢,比如 Kotlin,Groovy。所以我希望做一个尽量和 JavaScript 相似的语言,毕竟 JavaScript 是目前所有程序员都会接触到的交集

    2 我喜欢 JavaScript 的简洁,但也希望拥有接近 C++ 的性能,毕竟写的代码如果慢的要死,和刚毕业的实习生有啥区别。所以我希望语言的性能可以有保证

    3 JavaScript 虽然好,但是坑也挺多的,这可不利于在大型项目中使用,所以我希望语言可以规避掉其中的坑,毕竟语言是工具,工具最重要的是稳定。

    4 我希望一门语言可以做前后端,手机和桌面端。

    综上,我决定开发这样一个新语言

    1 总体类似 JavaScript,原来会写 Java/C# 的人也可以很快习惯。

    2 性能好,但又不能让用户写和 C++ 一样复杂的代码,所以怎么办:利用高智能算法自动优化性能,比如可以自动类型推算,合并循环,删除用不到的代码,自动寻找合适的数据结构和算法

    3 稳定为首,去坑,在保证功能前提下尽量简单

    4 实用,毕竟是冲着实际项目去的,一定要更好满足项目需求。还需要很强大的 IDE 和社区支持

    5 一期主要考虑生成能在浏览器跑的 Javascript,二期考虑生成 JVM 等其它环境。

    开发语言是一个大工程,如果你有兴趣参与这个开源项目,共创国产编程语言品牌,请留言

  • 相关阅读:
    mmap 函数
    poisx 文件锁
    三次握手的第三个ACK包丢了,TCP的处理方式
    unix 网络编程第八章 UDP
    STDIN_FILENO vs stdin
    unix 网络编程 第七章
    select 实现分析,poll epoll
    pselect 和 select
    export LANG="zh_CN.UTF-8"
    Unix 网络编程 I/O 模型 第六章
  • 原文地址:https://www.cnblogs.com/xuld/p/8338501.html
Copyright © 2020-2023  润新知