[gull] C to Go

Félix Hauri felix at f-hauri.ch
Mon Jul 21 10:39:35 CEST 2025


Bonjour,

D'abord, permettez moi de préciser que je ne souhaite pas créer de troll!
Je vous présente mes excuses pour les avis enflammés qui pourraient arriver
ici, et je vous prie de ne pas y réagir sans chercher l'apaisement ;-)

N'étant pas à proprement parler un développeur, je ne pratique que très
peu C, C++... Actuellement, LE language en vogue est GO. Je dois
dire que les outils présents dans Debian, semblent plutôt efficaces!
(gocryptfs, runc, dmarc-cat, fzf, podman, ...)

Voici la liste des applic GO présente sur votre distrib basée sur Debian:

   mapfile -t goInstalled < <(
       script -f /dev/null -c "apt list \$(apt-cache show \*|
           grep '^Package:\|^Built-Using'|grep -B1 '^Built.*\bgo'|
           sed -ne 's/^Package: //p')" |
           sed -ne 's/\o33\[[0-9;]*m//g;s#/.*\[install.*\].*$##p')
   apt-cache show "${goInstalled[@]}" |
      sed -ne '/^Package:/h;
        /^Description-en/{
           x;G;
    s/^[^[:space:]]*: \(.*\)\n[^[:space:]]*:/\1                          :/;
           s/^\(.\{28\}\) *:/\1:/;p}'

( la ligne mal indentée contient au moins 26 espaces et termine par `:/;' )

A partir de là, la commande:

   dpkg -L "${goInstalled[@]}"| grep bin/| xargs ls -ghtrS

ou mieux:
   dpkg -L "${goInstalled[@]}"| grep bin/| xargs file|
       sed -ne 's/: *ELF.*//p'| xargs ls -1shtrS

montre que le plus petit des ELFs pèse près de 1,5Mo et cela monte
vite:  32M /usr/bin/podman  - engine to run OCI-based containers in Pods

J'ai trouvé bien trouvé quelques explications, mais bof...*

Je reste donc dubitatif:
  apt depends "${goInstalled[@]}" 

L'essentiel des librairies semblent hard-linked... (obésiciels?)**

Hello world en go pèse 1.8Mo (1.2 avec les ldflags: "-s -w")
Hello world en C pèse env 16K!! (le rapport est de 1/114!!! )

Mes question:
 - Y a-t-il parmi vous des développeurs qui sont passés de C++ à Go?
 - Pouquoi/pourquoi pas? 
 - Si oui, un avis sur le niveau de complexité d'adaptation...
 - Question subsidiaire: Quel IDE utilisez vous?

Merci pour vos avis!

  *  https://go.dev/doc/faq#Why_is_my_trivial_program_such_a_large_binary
  ** https://fr.wikipedia.org/wiki/Bloatware
-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list