Re: Сосредоточение на одном языке программирования
От: varenikAA  
Дата: 15.03.21 03:19
Оценка:
Здравствуйте, velkin, Вы писали:

V>Так стоит ли распыляться.

стоит конечно. как определить что яп достоин дальнейшего изучения/использования.
методом проб и ошибок. с оглядкой на авторитеты. Если мне советуют изучить CL для расширения сознания я прислущаюсь.
CL офигенный мощный как C++ но при этом простой как бейсик. пару минусов: малая распространненость, заточенность под опенсорс(линукс, веб, постгрес).
чуть меньгая скорость выполнения. мультипарадигменный.
или взять F#. ЯП помогает писать правильно. используя строгую типизацию, иммутабильность и экспрешн.
Правда, потом понимаешь что скорость важна, но всякие плюсы вызвают рвоту. так начинаешь поглядывать на rust.
Чуть сложнее F#, но в то же время такой же быстрый как си.
Вообщем, благословляю.
Все равно, если работаешь на дядю будешь писать на яп который тебе предложат.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Сосредоточение на одном языке программирования
От: AlexGin Беларусь  
Дата: 15.03.21 10:07
Оценка: 1 (1)
Здравствуйте, varenikAA, Вы писали:

AA>Здравствуйте, velkin, Вы писали:


AA>Все равно, если работаешь на дядю будешь писать на яп который тебе предложат.



Ну этот самый "дядя" не даст человеку проект на Python,
если в резюме этот самый человек ему писал насчёт C++ или насчет .NET C#

То есть — если даже и даст, то далеко не сразу и (скорее всего) менее ответственные части.

P.S. По сути: постановка данного вопроса мне кажется некорректной.
Так как сначала — правильнее расти вширь, а затем уже — выбрать направление для роста вглубь.
IMHO не следует противопоставлять эти пути развития: так как именно разностороний взгляд на процесс разработки,
поможет человеку вырости в широкого профессионала. Вот тогда можно и узкую специализацию подтянуть...
Re[4]: Сосредоточение на одном языке программирования
От: ути-пути Россия  
Дата: 15.03.21 11:35
Оценка: +1
Здравствуйте, Skorodum, Вы писали:

S>Это очень крупная градация. Для языков типа С++ надо хотя бы 0-9, плюс разбиение на области: язык, стандартная библиотека, архитектура приложений, управление зависимости и сборка и т.п.

S>И Александреску и Страуструп говорили, что знают С++ на 7-8 по 10-бальное шкале, ЕМНИП. И это люди которые продают свои знания подводных камней этого языка. Потом "знание языка" != "хороший код".

Твои градации — это какая-то академическая задача, не имеющая практического смысла. Реально же градации 2: можешь писать прикладной код, и можешь писать заумь вроде некоторых бустовских библиотек. И в большинстве случаев первый вариант вполне достаточен. Ну а то, что для любой из них придется обращаться к документации — так это нормально для отрасли, и плюсы тут мало чем отличаются от других языков.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: Сосредоточение на одном языке программирования
От: Skorodum Россия  
Дата: 15.03.21 12:50
Оценка:
Здравствуйте, ути-пути, Вы писали:

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

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

УП>И в большинстве случаев первый вариант вполне достаточен.

Как ты оцениваешь "большиство" мест?

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

Так дело же не в необходимости, а в способности и желании это делать.
Re[5]: Сосредоточение на одном языке программирования
От: Hobbes Россия  
Дата: 15.03.21 13:15
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Императивщины мало знать, сейчас везде прёт функциональщина, асинхронщина, реактивщина, неблокировщина.


Асинхронные и неблокирующие операции не противоречат императивной парадигме, а прекрасно в неё укладываются.
Re[3]: Сосредоточение на одном языке программирования
От: Hobbes Россия  
Дата: 15.03.21 13:20
Оценка:
Здравствуйте, velkin, Вы писали:

V>В каком-то роде я задал вопрос, что лучше, быть мидлом в нескольких языках, или сеньором в одном.


Не совсем понятно, что есть профи в конкретном языке. Накодить прикладную задачу по зададнной архитектуре должен уметь любой мид. А какая работа остаётся синьору, нарисовать архитектуру, так это от языка не сильно зависит. Либо писать хитрые библиотеки (свою реализацию stdlib, например) или компиляторы или ещё какие-то такие задачи, которые требуют досконального знания тонкостей конкретного языка. Среди прикладных задач бизнеса, науки, производства таких очень мало.
Re[5]: Сосредоточение на одном языке программирования
От: Hobbes Россия  
Дата: 15.03.21 13:26
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, в Java, такие:

G>
G>Integer a1 = 10;
G>Integer a2 = 10;
G>System.out.println(a1 == a2);
G>

G>Выведет true.

G>
G>Integer a1 = 10_000;
G>Integer a2 = 10_000;
G>System.out.println(a1 == a2);
G>

G>Выведет уже false.
G>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

G>сравнение объектов по == само по себе является индикатором плохого кода


Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?
Re[6]: Сосредоточение на одном языке программирования
От: gyraboo  
Дата: 15.03.21 13:42
Оценка:
Здравствуйте, Hobbes, Вы писали:

G>>Императивщины мало знать, сейчас везде прёт функциональщина, асинхронщина, реактивщина, неблокировщина.


H>Асинхронные и неблокирующие операции не противоречат императивной парадигме, а прекрасно в неё укладываются.


Не совсем соглы. Асинхронщина бьет императивные последовательности инструкций на мелкие асинхронные кусочки, которые выполняются не в хронологической последовательности, а в итоге цепи асинхронных событий, уловить связь между которыми не всегда просто, особенно когда в коде промис на промисе сидит и промисом погоняет. Православная императивщина же, т.е. без goto, славится тем, что более понятна в этом плане нашему мозгу, т.к. боле следует хронологическому порядку.
Re: Сосредоточение на одном языке программирования
От: student__  
Дата: 15.03.21 13:43
Оценка: +2
Это классический диалектизм изучения предмета вширь или вглубь.
Не может на этот вопрос быть дан однозначный ответ, потому что зависит от.

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

А вот для конкретной работы может быть важнее именно доскональное знание конкретного инструмента и умение его применять.
Re[6]: Сосредоточение на одном языке программирования
От: gyraboo  
Дата: 15.03.21 13:46
Оценка:
Здравствуйте, Hobbes, Вы писали:

G>>Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, в Java, такие:

G>>
G>>Integer a1 = 10;
G>>Integer a2 = 10;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет true.

G>>
G>>Integer a1 = 10_000;
G>>Integer a2 = 10_000;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет уже false.
G>>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

G>>сравнение объектов по == само по себе является индикатором плохого кода


H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?


Это как раз та проблема экспертных знаний, о которой я говорю. Чтобы понять этот код, мало обычной логики и здравого смысла, нужны ещё и тайные знания (ну не совсем тайные, но — особые знания о работе платформы Java, усложняющие семантику языка). И считаю это — плохо.
Отредактировано 15.03.2021 13:48 gyraboo . Предыдущая версия .
Re[6]: Сосредоточение на одном языке программирования
От: varenikAA  
Дата: 15.03.21 14:44
Оценка:
Здравствуйте, Hobbes, Вы писали:

H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?


И после этого ругают javascript

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

(loop for i from 1 to 100 do
        (format t "~d~%" i))

(defstruct person name age)

(defvar p (make-person :name "Alice" :age 12))

(write-line (person-name p))


обнаружил довольно простой и удобный способ работы с лиспом в вс кодэ.
достаточно установить любую подсветку синтаксиса и интерпритатор(в линуксе лучше запускать через rlwrap).
во встроенном терминале. а потом выделяем текст и через палитру комманд (run selected text in active terminal).
это конечно не очень круто но зато быстро(не нужно изучать емакс и настройку SLIME).
Ну а вторым нужно учить rust. строгая типизация, системный, основан на выражениях (if и т.п. полноценные выражения).
говорят слишком мелкие пакеты и непонятная работа с ошибками. но в базе я попробовал сегодня повторить пример игры угадай число из раста-бук — мне понравилось.
но, как уже говорил, жизнь конечно внесет свои коррективы, хотя если стремится к мечте то можно и на любимом ЯП писать.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: Сосредоточение на одном языке программирования
От: Hobbes Россия  
Дата: 15.03.21 17:52
Оценка:
Здравствуйте, gyraboo, Вы писали:

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


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

