1. C++ / Говнокод #16762

    +59

    1. 1
    2. 2
    3. 3
    4. 4
    std::transform( keyframes.begin(), keyframes.end(), std::back_inserter( result ),
          boost::bind( & qMakePair< KeyframeType::first_type, KeyframeType::second_type >,
             boost::bind( & Prm::TType::view, _1 ),
             boost::bind( & Prm::Time::value, boost::bind( & Prm::TType::time, _1 ) ) ) );

    boost bind головного мозга

    Запостил: QBatman, 24 Сентября 2014

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

    • Функциональщина в крестах, бессмысленная и беспощадная.
      Ответить
      • Алгоритм transform, бессмысленный и беспощадный (как и его брат for_each).
        С введением range-based for loop он стал особенно бесполезен.
        for (auto&& keyframe : keyframes) {
            result.emplace_back(keyframe.view(), keyframe.time().value());
        }
        Ответить
        • Ух ты, в C++11 такое есть? Верной дорогой идёте, товарищи!

          Только вот что это за страшное auto&& такое? И вообще с каких это пор появились ссылки на ссылки?
          Ответить
          • Ссылка на ссылку всегда была просто ссылкой.

            T&& - введённый в С++11 синтаксис. Он означает (в зависимости от контекста) либо rvalue-ссылку (вкратце - ссылку на объект, состояние которого можно украсть, например, временный), либо "universal reference", как правило используемый в шаблонах и позволяющий не дублировать код для константных и rvalue ссылок.

            В цикле используется как раз второй вариант - universal reference, см.
            http://stackoverflow.com/questions/13130708/what-is-the-advantage-of-using-universal-references-in-range-based-for-loops


            rvalue references - это одна из главных и интересных фишек нового стандарта, но в двух словах её не объяснить. Когда понимаешь, что это такое, возникает вопрос - НУ ПОЧЕМУ ИХ НЕ БЫЛО РАНЬШЕ???
            Ответить
            • >>rvalue references - это одна из главных и интересных фишек нового стандарта, но в двух словах её не объяснить. Когда понимаешь, что это такое, возникает вопрос - НУ ПОЧЕМУ ИХ НЕ БЫЛО РАНЬШЕ???

              По-моему крестобляди решают в новом стандарте проблемы, которые им создал их же инструмент.
              Сначала мы сделаем сахарок для неявных созданий и копирований объектов, подчёркиваю неявных.
              Объявили — объект, присвоили — объект, return — снова объект.

              Проходит дждесять лет, мы вводим какую-то новую непонятную терминологию, новые неочевидные для непосвященных значки для говносинтаксиса уже перегруженного ими по самый крест. Всё только для того чтобы сделать работу компилятора или jita — понять где у нас в программе есть ненужные, лишние копирования и убрать их.

              Что же мы имеем в итоге? Новые объекты по-прежнему создаются(sic!) но при этом переносятся ссылки изнутри них. То есть по-просту не выполняется deep copy.

              Ждемс новой версии стандарта, с новой семантикой, которая будет подменять ссылки.
              Ответить
              • На самом деле проблема управления памятью без сборщика принципиально сложная и тут без особого синтаксиса не обойтись.
                Взять к примеру Ржавку - в её синтаксисе указалетей даже матёрые крестоложцы путаются. Хотя вроде с нуля спроектировали, без легаси.
                Ответить
                • >проблема управления памятью без сборщика принципиально сложная и тут без особого синтаксиса не обойтись.
                  А что сложного?
                  Конкретно в move-семантике используется факт, что ссылок на объект и его внутренности объекта больше нигде нет.
                  Чтобы второй delete не привел к крашу.

                  Так это можно реализовать посредством анализа кода компилятором. Он сам раздуплит и поставит себе флажок что объект никуда не убежал. Зачем выводить на уровень пользователя и вносить в типизацию.
                  std::move имхо не нужен. Это как inline - хинт который компилятор успешно может херить.
                  Ответить
                  • > онкретно в move-семантике используется факт, что ссылок на объект и его внутренности объекта больше нигде нет.

                    Откуда инфа? Сам придумал?

                    Объект, из которого вынули душу, должен оставаться валидным объектом, т.е. все его инварианты должны соблюдаться. Потому что как минимум на нём будет вызван деструктор.

                    Во многих случаях можно ожидать, что замувленный объект стал "инициализированным по умолчанию", т.е. замувленные вектор или строка тупо пусты.

                    > хинт который компилятор успешно может херить
                    std::move - это и есть такой хинт. По сути это попытка каста в rvalue-ссылку. Константная ссылка в rvalue не превратится, сколько её не мувай.
                    Ответить
                    • >std::move - это и есть такой хинт. По сути это попытка каста в rvalue-ссылку.
                      Я именно об этом и написал. Только зачем программисту засорять код, попытками сделать работу вместо компилятора?

                      > Потому что как минимум на нём будет вызван деструктор.
                      Вызываем на объекте деструктор. delete удаляет душу.
                      Если ссылка на душу убежала куда-то еще, то что случится delete души в другом месте?
                      Ответить
                      • > delete удаляет душу
                        Как он может удалить то, что предварительно вынули? Мув - это не получение копии кишков, это именно извлечение, передача владения. Душа жертвы в результате мува зануляется.

                        Никакой магии, всё логично и понятно.
                        Ответить
                        • >Как он может удалить то, что предварительно вынули?
                          delete нового удаляет душу.

                          Ну правильно.
                          >Мув - это не получение копии кишков, это именно извлечение, передача владения.
                          Компилятор должен проконтролировать что ссылка на душу больше никуда не убежала. Чтоб delete нового объекта не сломал другие.
                          Ответить
                          • > Компилятор должен проконтролировать

                            Компилятор и сам умеет синтезировать правильные мув-конструктры для простых классов.

                            Для сложных самому придётся контроллировать, но там, как правило, можно полагаться на уже существующие мув-конструкторы.
                            Ответить
                            • >Компилятор и сам умеет синтезировать правильные мув-конструктры для простых классов.
                              Верно. Если бы не определённые особенности крестов, это вообще можно было б сделать оптимизацией компилятора, не меняя ни байта исходных кодов, и не вводя новый синтаксис.

                              >Для сложных самому придётся контроллировать
                              Это как - простые циклы компилятор умеет сам разворачивать, а сложные придется развернуть руками. PHP-way.
                              Ответить
                    • > Объект, из которого вынули душу, должен оставаться валидным объектом, т.е. все его инварианты должны соблюдаться. Потому что как минимум на нём будет вызван деструктор.

                      Ошибка крестов. Можно было бы убрать это правило, заменив на "объект, который перемещён, не должен никак вообще трогаться ничем, и деструктором тоже".
                      Ответить
                      • >Можно было бы убрать это правило, заменив на "объект, который перемещён, не должен никак вообще трогаться ничем, и деструктором тоже".
                        Кстати, а просто вернуть ссылку на тот объект нельзя было? При этом естественно не выполнять деструктор.
                        Ответить
                        • Не, нельзя, если он создавался на стеке и мы выходим из функции.
                          Ответить
                          • >если он создавался на стеке
                            Ну только если он создан на стеке, то тогда перенести его в кучу. Плюс там же может случится инлайн, тогда и вовсе ничего копировать не надо.

                            В лучших традициях крестоблядства будет создать тип, который представляет объект на стеке и дать программисту руками откастить его в объект на куче и наоборот. Я даже символ могу предложить: auto☰
                            Ответить
                            • впизду кучу
                              тут как раз для этого нужен специальный перемещатель
                              то, что его изначально не предусмотрено дизайном - это косяк, в Аде тоже кстати
                              Ответить
                              • Я хочу, чтобы ты меня выебал.
                                Ответить
                              • >тут как раз для этого нужен специальный перемещатель
                                По стеку?
                                Это полезно, но не всегда. Допустим объект так возвращается по цепочке из пучины функций, тогда при определённой вложенности оптимальнее будет положить его в кучу и копировать ссылку, вместо того чтобы постоянно двигать по стеку всё его нутро.
                                Ответить
                                • > По стеку?
                                  Со стека в область видимости кода, вызывающего функцию.
                                  Хотя есть вариант, когда компилятор видит, что функция работает только с одним объектом и потому можно сразу работать именно с ним, не копируя. В Аде для этого есть оператор
                                  return X do
                                  ... -- работаем с X
                                  end do;
                                  чтобы сразу непосреднственно конструировать объект на том месте, где он нужен
                                  Ответить
                              • Очень трагикомично с точки зрения пирфоманса будет выглядеть перемещение цепочкой returnов по стеку сравнительного большого объекта и последующее помещение ссылки на него куда-нибудь в мапу.

                                Так же верно обратное, когда мы решаем не передавать в метод много аргументов, а делаем один — структуру с ними, и при передаче оной по цепочке методов копируем через стек одну ссылку, а не десяток .
                                Ответить
                                • Если объект большой, то проще передать ссылку на него отдельным параметром. Например, первым. И назвать его словом ТХИС.
                                  Ответить
                                  • >то проще передать ссылку на него отдельным параметром.
                                    Так а если мы пишем некий обобщённо-шаблонный код и решаем возвращать/передавать его по значению.
                                    А потом мы хотим повторно использовать этот же код, но для довольно тяжелого класса.
                                    Ответить
                  • > Так это можно реализовать посредством анализа кода компилятором.

                    Оно в большинстве случаев так и реализовано. Временные объекты автоматически rvalue, компилятору не надо об этом говорить. Локальные объекты в инструкции return тоже неявно становятся rvalue.

                    Явный std::move нужен, когда вынимаем душу из объекта, который не является временным. Автоматически такое подставлять нельзя - сломается обратная совместимость. Может, кто-то рассчитывал получить именно копию.
                    Ответить
                    • >Автоматически такое подставлять нельзя - сломается обратная совместимость.
                      Ну вот! Я ж об этом и говорю:
                      крестобляди решают в новом стандарте проблемы, которые им создал их же инструмент
                      Сначала мы сделаем сахарок для неявных созданий и копирований объектов, а потом с ним боремся.
                      Ответить
                      • > Сначала мы сделаем сахарок для неявных созданий и копирований объектов, а потом с ним боремся.

                        О каком сахарке ты говоришь?
                        int x = 0;
                        int y = x; //< ололо неявный сахарок копирования!
                        // надо
                        // assign(y, makeMeACopy(x));
                        Идея была в том, чтобы семантика пользовательских классов была максимально близка к семантике встроенных.

                        Куда лучше необходимости писать отдельный метод или класс на каждый примитивный тип в жабе или работать с чудесными недоковариантными массивами.

                        Костылей много, но бОльшая часть из них пришла из сишки, а без сишки кресты бы не взлетели.
                        Ответить
                        • >Может, кто-то рассчитывал получить именно копию.
                          Если человек явно пишет
                          y=makeMeACopy(x));
                          Он наверняка желает получить копию. Никакая обратная совместимость не сломается.
                          Ответить
                          • ок. Сишка
                            int y = x; // копия
                            Если ты начал c этого, то от этой семантики уже никуда не убежишь.

                            В ржавке сделали в таких случаях неявный мув, а для копии нужен clone().

                            Я не говорю, что в крестах идеально, там хотя бы рационально и объяснимо, и лучше с учётом имевшихся ограничений было сделать сложно (разве что имплисит преобразования в конструкторах было тупостью).
                            Ответить
                            • >int y = x; // копия
                              Это ж примитив.
                              Как копировать сложные объекты сишка не говорит. Вернее говорит: тупо копируй указатель.
                              Просто скопировать ссылку? Сделать memcopy класса, или сделать полный deep-copy скопировав вложенные объекты и их содержимое.
                              Это всё особенности крестов, и копирование, имхо ввёдено для того чтоб джва раза не выполнился delete при работе RAII.

                              В сишке мы ж не можем присваивать массивы, а присваивание указателя структур ничего не копирует.
                              Ответить
                              • > Как копировать сложные объекты сишка не говорит.
                                структуры так же копируются при присваивании
                                рот в рот значениями
                                массивы копировать нельзя, да, тут недоработка
                                но если массив - член структуры, то снова можно
                                Ответить
                                • >структуры так же копируются при присваивании
                                  Но неглубоко. Если внутри структуры сидит указатель, то обе копии будут указывать на один и тот же адрес.
                                  Ответить
                                • В оригинальной сишке к слову не было присваивания структур. Оно появилось только в C89.

                                  Прильните же к слову пророка вашего.
                                  www.stroustrup.com/siblings_short.pdf
                                  www.stroustrup.com/sibling_rivalry.pdf


                                  In the spirit of [10], Classic C breaks [3] by adding structure assignment and structure argument passing to K&R C.
                                  Ответить
                      • ну т.е. ты категорически не согласен с тем, что в unique_ptr есть польза
                        Ответить
                        • я думаю, его аргументом будет "фи ваш юникптр лишь костыль для решения проблем созданных крестолюбами, компилятор сам должен отслеживать уникальность поинтеров"
                          Ответить
                        • Я такого не говорил.
                          Ответить
                  • нет, функции, в которые передаётся временный объект и реальный - чуть разные должны быть, компилятор будет внутрь функций лезть, чтобы узнать, нужен ли имобъект в конце?
                    Ответить
                    • >чуть разные должны быть, компилятор будет внутрь функций лезть, чтобы узнать, нужен ли имобъект в конце?
                      Ну он же их когда компилит, то может выставить для себя внутренний флаг - можно ли этот объект мувать и самостоятельно сделать мув.
                      По сути в крестах он делает всё то же (выводя что это rvalue-ref), только посредством дальнейшего усложнения языка.
                      Ответить
                      • Проблема в том, что для одной и той же функции это иногда надо, а иногда нет.
                        Ответить
                        • Вопрос тут как оно линкует мув-оптимизации с уже собранным кодом? lto по идее должно помочь.
                          Ответить
              • я на автомате подумал что тут опять бред
                Ответить
                • Так всё же, что связано с крестами, похоже на бред. Но жизнь такова...
                  Ответить
                  • о плюсах - на магистратуре чувак появился, кодить не умеет ничего, подходит, смотрит на меня и говорит - мол на шарпе кодишь, днище этакое. Я спрашиваю - а на чем кодят реальные пацаны? он - на си плюс-плюс. я - ну покажи мастер класс. он - я пока не умею, я только скачал книжку по си плюс-плюс.

                    мораль сей басни такова - крестоблядями не становятся, крестоблядями рождаются
                    Ответить
                    • Таки к физикам пошёл в магистратуру?
                      Ответить
                      • не поверишь - к программистам. даже в магистратуре не все умеют кодить, а из тех кто умеют не все понимают что они кодят.
                        Ответить
                        • Собирают по чертежам, а вместо самолёта получается паровоз.
                          Ответить
                        • Видимо, надо вводить демо-версию вузов. Скажем, чтобы можно было бесплатно походить год на все факультеты. А иначе, если пошёл не туда, придётся либо доучиваться, либо уходить.
                          Ответить
                          • магистратура то - другое дело. не хочешь - не иди
                            Ответить
                            • Ну а куда ещё идти, если нелёгкая затянула в программирование, программировать не умеешь, ничего не умеешь?!
                              Ответить
                              • Куда еще идти? Учить, например, математику, или что-нибудь прикладное, где статистики много. Программирование само по себе очень малоперспективно: ну поработаешь десять лет программистом - потом уже как-то не с руки, надо идти в администраторы (не системные администраторы, а руководить производством). У программиста карьерный рост предполагает смену профессии :(
                                А вот физиком, например, можно быть пока ласты не склеишь. Чтобы быть программистом до конца жизни, нужно заниматься теорией, но это для единиц, и в производстве не особо востребовано.
                                Ответить
                                • > в администраторы
                                  Или в архитекторы, гуро
                                  Если компьютеры милее людей

                                  Любая инженерная специальность имеет те же выводы. А уж что говорить о врачах, учителях, слесарях, музыкантах...
                                  Ответить
                                  • Нет, не в такой же пропорции. Это нормально проработать всю карьеру участковым врачем. Никто не станет крутить пальцем у виска. Если человеку нравится - ну так и наздоровье. Учителем - да то же самое. Вспоминая школу, много учителей было с 20+ летним стажем. Мой классный руководитель ушла на пенсию будучи просто учителем. В этой специальности продвижение по административной лестнице - не показатель того, что человек хороший специалист, часто даже наоборот.

                                    Я практически не встречал программистов со стажем больше 10 лет работающих программистами. (Но людей занимавшихся программированием 10 и больше лет назад встречал относительно много). Поэтому и выводы такие.

                                    Инженеры? Ну я бы не сказал. Мой дядя проработал всю жизнь инженером. Сначала эхолокация на подводных лодках, потом другая всякая электроника связаная с обработкой звука. Сейчас работает в гос. комисси которая занимается проверками соблюдений экологических норм. Как-то в администраторы даже не собирался никогда.
                                    Ответить
                                    • > Я практически не встречал программистов со стажем больше 10 лет работающих программистами

                                      Если речь не о личной встрече, то Кен Томпсон, Роб Пайк, Роберт Лав, тыщи их

                                      Когда работа интересная, можно программировать всю жизнь. Особенно работая в компаниях, где инженеры не считаются людьми второго сорта.
                                      Ответить
                                      • > и тыщи их
                                        на фоне миллионов - это всего лишь доли процента.
                                        Ответить
                                        • > Программирование само по себе очень малоперспективно
                                          > Это нормально проработать всю карьеру участковым врачем. Учителем - да то же самое.
                                          вот они примеры настоящего успеха и перспективы выбранной профессии - за 30 лет стажа попытаться развиться только горизонтально (только 80% врачей и учителей даже этого не могут, когда на участке ты лечишь всю жизнь только орз парацетамолом, или читаешь алгебру 8 класса 30 лет)

                                          у меня на старой работе был программист, овер 50 лет (для интересующихся - дельфин)
                                          борозды не портил, только здоровье его начинало подводить

                                          сколько было занятых в индустрии разработки ПО 20 лет назад?
                                          ну, вот, 1994 год, что там было?
                                          виндовс 3.11, зачатки сетей передачи данных, о какой индустрии можно говорить, сколько миллионов людей было занято в разработке, хоть 10к наберется?
                                          а ведь, допустим, молодой программист тех времен сейчас был бы как раз 40-50 летним

                                          никто не удивляется, увидев 45 летнего врача или учителя, но wvxvw удивляется, увидев 45 летнего программиста
                                          шок, быть программистом бесперспективно, если хорошо справляешься - вынуждают идти на повышение, идите, дети, в участковые врачи
                                          Ответить
                                          • Причем 45-летний программист вполне может прокачаться на новые технологии, как показала практика. Если он все эти годы не жопу просиживал.
                                            Ответить
                                            • Даже 60-летний.
                                              Ответить
                                              • Например те же преподы - еще перфокарты помнят и компиляцию по записи, а в своих темах прошарены, в новшествах разбираются
                                                Ответить
                                                • Люди (да и вообще никакие автономные агенты) по-другому не умеют давать оценку своим действиям. За исключением тривиальных вещей, где оценка индивида в любом случае автоматическая (например, рефлексорная: хорошо ли держать руку в костре или нет), оценка себя в контексте общества строится из исследования и интерпретации приоритетов общества. Это не значит, что каждый агент, даже в одной и той же ситуации, сделает одинаковые выводы и даст одинаковую оценку своим действиям, и тем не менее другой процедуры просто не существует.
                                                  Ответить
                                          • Конечно, я говорю: учите математику, или прикладные науки, где нужна статистика, но дефейкейт читает это как "идите в участковые врачи" - потому что, конечно, это же одно и то же!

                                            Я пишу, что встречал достаточно людей занимавшихся программированием 10 лет назад, и при этом не занимающихся программированием сегодня, из чего дефекейт делает вывод, что я не встречал людей занимавшихся программированием 10 лет назад - конечно же, очень логично. 10 лет назад - это не так давно, это всего-навсего 2004 год, какой в жопу Виндовс 3.11? Это ХР доживал последние годы. Программирование как раз подходило к одному из пиков развития (в 2006 случился обвал, но до этого стартапы росли как на дрожжах и их скупали за сумасшедшие деньги всякие американские корпорации).

                                            Откуда взялась цифра 20?

                                            Но я более того скажу: да, участковый врач не чувствует себя ущербным, если проработает на одном и том же месте всю жизнь. Его любят, уважают, никому и в голову не прийдет считать его недоразвитым, если он не делал административной карьеры. Быть врачем - призвание, и люди делают это не только изза зарплаты, а потому, что считают, что это полезное и правильное занятие, которое нужно обществу. Программист, по крайней мере то, что в индустрии называется программистом - это профессия типа "читатель текстов". Через поколение, может два-три таких программистов просто не будет, т.как формальное мышление станет обязательным предметом школьной программы и, следовательно, в программировании останутся только специалисты по программированию (аналогично с лингвистикой: будут только люди изучающие алгоритмы, или переводчики, энциклопедисты, библиотекари, професси просто "писать и читать" не будет).
                                            Ответить
                                            • Ваще всё не так.

                                              Если контора государственная, то человек может в ней просидеть до пенсионного возраста и дальше. Если частная - такое маловероятно.

                                              Если область, в которой человек работает, не меняется, то специалист останется ценным хоть до 60. В случае педиатра - дети и болезни из года в год практически одинаковые. Сишка и юниксы просуществуют даже после смерти человечества.
                                              Ответить
                                              • Ох блин, государственные работы... это что-то из экономики совка 60-70 годов. Неужели там до сих пор не понятно, что это была общественная аномалия, своего рода специально спланированая психушка с невменяемым режимом для пациентов?
                                                Да даже если государственная, и даже если нет: просидеть, конечно, может, но кто такого человека будет считать хорошим специалистом? - Никто, его будут считать неудачником, или похуистом. Типа как Уолли из комиксов про Диллберта. А почему так? - потому что самореализоваться в качестве "человека делающего сайты на ПХП+ж.скрипт" - нельзя. Любое существо, способное хоть в небольшой степени представить себе что возможно сделать в программировании, окажется в скором времени перед выбором: либо депрессия от повторяющейся, бесперспективной, иррациональной и бесполезной работы, либо начать делать что-то другое.
                                                Ответить
                                                • > Чтобы быть программистом до конца жизни, нужно заниматься теорией, но это для единиц, и в производстве не особо востребовано.
                                                  > либо депрессия от повторяющейся, бесперспективной, иррациональной и бесполезной работы, либо начать делать что-то другое.

                                                  По-моему, можно оставаться программистом-практиком и делать всегда что-то новое. Когда надоест делать сайтики на PHP+JS, можно пересесть на ASP.NET можно податься куда-нибудь ещё. В базы данных, высоконагруженные сайтики, написание драйверов, программирование для разных устройств вроде больших железных станков, ... Да и у заказчиков области совсем разные. Физика, математика, биология, ...

                                                  Да, надо каждый раз переучиваться и начинать практически с нуля. Но это для тех, кто трудится не ради ЧСВ, карьерной лестницы и прочей ненужной питушни.
                                                  Ответить
                                                • > депрессия от повторяющейся, бесперспективной, иррациональной и бесполезной работы
                                                  Вариантов, на самом деле, гораздо больше. Можно начать пить. Можно натаскивать молодых на предметную область. Или развивать смежную область, чтобы делать свою работу ещё лучше/быстрее/етц.
                                                  Бесполезность работы тоже под вопросом: деньги приносит? Удовольствие доставляет? Если есть спрос, то К.О. подсказывает, что это кому-то нужно.

                                                  > самореализоваться в качестве "человека делающего сайты на ПХП+ж.скрипт"
                                                  Есть многое на свете, друг Горацио. Помимо этих ваших вебов, областей, куда можно приткнуться, овердохуя. Но нет, нужно привести пример самой голимой, динамичной, быстро развивающейся.
                                                  Ответить
                                                  • >Есть многое на свете, друг Ворецио.
                                                    Ответить
                                                  • веб - говно. вычмат - заебись
                                                    Ответить
                                                  • > Можно начать пить.
                                                    Чем это отличается от депрессии?

                                                    > Или развивать смежную область,
                                                    Чем это отличается от "делать что-то другое"?

                                                    > Есть многое на свете
                                                    Думай ширше. Это не про ПХП конкретно было сказано. Смысл в том, что то, что сегодня называется программированием, по сути, является своего рода продвинутым (а иногда и не очень) IT. До 15-16 веков в Европе, да и позже тоже, но не в такой степени, была профессия "уметь читать и писать". За нее платили, и вполне прилично. Но потом оказалось, что это умение нужно всем, и профессией оно быть перестало. Та же судьба ждет и программирование (в современном понимании). Не будет веб-программистов. Будут, возможно, редакторы сайтов, которые будут заниматься вещами типа оформления, или заполнения информацией, но не нужны будут специальные люди умеющие только ж.ксрипт и верстку. Редакторы будут уметь ж.скрипт, или чем там будут описывать эти сайты в такой же степени, как они будут уметь читать и писать.

                                                    Это сейчас происходит в естесственных науках. Нельзя заниматься биологией, или физикой без того, чтобы программировать. Но биолог себя не считает программистом не смотря на то, что практически все, что делает, это пишет программы. Точно так же, как не считает себя литератором, не смотря на то, что большую часть рабочего времени проводит за чтением и письмом.
                                                    Ответить
                                                    • > Та же судьба ждет и программирование (в современном понимании)
                                                      я с тобой категорически не соглашусь
                                                      возможно, ты себя со стороны именно как писарь домашних страничек и оцениваешь, дело твое
                                                      однако, моё мнение как раз противоположное

                                                      всё идёт к автоматизации всех сфер человеческой деятельности
                                                      программирование - инструмент автоматизации
                                                      начиная от бизнес-задач, которые никто и никогда не отменит, перспективной робототехникой, безводительным транспортом, заканчивая умными холодильниками и чайниками

                                                      то, что ты можешь починить кран или даже положить плитку в санузле, ещё не значит, что инженеров-строителей и архитекторов уже отменили, потому что читать и писать совсем не то же самое, что знать и применять сопромат

                                                      то, что можешь вылечить свою простуду - не значит, что вылечишь аппендицит
                                                      то, что можешь ходить и бегать - не значит, что можешь построить самолёт

                                                      а вот представить в то, что через много лет нас (наших правнуков) будут лечить, возить, кормить роботы, следить за чистотой, строить жилье и т.д. - я могу
                                                      кто будет писать системное ПО для этого всего? каждая кухарка? микро-скрипты в рамках фреймворка - да, как смски, но ничего сложнее, т.к. этим будут заниматься специалисты, как и сейчас
                                                      Ответить
                                                      • Ну пипец, где ж я говорю про отмену? Я говорю, что программирование станет универсальным требованием для любой профессии.
                                                        Ответить
                                                        • g@@@@@44444*********9444@@@@@@@@@@@Mggg__
                                                          	       g@M"	    _an**"""""""**Vw=G______"%%@@@@@gg_
                                                          	     ,@@`	 a^"  __a=~v-vvv~~,___	       _____`"*@gg_
                                                          	    a@@       _M" _m*"` _______     `""""""""""`    "	"9@g_
                                                          	    @@	    a" ,m"_ar*"'`     -,	 ,amv****-~,	   9@g
                                                          	   @@	     .* u"		C	  ,~	    "\	     @
                                                          	  d@	       '    __gg____		  `		     @y
                                                          	 g@		,g@@@@@@@@4@@gg_	  C   ______	     9@g
                                                                 g@@.>~.	   __  a@""@@@@@@__  "9@g	  ,g@@@@**4@@_	      "@g_
                                                               g@"$-*"""	   *Y, @@@@*""**4@@@g__$@C     ggg@@@@@@@@@@*" "'" ""Mg`8@g
                                                             g@",`  ,g@@@@@@@g_	    _g@     ""@M"      `"@@"		    *n_"C"@@
                                                            g@'	 p@"	,`"@@@ggggg@@"			 8]	 ,_  _gM@@@@g ' 'C8@
                                                            @@	j@     8@_    `"""'			 8@g_	 3@g@@@`,  `"	 ][@
                                                            @L	8@  _g@@@@@gg_		    _gMMy	  "9@g_    `""' 8L	 j8@
                                                            @k	3@ d@@@@   "@@@gg_   *""""" @"``___	    '@@g_	@@C  n"  Q@
                                                            "@C $  9k    @@_    "8@@@@gg_     @g_fM4@@M	   g@""" "n.   a@@@  _m*3@"
                                                             "@g N,      9@@gg_  8@ `""9@@@gg__"	       8gg@M	    _g@@@d@k   a@%
                                                              "@@g_'	"@@@@@@@@g_	`"8@@@@ggg____  ""`   ___gg@@@@ 8@@@   @@
                                                                "@g_	 '@g `"@@@@gg__   @L  `"""4@@@@@@@@@@@@@@@@"  @C @@@  3@
                                                          	9@_	  `@g  3@"9@@@@@@g@	   [@	  @@	 4@y  @kg@@@  [@
                                                          	 9@	    8@gd@   '"9@@@@@@@gggggd@gggggd@gggggg@W@@@@@@@@  [@
                                                          	  8g	     "@@g	 @""9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F  [@
                                                          	   @g	       "@@g_	d@     '""@@@@@@@@@@@@@@@@@@@@@@@$@   3@
                                                          	   `@g_		 "@@@g_j@'	  @C  ``"3@@"""8@""j@'j@g@@   3@
                                                          	     9@g_ ~__ ~._  `"@@@@g_	  @C	 8@   g@^ p@^ "@@M     @C
                                                          	       "@@g "9m_ "Nq_  "*@@@@ggggg@______@____@@gg@@@@@M"      @L
                                                          		 "9@@g_`"Mm_`"Nq_   """"*4@@@@@@@@@@M@@4*"""'	       8k
                                                          		    "9@@g_ ""Mm_"*w__	    ~~~~ aaa~~	      _/       $@
                                                          		       `"@@gg_  "*WG_"*w~.____		___am*"    /   [@
                                                          			   "*@@gg    `"*-~<.__	       `       __M"    3@
                                                          			       "9@gg_	      `""'** ------**""`       d@
                                                          				  `"@@ggggg__			     ,d@
                                                          				      ""9@@@@@gg__		  __g@"
                                                          					     `""*4@@@@MggggggggM@@@@"
                                                          						     `""""""""""'
                                                          Ответить
                                                    • > > Можно начать пить.
                                                      > Чем это отличается от депрессии?
                                                      Вероятно, тем, что работа проходит веселее. Не знаю, я не прикасаюсь к алкоголю :) Тут можно было бы дать ссылку на серию South Park про цинизм, но не могу вспомнить, на какую именно серию.

                                                      > > Или развивать смежную область,
                                                      > Чем это отличается от "делать что-то другое"?
                                                      Тем, что это "что-то" пересекается с основной областью. Писал человек дрова под винду, скучно ему было. Взял и перенёс один под линукс. Пример высосан из пальца, но, надеюсь, мысль поясняет :)

                                                      > Думай ширше.
                                                      Думал! Пассивное микроисследование показывает, что процент людей, которые могут в программирование если и вырос лет за десть, то очень незначительно. Как мне кажется, программист, который переносит в код те же расчетные задачи химиков, биологов, инженеров и т.д., останется отдельной профессией.
                                                      Вычислительные мощности машин по архитектуре фон Неймана приближаются к своему потолку, поэтому появляются такие вещи, как OpenCL, CUDA, Мультиклет, квантовые компьютеры и тому подобное. Средства становятся сложнее, появляются новые парадигмы, знать и понимать которые и становится задачей программиста. А химикам, биологам и патологоанатомам такие вещи не нужны, у них своих забот в предметной области хватает.

                                                      Я не отрицаю, что вероятно будущее, в котором программист - часть профессии, но сомневаюсь, что это будет справедливо для большинства.
                                                      Ответить
                                                      • Речь идет о формальном мышлении и соответствующем выражении мыслей. CUDA / MPI и иже с ними находятся не в той плоскости, чтобы как-то на это повлиять / что-то изменить. Речь о том, что до конца двадцатого века от обычного человека не требовалось умение формализировать. Вполне достаточно было заученых / интуитивно понятых знаний. Большинство людей были ремесленниками в том смысле, что главной их функцией было выучить как выполнять фиксированый набор действий - и этого было достаточно. Только очень маленький процент занимался изучением систем, которе требовало не заучивания, а изобретения универсального механизма.
                                                        Программирование делает, хоть и не радикально, формальное мышление необходимостью. С другой стороны заучивание перестает быть полезным по двум причинам:
                                                        1. Технология меняется очень быстро.
                                                        2. Автоматизация.

                                                        Успешность водителя такси будет зависеть не от его навыков вождения или знания того, где и в какое время можно найти больше клиентов, а от того, на сколько он сможет запрограммировать автопилот. Люди как бы ни старались не смогут сильно усовершенствоваться, как водители. Если не через десять, то через пятдесят лет компьютеры будут лучше водить машины, чем люди, а имея возможность проанализировать больше данных за короткое время, смогут лучше предсказать где искать пассажиров. Человеку будет просто бесполезно в этом соревноваться.
                                                        Ответить
                                                        • Да хватит тебе агитировать, давай троллить и спамить ;)
                                                          Ответить
                                                          • показать все, что скрыто
                                                            g@@@@@44444*********9444@@@@@@@@@@@Mggg__
                                                            	       g@M"	    _an**"""""""**Vw=G______"%%@@@@@gg_
                                                            	     ,@@`	 a^"  __a=~v-vvv~~,___	       _____`"*@gg_
                                                            	    a@@       _M" _m*"` _______     `""""""""""`    "	"9@g_
                                                            	    @@	    a" ,m"_ar*"'`     -,	 ,amv****-~,	   9@g
                                                            	   @@	     .* u"		C	  ,~	    "\	     @
                                                            	  d@	       '    __gg____		  `		     @y
                                                            	 g@		,g@@@@@@@@4@@gg_	  C   ______	     9@g
                                                                   g@@.>~.	   __  a@""@@@@@@__  "9@g	  ,g@@@@**4@@_	      "@g_
                                                                 g@"$-*"""	   *Y, @@@@*""**4@@@g__$@C     ggg@@@@@@@@@@*" "'" ""Mg`8@g
                                                               g@",`  ,g@@@@@@@g_	    _g@     ""@M"      `"@@"		    *n_"C"@@
                                                              g@'	 p@"	,`"@@@ggggg@@"			 8]	 ,_  _gM@@@@g ' 'C8@
                                                              @@	j@     8@_    `"""'			 8@g_	 3@g@@@`,  `"	 ][@
                                                              @L	8@  _g@@@@@gg_		    _gMMy	  "9@g_    `""' 8L	 j8@
                                                              @k	3@ d@@@@   "@@@gg_   *""""" @"``___	    '@@g_	@@C  n"  Q@
                                                              "@C $  9k    @@_    "8@@@@gg_     @g_fM4@@M	   g@""" "n.   a@@@  _m*3@"
                                                               "@g N,      9@@gg_  8@ `""9@@@gg__"	       8gg@M	    _g@@@d@k   a@%
                                                                "@@g_'	"@@@@@@@@g_	`"8@@@@ggg____  ""`   ___gg@@@@ 8@@@   @@
                                                                  "@g_	 '@g `"@@@@gg__   @L  `"""4@@@@@@@@@@@@@@@@"  @C @@@  3@
                                                            	9@_	  `@g  3@"9@@@@@@g@	   [@	  @@	 4@y  @kg@@@  [@
                                                            	 9@	    8@gd@   '"9@@@@@@@gggggd@gggggd@gggggg@W@@@@@@@@  [@
                                                            	  8g	     "@@g	 @""9@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@F  [@
                                                            	   @g	       "@@g_	d@     '""@@@@@@@@@@@@@@@@@@@@@@@$@   3@
                                                            	   `@g_		 "@@@g_j@'	  @C  ``"3@@"""8@""j@'j@g@@   3@
                                                            	     9@g_ ~__ ~._  `"@@@@g_	  @C	 8@   g@^ p@^ "@@M     @C
                                                            	       "@@g "9m_ "Nq_  "*@@@@ggggg@______@____@@gg@@@@@M"      @L
                                                            		 "9@@g_`"Mm_`"Nq_   """"*4@@@@@@@@@@M@@4*"""'	       8k
                                                            		    "9@@g_ ""Mm_"*w__	    ~~~~ aaa~~	      _/       $@
                                                            		       `"@@gg_  "*WG_"*w~.____		___am*"    /   [@
                                                            			   "*@@gg    `"*-~<.__	       `       __M"    3@
                                                            			       "9@gg_	      `""'** ------**""`       d@
                                                            				  `"@@ggggg__			     ,d@
                                                            				      ""9@@@@@gg__		  __g@"
                                                            					     `""*4@@@@MggggggggM@@@@"
                                                            						     `""""""""""'
                                                            Ответить
                                                        • re: http://govnokod.ru/16762#comment249986
                                                          Когда я пытаюсь экстраполировать всё это, моя голова взрывается от чересчур большого количества факторов, которые могут оказаться значащими. Проще, наверное, пожить лет двадцать и посмотреть.
                                                          Ответить
                                              • > В случае педиатра - дети и болезни из года в год практически одинаковые.
                                                ой тыж блядь. А лекарства постоянно меняются. Если всех лечить клизмой то оно конечно можно всю жизнь так проработать. Единственная профессия где ничего не меняется это учитель физики в школе. Вот там то вообще ни каких сдвигов. только методы преподавания меняются но на них и забить можно.
                                                Ответить
                                                • > А лекарства постоянно меняются.
                                                  Лекарства меняются, состав остаётся приблизительно тем же. Как сбивали температуру десять лет назад парацетамолом, так до сих пор и делают, только с красителями, подсластителями и в яркой упаковке с надписью "фервекс", "колдрекс", "хуйнекс" и т.п.
                                                  Ответить
                                                  • ладно десять, парацетамолу лет да лет, для детей практически безальтернативный

                                                    по простудам вообще всё не так однозначно - если её лечить, то проходит за неделю, а если не лечить - то за 7 дней

                                                    так-то дело терапевта заподозрить более сложный и опасный пиздец и выписать направление к специалисту - чтобы от пневмонии или менингита не окочуриться

                                                    впрочем, те, кто болеют хоть 2 раза в год, способны вылечить свое ОРЗ сами, без больничного листа
                                                    Ответить
                                                    • простуда может дат осложнение на сердце, глаза и т.д. Если не лечить.
                                                      Ответить
                                    • >>Никто не станет крутить пальцем у виска.

                                      Тебе не пох кто там что крутит?
                                      Делать надо то, что нравится.
                                      Ответить
                              • нахуй?

                                а серьезно - никогда не поздно начать делать то, что действительно нравится. Тем более если поступил на прогера и отучился, то видимо душа лежит к точным наукам - математика и физика приветствуют тебя
                                Ответить
                                • >математика и физика приветствуют тебя

                                  Разве что дискретная.
                                  Ответить
                                  • бывало, что люди на мехмат шли после биологического - и норм. Ты делишь на касты как древний индус
                                    Ответить
                                    • Я вот лично математику плохо перевариваю если появляются тензоры и абстрактная алгебра.
                                      Ответить
                                      • Абстрактная алгебра - это же весело. Поля, кольца, моноиды.

                                        Тензоры не вкушал.

                                        Что бы учиться на мехмате математику нужно любить безумно и безответно.
                                        Нельзя любить одну часть математики и плохо переваривать другую.
                                        Ответить
                                        • >Поля, кольца, моноиды.

                                          Если я не понимаю, как это вычислять, значит, для меня этого нет.
                                          Ответить
                                          • Стремишься исключить любую тайну из окружающей тебя действительности?
                                            Ответить
                                            • Это не тайны. Это абстракции.
                                              Ответить
                                              • Это попытка контролировать мир вокруг исключая их него все непонятно и заменяя простыми аналогами. такими как хуерга. "поля? да это хуерга, для меня их нет" вместо "я не понимаю всех тонкостей работы с полями"
                                                Ответить
                                                • Плейсхолдер "Хуерга" в любом случае появится. На данный момент преоны - хуерга.
                                                  А тут из-за специализации вышло, что хуерга Abbath'а - это очевидное понятное явление для kegdan'а, оттого и багор.
                                                  Ответить
                                                  • нет. я об отрицании того, чего не понимаешь
                                                    Ответить
                                                    • Это не отрицание, это хуезабивание.
                                                      Ответить
                                                      • отрицание - не (вижу, слышу, ебу, подставить нужное) - значит нет

                                                        хуезабивание - я знаю, что это есть, я знаю, что я не понимаю этого, и мне не нужно это понимать на данный момент
                                                        Ответить
                                                        • Я о втором и говорю.
                                                          Ответить
                                                          • сначала о первом, щас съезжаешь на второе.
                                                            Ответить
                                                            • У тебя просто сознание ограниченное. Не можешь одновременно воспринимать существование и несуществование вещей.
                                                              Ответить
                                                              • У всех людей ограниченное сознание. Но видимо ты - бог во плоти
                                                                Ответить
                                                • И перцептивной слепоты у тебя тоже нет?
                                                  Ответить
                                                  • и каким боком ты ее суда хочешь прикрутить?
                                                    Ответить
                                                    • В человеке заложен принцип не замечать того, что ему не нужно, иначе забьется канал связи. Так же и с полями, они мне не нужны, я не теоретик. А забивать лишним голову не хочу.
                                                      Ответить
                                                      • не замечать и игнорировать - разные вещи. Не забивай, мне то что?
                                                        Ответить
                            • > магистратура то - другое дело. не хочешь - не иди
                              оо-уо теперь ты в армии
                              нахуй
                              Ответить
                              • http://youtu.be/qlF4XsXfGrc А нет, это лучше не смотреть.
                                Ответить
                              • точно, забыл я такой маловажный для себя фактор
                                Ответить
                              • Военная кафедра для чего?
                                Ответить
                                • в то время, как надо было решать, стоит ли тратить день в неделю на военную кафедру, она означала почти гарантированную 2 летнюю службу по окончанию в качестве младшего офицера (или годовую рядовым), потому из группы на нее пошло 2-3 человека

                                  к году окончания вуза всё повернулось наоборот, и с военки забирали максимум на сборы, давали военный билет в руки и прощались

                                  но если сейчас так, то через 2 года никто не даст гарантию, что снова не станут всех поголовно принуждать к контрактной службе

                                  кроме того, с 3 курса можно уже идти работать и лишний день в неделю тратить с бОльшей пользой

                                  военка, если не ошибаюсь, длилась 6 семестров
                                  семестр - 16 учебных недель
                                  т.е. 1*6*16 = 96 дней
                                  96/22 (среднее число рабочих дней в календарном месяце) = 4.3 трудомесяца
                                  не считая сборов, на которые тебя тоже могут забрать вместо работы
                                  Ответить
                        • Там так и написано "программист", или как всегда какая-то околоайтишная штука типа АСУ или САПР?
                          Ответить
                          • Где - там? В дипломе будет "магистр компьютерных наук". Звучит как "писькин доктор"
                            Ответить
                            • То-есть специализации нет?
                              Ответить
                              • Мне кажется ты плохо формулируешь свои мысли

                                Направление - Фундаментальная информатика и информационные технологии (Компьютерные науки)

                                Узкой специализации нет
                                Ответить
              • Крестобляди расплачиваются за тот сахарок, что был в сишечке. То у них массив и указатель на массив означали одно и то же, то ввели неинтуитивные ссылки. То ли дело языки, в которых указатель можно сразу отличить от значения...
                Ответить
                • питон хорош везде указатели.
                  Ответить
                  • И даже разадресация есть:
                    def test(*args):
                        foo(*args)
                    
                    def test2(**kwargs):
                        bar(**kwargs)
                    Ответить
                    • Это в третьем что ли? А то в 2.7 Syntax Error:
                      >>> def f(*args):
                      ...    *args = 1
                        File "<stdin>", line 2
                          *args = 1
                          ^
                      SyntaxError: invalid syntax
                      Ответить
                      • 2.7 на помойку истории
                        Ответить
                        • Нет, 3.
                          Ответить
                          • 3 няшный.
                            Ответить
                            • Мы старые пердуны, и нам некогда портировать либы с 2.7 на третий.
                              Ответить
                              • портируйте сразу на Go.
                                Ответить
                                • Действительно, вот у кого надо учиться обратной совместимости.
                                  Ответить
                                  • А не рано? Оно довольное молодое и еще непонятно как это го.. взлетит.
                                    По-моему, надо учиться у сраной жабы и крестов.
                                    Ответить
                                    • > непонятно как это го.. взлетит

                                      Да оно уже давно взлетело. Docker написан на Go. В аппэнджин эксперементальную поддержку добавили. У нас даже в продакшене используется, нехило экономит сервера по сравнению с пистоном.
                                      Ответить
                                      • >нехило экономит сервера по сравнению с пистоном.
                                        Нахера вообще пейсон на сервера было тащить? Обезьян проще учить?

                                        >Да оно уже давно взлетело.
                                        Ну вы же понимаете насколько спорное это утверждение?
                                        Ответить
                                        • > Нахера вообще пейсон на сервера было тащить?
                                          Дык большая часть веба не cpu-bound. И в общем-то насрать, какой язык будет ожидать запросов от клиента, ожидать чтения с диска и ожидать ответа от СУБД.

                                          > Нахера вообще пейсон на сервера было тащить?
                                          Чтобы побыстрее наваять приложение. На той же жабе всяко больше сил и времени уйдет.
                                          Ответить
                                          • >какой язык будет ожидать запросов от клиента, ожидать чтения с диска и ожидать ответа от СУБД
                                            На самом он деле многопоточный сервер не ожидает, он обрабатывает то что пришло раньше. А в рамках большой компании сервер явно не один, потому можно обойтись меньшим числом нод.
                                            Даже в сишке есть select для io.

                                            >Чтобы побыстрее наваять приложение.
                                            Это да. Только потом надо его переписывать.
                                            Ответить
                                            • совсем не обязательно Яндекс на пример использует питон и пупу.
                                              Ответить
                                              • Обычный питон медленее компилируемых языков на пару порядков*.
                                                pypy должен быть стабильно быстрее обычного питона в раз 50.
                                                К сожалению это не так http://speed.pypy.org/

                                                *десятичных порядков
                                                Ответить
                                                • Это смотря для каких операций. Если сделать запрос к БД обработать и отдать результат клиенту разница в скорости не будет настолько огромной. Зато скорость разработки будет в разы выше. У того кто выпускает продукт первым будет максимальная моржа и поэтому питон рулит. А потом уже можно и перфомансом заняться и не кто не мешает в последствии все узкие места переписать на с и использовать потом в питоне как либы.
                                                  Ответить
                                  • Кстати, а если серьезно, как у go с обратной совместимостью?
                                    Ответить
                                    • https://golang.org/doc/faq#What_is_the_status_of_the_project
                                      Go became a public open source project on November 10, 2009. After a couple of years of very active design and development, stability was called for and Go 1 was released on March 28, 2012. Go 1, which includes a language specification, standard libraries, and custom tools, provides a stable foundation for creating reliable products, projects, and publications.

                                      With that stability established, we are using Go to develop programs, products, and tools rather than actively changing the language and libraries. In fact, the purpose of Go 1 is to provide long-term stability. Backwards-incompatible changes will not be made to any Go 1 point release. We want to use what we have to learn how a future version of Go might look, rather than to play with the language underfoot.


                                      От них сейчас можно ждать только консервативности и неспешности в добавлении новых фич и сахарозы.
                                      Ответить
    • А я вот ни разу не замечал, что иконка на вкладке говнокода анимированная.
      Может потому что не часто захожу с iceweasel браузера, хотя последнее время всё чаще.
      Ответить

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