Espruino: JavaScript на STM32 (новая железка и софт, наподобие ардуино)



Сейчас слежу за проектом Espruino на кикстартере.
Коротко: ребята разрабатывают проект JavaScript интерпретатора для STM32 (и не только).
Ну и под него еще свою среду разработки и железку (отладку) свою конечно.
Все в открытых исходных кодах!

Вид на прототип снизу:


Концепция примерно та же, что и у ардуино. (Правда Шильды делать вроде как сами не собираются.)
Обещают полный Open Source как программщины так и всех железных решений (правда только после 26 сентября — когда проект стартует).

Распиновка прототипа:


Интересно тем, что:
— работает на STM32
— собственно Open Source
— код пишется на JavaScript (либо графическими блоками)
— позволяет писать код в консоль, и он будет сразу исполняться на камне (то есть без компиляции и прошивки)

Почему JavaScript? (примерный перевод текста с кикстартера)
Мы подбирали язык, который:
— Не требует компиляции
— Может быть изменен и дополнен прямо в процессе работы программы
— Имеет хорошую поддержку таких типов данных как Strings, Objects, Maps и Arrays
— Имеет сходный синтаксис с такими языками как C, C++ (Arduino) и Java
— Может по простому быть завязан на события (event-based)
— Широко используется, прост в изучении и гибок

То есть по сути интересен сам их интерпретатор JavaScript для STM32 (и не только в общем-то), который можно прошить не только на их платку.
Если у вас есть, к примеру Discovery от ST с достаточным количеством флеша — уже можно пробовать.
Ну и среда разработки тоже может быть интересна.
Пока проект не стартовал, прошивка закрыта, и, если хочется, чтобы написанная вами программа сохранилась во флеше — придется отстегнуть им за лицензию. Но это только до окончания кампании на кикстартере.

В общем, лучше один раз увидеть:


И вот:


На сайте проекта есть полный референс на железки и код. А так же руководства и примеры кода.
Далее там обещают еще много интересного выложить. Например, исходники коробочки под их железку для 3D принтеров :)

Проект уже собрал больше, чем было нужно, а значит точно будет запущен.
Но у желающих есть еще несколько дней, чтобы поучаствовать и за £22 получить их платку.

Более подробную информацию можно почитать на кикстартере и на сайте проекта.
Если вдруг кому-то интересно, могу перевести (громко сказано конечно, но попытаюсь) еще что-нибудь с этих страничек — пишите в комментах (конечно при наличии времени свободного).

Лично от себя замечу: при очевидных минусах данного решения (типа необходимости занимать до 200 кило флеша под сам интерпретатор JS), проект имеет право на жизнь. Собственно хотя бы как обучающий стенд для новичков.
Особенно, как мне кажется, подойдет для детей (может для кружков детских или школ). Чтобы, так сказать, разогреть аппетит к этому делу. А, наигравшись вдоволь с камнем на JS, можно начать программировать под него уже по серьезному.

PS: и очень прошу сообщество — давайте без холиваров :) Их уже и так были тысячи…
И да, это не хабр, но вот на сей момент хабр про Espruino молчит, почему-то.
И доступа на хабр у меня нет, и честно говоря — не хочется его заводить.
Так что пишу тут, в личный блог! ;)

Update 10 (15.09.13):
Ребята достигли первого "Stretch Goal" в £50,565 — по нему они обещаются в ближайшее время добавить поддержку модуля WiFi CC3000.

Кстати, поддержа базового HTTP у них и раньше была, но работала только под Raspberry Pi.
Так вот, теперь они доработают этот класс, чтобы он точно так же работал и с CC3000.
Почитать про сам класс можно тут. Имеется возможность создавать как клиенты так и сервера.
А вкупе с возможностью использовать JSON так и вообще замечательно.

Вообще на данный момент реализована поддержка:
Serial Port
SPI
I2C
OneWire
Wireless в лице NRF24L01+
Для создания клиентов/серверов:
Класс Http
Еще есть:
LCD Driver для 1602/2004/HD44780
Библиотека для работы с графикой на графических LCD и/или в памяти МК

Другие новости от разработчиков (примерный перевод):
Мы до сих пор упорно работаем над Espruino:
— мы обновляли Web UI: добавили несколько фишек и сделали его проще в использовании;
— добавляли новую документацию;
— добавляли поддержку модулей/библиотек в стиле CommonJS (node.js);
— а так же тестировали графическую библиотеку Espruino с экранчиком Nokia 5110.

Ну и два новых Stretch Goal:

£60,000 — загрузка модулей NPM Node.js
После нашей недавней работы, Espruino теперь поддерживает загрузку модулей с SD карты — так что вы можете просто и быстро добавлять библиотеки для поддержки нового оборудования.
Однако, если мы достигнем данного уровня (£60,000), мы добавим возможность загружать node.js модули из интернет: как прямо на Espruino (через CC3000 WiFi модуль) так и через Espruino Web UI. Таким образом вы сможете загружать node.js модули из интернет независимо от того, имеет ли ваша Espruino CC3000 модуль или нет.

£70,000 — OpenWRT package
Если мы достигнем этого уровня, то засабмитим Espruino package в репозитории OpenWRT.
Это означает, что вы сможете получить «Espruino's fantastic, web-enabled node.js-style JavaScript programming» (трудно такое перевести красиво, но вы сами все поняли, думаю) на небольших работающих на Linux устройствах вроде Carambola, TP-Link TL-WR703N, Arduino Yun, и даже вашем беспроводном маршрутизаторе!

Update 11 (18.09.13):
(примерный перевод)
Мы только что запостили новое видео. В нем показано, как просто использовать модули в Espruino.



Два модуля загружаются с SD-карты, один для DS18B20 и второй для экранчика Nokia 5110. В будущем мы поработаем над использованием Web UI для загрузки модулей из сети. А пока что вы можете загрузить все необходимые модули на SD-карту, использовать их, а потом удалить, если больше не нужны.

Update 18 (26.09.13):
Проект успешно стартовал. Набрал 100+ тыс. фунтов. То есть все заявленные «Stretch Goals» будут выполнены.
Как и обещали, разработчики выложили в свободный доступ все:
JavaScript интерпретатор Espruino
Espruino Web IDE
Схемы Espruino
Доки по Espruino
  • +4
  • 13 сентября 2013, 20:26
  • JustACat

Комментарии (102)

RSS свернуть / развернуть
какой только херни не наплодят быдлокодеры
да и шепелявит он так прикольно

А, наигравшись вдоволь с камнем на JS, можно начать программировать под него уже по серьезному.
я видел тех, кого научились паскалю и которые больше не хотели учиться
зачем учить изначально херне, чтобы потом переучиваться заново?
я сейчас ковыряю яваскрипт для веба и это такая жопа, что даже я со своим образным мышлением всеми конечностями за логику, которой там нет
так они и в контроллеры полезли теперь

вон в прошлой статья про быдлодуину и какие-то там очереди для мигания диодами на массивах и еще чем-то
0
Именно от вас именно такой коммент я и ожидал :) Без обид.

Но, во-первых, это уже миллион раз было сказано (и вами в том числе тут в сообщетсве). Зачем повторяться?
А во-вторых, простите, у вас педагогическое образование есть? Если есть, тогда я умолкаю.
Если нет, найдите того, у кого оно есть. Спросите: как нужно учить детей?
На примере: если дети учатся рисовать — зачем им раскрашивать всякую фигню в раскрасках? Лучше сразу заставить чадо рисовать пейзажи/портреты и т.п. А то начнет в раскрасках, и дальше уже не пойдет никуда. Так получается что ли?

На самом деле да, есть такой пласт людей, которые осваивают азы и дальше все. Ну и что ж? Ну не надо им больше. Да и ведь не все же… И это право личное каждого, до какой глубины постигать то или иное знание, не считаете?

Я лично лишь за то, чтобы такие вот поделки (вроде ардуино и рассматриваемой тут железки) в итоге в производство не попадали — это да. Даже не обсуждается.

Но именно для обучения, даже скорее для разжигания аппетита — это все нужное и очень полезное. Конечно же имхо :)
+5
как нужно учить детей?
есть такой пласт людей, которые осваивают азы и дальше все
Да и ведь не все же
И это право личное каждого, до какой глубины постигать то или иное знание
Хорошо сказано, да уж.
Я аж призадумался ;-)
0
Эммм, я, наверное, слишком заносчиво прозвучал =/ Мол, я в этом всем разбираюсь сильно и т.п… Если так, прошу прощения у kalobyte-ya.

