Eu acabei de ler a parte da linguagem Compact nos documentos do Midnight na noite passada e percebi um detalhe que eu havia deixado passar desde o início: a privacidade aqui não é uma configuração para ser ativada, mas sim mais próxima de uma restrição que o compilador impõe 😅
Na minha visão, essa é uma grande diferença. A maioria das soluções de privacidade atuais ainda se assemelha a uma camada adicional: o aplicativo é construído primeiro, e a privacidade é adicionada depois como uma funcionalidade opcional. O resultado é que se os dados permanecem confidenciais ou não ainda depende bastante de o desenvolvedor lembrar de colocar a lógica correta no lugar certo.
O Midnight segue uma abordagem oposta. Com a privacidade Compact, ela é o padrão, enquanto a divulgação deve ser declarada explicitamente. Ou seja, o construtor não pode facilmente tornar dados sensíveis públicos, pois a linguagem e o compilador já forçam a pensar claramente sobre isso desde o momento em que se escreve o aplicativo.
Para mim, este é o ponto em que o Midnight difere bastante da antiga narrativa de privacidade: a privacidade não é adicionada depois, mas sim incorporada à arquitetura desde o início.