aardio 编程语言

news/2024/5/19 20:20:28/文章来源:https://blog.csdn.net/qikexun/article/details/129376971

今天看到一篇文章《独自坚持 17 年,aardio 作者:“因妻子患癌,再无精力维护项目”》,才知道有个这个项目,也算是很有情怀的一个开发者,对程序有着真挚的热忱,

aardio 🔊 专注于桌面软件开发,17年一直保持非常活跃地更新( 更新日志 ),aardio 被多年用于生产项目实践,久经测试和锤炼。

aardio 在诞生之初就设计了良好的架构与语法。正因如此,aardio 历经17年发展,日新月异,每一年都会带来大量的更新扩展,但仍然能保持最初简洁高效的结构与语法,即使是最早的 aardio 源代码仍然能不经修改在最新版本开发环境中完美运行。

aardio 小、轻、快,轻便利索,体积仅 6.5MB,学习和使用成本极低。aardio 虽然小,但提供了惊人数量的开源标准库、扩展库 - 这些库基本都是由纯 aardio 代码实现,涉及到了桌面编程的方方面面。aardio 中的所有库基本都是由作者一个人编写,所以拥有良好的一致性。aardio为 每一个库的每一个接口函数都编写了文档,并且提供了大量的演示范例。aardio 使用流行的类 C 语法(非常接近 JavaScript ),在设计中尽可能地避免哗众取宠、标新立异,并且吸取和借鉴流行语言的习惯用法。不少 aardio 用户都表示只要有一点编程基础,aardio 几乎不用特别学习,看几天就会用了,仅仅是复制拼凑范例都能快速开发出不错的软件。

aardio 属于易用性极强的动态语言,但也是一种混合语言,可以罕见地、非常方便地操作静态类型,因此可以直接调用 C语言、C++ 等等静态语言的 API 接口函数( 不需要像VB那样先声明API ),aardio 可以支持非常多的 API 调用约定,例如 stdcall,cdecl,thiscall,fastcall,regparm(n) 等调用约定 aardio 都可以支持。因为 aardio 奇特的语言特性,aardio 的胶水能力极强,在 aardio 中可以非常方便地调用 C语言、C++、C#、Java、Python、R、JavaScript、Node.Js、Fortran、VB、Flash ActionScript、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ...... 甚至可以直接嵌入汇编机器码并且转换为普通的 aardio 函数。aardio 可直接调用、嵌入、交互的第三方编程语言数量非常多,实现这些第三方语言接口的功能模块基本都是开源的(很多只用了极少的代码)。

aardio 可以嵌入非常多的浏览器控件,例如系统自带的 WebBrowser、WebView 控件、 以及 WebView2、WebKit、Electron、CEF3、HTMLayout、Sciter...... 甚至可以直接调用系统安装的 Chrome、Chromium Edge 等浏览器写软件界面。而且在网页中调用本地接口、以及 aardio 与浏览器的交互极其方便,例如直接调用 JavaScript 函数,并且在 JavaScript 中直接回调 aardio 函数,不需要任何复杂的封装和中间件,你甚至可以在 JavaScript 中直接调用 WINAPI 函数。

aardio 不仅可以方便地使用 Web 技术编写界面,也提供可视化开发工具,可以方便地通过拖拉传统控件创建程序。并且 aardio 提供强大的 plus控件(开源)可以方便地实现控件九宫格贴图、透明贴图、可以快速制作出漂亮的界面。而且aardio可以非常方便地生成独立、绿色、无依赖的软件,生成的软件极小,通常比使用其他开发工具编写的类似功能软件小几倍甚至是几十倍。并且 aardio 生成的软件可以完美兼容 XP,Vista,Win7,Win8,Win10,Win11...... 等所有流行桌面操作系统。

