The Link Programming Language
A blazing-fast, strong-typed, readable, object-oriented, compiled and interpreted programming language with a focus on high-speed development, military-grade security, and developer's delight.
- Blazing-fast: As a compiled language, Link achieves native performance.
- Strong-typed: Strong typing is encouraged across the board for type safety and faster compiling speed.
- Readable: Link's readability lightens your cognitive load and enables coding at the speed of thought.
- Object orientation: Industry-standard object-oriented programming paradigm is fully supported.
- Compiled and interpreted: Link is compiled by default and delivers top performance. Code can also be interpreted with hot reload so you can rapidly test.
class Person
{
public string name
function Person(string name) {
this.name = name
}
function greeting(): string {
return 'Hello ' + this.name
}
}
function display(string name) {
Person person = new Person(name)
print(person.greeting)
}
display('John')
// Output: Hello John
Why Link?
Blazing-fast
Link achieves native performance as a compiled language. A benchmark calculating 10 million arithmatic calculations resulted in:
- Link: 0.23s
- C++: 0.23s
- Python: 4s
- JavaScript: 13s
Productive
Link focuses on developer happiness and believes that happy developers code best.
Link's language is concise and expressive.
Anyone can install Link and compile a running binary in less than 5 minutes.
Reliable
Link comes charged with batteries including garbage collection, military-grade security, authentication, web server, and a powerful standard library out of the box.
Thoughtful Design
Link comes from a serious and deliberate design on every single language feature, from syntax, to grammar, to development flow. All is architected to achieve maximal developer happiness, minimal obstacles, and speedy coding.
All language features have taken from the collective experience of all major programming languages on Earth. We keep what works best, remove obsolete parts, and innovate on industry-proven practices.
Mature Syntax
As a mature programming language, Link has no inconsistent naming, unnecessary abbreviations, and arbitrary grammar.
Every keyword is full English in comprehensive programming lexical context. For example, function
is universally understood, so Link uses it to declare a function. No wordplays like fun, func, def, sub, proc, etc.
Semicolons are unnecessary to terminate lines of code. Fewer keystrokes, faster coding.
Action functions are simple verbs like print()
. No multiple inconsistent versions like print + space + expression, puts() vs. put(), do_print(), etc.
Link avoids littering multiple versions of the same function, like print() vs. printLn(). If you want to print a newline at the end, add it expressly like print(expression, EOL)
.
function summary(integer x, integer y): integer {
return x + y
}
print(summary(4, 6) + 3)
array list = [2, 4, 5]
integer product = 1
for (integer number in list) {
product *= number
}
Readable
Code is read more than written. As part of having a mature syntax, Link strives to lighten your cognitive load reading code.
Code in Link reads like natural language.
When you read your team's code or come back to your own code from a year ago, comprehension should come back quickly.
The result is a professional, elegant, and expressive language.
import System
string os = System.operatingSystem()
if (os == 'Windows') {
print(System.Command.run('dir'))
} else if (os == 'Linux') {
print(System.Command.run('ls'))
} else {
print('I am running on ', os)
}
Strong-typed
Industry practice has proven that strong typing is better for applications from simple to most complicated. It empowers static analysis, minimizes bugs, enhances code quality, and enables convenient IDE support.
Despite strong support on typing, Link is not dogmatic. You can omit types on variables, and the compiler will try to infer types for you.
function display(string name): void {
Person person = new Person(name)
print(person.greeting)
}
Extensive Library
Link's power is illustrated through the extensive library that helps you perform all fundamental processing, accessing, and executions effortlessly.
String('hello world')
.replace('world', 'earth') // hello earth
.append(' from moon') // hello earth from moon
.title()
// Hello Earth From Moon
Number(1000).markUp(0.25).currency()
// $1,250.00
Date.now().addWeeks(3).formattedDateString()
// Dec 25, 2024
output = Command.run('df -h')
String(output)
.line(2) // rootfs 1.9T 533G 1.3T 29% /
.words(2, 5) // ['1.9T', '29%']
.format('Disk space is %s, currently %s full')
// Disk space is 1.9T, currently 29% full
Language Features
Database
Link has a fluent database client that's extremely powerful and supports major database engines such as MySQL, MariaDB, Postgres, SQL Server, Oracle, Redis, SQLite, MongoDB, and many others.
import Net.Database
const database = Database.mysql()
.connect('localhost')
.database('business')
integer count = database.from('users')
.where('is_active', true)
.select('count *')
.query()
print('We have ' + count + ' users')
Web Development
Link has a full-API web server to kickstart web development quickly.
Into Model-View-Controller pattern? It's fully supported.
// server.link
import Http
const app = Http.Server.application()
app.get('/', function () {
return 'Hello from the server'
})
.get('/about', AboutController.show)
.listen(80)
// AboutController.link (Controller)
class AboutController extends Http.Controller
{
function show() {
return this.view('about.html', {
author: Author.first()
})
}
}
// Author.link (Model)
class Author extends Http.Model
{
string table = 'authors'
}
<!-- about.html (View) -->
<p>The author's name is { author.name }.</p>
HTTP Client
Link provides a fluent and powerful HTTP client out of the box so you can use API with ease.
import Http
url = 'https://api.weather.gov/gridpoints/LWX/97,71'
temperature = Http.Client.get(url)
.json()
.properties.temperature.values[0].value
print('White House is at ' + temperature + ' C')
// White House is at 18 C
Send emails with Link effortlessly using SMTP through any server, from Gmail, Mailgun, SendGrid, Postmark, to a private email server.
import Net.Email
Email.smtp('smtp.gmail.com', 'username', 'password')
.to('recipient@example.com')
.template('email.html')
.send()
© The Link Programming Language 2025