Como a compilação cruzada de binários para Windows é mais fácil do que criar um nativo · GitHub

By | Junho 18, 2022

Quero que a Microsoft funcione melhor, quero que o Windows seja uma plataforma de desenvolvimento decente – e ainda assim, continuo vendo a Microsoft jogar jogo de código aberto: anunciando como os desenvolvedores de código aberto e amigáveis ​​são – apenas para derrubar os desenvolvedores sob a bota de um gigante corporativo.

As pessoas que trabalham na Microsoft são pessoas incríveis, gentis e talentosas. Isso é voltado para a gestão da empresa, que acredito ter quebrado a si mesma e a outros desenvolvedores em muitas ocasiões. É um pedido de ajuda.

A fonte da verdade para “código aberto” C#, C++, Rust e outros SDKs do Windows é a propriedade

Você provavelmente nunca ouviu falar disso antes, mas se você já usou conexões de API win32 em C#, C++, Rust ou outras linguagens, é provável que elas tenham sido geradas a partir de um repositório chamado metadados microsoft/win32.

Infelizmente, a fonte de verdade para esses SDKs gerados é o Windows SDK .idl arquivos – eles são proprietários, no entanto vive no mesmo repositório apenas com a licença MIT na raiz.

Foram realizadas colaborações, como o link D-language, Dart ou Zig para a API win32 gerada a partir desses arquivos de código aberto – se a Microsoft não os publicou como tal? Eu vou deixar você decidir.

Azure Kinect DK não é de código aberto

Se você é um dos poucos infelizes a gastar algumas centenas de dólares em um kit de desenvolvedor do Azure Kinect, seus olhos brilham com as possibilidades e encaram aquele código completamente aberto microsoft / Azure-Kinect-Sensor-SDK armazenamento – pode ter sido de curta duração.

Infelizmente, o Body Tracking SDK é blob binário proprietário – então, se você quiser melhorar o rastreamento do corpo, adicione Suporte para CPU ARMdeixe-o rodar no Linux ou qualquer outra coisa – você está sem sorte.

.NET não está aberto

Conforme coberto em isdotnetopen. comapesar de todos os esforços do .NET, a plataforma ainda não está aberta:

  • cobrando na extensão proprietária para continuar bloqueando o .NET.
  • a linguagem de programação aberta não possui um depurador
  • A decisão da gerência de retirar o hottray irrita a comunidade e os funcionários da devdiva

Ainda estou emocionado que eles literalmente fizeram a equipe .NET desfazer dotnet watch PR no último minuto, para que você possa vendê-lo como um recurso.

O VS Code é vendido como código aberto, mas não é

As mensagens em torno do VS Code são claras, embora um pouco escorregadias, sobre código aberto:

Código do Visual Studio – Código Aberto (“Código – OSS”)

Este projeto adotou o Código de Conduta de Código Aberto da Microsoft.

Livre. Construído em código aberto.

Enquanto isso:

Observação adicional: se você estiver criando extensões do VS Code, publique-as também no open-vsx.org como a Microsoft tenho enviou uma interrupção e isenção para aqueles que usam seu registro de extensão fora do produto VS Code para que ele não possa ser usado no fork de código aberto vscodium.

Eu concordo com o software proprietário, mas pare de rotulá-lo como “Feito de ingredientes naturais”.

Eu não me importo com o fato de que este software é proprietário. Vivo e uso software proprietário todos os dias. Não sou puritano.

O que me incomoda é que a Microsoft está empurrando a ideia de que esses projetos são de código aberto, hospedando-os no GitHub, só tem licenças MIT em repositórios e não menciona isso em nenhum lugar.

Então alguém que se importa se enterra, apenas para encontrar manchas binárias proprietárias ocultas e discussões fechadas no GitHub concluindo que ‘legal disse não, não vamos mudar a licença’

“Feito de ingredientes naturais.” é o que se sente. E eu entendo por que eles fazem isso, quantas pessoas comeriam cereal VS Code se dissesse:

Código do sol! Editor proprietário da Microsoft Corp! Baixe Agora!!

O desenvolvimento do Windows está quebrado (links simbólicos)

Enquanto transmito todos os meus pecados, escrevi motor de jogo, Mach, em Zig para o ano passado. Você sabe do que os desenvolvedores do Windows continuam reclamando?