aardio 不仅仅可以开发桌面软件,也可以用于开发网站,aardio 可以直接支持与 PHP 类似的 HTML 模板语法,提供语言级别的模板解析,一个 aardio 源码文件,可以放 aardio 源码,也可以直接放 HTML,或者放 HTML,aardio 混合的模板代码,aardio 都能完美支持。并且 aardio可以使用几句代码就可以创建一个微型嵌入式 HTTP 服务端(可以集成 WebSocket 服务端),因此 aardio 可以非常方便地为浏览器控件提供 HTTP 服务端,并且像写网站那样写桌面客户端软件。

区别于其他动态语言,aardio 可以非常方便地支持真多线程,并且提供大量多线程函数库、演示范例等等。

aardio 处理 Unicode 编码非常方便且简洁高效,例如在 aardio 调用基于 UTF-16编码 的 Unicode WinAPI,或者调用其他基于 UTF-8 编码的接口,我们不需要多写一句代码处理复杂的编码问题。在 aardio 中字符串拥有独特的 UTF 自动标记特性,可以实现自动识别多种不同编码,虽然 aardio 默认编码为UTF-8,但字符串中可以存储二进制数据、UTF-8编码文本、UTF-16编码文本等等,所以 aardio 不但可以完美支持 Unicode,也可以方便地处理二进制数据、或者其他编码的文本。类似这样的创造性设计在 aardio 中随处可见,多次有用户反馈,学习 aardio 让自己的编程思路变得更开阔,使用其他编程语言也因此深受启发。

>> 随着 aardio 功能不断增加,aardio 的体积正在持续地变小,当前实际的下载体积可能小于 6.5 MB

>> 推荐阅读《 aardio 编程语言快速入门 》

>> 推荐阅读《 aardio 的 12 个误解与真相 》

>> 更多开源项目ImTip Gif123 WubiLex ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_267507.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.win10环境搭建Elasticsearch7.2.0环境

环境介绍jdk1.8安装Elasticsearch7.2.0下载安装包直接解压进入到bin目录,双击elasticsearch.bates启动成功访问http://localhost:9200/jdk版本1.8,很有可能因为jdk版本的问题es启动失败支持连接https://www.elastic.co/cn/support/matrix#matrix_jvm安装Kibana7.2.0…

关于递归处理,应该怎么处理,思路是什么?

其实问题很简单,就是想要循环遍历整个data对象,来实现所有name转成label,但是想到里面还有children属性,整个children里面可能还会嵌套很多很多的name,如此循环,很难搞,知道使用递归&#xff0c…

[神经网络]DETR目标检测网络

一、概述 相较于传统目标检测,DETR是一种纯端到端的网络。它不再需要NMS(非极大值抑制,用于去除多余的预测框)和生成anchor。 DETR提出了一个新的目标函数(二分图匹配),这个函数可以强制网络输出一个独一无二的预测值&…

2021年MathorCup数学建模C题海底数据中心的散热优化设计解题全过程文档及程序

2021年第十一届MathorCup高校数学建模 C题 海底数据中心的散热优化设计 原题再现 据统计,全球数据中心每年消耗的电量,占全球总电量的 2%左右,而其中能源消耗的成本占整个 IT 行业的 30%-50%,特别是电子器件散热所需消耗的能量占…

代码随想录 动态规划||01背包理论 416

Day3601背包理论基础01背包有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。暴力的解法是指数级别的时间复杂度。进而才需要动态规划的解法来…

【C语言督学训练营 第二天】C语言中的数据类型及标准输入输出

文章目录一、前言二、数据类型1.基本数据类型①.整形②.浮点型③.字符型2.高级数据类型3.数据分类①.常量②.变量三、标准输入输出1.scanf2.printf四、进制转换1.进制转换简介2.十进制转其他进制3.其他进制转换五、OJ网站的使用一、前言 王道2024考研408C语言督学营第二天&…

【JavaWeb】Servlet详解

文章目录1. 前置知识2.servlet生命周期2.1 默认情况下,服务器启动时,servlet对象并没有被创建2.2 用户执行一次请求2.3用户执行第二次请求2.4 3,4,5,6....次请求2.5 关闭服务器3.servlet方法解析4.适配器模式改造servlet4.1不使用servlet模式4.2使用适配…