На самом деле ни в коем разе не хотел сказать, что я лучше знаю, как детей учить, или что я прав безапеляционно. Нет, ни в коем случае! Тем более, что и детей у меня пока нет (только племянники).
Я просто высказал свое мнение на сей счет, не более :)

Лично я бы вот хотел, чтобы мое чадо хотя бы с таких штук начало и заинтересовалось. А дальше я бы уж поспособствовал. Ну и если бы в школах у нас или еще где-то кружки с такими вещами появились бы — вообще был бы несказанно рад. Как-то так.
0
Без обид.
почему у меня должны быть какие-то обиды?
А во-вторых, простите, у вас педагогическое образование есть?
чтобы обучать — не надо заканчивать 5 лет быдловуз, где тебя типа учат обучать
ты это либо умееш, либо не умееш

я предлогал недавно одной мамаше научить ее дочку полезным знаниям, но сказал ей, что она будет знать и понимать, но не сможет сдать школьные экзамены и так же не сдаст и дальше (с вероятностью 95%)
мамаша испугалась и сказала, что типа надо ходить в нормальную школу
а мне детей жалко, хотя я их не люблю

Спросите: как нужно учить детей?
а я уже теорию обучения узнал до того, как запилить своих личинок (в отличии от 95% быдла)
там зависит от возраста и я сомневаюсь, что дети захотят обучаться такому
не нужно ребенку пихать знания в 6-9 лет, как это пихают сейчас детям
что касается меня, то я в 12 лет начал изучать бейсик не зная программирования и английского, чисто методом тыка и разбором чужого кода
ну а начать программировать контроллеры может школьник, которому скоро в быдловуз, а там шкуру дерут по-взрослому

тут фишка в том, что человек может научиться неправильно использовать инструмент, получить корку и потом начать использовать этот инструмент в команде и рассказывать другим, что у него дома светодиод мигает и значит это работоспособно

ну не разрабатывался яваскрипт для контроллеров
если хочется управлять с компутера, то сделали бы прошивку, которая имеет обертки на разных языках и просто вся логика писалась бы на стороне компутера и выполнялась тоже, а нужные байты шли бы в мк по своему протоколу
таких плат для авр штуки 4 есть уже и своя ниша для них тоже есть
microsin.ru/content/view/803/44/ вот интересная плата и куча софта с пояснениями (вчера сам читал)
вот это хорошая штука для обучения

ну и дарю идею
возьмите сок атерос с лан и влан внутре типа тплинк роутеров, прилепите расширитель гпио и будет вам мега продаваемая плата
0
Ну вот, в таком ключе я согласен почти полностью.

тут фишка в том, что человек может научиться неправильно использовать инструмент, получить корку и потом начать использовать этот инструмент в команде
Особенно вот это паршиво. Ну я об этом писал.

ну не разрабатывался яваскрипт для контроллеров
Вот только с этим не соглашусь, то есть не с самим утверждением, а именно с подачей. Ну и что, что не разрабатывался? Множество изобретений и открытий совершено именно с применением чего-либо не так, как оно разрабатывалось, или не для того.

Я просто к тому клоню, что данная штуковина имеет право на жизнь и, уверен, найдет своих пользователей. А то, что она может навредить обучению сама по себе — вряд ли. Обучению может повредить кривой обучатель, кривые учебники, кривое окружение человека, кривое воспитание, но никак уж не наличие какого-либо инструмента под рукой. Вот как-то так я и считаю.
Это к вопросу, например, о том: стоит ли детям на математике позволять пользоваться калькуляторами? — тоже можно хороший спор на тему развести :)

А так, просто увидел штуку, которая лично меня заинтересовала — поделился с сообществом. Сообщество-то вряд ли из-за этого пострадает.
+1
ну не разрабатывался яваскрипт для контроллеров
Вы не поверите, но С/С++ тоже для них не разрабатывался.

P.S. та теория обучения, которая говорит вам, что не надо «пихать знания в 6-9 лет» годится только фтопку, поскольку основана на том, что знания именно что «пихаются» в ребенка. есть другие методы обучения, при которых дети сами эти знания впитывают, причем на совершенно другом уровне понимания.
+3
А вот как ПРАВИЛЬНО обучать работе именно с контроллерами? Как мне это видится, чтобы понять всю логику работы камня, прочувствовать его, нужно начинать именно с ассемблера, постепенно, по мере надобности переходя на ЯВУ (ну не кортекс-А, конечно, с их многопоточностью и многоядерностью, хотя...). Хотя многие авторы (причем довольно известные и уважаемые) пишут пособия «для чайников» с упором именно на ЯВУ (Си, в основном, хотя и тут можно спорить — это ЯВУ или больше обертка для ассемблера, и т.д.). А кто-то вообще с «экзотики» начинает, вроде Паскаля или Бейсика, и при этом вполне годные проекты получаются (все, естественно, на уровне ЛЮБИТЕЛЬСТВА).
В универе нас «азам» программирования обучали на Паскале. Устройство и работу непосредственно х86 изучали уже на примере ассемблера.
Для себя в свое время выбирал свой «первый камень» между PIC и AVR. Второй мне лично показался проще в освоении. Его и выбрал. И в качестве «базового» языка выбрал именно ассемблер, потому как решил, что так будет проще и логичнее освоить сам камень. На нем и писАл, до поры до времени, — пока недавно не приспичило НЕМНОГО, но БЫСТРО посчитать кой-чего с плавающей запятой на ТИНЬКЕ… С? С! Но тут я понял, что применительно к AVR, я его не знаю, т.е. СОВСЕМ… Стал разбираться, пробовать что-то… И стал сомневаться, а знаю ли я его (С) ВООБЩЕ???
В общем, застрял я пока на АВР-ках. То ли лень, то ли возрастное «отупение» (возможно кавычки все же правильнее на «возрастное») не дают пока перейти на «более высокую ступень развития» — те же ARM, а именно Cortex… Купленный еще пару лет назад на ebay RedBull на STM32F103ZE так и лежит в тумбочке, практически не юзаный (не продаю… пока… наверное)…
К чему это я?.. Не в инструментах дело, не в пути «познания истины» (дао, дзен и т.д.), а, все же, в самОм человеке! Ибо как говорил наш чертежник Дядя Ваня Черевук: «Студент — это ТИРЕ — человек, умеющий САМОСТОЯТЕЛЬНО работать с литературой»… Только вот многие, к сожалению, так и остаются, просто «ТИРЕ» и ничего больше…
0
Дать однозначный ответ на вопрос «как обучать работе с контроллерами» я не могу однозначно ответить. Как минимум потому что обучение взрослых и детей, вообще-то, разные вещи, а с обучением взрослых «с нуля» мне сталкиваться не приходилось (не считая того, как обучали меня, естественно, но этот мой опыт скорее навредит, чем поможет :) ). Но в целом я пользы от асма не вижу. Понимания работы контроллера он не прибавляет, а вот определенный примитивизм мышления имеет склонность формировать. Не столько даже примитивизм, сколько боязнь сложных алгоритмов. Хотя именно алгоритмы и структура программы это то, что будет нужно всегда, а асмы приходят и уходят.

