GoLang - компилируемый язык программирования с естественными параллелизмами разработанный компанией Google.
  Разработка началась в 2007 году. А в 2009 состоялось официальное представление языка.
Основными разработчики языка были Роберт Гризмер( Robert Griesemer 1964г.р.),
Роб Пайк( Robert Pike 1956г.р. ) и Кен Томпсон( Kenneth Lane Thompson 1943 г.р. ).

Целями разработки языка Go были:
- создать современную альтернативу языку C и одновременно избежать громоздкости и тяжеловесности языка C++;
- естественным образом отобразить в языке возможность параллельных вычислений в многопроцессорных системах;
- обеспечить высокую переносимость исходных кодов между операционными системами;
- обеспечить высокую переносимость исходных кодов между аппаратными архитектурами самых различных процессорных платформ.

 Стандартная инсталляция под ОС Linux Ubuntu 

    sudo apt install golang

    go version

go version go1.18.1 linux/amd64

Есть ещё альтернативный проект GCC

    sudo apt install gccgo

    gccgo --version

gccgo (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

    Можно поставить из исходников

 git clone https://go.googlesource.com/go goroot

или

wget https://go.dev/dl/go1.21.1.src.tar.gz   конкретную версию

   cd src

   ./all.bash

   cd ../src/bin

   ./go version

go version go1.21.1 linux/amd64


В отношении скоростных показателей проектировщики ставили два скоростных требования:
- скорость компиляции аналогичного кода должна быть выше, чем у С
- скорость выполнения скомпилированного кода должна если и уступать скорости своего эквивалента на С,
то незначительно.

Для сравнения скорости выполнения эквивалентных приложений можно собрать простейшее приложение
с реализацией хорошо известного рекурсивного алгоритма вычисления чисел Фибоначчи.

--------------------------------

gcc fibo.c -o3 -o fibo_c

-------------------------------

#include <stdlib.h>
#include <stdio.h>

unsigned long fib(int n) {
return n < 2 ? 1 : fib(n-1) + fib(n-2);
}

int main(int argc, char **argv) {
unsigned num = atoi(argv[1]);
printf("%ld\n", fib(num));
return 0;
}

-------------------------------------

g++ fibo.cpp -o3 -o fibo_cpp

------------------------------------

#include <iostream>
#include <cstdlib>

using namespace std;

unsigned long fib(int n) {
return n < 2 ? 1 : fib(n-1) + fib(n-2);
}

int main(int argc, char **argv) {
unsigned num = atoi(argv[1]);
cout << fib(num) << endl;
return 0;
}

-----------------------------------

go build -o fibo_go fibo.go

----------------------------------

package main
import ("os"; "strconv")

func fib(n int) int {
if n < 2 { return 1
} else { return fib(n-1) + fib(n-2)
}
}

func main() {
n, _ := strconv.Atoi(os.Args[1])
println(fib(n))
}

----------------------

javac fibo.java

--------------------

public class fibo {
public static long fib(int n) {
return n < 2 ? 1 : fib(n-1) + fib(n-2);
}

public static void main(String[] args) {
int num = Integer.valueOf(args[0]);
System.out.println(fib(num));
}
}

----------------------------------
#!/usr/bin/python3
import sys

def fib(n):
if n < 2 : return 1
else: return fib(n-1) + fib(n-2)

print(fib(int(sys.argv[1])))

--------------------------------------------------------------------
an@mbook:~/go/fibo$ time ./fibo_c 46
2971215073

real 0m9,620s
user 0m9,619s
sys 0m0,001s

-----------------------------------------------------

an@mbook:~/go/fibo$ time ./fibo_cpp 46
2971215073

real 0m10,469s
user 0m10,464s
sys 0m0,005s
-----------------------------------------------------------

an@mbook:~/go/fibo$ time ./fibo_go 46
2971215073

real 0m7,261s
user 0m7,264s
sys 0m0,017s
----------------------------------------------------

an@mbook:~/go/fibo$ time java fibo 46
2971215073

real 0m4,952s
user 0m4,953s
sys 0m0,017s
----------------------------------------------------

an@mbook:~/go/fibo$ time ./fibo.py 46
2971215073

real 4m10,411s
user 4m10,393s
sys 0m0,008s


Хотя это вовсе не нужно расценивать как общее сравнение производительности.
Производительность радикально зависит от класса решаемых задач.