Re[5]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 07.05.20 06:14
Оценка:
Здравствуйте, MaxRos, Вы писали:

MR>нет. просто я на шарпе программирую, ну а дальше всё понятно..


Черт... а я ведь тоже...
</farsight>
Отредактировано 07.05.2020 6:14 Farsight . Предыдущая версия .
Re[13]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 07.05.20 07:52
Оценка:
Здравствуйте, Farsight, Вы писали:

F>Здравствуйте, varenikAA, Вы писали:


AA>>В целом C# норм, конечно, но лет так 10 назад, сейчас из него пытаются выжать еще что-то.

F>В него добавляют полезные фичи, что конкретно не устраивает?
записи — хотя бы в стиле scala(чтобы одной строкой), алгебраические типы(аналог Discrimination Union F#) — писать такое через абстрактный класс — глаза слезятся.
не нужно было трогать switch, надо было вводить новое ключевое(match x with 1 => 2 => _ =>, от раздвоения каша (switch(x) и x switch .
Тот же знак подчеркивания, когда он появился я подумал ну вот оно счастье, больше не нужно игнорировать возвращаемые значения.
можно _ = Console.ReadLine(); но оказалось, что при этом объявляется переменная с именем _ и ей уже ничего больше в контексте ни присвоить.
Перечислять можно долго, после C# 6 это вершина.

AA>>F# конечно по прикольней смотрится, но у него та же проблема, что и у сишарпа — меньше чем в жаве библиотек.

F>Это стандартная матра jvm-щиков. Чего-то конкретного не хватает?
Например, своя встраеваемая бд по аналогии H2 Derby и прочие. прикручивание sqlite такое себе занятие.

AA>>Причем, все еще грустнее.

AA>>Например, провайдеры типов, круть конечно.
AA>>Но до сих пор не работает по кору. или работает но так намаешься с настройками (особенно под ГНУ Линукс), что больно становится.
F>Не скажу, не сталкивался пока. Дата провайдеры вроде норм под .Net Standard 2.0.

Два дня назад пользовал XmlProvider не работает под корку, ругается на сборки, судя по задачам на гите подтверждено все еще зависит от классика.
В классик-режиме, под видной в студии работает неплохо. и это круто. никаких T4 и прочего, 100% валидный код бесплатно.
если нет под рукой xsd то в C# придется все руками парсить. с базами аналогично(пробовал sqlite provider поднять под линуксом).
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[14]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 07.05.20 08:33
Оценка:
Здравствуйте, varenikAA, Вы писали:


AA>записи — хотя бы в стиле scala(чтобы одной строкой)

Обещают примерно так:
public class Person(string firstName, string lastName);


AA>алгебраические типы(аналог Discrimination Union F#) — писать такое через абстрактный класс — глаза слезятся.

так пиши на F#, не вижу проблемы.

AA>не нужно было трогать switch, надо было вводить новое ключевое(match x with 1 => 2 => _ =>, от раздвоения каша (switch(x) и x switch .

наверное да, но можно теперь пользоваться только конструкцией x switch. switch(x) для обратной совместимости.

AA>Тот же знак подчеркивания, когда он появился я подумал ну вот оно счастье, больше не нужно игнорировать возвращаемые значения.

AA>можно _ = Console.ReadLine(); но оказалось, что при этом объявляется переменная с именем _ и ей уже ничего больше в контексте ни присвоить.
ну так это тоже бы сломало бы обратную совместимость.

AA>Перечислять можно долго, после C# 6 это вершина.

ну... твое мнение услышано.

AA>Например, своя встраеваемая бд по аналогии H2 Derby и прочие. прикручивание sqlite такое себе занятие.

занятие как занятие. sqlite норм для задач, решаемых втроенными БД.

AA>Два дня назад пользовал XmlProvider не работает под корку, ругается на сборки, судя по задачам на гите подтверждено все еще зависит от классика.

AA>В классик-режиме, под видной в студии работает неплохо. и это круто. никаких T4 и прочего, 100% валидный код бесплатно.
AA>если нет под рукой xsd то в C# придется все руками парсить. с базами аналогично(пробовал sqlite provider поднять под линуксом).
Да работает вроде. На 3.1 проверил под линухом. FSharp.Data.
</farsight>
Re[4]: Вопрос с_шарп крафтсменам
От: a_g_99 США http://www.hooli.xyz/
Дата: 07.05.20 14:40
Оценка: -1
Здравствуйте, Farsight, Вы писали:


F>Парни, вы под веществами что ли?


я сразу вспоминаю эпизод фильма про ваших в Священной Долине вдудя — там Сатья заходит к русскому пареньку и у них диалог там,

создатель лин_чего_то_там_дб — — Что, что случилося-то?
Сатья — Я тебе покушать принёс! — и флэшку с си щарпом ему дал

как вам там вкусно есть такое си щарп крафтсмены?
Отредактировано 07.05.2020 14:41 a_g_99 . Предыдущая версия .
Re[15]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 08.05.20 00:03
Оценка:
Здравствуйте, Farsight, Вы писали:

F>Здравствуйте, varenikAA, Вы писали:



AA>>записи — хотя бы в стиле scala(чтобы одной строкой)

F>Обещают примерно так:
F>
F>public class Person(string firstName, string lastName);
F>

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

AA>>алгебраические типы(аналог Discrimination Union F#) — писать такое через абстрактный класс — глаза слезятся.

F>так пиши на F#, не вижу проблемы.
Ну, как говорится в одном старом фильмеЖ "Я твой друг, но я раб лампы." F# хоть и высокооплачиваемый, но мало востребованный.

AA>>не нужно было трогать switch, надо было вводить новое ключевое(match x with 1 => 2 => _ =>, от раздвоения каша (switch(x) и x switch .

F>наверное да, но можно теперь пользоваться только конструкцией x switch. switch(x) для обратной совместимости.
Надо проверить, вот я и говорю, нюансов все больше, тот же си 10-ки лет почти не меняется.

AA>>можно _ = Console.ReadLine(); но оказалось, что при этом объявляется переменная с именем _ и ей уже ничего больше в контексте ни присвоить.

F>ну так это тоже бы сломало бы обратную совместимость.
Ну и смысл тогда вводить такую сомнительную фичу?

AA>>если нет под рукой xsd то в C# придется все руками парсить. с базами аналогично(пробовал sqlite provider поднять под линуксом).

F>Да работает вроде. На 3.1 проверил под линухом. FSharp.Data.
Мне нужно был работать со схемой FSharp.Data.Xsd
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[16]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 08.05.20 05:29
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Знают одна из самых крутых и восстребованных фич, считаю, особенно если хеш и сравнение будет генерится, но уже чуть не 5 лет ждем. Когда? Плохой признак для языка, если учесть, что это уже практически во всех языках этого класса.

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

AA>Ну, как говорится в одном старом фильмеЖ "Я твой друг, но я раб лампы." F# хоть и высокооплачиваемый, но мало востребованный.

Не в смысле брось си-шарп и пиши только на эф-шарп, а совместно.

AA>Ну и смысл тогда вводить такую сомнительную фичу?

для дискарда паттерна в контексте паттерн-матчинга. у них и так switch вместо match, чтобы уж совсем не выделяться

AA>Мне нужно был работать со схемой FSharp.Data.Xsd

Так и работай со схемой с FSharp.Data: type Person = XmlProvider<Schema = """...""">. FSharp.Data.Xsd не нужен.
</farsight>
Re[14]: Вопрос с_шарп крафтсменам
От: hi_octane Беларусь  
Дата: 08.05.20 08:39
Оценка: 1 (1)
AA>записи — хотя бы в стиле scala(чтобы одной строкой),
Между методами можно использовать туплы, внутри методов — анонимные типы. Если хочется рекордов именно рекордов то ещё полгодика придётся подождать.

AA>алгебраические типы(аналог Discrimination Union F#) — писать такое через абстрактный класс — глаза слезятся.

Этого самому нехватает

AA>можно _ = Console.ReadLine(); но оказалось, что при этом объявляется переменная с именем _ и ей уже ничего больше в контексте ни присвоить.

Какую-то альфу наверное пробовал. Вот это точно компилируется и работает.
_ = Console.ReadLine(); 
_ = 10; 
_ = "aaa";

Главное не писать перед _ слово var. Тогда для совместимости появится переменная и всё, плейсхолдеру хана.

AA>Например, своя встраеваемая бд по аналогии H2 Derby и прочие. прикручивание sqlite такое себе занятие.

Последний раз просто подключал из нугета пакеты с linq2db, и тестировал в винде с inmemory sqlite, а в релиз оно ушло на MySQL/Linux. Без перекомпиляции. Подключая lmdb на scala телодвижений было больше.
Отредактировано 08.05.2020 8:49 hi_octane . Предыдущая версия .
Re[17]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 08.05.20 11:16
Оценка:
Здравствуйте, Farsight, Вы писали:

AA>>Мне нужно был работать со схемой FSharp.Data.Xsd

F>Так и работай со схемой с FSharp.Data: type Person = XmlProvider<Schema = """...""">. FSharp.Data.Xsd не нужен.

Чё, серьезно?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[15]: Вопрос с_шарп крафтсменам
От: varenikAA  
Дата: 08.05.20 11:20
Оценка:
Здравствуйте, hi_octane, Вы писали:

AA>>можно _ = Console.ReadLine(); но оказалось, что при этом объявляется переменная с именем _ и ей уже ничего больше в контексте ни присвоить.

_>Какую-то альфу наверное пробовал. Вот это точно компилируется и работает.
_>
_>_ = Console.ReadLine(); 
_>_ = 10; 
_>_ = "aaa";  
_>

_>Главное не писать перед _ слово var. Тогда для совместимости появится переменная и всё, плейсхолдеру хана.

Наверно, проверю. thanks.

AA>>Например, своя встраеваемая бд по аналогии H2 Derby и прочие. прикручивание sqlite такое себе занятие.

_>Последний раз просто подключал из нугета пакеты с linq2db, и тестировал в винде с inmemory sqlite, а в релиз оно ушло на MySQL/Linux. Без перекомпиляции. Подключая lmdb на scala телодвижений было больше.

Я именно про F# с type provider. Стандартные либы на C# нормально работают.
еще вот вспомнил, в сишарпе хвостовой рекурсии нету.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[16]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.05.20 16:52
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>еще вот вспомнил, в сишарпе хвостовой рекурсии нету.

https://ru.stackoverflow.com/questions/1001751/Как-включить-преобразование-хвостовой-рекурсии-в-c
и солнце б утром не вставало, когда бы не было меня
Re[17]: Вопрос с_шарп крафтсменам
От: hi_octane Беларусь  
Дата: 08.05.20 17:55
Оценка:
AA>>еще вот вспомнил, в сишарпе хвостовой рекурсии нету.
S>https://ru.stackoverflow.com/questions/1001751/Как-включить-преобразование-хвостовой-рекурсии-в-c
Имхо, всё-таки неправильно писать прогу которая в дебаге валится, с надеждой что в релизе jit оптимизирует и всё будет ОК
В этом плане выглядит очень норм подход scala — ставишь аттрибут @tailrec, и получаешь сообщение об ошибке компиляции если оказывается что ошибся и рекурсия не оптимизируется.
Re[18]: Вопрос с_шарп крафтсменам
От: Farsight СССР  
Дата: 08.05.20 19:52
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Чё, серьезно?

Нет, что ты... Сплошные шуточки.
</farsight>
Re[18]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.05.20 09:52
Оценка:
Здравствуйте, hi_octane, Вы писали:

AA>>>еще вот вспомнил, в сишарпе хвостовой рекурсии нету.

S>>https://ru.stackoverflow.com/questions/1001751/Как-включить-преобразование-хвостовой-рекурсии-в-c
_>Имхо, всё-таки неправильно писать прогу которая в дебаге валится, с надеждой что в релизе jit оптимизирует и всё будет ОК
_>В этом плане выглядит очень норм подход scala — ставишь аттрибут @tailrec, и получаешь сообщение об ошибке компиляции если оказывается что ошибся и рекурсия не оптимизируется.
Судя по обсуждению в IL коде есть инструкция tail. prefix https://stackoverflow.com/questions/20132417/tail-prefix-in-ilasm-any-example-of-use
Компилятор совершенствуется, и навесить некоторые атрибуты для подсказки компилятора и сейчас можно.

Но опять же ты сказал "в сишарпе хвостовой рекурсии нету.", но она есть при определенных опциях компилятора
и солнце б утром не вставало, когда бы не было меня
Re[8]: Вопрос с_шарп крафтсменам
От: okon  
Дата: 19.06.20 17:07
Оценка:
O>>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.
S>На каких C# не может? Огласи

Десктоп UI под Linux, MacOS. В Java есть JavaFX.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[9]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.06.20 17:33
Оценка:
Здравствуйте, okon, Вы писали:

O>>>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.

S>>На каких C# не может? Огласи

O>Десктоп UI под Linux, MacOS. В Java есть JavaFX.


Угу на Электроне тот же Skype и Visual Code прекрасно работают.
Кроме того сейчас и Blazor Desctop http://rsdn.org/forum/dotnet/7736954.flat
Автор: Serginio1
Дата: 23.05.20

Кроме того есть Xamarin.Forms GTK#
https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/platform/other/gtk?tabs=windows


GTK # для macOS и Linux устанавливаются как часть Mono.
https://github.com/jsuarezruiz/forms-gtk-progress

Так же есть Xamarin.Forms и для Tizen.
Недавно кстати вышла Xamarin.Forms 4.7: Grid Column &amp; Row Definitions, Multi-Bindings, Shapes &amp; Paths, and More!

https://github.com/xamarin/Xamarin.Forms
и солнце б утром не вставало, когда бы не было меня
Отредактировано 19.06.2020 17:39 Serginio1 . Предыдущая версия .
Re[10]: Вопрос с_шарп крафтсменам
От: okon  
Дата: 19.06.20 18:44
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, okon, Вы писали:


O>>>>Мне кажется наоборот, на Java можно написать приложение работающее на трех платформах, на C# нет.

S>>>На каких C# не может? Огласи

O>>Десктоп UI под Linux, MacOS. В Java есть JavaFX.


S> Угу на Электроне тот же Skype и Visual Code прекрасно работают.


Электрон это не .NET, скайп кстати ужасно работает, особенно при смене вьюшки или поиске — таких тормозов на нативном бы не было.
Вижуал коде не скажу — не пользуюсь.

S>Кроме того сейчас и Blazor Desctop http://rsdn.org/forum/dotnet/7736954.flat
Автор: Serginio1
Дата: 23.05.20

Блазор десктоп это вроде же браузерный html в качестве вьюшки ?
.NET только JS заменит.

S>Кроме того есть Xamarin.Forms GTK#

S>https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/platform/other/gtk?tabs=windows
S>GTK # для macOS и Linux устанавливаются как часть Mono.
S>https://github.com/jsuarezruiz/forms-gtk-progress

S>Так же есть Xamarin.Forms и для Tizen.

S> Недавно кстати вышла Xamarin.Forms 4.7: Grid Column &amp; Row Definitions, Multi-Bindings, Shapes &amp; Paths, and More!
S>https://github.com/xamarin/Xamarin.Forms

Т.е. соглашусь на .NET, точнее core можно запустить браузер и в нем заставить электрон или blazor на других платформах
или подключить библиотеки типа GTK и с ними работать.
Но тоже самое можно сделать практически на любом языке который позволяет себя запустить на платформе — передать управление другой среде.


Речь о поддержке из коробки мощного самостоятельного UI фреймворка типа WPF или JavaFX.

Ведь разрабатывая UI на том же GTK пробрасывая вызовы через .net core трудоемкость возрастет в разы ,
плюс это не будет работать кросплатформенно ( GTK это же на винде не заработает ? )
и смысла особого нет — на JavaFX будет намного выгоднее надежнее и быстрее.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 19.06.2020 18:52 okon . Предыдущая версия .
Re[11]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 19.06.20 19:46
Оценка:
Здравствуйте, okon, Вы писали:

S>>Кроме того есть Xamarin.Forms GTK#

S>>https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/platform/other/gtk?tabs=windows
S>>GTK # для macOS и Linux устанавливаются как часть Mono.
S>>https://github.com/jsuarezruiz/forms-gtk-progress

S>>Так же есть Xamarin.Forms и для Tizen.

S>> Недавно кстати вышла Xamarin.Forms 4.7: Grid Column &amp; Row Definitions, Multi-Bindings, Shapes &amp; Paths, and More!
S>>https://github.com/xamarin/Xamarin.Forms

O>Т.е. соглашусь на .NET, точнее core можно запустить браузер и в нем заставить электрон или blazor на других платформах

O>или подключить библиотеки типа GTK и с ними работать.
O>Но тоже самое можно сделать практически на любом языке который позволяет себя запустить на платформе — передать управление другой среде.


O>Речь о поддержке из коробки мощного самостоятельного UI фреймворка типа WPF или JavaFX.



O>Ведь разрабатывая UI на том же GTK пробрасывая вызовы через .net core трудоемкость возрастет в разы ,

O>плюс это не будет работать кросплатформенно ( GTK это же на винде не заработает ? )
O>и смысла особого нет — на JavaFX будет намного выгоднее надежнее и быстрее.

Xamarin.Forms он как раз кроссплатформенный UI. Просто он конечно сильно уступает UWP или WPF, но уже достаточно хорош.
Почитай для интереса https://metanit.com/sharp/xamarin/

Но большого то интереса гуй для линукса не представляет. Никому это не интересно.
Ажуры это да.

Для десктопов где в основном Windows программируют как раз на UWP или WPF и даже старых добрых Windows.Forms.
Вот под винду писать на JavaFX довольно странное решение
Их тоже перетаскивают под .Net Core правда работают они под Windows.
Кстати есть еще и AvaloniaUI https://github.com/AvaloniaUI/Avalonia
https://habr.com/ru/post/505036/
и солнце б утром не вставало, когда бы не было меня
Отредактировано 19.06.2020 20:02 Serginio1 . Предыдущая версия .
Re[12]: Вопрос с_шарп крафтсменам
От: okon  
Дата: 19.06.20 20:15
Оценка:
S> Xamarin.Forms он как раз кроссплатформенный UI. Просто он конечно сильно уступает UWP или WPF, но уже достаточно хорош.
S>Почитай для интереса https://metanit.com/sharp/xamarin/

Посмотрю что там нового, но последний раз я его трогал пару лет назад и понял что это дороже чем делать на JavaFX.

p.s. посмотрел, там же речь так и идет про мобилки как на заре Ксамарина а не про его отросток — декстоп разработку.

S> Но большого то интереса гуй для линукса не представляет. Никому это не интересно.

S>Ажуры это да.

S> Для десктопов где в основном Windows программируют как раз на UWP или WPF и даже старых добрых Windows.Forms.

S>Вот под винду писать на JavaFX довольно странное решение

Естественно если изначально приложение под винду то зачем кроссплатформ.
Но если изначально приложение проектируется как кроссплатформ решение ( а значит есть аудитория и клиенты ), то JavaFX будет неплох.

S>Их тоже перетаскивают под .Net Core правда работают они под Windows.

S>Кстати есть еще и AvaloniaUI https://github.com/AvaloniaUI/Avalonia
S>https://habr.com/ru/post/505036/

Да слышал о них, но я бы не рискнул тащить это в коммерческий проект — слабое коммьюнити и как они сами пишут про свой продукт
”However, there may be some bugs and breaking changes as we continue along into this project's development.“
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Отредактировано 19.06.2020 20:18 okon . Предыдущая версия .
Re[13]: Вопрос с_шарп крафтсменам
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.06.20 07:54
Оценка:
Здравствуйте, okon, Вы писали:


S>> Xamarin.Forms он как раз кроссплатформенный UI. Просто он конечно сильно уступает UWP или WPF, но уже достаточно хорош.

S>>Почитай для интереса https://metanit.com/sharp/xamarin/

O>Посмотрю что там нового, но последний раз я его трогал пару лет назад и понял что это дороже чем делать на JavaFX.


O>p.s. посмотрел, там же речь так и идет про мобилки как на заре Ксамарина а не про его отросток — декстоп разработку.


S>> Но большого то интереса гуй для линукса не представляет. Никому это не интересно.

S>>Ажуры это да.

S>> Для десктопов где в основном Windows программируют как раз на UWP или WPF и даже старых добрых Windows.Forms.

S>>Вот под винду писать на JavaFX довольно странное решение

O>Естественно если изначально приложение под винду то зачем кроссплатформ.

O>Но если изначально приложение проектируется как кроссплатформ решение ( а значит есть аудитория и клиенты ), то JavaFX будет неплох.
Больше интерес представляет не Linuх, а Windows, Android и IoS то чем и занимается Xamarin. Как с этим у JavaFX?
и солнце б утром не вставало, когда бы не было меня
Re[16]: Вопрос с_шарп крафтсменам
От: Ночной Смотрящий Россия  
Дата: 20.06.20 21:00
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Знают одна из самых крутых и восстребованных фич


Это уж кому как.

AA>, считаю, особенно если хеш и сравнение будет генерится,


Будет.

AA> но уже чуть не 5 лет ждем. Когда?


Этой осенью.

AA> Плохой признак для языка, если учесть, что это уже практически во всех языках этого класса.


И много ты управляемых мейнстрим языков знаешь? В Java есть записи?

AA>Ну, как говорится в одном старом фильмеЖ "Я твой друг, но я раб лампы." F# хоть и высокооплачиваемый, но мало востребованный.


Почему, не знаешь случайно?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.