P.S. по поводу самостоятельной работы с литературой: традиционная система обучения в школе ВООБЩЕ этому не учит. в итоге человек, попадая в ВУЗ, начинает с того, что переучивается. и не всем это удается сделать.
+1
Дать однозначный ответ на вопрос «как обучать работе с контроллерами» я не могу
Да собственно, как и любое эффективное обучение детей — сначала заинтересовать. А дальше само пойдет. Понятно, что не без специфики…
0
С детьми понятно. Взрослые на эту удочку ловятся значительно реже.
0
детей тоже порой не так уж и легко заинтересовать.
но эта проблема вне возраста.
0
А вот тут мимо.
Си разрабатывался для создания системного программного обеспечения.
А JavaScript — нет.
0
Си разрабатывался для создания системного программного обеспечения.
Он оказался для этого более-менее пригоден и только. Причем это больше последствия того, для какой архитектуры он создавался в комбинации с предельным упрощением, чем того, как он задумывался изначально. А так печать бумажек сложно назвать системной задачей. Это, кстати, то, для чего задумывался изначально юних (ну и С вместе с ним).
А JavaScript — нет.
Если подумать, то колупание в дереве объектов страницы задача примерно такого же уровня системности, как и печать бумажек.
0
Забыл добавить насчет плюсов: он с самого начала позиционировался как расширение плюсов для прикладных задач. В итоге он, правда, получился ни туда ни туда (или туда и туда, смотря в чьих руках).
А вот тут мимо.
Неа. Микроконтроллеров тогда просто не существовало, когда появился С. И да, «для системных задач» != «для микроконтроллеров».
0
При всем моем уважении, тов. evsi, то Вы наверное немного не туда ведете.
Все программирование можно назвать банальным переносом данных из ячейки памяти в другую ячейку и вычислением над ними арифметических и логических операций.
Любой микроконтроллер можно считать компьютером в том виде, в котором он попадает к нам в руки, т.к. выполняет все те-же операции: обработку и вывод данных.
Ну а плюсы дали сами знаете что — объектность мышления.
0
Все программирование можно назвать банальным переносом данных из ячейки памяти в другую ячейку и вычислением над ними арифметических и логических операций.
Можно. Вопрос только в том, к чему такое упрощение приведет.
Любой микроконтроллер можно считать компьютером в том виде, в котором он попадает к нам в руки, т.к. выполняет все те-же операции: обработку и вывод данных.
Угу. Только вот для микроконтроллеров не получается писать так, как для мейнфреймов. Даже в пределах одной архитектуры зачастую подходы кардинально отличаются, достаточно сравнить кортексы с топовыми армами. И уж тем более некорректен перехож от «подходит для» к «создавалось для».
Ну а плюсы дали сами знаете что — объектность мышления.
Я тут уже как-то писал — плюсы были далеко не первыми. Строго говоря, объектный подход ровесник структурного. И «в массы» он попал блягодаря смолтоку, а не С++. Плюсы, кстати, еще один яркий пример разницы между «подходит для» и «создавался для». Для чего он создавался — я уже писал.
0
Можно. Вопрос только в том, к чему такое упрощение приведет.
Да я о том писал, что Вы написали, будто сортировка бумажек и работа ядра — одинаковые задачи. Да, одинаковы, т.к. и то и то гоняет данные в памяти.
А по прожекту: есть дуины и распберри, неужели для программистов неначем «въехать» в электронику?
0
Да я о том писал, что Вы написали, будто сортировка бумажек и работа ядра — одинаковые задачи.
Я разве такое писал?
0
Если подумать, то колупание в дереве объектов страницы задача примерно такого же уровня системности, как и печать бумажек.
Я вашу фразу перефразировал по памяти «немножко» я такой смысл в ней прочел, если я прочитал свое, то прошу прощения за непонимание.
0
Ну такого смысла в ней точно нет. Смысл в том, что изначально С создавался для конкретной системы и конкретных задач. Потом оказалось, что он (особенно после приведения его в чувство комитетом ANSI) подходит и для целого ряда других задач (в той или оной мере). Но и только. Изначально он для этих задач не создавался, как минимум потому что даже о существовании таких задач никому не было известно.
0
К примеру использования инструмента: есть такие ребята: www.thalmic.com/myo/
Так вот, они как раз на Ардуино делали первые прототипы своего браслета ;)
+2
Клевая штука! Довольно часто вижу, как люди, далекие от микроконтроллеров и подобного, брали ардуино, проверяли свою идею, и при положительном результате делали все «правильно». Такие платформы позволяют быстро проверить идею. И это их плюс!
0
Эта ПЯТЬ! Еще можно побродить по курсовикам студентов Корнелльского универа. На атмегах ТАКИИИЕ штуки творят… Уууу…
0
обожаю таких «МЕГА-кодеров» как вы. С вашим квадратным мышлением и деревянной логикой.
Знаете для чего нужна эта железка вообще? для чего используют такой подход в принципе?
Нет, не для того чтоб такие как вы ныли про «быдлокодеров».

Всё делается ради трех благ:
— снизить порог вхождения
— увеличить скорость разработки
— сделать код переносимым

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

От того и хэйтинг ардуины и им подобным — она решает поставленную задачу куда быстрее чем вы своими сями и ассемблерами.
Что в итоге? В итоге страх программистов перед тем что всякие школьники просто выкинут их с рынка труда, потому как реальность в том, что заказчик выберет тот метод разработки который выполняет поставленную задачу и тупо дешевле — а разработка с помощью таких инструментов в разы дешевле и быстрее, а результат легче поддерживать и переносить

Вы людей назвали быдлокодерами, а сами то осилите написать виртуальную машину для динамического языка? Вы то язык динамический освоить не можете, а про людей рассказываете
+2
Выглядит вполне реализуемо. Взять NodeJs на основе виртуальной машины от Гугла (V8), дописать свой фреймворк для связи с портами и все пойдет.
Сейчас для обучения некоторые школы используют raspberry pi с питоном, и по сути вроде все. Так что наличие альтернативы, да еще на STM32 выглядит вкусно! А Javascript event-based подход как нельзя лучше для понимания прерываний.
Удачи ребятам. Надеюсь запустят, а то последнее время кикстартер напоминает венчурную инвестиционную площадку (типа инвестиции с высокой степенью риска).
0
Взять NodeJs на основе виртуальной машины от Гугла (V8)

Из FAQ по Espruino:
Q: Why Not just use an existing JavaScript implementation like V8 or Spidermonkey?
A: Mainly it comes down to memory usage. According to this, V8 allocates over 8mb of RAM at startup, which isn't including stack space. By contrast, Espruino needs about 4kB of RAM for all data including variables and stack — at least 2,000 times less. Program memory is a similar story (although not quite as pronounced).
Если коротко: готовые решения вроде V8 требуют слишком много памяти.
Так что на Espruino все «свое». Ну и разработку они (если верить им же) ведут уже полтора вроде года. То есть в принципе оно у них уже в достаточно допиленной стадии.

Ну это так, просто выдержки из разных мест.

Зачем им тогда деньги? На этот вопрос ответ есть на страничке проекта на кикстартере.
Коротко: чтобы сделать сами платки, ну и понятное дело — подзаработать, чтобы было на что развивать дальше код, и, собственно, чтобы захотелось его заопенсорсить. Они там честно написали: «заопенсорсим, только если наберем денег».

Ну а то, что на кикстартере никто никому ничего не гарантирует — это понятно. В принципе: «кикстартер напоминает венчурную инвестиционную площадку» — так оно и есть.

В общем, денег у них уже набрано, посмотрим, что будет после 26 сентября.
0
Вы серьёзно? считаете что реально переписать даже половину кода движка на который Google потратил сотни человеко-лет?
конечно будут пилить что то своё, мельче, легче, без части фичь
думаю не будет ни JIT ни нормального сборщика мусора, ограничения по динамике какие-то да будут…
0
Зачем переписывать?
Можно взять готовый code.google.com/p/v8/ и отпилить все не нужное. Там хлама вагон и маленькая тележка. Одна DOM модель чего только стоит. Хотя с другой стороны очень врядли в stm32 влезет даже ядро V8. Его тоже пришлось бы покромсать.

Насчет 100 человеко-лет…
V8 движек строго говоря писал не гугл, а датская команда из нескольких человек специализирующаяся на разработке виртуальных машин. Склепали они ее за 4 месяца. Так что разработка своего примитивного JS движка под одну определенную архитектуру выглядит вполне реализуемо.
0
исходники на сайте не нашел
0
А если чуть внимательнее? ;)
Обещают полный Open Source как программщины так и всех железных решений (правда только после 26 сентября — когда проект стартует).
0
Не понимаю, почему все считают что эти железки для обучения детей?
Вполне отличная железка для хоббистов и мелких «автоматизаторов».
Вижу что тут бытует мнение о том что нужно учить более глубокие вещи, принципы внутреннего устройства, низкоуровневое (ну в смысле не уровня JS) программирование…
Ну у меня вопрос, ко всем за «глубокое изучение» — вы знаете электрическую схему кристалла? знаете ли вы машинные коды этого кристалла? знаете ли вы как эти машинные коды работают на физическом уровне? каким образом прерывание из электрического потенциала преобразовывается в код?
Очень незначительная часть людей знает как реально это работает, и все из них согласятся что написать значительный проект (например распознавание изображений) на инструменте низкого уровня, вроде assembler'а просто глупо, по причине нечеловеческих затрат и не сопоставимом выигрыше на выходе

