Sobre não aceitar o que é de graça

Nas últimas semanas, tem rolado um fluxo constante de reclamações de desenvolvedores sobre o preço do Private Cloud Compute da Apple. A história é: o novo nível de IA no servidor é gratuito, mas só para os desenvolvedores do App Store Small Business Program, que limita a elegibilidade a dois milhões de downloads ao longo da vida do app. Muitos desenvolvedores estão acima desse limite — às vezes por apps que não dão dinheiro há anos — e neste momento não tem um caminho pago para eles acessarem o PCC mesmo que quisessem. Estão de fora, e não estão felizes com isso.

Eu não estou de fora. O Patter está bem abaixo do limite, e a Gums & Bones é exatamente o tipo de estúdio pequeno para o qual o programa foi pensado. O nível gratuito estava disponível para mim. Pensei em usar. Decidi não usar. E quanto mais pensei sobre o porquê, mais comecei a achar que os desenvolvedores que ficaram de fora receberam um presente, mesmo que do lugar onde eles estão não pareça.

Isto é o que a Apple oferece. O modelo de IA no aparelho que vem com o iOS é de fato capaz, mas tem uma janela de contexto pequena — uns 4.000 tokens no momento em que escrevo isto — o que significa que não consegue raciocinar sobre uma pasta cheia de documentos ou sobre uma entrada muito longa. Para desenvolvedores que querem fazer esse tipo de trabalho, a Apple tem o Private Cloud Compute: o equivalente no servidor deles, rodando em silício Apple dentro de data centers da Apple, com uma arquitetura que de fato não guarda nem registra requisições. O PCC é, pelos padrões de hoje, o serviço de IA em servidor que mais respeita a privacidade no mercado. Não é essa a parte que me preocupa.

A parte que me preocupa é que é de graça. E por “de graça” eu quero dizer: de graça para desenvolvedores pequenos, hoje, enquanto a Apple constrói a força gravitacional da plataforma. Não existe um preço publicado para o que custa quando você ultrapassa o limite do programa para pequenos. Ainda não existe um nível pago para os desenvolvedores que estão reclamando de estar de fora. Não existe um preço comprometido para o quanto o nível gratuito vai custar daqui a dois anos, ou cinco, quando o programa mudar — e os programas sempre acabam mudando.

Imagina, como desenvolvedor pequeno, que você constrói um recurso em cima do PCC gratuito. Ele faz algo realmente útil — digamos, deixa o usuário apontar o app dele para uma pasta de documentos e sintetizar tudo aquilo em algo coerente. Os usuários adoram. As reviews elogiam. Tem gente que paga o upgrade especificamente por causa disso. Passam dois anos. A Apple anuncia que a cota gratuita de PCC do programa para pequenos desenvolvedores vai ser limitada a, digamos, dez mil requisições por mês por app, com cobrança por requisição depois disso. Ou a Apple anuncia um nível pago de PCC e o nível gratuito vira uma espécie de “teste antes de comprar”. Ou você cresce além do limite de dois milhões de downloads, ainda não tem opção paga, e o recurso para de funcionar para novos usuários. Ou qualquer outra coisa que plataformas fazem.

Aí você tem três opções. Você pode absorver o custo e deixar isso comer para sempre a economia de um app de compra única. Você pode introduzir uma assinatura, o que, se você fez outras promessas para seus usuários, quebra essas promessas. Ou pode retirar o recurso, que é a opção que protege seu negócio mas faz de você o vilão. Não tem uma boa quarta opção. A árvore de decisão foi montada no momento em que você entrou.

Aliás, é assim que o lock-in de plataforma funciona de verdade. Não obrigando ninguém. Nem mesmo por má intenção — eu não acho que a Apple esteja fazendo isso de má-fé, e acho que a arquitetura de privacidade deles foi construída com sinceridade. O lock-in funciona pela via do subsídio. Você dá aos desenvolvedores algo realmente valioso, de graça, enquanto constrói a integração. Com o tempo, os produtos dos desenvolvedores evoluem até depender do recurso subsidiado. Aí, quando a economia precisa mudar — e ela sempre acaba precisando mudar — os desenvolvedores não conseguem sair, porque os usuários deles agora esperam o recurso, e reconstruir sem o recurso subsidiado já não é possível. A plataforma não fez nada contra eles. Eles fizeram isso com eles mesmos, uma decisão racional depois da outra.

