Java - платформа для академической среды - Андрей Дмитриев
←
→
Транскрипция содержимого страницы
Если ваш браузер не отображает страницу правильно, пожалуйста, читайте содержимое страницы ниже
Java – платформа для академической среды Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 Copyright (C) 2000 - 2008 Sun Microsystems, Inc. All rights reserved. 1
Этот доклад НЕ о том, что: • Учить программировать надо только на Java • Java – язык программирования #1 • Java лучше, чем C/C++, Pascal, Python, Ruby, … • Java превосходит .Net • NetBeans – лучшая среда разработки • Правильно учить программированию .... • … 2
Темы доклада • Java – это открытая платформа, а не только язык > с открытым кодом > с обширными возможностями по интеграции • Применимость Java в академическом окружении > в образовательном процессе > в научных исседованиях • Академические инициативы Sun Microsystems в России 3
Java в цифрах • 5 000 000 000 устройств снабжены Java > 2 100 000 000 телефонов с поддержкой Java > 800 000 000 настольных систем с Java > 2 500 000 серверов используют GlassFish > 11 000 000 используют JavaTV • 6 000 000 Java разработчиков. • > 450 000 выданных сертификатов. • Множество курсов по технологиям Java и на основе Java в учебной программе ведущих университетов мира. 5
Популярность книг (количество проданных экземпляров) Источник: http://radar.oreilly.com/archives/2007/05/state_of_the_co_10.html 6
Открытый код • Sun Microsystems открыла код для всех основных компонент Java Platform: > OpenJDK (включая HotSpot VM) > PhoneME > GlassFish > NetBeans > … • Огромное количество приложений и библиотек с открытым кодом на Java > java.net 7
Языки программирования в проектах с открытым кодом 8
Что важно для обучения • Преподавателю > Возможность демонстрировать требуемый набор концепций языков и технологий программирования > Готовые материалы для использования в курсе > Простота администрирования • Слушателю > Переиспользуемость навыков при изучении других курсов и дисциплин > Доступность материалов для самостоятельного изучения > Применимость в реальной жизни 9
Типичные пути изучения языков программирования • Высокоуровневый набор Источник: – Python/Ruby → Lisp/Haskell → Java/C# • Путь уменьшения абстракции от машины – Python/Ruby → Java → C → Ассемблер • Пути увеличения абстракции: > От ассемблера до самых «человечных» языков – Ассемблер → C → Python/Ruby > Смещённый в сторону высокоуровневости – C → Си++, Java или C# → Python/Ruby/Lisp/Haskell > С математическим уклоном – C → Java → Haskell/Mathematica • Набор популярных языков разных видов > Pascal → C → Lisp/Haskell → C++/Java Вариантов обсуждается много и они все не бесспорны, но почти всегда Java – часть цепочки. 10
Язык программирования Java • Мощный объектно-ориентированный язык со строгой типизацией > Удобный для обучения • Богатые библиотеки > Возможность собирать сложные программы из кусочков > Легко создавать графические интерфейсы • Виртуальная машина > позволяет абстрагироваться от особенностей операционной системы > обеспечивает хорошую производительность • Широко применяемый 11
Средства интеграции • Распространение Java приложений с помощью Веб > встраивание в Веб страницу (applet) > запуск из броузера (Webstart) • JNI > связывание с внешними платформенными библиотеками • JDBC > унифицированный доступ к хранилищам данных • Интеграция на основе сервисов > Java RMI > CORBA > Веб сервисы 12
Средства интеграции (2) • Исполнение в Java VM > Поддержка скриптовых языков: – Javascript, Ruby, … > Трансляция в Java байткод: – из Python, Groovy, Ada, COBOL, C, … > Большой список для разных языков: http://www.robert-tolksdorf.de/vmlanguages.html • Бонус: > единая среда разработки (NetBeans) для Java, C/C++, PHP, Ruby, Javascript, … 13
Среда разработки NetBeans • Полный цикл разработки > редактирование, сборка, тестирование, отладка, профилирование, ... > содержит все, что нужно для запуска • Средства повышения продуктивности > Втроенная документация, подсветка синтаксиса, рефакторинг, подсказки, редактор графических интерфейсов, UML редактор, ,…. • Подходит для разработки различных приложений > от Веб-сайта или игры для мобильного телефона до распределенного серверного приложения • Работает на Solaris, Linux, Windows, FreeBSD, … 14
NetBeans: открытая среда • Открытый код • Поддерживает не только Java > HTML, XML, JSF, JSP, CSS, Javascript, Ruby, C/C++ • Встраиваемые модули > 250+ модулей доступно на NetBeans.org > включая расширения для Groovy, Python, PHP, Fortran и других языков • Возможность интерактивного взаимодействия во время совместной работы над проектом • Платформа для создания своих программ 15
Java для обучения школьников • Это не самый простой язык программирования, но и не самый сложный • Плюсы: > удобная среда разработки значительно облегчает и ускоряет процесс обучения > широта платформы и библиотек позволяет выполнять более интересные ученикам проекты – игра для мобильного телефона – анимированный фотоальбом – персональная веб страничка – карта любимых мест на основе google maps – .... • Простое начало: JavaFX Script плагин для NetBeans 16
JavaFX Script • Декларативная нотация для графических объектов • Оператор связывания данных var temp = 0; BorderPanel { • Статические типы center: FlowPanel { • Прозрачная интеграция с content: Slider { value: bind (temp – 32)/4.5 } Java } • Режим NetBeans: “Сразу right: FlowPanel { вижу что пишу” content: Spinner {value: bind temp} } } 17
Пример: Плагин JavaFX Script (http://javafx.netbeans.org/) 18
Java как платформа для обучения • Создание систем обучения и тестирования > Sakai (http://www.sakaiproject.org/) – Пилотный проект в Петербурге: http://dl.smolny.nw.ru > OLAT (http://www.olat.org) > OpenUSS (http://openuss.sourceforge.net) • Инструментарий для создания демонстраций > Open Source Physics (http://www.opensourcephysics.org) – Интерактивные учебные материалы на основе физлетов. Computer Tools in Education, 5'2003 • Реализация алгоритмов для практических занятий > Data Mining: Practical Machine Learning Tools and Techniques. (http://www.cs.waikato.ac.nz/~ml/weka/book.html) 19
Открытые учебные ресурсы • Курсы от Sun на русском > http://ru.sun.com/research/teachingmaterials.html • Курсы на английском > Java Tutorial > Проект JEDI (открытые курсы по Java) (http://www.jediproject.net/) > Набор курсов от Sang Shin (www.javapassion.com) > множество доступных курсов в Веб • NetBeans в образовательном процессе > http://edu.netbeans.org/ • Sun Academic Initiative > Бесплатный доступ к официальным курсам для образовательных учереждений > http://sun.com/academic 20
Простота администрирования • Поддержка многих операционных систем и аппаратных конфигураций • Автоматическая установка обновлений • Дистрибутивы NetBeans > включают все, что нужно для разработки и запуска программ на Java > единая среда разработки для работы с несколькими языками программирования 21
Что важно для исследований? • Возможность быстро создавать прототипы > Язык высокого уровня, среда разработки > Возможность переиспользовать готовые решения • Способность решать сложные задачи > Гибкость/мощность языка и платформы > Обширный и удобный инструментарий и библиотеки > Производительность/масштабируемость • Доступность окружения для коллег > Поддержка других платформ > Бесплатность > Простота установки и настройки 22
Java: основа для исследования • Возможность экспериментировать с > расширениями языка и компиляторами > расширениями и оптимизациями виртуальной машины > … • Примеры: > The java module system: core design and semantic definition. OOPSLA’2007 > A type system for preventing data races and deadlocks in the java virtual machine language. SIGPLAN’ 2007 > Interactive Back-annotation of Worst-case Execution Time Analysis for Java Microprocessors. RTCSA’2007 > Automatic inference of stationary fields: a generalization of java's final fields. POPL’2008 23
Java: платформа для исследователя • Доступный инструментарий для: > моделирования, хранения и обработки данных, визуализации и многого другого • Возможность работать на высоком уровне абстракции • Примеры: > Java (J2ME) Front-End for Distributed Speech Recognition. AINAW’2007. > Aspect-oriented application-level scheduling for J2EE servers. > Using the Open Source Physics Java Library to do Computer Simulations. APS’ 2006. 24
Пример: Open Source Physics (http://www.opensourcephysics.org) Примеры и библиотеки для обучения физике и исследований в области физики 25
Пример: Instant JChem (на основе платформы NetBeans) 26
Пример: JADE (http://jade.tilab.com/) программная среда для разработки мультиагентных систем 27
Пример: WEKA (data mining toolkit) 28
Пример: NASA World Wind (http://worldwind.arc.nasa.gov) Виртуальный глобус • Применение в образовательном процессе: http://www.worldwindclassroom.com/ • 4.6+ Тб карт 29
Пример: Sun's Virtual Workplace (http://www.sunlabs.com/projects/mc/mpk20.html) • Трехмерная среда для совместной работы • Основана на: > Клиент: проект Wonderland – Иструментарий для создания трехмерных виртуальных миров > Сервер: проект Darkstar – Инструментарий для создания масштабируемых и надежных приложений без явного контроля паралельного исполнения – Оригинальная цель: инфраструктура для глобальных многопользовательских онлайновых игр 30
Полезные ссылки • http//developers.sun.ru • http://sun.ru/research • http://java.sun.com • http://netbeans.org • http://java.net • http://ru.jfx.wikia.com 31
Спасибо! Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 32
Вы также можете почитать