Суть в том что все языки это всего лишь инструмент — и нет никакой необходимости спускаться на уровень ниже, если все потребности удовлетворяет язык текущего уровня.

Нужно не забывать что всё меняется, и со временем сложное становится проще. Вернее мы перескакиваем на уровень выше, в котором сложные вещи делаются за нас.

Такие вещи, как Ардуино, и такие платы — это всего лишь выше уровень.
Пройдет время и будут дешевые железки, с количеством памяти и производительностью которая сотрет выгоду от курения многотомных даташитов и мануалов, и практически любую задачу можно будет решить на уровне ардуино, с громадным запасом по ресурсам. Тогда вымрут все программисты «железячники» которые пишут в регистрики на ассемблере, так же как вымерли программировпвшие перфокартами. Останутся лишь те немногие, кто собственно и пишет слои абстракции следующего уровня, все прочие перейдут на уровень выше.
+1
так же как вымерли программировпвшие перфокартами
Во-первых, не вымерли, а, по большей части, ушли на пенсию. Во-вторых, параллели между перфокартами и асмом некорректны, перфокарты всего лишь носитель, а с их помощью писали на разных языках, от автокода и асма, до PL/I и JCL.

P.S. с остальным, по большей части согласен. я хоть и знаю как все работает (вплоть до процессов внутри отдельных транзисторов), но желания углубляться в такие подробности, когда пишешь систему из нескольких кластеров, как-то не возникает…
0
Железка с интерпретатором? Хорошая идея, но почему, блджад, жабосрипт? Язык, созданный для мелких финтифлюшек, отсутствующих в хатээмэле 4 точка 0? Питон есть, руби, форт и еще вагон и маленькая тележка.
Второе мое замечание по самой концепции bare-metal interpreting language. Все думают что стоит дать людям голый интерпретатор и будет им прельстиво и любовно. Почему бы не сделать интерпретатор в ОСРВ, с доступным HAL, хотя бы частичной POSIX-совместимостью, IP-стеком протоколов? Тем более что они рекламируют как учебную/хобби платку. Ибо писать коммуникационный стек на JavaScript это однозначно изврат. Подход типично новичковый, если думают что есть «волшебная таблетка», т.е. язык, позволяющий писать крутые вещи полному нубу. Дайте ось, драйвера и средства межпроцессовой коммуникации, если хотите облегчить жизнь.
Вангую что у платки будет слабый проблеск популярности, после которой канет она в небытие, оставшись в сердцах 3.5 Анонимусов.
0
Думаю, выбор жабаскрипта в немалой степени продиктован привычностью синтаксиса и распространенностью инструментария.
0
«Распространенность инструментария» только в веб-программеров, и тот вряд ли совместим с микроконтроллерами. Ну а синтаксис в Питоне или Lua совершенно привычный.
Лучше уже ждать микроконтроллера с интерпретатором Lisp.
0
«Распространенность инструментария» только в веб-программеров, и тот вряд ли совместим с микроконтроллерами.
Один из этих инструментов все тот же эклипс, ага.
Ну а синтаксис в Питоне или Lua совершенно привычный.
После С? Ни разу не привычный. Особенно питон с его отступами.
0
Во-первых, платформа рассчитана на людей без опыта микроконтроллеров. Откуда им знать С? С# в лучшем случае. Сейчас среди «перворазников» Питон куда более распространен чем С. А писать можно его в чем угодно, в тому же эклипсе.
0
Откуда им знать С? С# в лучшем случае.
С/С++/C#/Java/JS и так далее это все «С-подобные» по синтаксису языки.
Сейчас среди «перворазников» Питон куда более распространен чем С.
По распространенности до С#/Java/JS питону все равно плыть и плыть по пересеченной местности.
0
Если уж брать популярность, то JS все еще в догоняющих:
www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Да, сейчас JS популярен, как был РНР 10 лет назад. Ибо дешевые быдлокодерынизкий порог вхождения и готовые фреймворки под широкий круг задач. На эмбеддед этого всего нету, и получаем мы обычный интерпретированый язык, со средней удобности низкоуровневыми операциями, сомнительной производительностью и привязанный к одной платке. Ардуино им не победить ну никак. В чем преимущества этого решения? Только в диалекте JavaScript?
0
Если уж брать популярность, то JS все еще в догоняющих:
Еще раз: он похож по синтаксису на первую пятерку приведенного вами списка. Питон — не похож. Вот и вся мотивация (она, кстати, у авторов описана).
Ардуино им не победить ну никак.
Да мне, вобщем, все равно. Это не мой стартап :)
0
Да, сейчас JS популярен, как был РНР 10 лет назад.
К слову: JS ровесник PHP, так что «как был» замечание несколько неуместное.
В чем преимущества этого решения?
При желании они легко находятся. Скажем, на JS есть стандарт (кстати, не привязанный к браузеру и DOM).

P.S. забавный индекс, но, IMHO, он показывает погоду на Марсе.
0
JavaScript ЕМНИП появился в середине 90-х. Я не говорю что он плохой язык. Я считаю что этот язык не предназначен для микроконтроллеров — вроде как стамеской шурупы закручивать. Да фиг с ним, хотя лисп был бы однозначно круче, и хорошо ложится на рисковое ядро :).
Мои претензии в основном две: простой язык != простота использования и тем более не волшебная таблетка для новичка. А вторая — голый интерпретатор (ну с 2-3 библиотеками от производителя) сейчас никому не интересен.

Когда-то я мечтал о скриптовом языке для микроконтроллеров. Что у нас есть ОСРВ, сишные функции на все случаи жизни и консоль, куда можно набивать скрипты в псевдокоде. А ОСРВ имеет интерпретатор оного языка — и не думаю я ни о битах, ни о эндианах, а пишу:

portA.1=ON
timer1.oneshot=1000 ms
portA.1=OFF

Короче ардуино, но с интерпретируемой консолью.Сейчас тоже хочу такое, но с позиксом, чтобы были файлы, пайпы и сетевые интерфейсы.
0
JavaScript ЕМНИП появился в середине 90-х.
Точно. PHP тогда же.
Я считаю что этот язык не предназначен для микроконтроллеров — вроде как стамеской шурупы закручивать.
Уровень удобства тут почти такой же как в С, включая битовые операции. Из заметных минусов — нет указателей и адресной арифметики. Насколько они нужны — тема отдельного разговора. В любом случае на стамеску это мало похоже.
0
Мои претензии в основном две: простой язык != простота использования и тем более не волшебная таблетка для новичка.
А из чего вообще возникла мысль, что JS «простой язык»? «Не сложный для освоения» != «простой» (в смысле «примитивный» и «ограниченный»).
0
получаем мы обычный интерпретированый язык, со средней удобности низкоуровневыми операциями, сомнительной производительностью и привязанный к одной платке
На счет удобности операций ничего не скажу — не знаю пока.
На счет производительности можно глянуть тут:

В чем преимущества этого решения? Только в диалекте JavaScript?
0
Прошу прощения, что-то глюкануло, и сообщение добавилось недописанным, дубль два:

получаем мы обычный интерпретированый язык, со средней удобности низкоуровневыми операциями, сомнительной производительностью и привязанный к одной платке
— На счет удобности операций ничего не скажу — не знаю пока.
— На счет производительности можно глянуть тут: подпункт «HOW FAST IS Espruino?» (к сожалению, якорей на страничке нет). В принципе да, сомнительно, ну, смотря для чего, опять же.
— На счет привязки к одной платке — вот это вообще не понял, как раз привязки у них нет. Работает на многих STM32 платах. А с доступом к исходникам можно будет и еще добавить в поддержку. Причем разработчики и сами не против добавлять поддержку плат по запросу, как я понял. В принципе и Ардуино с 1 платки начинали же, а потом добавляли еще.

В чем преимущества этого решения? Только в диалекте JavaScript?
Попробую перевести опять же из фак часть раздела про сравнение Espruino и Arduino:
Espruino меньше, чем большинство плат Arduino и с ним гораздо проще начать, чем с Arduino. Вам не придется устанавливать какое-то ПО на ваш ПК.… Использование JavaScript интерпретатора означает, что Espruino не нужно перезагружать, после того, как вы внесли изменения в код, однако это так же означает, что исполнение кода будет медленнее. Для примера, Espruino пока слишком медленный для работы с Audio или Video (собственно, как и большинство Arduinos).