Wannacrypt蠕虫老树开花?又见Wannacrypt

Wannacrypt蠕虫是一个在2017年就出现的远古毒株,其利用永恒之蓝漏洞降维打击用户服务器,而后进行扩散勒索,曾经一度风靡全球,可谓是闻者伤心,听着落泪,因为这玩意解密是不可能 解密的。 而2023年的今天&am…

C++ typedef用法详解

typedef的4种常见用法:给已定义的变量类型起个别名定义函数指针类型定义数组指针类型为复杂的声明定义一个新的简单的别名总结一句话:“加不加typedef,类型是一样的",这句话可以这样理解:没加typedef之前如果是个…

【UE4 RTS游戏】01-项目准备

步骤新建一个工程,选择俯视角游戏模板我命名工程如下:删除场景内的所有cube再删除Floor和Wall删除TopDownCharacter删除“NavgationMeshBoundVolume”删除“TamplateLabel”和“RecastNavMesh-Default”删除LightmassImportanceVolume、PostProcessVolum…

Hadoop节点的分类与作用

文件的数据类型文件有一个stat命令元数据信息-->描述文件的属性文件有一个vim命令查看文件的数据信息分类元数据File 文件名 Size 文件大小(字节) Blocks 文件使用的数据块总数 IO Block 数据块的大小 regular file:文件类型&#xff…

基于神经网络的自监督学习方法音频分离器(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 神经网络的输入是混合(男性女性)音频的振幅谱。神经网络的输出目标是男性说话者理想的软掩模。损失函数…

杂记——19.git上传时出现the remote end hung up unexpectedly错误

git是大家常用的项目版本控制工具,熟练地使用git可以提高开发效率,但是有时在使用git推送代码时,会提示“the remote end hung up unexpectedly”的问题,那么git推送代码提示“the remote end hung up unexpectedly”怎么解决呢&a…

探究linux系统之proc文件系统详解

文章目录前言一. proc文件系统介绍二. 进程目录中的常见文件介绍三. /proc目录下其他常见的文件介绍3.1 常见的文件3.2 /proc/sys目录详解总结前言 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月&#xff0…

Java基本数据类型变量自动提升、强制类型转换、String基本类型使用

文章目录基本数据类型变量自动提升特殊情况强制类型转换String基本类型使用基本数据类型变量自动提升 规则: 将取值范围小(或容量小)的类型自动提升为取值范围大(或容量大)的类型 。 byte、short、char-->int-->…

NFTScan:怎么使用 NFT API 开发一个 NFT 数据分析平台?

对很多开发者来说,在 NFT 数据海洋中需要对每个 NFT 进行索引和筛选是十分困难且繁琐的,NFT 数据获取仍是一大问题。而数据平台提供的 API 使得开发者可以通过接口获取区块链上 NFT 的详细信息,并对其进行分析、处理、统计和可视化。在本篇文…

用强化学习神包trl轻松实现GPT2可控文本生成

来源:投稿 作者:Sally can wait 编辑:学姐 模型github: lvwerra/trl: Train transformer language models with reinforcement learning. (github.com)https://github.com/lvwerra/trl 这个项目是复现 ”Fine-Tuning Language Models from H…

client打包升级

目录 前言 一、client如何打包升级? 二、使用步骤 1.先进行改版本 2.执行打包升级命令 总结 前言 本文章主要记录一下,日常开发中,常需要进行打包升级的步骤。 一、client如何打包升级? # 升级发布版本 ## 修改版本 * 父p…

CameraLink备忘录

首先来看看MDR26的引脚定义 从正面看进去,插头端,放置成倒梯形。 上排,从左到右,1到13, 下排,从左到右,14到26. 插座端,是镜像对称关系。 从正面看进去,插座端&#xf…

大数据技术之HBase(二)HBase原理简介

一、HBase定义1.1 HBase定义HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库非结构化数据存储的数据库,基于列的模式存储。利用Hadoop HDFS作为其文件存储系统,写入性能很强,读取性能较差。利用Hadoop MapReduce来处理HBase中的…