В последнем выпуске подкаста "Цинковый прод" помимо всего прочего обсуждался так называемый парадокс Питона (The Python Paradox).


Как ни странно, на Хабре нет практически ни одного упоминания об этом парадоксе. При том, что, несмотря на свою простоту, мысль очень интересная


В далеком-предалеком 2004 году, когда язык Python был чем-то необычным, немейнстримовым, вышла статья Пола Грэма, в которой он поделился своим эмпирическим наблюдением: программисты на Питоне, которых он знает, гораздо сообразительнее, чем Java-программисты.


В дальнейшем, Пол объяснил, что он не имел в виду, что Java-программисты тупые. Он просто подчеркнул, что люди, которые пишут на Питоне (малоизвестном тогда языке) — это гики, которые программируют ради удовольствия; это люди с широким кругозором, которые видят недостатки одних языков и достоинства других.


Тут важно подчеркнуть, что Java была распространенным языком, а Питон нет — в этом вся суть. На Питоне было не найти работу, на нем писали только потому, что он нравился как язык, как хобби.


Перенося эту ситуацию в сегодняшние реалии, можно было бы сказать, что среднестатистический программист на Rust или Elixir будет в среднем соображать лучше, чем средний "чистый" программист на Java или PHP.


Отсюда Пол Грэм делает два вывода-парадокса


Вывод Пола для бизнеса


Если компания выбирает для нового проекта относительно эзотерический язык, то те, кого она наймет, будут отличными программистами, ведь они проделали большую работу по изучению языка, и они сделали это для своего удовольствия. И им будет интересно работать.


Вывод Пола для программиста


Язык, который нужно выучить, чтобы получить хорошую интересную работу, это тот язык, который люди учат не только чтобы получить работу.


Еще парочка моих выводов


  1. Как говорится, нельзя просто так взять и вернуть 2004 год. Сейчас всё поменялось, стало несколько проще. Например, микросервисная архитектура позволяет использовать зоопарк языков и технологий, и тем самым привлекать замотивированных программистов на эзотерических языках, которые будут с удовольствием работать днями и даже ночами, радостно решая проблемы, которые будут вставать у них на пути
  2. Необязательно всё делить на черное и белое. Возможен и смешанный подход. Если проект уже написан на условной Джаве, и надо нанять именно джавистов, то на собеседовании обязательно стоит спросить, на каких языках человек еще писал. Если у него на гитхабе есть проекты или пулреквесты на языках, для которых не найти толком работу, то это ЖИРНЫЙ плюс
  3. Когда язык только-только выпускает стабильную версию, на нем пишут замотивированные профи. Но со временем из-за выросшей популярности туда повалит весь народ, и появится куча говнокода. Особенно интересно наблюдать за языком Go: язык с довольно низким порогом входа (синтаксис очень простой), при этом он стал очень популярным и высокооплачиваемым. Сейчас там, чувствую, сильно упадет среднее качество

Комментарии (217)


  1. Bookvarenko
    30.03.2019 23:29
    +2

    Для игровых движков парадокс Питона тоже работает?


    1. freecoder_xx
      01.04.2019 13:53

      Работает, но для Rust ;)


  1. picul
    30.03.2019 23:32
    +7

    Сейчас придут Rust-оманы и скажут, что они умнее плюсистов))


    1. KanuTaH
      30.03.2019 23:43
      +4

      Сам себя не похвалишь — никто не похвалит.


    1. Singaporian
      30.03.2019 23:50
      +2

      Раст — не знаю, но у меня перед глазами сейчас код ядра Линукса (Cи) и код стаи рыжих псов индусов из Intel (C++). И первое написано великолепно, а второе — какой-то ад адовский. Правило, кажется, работает.


      1. picul
        31.03.2019 00:47
        +1

        А точно С++ более популярен, чем чистый C? Вроде по рейтингам разная инфа бывает.


        1. KanuTaH
          31.03.2019 00:58

          По мнению Гитхаба — да, C++ популярнее (C++ на 5 месте в рейтинге ЯП за 2018 год, C — на 9). Да и по моим личным ощущениям C++ популярнее.


          1. Singaporian
            31.03.2019 08:39

            Тоже самое. Визуально Си намного более редкий зверь. Даже если что-то гуглишь — все время спотыкаешься об С++.


        1. Space__Elf
          31.03.2019 14:45

          Смотря как считать, ведь, те кто знают C++, как правило, знают и C тоже.


          1. staticmain
            31.03.2019 17:09
            +7

            (Нет)


            1. jahr
              31.03.2019 21:54

              Все так говорят, и никто не рассказывает, что же это за тайное знание такое доступно истинным сишникам, многозначительно молчат вместо этого.) Я последний раз писал на Си году так в 2003, после — только на плюсах. И чего же я не знаю про Си, расскажите, мне правда очень интересно?


              1. TheKnight
                31.03.2019 22:10

                В голову пришло несколько вариантов:
                1) Новый стандарты C не во всем совместимы с C++.
                2) В С нет встроенного ООП, поэтому его придется эмулировать, если оно нужно.
                3) Отличаются стандартные библиотеки и задействуемые фреймворки.
                4) Из-за отличия в доступных языковых средствах отличается и образ мышления — это даже в книгах Страуструпа написано.

                Увы, данные языки не входят в мой профессиональный список, поэтому я мог ошибиться в перечисленных фактах.


                1. jahr
                  31.03.2019 22:39
                  +1

                  Я и не говорил, что один и тот же язык.) Я говорил о том, что если среднему плюсовику потребуется написать проект на Си — он сядет и начнет его писать, особо отвественные погуглят сначала отличия в синтаксисе (и эти отличия будут меньше, чем отличия версий плюсов между собой). Т.е. можно считать, что что плюсовик знает и Си. А тем, кто с этим не согласен, хорошо бы как-то подтвердить свое мнение, его можно было считать в какой-то степени верным 15 лет назад, сейчас ситуация сильно поменялась.


              1. DistortNeo
                31.03.2019 22:14

                C не так прост, как кажется:
                en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B

                Ах да, ещё есть стандарт C11, куда добавили ещё больше функционала, несовместимого с C++.


                1. KanuTaH
                  31.03.2019 22:34

                  C не так прост, как кажется:
                  en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B

                  Тут тоже далеко не все различия описаны :) Например, в C вот такое:

                  union U {
                      int i;
                      void *p;
                  };
                  
                  union U foo;
                  
                  foo.i = 100;
                  void *bar = foo.p;
                  

                  вполне валидная конструкция по букве стандарта C, будет выполнен так называемый type punning. В C++ же обращение не к тому элементу union, в который последним производилась запись — это undefined behaviour (но C++ компиляторы, как правило, «эмулируют» поведение C).


                1. jahr
                  31.03.2019 22:54

                  В том-то и дело, что Си от классического C++ отличается меньше, чем версии С++ друг от друга.)

                  На чтение статьи, на которую Вы сослались, уйдет полчаса, и вот он — человек, знающий С.) Сравните с попыткой написать проект на С питонистом или джавистом.)


              1. staticmain
                31.03.2019 22:35

                Я еще не видел плюсовика, который на си писал бы не в с++ стиле, а именно соблюдал бы все отличия С от С++:
                1. Ставил бы .h в названии системных хэдеров
                2. Называл файлы кода.с а файлы хэдеров .h (вообще 99% случаев)
                3. помнил бы о размере пустой структуры
                4. не пытался бы каждый раз писать приведение типов (это вообще выбешивает, особенно если там какая-нибудь `(struct projname_network_input_structure_ppp *)`.
                5. Не пытался бы выдумать ООП на структурах.

                Дальше во время попытки с++ написать что-то на чистых си всегда есть вой по поводу:
                1) нет темплейтов
                2) о боже, тут malloc а не new! что мне делать? Почему я не могу сделать p = realloc(p,...)?
                3) А где исключения?
                4) как тут объявить классы?
                5) << и >> работают не как пайпы, ужос, как вывести на экран? Что значит printf работает до 10 раз быстрее? там же надо форматтеры руками писать!
                6) RTTI?
                7) А почему тут все в одном неймспейсе?
                8) Почему я каждый раз должен писать struct для полей другой struct? (привет, Сбербанк!)
                9) Почему я не могу перегрузить оператор + чтобы он кроме сложения еще варил мне кофе?
                10) Как мне запихнуть методы в структуру? Хочу класс!
                11) А где тут ссылки? Зачем мне указатель? Почему переменная не меняется когда я ее меняю в функции?
                12) Где векторы? Где ? Почему половина моих функий undefined reference? (особенно смешно когда компилятор в с режиме цепляет включенный в начале файла с++ хэдер и все-таки компилирует код)
                13) Почему нет значения по умолчанию в функции?
                14) Почему я должен именовать переменную в функции если я ее не использую? Что это за костыль в виде `(void)aaa'?
                15) Почему я опять могу вызвать main? (редко, но на встроенке бывает полезно)
                16) А где bool? Почему вместо него __Bool, __bool, _Bool, bool_t и прочие?
                17) Что значит я не могу писать type varname где угодно? Зачем мы используем такой старый стандарт? (привет, майкрософт!)
                18) А как тут написать лямбды?
                19) Почему в коде макросы? Нас учили что макросы это плохо!

                Это только малая толика того, что спрашивает типичный с++ программист когда пишет на чистом С.

                Поверьте, отличить плюсовика, который пытается писать на С от того, что специализируется на С очень просто по коду.

                Плюс у сишников (обычно) намного больше знаний по внутреннему устройству процессоров, архитектур, ассемблера, стека, кучи и проч. Много вы знаете с++ программистов, которые делают g++ -s? Или которые знают размер стека? Или может кто-то из с++-программистов задумывается о том, в какой кэш уйдет его `std::vector<std::vector>'? Да даже тех, кто знает в какую объектную кашу превратятся его темплейты в бинаре очень и очень мало. С++ — это про абстракции, а не про быстродействие и работу с низким уровнем. Почему то каждый с++ программист считает что он автоматически знает с. Это не так.


                1. Siemargl
                  31.03.2019 22:54
                  +2

                  Простыня ни о чем. Все изучающие С++ начинают с С-основ.
                  И такие вопросы не возникают в принципе.

                  Но если писать надежный код на С++11/14, основы нужно напрочь отринуть.
                  Вот именно в этом сложность


                  1. staticmain
                    31.03.2019 22:57

                    Все изучающие С++ начинают с С-основ.


                    (Нет)

                    Почти все изучающие с++ начинают сразу с с++ абстракций а не основ работы. Тот же cout в hello world об этом прямо говорит.


                1. Cfyz
                  31.03.2019 22:54

                  По приведенному списку, такой программист и С++ тоже не знает. Или, скорее, вы просто очень неудачно изобразили сарказм, грань между абсурдом и откровенной глупостью очень легко перейти.


                1. KanuTaH
                  31.03.2019 22:55

                  3. помнил бы о размере пустой структуры

                  Это же невалидная по стандарту (по крайней мере C99) штука, нет?
                  A structure type describes a sequentially allocated nonempty set of member objects…


                  1. staticmain
                    31.03.2019 23:03

                    Только начиная с с99. Не все до сих пор его поддерживают. В автогенерированном коде всяких парсеров/обработчиков пустой struct встречается часто (потому что нет передачи данных в конкретной команде, например

                    struct network_command_spl_load_t {
                        struct network_command_header_t header;
                        struct network_command_spl_load_payload_t {
                            uuid_t uuid;
                        } payload;
                        struct network_command_spl_load_answer_t {
                        } answer;
                    }
                    
                    ). При этом sizeof(answer) может использоваться для сериализации\десериализации данных.


                1. jahr
                  31.03.2019 22:56
                  +1

                  Как и предполагалось, С не знают плюсовики из фантазий.)


                  1. staticmain
                    31.03.2019 23:08

                    Я собеседовал 8+ человек на должность «С-программист». Приходили в основном с++-программисты, полагая, что они знают С. Хотя бы 10 пунктов разницы между с++ и с назвали двое. Один ушел через месяц, потому что «с — это сложно, нет абстракций», второй работает до сих пор.


                    1. KanuTaH
                      31.03.2019 23:18

                      Хахаха, а многие, наоборот, считают, что «C++ — это сложнА, потому что много абстракций, шаблоны на шаблоны, перегрузка операторов, вот это вот все».


                    1. jahr
                      31.03.2019 23:20

                      А если бы Вы собеседовали на должность «С++-программист», уверен, Вы удивились бы количеству приходящих с++-программистов, которые не знают С++.) Такова жизнь.)


                      1. staticmain
                        31.03.2019 23:28
                        -1

                        Выше мне написали, что все с++ программисты знают си. Я доказал, что это не так. Знание с++ на 100% сегодня ни от кого не требуется.


                1. DistortNeo
                  31.03.2019 23:34

                  Если начать обучение сначала с C, а затем перейти на C++, то большей части этих проблем не будет. Единственная проблема — код поначалу будет выглядеть как "C с классами", но со временем это пройдёт.


                  А может и не пройти:


                  1. Я всегда ставлю .h в названии хэдеров. То есть пишу "stdio.h" вместо "cstdio".
                  2. Именую файлы ".h" и ".cpp", либо ".hpp" в случае header-only файла.
                  3. Испытываю лютую неприязнь к std::cout и использованию операторов битового сдвига не по назначению, предпочитая printf. Да и в целом не люблю перегрузки операторов.
                  4. Читаю и записываю файлы через FILE ("stdio.h") или нативные функции работы с файлами, но не через iostream.
                  5. Ненавижу явное указание способа приведения типа (static_cast, reinterpret_cast, const_cast), предпочитая C-style cast, в первую очередь, из-за многословности.
                  6. Не люблю неймспейсы в C++ — они сделаны очень неудобно, мне приятнее просто добавить к имени функции префикс.

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


                  1. 0xd34df00d
                    31.03.2019 23:42

                    Читаю и записываю файлы через FILE ("stdio.h") или нативные функции работы с файлами, но не через iostream.

                    Почему?


                    Ненавижу явное указание способа приведения типа (static_cast, reinterpret_cast, const_cast), предпочитая C-style cast, в первую очередь, из-за многословности.

                    Особенно хорошо такое потом рефакторить, ага. Поменяли один из типов, и невинный static_cast превратился в reinterpret_cast.


                    И читать код для ревью хорошо, ведь так просто увидеть тот же reinterpret_cast или const_cast и понять, что на этот код надо обратить пристальное внимание.


                    Не люблю неймспейсы в C++ — они сделаны очень неудобно, мне приятнее просто добавить к имени функции префикс.

                    А что неудобно? Чем префикс лучше кроме того, что его надо набивать будет теперь всегда?


                    1. DistortNeo
                      01.04.2019 01:26

                      Почему?

                      Дело привычки. К тому же, в других языках, которыми я пользуюсь (Pythlon, Matlab), используется fopen/fprintf — подобная семантика.


                      Особенно хорошо такое потом рефакторить, ага. Поменяли один из типов, и невинный static_cast превратился в reinterpret_cast.

                      В большинстве случаев всё очевидно. Например, в случае преобразования типа к float или int. Или преобразования результата выделения памяти (void*) к указателю конкретного типа.


                      А что неудобно? Чем префикс лучше кроме того, что его надо набивать будет теперь всегда?

                      Неудобно, что нет file scope using namespace.


                      1. 0xd34df00d
                        01.04.2019 01:30

                        В большинстве случаев всё очевидно.

                        Это в момент написания кода очевидно (в лучшем случае). Потом при чтении уже не так очевидно.


                        Например, в случае преобразования типа к float или int.

                        Эээ, а у вас там точно UB нет?


                        Или преобразования результата выделения памяти (void*) к указателю конкретного типа.

                        Чё-т мы всё глубже.


                        А зачем вам голый malloc?


                        Неудобно, что нет file scope using namespace.

                        А чем плохо в начале cpp-файла написать using namespace Blah?


                        У префиксов, кстати, тоже нет file scope using prefix. И других using тоже нет.


                        1. DistortNeo
                          01.04.2019 01:55

                          Это в момент написания кода очевидно (в лучшем случае). Потом при чтении уже не так очевидно.

                          Неочевидно — это простыня из AVX-инстринсиков. Ассемблеро-подобная фигня, которую невозможно представить с помощью более высокоуровневых абстракций (оптимизатор нормально не переваривает). А вот каст инта к флоту вполне себе очевиден.


                          Эээ, а у вас там точно UB нет?

                          Где? В преобразовании float к int и обратно?


                          Чё-т мы всё глубже.
                          А зачем вам голый malloc?

                          А кто сказал, что у меня голый malloc?
                          Может, у меня aligned_malloc или отображение файла в память?


                          А чем плохо в начале cpp-файла написать using namespace Blah?

                          Тем, что тогда хочется так писать и в начале h-файлов, а нельзя.


                          У префиксов, кстати, тоже нет file scope using prefix. И других using тоже нет.

                          Да, это проблема.


                          1. 0xd34df00d
                            01.04.2019 02:04

                            Неочевидно — это простыня из AVX-инстринсиков. Ассемблеро-подобная фигня, которую невозможно представить с помощью более высокоуровневых абстракций (оптимизатор нормально не переваривает). А вот каст инта к флоту вполне себе очевиден.

                            Я тоже пишу всякую ерунду, и поэтому мне лишний раз внимание распылять не хочется.


                            Где? В преобразовании float к int и обратно?

                            Ага. В C++ это UB (если, конечно, вы не только преобразуете туда-обратно, но и где-то в промежутке читаете этот объект или пишете в него).


                            Может, у меня aligned_malloc или отображение файла в память?

                            В обоих случаях их надо завернуть как можно быстрее в более типобезопасные обёртки.


                            Тем, что тогда хочется так писать и в начале h-файлов, а нельзя.

                            Будет в модулях.


                            1. DistortNeo
                              01.04.2019 02:24

                              Ага. В C++ это UB (если, конечно, вы не только преобразуете туда-обратно, но и где-то в промежутке читаете этот объект или пишете в него).

                              Это не UB, а обычный static_cast. Я где-то писал про преобразование указателей, когда писал про преобразование float в int?


                              В обоих случаях их надо завернуть как можно быстрее в более типобезопасные обёртки.

                              Так это и есть обёртка, которая возвращает void* или char*.


                              Пример: изображение из POD-пикселей, кусок нетипизированной памяти. Обращение к пикселю — вычисление адреса пикселя в памяти с последующим кастом к типу пикселя. Здесь c-style cast всегда будет reinterpret_cast-ом вне зависимости от типа пикселя. А ещё это, внезапно, не UB (если вы про алиасинг).


                  1. Antervis
                    01.04.2019 11:17

                    Единственная проблема — код поначалу будет выглядеть как «C с классами», но со временем это пройдёт.

                    по своему опыту скажу, что это не проходит. Программисты так и остаются инвалидами, что в си, что в с++. Либо ты жестко разграничиваешь для себя эти языки, либо ты просто плохой с++ программист.


                    1. DistortNeo
                      01.04.2019 12:16

                      Нужно просто больше разнообразного опыта в течение хотя бы пары-тройки лет. За меньшее время C++ нормально не осилить.


                    1. degs
                      02.04.2019 17:17
                      +1

                      По секрету, когда-то С++ вообще не было, а С уже был. И многие из тех кого мы сейчас зовем С++ гуру, и/или создают новые С++ фичи начинали именно с С. У них же как-то прошло?


                      1. Antervis
                        02.04.2019 18:11

                        И много их, этих гуру? Возможно, это конкретно мне так «повезло», но с++ программисты «сишной закалки», которые мне попадались, в основном пишут на си с классами и не особо рвутся изучать/использовать возможности современных плюсов.


                        1. degs
                          02.04.2019 18:15

                          Много, навскидку — Страуструп, и много-много еще.


                1. 0xd34df00d
                  31.03.2019 23:43

                  Что значит printf работает до 10 раз быстрее? там же надо форматтеры руками писать!

                  А вы бенчмаркали?


                  Потому что я, например, бенчмаркал (правда, ifstream vs sscanf). ifstream оказался на десятки процентов быстрее.


                  Хотя, конечно, mmap + boost::string_ref + самописный парсер драл вообще всех.


                1. trolley813
                  01.04.2019 09:23

                  9) Почему я не могу перегрузить оператор + чтобы он кроме сложения еще варил мне кофе?


                  Это боль скорее в Java, а не в чистом Си.


              1. Antervis
                01.04.2019 11:09

                различия между си с с++ в основном даже не языковые (разница сишного подмножества плюсов и си незначительна), у них кардинально различаются подходы к решению одних и тех же задач. Скажем, сравнительно хороший сишный код будет неуместен в с++ репозитории.


          1. graninas
            01.04.2019 10:18
            +2

            Это множество пусто, так как никто не знает С++.


      1. MaM
        31.03.2019 03:00

        Ну не стоит уж так… Откройте к примеру код UE, вполне достойно) Я конечно не люблю холиваров, но тут же никто я думаю спорить не будет что у с++ впрочем как и у си вход покруче питона раз так в 10 минимум


        1. Singaporian
          31.03.2019 08:41
          +1

          Но ведь парадокс Пайтона не заключается в том, что на популярном языке только ужасы пишут. Само собой на всех языках есть достойно и опрятно написанный код и даже целые продукты.


      1. McAaron
        31.03.2019 14:15

        Насчет «Intel (C++)» вы имеете в виду что? Их компилятор c C++? Неплохой, кстати, в нише ia32(e). Индусы, скорее всего, в Микрософте студию пишут.


        1. Singaporian
          31.03.2019 14:28

          Не. Код Интела связанный с продуктом Facebook Terragraph. Я не уверен, что могу рассказывать подробности.


    1. lain8dono
      31.03.2019 05:26
      -1

      Звали? Не знаю на счёт "умнее" в целом, но порог вхождения в ржавчину таки выше, чем в кресты. При этом rust таки проще, но для того, чтоб писать код, требуется знать условно 80% всех фичей. В крестах можно знать 2-3% и уже что-то (относительно) полезное писать. Тяп-ляп и готово. С ржавчиной такое не пройдёт. Ржавчина будет бить тебя по рукам до тех пор, пока ты не научишься писать нормальный код. Грубо говоря И начинающий И средний программист на Rust умнее среднего любителя крестов. А хорошо знающих кресты я не встречал в дикой природе. Как минимум по той причине, что выучить кресты целиком не представляется возможным.


      Я кстати знаю один универсальный способ сравнения уровня инженеров. Его научная ценность сравнима с таковым у парадокса из статьи. Общеизвестно, что все настоящие инженеры смотрят аниме. Даже пресловутый Илон Маск, и тот смотрит (см. твиттер). Вот количество просмотренного и является основным критерием. Это ветка холивара, подходите строго по одному!


      1. tgz
        31.03.2019 07:10
        -1

        Еще среди тех кто пишет на це/цпп много чсвешников вида «да я и так пишу без ошибок». В комьюнити раста все гораздо спокойнее и добрее. Это вообще свойственно людям, ктотрые сами расширяют свой кругозор.


        1. lain8dono
          31.03.2019 13:33

          В комьюнити раста все гораздо спокойнее и добрее.

          Исключительно по той причине, что мы через одного растаманы и растафарианцы. Курнём мануалы, навернём макарошек с котлетками и пишем код.


      1. vchslv13
        31.03.2019 07:41

        Смотрю третий по счёту аниме-сериал в своей жизни — меня уже можно подпускать к коду или нужно ещё поднатореть в ловле панцу-шотов? (А западную мультипликацию можно зачесть хотя бы в соотношении 1 к 2 к аниме?) :)


        1. Bookvarenko
          31.03.2019 13:33

          Только к RenPy. И то, под присмотром.


      1. Neikist
        31.03.2019 12:01
        +1

        Почему то есть у меня подозрение что если бы я вместо 4.5к часов потраченных на аниме потратил на программирование — программистом бы я заметно лучшим был.


        1. oracle_and_delphi
          01.04.2019 07:18
          +1

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


          1. 0xd34df00d
            01.04.2019 15:50

            Программирование не обязано быть работой (даже если на работе вы тоже программируете).


      1. ganqqwerty
        31.03.2019 13:00

        Это если вы один в проекте, то можно на крестах что-то полезное писать. Если проекту куча лет, то там будут и макросы, и триграммы, и лямбды c концептами, и полный диалог поколений. Плюсы — это единственный язык, в котором я после первых четырех лет работы продолжал штудировать книжки по языку.


      1. sumanai
        31.03.2019 13:28

        Вот количество просмотренного и является основным критерием. Это ветка холивара, подходите строго по одному!

        У меня 700+ тайтлов, я сеньор?


  1. vilgeforce
    30.03.2019 23:44

    Все срочно ринутся учить Asm? ;-)


    1. KanuTaH
      31.03.2019 00:01

      По-хорошему, asm нужно учить всем, хотя бы какой-нибудь простенький (типа PDP-11) для лучшего понимания принципов того, как все внутри устроено. Это ИМХО абсолютный минимум. Если есть возможность и желание, то лучше потренироваться и на asm для более современных платформ, в которых есть такие вещи, как кеши, конвейеры, MP с соответствующими механизмами синхронизации, memory barriers, и так далее. Прочесть и понять вещи типа «what every programmer should know about memory», «the floating point guide», вот это вот все.


      1. tyomitch
        31.03.2019 10:13

        PDP-11 — это простенький?!
        Лучше уж MIPS.


        1. KanuTaH
          31.03.2019 10:51

          Ну не знаю. В PDP-11 практически все инструкции поддерживают все имеющиеся виды режимов адресации, в MIPS доступ к памяти — это load/store и только. В MIPS из-за его конвейерной сущности существует такая вещь как branch delay slot, о чем надо помнить. Из-за нее же есть еще всякие веселые вещи, типа как с регистрами HI/LO, требования «подождать две инструкции перед выполнением любой операции, меняющей HI/LO, после чтения из них, иначе в них будет мусор». Пофигу для компилятора, плохо для ручного написания кода.


        1. northbear
          31.03.2019 15:43

          ASM PDP-11 это образец логичности и простоты. После этого понимаешь какой кромешный ад asm 8088/80x86.


          1. tyomitch
            31.03.2019 20:15

            12 режимов адресации — это образец простоты?! Только если сравнивать с 8088/80x86.
            В MIPS — четыре.


            1. Siemargl
              31.03.2019 22:55

              Обычная, косвенная, инкремент/декремент. Факториал 3 это вроде всего 6.


              1. northbear
                31.03.2019 23:23

                Еще косвенная-косвенная и инкремент/декремент для косвенной косвенной… Это получается семь, а поскольку это задаётся для обоих операндов, то можно считать комбинации режимов. Тогда вообще сложность зашкаливает…


            1. northbear
              31.03.2019 23:20

              Для меня простота, когда ты можешь понять что делает программа просто читая восмеричный код. Для вас в количестве режимов адресации? Ну, окей, пусть так.


        1. Jigglypuff
          31.03.2019 16:21

          Я бы рекомендовал 6502 assembly (тот самый, который для NES).
          Он не простой, он элементарный. Набор команд учится за час.
          Если изучать его в связке с архитектурой NES (тоже крайне простой), то в качестве дополнения придет понимание многих концептов, которые в современных процессорах стали в сотни раз сложнее, но содержат ту же самую идею.
          Ну и бонусом — возможность поковыряться в сорцах игр из детства :)


      1. 0xd34df00d
        31.03.2019 23:18

        Но ведь асм не даёт доступа к конвейерам, микрокоду, MESI и прочим и так далее. Как-то, видимо, от понимания асма понимание, как же оно там внутри, не появится


  1. Stepan555
    30.03.2019 23:57

    Весьма спорная логическая цепочка. То, что она сработала для Питона, не означает, что это всеобщий закон жизни.
    Не советую нанимать любителей эсперанто вместо сотрудников владеющих английским.


    1. wtpltd
      31.03.2019 02:42
      +1

      Любители эсперанто достаточно мотивированны, чтобы выучить этот язык. Им нравится выучить язык и использовать его в общении с другими эсперантистами. У них есть опыт по изучению языков и мотивация.
      Вполне вероятно, что они лучше и быстрее освоят необходимый уровень английского, китайского, русского или любого другого, чем Петя шпрехающий на вдолбленном в школе деревянном английском.


      1. Stepan555
        31.03.2019 09:50

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


        1. igorp1024
          31.03.2019 11:42
          +2

          Нужно на хабре ввести фичу: комментарий аргументированно опровергающий постинг. И Ваш комментарий как раз такой!


          p.s. И как логическое завершение Вашего комментария: Вася позже просто уйдёт куда-то ещё, оставив работодателя с экзотическим легаси, которое либо будет переписано, либо работодатель будет долго и безуспешно искать очередного эсперантиста (а те будут крутить носом, т.к., то ЗП не устраивает, то ещё что-то).


          1. ganqqwerty
            31.03.2019 12:57

            Оооо, как же часто это происходило у меня в проектах! Приходишь, а там такие дивные звери…


            1. freecoder_xx
              01.04.2019 14:03

              Ну да, а вам же были нужны роботы. Или рабы. Причем такие, которые уже со школы учили английский/Java/PHP и прочее только для того, чтобы прийти к вам на работу и пилить ваш проект делая деньги вашим боссам за зарплатку. Вот он — идеальный работник. Но человек ли он?


              1. ganqqwerty
                01.04.2019 16:10

                Ну тут вы уже ключевое противоречие капитализма затрагиваете и все говорите правильно. Каждому боссу хочется, чтобы на каждую его вакансию выстраивалась очередь из супер-мотивированных, радеющих за бизнес, а не свою квалификацию исполнительных винтиков. Чем проще винтик заменить, тем приятнее работодателю. При этом радение за бизнес в идеале обеспечивать не солидной долей акций, а воззваниями к профессионализму и болтовней о миссии, чтобы доход владельца не был ничем не ограничен, а зарплату работника диктовал рынок.


        1. AshikTC
          31.03.2019 13:40

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

          Но! Изучение иврита как раз помогло понять структуру и логику языков в целом. Плюс, специальная литература, например того же Эко.


          1. Bookvarenko
            31.03.2019 14:16

            Иврит? А порядок изучения какой? Я таки интересуюсь, чего начинали и чем продолжали?


            1. AshikTC
              31.03.2019 18:56
              +1

              Ходил на курсы в синагогу. Оказался очень простой и математический.


          1. Singaporian
            31.03.2019 14:42

            Распространенный стереотип. Знание иврита не даёт понимание структуры других языков. Хотя бы потому, что структура есть только у иврита и арабского. А у остальных языков невозможно разговаривать, если не знаешь слов — их не нагенерируешь на лету, как в иврите.


            1. Space__Elf
              31.03.2019 14:50

              у остальных языков невозможно разговаривать, если не знаешь слов — их не нагенерируешь на лету, как в иврите

              А можно пример генерации слов? (уж очень это необычно)


              1. Singaporian
                31.03.2019 15:45

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

                В иврите нет гласных. Например: «канал» --> «кнл».
                Но, все же, есть гласные звуки, которые отмечаются согласными. Например, согласная «в» в середине слова становится «о» или «у».
                Пример: корова --> кврвб («в» превращается в «б», чтобы не путали с «в» и не думали, что это звук «о»). Это привело к тому, что во многих языка Бабилон называют Вавилоном, а Бейтлехем — Вифлиемом.

                Есть и много других правил по замене, но они не пригодятся для примера.
                А, и еще один момент: «п» и «ф» — одна и та же буква (кстати, поэтому персы говорят на фарси, а палестинцы и фелистимляне — одно слово).

                Итак, в иврите есть корни слов. Это не глагол, не существительно и не причастие. Просто корень, из которого конструируется любое слово этого смысла.
                Итак, берем комбинацию «с», «п», «р»
                добавляем спереди «л» — получаем инфинитив глагола. лспр (лесапэр — рассказывать). «Л» всегда значит инфинитив.
                Удаляем «л» из глагола и добавляем «м». мспр — (месапэр — рассказываю)
                дальше можно играться префиксами/суффиксами, как и в русском языке, получать прошлые, настоящие и будущие времена глаголов.
                Можно также регулировать направление движения. Глагол «рассказать» для этого не очень удачный пример, но можно посмотреть на примере глагола «хзр». «в» в начале будет значить, что возвращается сам объект: хвзр (хозер — возвращаюсь), а если убрать «в» и вставить «й» во второй слог, то получилось «хазир» — возвращаю какой-то предмет.

                Теперь посмотрим на существительные.
                Добавляем «в» — получаем существительное. спвр (сепур — рассказ)
                Двигаем «в» вперед — получаем новое существительное. свпр (софер — рассказчик, писатель).
                Убираем все «в» и получаем еще существительное — сфр (сефер — книга)
                Выкидываем предыдущие и добавляем «й» — это будет «сфрй» (сефрия — библиотека).

                Все эти слова, по сути, можно не знать. Например, если есть желание сказать объединение сущностей, то лучше пойти по последнему варианту (сефрия), а если маленький предмет, то скорее всего угадаете, если уберете все гласные (сефер). Человек — лучше подставить «в» в первый слог. Результат глагола — во второй слог.

                Ну, правда, на все на это есть исключения, но не думаю, что много.
                Наверно плохо объсянил, но как умел))


                1. Space__Elf
                  31.03.2019 16:36

                  Необычно и круто!


                1. DaneSoul
                  31.03.2019 17:20

                  Очень интересно!
                  Возникли вопросы по отсутствующим гласным.
                  1) А как угадать пропущенные гласные? Можно ли это сделать для слова, которое не знаешь (как в русском — смысла слова не понял, но произнести могу)?
                  2) Часто ли возникают коллизии, когда на письме одинаково, а прочитать можно с разными гласными и получить разный смысл?


                  1. Singaporian
                    31.03.2019 17:50
                    +2

                    1. Гласных по сути три э/а + и + о/у. Отсутствие подпорки согласной означает э/а. Подпорка «в» — о/у. Подпорка «й» — и.
                    Через дробь написал потому, что не важно как вы произнесете эту гласную. В иврите голобь, голубь, гулобь и гулубь прозвучат одинаково и никто не заметит разницы.
                    Единственное спорное место — отсутствие гласной вообще. Например «хбр» можно прочитать как «хабр», «хавар» или «хвар».

                    Вообще, в школьных учебниках есть, так называемые, огласовки. Они помогают точно определить звук. Взрослые делают это машинально и огласовки только сбивают с толку.
                    Огласовка выглядит как точки и черточки по краям букв (снизу, сверху, слева или внутри): ????? ???????

                    Это что-то из серии image

                    2. Про коллизии — часто. Но это больше межкультурная разница.

                    Западные люди (все от Ванкувера до Хабаровска) очень щепетильно относятся к высоте регистра букв и звучанию гласных. В германской группе — еще и согласных. Также, как китайцы щепетильно относятся к тону. Даже если в русском языке «молоко» стало «малако», то все равно все одинаково его произносят. Произнесешь чуть иначе и вызовешь недоумение.

                    Израильтяне/арабы/персы не знают о существовании этих тонкостей. Им просто пофиг. У меня друг живет на улице Соколова (есть такая в Тель Авиве). Так эти дикари пишут ему во всех документах про какого-то Суколова. Это как ловец орлов, только ловит не орлов.

                    Или вот в России есть беда полицейских. У них какой-то трэш с ударениями: «дело было возбу?ждено». Но они стандартно так говорят, одинаково. В иврите же каждый ставит ударение, где хочет — по настроению. Один и тот же человек может в разные дни поставить разные ударение на одно и тоже слово.

                    Кроме того, род существительных тоже не важен. Можно сказать «два шекеля», можно «две шекеля» — их такие мелочи не волнуют. Редко кто следит за стандартами. Из-за этого у некоторых существительных род вообще был утерян с течением истории — «сакин» (нож).

                    Поэтому гласные — это такая мелочь)))))


                    1. Singapura
                      31.03.2019 21:31

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


                  1. tyomitch
                    31.03.2019 20:40
                    +1

                    1) Чаще нет, чем да. В газетах в незнакомых читателю словах (например, иностранных фамилиях) пишут огласовки, а когда нет — то возникают конфузы: есть легенда, что когда российским премьером стал Фрадков, и его фамилия ещё не была на слуху, то диктор новостей прочитал её как «Пердаков».
                    2) Слов-омографоф в обиходе навалом, но чаще всего контекст позволяет их без труда различить. Любимый пример моего преподавателя: «бастовала» и «который/ая в чае» на иврите пишутся одинаково, но вряд ли есть хоть один контекст, в котором их можно спутать. Одно из любимых ивритскими филологами развлечений — создавать такие предложения, которые можно прочесть дюжиной разных способов, и чтобы каждый способ был грамматически правильным.


                1. tyomitch
                  31.03.2019 20:29

                  Также оно работает и в обратную сторону, «б» при сдвиге в начало превращается в «в» — вилон (занавеска).

                  Ээ, какая первая буква в слове ??????

                  Edit: и дальше примерно в каждой строчке по ошибке… Не надо так.


                  1. Singaporian
                    31.03.2019 20:35
                    +1

                    Буква «вав».
                    Поторопился и опечатался в одной букве.
                    Так правильно:

                    Также оно работает и в обратную сторону, «о» при сдвиге в начало превращается в «в» — вилон (занавеска).


                    Другие ошибки иногда намеренные, чтобы упростить (типа как в сифрие надо еще хэй добавить — поднадобится целая история почему).


                    1. tyomitch
                      31.03.2019 20:58

                      Иногда намеренные, иногда сбивающие с толку («хазир» — это совсем не «возвращаю какой-то предмет»), иногда распространяющие заблуждения (Вифлеем и Вавилон стали так называться в греческом, и оттуда такими пришли в русский; к ивритской письменности это никакого отношения не имеет.)


                      1. Singaporian
                        31.03.2019 21:07

                        А греки перепутанную букву откуда взяли по вашему? Из японского чтоли? Иврит — оригинал названия. И буква «бэт/вэт» стоит в «бейт лехем».

                        «хазир» — это совсем не «возвращаю какой-то предмет»

                        Я не стал ставить «тав» спереди, чтобы не взровать мозг людям. Понятно, что хазир — это свинья. Но я использовал это как краткий приказной тон, чтобы было просто понять.
                        Но может вы сами тогда сделаете лекцию на 1000 страниц, чтобы объяснить все правильно?


                        1. tyomitch
                          31.03.2019 21:12

                          Греки звук «б» записывали своей буквой «бета», а потом за тысячу лет её звучание в греческом изменилось — во всех словах, а не только в заимствованных из иврита — на «в», каковым остаётся и поныне.


                          1. Singaporian
                            31.03.2019 21:14

                            А, ну возможно. Я не знал.


                        1. Sychuan
                          01.04.2019 16:16

                          Иврит — оригинал названия.

                          С какой стати иврит оригинал Вавилона? Это аккадское слово.


                          1. Singaporian
                            01.04.2019 17:32

                            Про Вифлием сказал, а не Вавилон. Я же подписал:

                            И буква «бэт/вэт» стоит в «бейт лехем».


                1. ainoneko
                  01.04.2019 15:04

                  Но, все же, есть гласные звуки, которые отмечаются согласными. Например, согласная «в» в середине слова становится «о» или «у».
                  Настоящие занудыспециалисты считают, что это уже не буква, а огласовка (которая обозначается тем же символом ?\_(?)_/? ).
                  Более интересно, что эта самая «в» (когда она означает "&" ) иногда (перед некоторыми согласными) произносится «у».

                  Итак, берем комбинацию «с», «п», «р»

                  Теперь посмотрим на существительные.
                  Добавляем «в» — получаем существительное. спвр (сепур — рассказ)
                  Двигаем «в» вперед — получаем новое существительное. свпр (софер — рассказчик, писатель).
                  Убираем все «в» и получаем еще существительное — сфр (сефер — книга)
                  Выкидываем предыдущие и добавляем «й» — это будет «сфрй» (сефрия — библиотека).
                  Ещё же «сифрА» (цифра) с тем же корнем?


                  1. tyomitch
                    03.04.2019 13:00

                    Настоящие занудыспециалисты считают, что это уже не буква, а огласовка (которая обозначается тем же символом ?\_(?)_/? ).

                    Всё ещё хитрее: буквами считается всё то, что было в Священном Писании изначально, а огласовками — всё то, что добавили позднее для удобства чтения.

                    Поэтому, например, во фразе ??? ??? первый вав — это буква, а второй — огласовка, даже хотя они пишутся одинаково и читаются одинаково.


                1. Sychuan
                  01.04.2019 16:15

                  В иврите нет гласных. Например: «канал» --> «кнл».

                  там есть гласные. Просто они не обозначаются на письме. Или обозначаются теперь с помощью огласовок.
                  Это привело к тому, что во многих языка Бабилон называют Вавилоном, а Бейтлехем — Вифлиемом.

                  Читается как Б и как В оно по причине того, что было заимствовано разными путями, ну и в разные языки, конечно. Иврита в те времена в Европе особо никто не знал. Все из греческого ???????, что на Западе, что на Востоке. Ну в России через церковнославянский из Византии, а в Западной европе сказалась латынь.
                  А, и еще один момент: «п» и «ф» — одна и та же буква (кстати, поэтому персы говорят на фарси, а палестинцы и фелистимляне — одно слово).

                  Это опять таки никак не относится к ивриту. Или вы думаете Федор и Теодор тоже из-за иврита? Просто некоторые звуки из греческого в русском языке обозначались буквой ф ( особенно, учитывя, что чисто славянских слов с таким звуком не было).
                  Итак, в иврите есть корни слов. Это не глагол, не существительно и не причастие. Просто корень, из которого конструируется любое слово этого смысла.

                  Это так в любом языке.
                  Берем корень -бег- и добавляем к нему приставки, суффкисы и окончания и поучаем убежать, бежать, бегал, прибежал, бежавший, бегущий, выбегший, прибежавший и т.д. Их тоже не нужно знать, они формируются сами. потому что люди знаю смысл приставок и способы их применения бессознательно.
                  Хотя бы потому, что структура есть только у иврита и арабского. А у остальных языков невозможно разговаривать, если не знаешь слов — их не нагенерируешь на лету, как в иврите.

                  Я не знаю, что такое ваша структура, но она есть у всех языков. И слова все время генерируются в любом живом языке на лету. Например, когда английское заимсвование хайп получает суффикс инфинитва хайпить. Также и в анг. языке из существительных делаются легко глаголы и так далее.


                  1. Singaporian
                    01.04.2019 18:26

                    там есть гласные. Просто они не обозначаются на письме. Или обозначаются теперь с помощью огласовок.

                    А прочитать дальше? Я об этом сказал.
                    Ctrl+F: «Вообще, в школьных учебниках есть, так называемые, огласовки»

                    Это опять таки никак не относится к ивриту. Или вы думаете Федор и Теодор тоже из-за иврита? Просто некоторые звуки из греческого в русском языке обозначались буквой ф ( особенно, учитывя, что чисто славянских слов с таким звуком не было).

                    Греческая письменность и звучание букв не родились сразу готовыми. Они были унаследованы из финикийского письма. Как раз из Египта. Поэтому финикийское письмо и арамейское (иврит, арабский) очень родственны.

                    Берем корень -бег- и добавляем к нему приставки, суффкисы и окончания и поучаем убежать, бежать, бегал, прибежал, бежавший, бегущий, выбегший, прибежавший и т.д.

                    Об этом я писал. Ctrl+F: «дальше можно играться префиксами/суффиксами, как и в русском языке»
                    Но еще я писал о том, чего нет в других языках. Пожалуйста читайте внимательнее.


                    1. Sychuan
                      01.04.2019 21:58

                      А прочитать дальше? Я об этом сказал.

                      Вы написали, что в иврите нет гласных. Это не так. Даже когда огласовок не существовало, тысячу лет назад или раньше, гласные там все равно были. Учебники тут совершенно не при чем. В иврите нет букв для обозначения гласных звуков. Ну в большинстве языков нет букв для каких-то звуков, или звуки обозначаются комбинациями букв.
                      Греческая письменность и звучание букв не родились сразу готовыми. Они были унаследованы из финикийского письма. Как раз из Египта. Поэтому финикийское письмо и арамейское (иврит, арабский) очень родственны.

                      Звучание греческих букв родилось из греческого языка. Египет тут никакого отношения не имеет. То же самое со славянскими языками. Изначально были буквы, которые были заимствованы из греческого, но никакого соответствия к славянским языкам не имели. Такие буквы исчезли. Наоборот, другие буквы пришлось ввести, чтобы обозначить Б и Ж, например.
                      Они были унаследованы из финикийского письма.

                      Они действительно были унаследованы из финикийского письма. Только иврит тут никаким боком. Вы что думаете, греки от евреев заимствовали алфавит и письменность?
                      Как раз из Египта.

                      Это финикийцы развили свой алфавит на основе египетского письма.
                      Поэтому финикийское письмо и арамейское (иврит, арабский) очень родственны.

                      Ну да, евреи тоже заимствовали у финикиян свою письменность. Все это семитские языки, народы которые жили близко, да и языки у них похожи. Но вообще говоря почти все алфавиты происходят от финикийского, кроме там корейского какого-нибудь.
                      Ну вот я не вижу, примеров особенности иврита. Точнее особенностей в нем много, но особенности есть в любом языке. И «структура», как вы говорите, которая позволяет образовывать слова, тоже есть в любом языке. Хоть в монгольском, хоть у инуитов.


                      1. Singaporian
                        01.04.2019 22:42

                        Вы написали, что в иврите нет гласных. Это не так. Даже когда огласовок не существовало, тысячу лет назад или раньше, гласные там все равно были. Учебники тут совершенно не при чем. В иврите нет букв для обозначения гласных звуков. Ну в большинстве языков нет букв для каких-то звуков, или звуки обозначаются комбинациями букв.

                        Я именно это и написал. Нет гласных букв и никогда не было. Есть огласовки, которые не используются. Вы вообще читать умеете?

                        Все остальные аргументы по точно также лишь демонстрируют ваше неумение читать.


                  1. tyomitch
                    03.04.2019 13:06

                    Это опять таки никак не относится к ивриту. Или вы думаете Федор и Теодор тоже из-за иврита? Просто некоторые звуки из греческого в русском языке обозначались буквой ф ( особенно, учитывя, что чисто славянских слов с таким звуком не было).

                    При всём уважении, приведённые Singaporian примеры с п/ф «исказились» не в греческом, где различие п/ф вполне есть, а в арабском, где его нет.


                1. degs
                  02.04.2019 17:42

                  Невыносимо зачесалась рука лежащая на мышке, захотелось написать парсер/генератор создающий по произвольному набору согласных весь возможный зоопарк существительных/глаголов/наречий/и что там еще бывает. Успокойте меня, это кто-то уже сделал?


        1. alaudo
          31.03.2019 20:10

          В ваших рассуждениях я вижу несколько ошибок:
          1) во-первых, Петя вряд ли учит английский уже хорошо зная китайский и французский и понимая, что ему в его (инженерной) работе понадобится английский. Скорее всего английский — это первый язык, который он учит, потому что понимает, что он нужен для общения с потенциальными заказчиками и документации. Вася же, который учит эсперанто, вряд ли учит его для общения с эсперантистом Джоном или для того, чтобы прочитать документацию на нем для эзотерического языка. Он, скорее всего, уже знает английский, и учит теперь другой язык из интереса.

          2) во-вторых, это было бы верно, если бы выучить английский и эсперанто было бы одинаково просто. Но на самом деле если для изучения английского материалов и курсов полно на каждом шагу, то для изучения эсперанто нужно по крайней мере немного напрячься, чтобы найти учебные материалы. Найти курсы «вживую» здесь вообще малореально. Поэтому если Вася выучил эсперанто, значит что он приложил в несколько раз больше усилий, чтобы это осуществить, чем Петя, который просто записался на курсы недалеко от работы.

          3) ну и в третьих, зачем, собственно Петя и Вася учат эти языки? Петя — как Вы правильно написали, учит его «для работы», чтобы иметь лучшие шансы в карьере. Вася же хочет разобраться в самих языках, в их устройстве, в том, как они функционируют. Для работодателя Петя, наверное, будет более интересен как «рабочая лошадка», но Вася, скорее всего, рано или поздно выбьется в архитекторы или CTO, потому, что понимает не только в рамках своей технологии и стеке.

          Теперь замените «английский» и «эсперанто», на, скажем, Ява и Эликсир — и сравните :)


          1. DaneSoul
            31.03.2019 22:16

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


            1. Areso
              31.03.2019 22:55

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


            1. alaudo
              01.04.2019 08:10

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


              Опять таки, а почему Вася решил вдруг учить эсперанто? Из-за того, что он проще английского? Вряд ли. Как он про него вообще узнал? Наверное были какие-то другие цели. Вот это и интересно!


              1. oracle_and_delphi
                01.04.2019 09:23

                При желании выпендриться, я бы на месте Пети учил ифкуиль! Очень красивый язык!
                image


                1. alaudo
                  01.04.2019 11:20

                  Вы пробовали его сами? Или просто быстро поискали в Интернете.

                  Ифкуиль исходно был создан с целью быть как можно более сложным или нелогичным, а также как можно более коротким. Говорить и писать на нем сложно, и это специально так. Поэтому для чего его учить? Если хочется такой экзотики, то вполне можно выучить Клингон.

                  Я так понимаю тут не суть в «выпендриться», а в том, чтобы изучить что-то необычное, но полезное. Если брать что-то еще более необычное, то тут надо скорее идти в сторону логлана/ложбана, чем ифкуиля…


                  1. oracle_and_delphi
                    02.04.2019 07:39

                    В чём полезность знания эсперанто?
                    У ифкуиля хотя бы письменность выглядит реально прикольно.


                    1. Bookvarenko
                      02.04.2019 10:53

                      Главное — надписи на майках проверять. На всякий случай.


          1. Stepan555
            01.04.2019 12:48

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


    1. Gorthauer87
      31.03.2019 10:01
      +1

      Но вообще, судя по отзывам HRов, таки Rust специалистов проще искать, чем плюсовых, обычно если кто-то прошел первичный фильтр, то он почти точно толковый парень, а не просто кто-то, кто вызубрил руководство "как пройти собеседования на плюсы".


      1. Space__Elf
        31.03.2019 14:57

        Потому что современный C++, из-за пухнущего стандарта, всё больше и больше превращается в PL/1, стандарт которого был настолько необъятно распухший, что мало кто знал и половину того, что в стандарте.


        1. sshikov
          31.03.2019 18:14

          Вообще-то PL/1 был довольно простой язык. И да, если что — я на нем лет 10 программировал.


    1. freecoder_xx
      01.04.2019 14:09

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


  1. avost
    31.03.2019 01:48

    Знаю Рапиру и Algol-60 :). Ну, знал когда-то… А ещё этот, Quasic!


    1. Bookvarenko
      31.03.2019 02:05
      +2

      Алголец? Скажи что-нибудь на алгольском.


      1. nochkin
        31.03.2019 07:20

        «Error»


        1. nsmcan
          31.03.2019 08:26
          +1

          «Еггог» же!


          1. nochkin
            31.03.2019 21:37

            Верно. Это уже «локализация».


  1. plustilino
    31.03.2019 07:12

    Уместны ли вообще параллели между 2004 и 2019-м? Тогда «зоопарк технологий» был меньше. Сейчас проблема — как не заблудится в этом разнообразии языков, движков, фреймворков, моделей.


    1. prospero78su
      31.03.2019 08:36

      Не вижу никаких проблем в этом плане. После того, как узнал про Оберон и вижу новый язык, задаю себе один и тот же вопрос: «На сколько это хуже Оберона?». Шкала, в которой точка начала отсчётов — Оберон. Пока в ней находится только сам Оберон. Возможно появится ещё что-то, но похоже это будет просто другая реализация Оберона))


      1. faoriu
        31.03.2019 09:05

        А Smalltalk?


        1. prospero78su
          31.03.2019 11:45

          Это не язык промышленного программирования. По крайней мере, написать ПО для атомной станции на Smalltalk или части ПО боевого самолёта, при этом успешно использовать в обучении программированию школьников — даже близко не представляю себе как.


          1. faoriu
            31.03.2019 11:56
            +1

            Не знаю насчёт атомной станции или самолёта (на Oberon вроде такое тоже не пишут), но промышленно Smalltalk вполне применяется


            1. prospero78su
              01.04.2019 13:51

              Заблуждаетесь. На Обероне такое пишут. Ну, и банковское ПО тоже написано (есть солидные прецеденты).


              1. faoriu
                01.04.2019 16:41

                А можно пруфы насчёт самолётов и атомных станций?


                1. prospero78su
                  02.04.2019 08:34

                  Посмотрите проект «Информатика в 21 веке». На Тытрубе ищите «День Оберона в России» (практически в каждой конференции)


                  1. faoriu
                    02.04.2019 11:56

                    А можно просто ссылку на список конкретных проектов?


                    1. prospero78su
                      03.04.2019 08:19

                      Удивляюсь лени людей. Начните отсюда:Проект «Информатика в 21 веке»
                      По перекрёстным ссылкам найдёте достаточно полезной информации. Ссылку на соответствующую тему в «Королевстве Делфи» я Вам не дам. Уж потрудитесь найти сами, если Вам правда так интересно.


      1. Siemargl
        31.03.2019 09:59

        Ну эта псевдохоливарная статья как раз против такого стагнационнного подхода =)


        1. prospero78su
          31.03.2019 11:50
          +1

          Статья про то, что python более динамичный, чем Java. Для работы с первым легко писать код, и по сути — эта скорость отучает думать. История с Боингом — как раз из этой оперы. Сколько бы не применялся Оберон — я не помню ни об одном фейле связанным с ним. С python и Java таких косяков — тыщи. Начиная от ошибок в базовых библиотеках, утечках памяти, подмены кода зловредами, заканчивая подделкой результатов тестов.
          Что касается «стагнационного подхода» — если Боинги и дальше будут падать, то я за такой «стагнационный подход».


          1. faoriu
            31.03.2019 15:46

            А разве в MCAS была программная ошибка?


          1. Fenzales
            31.03.2019 16:30
            +1

            История с Боингом — как раз из этой оперы.
            В каком месте?


          1. 0xd34df00d
            31.03.2019 23:22

            Сколько бы не применялся Оберон — я не помню ни об одном фейле связанным с ним.

            Vacuously true?


            Ну не все же

            хаскелистам шутеечки про «не нужно» слышать.


      1. bm13kk
        31.03.2019 16:38

        не боитесь начать холивар как было в поседних двух статьях об обероне?

        Потому что в этом и следующем комментарии есть признаки всех вещей, которые критиковали в тех статьях.


      1. Semy
        31.03.2019 19:22

        Вы слишком часто повторяете «оберон»…


  1. stalker1984
    31.03.2019 10:30

    Сложно сказать насчёт умнее или нет (это вообще очень субьективно, вы вот знаете всех участников «дом-2» или прочей фуфлогонии, а тётя Люся с кассы «пятёрочки» знает). Но что точно могу сказать, так это то что на питоне прям залипаешь на часы, и каждый баг прям расковыриваешь до подкапотного пространства. С Сями такого небыло.


    1. Alexey2005
      31.03.2019 13:22

      Ну да, когда вываливается километровый стектрейс, увенчанный UnicodeDecodeError, тут и вправду залипнешь на часы, разбираясь — то ли в исходниках где-то встретился левый символ, то ли с сервера прилетело что-то в экзотической кодировке, то ли где-то в самой программе случилось неправильное перекодирование.


      1. ganqqwerty
        31.03.2019 13:27

        кстати, как там дела с кодировками в питонвилле в 2k19? Все уже перешли на Python 3? Или в Python 2 впилили нативный юникод с объявлением всех библиотек, что его не поддерживают deprecated? Или все на тай же стадии, что и было в 2008, а Патриарх клянется, что начиная со следующего года все точно перейдем на тройку?


        1. pesh1983
          31.03.2019 15:21

          Там все отлично) py2 почти deprecated, а в py3 пополнении последних версий все сделали для того, чтобы не заморачиваться с кодировкой


  1. Anshi85
    31.03.2019 10:45

    Не могу сказать что либо про зависимость интеллекта программистов от конкретного языка программирования, но то что Python мне лично очень нравится это правда, он мне доставляет удовольствие, но проблема в том, что в моем городе вакансии под него нет, есть C#, Java, JS. обидно.


    1. hatman
      31.03.2019 11:08

      Не только в твоем городе нет работы на Python =(


  1. hatman
    31.03.2019 11:02

    1) Если человек учит какой-то непопулярный язык, ему либо по кайфу учить такие языки, либо он преследует какую-то узкоспециализированную цель, которую почему-то нельзя выполнить на «стандартном» языке (и человек уже копает).

    2) Если человек пишет на языке, который еще не оброс литературой, документацией и прочее, то человек явно залез в его кишки и стал разбираться в нем гораздо лучше, чем обычный программист который учит апи платформы, с которой он будет работать.

    3) Имеет ли это какую-то коммерческую ценность? — Нет! Если ты выбираешь непопулярный стек, ты достаточно быстро тратишь весь трудовой резерв, после этого тебя ждут удивительные мероприятия, как нанять людей на язык, платформу, который нафиг никому не нужен в текущий момент (привет Wriketeam с их Dart и mail.ru с их perl)

    4) Целесообразно нанять в команду 1-2 крутых разраба-архитектора, а все остальные слоты занять смышлеными джунами и качественными мидлами. Так и код будет качественным и никто жаловаться на рутинные задачи не будет.


    1. salas
      31.03.2019 13:35

      выбираешь непопулярный стек… mail.ru с их perl

      !?


      1. hatman
        01.04.2019 04:32

        Да часть сервисов в mail.ru пишутся на perl — и они активно переучивают людей на перл.


        1. salas
          01.04.2019 12:28

          А эта часть не имеет непрерывной связи с той эпохой, когда никому в голову не пришло бы назвать Perl непопулярным?


    1. Tangeman
      31.03.2019 14:40

      которую почему-то нельзя выполнить на «стандартном» языке

      А какой язык является «стандартным»? Это понятие, как мне кажется, сильно зависит от компании, индустрии и ещё кучи переменных. Где-то это Java, где-то C/C++, где-то даже Visual Basic, в NASA, к примеру, в своё время был довольно популярен явно «нестандартный» Forth.

      Есть достаточно проектов в которых важен факт выполнения функции, а не стек или язык, которые создаются один раз и работают годы или даже десятки лет, или наоборот, с коротким сроком жизни, практически не требуют поддержки кода (потому что всё самое критичное вылизывается до их введения в прод) — соответственно, совершенно несущественно, какой язык выберет исполнитель.


    1. 500rur
      31.03.2019 14:53

      Коммерческая ценность есть — при условии, что язык «взлетит». Это как покупка акций стартапа.


    1. CheatEx
      31.03.2019 19:49
      +1

      > как нанять людей на язык, платформу, который нафиг никому не нужен в текущий момент
      Тут недолго остаётся до включения мозга и заполения вакансии не базвордами и аббревиатурами, а целями проекта и актуальными задачами. UNACCEPTABLE!!!


      1. hatman
        01.04.2019 04:33

        Это все круто, но у человека всегда в голове есть мысль.

        Ну пишу я условный проект на delfi/dart/haskel — ну допишу я его, ну разорится компания, ну уволят:

        — куда я дальше пойду с этим опытом.
        — смогу ли я претендовать на топовую зп
        — и прочее

        И всегда непопулярный стек проигрывает популярному по этим параметрам.

        P.s. или что, вы хотите жить вечно? ©


        1. CheatEx
          01.04.2019 12:40

          Опыт это внезапно решнные задачи, а не зазубренные приколюхи стандартной бибилотеки Джавы или Хаскеля.

          Представляете себе продажника который переживает что из за покупки нового мобильника он не найдёт новую работу? Весь опыт то был на старой моторолле.


          1. Neikist
            01.04.2019 12:55
            +1

            Ну тем не менее знание SDK, фреймворков и либ позволяет задачи решать быстрее. Говорю как человек недавно сменивший стек. Я вижу и знаю что задачи я вполне решу, в чем то даже качественней коллеги который имеет кучу опыта с SDK но не работал на долгих проектах, но я это делаю заметно медленнее ибо по многим вещам сначала нужно лезть в доку и статьи где нибудь на medium чтобы понять как делать правильнее или просто как делать.


          1. vedenin1980
            01.04.2019 13:14

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

            Я знаю продажников, которые переехав из России в Германию или Францию, очень долго не могли найти работу (неидеальноое знание немецкого/французкого, разный менталитет, разные законы и т.п.). Даже просто крутой специалист по продажам страховок, вряд ли моментально сможет зарабатывать столько же или больше на продаже строительной техники, к примеру (так как очень много разной специфике в каждой области, разные подходы/связи и т.д.).

            Все-таки смена мобильника это ближе к замене одного ноутбук на другой (с той же OC) у программиста, чем смена стека.


  1. Paskin
    31.03.2019 11:46
    +1

    Был два раза в такой ситуации. Первый раз — не стали писать на Эрланге, потому что проект должен был расти и расширяться — а найти к двум имеющимся эрлангистам третьего-четвертого было бы трудно. Второй — начальство повелось на Руби с рельсами, для которого в то время вполне хватило специалистов — только почему-то специалисты эти так всех достали спорами про «Руби-way», что проще оказалось их выгнать и переписать все на Java


  1. ganqqwerty
    31.03.2019 12:54
    +1

    Тут есть и другой парадокс. Чем более гиковский у тебя программист, тем с большей вероятностью он заскучает от унылых требований вашего бизнеса и унылого стека, на котором ваш бизнес пишет. Скучающий программист в проекте, где не надо быть Леонардом да Винчем, а надо просто сесть и реализовать какую-нибудь интеграцию с LDAP (подставьте сюда свою любимую банальную, скучную и очень нужную задачу) — это страшная вещь, скажу я вам.
    Он потащит в проект микросервисы с Open Shift'ом, Scala и будет рассказывать, что ваши закупки лучше всего организовать в граф на neo4j или, боже упаси, RDF c онтологиями.
    Он найдет, где реализовать паттерн «Лексема» и будет супер-логично объяснять, что импортировать готовый WYSIWYG редактор для формочки обратной связи ни в коем случае было нельзя.
    Он будет оптимизировать и профилировать какой-нибудь reflow на фронтенде, чтобы добиться увеличения производительности на 0,003 мс, потому что профилировать reflow — весело и интересно и квалификация повышается, а фигачить очередную формочку — скучно и надо, чтобы ваша система закупок табачного оборудования нормально фурычила.

    Заголовок спойлера
    image


    1. varanio Автор
      31.03.2019 14:16

      Имхо неправильно считать, что гик — это чокнутый фанатик. Он может просто интересоваться чем-то вокруг


      1. ganqqwerty
        31.03.2019 18:23
        +1

        Скучающий гик — это не чокнутый фанатик, а (с точки зрения бизнеса) опасный маньяк-поджигатель! Он — настоящее воплощение термина overqualified, он был создан для того, чтобы раскатывать фолдинг белка по миллиону серверов, ну или хотя бы лайки в фейсбуке. Однако он то ли еще не понял этого, то ли не дотянул по квалификации, а потому вместо того, чтобы работать в Google X, сидит и ковыряет очередную систему организации сотрудников в каком-нибудь аутсорсе. Если над ним есть скучный архитектор с потухшими глазами, то может быть, ему не удастся взорвать вашу конторку, внедрив в нее Elm с ReasonML'ем и Closure, и ущерб ограничится только тем, что он доработает вашу спрятанную за восемью кликами гостевую книгу, сделав ее на двух микросервисах и организовав из них onion-архитектуру.


        1. CheatEx
          31.03.2019 20:00

          А у Вас есть теория относительно того зачем гугл их так усердно собирает?


          1. ganqqwerty
            31.03.2019 20:02
            +1

            Думаю, что у них есть методика, заимствованная откуда-нибудь из коневодства, когда дикого программиста получается «объездить». Либо просто задачи соответствующего их квалификации уровня.


            1. Siemargl
              31.03.2019 23:00

              Отличная идея. Но есть альтернативная практическая трактовка:
              -«Солдат думать не должен, солдат должен выполнять приказ (с)


          1. Singapura
            31.03.2019 23:20
            +1

            Там живут спецы выросшие на повести Айзека Азимова. Профессия
            ru.wikipedia.org/wiki/Профессия_(повесть_Айзека_Азимова)


          1. Crafter2012
            01.04.2019 11:31

            Можно предположить, что первый программист гугла(Сергей Брин) был таким. И второго программиста он нанял по образу и подобию своему, так зародилась традиция, ставшая политикой найма)


  1. Zanak
    31.03.2019 13:32

    У автора спорное, а возможно и ошибочное, мнение.
    1. Есть языки, которые уже стали историей, что не отменяет достоинств, которые у них были. Бейсик, foxpro, pascal, haskell, ocaml, fortran, algol… Кто — то ушел совсем, другие осели в специализированных нишах, третьи живут только благодаря преданным поклонникам. Стоит ли делать далеко идущие выводы, если в резюме стоит один из таких раритетов? Только очень сильно подумав.
    2. Есть языки, которые появились слишком недавно. Что можно сказать о человеке, который указал в резюме язык, известный только паре — тройке сотен товарищей? Ничего! Перед тобой может быть гений, а может и чудак, любящий все, что странно выглядит. В любом случае, я бы воздержался от приема такого человека на работу.
    3. Даже в случае мэйнстрим языков, все не так однозначно. Гуру веб разаботки на java или C# конечно же сможет освоить python или php, но я обязательно спросил бы, что его подвигло это сделать.


    1. staticmain
      31.03.2019 17:16

      Есть языки, которые уже стали историей, что не отменяет достоинств, которые у них были.

      fortran

      Фортран еще нас с вами переживет. Недавно вышел новый стандарт.Часть NASA'вского софта все еще фортран. Матбиблиотеки для моделирования сопромата все еще в большей степени фортран (матлаб на сях переписали с фортрана, но часть либ все еще он самый)


    1. 0xd34df00d
      31.03.2019 23:27
      +1

      В одном ряду бейсик и foxpro вместе с окамлем и хаскелем — это, гм, как-то странно.


      1. Zanak
        01.04.2019 13:34

        Все они были придуманы давно, и сейчас:
        — не используются совсем (на сколько я знаю, бейсик перестали использовать при преподавании программирования, как и чистый паскаль),
        — используются редко и для довольно специфичных вещей (вы часто видите вакансии на ocaml или haskell?)
        — используются гораздо меньше, чем в пору их рассвета, или их использование ограниченно отдельными областями (сходу foxpro могу припомнить только в поделках от ФНС, а было время, когда разработчики на нем пользовались хорошим спросом. с паскалем та же история. delphi разработчики время от времени еще требуются, но это совсем не те объемы, что были во времена 3-7 версий. Ada разработчик, персонаж вообще редкий, почти мифический, хотя сам по себе язык вполне живой)
        Изучать эти языки сейчас вполне возможно. Только я бы внимательно прислушался к мотивации интересующихся, приди мне в голову желание нанять людей с такими позициями в резюме.
        Если развернуть мою мысль, то она звучала бы как — то так.


        1. 0xd34df00d
          01.04.2019 15:58

          Все они были придуманы давно

          Хаскель примерно одногодка C++ и Python. Окамль помладше, да.


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

          Это, ну, не совсем так.


          используются редко и для довольно специфичных вещей (вы часто видите вакансии на ocaml или haskell?)

          Я пишу продакшен-код на хаскеле.


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

          Ну, не знаю про окамль, он мне не столь интересен, а хаскель скорее набирает популярность. Библиотеки пишутся, инфраструктура пилится, пакетные менеджеры всякие, интеграция с IDE.


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

          Ну, у меня в резюме C++, Haskell и где-то в уголке стыдливо (потому что у меня практики мало) Idris.


  1. anatoly314
    31.03.2019 13:42
    +1

    1. Придумать новый язык
    2. Открыть на GitHub репозиторий с проектом на этом языке

    PROFIT!!!


    1. freecoder_xx
      01.04.2019 14:19

      Среди новых есть потенциально перспективные, но не все новые — уже перспективные. Тут нужно попасть в волну: выбрать новое и перспективное. Но такой выбор невозможно рассчитать. Поэтому множество увлеченных людей просто мапится на множество новых технологий, а те из них, что оказываются перспективными, осчастливливают свое подмножество людей еще и в коммерческом плане.


  1. woodhead
    31.03.2019 14:12
    -1

    А если программируешь на питоне и яве, то где место в этой классификации? Умней джависта, но тупей питониста?


    1. varanio Автор
      31.03.2019 14:14

      ну вы статью то почитайте для начала )


  1. Singapura
    31.03.2019 16:42

    «Человек творящий творит сам. Это всегда важнее, чем устоявшийся стиль или система.»(Брюс Ли). На Питоне, творить легче и быстрее(по-времени), после основной работы. У энтузиастов языка было мало дополнительного времени.


    1. Space__Elf
      31.03.2019 16:49
      +1

      После основной работы — у меня инди-геймдев на C++, но облизываюсь на Rust.


      1. Singapura
        31.03.2019 17:23

        2004 год ведь шел...) Для выпускников нашего факультета Хогварда, ёмкость, чистота, и простота кода, очень важны… ))


      1. Bookvarenko
        31.03.2019 17:35

        инди-геймдев на C++

        Скрипты есть?


        1. Space__Elf
          31.03.2019 17:57

          Ещё нет.


  1. slonopotamus
    31.03.2019 20:09
    +1

    Вброс крайне неубедителен. Ни цифр, ни пруфов. Экстраполяция с одного товарища Грэма в 2004 году на всю отрасль в 2019? Ну камон.


    1. Singapura
      31.03.2019 20:51
      -1

      «Экстраполяция с одного товарища Грэма в 2004 году на всю отрасль в 2019»…
      Товарищ Ньютон, незаслуженно получил право на названия Законов своим именем!) Законы эти, и до Ньютона были!)) И почему Грэм не сказал, о более ранних, похожих историях, в отрасли?!))
      P.S А еще у Ньютона англицкий фэйс,… жуть!)))


      1. Singapura
        31.03.2019 22:44

        «О чём ты думаешь, тем ты и становишься»(Брюс Ли).
        Это для минусующих весёлый здоровый юмор, на спину надо намазать!))))


  1. sshmakov
    31.03.2019 20:58

    Имхо, суть парадокса в том, что если у тебя есть идея, и тебе нужно ее по быстрому проверить, то выбираешь инструмент, на котором это сделать проще. Понятно, что Python в этом смысле удобнее, чем Java — слишком много надо сделать телодвижений в Java, чтобы получить нужное. Относительно много, конечно.


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


    Поэтому дело не в языке, на котором вы пишете на работе, а в том, развиваетесь ли вы, ищете ли новые подходы. А связь этого с языком — лишь следствие поисков нужного инструмента.


    1. Singapura
      31.03.2019 21:23
      +1

      Java тоже был «Прорывом» в более раннее время. Просто «Парадокс Питона» надо было назвать именем «Парадокс Грэма», и обобщить на разных примерах.


  1. areht
    31.03.2019 22:02

    В 2004 было время романтиков, когда считалось, что бизнесу нужны сообразительные программисты, а гугл искал работников, развешивая загадки по билбордам.

    Но «сообразительный программист, которому интересно языки учить» и «тот, кто решает бизнес-задачи» вовсе не синонимы.


    1. Singapura
      31.03.2019 22:54

      Веб, «рванули» именно романтики. Вообще это из социологии тема. Питон в этом «промежуточное» звено.


      1. areht
        31.03.2019 23:07

        Ну рванули и рванули, это было давно и неправда. Да и не за зарплату, что уж.

        На работу то нынче не для этого нанимают.


        1. Singapura
          31.03.2019 23:27

          Чуть ранее в коментах ссылку дал на Азимова «Профессия», это к вопросу зачем это Гуглу.
          ru.wikipedia.org/wiki/Профессия_(повесть_Айзека_Азимова)


          1. areht
            01.04.2019 00:11

            чуть ранее в каментах написал, что романтизм давно не в моде. Азимов — фантаст, а не исследователь.

            А вот Гугл на практике проверил и убедился, что это не дает ничего хорошего и перестал.


            1. Singapura
              01.04.2019 06:45

              Ну, Гуглу виднее, что сейчас нужнее. Романтики как «пенка» социума, будут всегда. ))


              1. areht
                01.04.2019 09:37

                ему и не были нужны, просто им так казалось поначалу.

                Пенку есть, знаете ли, далеко не все любят.


                1. Singapura
                  01.04.2019 18:52

                  Гугл часть экономики США, это более глубокие темы. «Неправильная» оценка «тренда» развития. как-бы так. Экономика США «захлёбывается», идёт переоценка всех планов.


                  1. areht
                    01.04.2019 21:40

                    Ну у загнивающего капитализма это перманентное состояние.


                    Но оплачиваемый работы для романтиков все равно очень мало, и от рассуждений больше не станет


                    1. Singapura
                      02.04.2019 10:07

                      У романтиков всегда проблемы с реализующим слоем социума. Никола Тесла и Морган, как пример. Надо искать, и предлагать идеи «Морганам». Главное, это хотя-бы излагать понятным для них языком(не заумным). Чтобы не мешать им «додумывать по-своему», и выставлять свои, не очевидные для романтика приоритеты(разные слои социума мыслят структурно по-разному), в этой идее. Кстати о «пенке», я выразился неправильно, «пенка»(как в кипячёном молоке) из выгоревших романтиков, это худшее что с ними происходит(ни туда ни сюда). Романтики, это как «пузырики» у кваса, когда в него соль добавили.


                      1. areht
                        02.04.2019 12:19

                        Квас с солью, продавать Морганам?

                        Не надо объяснять проблемы романтиков, главное мы согласились, что у них вечно проблемы.


                        1. Singapura
                          02.04.2019 14:49

                          В нашей стране у них вообще нет применения. А.Азимов чётко подобное прописал.


    1. Siemargl
      31.03.2019 23:02

      А еще было время, когда IBM искало «нетрадиционных» программистов. Да и про Диснея был скандал.

      Гуглите, если еще не вырезали из поиска и с контролем рвотного рефлекса норм


      1. ganqqwerty
        01.04.2019 01:04

        В каком смысле нетрадиционных?


      1. Space__Elf
        01.04.2019 03:04

        Что за скандал у Диснея?


  1. Singapura
    01.04.2019 00:02

    Приведу пример в этой ветке. Маленьких Моцартов «запороли» тысячами, тогда, и в «той Европе», во время моды «на мелких и смешных музыкантов». Моцарт, уцелел чудом. Это к теме индустрии можно и сейчас сопоставить с оговорками.


  1. psy06
    01.04.2019 10:09

    Как ни странно, на Хабре нет практически ни одного упоминания об этом парадоксе.

    Вообще любой человек способный к элементарной аналитике, рано или поздно должен осознать такую очевидность. И программирование тут не причем совершенно. Любой энтузиаст изучивший предмет «потому что нравится» всегда будет выше классом того кто что-то выучил «потому что надо». Если вам за 30 и вы это узнали из этой статьи, вам следует больше кушать витаминов.


  1. vedenin1980
    01.04.2019 13:06
    +1

    Любой энтузиаст изучивший предмет «потому что нравится» всегда будет выше классом того кто что-то выучил «потому что надо»

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

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


    1. psy06
      01.04.2019 19:38

      Добавление контекста отсутствующего в исходной посылке, с целью доказать свою правоту, называется демагогия.


      1. areht
        01.04.2019 22:41

        А как называется посылка, не выдерживающая применения контекста?


        1. psy06
          02.04.2019 10:05
          -1

          Ну добавьте к е=мс2 свой контекст, и расскажите всем что Энштейн дурачок, ведь решение тоже не будет «выдерживать применения контекста».

          Если вы не тролль, соблаговолите высказывать аргументы только в рамках спорного высказывания.

          Могу вам помочь, левый контекст который вы привнесли это «инициативный идиот-энтузиаст», и «энтузиаст может перегореть».

          Вас не устраивает

          Любой энтузиаст изучивший предмет «потому что нравится» всегда будет выше классом того кто что-то выучил «потому что надо»
          . Я же вам заявляю, что за всю свою жизнь не видел ни одного исключения из этой посылки. Ни разу. Ваше несогласие это конфликт вашего лишнего контекста.


          1. vedenin1980
            02.04.2019 11:54

            левый контекст который вы привнесли

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

            По вашему утверждению берем любого дауна, мотивируем его на энтузиазм, и он должен работать в любой отрасли (например, в теоретической физике) лучше любого профессонала, работающего за деньги. Если нет — то это правило работает не с «любыми людьми» и не «всегда». У вас явная проблема с логическими выражениями, что для программиста — весьма странно.

            Ну добавьте к е=мс2 свой контекст

            Если вы найдете множество практических экспериментов, когда е=мс2 не будет работать в рамках применимости ОТО — это будет означать, что теорию относительности нужно заменить другой лучшей теорий.

            Я же вам заявляю, что за всю свою жизнь не видел ни одного исключения из этой посылки. Ни разу

            Мало кто, что в жизни не видел. Я вот никогда в жизни не видел мужчину, у которого было бы более одной официальной жены, это вовсе не значит, что их не существует.


            1. psy06
              02.04.2019 18:33
              -1

              По вашему утверждению берем любого дауна,
              Нет, это по вашему. В конструкции: «Любой энтузиаст изучивший предмет» вы увидели только «Любой энтузиаст», в связи с чем смысл текста исказился полностью. Обратимся к популярным толкованиям употребленных вами слов. «Даун» и «Идиот», это разновидности умственной отсталости, и означают неспособность к сложной умственной деятельности. «Даун» и «Идиот» технически не способны к — «изучивший предмет». Вы выдумали собственное толкование моего текста не имеющее никакого отношения к реальному смыслу. Конструкция использованная мной, означает высоко мотивированного на результат и процесс человека, способного к высокоуровневой умственной деятельности. Такой человек не может быть ни «дауном» ни «идиотом», это взаимоисключающие состояния. Далее, вы, строите новую посылку вообще не имеющую никакого отношения к моей мысли. «энтузиаст может перегореть». Ну и что? А солнце желтое. Все на свете могут перегореть. В общем читайте больше художественной литературы, с логикой и контролем у вас не очень. Пропускать слова в некоторых текстах может быть очень опасно для здоровья. Договоры там или судебные споры…


              1. areht
                02.04.2019 21:02
                +1

                > Обратимся к популярным толкованиям употребленных вами слов.

                Эк вы хитро решили контекст поменять


          1. areht
            02.04.2019 14:13
            +1

            > Ну добавьте к е=мс2 свой контекст

            К «инициативный идиот-энтузиаст» применимо, вроде.
            Не улавливаю аналогии, приведите пример?

            > Я же вам заявляю, что за всю свою жизнь не видел ни одного исключения из этой посылки.

            А я ни разу не видел суслика.


            1. psy06
              02.04.2019 18:53
              -1

              Аналогия очень простая, добавление контекста в высказывание оппонента, это один из классических методов демагогии.


              1. areht
                02.04.2019 19:46
                +1

                Вы проверяете одно и то же. Это точно классический прием демагогии.

                Ad nauseam (дословно — «до тошноты», по существу — «до отвращения») — латинская сентенция, которая используется для описания спора/дискуссии, которые длятся слишком долго (подробно, навязчиво, однообразно) или повторяются слишком часто, образно — вплоть до возникновения «тошноты». Означает, что все, кто были причастны к постоянному и однообразному «потоку» пафоса, устали от этого.


  1. Bookvarenko
    02.04.2019 01:47

    Предлагаю обсудить, в контексте статьи конечно, являются ли более сообразительными CG-артисты, использующие фракталы, нежели CG-артисты, фракталы не использующие.


    1. psy06
      02.04.2019 10:22
      -1

      Мой 16 летний опыт общения с вышеназванным контингентом говорит, что большинство из них идиоты, не имеющие никакого умственного развития. И да, кое кто из них использовали фракталы.


  1. psy06
    02.04.2019 11:57

    Поразительное, дело, меня минусуют только за комментарии по мотивам реального жизненного опыта, и плюсуют за отвлеченные высказывания. На этом можно целую диссертацию написать на тему типа например, «Иллюзии и отрицание реальности в профессиональных сообществах».


    1. Bookvarenko
      02.04.2019 12:02

      Ну, от этого и польза есть — по вашим заминусованным комментариям я нашёл несколько интересных статей.


    1. NLO
      00.00.0000 00:00

      НЛО прилетело и опубликовало эту надпись здесь


  1. MyGodIsHe
    03.04.2019 10:00

    Вот в статье пишут про «зоопарк языков». Кто-нибудь видел такое в реальносте? И если да, какого это? Крупные компании активно используют микросервисы, но всегда ограничиваются двумя языками — кресты/питон (или аналог).


    1. vedenin1980
      03.04.2019 10:26

      Я видел.

      Реально крупные компании активно покупают более мелкие, где продукт написан на разных языках, а потом их используют, в результате может быть сборная солянка из десятков языков.

      Или другой пример, крупная компания, где я давно работал, фронт логично на javascript, местами переписанный под typescrpit (ибо более удобный, но полностью переписать js ресурсов не хватало), в беке местами php (для статических вещей), местами nodejs (для сложного дизайна). Для микросервисов ядра — java, из-за производительности и ресурсов, для больших данных — f# (просто удобнее), фремворк машинного обучение чужой по лицензии, там вообще сборная солянка из C#, python и т.п. Кажется в каких-то критических к производительности сервсивам еще и C++ обитал. Причем использование каждого языка было вполне обосновано. Но компания реально крупная, она могла позволить себе разных специалистов.


      1. MyGodIsHe
        03.04.2019 13:38

        Я про бэк говорил. Всё таки фронт не имеет отношения к микросервисам. Да, это типичный стэк. Но компании стремяться его сузить. Слышал только про один пример — компания Zalando. Но подробностей не знаю. Если много разных языков, то общую автоматизацию особо не напишешь.