The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Новая версия среды разработки Arduino IDE 2.3 , opennews (??), 11-Фев-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


88. "Новая версия среды разработки Arduino IDE 2.3 "  –1 +/
Сообщение от n00by (ok), 12-Фев-24, 06:36 
> "Arduino programming language (based on Wiring)"[1].
> Я не знаю, зачем они лгут.

Тут требуется помощь нэйтив спикеров.

"the Arduino programming language" - вот это означает "язык программирования [железки] Ардуины", или "язык программирования «зе Ардуино»"?

"(based on Wiring)" - Wiring is an open-source programming _framework_ for microcontrollers. Тут вроде всё понятно.

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

132. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 12-Фев-24, 19:38 
Таки Wiring придерживается позиции, что он двуединый язык и фреймворк.

> digitalWrite() \ Language (API) \ Wiring 1.0[1]
> Reference for the Wiring.org.co programming environment and language[1]
> The Wiring Language: A thin layer on top of C++[2]

И подобно антитринитариям в христианстве (интересно, что среди них был Ньютон), надо возразить, но, наверное, без повешения кого-либо за ересь.

В общем, там была такая история.

1. Processing
В 2001 художник и дизайнер в MIT решили сделать Processing: комплекс из Java-библиотеки и IDE для рисования-визуализации. От художников для художников, все OpenGL-кишки спрятаны. И даже Java-кишки немного спрятаны - пользователь пишет файл-скрипт с двумя функциями - setup() и вызываемым в цикле draw(), а в "public class ... extends" их заворачивает препроцессор[3], который и другие мелочи делает (свои hex-литералы в джавовские конвертирует, например). И из-за препроцессора авторы с натяжкой назвали Processing новым языком. Пользователь может не думать о настоящей точке входа, о том, что setup() и draw() откуда-то вызываются.

2. Wiring
Затем вышеупомянутый художник поехал учить в один итальянский институт. И под его руководством в 2004 появился Wiring как магистерская работа одного студента. Wiring - комплекс для обучения и прототипирования из отладочной платы, IDE и C++-библиотеки, который перенял принцип "пользователь определяет функции setup() и loop()". Снова кишки спрятаны - новичок не не узрит boilerplate-кода, а при желании плавно и безболезненно перейдёт на профессиональные инструменты, разберётся с точками входа в C/C++ (и именно во freestanding C/C++) и т.д. Нового языка нет и с натяжкой, поэтому такое "упрощение для учеников" стало ересью.

3. Arduino
Затем в 2005 другие студенты того же института форкнули вышеупомянутый программно-аппаратный комплекс и назвали Arduino. Больше разных плат, больше коммерции. Со временем Arduino показала себя в новом сомнительном качестве - как JavaScript в мире embedded. Родилась идея, что Arduino можно использовать не для прототипирования и обучения, а для серийных изделий. Что его библиотека - это полноценный, хоть и пованивающий Hardware Abstraction Layer, с которого не надо слезать и что Arduino может замкнуться в себе, а не быть обучающим шагом для плавного перехода к профессиональной разработке.

На ереси о новом языке команда Arduino не настаивает, но как наследие она местами встречается.

Вообще для микроконтроллеров AVR ещё есть компиляторы (или интерпретаторы) Ada, Basic, Forth, Java, Pascal и Python.

[1] view-source:http://wiring.org.co/reference/digitalWrite_.html
[2] https://github.com/WiringProject/Wiring
[3] https://github.com/processing/processing/blob/master/java/sr...

Ответить | Правка | Наверх | Cообщить модератору

145. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 13-Фев-24, 08:03 
Ну раз дело дошло до канонов, тогда есть такой:

3.32 well-formed program [defns.well.formed]

C++ program constructed according to the syntax rules, diagnosable semantic rules, and the one-definitionrule (6.3)

Остаётся показать, что программа на языке Wiring соответствует well-formed C++ program. Тогда утверждение "пишет на обычном C++" будет верным. Пока что "a thin layer on top of C++" ставит под сомнение предыдущую цитату.

Ответить | Правка | Наверх | Cообщить модератору

148. "Новая версия среды разработки Arduino IDE 2.3 "  +1 +/
Сообщение от Аноним (56), 13-Фев-24, 11:25 
> "a thin layer on top of C++" ставит под сомнение предыдущую цитату

Ну, там есть кусок[1], который вставляет такой код (один инклуд и прототипы функций), попутно переименовывая файл в .cpp.

#include "WProgram.h"
void setup();
void loop();

