EgorBo
и всякие экскриементы
Ilya
да не приватный вроде
Значит ссылка в посте битая...
Ilya
Ну вот, как @EatsFullLemons и хотел. Больше сишарп и фшарпа в одном солюшене.
Ilya
https://github.com/dotnet/runtimelab
Интересно, что в мастере нет нечего😁
Ayrat
на том же уровне в унисон ноет Dave Thomas, а до них ныл еще Василий Кириченко
EgorBo
Василий Шапенко
EgorBo
я поправил опечатку*
Ayrat
Василий Шапенко
Этого не трожь, этот свой
Vlæd
на том же уровне в унисон ноет Dave Thomas, а до них ныл еще Василий Кириченко
О, я думал что я один про него и Криса так думал, лол
Vlæd
Которые ему деньги платили когда-то
Да, мы хотели его в этом году ещё по контракту, но не вышло
Kirill
Сюда.
сори я чет не уловил связи с тем о чем я говорил(
Ilya
сори я чет не уловил связи с тем о чем я говорил(
Ну как? Для генераторов придётся сишарп проекты заводить.
Kirill
а тут другая проблема, я не понимаю какой юзкейс у генераторов :C
Vladislav
Замена рефлексии
Ilya
Замена рефлексии.
Ilya
Блин!
Vasily
Теперь не порефлексировать
Kirill
а так хотелось! (нет)
Kirill
в каких то библиотеках будет использоваться и хорошо. но вряд ли это большой удар по фшарпу. как кто-то озадачился этим вопросом в комментариях к твиту
Ilya
Очень больно, когда сотни значений в файликах лежат и рефлексией мапятся на классы :(
Doge
А вот было бы что-то из списка, то не надо было бы заниматься странной хренью с сорс геном: 1. макросы 2. Generic/DeriveGeneric 3. deriving на макросах а-ля раст 4. compile time reflection 5. partial evaluation
Vladislav
Doge
но все это делать сложно, поэтому вот вам "препроцессор" на text\plain :)))
Ну в текущем C# - да, сложно. Будь бы хотя бы шейпы или тайпклассы, то можно было бы дерайвингом выкрутиться. Хотя всё равно пришлось бы как-то по особенному, потому что те же Generic не работают без тайплевел вычислений толком.
Ilya
Опять все на негативе
Daniil
https://twitter.com/k_cieslak/status/1328701022949281792?s=28
О не заметил что тут уже обсуждают
Doge
Опять все на негативе
Потому что сорс ген - это очень костыльное решение. Не очень подходящее для дизайна ЯП
Ilya
Не совсем часть языка
Doge
Это как в среднем энтерпрайзном проекте подпирают костылями, чтобы себе промоушен обеспечить, а потом будь, что будет.
Doge
Не совсем часть языка
Это будет частью языка по той причине, что куча народу сейчас пойдёт этим пользоваться и на это зашиваться.
Doge
Не понимаю, corelib часть языка?
Да, стдлиба - это вполне себе часть языка.
Doge
Не понимаю, corelib часть языка?
И да, такое решение подобных проблем заблочит полноценные и нормальные их решения.
Vladislav
Мне больше интересно почему про т4 все забыли
Ilya
Мне больше интересно почему про т4 все забыли
Его запускать было очень сложно
Vladislav
Ну можно было сделать нормально?
Ilya
А сорс генератор на объектной модели рослина
Ilya
Ну можно было сделать нормально?
Это как ещё один разор - довольно дорого развивать и поддерживать
Doge
Тогда какого языка?
Как минимум у C#/F#. Т.к. они оба в текущем варианте implementation defined языки без четкого стандарта для текущих версий. И соответственно, если в кор либе будут решения на сорс генераторах, то это значит, что они тоже будут вполне себе частями языка.
Ilya
Когда всё скопировано - никаких генераторов нет
Ilya
Как т4 раньше
Doge
Ты этого не заметишь, если не будешь компилировать корлиб
Так сути это не меняет. Теперь разрабы языка не будут думать о полноценном решении проблемы, потому что они будут сильно завязаны на текущее решение. А с учётом как у них планируется время на доработки похоже, их устроют надолго подобные костыли.
Doge
Ты всё сводишь к всяким аббревиатурам типа хкт, сртп и всё такое?
Эти аббривиатуры в данном случае не причём. Тут скорее речь про то, что сорс ген в текущем виде - это дико ограниченные, неудобные в использовании и костыльно сделанные макросы, которые таким темпом навсегда останутся в языке и экосистеме. И это показывает недальновидность и близорукость команды дизайна языка, которые гонятся за своими KPI и промоушенами вместо человеческого и вдумчивого дизайна языка.
Ilya
Инструмент для генерации кода во время билда
Doge
Doge
И ими пытаются решить те задачи, которые обычно решаются макросами или другими вариантами compile time рефлексии
Ilya
Это кривая версия макросов по сути.
Макросы это другое - это часть кода твоего проекта
Ilya
А сорс генератор - часть рослина
Ilya
Могут решать одинаковые задачи, но путь решения -разный
Doge
А сорс генератор - часть рослина
Не совсем, он оставляет свои следы и в обычном коде в виде кучи partial классов/аннотаций, которые без него работать не будут.
Doge
Так что нельзя его считать прям чисто частью рослина.
Anatoly
можно было бы всего лишь сделать нормальные тайп провайдеры в эфшарпе =)
Doge
Дело реализации все таки, ты можешь написать генератор и без них
Ну нет. Большинство потенциальных использований сорс гена, которые предлагаются, как раз наполную используют кастомные аннотации и partial классы.
Doge
Генераторы без использования partial классов и т.п. можно было вполне себе и до этого писать.
Vladislav
автовывод линз и прочего
Ilya
Генераторы без использования partial классов и т.п. можно было вполне себе и до этого писать.
Но! Например орлеанс и сейчас генерит сериализаторы во время билда и без генераторов
Ilya
Но это так себе
Doge
нет, нельзя было. не было инструментария нормального
Можно было, их делали на основе рослин анализаторов как раз.
Anatoly
Можно было, их делали на основе рослин анализаторов как раз.
ну давай так. я решал эту проблему многократно
Anatoly
и рослин-анализаторы - самый идиотский и неудобный способ для генерации кода
Ilya
Можно было, их делали на основе рослин анализаторов как раз.
Их надо было костыльно встраивать в билд и интели сенс тебя не поймет
Anatoly
Их надо было костыльно встраивать в билд и интели сенс тебя не поймет
вот, видно человека, который пробовал это в проде
Anatoly
я пробовал тайп провайдеры, пробовал анализаторы, пробовал ещё что-то, уже не помню что