Пример из boost::asio. Как видим, код в обычном режиме прыгает с одной корутины на другую и обратно. Никаких промисов в явном виде нет:
void do_read_header()
  {
    auto self(shared_from_this());
    boost::asio::async_read(socket_,
        boost::asio::buffer(read_msg_.data(), chat_message::header_length),
        [this, self](boost::system::error_code ec, std::size_t /*length*/)
        {
          if (!ec && read_msg_.decode_header())
          {
            do_read_body();
          }
          else
          {
            room_.leave(shared_from_this());
          }
        });
  }

  void do_read_body()
  {
    auto self(shared_from_this());
    boost::asio::async_read(socket_,
        boost::asio::buffer(read_msg_.body(), read_msg_.body_length()),
        [this, self](boost::system::error_code ec, std::size_t /*length*/)
        {
          if (!ec)
          {
            room_.deliver(read_msg_);
            do_read_header();
          }
          else
          {
            room_.leave(shared_from_this());
          }
        });
  }
Re[7]: Сосредоточение на одном языке программирования
От: student__  
Дата: 17.03.21 16:12
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Лучший ЯП для обучения это common lisp простой как бейсик, мощный как плюсы, работает везде. мультипарадигменный (В отличии от жабы в которой даже инты объекты, в сишарпе хотя бы сравниваются по значению)


Должна быть какая-то причина, по которой он заглох, кроме "тупые эффективные манагеры так решили" (что не обьясняет ровным счетом ничего). Видимо, примитивный синтаксис и семантика eval/apply хорошо подходили, когда не было компиляторов и интерпретаторов более сложных грамматик. Как только появились, от скобочек стало рябить в глазах, а от префиксной нотации мозг стал уставать. И никакие макры и мультиметоды не спасли язык.
Re[8]: Сосредоточение на одном языке программирования
От: varenikAA  
Дата: 18.03.21 03:25
Оценка:
Здравствуйте, student__, Вы писали:

__>Здравствуйте, varenikAA, Вы писали:


AA>>Лучший ЯП для обучения это common lisp простой как бейсик, мощный как плюсы, работает везде. мультипарадигменный (В отличии от жабы в которой даже инты объекты, в сишарпе хотя бы сравниваются по значению)


__>Должна быть какая-то причина, по которой он заглох, кроме "тупые эффективные манагеры так решили" (что не обьясняет ровным счетом ничего). Видимо, примитивный синтаксис и семантика eval/apply хорошо подходили, когда не было компиляторов и интерпретаторов более сложных грамматик. Как только появились, от скобочек стало рябить в глазах, а от префиксной нотации мозг стал уставать. И никакие макры и мультиметоды не спасли язык.


Не соглащусь насчет заглох, не популярен — да, но развивается и очень активно. и используется.
Проблема непопулярных языков в статьях типа "что учить в 2021 году?" в которых из года в год публикуются поисковые тренды (js, c, java).
Если не знаешь о чем-то, то его и не существует или как говорят что может быть слаще морковки.
насчет рябить это не к лиспу а к ЯП типа плюсов или раста. вот уже где кол-во символов зашкаливает.
а скобок одинаково (hello "Alice"), hello("Alice");
и там и там скобок ровно две, только в плюсах еще и разделители, которые вообщем-то не нужны при наличии четких правил синтаксических.
Повторю свое мнение, что в лиспы легко въехать и на его базе изучить конпцепции программирования базовые: алгоритмы, ООП, ФП, рекурсию, вектора, списки и т.д.
от изучения до написания первой рабочей программы там требуется от силы 1-2 недели. в отличии от плюсов тех же.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: Сосредоточение на одном языке программирования
От: Pyromancer  
Дата: 18.03.21 08:34
Оценка: 1 (1)
Здравствуйте, Hobbes, Вы писали:

H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?


Числа до 100 вроде в жаве объявлены как константы, поэтому в первом случае а1 и а2 будут ссылаться на один существуюший объект, а во втором создадут по новому объекту каждый. Такие вот спрятаные грабли для тех кто с этим не сталкивался
Отредактировано 18.03.2021 8:44 Pyromancer . Предыдущая версия .
Re[7]: Сосредоточение на одном языке программирования
От: Hobbes Россия  
Дата: 18.03.21 08:57
Оценка:
Здравствуйте, Pyromancer, Вы писали:

P>Числа до 100 вроде в жаве объявлены как константы, поэтому в первом случае а1 и а2 будут ссылаться на один существуюший объект, а во втором создадут по новому объекту каждый. Такие вот спрятаные грабли для тех кто с этим не сталкивался


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