Для себя же я отмечаю такие плюсы: не нужно компилировать/загружать и перезапускать программу после каждого изменения. Как мне кажется, это может позволить по быстрому отлаживать части программы, или всю программу вцелом, методом проб и ошибок. Нет, я конечно понимаю, что это, возможно, не лучший метод написания программ. Но опять же — смотря для чего?
Зачастую, он куда быстрее и проще, чем привычное написание, компиляция, прошивка и затем отладка.

Еще можно отметить то, что Espruino как раз на STM32. Это конечно очень спорный момент, кому что больше нравится. Но я вот почему-то был бы счастливее, если бы мог начать работать сразу с приличным современным 32-битным камнем. Пусть и не задействовав все его возможности. Ведь никто не запрещает, когда приспичит, запустить КоКос (или кто там что любит) и начать писать свою прошивку «классическим» методом, и залить ее потом на платку, на которой до этого у вас стояла Espruino.
Как ни крути, а большинство АВРок, на которых работает большинство Ардуин — сильно уступают STMкам в Espruino ;)

Хотя это все — лишь мое личное мнение, возможно, у вас все с точностью до наоборот.

Так же не могу не отнести к плюсам собственно тот факт, что JS отлично подходит как раз для Веб-приложений.
То есть можно легко связать железку через веб с вашей программой на стороне сервера, обмениваясь, при этом JSON посылками.
При этом программа на сервере может как раз запускаться под Веб-сервером, то есть быть написана на PHP+MySQL+JS.
Это значит, что она может быть запущена на каком-нибудь хостинговом серваке (а не на вашем личном).
Можно так же на железке получать данные с различных веб-сервисов опять же в JSON'е.
Я понимаю, что все это можно делать и на обычном STM32, нативно, написав самостоятельно поддержку всего этого, или найдя подходящие либы. Да и на Ардуино многое из этого вполне себе делается, опять же, с использованием тех же библиотек.
Но ведь альтернатива — это же всегда замечательно, разве нет?

А еще мы можем организовать «сервер кода» :) Да-да. Облачное хранилище программ для вашей железки. То есть, имеем на хостинге веб-сервер на котором в БД хранится различный код (те же библиотеки) в виде JS скриптов. И ваша железка, по мере необходимости, либо по вашему пинку/запросу/желанию лезет на этот самый сервер и забирает с него новый код, меняя полностью или частично логику своей работы. Да, может показаться — что это из пушки по воробьям. Может так оно и есть.
Но ведь сейчас тенденции к облакам такие, что… Сам не особо люблю это дело, но…

Что там еще? Ммм, функционал, возможно, скудноват пока. Лично мне хотелось бы именно побольше библиотек готовых. Поддержку регулярок бы конечно. Может еще что… Ну, посмотрим, что будет дальше. Как говорится: запасаемся попкорном :)
+1
Как ни крути, а большинство АВРок, на которых работает большинство Ардуин — сильно уступают STMкам в Espruino ;)
А большинство стмок в еспруино — сильно уступают ТИшкам на пандабоарде, которые в свою очередь…

1.Берем хороший, годный камень.
2. Запиливаем туда интерпретатор диалекта языка, непопулярного в embedded. (Espruino is probably about 95% JavaScript compatible: it implements a (large) subset of the full JavaScript specification).
3. Пишем драйвера со сногсшибательным быстродействием (on the STM32F4 you can turn an IO pin on and off in a simple while loop at around 4kHz).
3. Позиционируя как веб-девайс, в дефолтной плате не устанавливаем ни ethernet, ни wifi. Так же никакой информации о реализации готовых стеков интернет-протоколов нету.
4. Жрем от 100 до 200 килобайт флеша, хороня идею переносимости кода на камни поменьше, если кто-то захочет сделать готовый девайс.
5. ??????
5. Пара тысяч веб-программеров покупают платку на раз поиграться, 90% мигает диодиком и успокаивается, 9% переходит на другую плату или на С, 1% с маниакальным упорством пилит проекты на джаваскрипте.
0
2. Запиливаем туда интерпретатор диалекта языка, непопулярного в embedded. (Espruino is probably about 95% JavaScript compatible: it implements a (large) subset of the full JavaScript specification).
Тем не менее, этот язык позволяет сделать две вещи: а) не заморачиваться низкоуровневыми деталями, б) иметь код достаточно близкий к «правильному» варианту на С или С++ (как минимум читаемый без перестраивания мозгов на существенно другой синтаксис типа того же питона). Популярность в эмбеде вообще не аргумент, в эмбед любой язык чуть ли не пинками загоняли.
5. Пара тысяч веб-программеров покупают платку на раз поиграться, 90% мигает диодиком и успокаивается, 9% переходит на другую плату или на С, 1% с маниакальным упорством пилит проекты на джаваскрипте.
Остается такая ниша как быстрое прототипирование. Потом прототип действительно можно переписать на С и впихнуть в камень поменьше и подешевле.

P.S. как ни ругали ардуину, а она не просто выжила, а окрепла и размножилась. хотя аргументация против нее была ровно та же.
0
Ардуино построило свою бешеную популярность на стандартизации железа и готовых библиотеках. И использование загрузчика вместо программатора, что в 2005 году казалось хай-теком, при сохранении совместимости с кодом на С и асме и достойной производительности.
Сравнивать проекты нельзя, потому что -дуиноподобных было уже несколько десятков, да что-то не взлетели особо.
Сейчас уже не 2005 год, и каких-либо достоинств окромя интерпретатора джаваскрипта у данной платы нету.
Тем не менее, этот язык позволяет сделать две вещи: а) не заморачиваться низкоуровневыми деталями
Посмотрите на чудесный драйвер для Nrf24, опубликованный на сайте производителя. Вся микроэлектроника это низкоуровневые вещи, куда не посмотри.
Javascript Тьюринг-полный, но создавался он совсем не для того. Почитайте историю С, Бейсика на 8-битках, когда некоторые процедуры на бейсике были быстрее асмовых.

Для быстрого прототипирования сейчас есть вагон и маленькая тележка платформ, куда более богатых. Можно ли на еспруино написать вменяемую ОСРВ? Любой софтовый протокол со скоростью обмена хотя бы 9600? Библиотеку 3д-графики?
Перенос же кода с прототипа в С будет боюсь труднее самого прототипа. В чем преимущество? С маниакальным упорством использовать веб-ориентированный язык только потому что он сейчас популярен? Любой сделавший ставку на Джаваскрипт обречен на заведомое ограничение своих инструментов.
0
Ардуино построило свою бешеную популярность на стандартизации железа и готовых библиотеках.
Нет. Он всего лишь был одним из первых и был полностью открыт, включая дизайны плат.
Сравнивать проекты нельзя, потому что -дуиноподобных было уже несколько десятков, да что-то не взлетели особо.
Ну или мы о них не особо в курсе по разным причинам. Впрочем, Maple вполне себе жив.
Посмотрите на чудесный драйвер для Nrf24, опубликованный на сайте производителя. Вся микроэлектроника это низкоуровневые вещи, куда не посмотри.
Сейчас, в основном, да. Но вся история микроэлектроники это постоянное повышение уровня. Именно на этой волне взлетел С, кстати.
Почитайте историю С, Бейсика на 8-битках, когда некоторые процедуры на бейсике были быстрее асмовых.
Уж чем-чем, но историей этого добра я интересуюсь давно, лет эдак 30.
Для быстрого прототипирования сейчас есть вагон и маленькая тележка платформ, куда более богатых.
Целевой рынок — младшие семейства армов. Можете назвать примеры платформ для них?
Можно ли на еспруино написать вменяемую ОСРВ? Любой софтовый протокол со скоростью обмена хотя бы 9600? Библиотеку 3д-графики?
А надо ли?
Перенос же кода с прототипа в С будет боюсь труднее самого прототипа.
С чего бы вдруг?
использовать веб-ориентированный язык
Вообще говоря, JS типичный скриптовый язык общего назначения. В самом языке нет нкакой привязки к вебу. Те реализации, что живут в браузере для доступа к документу имеют специальные объекты, но они не являются обязательной частью языка. Помнится, когда мозилла пошла в опенсорс, какое-то время билды JS движка выходили отдельно, в виде независимой негуевой прикладухи. Там, естественно, никакого веба и близко не было.
0
Новичку пох — арм не арм. До ардуино были тонны кода и десятки схем или готовых плат в продаже, но даже чтобы поморгать диодом надо было адаптировать код, разобраться в Avr Studio и раздобыть программатор. Ардуино пошли по пути стандартизации.
Можно ли на еспруино написать вменяемую ОСРВ? Любой софтовый протокол со скоростью обмена хотя бы 9600? Библиотеку 3д-графики?
А надо ли?
Надо. Люди мп3 декодируют на таких камнях и видео обрабатывают. А чтоб помигать диодиком так ардуинка и есть.
Перенос же кода с прототипа в С будет боюсь труднее самого прототипа.
С чего бы вдруг?
При оказии портируйте любую ОСРВ на JS и подумайте, не проще ли было выучить С.

