Джеймс Гослинг, отец языка программирования Java, однажды объяснил это следующим образом:
Насколько я знаю, я виноват в этом. Я совершенно не знал о связи NeXT. Небольшое количество интересных шестнадцатеричных слов, вероятно, является источником совпадения. Что касается использования CAFEBABE
в Java, то оно несколько сложное:
Мы обычно ходили на ланч в место, называемое Аллеей Святого Михаила. Согласно местной легенде, в глубоком темном прошлом Grateful Dead выступали там до того, как стали великими. Это было довольно прикольное место, которое определенно было Grateful Dead Kinda Place. Когда Джерри умер, они даже установили маленький буддийский храм. Когда мы ходили туда, мы называли это место Кафе Мертвым.
Где-то вдоль линии было замечено, что это был шестнадцатеричный номер. Я пересматривал некоторый код формата файла, и мне понадобилась пара магических чисел: одно для постоянного объектного файла, а другое для классов. Я использовал CAFEDEAD
для формата объектного файла, а в grepping для 4-х символьных шестнадцатеричных слов, подходящих после CAFE
(это казалось хорошей темой), я нажал на BABE
и решил использовать его.
В то время казалось, что ужасно важно и не суждено куда-то идти, кроме мусорного ведра истории. Таким образом, CAFEBABE
стал форматом файла класса, а CAFEDEAD
был постоянным форматом объекта. Но постоянный объект исчез, и вместе с ним пошло использование CAFEDEAD
- его в конечном итоге заменили RMI.