Logo

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

Link Link Link

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.


Link Link Link

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

Link Link Link

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

Email

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()
Link Link Link

© The Link Programming Language 2025