1. Си / Говнокод #23428

    0

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

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

    Запостил: Fluttie, 18 Октября 2017

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

    • Можно же для первого раза обмазаться WinAPI, чтобы понять как оно работает на низком уровне.
      Ответить
    • MS целый шарп придумали чтобы инкапсулировать это говнообмазывание, что WinAPI, что .NET, что COM
      Ответить
    • > type ""-close"" to exit
      Ответить
    • > лучше обмазаться дотнетом чем винапи
      Очевидно, что сиё утверждение попадает под действие аксиомы Эскобара.
      Ответить
      • Ну черт знает, по мне так дотнет это тема. На чем ещё формочки писать?
        Ответить
        • Electron reactive banana же, ну
          Ответить
        • Так-то, дотНЕТ и мне одно время пришёлся по душе. Однако, формочки из-под него выходят слишком туго. Прибитые гвоздями к виндовсу окошки дурно пахнут 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
                        Ответить
                      • зы:

                        деанон травля
                        https://vk.com/antervis

                        блядь, так ведь и меня можно найти
                        https://www.facebook.com/sema.real
                        https://www.instagram.com/_semareal_/
                        Ответить
                        • Он и не скрывался. И на хуябре он есть.
                          Ответить
                          • а меня нигда нету
                            ни на лоре
                            ни на рсдн
                            ни на швабре
                            ни даже на SO
                            Ответить
                            • зато на гк сколько аккаунтов!
                              Ответить
                              • На ГК (в процентном отношении) больше умных людей, чем на других сайтах про программирование и компьютеры.
                                Ответить
                        • Warning: Illegal string offset 'SemAreal' in /home/cactuslove/public_html/su_sem.php on line 43


                          Отсюда: http://www.cactuslove.ru/su_sem.php
                          Ответить
                          • SemUxod
                            SemArial
                            SemPivkaBy
                            Ответить
                          • Пыхомакака ворнинги вкбючила, уже неплохой прогресс. Через пару лет научится их фиксить без собаки.
                            Ответить
                            • Это админ шаред хостинга включил скорее всего
                              Ответить
                              • Или выключить забыл.
                                Ответить
                              • Их можно в рантайме регулировать. Но это черезжопие, конечно.
                                Ответить
                                • Черезжопие писать ошибки в 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.
        На мой взгляд это не аргумент. Раз на максимально высоком уровне, то давайте на хаскель пересядем, хули.
        Ответить
        • >> из всех возможных

          очевидно формошлепство в продакшене на хаскеле сюда не относится
          Ответить
          • Здесь не хватает двух мемасиков:

            http://i.imgur.com/GHxmrsR.jpg

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

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

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

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