Итак, представим что я веб-прогир, фанат JS и хочу сделать что-то в эмбеддед. Например дистанционную кормушку для кота. Что я могу взять:
— Одноплатник с линуксом и получить 100% совместимую рабочую среду, даже сервер на ней поставить.
— Ардуино с шилдом вай-фай и скетчем веб-сервера, немного поправить адрес сервака и все работает
— Собственную плату с нуля, потратив около месяца на изучение С.
— Или же еспруино, которое по цене дороже первых двух моделей, но при этом значительно ограниченней по быстродействию и функционалу.
Не стоит шкурка выделки. Вообще не стоит.
Мы уже дожили до аппаратного ускорения браузеров и 8-ядерных смартфонов, хотя ничего нового в интерфейсах не появилось, а в интернете и подавно. Массовый переход на 32бит армы это следствие демпинговой ценовой политики производителей. Хотите чтобы гонка за мегабайтами и мегагерцами пришла и в эмбеддед?
0
Не стоит шкурка выделки. Вообще не стоит.


Не понимаю, почему Вы так пытаетесь доказать, что такой девайс никому не нужен. Ведь проект на кикстартере уже собрал нужную сумму (даже больше в полтора раза). Тобиш у девайса есть целевая аудитория и она уже проголосовала да девайс «рублем».

 Хотите чтобы гонка за мегабайтами и мегагерцами пришла и в эмбеддед?

Это специфический девайс, для определенных энтузиастов, не стоит так переживать за весь эмбед :) Мне сам девайс не интересен, а вот софтовая часть, легковесный интерпретатор javascript – штука полезная.
0
Ардуино пошли по пути стандартизации.
Неа. Ардуины различаются по железу. Зато у них у всех одинаковая примитивная IDE. Так что они пошли по пути упрощения освоения и снижения порога вхождения.
А надо ли?
Надо.
Люди мп3 декодируют на таких камнях и видео обрабатывают.
Тем, кому надо выжать все до последнего из этих камней решат задачу иначе.
При оказии портируйте любую ОСРВ на JS и подумайте, не проще ли было выучить С.
Еще раз: зачем? ОСРВ в случае этой железяки вполне может быть частью платформы. Я уж не говорю о достаточно специфичном подборе задач в целом. То, что эти задачи не получится в лоб на ней делать, вовсе не значит, что на этой платформе вообще ничего нельзя сделать.
Не стоит шкурка выделки. Вообще не стоит.
Непонятно только, почему вы ардуине приписали нулевой порог вхождения, да еще в такой далеко не тривиальной конфигурации. Ну и ограничения по быстродействию и функционалу тут не играют роли.
Мы уже дожили до аппаратного ускорения браузеров и 8-ядерных смартфонов, хотя ничего нового в интерфейсах не появилось, а в интернете и подавно. Массовый переход на 32бит армы это следствие демпинговой ценовой политики производителей. Хотите чтобы гонка за мегабайтами и мегагерцами пришла и в эмбеддед?
Мое и ваше желание тут ни при чем, то, чего вы так боитесь уже происходит.
0
Я не боюсь этого. Просто… не поддерживаю. Я высказал свое мнение: платформа слишком специфична, дорога и маломощна. На кикстартере сейчас собирают деньги проекты и похуже. Electric imp их уже опередил, и на нем есть node.js и HTML5.
0
Мы уже дожили до аппаратного ускорения браузеров и 8-ядерных смартфонов, хотя ничего нового в интерфейсах не появилось, а в интернете и подавно.
Я бы с этим поспорил. Интернет за последний десяток лет изменился радикально. И даже «не столь старый» браузер Opera 9.62 (ему всего-то пять лет) с многими сайтами уже не справляется.
0
  • avatar
  • Vga
  • 16 сентября 2013, 20:14
А качественно что изменилось? Кроме хд-видео и динамично подгружаемых страниц, как вконтакте (кстати не особо нравится эта фишка). Я на ослике 4 получал качественную, чистую информацию. А теперь получаю динамический «контент» и таргетированную рекламу. Нунах такой технический прогресс.
+1
Реклама была и раньше. Разве что еще и нетаргетированная.
Изменилась интерактивность сайтов, из страничек они превратились в приложения.
А HTML+JS теперь вполне успешно теснит флэш.
+1
  • avatar
  • Vga
  • 16 сентября 2013, 21:42
А HTML+JS теперь вполне успешно теснит флэш.
Добавлю, что HTML+JS сейчас что-то типа стандарта де-факто на гуй в корпоративной среде. Пожалуй, за последние лет пять я других вариантов и не видел (хотя охотно верю, что они существуют).
0
Но с точки зрения пользователя-то что? Те же яйца, только в профиль.
+1
Но с точки зрения пользователя-то что?
С точки зрения пользователя изменился уровень удобства. Веб-приложения чем дальше, тем меньше отличаются от десктопных. Особенно писанные на ExtJS или GWT. Да на тот же GMail посмотрите.
0
Ну например то, что я не припомню лет десять назад сайта, на который можно просто придти, зарегистрироваться и насрать статейкой. Даже в комментарии насрать не так давно можно стало, до этого приходилось сраться в форумах (а местами и до сих пор так).
Короче, Web 2.0 пришел на смену Web 1.0, и это причина, по которой нужны браузеры с аппаратным ускорением (правда, только графики).

Что до телефонов с восемью ядрами… Надеюсь ты не станешь утверждать, что называемый сегодня телефоном карманный компьютер с полновесной ОС, полноценным браузером (а они сегодня по требовательности сравнимы со следующим пунктом) и игрушками круче, чем были на компе 10 лет назад, умеющий по совместительству звонить (хотя ему не столько звонки от сотовой сети нужны, сколько интернет) — это «ничего нового» по сравнению с устройством, которое может только звонить (опционально — с браузером, кое-как отображающим специальный вариант страничек объемом до пары килобайт вместе с разметкой)?
0
  • avatar
  • Vga
  • 16 сентября 2013, 22:43
А качественно что изменилось?
Уровень интерактивности сайтов изменился весьма основательно. Я уж не говорю о таких давно ставших привычными (а потому практически незаметными на глаз) вещах как rich edit компоненты. Не надо даже за примерами далеко ходить, посмотрите как тут, прямо на этой странице, вы пишете комментарии и проверяете наличие новых сообщений на ней.
0
Такие фичи больше напоминают переход от ХР на Висту. Никаких действительно новых возможностей не появилось. Удобство тоже зачастую сомнительно. Например очень бесят «реалтаймовые» фильтры в магазинах. Уж лучше старая добрая кнопка «обновить». Новый ютуб с каждой итерацией обрастает новыми глюками. Gmail сделался псевдоинтерактивным, а нормальных фильтров почты так и не добавилось. А все радости нета: форумы, жж, чаты, магазины, блоги прекрасно работали 10 лет назад на втором пне.
Да, есть некоторый прогресс в облачном софте, типа Google Docs. Но у него есть столько минусов, что пока не стоит говорить о выдающимся достижении. Тем более что 13 лет назад на Yahoo! Geocities был приличный онлайн-редактор HTML, который я сразу вспомнил как только увидел гуглдок.
А помните ActiveX? Если бы Майкрософт не закрыл бы стандарт, нормальные офисные приложения в браузере были бы еще в 90-х.
+1
А помните ActiveX? Если бы Майкрософт не закрыл бы стандарт, нормальные офисные приложения в браузере были бы еще в 90-х.
Скорее вирусы. Причем только в винде и опционально — только в осле. Тогда как сделанное чисто на веб-средствах работает везде, где есть достаточно современный браузер.
0
  • avatar
  • Vga
  • 16 сентября 2013, 22:45
