ArkTS
   HOME

TheInfoList



OR:

ArkTS (short for Ark TypeScript) is a high-level general-purpose,
multi-paradigm Programming languages can be grouped by the number and types of Programming paradigm, paradigms supported. Paradigm summaries A concise reference for the programming paradigms listed in this article. * Concurrent programming language, Concurrent ...
, compiled, declarative, static type
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
developed by Huawei which is an extension superset of open-source TypeScript (TS), in turn a superset of
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
(JS) formerly used in July 2022 HarmonyOS 3.0 version, alongside its evolved precursor, extended TypeScript (eTS) built for HarmonyOS development as a shift toward declarative programming. ArkTS compiles to machine code via its ahead-of-time compilation Ark Compiler. ArkTS was first released in September 30, 2021 on OpenHarmony, and the ArkTS toolchain has shipped in DevEco Studio since version 3.1, released in 2022. Since, OpenHarmony 4.0 release on October 26, 2023, ArkTS APIs has been added to the open source community to contribute. Huawei intended ArkTS to support many core concepts associated with extended TypeScript (eTS) based on TypeScript and in turn JavaScript from previous versions of HarmonyOS 3.0 with ArkUI declarative UI app development and 2.0 imperative app development alongside
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. ArkTS was introduced at Huawei's Developer Conference (HDC) 2022 in November 2022 on HarmonyOS 3.1 release. It underwent an upgrade in HDC 2023 with HarmonyOS 4.0 API 10 and a major upgrade at January 18, 2024 HarmonyOS Ecology Developer Conference alongside, new Cangjie programming language announced by Huawei where both programming languages become the primary languages for the iterative HarmonyOS NEXT system version of HarmonyOS operating system. The current version of ArkTS, was released on October 26, 2023, for open source OpenHarmony 4.0 API 10 with new ArkTS APIs via DevEco Studio 4.0 Canary build after HarmonyOS 4.0 release on August 4, 2023. Following current stable release, a preview released in January 2024, with OpenHarmony 4.1 Beta 1 API 11. Alongside, internal HarmonyOS NEXT Developer Preview 1 and 2 with latest API 11-12 preview based on latest version of OpenHarmony that features advanced syntax that is matured on the 5.0 version of the DevEco Studio
integrated development environment An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE) that is syntactically rigorous and provides more complete and rich capabilities compared to previous versions.


History

Development of ArkTS started in 2015 by HarmonyOS founder Wang Chenglu, with the eventual collaboration of many other programmers at Huawei at that time began development of HarmonyOS after being incubated in the R&D labs for a few years as earlier as 2012 within the company. ArkTS was motivated by the need for a replacement for Huawei's earlier programming language
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
that not only carried legal baggage but also performance issues, underdeveloped applications in a weaker SDK both HarmonyOS 1.0 Vision TV, IoT and HarmonyOS 2.0 expanded version shipped with and improvements that still lacked in HarmonyOS 3.0 eTS/JS development for HarmonyOS app development that lacked modern features for the modern operating system. ArkTS took language ideas from the likes of TypeScript, Swift, Rust,
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
. In November 2022, Huawei revealed the programming language evolved from eTS on HarmonyOS 3.0 to ArkTS on HarmonyOS 3.1 update. A beta version of the
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
was released to registered Huawei developers at the conference and it was not open-sourced at that time until OpenHarmony 3.0 API 7 era under OpenAtom Foundation when Huawei contributed the ArkTS codes and APIs of HarmonyOS 3.0 which was formerly named eTS in September 2021. During HDC 2021, in October 2021, Huawei announced ArkUI with DevEco Studio 3.0 for HarmonyOS 3.0 era, which provides a framework for declarative
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
(UI) structure design across all Huawei devices for eTS development which evolved into ArkTS development by HDC 2022 for HarmonyOS 3.1. ArkTS first appeared on OpenAtom's OpenHarmony 3.1 Beta on December 31, 2021 alongside its documentation. Since December 2023, ArkUI is evolved into OpenHarmony 4.0, also Eclipse Foundation global OpenHarmony-based Oniro with ArkTS programming language support and APIs. Also, Huawei announced it would evolve ArkUI into a cross-platform declarative UI named ArkUI-X to reduce app development time and costs by porting it to multiple platforms on Android, iOS,
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and macOS, etc. Including EulerOS in containers that shares HarmonyOS application software stack technologies making it easier for interoperability.


Version history

Version history of ArkTS releases with OpenHarmony (API 7) and HarmonyOS (API 8) convergence SDK.


