15.11.2017 0 min to read

Кто такой Duke – талисман Java?

Category : Блог

На днях зашла речь об истории возникновения языка программирования 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, компилируем и… по экрану крутится Дюк.