Няшная / Говнокод #23428 Ссылка на оригинал

0

  1. 1
https://pastebin.com/pk5bB1Y4

Я вам покушать принес. Задача кратко и четко объяснить человеку, почему лучше обмазаться дотнетом чем винапи. Пока решил написать группе что следующий факультатив (на котором я должен разбирать их портянки) отменяется, а там что-нибудь придумаю. Две крайности - (new EchoServer).start() и вот это, что ты будешь делать.

Запостил: Fluttie Fluttie, (Updated )

Комментарии (67) RSS

  • Можно же для первого раза обмазаться WinAPI, чтобы понять как оно работает на низком уровне.
    Ответить
  • MS целый шарп придумали чтобы инкапсулировать это говнообмазывание, что WinAPI, что .NET, что COM
    Ответить
  • > лучше обмазаться дотнетом чем винапи
    Очевидно, что сиё утверждение попадает под действие аксиомы Эскобара.
    Ответить
    • Ну черт знает, по мне так дотнет это тема. На чем ещё формочки писать?
      Ответить
      • Так-то, дотНЕТ и мне одно время пришёлся по душе. Однако, формочки из-под него выходят слишком туго. Прибитые гвоздями к виндовсу окошки дурно пахнут VCL и даже WPF не в силах исправить ситуацию.
        Qt в этом плане - наименьшее дерьмище, как по мне. Ежели навостриться шпарить на нём - любая дичь реализуема.
        Ответить
        • Кьют со своими аналогами половины стандарта плюсов - это отдельный зверь. Написанное на кьюте прибито гвоздями к кьюту, лол.
          Ответить
          • > прибито гвоздями к кьюту
            Продолжая метафору, сам Qt очень легко поднять и отнести куда-то, а вот с дотНЕТ такой трюк не прокатит.

            Ну да ладно. Как грится, каждый дрочит как он хочет.
            Ответить
        • Зачем на плюсах формошлепить? Вот уж где не обойтись без зиро кост абстракций и метушни.
          Ответить
          • допустим для решения основной задачи выбран с++. Зачем связываться со вторым яп и межязыковым взаимодействием, если формы вполне легко и кошерно делаются на плюсах (Qt*)? Там в общем-то и QML есть, он тоже весьма кошерный
            Ответить
            • Есть такое мнение, что иногда дешевле наформошлёпить на C#, а действительно тяжелые вещи вынести на C через PInvoke или ComInterop.

              В случае никсов, соответственно, наформошлёпить на каком-нить питоне и подключить нативный код как .so
              Ответить
              • > Есть такое мнение, что иногда дешевле наформошлёпить на C#, а действительно тяжелые вещи вынести на C через PInvoke или ComInterop.

                предпочту буквально что угодно работе через com

                > В случае никсов, соответственно, наформошлёпить на каком-нить питоне и подключить нативный код как .so

                И половина кода будет состоять из оборачивания c++ методов/классов в python.

                А в чистом си даже оберток толковых для всего этого нет
                Ответить
                • >>предпочту буквально что угодно работе через com

                  А миллионы других программистов не предпочли.
                  Дело вкуса.

                  >>И половина кода будет состоять из оборачивания c++ методов/классов в python.
                  Только части API.

                  А если у тебя две комманды то это даже удобно.
                  Ответить
                  • При чем тут вкус-то? Попробуй хоть разок собрать программу, использующую com, не студией.
                    Ответить
                    • зачем собирать её не студией?

                      Кстати, скриптовые ЯПы вообще безболезненно работают с теми комами кто умеет IDispatchable
                      Ответить
                        • а меня нигда нету
                          ни на лоре
                          ни на рсдн
                          ни на швабре
                          ни даже на SO
                          Ответить
                            • На ГК (в процентном отношении) больше умных людей, чем на других сайтах про программирование и компьютеры.
                              Ответить
                        • Пыхомакака ворнинги вкбючила, уже неплохой прогресс. Через пару лет научится их фиксить без собаки.
                          Ответить
                            • Их можно в рантайме регулировать. Но это черезжопие, конечно.
                              Ответить
                              • Черезжопие писать ошибки в stdout
                                Черезжопие выдавать их пользователю
                                пхпписты, сер
                                Ответить
                          • Мне кажется, или их нужно наоборот выключать, а смотреть варнинги в логах?
                            Ответить
                            • нужно включать уровень NOTICE, добиваться чтобы не было ни одного нотиса, а если есть то показывать красивую 500ю страницу, слать девелоперу письмо, и писать логи в какой-нить LogFaces (или кажется еще в NewRelic , хз)
                              Ответить
        • зато формошлёпить на WPF одно удовольствие
          а Winforms конечно надо обоссать и сжечь уже очень давно
          Ответить
      • а ты формочки шлепал на win32api?
        WndProc, CreateWindow, WS_BORDER?

        да ты здоров-ли?
        ты еще на xlib или xcb голом поформошлёпь
        Ответить
        • Ты это мне писал? Я поэтому и топлю за дотнет, пусть даже там под капотом те же wndproc'ы или их CLI-аналоги крутятся.
          Ответить
  • Из этой портянки можно почерпнуть какие-то знания, поюзать её как каркас для чего-то более полезного...

    А (new EchoServer).start() - это вещь в себе. Поигрался и выбросил.
    Ответить
    • Тем более, говно этот ваш эхо-сервер, если он аналогично коду выше интерактивит с юзером через сосноль, запускает pause, cls, читает захардкоженный конфиг, и всё это в одном методе start(). Это уже год-обджект называется, за такое и по ебалу получить можно в приличном обществе.
      В противном случае автор чуть-чуть пиздобол и нарочно удлинил сишный код анрилейтед хуйнёй, дабы джунов поэффектнее попугать.
      Ответить
  • >>почему лучше обмазаться дотнетом чем винапи
    Потому что любую задачу надо решать на максимально высоком уровне из всех возможных, а C#/.NET выше чем C/Win32Api.

    Потому что лучше проверять что-то во время компиляции, а на втором месте проверять в рантайме и только на третьем месте проверять руками, и тут тоже C#.NET выигрывает у C/Win32api
    Ответить
    • >Потому что любую задачу надо решать на максимально высоком уровне из всех возможных, а C#/.NET выше чем C/Win32Api.
      На мой взгляд это не аргумент. Раз на максимально высоком уровне, то давайте на хаскель пересядем, хули.
      Ответить
      • >> из всех возможных

        очевидно формошлепство в продакшене на хаскеле сюда не относится
        Ответить
          • Почему S' Forth" постоянно игнорят? Между прочим, программы на нём управляют хуевой тучей устройств: мокроскопами, телеспоками, мудосинтезаторами, коврами-самолётами "Три топора", межголактическими пиздолётами, моим мозгом и прочими несуществующими вещами.
            Ответить
              • (PostScript) похож на S" Forth" только тем, что он стековый, S" Forth" гораздо примитивней и гибче, в нём нет никакой проверки типов, синтаксически он гораздо проще, в нём нет /вот {(таких вот) хуйнь}, только слова, есть контроль над копроляцией и интерпретацией.

                (Именно поэтому я за S" Forth".) =
                Ответить
  • А о чём вообще спор? Что лучше, .net или винапи для формошлепства?
    Ну пиздец!
    Ответить
        • не пойдет
          e first version of the .NET Framework was released on 13 February 2002 for Windows 98, ME, NT 4.0, 2000, and X
          Ответить
    • формошлепить на голом API?
      Это когда регистрируешь свой класс, делаешь окно и свой windproc?

      Это типа когда на примитивную форму 90 строк на сишечке, как в 91м году?
      Ответить
      • Через диалоги можно проще. Даже формошлёпка в редакторе студии есть.
        Ответить
      • Формошлёпить лучше всего на "TCL/TK": пишешь соснольн(ую|ые) программ(у|ы) на своём любимом 'Pascal'/"Си"/"C++"/S" Forth"/<любое другое гоано>, а потом на "TCL" по-быстрому набрасываешь гуйцов.
        Ответить
  • Винапи НАХУЙ! Мало того что проги не кроссплатформенны, они не переносимы даже на виндах. У меня, например, глючит третий мюторрент на XP. Все остальные торрент качалки замечательно работают.
    Ответить
    • НАХУЙ xp. ты уверен что тут дело в winapi?

      Я согласен с тем что позиксговно лучше переносимо потому что дает кое-какие гарантии касательно стандартной библиотекеи

      А виндоговно вообще стандартнуюбиблиотеку поддерживает постоку поскоку
      Ответить
      • Ну как-то же это должно объясняться.

        Я какбэ не про позикс и прочее прыщеговно, а про кроссплатформенные яп высоуого уровня.
        Ответить
        • > высокого уровня
          Дык либы в языках высокого уровня работают через то же самое винапи. И где-то их приходится реализовывать с ветвлением по версии венды (чтобы и новые фичи заюзать и на старых как-то работать). Вот в этих ветвлениях и таится вся хуйня - что-то поправили, сломали древнюю ветку, которая работала годами. Но никто же не тестирует новый софт под "хр".
          Ответить
      • Позикс позиксом, а ты попробуй какое-нибудь энтерпрайзное прыщеговно, собранное под редхат запустить на чём-то другом... Там проще виртуалку с окаменелой центосью накатить чем разбираться в каких же либах поломали обратную совместимость.
        Ответить
  • https://pastebin.com/pk5bB1Y4
    > system( "pause" );
    лол https://govnokod.ru/26018#comment511530

    Вообще эта хуйня относительно легко переделывается в хуйню, не привязанную к винапи. Просто выпилить к херам эти WSAStartup и сделать как нормальные беркли сокеты, убрать к херам критические секции (придуманный негрософтом термин) заменив фьютексами или тупо семафором если фьютексов нет. Ну и эту дрисню SetConsoleCursorPosition тоже убрать можно, заменив какими-нибудь эскейп-последовательностями для VT102 или вообще ncurses взять. Ну и да, заменить виндовозные треды позикс-тредами
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8