На днях зашла речь об истории возникновения языка программирования Java. И, как оказалось, мало кто помнит откуда взялось странное красноносое существо по имени Duke. Кто это и почему он возник?
Покопавшись в истории сейчас, можно найти про Дюка много интересного (о чем во времена его возникновения мы мало задумывались). Например, согласно описанию Oracle (нынешнему владельцу Java-платформы и всего, что с ней связано) Duke, the Java Mascot был создан для демонстрации нового контроллера для интерактивных устройств Star7. Дюк выступал в роли интерактивного программного агента, выполняющего команды пользователей.
Мы же помним появление забавного существа в первой версии Java в качестве иллюстрации графики и возможностей динамического интерактивного контента в Web-документах. Тогда руководству Sun было представлено несколько интерактивных программок на Java, среди которых была программа, где Дюк крутился по экрану колесом.
Забавное мультяшное существо всем понравилось, а т.к. официальный логотип языка программирования Java в виде чашки кофе уже был представлен, Дюк стал официальным талисманом языка.
Кто же такой Дюк? Версий в интернете ходит много. Кто-то вспоминает про Стартрек, кто-то думает, что это зуб, мы же во времена появления Дюка считали его стилизованной уткой.
А можно ли найти и собрать эту программу сейчас?
Как оказалось, программка до сих пор живет на просторах интернета. Вот ее код, найденный здесь.
/****************************************************************************** * Compilation: javac Duke.java * Execution: java Duke * Dependencies: StdDraw.java StdIn.java * * Draw the sequence of images T1.gif to T17.gif. This creates * the illusion of motion, where the Java mascot Duke cart-wheels * across the screen. * * Reference: http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#TumbleItem * ******************************************************************************/ public class Duke { public static void main(String[] args) { int images = 17; // number of images int WIDTH = 130, HEIGHT = 80; // images are 130-by-80 StdDraw.setCanvasSize(WIDTH, HEIGHT); StdDraw.setXscale(0, WIDTH); StdDraw.setYscale(0, HEIGHT); StdDraw.enableDoubleBuffering(); // main animation loop for (int t = 0; true; t++) { int i = 1 + (t % images); String filename = "T" + i + ".gif"; // name of the ith image StdDraw.picture(WIDTH/2.0, HEIGHT/2.0, filename); StdDraw.show(); StdDraw.pause(100); } } }
Как видно сейчас, программа была предельно проста. В цикле последовательно отрисовывалось 17 картинок с движениями Дюка. А можно ли эту программу скомпилировать сейчас? Можно! Единственное, что для этого требуется, это библиотека StdDraw, использовавшаяся для отрисовки графики и сами картинки. Исходный код библиотеки StdDraw.java нашелся здесь. А после небольших поисков обнаружился и архив изображений.
Далее создаем новый проект в NetBeans, загружаем в него основной код, добавляем дополнительный класс StdDraw, компилируем и… по экрану крутится Дюк.