Путь Pixilang

Pixilang по русски
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Путь Pixilang

Post by Zuf »


Еще в середине лета я разговаривал с Гоглусом и мы обсуждали текущее положение пикси, прошлое и будущее языка. Всем ясно, что пиксиланг (вместе с автором и сообществом) находится в некотором кризисе. Но я полон оптимизма и мне кажется все будет хорошо ;)
В общем, пару месяцев назад я решил написать развернутую статью с заголовком этого топика. Сразу же накатал небольшое вступление, а потом по разным причинам работа все откладывалась (погряз в бытовухе). Сейчас у меня времени и сил стало еще меньше, чем летом, и я решил выложить хотябы ту небольшую заметку, что я написал ранее. Если дисскуссия о пути пикси "пойдет", то возможно это смотивирует меня на доработку полноценной статьи. Если же нет, то не беда, на форуме останется хотя бы такой небольшой информационный выхлоп-черновик :)


Путь Pixilang

В этом документе я постараюсь проанализировать текущее состояние проекта pixilang, систематезировать концепции, возникшие вокруг языка и предложить возможные пути развития.

Pixilang возник как минималичтичный язык создания пиксельной анимации. Но возможности его в действительности оказались несколько шире. Для меня пикси — это в первую очередь интересный эксперимент, отдушина для души, возможность уталить жажду творчества среди серых будней. Простота языка позволяет за один присест сделать что-то интересное, получить удовлетворение от работы. Думаю это главное преимущество языка — возможность быстро получить результат, и порадоваться за это.

Хочу отдельно сказать о том, что я подразумеваю под простотой. На счет простоты существуют разные мнения. Например Goglus считает, что простота это в основном минималистичность, аскетичность. Отказ от «возможных возможностей».
Я считаю, что простота — это когда просто работать. Не приходится отвлекаться на инструментальные средства или какие-то тонкости, можно просто работать. Делать только то — что хочется. Как ни странно, первый фактор — интерпретатор, который позволяет видеть сразу то что написал. Это большое преимущество. Есть неплохой набор базовых функций (хоть он и не идеален, на мой взгляд). Простота — это когда все ясно и нет ничего сложного. (Минимализм не обязательно отменяет сложность). Например известно, что операцию умножения можно заменить операциями сложения, но ведь гораздо удобнее и ПРОЩЕ когда есть умножение. ПРОЩЕ кодировать алгоритмы, когда есть нормальный float. С другой стороны функции факториала скорее место в математической библиотеке, чем в языковых операторах. Тонкая грань между удобством, простотой и функциональностью на самом деле очень зыбка. Лучшие из лучших могут годами искать ее.
Теперь хочется сказать о сложности. Некоторые концепции или языковые конструкции могут показаться сложными. На разном уровне понимание технологий программирования это могут быть функции, типы данных, классы с наследованием и полиморфизмом и т.д. Тем не менее и функции и классы были придуманы для того, что бы было ПРОЩЕ. Чтобы было проще решать задачи разной сложности. Тем не менее язык может оказаться перегруженным языковыми конструкциями, что безусловно вредно.

Пиксиланг должен позволять просто (и с удовольствием) делать интересные «мультимедийные» разработки.
Хороший пример — пикси трекер.

Задачи для статьи/дискуссии:
  • Наверное в пикси не хватете возможности создавать библиотеки. Первое что для этого нужно — пространства имен (в широком смысле, т.е. это могут быть и функции или что-то еще, что позволяет избежать конфликта имен переменных). Библиотеки нужны для повтороного использования кода и систематизации проектов, выходящих за рамки простых демок. Как мы можем реализовывать библиотеки?
  • Поиск ниши пиксиланга. Есть processing, rebol, даже haxe и некоторые другие проекты. Есть эзотерические языки. Есть традиционные языки с библиотеками разной степени сложности. Где находится пикси?
  • В каком-то смысле, пикси ближе к игрушке, чем к серьзному проекту. Но разве это плохо?
  • Что же такое простота и почему она приносит удовольствие? Посмотреть cairo и haml. Эти разработки легки в освоении и приносят удовольствие в процессе использования. (Это из моего личного опыта)
    В любом члучае использование софта (в том числе пикси) должно приносить радость и удовольствие. Как достичь "нирваны" с pixilang? ;)
  • Для порядка можно обсудить текущий "кризис".
  • Расширение коммьюнити как средство мотивации разработок.
    Тезисы:
    Для привлечения пользователей нужна реклама/маркетинг. Гоглус делает большую работу в этом.
    Была и есть идея создать сайт-витрину. Первый этап можно сказать пройден — собрана информация в вики. Нужно сделать отдельный сайт для пиксиланга (форум можно оставить старый).
    Нужна версия пикси под мак и айфон.
    Нужно делать переводы максимально большого количества информации на английский язык.
  • Философские идеи и концепции для пикси можно подчерпнуть в философии питона (языка), Arch Linux, UNIX в целом, в демосцене, конечно. Нужно смотреть не на фактическую суть "философии" этих явлений, а на их дух.
  • Что пиксиланг делать не должен? Ну как минимум не стоит пытаться встравивать его в какую-то существующую инфраструктуру. Я имею в виду всякие DE в Linux, отдельные ОС или что-то подобное. Пока эта моя мысль очень туманна.
  • Конечно этот список не полон, но думаю для начала хватит.
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Путь Pixilang

