Писк - Squeak
Парадигма | объектно-ориентированный |
---|---|
Разработано | Алан Кей , Дэн Ингаллс , Адель Голдберг |
Разработчики | Сообщество Squeak |
Впервые появился | 1996 |
Стабильный выпуск | 5.3 / 4 марта 2020 г .
|
Печатная дисциплина | Динамический |
Платформа | Кроссплатформенность |
Операционные системы | Кроссплатформенность : Unix-like , macOS , iOS , Windows и др. |
Лицензия | Массачусетский технологический институт , Apache |
Расширения имени файла | .image, .changes, .sources, .st |
Веб-сайт | www |
Основные реализации | |
Писк, Крокет | |
Диалекты | |
Крокет , Новояз (язык программирования) , Фаро | |
Под влиянием | |
Smalltalk , Lisp , Logo ; Скетчпад , Simula ; Себя | |
Под влиянием | |
Etoys , Твик, Крокет , Скретч |
Squeak - это объектно-ориентированный , основанный на классах и отражающий язык программирования . Он был получен из Smalltalk-80 группой, в которую входили некоторые из первоначальных разработчиков Smalltalk-80, сначала в Apple Computer , затем в Walt Disney Imagineering , где он был предназначен для использования во внутренних проектах Disney. Позже группу будут поддерживать лаборатории HP , SAP и, совсем недавно, Y Combinator .
Squeak работает на виртуальной машине (ВМ), что обеспечивает высокую степень переносимости. Система Squeak включает код для создания новой версии виртуальной машины, на которой она работает, а также симулятор виртуальной машины, написанный на Squeak.
Разработчики
Дэн Ингаллс , важный участник проекта Squeak, написал статью, на которой построен Squeak, и построил архитектуру для пяти поколений языка Smalltalk.
Алан Кей - важный участник проекта Squeak, и Squeak включает в себя многие элементы предложенной им концепции Dynabook .
Фреймворки пользовательского интерфейса
Squeak включает четыре фреймворка пользовательского интерфейса :
- Реализация графического интерфейса прямого управления Morphic , Self . Это основной интерфейс Squeak.
- Тайловые сценарии ограниченного визуального программирования в Etoys , основанные на Morphic.
- Новый экспериментальный интерфейс под названием Tweak . В 2001 году стало ясно, что архитектура Etoy в Squeak достигла своих пределов в возможностях инфраструктуры интерфейса Morphic. Исследователь Hewlett-Packard Андреас Рааб предложил определить «процесс сценария» и предоставить механизм планирования по умолчанию, который позволяет избежать нескольких более общих проблем. Это привело к появлению нового пользовательского интерфейса, предложенного для замены пользовательского интерфейса Squeak Morphic в будущем. Твики добавили механизмы островов, асинхронного обмена сообщениями, игроков и костюмов, языковых расширений, проектов и тайловых скриптов. Его базовая объектная система основана на классах, но для пользователей во время программирования (написания сценариев) она действует так, как будто она основана на прототипах . Объекты настройки создаются и запускаются в окнах проекта Tweak.
- Модель-представление-контроллер интерфейс (MVC) , был основным пользовательским интерфейсом в писке версии 3.8 и более раннее. Он произошел от оригинальной среды пользовательского интерфейса Smalltalk-80, которая впервые представила и популяризировала архитектурный шаблон MVC. MVC получил свое название от трех основных классов фреймворка. Таким образом, термин «MVC» в контексте Squeak относится как к одной из доступных сред пользовательского интерфейса, так и к шаблону, которому следует среда. MVC по-прежнему предоставляется программистам, которые хотели использовать этот старый тип интерфейса.
Использует
Многие Squeak вкладчики сотрудничают на Open Cobalt , в свободном и с открытым исходным кодом виртуального мира браузером и строительным инструментарий , построенным на писке.
Первая версия Scratch была реализована в Squeak.
OpenQwaq , система виртуальной конференц-связи и совместной работы, основана на Squeak.
Squeak также используется в операционной системе Nintendo ES.
Лицензия
Squeak 4.0 и более поздние версии могут быть загружены бесплатно, включая исходный код, в виде предварительно созданного образа виртуальной машины под лицензией MIT , за исключением некоторого исходного кода Apple, который регулируется лицензией Apache .
Изначально Squeak был выпущен Apple под собственной лицензией Squeak . Хотя исходный код был доступен и модификации разрешены, лицензия Squeak содержала положение о возмещении убытков, которое не позволяло квалифицировать его как действительно бесплатное программное обеспечение с открытым исходным кодом .
В 2006 году Apple дважды перелицензировала Squeak. Во-первых, в мае Apple использовала свою собственную лицензию Apple Public Source License , которая удовлетворяет концепции Free Software Foundation о лицензии на бесплатное программное обеспечение и получила официальное одобрение Open Source Initiative в качестве лицензии с открытым исходным кодом. Однако лицензия Apple Public Source License не соответствует требованиям Debian по бесплатному программному обеспечению . Чтобы включить Etoys в проект « Один ноутбук для ребенка », было предпринято второе перелицензирование с использованием лицензии Apache. На этом этапе также была предпринята попытка решить проблему кода, предоставленного членами сообщества Squeak, который Apple не могла в одностороннем порядке перелицензировать.
Для каждого вклада, сделанного по лицензии Squeak с 1996 года, было получено заявление о перелицензировании, разрешающее распространение по лицензии MIT , и, наконец, в марте 2010 года конечный результат был выпущен как Squeak 4.0, теперь под объединенными лицензиями MIT и Apache.
Писк виртуальной машины
Виртуальная машина Писк семейство виртуальных машин (VM) , используемых в Smalltalk реализаций языка программирования. Они являются неотъемлемой частью любой реализации Smalltalk. Все программы с открытым исходным кодом . Текущая виртуальная машина - это высокопроизводительная система динамического перевода. Соответствующий код хранится в репозитории OpenSmalltalk / opensmalltalk-vm на GitHub.
Другие виртуальные машины Squeak
Смотрите также
- Список языков программирования с открытым исходным кодом
- Алиса (программное обеспечение)
- Крокет Проект
- Pharo
- Seaside (программное обеспечение)