portrait of hacker with mask
Похоже, Python теряет актуальность. И у него уже появился новый перспективный конкурент.
Так считает доктор наук по физике элементарных частиц Эри Джури. Также она разрабатывает алгоритмы искусственного интеллекта, чтобы лучше исследовать эти частицы.
Передаем ей слово.
Не поймите меня неправильно. У Python все еще есть мощная поддержка сообщества программистов, специалистов по обработке данных и искусственному интеллекту.
Но эти же люди в разговорах между собой много сетуют на слабые стороны Python. Они сетуют на медлительность работы, ошибки при выполнении, несмотря на предварительное тестирование, и другие недостатки языка.
Вот почему все большее количество программистов используют другие языки. Самые популярные среди них — Julia, Go и Rust.
Julia отлично подходит для математических и технических задач, Go — для модульных программ, а Rust — для системного программирования.
Специалистам по обработке данных и работающим с искусственным интеллектом нужно решать много математических проблем. Поэтому Julia им нравится. Да, у него есть недостатки, но есть и много преимуществ, которыми не может похвастаться Python.
Люди создают новые языки программирования, чтобы исправить недостатки уже существующих языков и сохранить их преимущества.
Так в конце 1980-х годов Гвидо ван Россум создал Python как улучшение ABC. Последний был слишком идеален для языка программирования — хотя его было легко изучать, с применением в реальной жизни были проблемы. Напротив, Python достаточно прагматичен. Вы можете увидеть это в дзен Python, который отображает намерения создателей:
Красивое лучше, чем безобразное.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
[…..]
Python сохранил хорошие черты ABC: например, читабельность, простоту и удобство для начинающих. Но он гораздо более надежен и адаптирован к реальной жизни, чем ABC.
Так же и создатели Julia хотят сохранить удачные находки и избежать недостатков других языков. Но Julia гораздо амбициознее: вместо того, чтобы заменить один язык, он хочет победить их все.
Вот как говорят его создатели:
«Мы жадны: мы хотим большего.
Нам нужен язык с открытым кодом и свободной лицензией. Нам нужна скорость C с динамичностью Ruby. Нам нужен гомоиконический язык с настоящими макросами, такими как Lisp, но с очевидными, знакомыми математическими сущностями как Matlab. Мы хотим чего-нибудь такого же удобного для общего программирования, как Python, такого же легкого для статистики, как R, такого же естественного для обработки строк, как Perl, такого же мощного для линейной алгебры, как Matlab. Что-то очень простое в овладении, но такое, что порадует самых серьезных хакеров. Мы хотим, чтобы язык был интерактивным и мы хотим, чтобы он был компилируемым».
Julia хочет объединить все преимущества, существующие на данный момент, а не обменивать их на недостатки других языков. И, несмотря на то, что Julia — молодой язык, он уже достиг многих целей, которые ставили перед собой создатели.
Julia можно использовать для чего угодно: от простых программ машинного обучения до огромных суперкомпьютерных симуляций. В принципе, Python в определенной степени может выполнять эти задачи, но он был адаптирован. А вот Julia создавали для этого.
Создатели Julia хотели создать такой же быстрый язык, как C, но то, что они создали, еще быстрее. Несмотря на то, что за последние годы Python стал немного быстрее, он не в состоянии догнать Julia.
В 2017 году Julia даже присоединилась к Petaflop Club — небольшому клубу языков, которые могут превышать скорость одного петафлопса в секунду на пике производительности. Кроме Julia, сейчас в клубе только C, C++ и Fortran.
Python существует 30 лет, и неудивительно, что многие люди поддерживают его. Любой вопрос, связанный с Python, чаще всего можно решить простым поиском Google.
А вот сообщество Julia значительно меньше. И хотя это означает, что вам может понадобиться больше времени, чтобы найти ответ, вы будете общаться в узком кругу специалистов снова и снова. И это может стать основой крепких профессиональных отношений.
Вам даже не нужно знать ни одной команды Julia, чтобы кодить на этом языке. Вы можете не только использовать код на Python и C в Julia. Вы даже можете использовать Julia в Python!
А это позволяет очень легко исправить слабые места вашего кода Python. Или оставаться продуктивным, пока вы только начали знакомиться с Julia.
Одна из самых сильных сторон Python — множество хорошо поддерживаемых библиотек. У Julia их не так много, и пользователи жаловались, что они (пока) не очень хорошо обслуживаются.
Но если учесть, что Julia — очень молодой язык с ограниченным количеством ресурсов, то это количество впечатляет. Помимо того, что их все время становится больше, Julia также может взаимодействовать с библиотеками C и Fortran, например, для обработки графиков.
Python на 100% динамически типизирован. Это означает, что программа решает при выполнении, например, является ли переменная числом с плавающей точкой или целым числом.
Это очень удобно для начинающих. Но это также означает, что нужно проверить Python-код во всех возможных сценариях. А это задача, занимающая много времени.
Поскольку создатели Julia также хотели, чтобы им было легко овладеть, Julia полностью поддерживает динамическую типизацию. Но, в отличие от Python, вы можете вводить статические типы, если хотите — так как они присутствуют, например, в C или Fortran.
Это может сэкономить вам кучу времени: вместо того чтобы искать оправдание, почему вы не тестируете свой код, вы можете указать тип, где это будет целесообразно.
Все это звучит отлично, но помните, что Julia очень молода по сравнению с Python.
Один из показателей, помогающий ориентироваться в актуальности языка — это количество вопросов на StackOverflow: сейчас Python тегают примерно в двадцать раз чаще, чем Julia!
Это не значит, что Julia непопулярна: просто ей нужно еще немного времени.
Вы правда хотите написать весь код на другом языке? Нет, вы лучше попробуете новый язык в будущем проекте. Каждый язык сталкивается с этой проблемой: от его релиза до активного использования должно пройти определенное время.
Но если вы начнете использовать Julia сейчас, вы инвестируете в будущее. Поскольку все чаще программисты обращаются к Julia, у вас будет достаточно опыта, чтобы ответить на их вопросы. А еще ваш код будет более надежным, потому что многие коды Python будут заменены на Julia.
Сорок лет тому назад искусственный интеллект был нишевым явлением. Индустрия и инвесторы не верили в него, технологии были трудны в использовании. Но некоторые учились использовать искусственный интеллект еще тогда, несмотря на неудобства. И сейчас многие из этих людей имеют зарплату не меньше, чем игроки НФЛ.
Julia тоже еще очень нишевая. Но когда она станет популярнее, победителями будут те, кто уже умеет ее использовать.
Конечно, нет гарантии, что вы будете зарабатывать кучу денег, если сейчас овладеете Julia. Но шансов на это у вас точно будет больше.
Подумайте об этом: в резюме большинства программистов указан Python. И в последующие несколько лет количество таких специалистов будет только увеличиваться. Но если спрос на Python снизится, перспективы для его программистов также станут хуже.
Если вы сможете добавить Julia в свое резюме, у вас будет настоящее преимущество. Ибо если говорить честно, что вас выделяет среди других программистов? Не так уж много, правильно? А вот умение использовать Julia поможет выделиться среди толпы.
Вы не только демонстрируете, что у вас есть интересы, которые выходят за рамки требований работы. Вы также показываете, что хотите учиться и имеете более широкое представление о том, что значит быть программистом.
Вы и другие программисты Julia — будущие рок-звезды, и вы это знаете. Или, как сказали создатели Julia в 2012 году:
«Мы очень жадны — и мы хотим иметь все. Около двух с половиной лет назад мы решили создать язык нашей жадности. Он еще не завершен, но пришло время для версии 1.0. Язык, который мы создали, называется Julia. Он уже удовлетворяет 90% наших непристойных требований и теперь ему нужны такие же требования других, чтобы формировать его дальше. Итак, если вы тоже непомерно жадный и слишком требовательный программист, мы хотим, чтобы вы попробовали Julia».
Python все еще безумно популярен. Но если вы освоите Julia сейчас, это позже может стать вашим золотым билетом.
Автор: Эри Джури
Текст адаптировала Евгения Козловская
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…