О языках программирования
Sep. 7th, 2020 02:09 pmВ длинных спорах о том "каким ЯП учить в самом начале" с большим отрывом лидируют концепты "меня так учили" и "я на этом прогаю". Есть еще распиаренная лурком цитата: "Хороший программист обязан знать C". Попробую выпрыгнуть из этого концепта.
Итак, первый язык. Товарищи, на каждого рафинированного программера (вроде большей части дискутирующих) наберется пяток людей вроде меня, которые активно прогают, но далеко не рафинированные программеры, и десятка полтора-два людей, которым надо прогать, но от случая к случаю, как приложение к основной работе (бухгалтер, статистик, тысячи их). Поэтому порог входа должен быть низким, и (школа же, дети же) должен быть практически немедленный выхлоп, желательно наблюдаемый.
На мой личный взгляд, вариантов, собственно, три: VB.NET (да, бейсик), JavaScript и, да, он самый, несправедливо нелюбимый и оболганный Python. На первом можно за час-два собрать гуевую утилиту и за день написать виндовую игру класса "артиллерия", на втором можно нарисовать что-то динамичненькое в вебе за то же время; питон в этом плане менее гуев и чуть более задротский, но вот все-таки за него широчайший спектр применения, килотонны библиотек и вся прочая экосистема.
Циклы, условия и массивы есть, процедуры есть, ООП есть, хорошая работа со строками есть. Что еще надо, чтобы достойно встретить старость. На выходе мы имеем возможность объяснить, зачем вообще программировать, показать, что можно сделать дендрофекальным методом и кодом, заложить базовые концепты. Не факать мозги тем, кому это совсем не надо, но заложить какую-то базу для тех, кому это зачем-то потом понадобится, чтобы шурупы в мозг закручивались не по целине, а по старым следам. Кроме того, во втором и третьем (имхо и в первом, просто область специфическая, кто писал эксел-макросы, тот поймет) случае язык имеет некую ненулевую ценность и сам по себе.
Если говорить о втором языке - то это уже явно для тех, кто хочет связать жизнь спроклятыми ИТ, то есть программеров на ставку или полставки. А вот здесь уже нужно поднимать вопросы об эффективности, о-нотации, структурах данных, серьезном ООП, мультипоточности и что там еще - универский уровень, в общем-то. Более кровавый вариант - это С, менее кровавый - Go; альтернатива с бизнес-ориентацией - Java. Есть новомодный Rust, но я его не трогал вообще.
Теперь о плюсах. Я бы сказал, что плюсы - это идеальный третий язык. Я въезжал в него два раза, один около 2003, второй в 2019 - это заняло немало усилий и времени при том, что в первом случае это был мой пятый язык (Basic, Pascal, C, Java), а во втором - шестой (+ Python, и это не считая баша и повершелла). Плюсы офигенны, не спорю, но STL+Boost, на мой взгляд, доступны только для человека, который хорошо знает, зачем и почему ему это надо. Именно поэтому, на мой взгляд, плюсам нет места в общеобразовательной программе. Это магистратура или аспирантура - ну, по состоянию на 2020 год.
Итак, первый язык. Товарищи, на каждого рафинированного программера (вроде большей части дискутирующих) наберется пяток людей вроде меня, которые активно прогают, но далеко не рафинированные программеры, и десятка полтора-два людей, которым надо прогать, но от случая к случаю, как приложение к основной работе (бухгалтер, статистик, тысячи их). Поэтому порог входа должен быть низким, и (школа же, дети же) должен быть практически немедленный выхлоп, желательно наблюдаемый.
На мой личный взгляд, вариантов, собственно, три: VB.NET (да, бейсик), JavaScript и, да, он самый, несправедливо нелюбимый и оболганный Python. На первом можно за час-два собрать гуевую утилиту и за день написать виндовую игру класса "артиллерия", на втором можно нарисовать что-то динамичненькое в вебе за то же время; питон в этом плане менее гуев и чуть более задротский, но вот все-таки за него широчайший спектр применения, килотонны библиотек и вся прочая экосистема.
Циклы, условия и массивы есть, процедуры есть, ООП есть, хорошая работа со строками есть. Что еще надо, чтобы достойно встретить старость. На выходе мы имеем возможность объяснить, зачем вообще программировать, показать, что можно сделать дендрофекальным методом и кодом, заложить базовые концепты. Не факать мозги тем, кому это совсем не надо, но заложить какую-то базу для тех, кому это зачем-то потом понадобится, чтобы шурупы в мозг закручивались не по целине, а по старым следам. Кроме того, во втором и третьем (имхо и в первом, просто область специфическая, кто писал эксел-макросы, тот поймет) случае язык имеет некую ненулевую ценность и сам по себе.
Если говорить о втором языке - то это уже явно для тех, кто хочет связать жизнь с
Теперь о плюсах. Я бы сказал, что плюсы - это идеальный третий язык. Я въезжал в него два раза, один около 2003, второй в 2019 - это заняло немало усилий и времени при том, что в первом случае это был мой пятый язык (Basic, Pascal, C, Java), а во втором - шестой (+ Python, и это не считая баша и повершелла). Плюсы офигенны, не спорю, но STL+Boost, на мой взгляд, доступны только для человека, который хорошо знает, зачем и почему ему это надо. Именно поэтому, на мой взгляд, плюсам нет места в общеобразовательной программе. Это магистратура или аспирантура - ну, по состоянию на 2020 год.
(no subject)
Date: 2020-09-10 06:52 pm (UTC)