Eu tentei. Diz que o arquivo não existe

Indico-os ao nosso FAQ, que oferece duas opções:

  1. Opção 1: Reparar o Windows
    1. Habilite o modo de desenvolvedor (aviso: isso inclui links simbólicos, que a Microsoft diz representar um risco de segurança)
    2. Habilite links simbólicos no Gito (modo de desenvolvedor não é suficiente.) git config --global core.symlinks true
    3. Por favor, tente novamente
  2. Opção 2: tradução cruzada do WSL -> Windows usando zig build -Dtarget=x86_64-windows

Porque, de alguma forma, em 2022, a tradução cruzada de binários de origem do Windows do Linux é mais fácil do que compilar no Windows nativo.

Eu gostaria que esse fosse o fim da história de dor do desenvolvedor do Windows

  • Arquivos de caminho longo: Azure, OpenSearch e ~ 90 outros projetos de código aberto você deve documentar como habilitar caminhos de arquivo longos no Windows porque a configuração padrão é um limite de ~ 255 caracteres.
  • CRLF: (Além disso, você sabe como configurar core.autocrlf Lei?)
  • PowerShell … BTW, o Windows 10 vem com uma versão desatualizada do PowerShell, onde os downloads de arquivos HTTP são ~ 122x mais lentos, você sabe que deveria ter atualizado isso fora do intervalo, certo? Porque o Windows Update não fará isso por você.

O que o Modo de Desenvolvedor do Windows faz novamente?

Minha solicitação à Microsoft

Novamente, as pessoas que trabalham na Microsoft são pessoas incríveis, gentis e talentosas. Não tenho nenhum problema com você, tenho certeza que você está lutando contra a gigante da Microsoft da mesma forma para melhorar a vida dos desenvolvedores.

Peço à Microsoft que faça o seguinte:

(1) Pare de ocultar o código de propriedade nos repositórios ‘open-source’ do GitHub

Não no espírito de código aberto. Parece “Feito de ingredientes naturais”. apenas para encontrar o núcleo de plutônio. Se a licença diz MIT, ela não deve conter código-fonte proprietário.

Adote uma política de nunca colocar um código proprietário no GitHub. Pegue Claro especificado no README quando o projeto contém código proprietário ou depende de código proprietário significativo para ser usado de forma eficaz.

Estou cansado de descobrir isso através de problemas fechados do GitHub.

(2) Corrija o modo de desenvolvedor no Windows

Eu só estou tentando fazer isso de novo pessoas reais eles enfrentam os problemas que descrevi acima. Não os pegue constantemente em seu centro de feedback, onde você pode contá-los porque surpresa! Eles apenas esperam que o desenvolvimento do Windows seja tão doloroso e esperam que o Google tenha que resolver problemas 24 horas por dia, 7 dias por semana.

Veja como você pode corrigi-lo:

Se alguém instalar ou executar ferramentas de desenvolvedor (WSL, VS Code, Git, PowerShell etc.), peça para habilitar o modo de desenvolvedor.

Isso é louco você pode usar essas ferramentas, desenvolver no Windows, sem saber que existe um “modo de desenvolvedor”. É quase impossível desenvolver em um Mac sem conhecer o XCode.

Se você ativar o modo de desenvolvedor, faça com que o Clippy apareça e peça ao usuário para:

Você quer que eu habilite links simbólicos (aviso: isso é um risco de segurança)?

Você quer que eu atualize o PowerShell? (ou você fica com a versão de anos atrás, onde os downloads são ~ 122x mais lentos?)

Você quer que eu habilite caminhos de arquivo > 255 caracteres? (aviso: pode corromper o Explorador de Arquivos e outros aplicativos)

Você quer que eu instale o Git?”

Deseja configurar o Git para usar caminhos de arquivo longos?

Deseja configurar o Git para usar links simbólicos?

Você quer que eu configure core.autocrlf?

Problema resolvido!

obrigada

Mais uma vez, não tenho dúvidas sobre as pessoas tentando o seu melhor para melhorar o Microsoft / Windows. Este é um feedback, espero que você o envie para as pessoas certas.

Você pode me encontrar no Twitter @slimsag caso precise enviar Esquadrão de ataque Clippy.

Deixe uma resposta

O seu endereço de email não será publicado.