> Ну раз дело дошло до канонов, тогда есть такой
> Остаётся показать, что программа на языке Wiring соответствует well-formed C++ program.
> Тогда утверждение "пишет на обычном C++" будет верным.

Это не те дроиды, что вы ищете. Я даже не смогу назвать компилятор C++ без расширений, делающих программу ill-formed[2], как __attribute__(()), например. Плюсовые программы в Wiring и Arduino способны быть ill-formed хотя бы из-за GCC.

Предупреждаю - если кто-нибудь скажет, что оба случая (инклуд и гццизм) создают новый язык, достойный отдельного названия, то я немедленно объявлю о создании семейства языков JebanyOpennetowskyDemagogue. JebanyOpennetowskyDemagogue1 будет Qt C++ из-за его Meta-Object Compiler, JebanyOpennetowskyDemagogue2 будет Cи-с-гццизмами, JebanyOpennetowskyDemagogue2A будет Си-с-авээр-гццизмами, JebanyOpennetowskyDemagogue3 будет Си-с-мсвцизмами, JebanyOpennetowskyDemagogue4 будет Си-с-шлангизмами...

[1] https://github.com/WiringProject/Wiring/blob/master/IDE/proc...
[2] 4.1/8: "A conforming implementation may have extensions", "such extensions that are ill-formed according to this document"

Ответить | Правка | Наверх | Cообщить модератору

150. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 13-Фев-24, 13:58 
Понятие "язык" относится к тому, на чём написан исходный текст. GCC понимает well-formed C++ program? Значит соответствует стандарту (что он там понимает ещё - это поведение, к которому у стандарта нет требований). На этом разговор о трансляторах можно закончить.

Если программа на "языке" Wiring без волшебной вставки каких-либо кусков не является well-formed C++, значит, строго говоря, это не С++. Точно так же программу на Qt называют сиплюсплюсом весьма условно. Другое дело, что обычно об этом не спорят, если не стоит задача из разряда завалить на собеседовании.

