À propos du service
TraduitJe suis un programmeur système et je travaille en Jai tous les jours — le langage natif de Jonathan Blow, conçu pour le développement de jeux sérieux. Si votre moteur, outil ou simulation doit fonctionner près du matériel sans le surcoût d'un runtime géré, c'est exactement la tâche que j'entreprends. J'écris du code orienté données, amical pour le cache, remplace les modèles de collecte des ordures par des allocateurs et des arènes explicites, et profile jusqu'à ce que les boucles chaudes gagnent vraiment chaque cycle. La gestion manuelle de la mémoire n'est pas un fardeau pour moi, c'est l'essence du travail. J'exploite activement le modèle d'exécution à la compilation de Jai. Les étapes de construction, la cuisson des actifs, la génération de code et les tables de recherche sont créées pendant la compilation, donc il n'est pas nécessaire d'expédier un script tiers séparé et rien ne peut se casser à l'exécution. La métaprogrammation me permet de générer des sérialiseurs, des données de réflexion et du code standard à partir d'une seule source de vérité au lieu de copier manuellement des structures. Un livrable typique comprend un module prêt à tester, une petite suite de benchmarks avec des chiffres avant et après, des commentaires lisibles et une brève note sur la stratégie de mémoire choisie et sa justification. J'ai construit des allocateurs personnalisés, des conteneurs de style SoA, des liaisons de rechargement à chaud et des pipelines de construction basés sur des macros. Envoyez-moi le schéma du problème, la plateforme cible et le budget de performance — et je vous dirai honnêtement dès le départ si Jai est le bon choix. La correction d'abord, puis la vitesse.