Essas bibliotecas estão quebradas e devem ser evitadas. Se você as utiliza, considere a possibilidade de procurar alternativas. GLib: Implementa a STL do C++ sobre o C, porque C++ é uma merda, vamos reinventá-lo, adicionando tipos de dados inúteis por motivos de portabilidade e legibilidade. Não é possível escrever aplicativos robustos usando a GLib, pois ela aborta em situações de falta de memória. O uso da GLib é necessário para escrever aplicativos GTK+ e Gnome, mas também é usado quando uma funcionalidade comum é necessária, como hashlists, decodificador base64. Ela não é adequada para vinculação estática devido ao seu tamanho absurdo e vinculação estática não suportada. Alternativas: libmowgli, libulz, macros BSD queue.h/tree.h. GMP, Biblioteca de precisão bignum/arbitrária do GNU. Bloated, lenta e chama abort() em caso de falha no malloc. Alternativas: libtommath, TomsFastMath, imath, libzahl, hebimath
CMake: Escrito em C++, Inutilmente grande e bloated, a compilação demora mais do que GCC. Não é nem possível criar makefiles independentes, já que os makefiles gerados chamam de volta o próprio binário do CMake. O uso requer aprendizado de uma nova linguagem de script personalizada com expressividade limitada. Seu principal ponto de venda é a existência de uma GUI clique-clique para usuários de Windows.
Waf e scons: Ambos escritos em Python. O código waf é colocado na árvore de construção do compiler, então ele não se beneficia de versões atualizadas e correções de bugs. Como esses sistemas de build são frequentemente usados para compilar programas em C, é preciso configurar um compilador C++ ou um interpretador Python, respectivamente, apenas para poder construir algum código em C. Alternativas: make, mk
subversion, svn: Ensina desenvolvedores a pensar no controle de versão de forma prejudicial e terrível, código feio, conceitualmente quebrado em muitos termos. "Centralizado" é considerado um dos principais benefícios para aplicativos "empresariais", no entanto, não há benefício algum em comparação com sistemas de controle de versão descentralizados como git. Não há cópia na gravação, a ramificação essencialmente criará uma cópia 1:1 da árvore completa que você tem sob controle de versão, tornando ramificações de recursos e alterações temporárias em seu código uma bagunça dolorosa. É lento, encoraja as pessoas a inventarem soluções alternativas estranhas apenas para fazer seu trabalho.
A maioria dos programas X quebrados. Se você usa, incomode os desenvolvedores desses programas para consertá-los. Aqui estão algumas das principais causas dessa quebra. O programa assume um modelo específico de gerenciamento de janelas, assume que você está usando um gerenciador de janelas WIMP como os encontrados no terrível KDE ou Gnome. Essa suposição quebra as convenções do ICCCM. O aplicativo usa tamanho fixo, essa limitação não se encaixa muito bem no mundo dos gerenciadores de janelas em mosaico e também pode ser vista como uma quebra das convenções do ICCCM, porque uma janela de tamanho fixo assume um modelo específico de gerenciamento de janelas também, embora o ICCCM não proíba janelas de tamanho fixo. Em qualquer caso, o ICCCM solicita que os clientes aceitem qualquer tamanho que o gerenciador de janelas proponha a eles. O programa é baseado em dicas estranhas de gerenciador de janelas não-padrão que só funcionam corretamente com um gerenciador de janelas que suporte essas extensões, isso quebra o ICCCM também. Por exemplo, programas de ícone de lixeira. O programa não está em conformidade com o ICCCM devido a algumas dicas ausentes ou definidas incorretamente. Se ainda precisar de algum programa que espere um WM flutuante, use-o no modo flutuante.
A GNU tentou tornar o mundo do software um pouco mais miserável do que já é ao inventar o texinfo. O resultado é que, em 2019, as páginas de manual ainda são usadas e a documentação das ferramentas GNU exige que você execute o comando info $application
. O navegador de informações é estranho e pouco intuitivo, e a razão pela qual ninguém vai além de encontrar 'q' para fechá-lo. A documentação HTML é tão forçada que você precisa abrir um navegador da web que desperdiça 1 GB de RAM, apenas para ver um colírio para os olhos que poderia ter sido descrito na fonte com uma maneira fácil de pular para essa linha no source-code. Lerda de tempo.A maneira não-prejudicial é ter um uso curto e uma página de manual descritiva. Detalhes completos estão na fonte. Alternativas: roff, mdoc.
Impulsionado por nada. Todo conteúdo é disponível sob CC0 1.0 domínio público. Envie comentários e correções para Mr. Unix em victor_hermian@disroot.org.