Post by J3d1 »

Нужная статья. С автором согласен. Считаю, что для успеха pixilang нужны:
1) интерес к нему разработчика (он у нас один));
2) выход pixilang 3 с тем функционалом, который для него задуман (нужно ставить реальные, выполнимые цели);
3) размещение этой версии на крупных варезных сайтах (и пр. реклама);
4) доки, статьи, примеры.

Пункты 1,2 - больше, конечно для разработчика. Пункты 3,4 - больше для нас, наверное)
Минимализм... Из множества возможностей всегда можно выбрать то что нужно, хуже когда не из чего выбирать)
В любом случае я - за развитие pixilang. Не хотел писать про компиляцию, но не удержался: сильно хочу компиляцию =)
User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Путь Pixilang

Post by Al_Rado »

Да, вопрос дальнейшего развития насущный.
Относительно развития комьюнити - и сложность и плюсы кроются в том, что пользователи пиксиленга как правило совершенно разные по своей сути (если так можно сказать): кто-то программист со стажем и находит в пикси развлечение, кто-то пользователь КПК и хочет написать под него нужные для себя приложения, кто-то дизайнер и видит в пиксиленге прежде всего связь кода и пикселя и т.п. Угодить такой "широкой публике" весьма непросто.
Есть в pixilang реальные ограничения на которые можно смотреть по-разному и видеть в них положительные/отрицательные стороны.
Например, только целочисленные вычисления, отсутствие готовых библиотек. Можно решить их выпустив очередную версию языка, но в таком случае основная нагрузка ложится на разработчика либо написать маленькую статейку-пример, помогающую понять каким образом обойтись целыми числами. Тоже самое с библиотеками - можно ведь и без наличия функций написать подпрограммы, способные решать широкий спектр задач. Таким образом кодер, решивший взяться за демку и имеющий красивую идею сможет легко её реализовать. Можно и сейчас, перерыв весь софт в архиве с примерами программ найти массу интересных и пока еще мало применяемых алгоритмов, эффектов, интересных решений - но эта работа требует немалого времени и сил. Опять же результат станет очередной программкой имеющей мало комментариев. Если же "выдернуть" полезный код, оформить его в подпрограммы с описанием, систематизировать полученные подпрограммы - получим немаленькую базу, опираясь на которую можно будет намного легче изучить язык и быстро написать прикладную программу.
Вот, к вопросу о компиляции - т.к. её пока нет и в ближайшем времени не предвидится предлагаю провести микро-исследование, как на каждой платформе можно обойти сие неудобство, например под windows xp пишется bat-файл такой-то структуры, под linux дистрибутив такой-то решается так, под windows mobile так... Если каждый попробует себя в решении этих вопросов, я уверен решения будут найдены.
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
goglus
Posts: 122
Joined: Tue Dec 04, 2007 4:19 pm
Contact:

Re: Путь Pixilang

Post by goglus »

сразу начну с плохих новостей
— умер промо сайт pixi.gif.ru , похоже безвозвратно
— под айфоном pixilang не будет — не разрешается яблочниками
— ну и то что Алекс разболелся не на шутку если кто не знает

хорошие новости
— на маке уже запускается
— промо сайт можно налепить еще

идеи
— есть идеи интеграции pixilang в linux wm


что касается идеологии, нахождении ниши и тд, тут надо просто встряхнуться и больше кодить
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Путь Pixilang

Post by J3d1 »

Желаем Night Radio скорейшего и полного выздоровления
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Путь Pixilang

Post by Zuf »

Да, NightRadio выздоровления и вообще здоровья и творческих успехов! ;)
Что касается обсуждения пикси постараюсь более развернуто ответить позже.
Основная мысль - надо найти в пикси то, что объединяет программиста, отдыхающего в пикси; пользователя, который хочет своих программ; дизайнера, совмещающего пиксели и код; и конечно всех остальных. Выделить общую вещь, которая приносит радость использование пикси.
goglus
Posts: 122
Joined: Tue Dec 04, 2007 4:19 pm
Contact:

Re: Путь Pixilang

Post by goglus »

Основная мысль - надо найти в пикси то, что объединяет программиста, отдыхающего в пикси; пользователя, который хочет своих программ; дизайнера, совмещающего пиксели и код; и конечно всех остальных. Выделить общую вещь, которая приносит радость использование пикси.
сама собой напрашивается модульная структура
User avatar
NightRadio
Site Admin
Posts: 3954
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Путь Pixilang

Post by NightRadio »

Рад всех слышать! :)

