LINUX.ORG.RU

История изменений

Исправление lovesan, (текущая версия) :

Жирный жирный как поезд пассажирный.

Да откуда ж вы такие беретесь. Нихрена не знаете, зато с каким апломбом несете хрень.

lovesan@ubuntu:~/hello$ cat hello.cs
System.Console.WriteLine("Hello, World!");

lovesan@ubuntu:~/hello$ cat hello.csproj
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net7.0</TargetFramework>
        <PlatformTarget>x64</PlatformTarget>
        <PublishTrimmed>true</PublishTrimmed>
        <PublishSingleFile>true</PublishSingleFile>
    </PropertyGroup>
</Project>

lovesan@ubuntu:~/hello$ dotnet publish -c Release -a x64 --self-contained -o output
MSBuild version 17.4.8+6918b863a for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
  hello -> /home/lovesan/hello/bin/Release/net7.0/linux-x64/hello.dll
  hello -> /home/lovesan/hello/output/

lovesan@ubuntu:~/hello$ ll output
total 12932
drwxr-xr-x 2 lovesan lovesan     4096 Oct 14 22:18 ./
drwxr-xr-x 5 lovesan lovesan     4096 Oct 14 22:18 ../
-rwxr-xr-x 1 lovesan lovesan 13221007 Oct 14 22:18 hello*
-rw-r--r-- 1 lovesan lovesan    10044 Oct 14 22:17 hello.pdb

lovesan@ubuntu:~/hello$ ./output/hello
Hello, World!

lovesan@ubuntu:~/hello$ ldd ./output/hello
        linux-vdso.so.1 (0x00007fffdb5b9000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff856717000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff856712000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff8566f6000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff85660f000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff85660a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff8565e4000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff856377000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff85614f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff8571dd000)

Это дотнет, как понятно. Всё. 13 мегабайт файл, в котором есть тупо все, весь нужный дотнет рантайм итд, и который не отличим от бинарника на плюсах. Лиспы аналогично могут. И производительность там будет получше чем в Golang. Про легкость поддержки и качество кода вообще не говорю.

Исходная версия lovesan, :

Жирный жирный как поезд пассажирный.

Да откуда ж вы такие беретесь. Нихрена не знаете, зато с каким апломбом несете хрень.

lovesan@ubuntu:~/hello$ cat hello.cs
System.Console.WriteLine("Hello, World!");

lovesan@ubuntu-wsl2:~/hello$ cat hello.csproj
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net7.0</TargetFramework>
        <PlatformTarget>x64</PlatformTarget>
        <PublishTrimmed>true</PublishTrimmed>
        <PublishSingleFile>true</PublishSingleFile>
    </PropertyGroup>
</Project>

lovesan@ubuntu:~/hello$ dotnet publish -c Release -a x64 --self-contained -o output
MSBuild version 17.4.8+6918b863a for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
  hello -> /home/lovesan/hello/bin/Release/net7.0/linux-x64/hello.dll
  hello -> /home/lovesan/hello/output/

lovesan@ubuntu:~/hello$ ll output
total 12932
drwxr-xr-x 2 lovesan lovesan     4096 Oct 14 22:18 ./
drwxr-xr-x 5 lovesan lovesan     4096 Oct 14 22:18 ../
-rwxr-xr-x 1 lovesan lovesan 13221007 Oct 14 22:18 hello*
-rw-r--r-- 1 lovesan lovesan    10044 Oct 14 22:17 hello.pdb

lovesan@ubuntu:~/hello$ ./output/hello
Hello, World!

lovesan@ubuntu:~/hello$ ldd ./output/hello
        linux-vdso.so.1 (0x00007fffdb5b9000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff856717000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff856712000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff8566f6000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff85660f000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff85660a000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff8565e4000)
        libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff856377000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff85614f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff8571dd000)

Это дотнет, как понятно. Всё. 13 мегабайт файл, в котором есть тупо все, весь нужный дотнет рантайм итд, и который не отличим от бинарника на плюсах. Лиспы аналогично могут. И производительность там будет получше чем в Golang. Про легкость поддержки и качество кода вообще не говорю.