以C++的角度赏析本周新出的hare语言

2023-10-18 13:30

本文主要是介绍以C++的角度赏析本周新出的hare语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

        不知道大家爱不爱看CSDN首页的一些新闻,就是CSDN资讯​​​​​​https://csdnnews.blog.csdn.net/发的,反正我还是挺喜欢看的,因为呢他的一些文章基本都比较清晰,还是值得了解的。

        今天,我再来为大家介绍一下现在新出的那个Hare语言。

关于C

        C是上世纪有里程碑之意义的一个语言,他的发明是跨时代的。虽然人们的目光渐渐转移到各各新兴语言上,但那些新兴语言上都有C的影子,因为C实在是太著名了。

        在C基础上,派生了我们现在广为人知的C++语言,C++C的一条路上,继续往后延伸了很长一段,即面向对象和STL。而后,又有了C#语言,是所谓的“轻量级版的C++”,但是没有收到多少欢迎。而后,许多开发人员续写新篇,发明了Java,Python等,其中Java语言和C又有着相似之处。

        “C程序员永远不会灭亡。他们只是cast成了void。”

        一句专业人员的名言很好地阐述了C的神通广大。但是,你有没有发现,这些派生语言基本都保留这老套的关键字,极为相似的结构,在整体方面没有大的突破?

        在之前,又有一种Rust语言,它的确有了不错的进步,可以和C++相媲美,谁知,现在,又有了一种更新颖的语言,就是Hare语言。

Hare语言概述

        Hare语言作为一种系统编程语言,Drew DeVault 称 Hare 的开发是由 30 位工程师耗时两年开发而成,旨在成为一种“简单、稳定和健壮”的语言。

        在应用场景上,Hare 使用静态类型系统、手动内存管理和最小运行时,由此它非常适合编写操作系统、系统工具、编译器、网络软件和其他低级高性能任务。Hare 的标准库中还融合了 Google 的 Go 编程语言思想,特别是在标准库以及“电池”中内置了许多功能,以此避免需要导入外部的依赖项。这样做,能避免程序员去寻找依赖项,同时也有一个可管控的范围。

        一般评判一个语言的第一个程序都是输出hello world,比如C++是:

#include<iostream>
int main(){std::cout<<"Hello world!";return 0;
}

         而我们不妨通过简单的 Hello World 程序提前感受一下这门新语言的魅力所在:
 

use fmt;
export fn main() void = {fmt::println("Hello world!")!;
};

        可以发现,整体的结构都是比较新颖的,可以说是更简单明了的。

我的观点 

        我认为Hare这个语言的出现也是可以解决很多问题的。现在的老式语言在解决一些新兴的项目上都是比较吃力,而且现在的一些例如python的语言,又性能不佳。因此,一个具有C性能而又牵涉面积广的语言是应该收到支持的。关于一些反对的观点,那就是他们太过保守,时代也在进步着,我们也要渐渐接受新的东西。

这篇关于以C++的角度赏析本周新出的hare语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232884

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

C++打印 vector的几种方法小结

《C++打印vector的几种方法小结》本文介绍了C++中遍历vector的几种方法,包括使用迭代器、auto关键字、typedef、计数器以及C++11引入的范围基础循环,具有一定的参考价值,感兴... 目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias

C语言逗号运算符和逗号表达式的使用小结

《C语言逗号运算符和逗号表达式的使用小结》本文详细介绍了C语言中的逗号运算符和逗号表达式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习... 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接其一般形式为:表达

Go语言实现桥接模式

《Go语言实现桥接模式》桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立地变化,本文就来介绍一下了Go语言实现桥接模式,感兴趣的可以了解一下... 目录简介核心概念为什么使用桥接模式?应用场景案例分析步骤一:定义实现接口步骤二:创建具体实现类步骤三:定义抽象类步骤四:创建扩展抽象类步

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u

C++11中的包装器实战案例

《C++11中的包装器实战案例》本文给大家介绍C++11中的包装器实战案例,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录引言1.std::function1.1.什么是std::function1.2.核心用法1.2.1.包装普通函数1.2.