Platforms

ArkTS supports the
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
s HarmonyOS,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, Windows, macOS, iOS, and Android. A key aspect of ArkTS design is its ability to interoperate with the huge body of existing eTS and JavaScript code developed for Huawei products over prior versions of HarmonyOS, such as HarmonyOS Design language system,
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) system. On Huawei devices running HarmonyOS, it links with the eTS runtime library, which allows native application programming interfaces ( APIs) in DevEco Studio templates, C, C++, and ArkTS code to run within one program.


Features

ArkTS is a general purpose programming language that employs modern programming-language theory concepts and strives to present a simple, yet powerful syntax. ArkTS incorporates innovations and conventions from various programming languages, with notable inspiration from TypeScript, which it replaced as the primary development language on HarmonyOS. ArkTS was designed to be easy, safe while not sacrificing speed. By default ArkTS manages all memory automatically and ensures variables are always initialized before use. Array accesses are checked for out-of-bounds errors and integer operations are checked for overflow. Protocols define interfaces that types may adopt, while extensions allow developers to add functionality to existing types. ArkTS enables
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
with the support for classes, subtyping, and method overriding. Optionals allow nil values to be handled explicitly. Concurrent programs can be written using async/await syntax and actors isolate shared mutable state in order to eliminate data races.


Examples

The following is an example of a simple Hello World program. It is standard practice in ArkUI with ArkTS programming language to separate the application struct and views into different structs, with the main view named Index. import ArkTS // Index.ets import router from '@ohos.router'; @Entry @Component struct Index


ArkUI-X

ArkUI-X is an open-source
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
(UI) software development kit which is extension of ArkUI for ArkTS development created by Huawei. It is used to develop cross platform applications from one codebase for any platform such as Android, iOS, OpenHarmony, Oniro and HarmonyOS which was released on December 8, 2023, after Canary 1 build on August 4, 2023. ArkUI replaces the older Interface Builder paradigm with a new declarative development paradigm.


Ark TypeScript Runtime

ARK TypeScript Runtime is a runtime system used in ArkTS applications derived from former HarmonyOS 3.0/OpenHarmony 3.1 API 8 eTS (extendedTypeScript) on OpenHarmony, and HarmonyOS apps exploiting custom OpenHarmony-based HarmonyOS NEXT core operating system. It contains an allocator and garbage collector (GC) for ArkTS/JS objects, a standard library that conforms to the ECMAScript specification, an interpreter for running the ARK Bytecode (abc) generated by ARK front-end components, an inline cache for acceleration, a statically typed compiler, a C++/C function interface for Native API (NAPI) application development at runtime, and other modules in ahead-of-time compilation via DevEco Studio since version 3.1.1 on both HarmonyOS 3.1 SDK and OpenHarmony 3.2 SDK API 9.


ets_frontend

The ets_frontend is a front-end tool in the ARK Runtime Subsystem which combines the ace-ets2bundle component that supports converting ETS programming language files into ARK bytecode files. They correspond with ArkTS app development in OpenHarmony and HarmonyOS development under HarmonyOS NEXT system.


ArkCompiler Toolchain for debugging

The ArkCompiler Toolchain provides developers with debugging tools for ArkTS application development, such as the Debugger, CPUProfiler, and HeapProfiler. The debugging and tuning capabilities provided by the Ark Toolchain is used through DevEco Studio IDE that relies on the ArkCompiler Runtime to provide runtime-related information to developers.


Development tools


Compiler

With Ark Compiler, it supports a variety of dynamic and static programming languages such as
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
, TypeScript, and ArkTS. It is the compiling and runtime base that enables OpenHarmony alongside HarmonyOS NEXT to run on multiple device forms such as smart devices, mobile phones, PCs, tablets, TVs, automobiles, and wearables. ArkCompiler consists of two parts, compiler toolchain and runtime.


IDE and editor support

DevEco Studio for HarmonyOS development using default declarative ArkUI, also other third-party UI frameworks on OpenHarmony SDK, ArkUI-X cross-platform development with Android and iOS support.


See also

* ArkUI * TypeScript *
JavaScript JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior. Web browsers have ...
* Swift (programming language) * Kotlin (programming language) * Comparison of programming languages


References


External links

*
ArkTS Language Specification
{{Programming languages 2021 software Cross-platform software JavaScript programming language family Object-based programming languages Programming languages created in 2021 Scripting languages Software using the Apache license Source-to-source compilers Statically typed programming languages Huawei products Articles with example JavaScript code