Здравствуйте, velkin, Вы писали:
V>Так стоит ли распыляться.
стоит конечно. как определить что яп достоин дальнейшего изучения/использования.
методом проб и ошибок. с оглядкой на авторитеты. Если мне советуют изучить CL для расширения сознания я прислущаюсь.
CL офигенный мощный как C++ но при этом простой как бейсик. пару минусов: малая распространненость, заточенность под опенсорс(линукс, веб, постгрес).
чуть меньгая скорость выполнения. мультипарадигменный.
или взять F#. ЯП помогает писать правильно. используя строгую типизацию, иммутабильность и экспрешн.
Правда, потом понимаешь что скорость важна, но всякие плюсы вызвают рвоту. так начинаешь поглядывать на rust.
Чуть сложнее F#, но в то же время такой же быстрый как си.
Вообщем, благословляю.
Все равно, если работаешь на дядю будешь писать на яп который тебе предложат.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Сосредоточение на одном языке программирования
Здравствуйте, varenikAA, Вы писали:
AA>Здравствуйте, velkin, Вы писали:
AA>Все равно, если работаешь на дядю будешь писать на яп который тебе предложат.
Ну этот самый "дядя" не даст человеку проект на Python,
если в резюме этот самый человек ему писал насчёт C++ или насчет .NET C#
То есть — если даже и даст, то далеко не сразу и (скорее всего) менее ответственные части.
P.S. По сути: постановка данного вопроса мне кажется некорректной.
Так как сначала — правильнее расти вширь, а затем уже — выбрать направление для роста вглубь.
IMHO не следует противопоставлять эти пути развития: так как именно разностороний взгляд на процесс разработки,
поможет человеку вырости в широкого профессионала. Вот тогда можно и узкую специализацию подтянуть...
Re[4]: Сосредоточение на одном языке программирования
Здравствуйте, Skorodum, Вы писали:
S>Это очень крупная градация. Для языков типа С++ надо хотя бы 0-9, плюс разбиение на области: язык, стандартная библиотека, архитектура приложений, управление зависимости и сборка и т.п. S>И Александреску и Страуструп говорили, что знают С++ на 7-8 по 10-бальное шкале, ЕМНИП. И это люди которые продают свои знания подводных камней этого языка. Потом "знание языка" != "хороший код".
Твои градации — это какая-то академическая задача, не имеющая практического смысла. Реально же градации 2: можешь писать прикладной код, и можешь писать заумь вроде некоторых бустовских библиотек. И в большинстве случаев первый вариант вполне достаточен. Ну а то, что для любой из них придется обращаться к документации — так это нормально для отрасли, и плюсы тут мало чем отличаются от других языков.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[5]: Сосредоточение на одном языке программирования
Здравствуйте, ути-пути, Вы писали:
УП>Твои градации — это какая-то академическая задача, не имеющая практического смысла. Реально же градации 2: можешь писать прикладной код, и можешь писать заумь вроде некоторых бустовских библиотек.
Твой ответ — наглядная демонстрация того, что далеко не все понимают, насколько разными могут быть требования к прикладному коду.
УП>И в большинстве случаев первый вариант вполне достаточен.
Как ты оцениваешь "большиство" мест?
УП>Ну а то, что для любой из них придется обращаться к документации — так это нормально для отрасли, и плюсы тут мало чем отличаются от других языков.
Так дело же не в необходимости, а в способности и желании это делать.
Re[5]: Сосредоточение на одном языке программирования
Здравствуйте, velkin, Вы писали:
V>В каком-то роде я задал вопрос, что лучше, быть мидлом в нескольких языках, или сеньором в одном.
Не совсем понятно, что есть профи в конкретном языке. Накодить прикладную задачу по зададнной архитектуре должен уметь любой мид. А какая работа остаётся синьору, нарисовать архитектуру, так это от языка не сильно зависит. Либо писать хитрые библиотеки (свою реализацию stdlib, например) или компиляторы или ещё какие-то такие задачи, которые требуют досконального знания тонкостей конкретного языка. Среди прикладных задач бизнеса, науки, производства таких очень мало.
Re[5]: Сосредоточение на одном языке программирования
G>Выведет уже false. G>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.
G>сравнение объектов по == само по себе является индикатором плохого кода
Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?
Re[6]: Сосредоточение на одном языке программирования
Здравствуйте, Hobbes, Вы писали:
G>>Императивщины мало знать, сейчас везде прёт функциональщина, асинхронщина, реактивщина, неблокировщина.
H>Асинхронные и неблокирующие операции не противоречат императивной парадигме, а прекрасно в неё укладываются.
Не совсем соглы. Асинхронщина бьет императивные последовательности инструкций на мелкие асинхронные кусочки, которые выполняются не в хронологической последовательности, а в итоге цепи асинхронных событий, уловить связь между которыми не всегда просто, особенно когда в коде промис на промисе сидит и промисом погоняет. Православная императивщина же, т.е. без goto, славится тем, что более понятна в этом плане нашему мозгу, т.к. боле следует хронологическому порядку.
Re: Сосредоточение на одном языке программирования
Это классический диалектизм изучения предмета вширь или вглубь.
Не может на этот вопрос быть дан однозначный ответ, потому что зависит от.
Студенту во время обучения в универе важнее знать концептуальные основы программирования, и знакомство с как можно большими парадигмами, с теорией построения формальных языков и компиляторов, и все это, конечно, за счет глубокого освоения конкретного языка (которое сложно достичь, не участвуя в разработке реальных больших систем, что студенту редко когда удается).
А вот для конкретной работы может быть важнее именно доскональное знание конкретного инструмента и умение его применять.
Re[6]: Сосредоточение на одном языке программирования
G>>Выведет уже false. G>>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.
G>>сравнение объектов по == само по себе является индикатором плохого кода
H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?
Это как раз та проблема экспертных знаний, о которой я говорю. Чтобы понять этот код, мало обычной логики и здравого смысла, нужны ещё и тайные знания (ну не совсем тайные, но — особые знания о работе платформы Java, усложняющие семантику языка). И считаю это — плохо.
Здравствуйте, 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]: Сосредоточение на одном языке программирования
Здравствуйте, gyraboo, Вы писали:
G>Не совсем соглы. Асинхронщина бьет императивные последовательности инструкций на мелкие асинхронные кусочки, которые выполняются не в хронологической последовательности, а в итоге цепи асинхронных событий, уловить связь между которыми не всегда просто, особенно когда в коде промис на промисе сидит и промисом погоняет. Православная императивщина же, т.е. без goto, славится тем, что более понятна в этом плане нашему мозгу, т.к. боле следует хронологическому порядку.
Я уж думал так лет 10 уже никто не пишет, а стараются сохранить в прикладном коде посделовательность действий, при этом все промисы и прочие вспомогательные вещи остаются под капотом.
Пример из boost::asio. Как видим, код в обычном режиме прыгает с одной корутины на другую и обратно. Никаких промисов в явном виде нет:
Здравствуйте, varenikAA, Вы писали:
AA>Лучший ЯП для обучения это common lisp простой как бейсик, мощный как плюсы, работает везде. мультипарадигменный (В отличии от жабы в которой даже инты объекты, в сишарпе хотя бы сравниваются по значению)
Должна быть какая-то причина, по которой он заглох, кроме "тупые эффективные манагеры так решили" (что не обьясняет ровным счетом ничего). Видимо, примитивный синтаксис и семантика eval/apply хорошо подходили, когда не было компиляторов и интерпретаторов более сложных грамматик. Как только появились, от скобочек стало рябить в глазах, а от префиксной нотации мозг стал уставать. И никакие макры и мультиметоды не спасли язык.
Re[8]: Сосредоточение на одном языке программирования
Здравствуйте, student__, Вы писали:
__>Здравствуйте, varenikAA, Вы писали:
AA>>Лучший ЯП для обучения это common lisp простой как бейсик, мощный как плюсы, работает везде. мультипарадигменный (В отличии от жабы в которой даже инты объекты, в сишарпе хотя бы сравниваются по значению)
__>Должна быть какая-то причина, по которой он заглох, кроме "тупые эффективные манагеры так решили" (что не обьясняет ровным счетом ничего). Видимо, примитивный синтаксис и семантика eval/apply хорошо подходили, когда не было компиляторов и интерпретаторов более сложных грамматик. Как только появились, от скобочек стало рябить в глазах, а от префиксной нотации мозг стал уставать. И никакие макры и мультиметоды не спасли язык.
Не соглащусь насчет заглох, не популярен — да, но развивается и очень активно. и используется.
Проблема непопулярных языков в статьях типа "что учить в 2021 году?" в которых из года в год публикуются поисковые тренды (js, c, java).
Если не знаешь о чем-то, то его и не существует или как говорят что может быть слаще морковки.
насчет рябить это не к лиспу а к ЯП типа плюсов или раста. вот уже где кол-во символов зашкаливает.
а скобок одинаково (hello "Alice"), hello("Alice");
и там и там скобок ровно две, только в плюсах еще и разделители, которые вообщем-то не нужны при наличии четких правил синтаксических.
Повторю свое мнение, что в лиспы легко въехать и на его базе изучить конпцепции программирования базовые: алгоритмы, ООП, ФП, рекурсию, вектора, списки и т.д.
от изучения до написания первой рабочей программы там требуется от силы 1-2 недели. в отличии от плюсов тех же.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: Сосредоточение на одном языке программирования
Здравствуйте, Hobbes, Вы писали:
H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?
Числа до 100 вроде в жаве объявлены как константы, поэтому в первом случае а1 и а2 будут ссылаться на один существуюший объект, а во втором создадут по новому объекту каждый. Такие вот спрятаные грабли для тех кто с этим не сталкивался
Здравствуйте, Pyromancer, Вы писали:
P>Числа до 100 вроде в жаве объявлены как константы, поэтому в первом случае а1 и а2 будут ссылаться на один существуюший объект, а во втором создадут по новому объекту каждый. Такие вот спрятаные грабли для тех кто с этим не сталкивался
Не совсем понятно, почему нельзя было сделать перегружаемый оператор сравнения, ну да ладно, создатели языка решили так, что операторы перегружать нельзя.