Здравствуйте, Serginio1, Вы писали:
S> А в чем проблемы то? Есть MAUI, UNO, Avalonia. Код Един для всех платформ, а вот гуй для линукса выбирай из UNO, Avalonia S>Другое дело, что ты не упомянул Аврору!
Можно пример более-менее сложных приложений на этих технологиях хотя бы под 3 платформы?
Здравствуйте, Skorodum, Вы писали:
S>> А в чем проблемы то? Есть MAUI, UNO, Avalonia. Код Един для всех платформ, а вот гуй для линукса выбирай из UNO, Avalonia S>>Другое дело, что ты не упомянул Аврору! S>Можно пример более-менее сложных приложений на этих технологиях хотя бы под 3 платформы?
Есть куча контор, которые используют и вин и андроид и вэб и яблоко.
Тот же самый корпоративный софт. А он поверь очень сложный. Проблема не в гуе. Конкретный гуй под каждую платформу можно нарисовать. Главное это единый код с условной компиляцией под платформы. Коих не так уж и много.
Смешно было наблюдать в Сбере как менеджер рядом с компом и клавиатурой с мышью, пользовался планшетом.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, SkyDance, Вы писали:
LVV>>- функциональное
SD>Ну уж нет. Это точно не про С++ Было бы желание:
Function composition
f: string → int
g: int → bool
h = g ∘ f
auto f = [] (std::string_view) → int {};
auto g = [] (int) → bool {};
auto compose = [] (auto g, auto f) {
return [=] (std::string_view v) → bool {
return std::invoke(g, std::invoke(f, v));
};
};
auto h = compose(g, f);
Здравствуйте, Serginio1, Вы писали:
S>>> А в чем проблемы то? Есть MAUI, UNO, Avalonia. Код Един для всех платформ, а вот гуй для линукса выбирай из UNO, Avalonia S>>>Другое дело, что ты не упомянул Аврору! S>>Можно пример более-менее сложных приложений на этих технологиях хотя бы под 3 платформы? S> Есть куча контор, которые используют и вин и андроид и вэб и яблоко. S> Тот же самый корпоративный софт. А он поверь очень сложный. S>Проблема не в гуе. Конкретный гуй под каждую платформу можно нарисовать. Главное это единый код с условной компиляцией под платформы. Коих не так уж и много.
Придется повторить вопрос: можно пример более-менее сложных приложений на этих технологиях (MAUI, UNO, Avalonia) хотя бы под 3 платформы?
Для референса: десктопный клиент телеграма написан на С++/QML.
Здравствуйте, Skorodum, Вы писали:
S>>Проблема не в гуе. Конкретный гуй под каждую платформу можно нарисовать. Главное это единый код с условной компиляцией под платформы. Коих не так уж и много. S>Придется повторить вопрос: можно пример более-менее сложных приложений на этих технологиях (MAUI, UNO, Avalonia) хотя бы под 3 платформы? S>Для референса: десктопный клиент телеграма написан на С++/QML.
Еще раз повторю, что я знаю такой софт и видел. Но ссылок дать не могу.
А разве телеграмм этосложное приложение?
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S>>Для референса: десктопный клиент телеграма написан на С++/QML. S> Еще раз повторю, что я знаю такой софт и видел. Но ссылок дать не могу.
Т.е. примеров нет
Попробуй хотя бы описать, что интересного они делают и в чем там выгода от используемых технологий.
S> А разве телеграмм этосложное приложение?
Представь себе, да. Дружественное к пользователю кросс-платформенное приложенние которым пользуются сотни миллионов это сложно по определению.
Другой пример С++/QML это приложения от Autodesk. Попробуй придумать пример чего-то более сложного.
Сопоставление с образцом часто встречается в функциональных языках программирования, таких как языки семейства ML и Haskell, в том числе в виде охранных выражений.
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>>>Для референса: десктопный клиент телеграма написан на С++/QML. S>> Еще раз повторю, что я знаю такой софт и видел. Но ссылок дать не могу. S>Т.е. примеров нет S>Попробуй хотя бы описать, что интересного они делают и в чем там выгода от используемых технологий.
Ты не читатель. Выгода это единый код и единый гуй. При этом гуй не обязательно иметь кроссплатформенный. Можно под каждую платформу клепать свой гуй.
S>> А разве телеграмм этосложное приложение? S>Представь себе, да. Дружественное к пользователю кросс-платформенное приложенние которым пользуются сотни миллионов это сложно по определению. S>Другой пример С++/QML это приложения от Autodesk. Попробуй придумать пример чего-то более сложного.
Поверь тетрисом пользовалось намного больше народа. Главное там отнюдь не формы. Формы клепаются под платформу либо используются кроссплатформенные.
Суть в том, что .Net Core достаточно молодой, как и Xamarin.Forms, не говоря уже про MAUI.
Однако набирает популярность. Посмотрим года через 5 кто в итоге победит.
S>P.S. Вот мое [https://vimeo.com/779205748]приложение[/url] на под несколько платформ, С++/QML.
Я честно рад за тебя и С++/QML. Но есть куча другого народа использующие другие технологии. https://survey.stackoverflow.co/2023/#most-popular-technologies-misc-tech-prof
Xamarin 3.61
QT 5.82
Electron 6.82
.NET MAUI 2.46%
и солнце б утром не вставало, когда бы не было меня
S>Сопоставление с образцом часто встречается в функциональных языках программирования, таких как языки семейства ML и Haskell, в том числе в виде охранных выражений.
Само по себе "часто" означает, что не всегда. Т.е. это может быть желательной характеристикой, но не обязательной.
S> А вообще то образцом ФП является Haskell.
Так ведь просьба была про определение, а не про пример/образец.
Здравствуйте, Serginio1, Вы писали:
S>>Попробуй хотя бы описать, что интересного они делают и в чем там выгода от используемых технологий. S>Выгода это единый код и единый гуй. При этом гуй не обязательно иметь кроссплатформенный. Можно под каждую платформу клепать свой гуй.
Т.е. выгоды от предложенных тобой технологий нет
S>Поверь тетрисом пользовалось намного больше народа.
Не поверю: покажи кросс-платформенную реализацию тетриса которой пользуются сотни миллионов.
Пример приложения более сложного чем CAD системы ты так и не привел.
S>Главное там отнюдь не формы. Формы клепаются под платформу либо используются кроссплатформенные.
Ну давай, склепай формы для CAD систмы под несколько разных платформ на предложенных тобой технологиях.
Хороший кросс-платформенный инрефейс это совсем не просто и не бесплатно.
S>Суть в том, что .Net Core достаточно молодой, как и Xamarin.Forms, не говоря уже про MAUI. S>Однако набирает популярность. Посмотрим года через 5 кто в итоге победит.
О да, Xamarin.Forms это удачный пример, мощно так победил
S> Я честно рад за тебя и С++/QML. Но есть куча другого народа использующие другие технологии.
Придется повторить вопрос: можно пример более-менее сложных приложений на этих технологиях (MAUI, UNO, Avalonia) хотя бы под 3 платформы?
Здравствуйте, Serginio1, Вы писали:
S>>Так ведь просьба была про определение, а не про пример/образец. S>Тогда C# функциональный язык? Да еще круче Lispa?
Чтобы принять решение о том, является ли C++ (C# или еще что) чем-то (например, ФЯП), нужно сперва привести определение этого "чего-то". О чем здесь было сказано уже давно: http://rsdn.org/forum/flame.comp/8581721.1
Здравствуйте, Skorodum, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>>>Попробуй хотя бы описать, что интересного они делают и в чем там выгода от используемых технологий. S>>Выгода это единый код и единый гуй. При этом гуй не обязательно иметь кроссплатформенный. Можно под каждую платформу клепать свой гуй. S>Т.е. выгоды от предложенных тобой технологий нет
То есть единый код ну ни как не выгода!
Еще раз MAUI и Xamarin.Forms это единый гуй, но если тебе хочется специфического, или как например Linux не поддерживается MAUI и Xamarin.Forms ты можешь использовать другой гуй.
S>>Поверь тетрисом пользовалось намного больше народа. S>Не поверю: покажи кросс-платформенную реализацию тетриса которой пользуются сотни миллионов. S>Пример приложения более сложного чем CAD системы ты так и не привел.
А разве там главное Гуй? Рисовать можно на том же https://xamdev.ru/cross-platform-skiasharp/
S>>Главное там отнюдь не формы. Формы клепаются под платформу либо используются кроссплатформенные. S>Ну давай, склепай формы для CAD систмы под несколько разных платформ на предложенных тобой технологиях. S>Хороший кросс-платформенный инрефейс это совсем не просто и не бесплатно.
Но гуй по сравнению с кодом это такая мелочь? Человеку с опытом нарисовать сколь угодно сложный гуй не проблема используя Xaml.
Любо как в том же Flutter програмно описать. Поверь это не проблема. Кода намного больше и дороже.
S>>Суть в том, что .Net Core достаточно молодой, как и Xamarin.Forms, не говоря уже про MAUI. S>>Однако набирает популярность. Посмотрим года через 5 кто в итоге победит. S>О да, Xamarin.Forms это удачный пример, мощно так победил
Ну во MAUI и есть продолжение Xamarin.Forms. Популярность приводил.
S>> Я честно рад за тебя и С++/QML. Но есть куча другого народа использующие другие технологии. S>Придется повторить вопрос: можно пример более-менее сложных приложений на этих технологиях (MAUI, UNO, Avalonia) хотя бы под 3 платформы?
Нет. И искать не хочу. А то что ты привел ну сложностью и не пахнет.
Это любо 3D графика для CAD. Пример Unity там народ игры клепает на том же C# под разные платформы.
Либо какой то недоделанный гуй телеграмм.
Сначала сам приведи пример сложных гуев, на который нужно тратить миллионы $
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, so5team, Вы писали:
S>Здравствуйте, Serginio1, Вы писали:
S>>>Так ведь просьба была про определение, а не про пример/образец. S>>Тогда C# функциональный язык? Да еще круче Lispa?
S>Чтобы принять решение о том, является ли C++ (C# или еще что) чем-то (например, ФЯП), нужно сперва привести определение этого "чего-то". О чем здесь было сказано уже давно: http://rsdn.org/forum/flame.comp/8581721.1
Для преодоления недостатков функциональных программ уже первые языки функционального программирования включали не только чисто функциональные средства, но и механизмы императивного программирования (присваивание, цикл, «неявный PROGN» были уже в Лиспе). Использование таких средств позволяет решить некоторые практические проблемы, но означает отход от идей (и преимуществ) функционального программирования и написание императивных программ на функциональных языках. В чистых функциональных языках эти проблемы решаются другими средствами, например, в языке Haskell ввод-вывод реализован при помощи монад — концепции, позаимствованной из теории категорий.
и солнце б утром не вставало, когда бы не было меня
Функциона́льное программи́рование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Это похоже на определение, но вот в нем нет ничего про pattern matching.
Да, и согласно такому определению C++ вполне себе функциональный.
S>
S>Для преодоления недостатков функциональных программ уже первые языки функционального программирования включали не только чисто функциональные средства, но и механизмы императивного программирования (присваивание, цикл, «неявный PROGN» были уже в Лиспе). Использование таких средств позволяет решить некоторые практические проблемы, но означает отход от идей (и преимуществ) функционального программирования и написание императивных программ на функциональных языках. В чистых функциональных языках эти проблемы решаются другими средствами, например, в языке Haskell ввод-вывод реализован при помощи монад — концепции, позаимствованной из теории категорий.
Противопоставляется парадигме императивного программирования, которая описывает процесс вычислений как последовательное изменение состояний (в значении, подобном таковому в теории автоматов). При необходимости, в функциональном программировании вся совокупность последовательных состояний вычислительного процесса представляется явным образом, например, как список.
Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы. Соответственно, не предполагает оно и изменяемость этого состояния (в отличие от императивного, где одной из базовых концепций является переменная, хранящая своё значение и позволяющая менять его по мере выполнения алгоритма).
На практике отличие математической функции от понятия «функции» в императивном программировании заключается в том, что императивные функции могут опираться не только на аргументы, но и на состояние внешних по отношению к функции переменных, а также иметь побочные эффекты и менять состояние внешних переменных. Таким образом, в императивном программировании при вызове одной и той же функции с одинаковыми параметрами, но на разных этапах выполнения алгоритма, можно получить разные данные на выходе из-за влияния на функцию состояния переменных. А в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции[⇨]).
Лямбда-исчисление является основой для функционального программирования, многие функциональные языки можно рассматривать как «надстройку» над ним[1].
Суть в том, что такого ФП есть в бОльшинстве императивных языков. Все началось с Linq в .Net.
Но вот PM долго не внедрялся, о чем так долго говорили немерлисты! Ты туда сходи со своими определениями.
В итоге C# PM как и макросы не дотягивают до немерлевских, хотя и сильно подтянулись, а может где то и опередили.
Можно сказать так, что лисп использует ФП, но недотягивает по ФП до Хаскеляи F#.
Такое определение тебе подойдет?
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S>Вот делать мне нехрен обсуждать парадигму ФП
Вынужден повторить: без определения такого понятия как ФЯП мы не можем сделать оценку того, является ли C++ ФЯП или нет.
Без определения парадигмы ФП мы не можем сказать, поддерживает ли C++ эту парадигму или нет.
Поэтому если вы хотите выяснить является ли C++ ФЯП и/или поддерживает ли он ФП, то вам придется этими определениями озадачится.
S> Такое определение тебе подойдет?
Здравствуйте, so5team, Вы писали:
S>> Такое определение тебе подойдет?
S>Так ведь его нет, определения-то.
Ну самому то не стыдно? Делать тебе нечего. Люди работают и должны отвлекаться на хрень, которую ты не понимаешь?
Далек твой лисп до нормального ФП. Бери за идеал F# и сравнивай!
Там все тенденции ФП присутствуют!
и солнце б утром не вставало, когда бы не было меня