Melhor resposta
Pelles C é um IDE completo, compilador e mais para o Windows 10. Também é gratuito (uma doação é solicitada, mas não obrigatória). Inclui alguns recursos e recursos interessantes não encontrados no GCC. Você também pode aprender mais sobre isso aqui: Página principal [Pelles C Wiki]
Fiquei intrigado com o que Pelles C tinha a oferecer e decidi baixá-lo para mim.
A imagem abaixo mostra o IDE em execução na minha máquina Windows 10.
Você pode ficar agradavelmente surpreso como eu. Você pode até importar soluções do Microsoft Visual Studio!
A captura de tela abaixo mostra o código hello world tradicional (fornecido como parte dos exemplos Pelles C), o status de saída após a compilação e o console mostrando o programa executado com sucesso em uma janela de console separada.
Os produtos mencionados nas outras respostas são muito relevantes e merecem sua consideração.
Escolha um pacote que funcione melhor para você!
Resposta
Na época do PlayStation 2, eu estava trabalhando em uma startup de jogos um tanto estranha na Califórnia. A startup implodiu depois, mas isso é uma história diferente. Esta história é sobre como quatro semanas antes da E3 (a Electronic Entertainment Expo, um grande evento do setor), nosso CTO entrou em nosso escritório da equipe de motores carregando um devkit PS2, colocou-o na mesa mais próxima e, com um olhar um tanto culpado seu rosto, anunciou que precisamos de uma demo do PS2 para a E3.
Nosso motor na época era apenas para PC, era bastante avançado em termos de recursos e, em particular, tinha recursos que nunca feito no PS2. Sombras de cena completa, por exemplo. Mapeamento normal em tudo, também.
Veja, o PS2 era composto de um incrível conjunto de chips que foram danificados, prejudicados e bloqueados por uma arquitetura absolutamente fútil que, eu suspeito, foi o resultado de algum lutas internas na Sony. Mas, voltando ao nosso CTO.
A sala ficou em silêncio. Joe, Jake e Bill, meus parceiros no crime na época, ficaram sentados olhando para ele. “Isso é uma piada, certo?” disse Jake, finalmente. Não era uma piada.
Não sou bom com pausas gestantes. Eles me fazem concordar com coisas que eu não deveria concordar. Eu ficaria muito mal em um interrogatório policial. Cinco minutos de silêncio e eu implicaria minha própria avó. Passaram-se trinta segundos. “Ok, vou atender”, disse eu.
Tenho seis volumes, acho, de manuais do PS2. Verdes. Eu os abri. Eles estavam em japonês. Meu conhecimento de japonês é basicamente limitado a “watashi wa nihongo ga wakarimasen”, que significa “Eu não falo japonês” e pode ou não ser gramaticalmente correto e, em qualquer caso, não é uma frase que eu provavelmente encontraria em os manuais. Demorou uma semana para eles conseguirem o conjunto em inglês, enquanto isso eu construí um renderizador de protótipo usando o código de amostra (que foi comentado quase exclusivamente em japonês, então descobrir envolveu algum trabalho de detetive).
O compilador PS2 foi feito por uma empresa chamada SN Systems, antes de serem adquiridos pela Sony. Eles tinham dois compiladores, SNC e ProDG, onde se a memória não me falha, o ProDG era um fork do GCC. Acredito que optamos pelo ProDG, mas não tenho certeza agora. Eu acho que tinha melhor suporte de template na época? Algo nesse sentido.
Temos nossa demonstração, com sombras dinâmicas de cena completa e mapeamento normal em tudo (acho que apenas uma outra pessoa fez isso, trabalhamos na mesma empresa agora), mostrou isso a portas fechadas para a revista Playstation que quase se mijou. Pena que a empresa fechou logo em seguida e nada foi feito com a tecnologia e eu passei três anos da minha vida fazendo coisas que nunca viram a luz do dia, mas essa é a indústria de jogos para você.
Mas.
Por quatro ou cinco meses, eu mais ou menos conduzi nosso desenvolvimento do PS2, e estava muito familiarizado com os problemas. Durante esse tempo, arquivamos, eu estimo, cerca de cem relatórios de bugs legítimos para a SN Systems (que, devo dizer, foram fantasticamente rápidos para resolvê-los e adorei trabalhar com meus contatos lá). Bugs de compilador reais, honestos para o bem.
Muitos anos depois, tive uma pequena amostra disso do outro lado das barricadas, enquanto trabalhava em um compilador do mundo real em um grande companhia. Desde então, decidi que prefiro muito consertar bugs em um compilador em que estou trabalhando do que relatar bugs em um compilador com o qual estou trabalhando.
Então, sim, os compiladores cometem erros, e eles geram programas errados, e depurar esse tipo de coisa pode ser … interessante.