Comments 14
Мда… Я-то думал, всё и правда делается компилятором, полез смотреть, как осуществляется ввод. А оказалось — запуск скриптов, да и текст для вывода на экран делается бинарником.
Итак, нужно признать, что для управления циклом игры мне пришлось прибегнуть к другому языку. Хотя технически ничто не мешало мне написать эту часть кода на C++. К тому же это не отменяет того факта, что 90% логики моей игры выполняется внутри команды компиляции g++, что довольно-таки потрясающе!
Ну, на фоне того, что язык шаблонов тьюринг-полный (с ходу не могу найти доказательство, там через реализацию комбинаторов S и K вроде было) — очевидно, что вычислительная часть могла быть сделана на шаблонах в compile-time. Так что именно эти 90% неинтересны, вот я и надеялся увидеть хаки, позволяющие запилить ввод-вывод средствами компилятора (какие-нибудь #pragma, доступ к файловой системе через вычисляемые #include, ANSI-последовательности в исходниках, ещё что...).
Вы снижаете вероятность того, что в вашем репозитории появится какое-то ракообразное и попросит переписать игру на Rust. Его хорошо подготовленная речь развалится, как только вы объясните ему, что недействительный указатель не может существовать во время компиляции.
Дальше читать не смог. Теперь я понимаю, почему С++ коммьюнити считают кислотным, если сениор разработчики позволяют себе походя опускать других людей и другие языки.
В оригинале была игра слов на тему Rust (crustacean).
Не крабов, грибов...
Да не за что, сам случайно узнал, когда полез гуглить, что за краб.
Кстати, теперь есть повод гуглить дальше и всё же узнать, при чём здесь крабы.
<jonanin> any history behind the name?
<graydon> jonanin: «rust»?
<jonanin> yeah
<graydon> people keep asking and I keep making up different explanations.
<graydon> from an email exchange with an early private reviewer of rustboot:
<graydon> >> I love the name. I take it that it refers to your scavenging the
<graydon> >> skeletal hulks of dead languages, now covered in vines...?
<graydon> >
<graydon> > A little. Also big metallic things. And rusts and smuts, fungi. And it's a
<graydon> > nice substring of «robust».
<jonanin> hah
<jonanin> interesting
<graydon> IOW I don't have a really good explanation. it seemed like a good name. (also a substring
of «trust», «frustrating», «rustic» and… «thrust»?)
<graydon> I think I named it after fungi. rusts are amazing creatures.
<graydon> Five-lifecycle-phase heteroecious parasites. I mean, that's just _crazy_.
<graydon> talk about over-engineered for survival
<jonanin> what does that mean? :]
<graydon> fungi are amazingly robust
<graydon> to start, they are distributed organisms. not single cellular, but also no single point of
failure.
<graydon> then depending on the fungi, they have more than just the usual 2 lifecycle phases of
critters like us (somatic and gamete)
<jonanin> ohhh
<jonanin> those kind of phases
<graydon> they might have 3, 4, or 5 lifecycle stages. several of which might cross back on one
another (meet and reproduce, restart the lineage) and/or self-reproduce or reinfect
<jonanin> but i mean
<jonanin> you have haploid gametes and diploid somatic cells right? what else could there be?
<graydon> and in rusts, some of them actually alternate between multiple different hosts. so a crop
failure or host death of one sort doesn't kill off the line.
<graydon> they can double up!
<graydon> en.wikipedia.org/wiki/Dikaryon
<graydon> it's madness. basically like someone was looking at sexual reproduction and said «nah, way
too failure-prone, let's see how many other variations we can do in parallel»
<jonanin> I can't really understand that lol. I'm only 3/4 the way through my *highschool* bio class
<jonanin> which is not much
<graydon>!
<jonanin> I understood maybe half the words on that page
<evanmcc> that's totally insane
<jonanin> so a gamete becomes two different organisms in parallel?
<graydon> highschool? gosh. I… definitely was not landing patches on other people's compilers in
highscool. precocious! you have a bright future in programming
<rumbleca> rust never sleeps…
<graydon> jonanin: something like this, yeah. I think basically they have lifecycle phases that are
part of two separate reproduction cycles at the same time or something. it's very
confusing. I took a mycology course trying to understand all this and it got far too
complex for me to follow
<graydon> anyway, I remember being kinda into them back when I was picking the name.
<graydon> but then everyone thinks it's a pun on «chrome» so maybe we should stick with that
<jonanin> hahahha
irclog.gr/#show/irc.mozilla.org/rust/127558
Теперь я понимаю, почему С++ коммьюнити считают кислотным
Считает кто?
Я тоже делал что-то подобное, но, конечно, не настолько хардкорное и на C#: Квайновая змейка.
Meta Crush Saga: игра, выполняемая во время компиляции