Если у создателей Wiring стояла цель не пугать сложностью свою целевую аудиторию, а заодно оградить гуру плюсов от инфарктов при просмотре типичного ардуиновго кода, то они поступили правильно. При желании можно обозвать их трендовыми маркетологами, заодно показав "а вот так там можно на асме и Си" [#146]. Называть же их лгунами - это оказывается не по стандарту.

Ответить | Правка | Наверх | Cообщить модератору

151. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 13-Фев-24, 21:04 
Ну извините, это пустое жонглирование словами. На него сложно ответить, потому что каждое предложение разбирать как-то неприлично, а по существу отвечать не на что.

Вот первое предложение -
> относится к тому, на чём написан исходный текст

Исходный текст чего? Всех допустимых программ. Тогда второе предложение оказывается не связано с первым. "GCC понимает well-formed C++ program", но он понимает и C++ с гццизмами, который с точки зрения стандарта является ill-formed. Зачем тогда первое предложение? Зачем была ссылка на well-formed в стандарте, а не на conforming implementation?

> Если программа на "языке" Wiring...  

Какая программа? Каждая? Хотя бы одна? Нет, нужную мысль ни так, ни так сформулировать не получится.

> Значит, строго говоря, это не С++

Вы тезис подменили, перескочили на "быть C++", хотя в первом абзаце "быть C++ или его надмножеством".

Собственно, во всех трёх примерах (GCC, Wiring, Qt) речь идёт о надмножестве C++. О C++ с расширениями (но первый пример вы почему-то считаете за C++, а вторые два - нет). Подстановку одного #include и генерацию деклараций функций вы считаете за новый язык Wiring - пусть это на вашей совести останется. А если это силами CMake реализовать - тоже новый язык будет?

Последний абзац опирается на некое ошибочное понимание того, что такое Wiring. Вы согласитесь или возразите моим словам из #56: "форкнули вышеупомянутый программно-аппаратный комплекс [Wiring] и назвали Arduino". Всё форкнули, всё. Были платы Wiring - стали платы Arduino. "Был" "язык Wiring", стал "язык Arduino". Были библиотеки (фреймворк) Wiring, стали библиотеки (фреймворк) Arduino.

Ответить | Правка | Наверх | Cообщить модератору

153. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 14-Фев-24, 07:48 
Ну извините, это пустое жонглирование словами. На него сложно ответить, потому что каждое предложение разбирать как-то неприлично, а по существу отвечать не на что.

Вы тезис подменили, перескочили на "быть ill-formed хотя бы из-за GCC", хотя в исходном набросе "зачем они лгут".

Ответить | Правка | Наверх | Cообщить модератору

154. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 14-Фев-24, 15:53 
> тезис подменили, перескочили

Допустим, это не передразнивание. Я серьёзно перескажу эту ветку комментариев.

Другой анон: "осталось узнать, что такое язык Wiring".
Я: они считают Arduino за язык, и Wiring тоже. Наверное, это ложь для "упрощения".
Вы: нет, Wiring - это фреймворк, а "язык Arduino" может означать "язык для Arduino".
Я: вы ошиблись, вот вся история. Arduino - это форк Wiring, который и фреймворк, и железо, и IDE, и называл себя языком как это делал Processing (в котором были основания называться не-джавой)
Вы: он будет обычным C++, если будет отвечать этому пункту стандарта.
Я: да вы что, этому пункту никакие компиляторы не отвечают так, как вы требуете. Если пытаться создать обоснование для "thin layer on top of C++", то вот нашлась вставка инклуда и прототипов.
Вы: *жонглируете словами*.
Я: я не могу на это ответить, не притворяйтесь ужом на сковородке. Вы ошиблись, вам был нужен другой пункт стандарта, про conforming implementation. Вы ошиблись, всё перечисленное - надмножество C++. Вставку инклуда и прототипов можно назвать расширением C++ (гораздо меньшим, чем расширения компиляторов).

> перескочили на "быть ill-formed хотя бы из-за GCC"

Я написал "способны быть ill-formed", потому что вы в тот раз тоже не уточнили, *какая* программа - мысли читать не умею, извините. Это демагогия - избегать строгих формулировок и потом лавировать, чтобы переспорить оппонента.

> хотя в исходном набросе "зачем они лгут".

Так они лгут, сами посмотрите: https://github.com/arduino/language.

"domain-specific language implemented using a subset of the C++ syntax"
- они взяли стандартный GCC, "subset of the C++ syntax" у них родиться не может.

"The Arduino Language includes: the core API, i.e. a set of built-in classes"
- подключили библиотеки и назвали их частью нового языка.

"The Arduino Language includes: the official libraries"
- создали репозиторий с проверенными библиотеками и назвали их частью нового языка.

Ответить | Правка | Наверх | Cообщить модератору

161. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 15-Фев-24, 10:43 
>> тезис подменили, перескочили
> Допустим, это не передразнивание. Я серьёзно перескажу эту ветку комментариев.

Это не требуется. Обвинение во лжи - достаточно сильное заявление. На поверку оно оказалось ложным.

>> перескочили на "быть ill-formed хотя бы из-за GCC"
> Я написал "способны быть ill-formed", потому что вы в тот раз тоже
> не уточнили, *какая* программа - мысли читать не умею, извините.

Не извиняю. Если хотите уточнение к цитате стандарта, учитесь читать стандарт.

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

Вот и прекратите отвечать на цитату стандарта чушью.

>> хотя в исходном набросе "зачем они лгут".
> Так они лгут, сами посмотрите: https://github.com/arduino/language.
> "domain-specific language implemented using a subset of the C++ syntax"
>  - они взяли стандартный GCC, "subset of the C++ syntax" у
> них родиться не может.

Очередное голословное заявление. И ложное. Удачи с std::exception.

Ответить | Правка | Наверх | Cообщить модератору

164. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 15-Фев-24, 17:55 
>> не уточнили, *какая* программа - мысли читать не умею, извините.
> Не извиняю.

Пойду libastral компилять, вы мне иного выхода не оставляете.

Вы занимаете демагогией, игнорируете неудобные тезисы, с демагогами спорить неприлично. Люди могут подумать, что в ваших словах "что-то есть", раз с вами до сих пор общаются. Пусть они:
1. учтут, что Arduino использует компилятор GCC C++
2. прочитают позицию создателя комплекса Wiring: https://arduinohistory.github.io ("“language” or programming “framework”" - фреймворк и язык используются как синонимы)
3. прочитают позицию команды Arduino: https://github.com/arduino/language (о похожем неразличении языка и фреймворка)
4. посмотрят на преемственность, идущую от Processing'а, которая тоже внесла вклад в появление ошибки (мой коммент выше)

>> они взяли стандартный GCC, "subset of the C++ syntax" у них родиться не может.
> Очередное голословное заявление. И ложное. Удачи с std::exception.

Для поддержки синтаксиса исключений надо написать "-fexceptions", std::exception - это содержимое библиотки <exception>, она где-то была среди "официальных" ардуиновских (но зачем). Я что, тоже должен многозначительно сказать "Удачи", забросив предмет обсуждения? Я лучше не буду словесным навозом перебрасываться.

Ответить | Правка | Наверх | Cообщить модератору

165. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 15-Фев-24, 21:03 
5. почитают остальные мнения команды Arduino:
- "Arduino language is merely a set of C/C++ functions"[1],
- "some minor pre-processing to turn your sketch into a C++ program"[2],
- "the code that you have written is translated into the C language (which is generally quite hard for a beginner to use)"[3],
- "Arduino API, aka the "Arduino Programming Language""[4]
6. посмотрят на анализ препроцессора[5] (такой же, но теперь не от меня) и решат для себя, имеет оно право называться новым языком или нет ("three lines away from being standard C++")

[1] https://support.arduino.cc/hc/en-us/articles/360018448219-Ca...
[2] https://arduino.github.io/arduino-cli/0.36/sketch-build-process
[3] https://www.academia.edu/33554986/Massimo_Banzi_Getting_Star...
[4] https://docs.arduino.cc/learn/starting-guide/getting-started...
[5] https://hackaday.com/2015/07/28/embed-with-elliot-there-is-n...

Ответить | Правка | Наверх | Cообщить модератору

155. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 14-Фев-24, 16:13 
> Вы тезис подменили

А, я тугодум. Объясню для других как я.

Вы уцепились за "обычный C++", хотя, строго говоря, язык, поддерживаемый GCC (и всеми известными мне компиляторами) - это C++ с расширениями. Хотя я же уже объяснил, что имел в виду: даже они не "создают новый язык, достойный отдельного названия" и предложил тогда назвать его JebanyOpennetowskyDemagogue2. Мне неизвестны компиляторы, совсем не выходящие за рамки стандарта, то есть мне неизвестны реализации обычного C++? Может быть, но это бессмысленная демагогия.

И это я за вас пытаюсь "создать обоснование" для того, чтобы Arduino/Wiring не считались "обычным C++" в строгом смысле. Сами авторы Arduino не считают его новым языком из-за того мелкого препроцессинга. Они его считают новым языком из-за либ и тараканов в голове.

Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

162. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 15-Фев-24, 10:48 
Я "уцепился" за спор, затеянный ради спора. Что такое язык Си++ - описывает соответствующий стандарт, а не эксперт Опеннет. Либо в стандарте ищутся пункты, на основании которых можно что-то утверждать о "языке wiring", либо заявитель попадает под подозрение в троллинге и повышении энтропии.
Ответить | Правка | Наверх | Cообщить модератору

163. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 15-Фев-24, 16:34 
> в стандарте ищутся пункты, на основании которых можно что-то утверждать о "языке wiring",

Главное при этом сделать вид, что слова создателя Wiring о своём творении не важны. Точнее, утверждение о бытии языком вам важно, оно удобное, а остальные нет - они неудобные. После этого гениального логического приёма можете что угодно делать - искать пункты хоть в Приветствиях XXII съезду КПСС.

В разговоре про графику у вас тоже интересная риторика была. Аноним попросил: "простой вопрос: фпс выше частоты монитора сказывается положительно на инпутлаге и скорости вывода кадра или нет?". А вы тем временем рассказывали, что слова блогеров не считаются, что вы владеете паттерном Model–view–controller, понимаете принципиальное отличие веры от знания, не любите слово инпутлаг, предпочитаете версию анонима из соседней ветки и поэтому считаете улучшение отдельным частным случаем кривых игр, что доказывается навыками игры корейца (а не замерами предмета обсуждения как у оппонента).

Ответить | Правка | Наверх | Cообщить модератору

166. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от n00by (ok), 16-Фев-24, 08:49 
Вместо цитаты стандарта в подтверждение верности исходного анонимного наброса, ожидаемо вылиты очередные _три_ порции воды.

Любопытно осталось лишь одно: зачем блудослов скатился до мата в общественном месте.

Ответить | Правка | Наверх | Cообщить модератору

160. "Новая версия среды разработки Arduino IDE 2.3 "  +/
Сообщение от Аноним (56), 14-Фев-24, 20:20 
Можно поставить точку словами создателя Wiring'а - он просто использует слова "язык" и "фреймворк" как синонимы: "Simple “language” or programming “framework” for microcontrollers"[1].

Там же: "...set of commands I created as the language definition for Wiring. pinMode(), digitalRead()..."

Ранее в дипломе: "instructions and commands proposed for the Wiring language", слов "фреймворк" или "набор библиотек" нет.

[1] https://arduinohistory.github.io

Ответить | Правка | К родителю #153 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру