Почему мы выбрали Julia для обучения студентов Бауманки программированию?

Мы в Evrone поддерживаем не только open-source проекты, но и образовательные инициативы. Например МГТУ им. Н. Э. Баумана пригласил нас вести курс «Алгоритмизация и программирование» для студентов факультета биомедицинской техники. Сегодня объясним, почему для обучения мы выбрали язык Julia.

Почему мы выбрали Julia для обучения студентов Бауманки программированию?

Что такое Julia?

Julia — это высокоуровневый мультипарадигмальный язык программирования, созданный в MIT для научных вычислений. Его авторы прямо сказали: мы жадные, мы хотим большего.

Мы хотим язык с открытым исходным кодом, под свободной лицензией. Мы хотим скорость C и динамику Ruby. Мы хотим язык с равнозначностью кода и данных, с настоящими макросами как в Lisp, но с очевидными, знакомыми математическими нотациями, как в Matlab. Мы хотим удобное средство для обобщённого программирования как Python, простое для статистики как R, естественную обработку строк как в Perl, мощную линейную алгебру как в Matlab, хорошую склейку программ как в shell. Что-то простое в изучении, но при этом делающее счастливыми большинство серьёзных хакеров.

Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman

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

И самое главное — Julia хорош как первый, школьный язык.

Каким должен быть «школьный» язык?

Конечно, мы не о том, что дети изучают в 5 классе. Там действительно место Scratch и аналогам, которые могут привлечь к программированию, понятно и доступно объяснить, что это такое.

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

Вот что мы хотели видеть от такого языка:

  • Более-менее универсальный синтаксис. Студентам предстоят разные предметы на поздних курсах. Например, «Введение в ОС», где будет использоваться C.
  • Высокая скорость в научных и математических задачах.
  • Акутальность и современность.
  • Доступность учебных материалов.

Почему мы отказались от Ruby, Python и Pascal?

Ruby

Несмотря на то, что Evrone известны как эксперты в Ruby (с него, кстати, и началось наше знакомство с МГТУ — подробнее об этом вот тут), мы отказались от этого языка.

Ruby хорош, он повлиял на Julia, но сегодня используется всё больше в веб-приложениях и для сложных вычислений не подходит. Они на Ruby реализуются сложнее. Хотя по всем остальным параметрам было попадание.

Python

Python звучит как стандартный выбор из-за относительной простоты освоения. Но это кажущаяся лёгкость. Да, студенты уже через 2 недели решали бы какие-то мелкие задачи с данными, но до академического представления о программировании пришлось бы копать ровно столько же, сколько и в другом языке. К тому же, как только мы перешли бы к сложным вычислительным задачам, то столкнулись бы с ограничениями в скорости и производительности.

Также кроме применимости в научных задачах нас не устроил синтаксис. На 2-3-4 курсах нас бы вспоминали недобрым словом.

Pascal

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

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

Julia сочетает в себе всё нужное для курса?

Получается, что да.

1) С Julia будет легко перейти на другие языки. Спасибо влиянию других популярных языков на синтаксис.

2) Он производительный, потому что специально создан для науки. Пойти куда-нибудь работать уже на втором куре с ним непросто, но тут мы возвращаемся к п.1. :)

3) Это современный язык с активной поддержкой сообществом. В том числе и научным. Если студенты заходят стать учёными, то у них уже будет классный, применимый инструмент в кармане. Бери и делай науку.

4) На его основе запускают курсы в разных университетах мира. А это значит, что учебных пособий становится всё больше и больше.

Ну а если теперь вам интересно узнать про Julia побольше — добро пожаловать на официальный сайт и GitHub.

99
6 комментариев

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

7
Ответить

Комментарий недоступен

Ответить

Мы не так чтобы прям хейтим питон за синтакс. Синтакс-то у него хороший. Но учить на нём чему угодно, кроме простого процедурного стиля, неудобно

Ответить

best article

1
Ответить