Никаких действительно новых возможностей не появилось.
Вы не поверите, но «старая добрая кнопка обновить» это тоже часть Web 2.0, если она не перегружает страницу целиком.
А все радости нета: форумы, жж, чаты, магазины, блоги прекрасно работали 10 лет назад на втором пне.
Угу. Только большинство из перечисленного уже во всю использовало JS.
Gmail сделался псевдоинтерактивным, а нормальных фильтров почты так и не добавилось.
Каким боком фильтры к JS?
Но у него есть столько минусов, что пока не стоит говорить о выдающимся достижении.
У него, скорее, одни плюсы. Но это, вобщем-то, и не существенно. Без JS он был бы просто невозможен.
Если бы Майкрософт не закрыл бы стандарт, нормальные офисные приложения в браузере были бы еще в 90-х.
Только если считать вирусы офисными приложениями.

P.S. вы смешали все в кучу и ваши высказывания стали напоминать стиль лайфлавера. еще раз: плохо или хорошо работают конкретные приложения это совершенно не принципиально, важно то, что они в принципе были бы невозможны без JS (и AJAX).
0
Да не наезжаю я на JS, успокойтесь! Сам когда-то на нем писал. Я сетую на то, что ничего принципиально нового нету в вебе, а выч. сложность возросла на порядок.
Хотя на JS тоже свет клином не сошелся и есть полдесятка альтернативных технологий не хуже. ActiveX был хорошей идеей, но плохо реализован.
0
ActiveX был хорошей идеей, но плохо реализован.
Насколько я помню, это были обычные нативные плагины к браузеру (разве что он мог их автоматом слить и поставить). Со всеми вытекающими — вирусами и платформозависимостью. Жаба-апплеты в этом плане чуть лучше — хотя бы не зависят от платформы, да и контролировать их проще.
Я сетую на то, что ничего принципиально нового нету в вебе, а выч. сложность возросла на порядок.
Ну, во первых, не на порядок, а на несколько. А во вторых, полноценная интерактивность и работа страниц без обновления на мой взгляд вполне себе «принципиально новое».
Во многом требовательность обусловлена тем, что для нынешних применений это все не предназначалось. Современные стандарты ситуацию частично исправляют, добавляя требуемые средства и повышая скорость работы. С некоторыми фокусами сегодня уже можно компилировать С++ в JS для работы в вебе, и производительность при этом не сильно уступает нативному коду.
Ну и как обычно, рассчитанное на современные браузеры — в старых или дико тормозит, или вообще не работает, хотя на современном браузере и на той же машине все летает. В принципе, это не редкость даже для нативки — бывает такое, что старая программа работает быстрее новой на старом железе, но на новом уже быстрее новая.
0
  • avatar
  • Vga
  • 17 сентября 2013, 00:37
Кстати, о принципиально новом. Лет десять назад было сложно представить себе компьютер, где операционкой является браузер. Да и врядли возможно было это реализовать (при этом так, что железная начинка компа не играет роли вообще, там может быть что угодно — x86, MIPS, ARM — и от этого зависит только производительность) — а сегодня это уже реальность.
0
  • avatar
  • Vga
  • 17 сентября 2013, 00:41
Не все новые идеи достойны реализации. Мне такая идея не нравится. Безопасность и защита даных совсем не на высоте, как и привязка к коммерческим технологиям. Это только кажется что Андроид почти настоящий оупенсорс, как и Файрфокс Ось.
0
Безопасность и защита даных совсем не на высоте, как и привязка к коммерческим технологиям.
Какие проблемы с безопасностью и защитой данных? И о привязках к каким коммерческим технологиям идет речь?
Это только кажется что Андроид почти настоящий оупенсорс, как и Файрфокс Ось.
Андроид не «почти настоящий», а вполне себе настоящий опенсорс. А из файрфокса ось действительно никакая. С хромом ситуация получше.
0
Не все новые идеи достойны реализации. Мне такая идея не нравится.
Не все, согласен. Но эта явно того стоила. Впрочем, браузер операционкой там достаточно условно, в пузе все равно линух, насколько я понимаю.

P.S. такие решения это еще один виток спирали, развитие идеи мейнфреймов и терминалов, хотя и на качественно новом уровне.
0
Впрочем, браузер операционкой там достаточно условно, в пузе все равно линух, насколько я понимаю.
А какая разница, что там в пузе, если оно используется только как слой, обеспечивающий работу браузера?
0
  • avatar
  • Vga
  • 17 сентября 2013, 09:11
Согласен. С другой стороны, писать свой слой при том, что есть готовый опенсорсный, обкатанный на миллионах устройств от роутеров, мобил и планшетов до мейнфреймов — глупость. Ну или, как минимум, нерациональное использование ресурсов.
0
писать свой слой при том, что есть готовый опенсорсный, обкатанный на миллионах устройств от роутеров, мобил и планшетов до мейнфреймов — глупость
Ну вот поэтому они ей и не маются) Да, там линух и хром поверх него, но юзер работает только с последним.
0
  • avatar
  • Vga
  • 17 сентября 2013, 12:49
Не все новые идеи достойны реализации. Мне такая идея не нравится.
То, что какая-либо идея лично вам не нравится — не означает, что она не достойна реализации.
Особенно, если она лично вас не затрагивает. Ведь вас никто не заставит использовать Espruino в вашей проф. деятельности, правильно?

Любая идея (за редким исключением) достойна проверки ее на практике — это и есть прогресс. Иначе мы получаем какую-то инквизицию, цензуру на идеи.
Было уже такое в истории нашего гос-ва. Когда решили, что генетика — это кака, и заниматься ей не стоит. Что в итоге? Правильно, отстали от мира.
0
Не все новые идеи достойны реализации.
Вопрос этого спора не в том, достойна ли она реализации, а в том, реализуема ли вообще. И именно реализуемость — качественный, принципиальный скачок.
Безопасность и защита даных совсем не на высоте, как и привязка к коммерческим технологиям.
Точное описание ActiveX.
0
  • avatar
  • Vga
  • 17 сентября 2013, 09:10
ActiveX был хорошей идеей, но плохо реализован.
Привязать веб к винде была хорошей, да. Для MS.
0
Вообще — это все оффтоп, и какой >_<
Но раз уж речь зашла :)
1) ВК — далеко не лучший пример использования всех современных веб-технологий… Я сам от ВК плююсь постоянно и пользуюсь лишь постольку-поскольку.
2) Рекламу вы получали всегда. Но если раньше вы получали все подряд: и прокладки, и памперсы, и семена помидоров (что меня лично несказанно раздражало), то таргетирование позволило сузить круг получаемой рекламы до того, что вам действительно может пригодиться.
Рекламу, наверное, не любит никто. Но вы как раньше могли ее каким-нить эдблоком вырезать, так и теперь можете. И можно сказать, что таргетирование (особенно когда оно действительно срабатывает) хуже рекламу не сделало точно.
0
Да, старая-добрая опера «сдает» :( А новую почему-то ставить не хочется… Но это так, личиреское отступление :)
0
А большинство стмок в еспруино — сильно уступают…
Полностью согласен, я написал вроде, что это лично моя радость. Потому что мне STMки нравятся. А тут раз, и кто-то сделал то, что вполне может (не обязательно, но может) мне пригодиться. красота же! :) То есть это сугубо личное, так сказать.
Для тех, кому больше нравятся решения от TI или еще что-то — им будет лучше с ними работать конечно.

2. Запиливаем туда интерпретатор диалекта языка, непопулярного в embedded.
А чего плохого-то? Если я, например, веб-программист, и к эмбеду отношения не имею, какое мне тогда дело — популярно оно в эмбеде или нет? Мне важно тогда будет, что я это знаю уже так или иначе.

3. Пишем драйвера со сногсшибательным быстродействием.
Опять же, все хорошо для своих задач. Да, быстродействие относительно нативного кода катастрофически страдает. Но для той же гипотетической ситуации: если мне диодом помигать, серву повернуть, кнопки обработать, температуру на DS18B20 померить и на экран вывести, разве не хватит?
Или вы именно о неоправданной трате больших ресурсов для мелких задач? — это да. Но, елки, бывает и круче. Многие для измерения температуры могут целый сервак собрать пусть и из старого железа, зато на виндах, чтобы там на Delphi написать программку и оно работало. Почему? Ну потому что у данного человека это железо валялось, или потому, что ему так проще, он может просто для себя делает. Почему нет?

