На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (7) 1 2 [3] 4 5 ... Последняя » все  ( Перейти к последнему сообщению )  
> Rust vs Чистейший Си , и еще си шарп вдогоночку
    Цитата applegame @
    Именно так, например. А теперь покажи пожалуйста пальцем, где по твоей ссылке "API-метод, принимающий имя исполняемого файла и массив аргументов"?

    Да, пардон, невнимателен был. Есть такое.

    MS в своём репертуаре. В Java в этом вопросе всё в порядке.
      Цитата korvin @
      Да, пардон, невнимателен был. Есть такое.
      Киля давал ссылку на эту штуку. Но судя по дисклеймеру в верхней части страницы, последняя версия .NET не поддерживает этот аргумент. И что-то я сомневаюсь, что он умеет правильно эскейпить параметры.
        Цитата applegame @
        последняя версия .NET не поддерживает этот аргумент.

        Э-э, т.е. они сначал добавили её (находил proposal на гитхабе), а потом обратно убрали? Лол.
          Цитата korvin @
          аннотация может отсутствовать неумышленно, по забывчивости

          Поэтому первым делом перевожу эту инспекцию с уровня варнингов на уровень ошибок.
            Цитата korvin @
            Ты решил поменять сигнатуру bar, что среда должна сделать?

            Какая среда? IDE? В идеале - указать на ситуацию и спросить.

            Цитата
            IDE это и так отлично показывает на полях, возле номера строки, позволяя ещё и при этом перейти к наследнику/реализации и/или родителю/базовому-методу.

            Это прекрасно, но мы про язык.
            Тот же Bitbucket в diff'е pull request'а не покажет.
              Цитата korvin @
              Э-э, т.е. они сначал добавили её (находил proposal на гитхабе), а потом обратно убрали? Лол.

              https://github.com/dotnet/corefx/issues/23592

              Цитата applegame @
              Киля давал ссылку на эту штуку. Но судя по дисклеймеру в верхней части страницы, последняя версия .NET не поддерживает этот аргумент. И что-то я сомневаюсь, что он умеет правильно эскейпить параметры.

              Вся фишка в том, что этот массив на сколько я понял, читая по диагонале - нужен для юниксов. Сейчас развивается .NET CORE, поэтому вводят в .NET Core 3, который уже вроде как вышел или выйдет буквально через пару дней.

              Под виндой обычно не возникает проблем с запуском програм с командной строкой. Ну разве что у совсем уж ушлых, которые ни гуглить, ни почитать документацию не в состоянии.
              Я например за время писания на шарпах, 1 раз задал вопрос в интернете, тут на форуме с Razor partial view, и то, потому что специфичная хрень, и я пол инета обыскал пока нашел то что нужно. В остальном у меня вобросов таких, чтоб писать их на стековерфлоу не возникало, особенно про какие нибудь парсеры и подобное, а если и возникали то гуглится это за 2 минуты. Поэтому я не знаю, чего там твой друг не осилил. Твой язык D, на сколько я понял изначально писался с упором на каких нибудь линуксоидов и там эту фичу сделали первым делом. Но в конечном итоге - эта хрень не более, чем библиотечный сахар, который решается средствами языка довольно просто и не принужденно, даже отдельной темы не стоит эта проблема.

              Это как например доколебаться - как там с форматированием строки в D ?
              Могу я написать вот так вот?
              ExpandedWrap disabled
                string value = $"[{DateTime.Now}] >> Command line: [{ String.Concat(Environment.GetCommandLineArgs())}], Context: {context.GetContextName()}";

              Нет, не могу? Нужно мудохаться со всякими вот этими "%s %d " и подобное? Фуу, ппц D оцтой, ведь с таким приходится чаще работать, чем с каким нибудь экранированием командной строки.
                Цитата JoeUser @
                Если не выкинуть из головы ОО-парадигму.
                С чего бы? Поинтер ту фанкшн всё равно будет поинтером ту э фанкшн. Подкапотный он чи явный, без разницы.
                  Цитата JoeUser @
                  Как может Си обогнать если Раст ничего лишнего не делает? Будут работать одинаково. А вот плюсы имеют все возможности просесть по скорости. Возьми ту же идиому виртуальных функций, а тем паче двойную диспетчеризацию.

                  :lool:
                    Цитата Wound @
                    Вся фишка в том, что этот массив на сколько я понял, читая по диагонале - нужен для юниксов.
                    А в чем существенная разница между командной строкой юниксов и винды?
                    Цитата Wound @
                    Под виндой обычно не возникает проблем с запуском програм с командной строкой.
                    Видимо был необычный случай.
                    Цитата Wound @
                    Ну разве что у совсем уж ушлых, которые ни гуглить, ни почитать документацию не в состоянии.
                    Я думаю, что подобные проблемы не возникают только у бездарей, которые пишут только примитивные программы и дающих обосранные ссылки на устаревшие фичи. korvin - исключение, он признал свою ошибку, да и не шарпист он.
                    Цитата Wound @
                    Я например за время писания на шарпах, 1 раз задал вопрос в интернете, тут на форуме с Razor partial view, и то, потому что специфичная хрень, и я пол инета обыскал пока нашел то что нужно. В остальном у меня вобросов таких, чтоб писать их на стековерфлоу не возникало, особенно про какие нибудь парсеры и подобное, а если и возникали то гуглится это за 2 минуты. Поэтому я не знаю, чего там твой друг не осилил.
                    Друг-то все осилил, но ему не понравилось, что пришлось тратить время на это.
                    Цитата Wound @
                    Но в конечном итоге - эта хрень не более, чем библиотечный сахар, который решается средствами языка довольно просто и не принужденно, даже отдельной темы не стоит эта проблема.
                    Да, сахар, но решается нелегко и принужденно. Даже в Microsoft целую статью накатали на эту тему.
                    Сообщение отредактировано: applegame -
                      Цитата Wound @
                      Это как например доколебаться - как там с форматированием строки в D ?
                      С форматированием строки в D все отлично.
                      Цитата Wound @
                      Могу я написать вот так вот?
                      Именно так нет, но строковая интерполяция есть в библиотечной реализации, если любишь подобное.
                      Цитата Wound @
                      Нужно мудохаться со всякими вот этими "%s %d " и подобное?
                      Зачем мудохаться? Пиши везде %s, оно само распознает тип:
                      ExpandedWrap disabled
                        string value = format("[%s] >> Command line: [%s], Context: %s", DateTime.Now, String.Concat(Environment.GetCommandLineArgs()), context.GetContextName());

                      Цитата
                      Фуу, ппц D оцтой, ведь с таким приходится чаще работать, чем с каким нибудь экранированием командной строки.
                      По мне так вот это
                      Цитата Wound @
                      ExpandedWrap disabled
                        string value = $"[{DateTime.Now}] >> Command line: [{ String.Concat(Environment.GetCommandLineArgs())}], Context: {context.GetContextName()}";

                      гораздо отстойнее :D

                      И да, лично я спор с тобой, Киля, на эту тему закрываю. Ибо в плане споров с тобой я солидарен с Астаротом. :lol:
                      Сообщение отредактировано: applegame -
                        Цитата applegame @
                        А в чем существенная разница между командной строкой юниксов и винды?

                        Я ж выше ссылку дал:
                        Цитата

                        On Unix platforms, external executables (binaries) receive their arguments as an array of string literals, which makes for robust, predictable passing of arguments (see Linux system function execvp(), for instance).

                        Regrettably, in Windows there is no equivalent mechanism: a pseudo shell "command line" must be passed as a single string encoding all arguments, and it is up to the target executable itself to parse that line into individual arguments.

                        The ProcessStartInfo class currently only supports the Windows approach directly, by exposing a string Arguments property that expects the whole command line.

                        On Unix platforms, this means that even if you start out with an array of arguments, you must currently artificially assemble its elements into a single pseudo shell command line, only to have CoreFX split that back into an array of individual arguments behind the scenes so as to be able to invoke the platform-native process-creation function, which takes an array of arguments.


                        Цитата applegame @
                        Именно так нет, но строковая интерполяция есть в библиотечной реализации, если любишь подобное.

                        Ну так все, приплыли, как же вы там пишете, без такой важной фичи? :D

                        Цитата applegame @
                        Зачем мудохаться? Пиши везде %s, оно само распознает тип:

                        Это крайне неудобно и влечет за собой ошибки.


                        Цитата applegame @
                        По мне так вот это
                        Цитата Wound @ Вчера, 22:47

                        string value = $"[{DateTime.Now}] >> Command line: [{ String.Concat(Environment.GetCommandLineArgs())}], Context: {context.GetContextName()}";

                        гораздо отстойнее

                        Конечно для тебя это оцтойнее, не будешь же ты признавать что в D оцтойнее :D

                        Цитата applegame @
                        И да, лично я спор с тобой, Киля, на эту тему закрываю. Ибо в плане споров с тобой я солидарен с Астаротом.

                        О опять начались какие то истерики. Ты наверно с Астаротом нормально спорите? :D

                        Добавлено
                        Цитата applegame @
                        Я думаю, что подобные проблемы не возникают только у бездарей, которые пишут только примитивные программы и дающих обосранные ссылки на устаревшие фичи. korvin - исключение, он признал свою ошибку, да и не шарпист он.

                        Что это за бездарь тебе такие ссылки обосранные то давал? :D

                        Цитата applegame @
                        Друг-то все осилил, но ему не понравилось, что пришлось тратить время на это.

                        Вся фишка в том, что я могу сейчас начать писать на D, и застрять на какой то мелочи, банальной. Понаплодить тем на стековерфлоу, а потом кричать что в D все сделано через жепу, и нет какой то особой функции, которая есть в другом языке. И из за этого D говно. Но ведь очевидно, что это будет сивым бредом, потому как говорит лишь о том, что это я не осилил инструмент. Вот ты нашел примерно такую же фигню, придрался к ней и кричишь что ой, что за говно то такое, как на нем писать. Ведь в моей Дшечке, есть функция, которая принимает аж целый массив аргументов. Очевидно что такие придирки - это какое то издевательство.
                        Сейчас можно найти 100500 функций в любой языке, которые отсуствуют в D и начать говорить что раз в D нет таких функций, значит язык оцтой.
                        Да что там D, так можно про любой язык написать.

                        Добавлено
                        Цитата applegame @
                        Друг-то все осилил, но ему не понравилось, что пришлось тратить время на это.

                        Ну так а он как хотел? Сразу сел за незнакомый язык и начал писать в D/С++ стиле и чтоб все работало, не тратя на это время? Не, так не бывает.

                        Цитата applegame @
                        Да, сахар, но решается нелегко и принужденно. Даже в Microsoft целую статью накатали на эту тему.

                        Майкрософт, особенно что касается в C# по любому поводу и не поводу статьи катает. И всякую хрень в язык порой несут.
                          Цитата Wound @
                          Это крайне неудобно и влечет за собой ошибки.

                          Какие ошибки?
                            Цитата OpenGL @
                            Какие ошибки?

                            Разные ошибки, начиная от ошибки в форматировании и заканчивая тем, что перепутал местами параметры или вовсе не дописал. Так же при рефакторинге может меняться тип переменных, что тоже может повлечь некоторые ошибки в форматировании.
                              Какие ошибки в форматировании, если везде %s ты пишешь? Это же не сишная строка, в которой ты должен точный тип переменной указывать. Остальное, в принципе, с натяжкой можно назвать источником ошибки, но проблемы тут лично я не вижу - дело вкуса больше.

                              Добавлено
                              Кстати, умеет ли D парсить эту строку на этапе компиляции и сразу говорить, что, например, количество %s и переданных параметров друг другу не соответствуют?
                                Цитата OpenGL @
                                Какие ошибки в форматировании, если везде %s ты пишешь? Это же не сишная строка, в которой ты должен точный тип переменной указывать. Остальное, в принципе, с натяжкой можно назвать источником ошибки, но проблемы тут лично я не вижу - дело вкуса больше.

                                ты можешь передать например вместо 6 ожидаемых параметров - 5. Если везде писать %s, то как например выводить числа и дату? Да и зачем мне обо всем этом думать? Ведь очевидно, что писать переменные там где они должны быть - это проще, понятнее и удобнее.
                                Сравни:
                                ExpandedWrap disabled
                                  var SomeVar = $"Сегодня, в {SomeTime}, я пошел в {SomeCity} погулять. Там я сел в автобус №{BusNumber} и поехал в парк {ParkName}, где встретил своего друга {FriendName}. Вместе с ним, мы пошли посидеть в кафе {CafeName}, выпили там по кружечке пива {BeerName}....";

                                И
                                ExpandedWrap disabled
                                  var SomeVar = format("Сегодня, в %s, я пошел в %s погулять. Там я сел в автобус №%s и поехал в парк %s, где встретил своего друга %s. Вместе с ним, мы пошли посидеть в кафе %s, выпили там по кружечке пива %s....", не запутайся где какая переменная будет стоять, и если вдруг поменяешь их местами в тексте, не забудь и тут поменять);

                                По мне так первый вариант очевиднее, удобнее, красивее, меньше подвержен ошибкам. Но я сейчас не говорю что без этого жить невозможно, и это ой как плохо. Я привожу просто аналогию. Уже три 3 страницы речь идет, если честно о какой то белибирде, потому что кто то не нашел функцию, принимающую массив аргументов для запуска процесса. И выставляется это - как нечно ппц какое херовое. При том, что написание функции для экранирования как тебе хочется - в языке полным полно. В С++ у тебя возникают проблемы с запуском процесса с командной строкой? У меня не возникало ни разу, хотя задачи такие были. Я даже как то не задумывался об этом. а тут это ставиться в пику языку. Я считаю это абсурд. Давайте тогда обсудим ниличие функции в том или ином языке, ну например вот этой, которая форматирует строку. Одного поля ягоды. Я бы понял, если бы отсуствие этой фишки приводило к тому, что процесс не возмжно было запустить в принципе. Ну тут такое себе, непонятно что. А самое удивительное, что это не друг просто не разобрался, нет. Это язык говно, потому что в D же есть такая функция. С такими притензиями, можно обосрать абсолютно любой язык.
                                Сообщение отредактировано: Wound -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0707 ]   [ 15 queries used ]   [ Generated: 14.05.24, 23:46 GMT ]