Os desenvolvedores que estão agora fora do PCC gratuito porque os apps deles passaram dois milhões de downloads estão sendo protegidos de fazer esse trato. Eles podem olhar para o PCC, decidir se vale a pena pagar pelo que quer que venha a ser cobrado, e escolher de olhos abertos. Para os desenvolvedores dentro do programa, está sendo oferecida uma coisa que parece negócio bom e na verdade é um compromisso.

É esse o argumento para tratar “não consigo acessar” como um problema melhor de se ter do que “tenho acesso gratuito do qual posso vir a depender”.

Para ser justo com a Apple, o programa para pequenos desenvolvedores é um benefício real, as garantias de privacidade são reais, e os engenheiros que construíram o PCC claramente se importam com o que construíram. Nada disso é um argumento de que o PCC é ruim. É um argumento de que um recurso cuja existência contínua depende de um subsídio que você não controla é um tipo de recurso diferente de um cuja existência contínua depende de hardware pelo qual o usuário já pagou. O modelo no iPhone do seu usuário continua funcionando esteja a Apple feliz com você ou não. Continua funcionando se a Apple mudar a estratégia de preços. Continua funcionando se a Apple alterar o programa. Continua funcionando daqui a cinco anos, em hardware que já foi comprado. Essa é uma classe de ativo diferente de um serviço.

Então o recurso de IA do Patter usa o modelo no aparelho, e só o modelo no aparelho. Tem coisas reais que ele não consegue fazer. O caso da pasta inteira é aquele em que eu volto sempre — um usuário com uma pasta de Notas cheia de fragmentos que gostaria que o app extraísse uma rotina disso tudo. Isso é uma coisa útil, e não cabe em 4.000 tokens. Por enquanto, esses usuários vão ter que resumir antes, ou escrever a rotina sozinhos. O custo dessa limitação é real, e não estou fingindo que não. Mas é o custo de ter um recurso que eu consigo sustentar para sempre, nos meus próprios termos, sem ter que revisitar a decisão toda vez que a Apple revisita os preços dela.

Tem duas coisas em que estou chutando, e posso estar errado nas duas. A primeira é se a Apple acaba oferecendo um nível pago de PCC com preço limpo e comprometido para longo prazo. Se eles fizerem isso, todo o cálculo muda — um serviço pago transparente com o qual você consegue se planejar é uma coisa muito diferente de um serviço gratuito cujo futuro você não consegue prever. Eu reconsideraria nesse caso. A segunda é se a janela de contexto do modelo no aparelho cresce. Quase certamente vai crescer. Se o modelo do ano que vem aguentar 32.000 tokens em vez de 4.000, o caso da pasta inteira sobre o qual eu não paro de falar pode simplesmente cair dentro do caminho do aparelho, e a questão com a qual estou lutando aqui se resolve em silêncio pelo progresso do hardware. Esse é o resultado mais provável, e é mais um motivo para não se comprometer agora com um caminho de servidor.

Os estúdios que pegaram o nível gratuito quando foi oferecido vão, em muitos casos, se sair bem. Alguns vão tomar as decisões certas quando os termos mudarem. Outros não, e a gente vai ler sobre eles depois — recursos retirados, promessas quebradas, viradas constrangedoras para assinatura travestidas de “investir no futuro do produto”. Alguns poucos vão absorver em silêncio custos que deveriam tê-los matado, sustentados por usuários que não sabem que é isso que está acontecendo.

Os estúdios que estavam de fora, e os que escolheram ficar de fora, não vão ter nenhum desses problemas. Vão ter um problema diferente, que é que o app deles não consegue fazer tanta coisa. Isso é um problema real. Mas é um problema que dá para resolver sendo honesto sobre ele, em vez de um problema que resolve você quando os termos mudam.

Eu escolhi o problema menor. Na maioria dos dias eu estou bem certo de que foi a escolha certa.