Я как раз пишу сейчас нечто cхожее в этом плане с библиотекой виджетов и думаю попробовать соорудить что-то из макросов. Но это надо ещё думать как провернуть.
Единственно, чего не хватает — это языковой поддержки автоматической имплементации трейта через филд. Я думаю, это появится. Сейчас скорее всего можно выкрутиться макросами, но это надо подумать как сделать.
Я бы настоятельно не рекомендовал так поступать любому сколь-либо публичному лицу, не озаботившись тщательной демонстрацией окружающим того что эта девушка имеет возможность изолироваться в своей собственной комнате и может в любой момент уйти.
Вы про то, что можно просто наплевать на GPL? Да, можно. Но ведь Столлман не это имеет в виду.
Хотя я не знаю, имеет ли здесь место нарушение GPL. Так как, насколько мне известно, ключевым является существование версии того же драйвера не для Linux: если есть версия не для Linux, то комплект драйвер+Linux не является деривативом Linux и драйвер не обязан быть GPL, если же драйвер есть только и исключительно под Linux, то он обязан быть GPL.
Возможно также, что достаточно только лишь одной принципиальной возможности существования драйвера не для Linux, чтобы комплект Linux + драйвер не являлся деривативом Linux.
В любом случае, это всё выглядит как способы нарушить дух лицензии, не нарушив при этом её букву. И всегда рискуешь вляпаться. То есть GPL позволяет коммерческое использование, но недружелюбна к нему, в отличие от MIT/Apache.
Да, прямого запрета нет. Но как только вы достаточно сильно завязались на что-то под GPL, весь код вашего продукта придётся открыть также под GPL. В принципе, вам никто не мешает и после этого продавать свой продукт за бешеные деньги, но по факту спроса не будет и цену придётся снизить до нуля или околонуля.
пусть даже мнения оппонента которое претит всему его мировоззрению
Ну это-то ладно, а вот как быть, если оно просто неверное? И при этом высказывается без тени сомнения, и на попытки указать на как минимум шаткость некоторых аспектов, человек категорически не реагирует. Ну, окрытые оскорбления и тут, наверное, излишни, но явно сказать "вы не разбираетесь в вопросе", "вы пишете полную чушь/глупости", или там "прекратите нести чушь", или даже просто "wrong!", я думаю, определённо следует. Да, это негатив, но ведь и заслуживающего уважения мнения в этом случае нет.
Так я не понял, они (эти самые некие программисты) что, пытались считать финансы, используя вычисления с плавающей точкой? Ну, тогда они некомпетентны как программисты, но разве это причина не переходить на Java?
Нет, серьёзно, это разные вещи. Разные цели (свобода vs. эффективность ("базар")), разные создатели, разные движения и связанные с ними организации, разные лицензии, разные области применения (free software нельзя использовать в коммерческом продукте, open source — можно).
Я извиняюсь, но табы и шрифты в консоли — это важно и несиюмитно. Отношение ко всякого рода изнасилованиям в форме дарения цветов меняется, а консоль и табы были, есть и будут.
Да, спасибо, на это стоит посмотреть.
Нет, это обсуждение подтолкнуло меня к следующим выводам.
Идеи есть, буду пробовать. Если получится, обещаю запилить статью про метод создания библиотеки виджетов без ООП.
Баш — не самая лучшая оболочка.
Это истинная личина ООП :-)
Вот что получается: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=a1594df0b51141a5bdbdb22bb9cdbb6c
Более того, это видимо и единственный вариант, так как наследования трейтов в расте тоже в существенной степени нет, это я стормозил.
Я как раз пишу сейчас нечто cхожее в этом плане с библиотекой виджетов и думаю попробовать соорудить что-то из макросов. Но это надо ещё думать как провернуть.
Да, это бойлерплейт. Он решается кострукцией а-ля
impl Widget for ButtonRuntime through self.widget;
. Я думаю есть все шансы, что она появится.Понятно, что у кнопки свои поля есть. Не вижу как это мешает. https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5c3b78efb712ccbfa84663ca4dc7c620
Единственно, чего не хватает — это языковой поддержки автоматической имплементации трейта через филд. Я думаю, это появится. Сейчас скорее всего можно выкрутиться макросами, но это надо подумать как сделать.
А зачем делать кнопку структурой? Пусть и кнопка, и виджет будут трейтами. У трейтов наследование есть.
Для Rust такой подход неидеоматичен, если вообще возможен. Здесь другие способы добиваться тех же гарантий.
let mutable my_variable: Option<&mutable dynamic MyVerySpecificTrait> = &mutable some_variable.as_reference().lock().unwrap().as_reference();
и
let mut my_var: Option<&mut dyn MyTrait> = &mut some_var.as_ref().lock().unwrap().as_ref();
Или
function some_function(input: implements Function(implements IntoString) -> Box<dynamic SomeTrait>) -> implements Iter<Item=ReferenceCell<integer_16bit>>
и
fn some_fn(input: impl Function(impl IntoString) -> Box<dyn SomeTrait>) -> impl Iter<Item=RefCell<int16>>
Всё-таки несмотря на хорошо известные проблемы сокращений, второй вариант побеждает за счёт лучшей читаемости.
На самом деле нет. Во-первых, в таком случае не
F5
, аShift + F5
, во-вторых, file.b всё равно писать (хотя бы, стеревa
и дописавb
).А инструменты эти практически эквивалентны, так что дополнять в друг друге им особо нечего, только заменять.
Это называется виктимблейминг.
Вы про то, что можно просто наплевать на GPL? Да, можно. Но ведь Столлман не это имеет в виду.
Хотя я не знаю, имеет ли здесь место нарушение GPL. Так как, насколько мне известно, ключевым является существование версии того же драйвера не для Linux: если есть версия не для Linux, то комплект драйвер+Linux не является деривативом Linux и драйвер не обязан быть GPL, если же драйвер есть только и исключительно под Linux, то он обязан быть GPL.
Возможно также, что достаточно только лишь одной принципиальной возможности существования драйвера не для Linux, чтобы комплект Linux + драйвер не являлся деривативом Linux.
В любом случае, это всё выглядит как способы нарушить дух лицензии, не нарушив при этом её букву. И всегда рискуешь вляпаться. То есть GPL позволяет коммерческое использование, но недружелюбна к нему, в отличие от MIT/Apache.
Да, прямого запрета нет. Но как только вы достаточно сильно завязались на что-то под GPL, весь код вашего продукта придётся открыть также под GPL. В принципе, вам никто не мешает и после этого продавать свой продукт за бешеные деньги, но по факту спроса не будет и цену придётся снизить до нуля или околонуля.
Ну это-то ладно, а вот как быть, если оно просто неверное? И при этом высказывается без тени сомнения, и на попытки указать на как минимум шаткость некоторых аспектов, человек категорически не реагирует. Ну, окрытые оскорбления и тут, наверное, излишни, но явно сказать "вы не разбираетесь в вопросе", "вы пишете полную чушь/глупости", или там "прекратите нести чушь", или даже просто "wrong!", я думаю, определённо следует. Да, это негатив, но ведь и заслуживающего уважения мнения в этом случае нет.
Так я не понял, они (эти самые некие программисты) что, пытались считать финансы, используя вычисления с плавающей точкой? Ну, тогда они некомпетентны как программисты, но разве это причина не переходить на Java?
Нет, серьёзно, это разные вещи. Разные цели (свобода vs. эффективность ("базар")), разные создатели, разные движения и связанные с ними организации, разные лицензии, разные области применения (free software нельзя использовать в коммерческом продукте, open source — можно).
Я извиняюсь, но табы и шрифты в консоли — это важно и несиюмитно. Отношение ко всякого рода изнасилованиям в форме дарения цветов меняется, а консоль и табы были, есть и будут.