Тема актуальна, как никогда.
Увы, на руках у меня еще ничего нет, кроме теории касательно Pixilang3 :) Но общая структура потихоньку вырисовывается.
Вот кое-что из исновных моментов, которые планирую реализовать.

1. Динамические типы переменных; переменная может в любой момент времени хранить либо целое число, либо с плавающей запятой - это всё на плечах интерпретатора.
Недостатки: естественно, понижается скорость выполнения базовых операций над переменными.
Приемущества: программирование упрощается в разы.

2. Функции с переменным количеством параметров. Плюс локальные переменные.

3. Новый подход к пикси-контейнерам. Вот тут пока довольно туманно, но в общих чертах попытаюсь описать. Пикси-контейнер - по прежнему массив чисел (пикселей, букв или еще чего). Но в случае с графикой - этот массив всего лишь один статический кадр. Этот кадр можно получить или сохранить по запросу. Внутри контейнера кроме массива скрыто описание источника анимации, его типа и т.д. И соответсвенно специальные команды для: получение кадра X; сохранение кадра X; получение FPS анимации; установка номера видео-потока анимации.
Таким образом мы не ограничиваем тип контейнера никакими рамками.
Например, в качестве источника анимации может быть AVI файл, хранащийся на диске.
Другой пример - запакованная в памяти анимация: изменив один кадр мы вызываем команду "сохранить кадр X" и кадр не просто сохраняется в памяти, но и запаковывается, скажем ZIP-ом. Это позволяет делать анимацию высокого разрешения и при этом экономить память, если кадр пустой или сожержит много одноцветных или повторяющихся областей.

4. Набор команд для обработки графики и сигналов. Команды эти работают с большими блоками данных. Примеры: разложение Фурье, аддитивный синтез, сложение, умножение, интегрирование и т.д.
Идея тут такая. Из за ввода динамических переменных мы потеряем скорость. В операциях, где скорость не критична, всё ок. А вот операции, требующие максимум производительности - в большинстве случаев это как раз та самая обработка сигналов, но здесь даже самые сложные эффекты можно разложить на последовательность базовых, которые уже будут встроены в Pixilang и, соответственно, выполняться с максимальной скоростью :)

Вот примерно такой план. На счет остальных вопросов еще не думал :) Четко аудиторию pixilang как и прежде не вижу. Но чувствую, что дело всеравно стоящее и нужное :)
Пошел пить чай..
User avatar
Al_Rado
Posts: 239
Joined: Tue Dec 04, 2007 2:33 pm
Location: Krasnodar
Contact:

Re: Путь Pixilang

Post by Al_Rado »

Все четыре нововведения весьма радуют )
Новый подход к пикси-контейнерам особенно интересен для меня. Таким образом пикси-контейнер станет по-настоящему универсальным мультимедийным контейнером!
Вопрос: а подключение различных кодеков (PNG например) будет?
ВекторКодПиксельПолигон - ВотЧтоЯЛюблю!
User avatar
NightRadio
Site Admin
Posts: 3954
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Путь Pixilang

Post by NightRadio »

С кодеками пока вопрос... Не уверен, что PNG будет встроен в базовый Pixi. Скорее, это будет типа расширения, которое может быть на одной платформе и отсутствовать на другой.. Во всяком случае, так будет с видео: под Linux будет цепляться библиотека ffmpeg (основа mplayer), а под Windows и WinMobile, вероятно, что-то своё.
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Путь Pixilang

Post by Zuf »

NightRadio, очень рекомендую тебе познакомится с языком Ruby.
У него своя специфическая и очень красивая "душа". Можно подчерпнуть некоторые идеи и приемы использующиеся там.
(Например про блоки или переменные в виде массива/хэша для передачи параметров).
User avatar
NightRadio
Site Admin
Posts: 3954
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Путь Pixilang

Post by NightRadio »

Хорошо, обязательно посмотрю :)
Zuf
Posts: 110
Joined: Fri Dec 21, 2007 7:30 pm
Location: Msc
Contact:

Re: Путь Pixilang

Post by Zuf »

Что еще хотел сказать.
В принципе я бы хотел присоединиться к активной разработке пикси (не знаю только в какой форме), но в обозримое время у меня не будет такой возможности из-за большого количества скопившихся дел. Может быть будет полегче ближе к весне, не знаю.
User avatar
NightRadio
Site Admin
Posts: 3954
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Путь Pixilang

Post by NightRadio »

Понимаю, со временем и у меня туго.
Ну сейчас главное заставить себя начать основу делать... А дальше как-нибудь скооперируемся.
J3d1
Posts: 175
Joined: Wed Oct 15, 2008 4:49 am
Location: г. Абакан, Хакасия
Contact:

Re: Путь Pixilang

Post by J3d1 »

Сорри за оффтоп =) Поздравляю NightRadio и всех фанатов pixilang с наступающим 2010!!! Пожелания такие: крепкого всем здоровья, счастья, побольше денег и больших творческих успехов. 2010+pixi3 = COOL!!!
Post Reply