3. Позиционируя как веб-девайс
Ммм, возмонжо как веб-девайс именно я его спозиционировал, то есть, это скорее всего моя вина. У разрабов же как веб-девайс оно не позиционировалось изначально, емнип. И лишь сейчас, когда они набрали денег на разработку, они начинают что-то допиливать в этом направлении. В конце концов у той же Ардуины веб через шильд… Ну, этот вопрос открытый в общем. Посмотрим, что дальше будет, как пойдет.

4. Жрем от 100 до 200 килобайт флеша, хороня идею переносимости кода на камни поменьше, если кто-то захочет сделать готовый девайс.
А зачем это использовать в готовом девайсе? Если конечно речь идет о производстве. Вот тут как раз мое мнение четкое: никаких Ардуин или Еспруин в готовых девайсах, которые идут куда-то в производство. Это бред.
А если я для себя дома мастерю, то мне пофигу, какой там камень, если он по цене мне обходится не сильно дорого. Сейчас Еспруино стоит примерно столько же, сколько Ардуино (ну, некоторые) официальная. Другое дело, что ардуин китайцы клепают в разы дешевле. Ну, если еспруино выстрелит, то китайцы и их наклепают. А стоимость самой STMки на 72 Mhz и с объемом флеша 256-512 кило не так уж высока. Особенно если китайцы из будут пачками брать для производства платок.

5. Пара тысяч веб-программеров покупают платку на раз поиграться, 90% мигает диодиком и успокаивается, 9% переходит на другую плату или на С, 1% с маниакальным упорством пилит проекты на джаваскрипте.
Ну а вам-то лично от этого что? Вы пострадаете? Нет, я понимаю, что вы лишь высказываете свое мнение. Просто мне кажется, что вас это как-то уж очень сильно задевает.
Если показалось, прошу прощения.
+1
температуру на DS18B20 померить
Не факт. Хотя, если разрабы запилят найтивный драйвер, то вполне. Если запилят.
0
Нативный драйвер для чего? Для OneWire и чтения DS18B20?
Так вот же — сразу сверху пример использования.
0
А еще предлагаю вспомнить историю Bascom. Сколько с ним не бились, а так и не взял какого-то заметного процента пользователей. В то же время сознательно урезанный С++, т.е. Wiring покорил тысячи сердец именно наличием готовых библиотек (что не мешало и свои писать).
0
Либы тут ни при чем. В подобных ситуациях бесплатный открытый продукт всегда имеет преимущество.
0
В коде есть такое:
«Please respect the amount of work that has been put in to Espruino, and do not distribute cracks for it. It's not like you're cracking something from some big corporation. This is made by just one person — Gordon Williams. I'm not going to make a huge amount out of this. It will just be a few dollars per day if I am lucky — but if distributed, your crack will deprive me of even that. I don't care if you crack this and use it yourself — feel free, you probably wouldn't have bought it anyway. Just don't stop me from getting paid by others. Thanks.»
Я ещё недобрался к проверке — там есть какие-то ограничения???
0
  • avatar
  • wowa
  • 15 сентября 2013, 23:21
Забавно, когда я быстренько написал этот пост, подумал: «мало что-то описал». Но, оказывается, наоборот много, раз и это не читают :) Это я к тому, что у меня же написано в посте:
Пока проект не стартовал, прошивка закрыта, и, если хочется, чтобы написанная вами программа сохранилась во флеше — придется отстегнуть им за лицензию. Но это только до окончания кампании на кикстартере.
То есть ограничение там одно: на сохранение кода во флеше. Без лицензии он не сохраняется. Получается, что нужно каждый раз после включения платки заново отсылать на нее код вашей программы.
Но это все было придумано в начале проекта, чтобы действительно хоть как-то на нем заработать. А после возникновения идеи пойти на кикстартер и «по просьбам трудящихся», разработчиками было принято решение все открыть и сделать свободным, сняв все ограничения. Единственное условие — удачность кампании на кикстартере. Собственно, до конца кампании осталось совсем немного.
0
Да нет… это то я понял… Я думал что там будет ещё чтото типа время от времени надо нажать «YES» или работать будет только 30 минут, и т.д. Вообще не заинтересовало… Я уже перепробовал полно разных встроеных интерпретов… Оказалось что для микроконтролеров полезнее всего оказалось PLC которые ваполняют или команды через сериал или прямо посланый фаил Ladder logic. Да это сложней — но намного более компактно и вполне рабочее решение.
0
Добавил в статью обновления по проекту от 15.09.2013.
0
вот если бы они изначально запиливали это дело на роутерах с мощными процессорами, то было бы круто
правда там нет выводов гпио и поэтому оно по сути бесполезно
0
Там это, как раз, полезно. Ресурсов хватает, программировать нужно, а поднять в винде тулчейн для нативной разработки не столь просто — он рассчитан на линукс. По крайней мере, _YS_ не осилил.
0
  • avatar
  • Vga
  • 16 сентября 2013, 18:24
Так на роутерах с мощными процессорами и так же OpenWRT чуть ли не на всех…
Там, имхо, и так можно сделать всякого дофига. Линупс же…
Хотя, может я вас неправильно понимаю.
А вот GPIO на них не хватает как раз. И ребята эти собственно как одно из применений своей платки позиционируют ее как расширитель портов для этих самых роутеров (и других железок с USB/RS232, но без GPIO).
Подключили ее в USB и нате — GPIO, и не только (ведь имеем и кучу аппаратных интерфейсов: I2C, OneWire, ...). Конечно для этого и Ардуины успено применяются. Но, гипотетически: если я какой-нить веб-программер, и мне вот просто нафиг не хочется/не надо изучать что-то кроме моего PHP+MySQL+JS, OpenWRT я на роутер поставлю. Подключить в USB порт еспруино тоже смогу. И начать программить код в эту самую эспруино — тоже. Причем я этот код в ней смогу динамически менять, переписывать. Чтобы тоже самое делать с подключенной к роутеру Ардуино, телодвижений понадобится куда больше.
Хотя опять же можно возразить: для получения GPIO есть всякие платки готовые, можно на FT2232 что-то использовать. Ну, не спорю, вариантов много. Но мне вот лично этот самый еспруиновский именно для конкретно этой гипотетической задачи кажется наиболее подходящим.
Это я все к тому, что есть ниша, может не такая общирная, может конкретно вас она не затрагивает, но она есть :)
0
Добавил в статью Update 11 от 18.09.13.
0
Итак, с превышением необходимой суммы в 5 раз проект успешно стартовал!



Как видите, набрали 100 тыс. фунтов, хотя необходимо было всего 20 тыс.
Ну что ж, от себя скажу, что я рад, и желаю ребятам успешного развития, тем более с таким нехилым стартовым капиталом :)
0
100000фунтов= ~5000000руб это не так уж и много (имхо) если посчитать все затраты (зарплаты, разработка железа, макеты, тестовые партии итп) особенно если на команду, но конечно же парни молодцы особенно если все заопенсорсят.
0
Они обещали уже сегодня-завтра выложить все исходные коды, сказали, что сообщат об этом дополнительно в новостях. Я попозже обновлю статью.
А так, как я понял, у них команда: он да жена его О_о Хотя, может я и ошибаюсь.
0
А так, как я понял, у них команда: он да жена его О_о
Дак и достаточно. Сейчас режат вопрос с «офисным» помещением, а через 9 месяцев и команду пополнят новым сотрудником :)
0
=)
0
Что еще они обещают сделать, кроме загрузки модулей NPM Node.js и пакета OpenWRT?
0
  • avatar
  • Vga
  • 26 сентября 2013, 17:51
Если речь идет о «голах», то кроме тех, что я уже описал, там остался только гол на 85 тысяч, и под ним у них подразумевалось сделать интерактивный курс Getting Started, встроенный прямо в их среду разработки. Ну, для новичков, так сказать. Вот его тоже сделают.
А больше ничего в самой кампании не обещалось, но это не значит, что они сами ничего больше делать не собираются. Будем посмотреть.
0
Странно что на 100к не было стретч-гола…
0
  • avatar
  • Vga
  • 26 сентября 2013, 18:08
А они его не ожидали. На самом деле и я не ожидал, думал, что и 85 не наберут (ну, по прогнозам). Под конец конечно ускорилось, но не ждали, что на столько… Так вот, последние 15 тыс. или около у них нащелкались буквально за последние несколько часов… Ну, я надеюсь, ребята сознательные, то есть всяко на пользу пойдет. Ну а если нет, что ж, будет на их совести :)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.