A A A A Автор Тема: Какой язык программирования учить  (Прочитано 5108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Павел Васильев

  • *****
  • Сообщений: 1 119
  • Благодарностей: 34
  • БПЦ 20х60, HD 75x60
    • Сообщения от Павел Васильев
Re: Какой язык программирования учить
« Ответ #80 : 28 Ноя 2025 [10:01:00] »
А если астроному-любителю надо реально уметь програмировать счетно-решающие машины ему лучше идти в реальную промышленость где програмами делают дела по изменению реальности космоса
По поводу создания космических программ для астрономии.
Автор темы спросил - какой язык программирования учить?  И что в ответ? Мнения умудрённых опытом экспертов разделились - ты сначала математику выучи с физикой, а потом уже Питон, нет лучше Паскаль, хотя нет он давно загнулся как и Бейсик, учи Фортран для параллельных вычислений, всякие С, C# и С++ ты не осилишь, поэтому осваивай Котлин (Кронштадтский) вместе с Ассемблером, ну и Раст, Свифт и Го впридачу, конечно, с Матлабом, Экселем и SQL не забудь. Тогда будешь на скриптах JavaScript в вебских планетариях астеризмы рисовать и отображать звёзды, видимые в телескопы. Но сперва учи английский, остальные языки выучишь потом. И тут топик стартёр осознал, судя по всему, что не успеет ничего такого изучить и за сто лет, грустно подумал, что ну его, это программирование, в болото. Дураков нет, пусть искусственный интеллект программирует, а я буду пользоваться плодами его интеллектуального творчества. С  Чатжипити, Дипсиком и Кандинским жить станет лучше и веселей.


« Последнее редактирование: 28 Ноя 2025 [10:40:35] от Павел Васильев »
Программирование системы AstrobloQ https://gitverse.ru/astrogeoscenter/astrobloq

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #81 : 28 Ноя 2025 [12:01:15] »
Автор темы спросил - какой язык программирования учить?  И что в ответ?

https://astronomy.ru/forum/index.php/topic,226601.msg6434988.html#msg6434988

учи Фортран для параллельных вычислений,

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

будешь на скриптах JavaScript

Жабаскрипт вроде уже все. Теперь зовут типа веб скрипт или просто скрипт. Если бы инетик подыхал чуть менее быстро - было бы вполне полезно делать весьма многоплатформеные програмы с исполнением в стандартных веб програмах на таких скриптах и с вмеру удобным интерфейсом. Пока еще тоже можно. Но что будет дальше мало понятно. Ну со скоростью работы в интерпретаторе там ограничено - но для простых счетных програм астрономии может хватать.
« Последнее редактирование: 28 Ноя 2025 [12:18:57] от Ph_user »

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #82 : 28 Ноя 2025 [12:17:17] »
https://astronomy.ru/forum/index.php/topic,226601.msg6434988.html#msg6434988
Чисто интересно - а тут есть люди, которые уже в 10 классе школы прочитали какое-нибудь издание Страуструпа целиком и решали школьные примеры на С++ с авто птр, защищенными конструкторами, перегрузкой арифметических операций и разумеется через лямбды и итераторы ? :)

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #83 : 28 Ноя 2025 [12:22:19] »
Простейшие основы плюсатых сей при наличии способностей можно понять примерно за 1 день. Выделить этот день за отсидку срока школьной повиности примерно с 1 по 10..11 клас вполне можно попробовать. Это даже сильно быстрее изучения натуральных языков животинок. Ну и надо постояно быть в той языковой среде чтобы дообучение шло уже типа погружением. Возможностей останков инетика со всякими гитхабами может быть еще достаточно.

При пользовании инструментами типа и плюсатых сей тоже может работать типовое правило вроде для решения 0.8 части задач достаточно 0.2 доли возможностей инструментов. Потому изучать обязательно вот все 1.0 возможности плюсатых сей может быть без надобности.

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

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #84 : 28 Ноя 2025 [12:25:39] »
Простейшие основы плюсатых сей при наличии способностей можно понять примерно за 1 день.
Ради простейших основ с С++ заморачиваться даже и не стоит.

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #85 : 28 Ноя 2025 [12:27:52] »
Ради простейших основ с С++ заморачиваться даже и не стоит.

Если для решения програмильных задач все еще с запасом хватает обычных сей - конечно перегружать научный мозг плюсатыми сями еще рано и мало рационально. Програмер на обычных сях должен сам понять когда ему уже надо будет добавить возможности плюсов. Плюсы это только дополнительные возможности к обычным сям вместо обязательных. Обычных простых сей все еще хватает чтобы делать и математику и всю возможную производительность через многопоточность и симд хотя бы на универсальных процесорах без внешних апи. И при наличии сишных апи к внешним ускорителям вычислений и через внешние ускорители. Производители товарных внешних ускорителей тоже заинтересованы в продажах своих товаров и скорее безплатно такие апи дают.

Если надо дергать какую более новую удобную математику из новых плюсатых библиотек - так ее можно дергать и без захода в излишнюю плюсатость. А многопоточность к концу первой половины 21 века работает и через опенмп вполне годно с добавкой одной строчки прагмы к циклу-блоку. Без потребностей в рукопашном менеджменте осевых потоков в каждой новой самодельной сишной програме. Для годной производительности в многотопочности на реальных доступных на рынке архитектурах надо знать оптимизацию под архитектуры вместо удобств плюсатых сей. Сами плюсатые си за програмера оптимизацию задачи под архитектуру мало будут делать. Если очень надо - можно пробовать понимать и в устройство примерно такой же автоматизированой многопоточности новых плюсатых сей.

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

и решали школьные примеры на

Чтобы уметь делать дело по космическим програмам надо сразу решать свои космические задачи нужным к изучению инструментом. Так обучение пойдет лучше имхо. Вроде что-то похожее было в системе обучения дитенышей макаренко - чтобы обучение шло на выработке реальных полезностей в космосе вместо отчужденых безполезных примеров.
« Последнее редактирование: 28 Ноя 2025 [12:49:15] от Ph_user »

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #86 : 28 Ноя 2025 [15:45:44] »
Чтобы уметь делать дело по космическим програмам надо сразу решать свои космические задачи нужным к изучению инструментом.
Где школьник, а где космические задачи ?
Не, ну мож вы в школе уже знали углы Эйлера и задачу двух тел и про Лагранжианы :)

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #87 : 28 Ноя 2025 [16:57:27] »
Где школьник, а где космические задачи ?

Школьник имеет статус школьника пока он на отсидке срока обязательной школьной повиности за забором школы под охраной. А как вышел за забор после звонка на реальную планету в реальном космосе и пошел до своей деревни по своей планете своими ногами километров 6 мимо полей и лесов так вполне уже космонавт или хотя бы любитель-астроном со своими космическими задачами в обычном космосе. Может по дороге вынуть телескоп с фотиком из рюкзака - пофотать че из космоса и по приходу в деревню загрузить фотки в машину счетно-решающую электрическую и обработать своей придуманой програмой на сях с использованием уже обычных симд ускорений вычислений. Щас тут уже на 60 северной широте рано темнеет - школьники из школы по темноте уже идут.
« Последнее редактирование: 28 Ноя 2025 [17:03:15] от Ph_user »

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #88 : 28 Ноя 2025 [20:13:50] »
Програмер на обычных сях должен сам понять когда ему уже надо будет добавить возможности плюсов.
Ну я могу сказать, что и на курсовой ( 3 курс ), и на бакалаврском дипломе ( 4 курс ) мне возможности плюсов вообще не потребовались.
Однокурсникам - и на магистерской не потребовались ( у меня аналитика была на магистерской - я численно считал только алгебраические графики )

Оффлайн e+

  • *****
  • Сообщений: 4 900
  • Благодарностей: 190
  • Урания, ВАГО
    • Сообщения от e+
Re: Какой язык программирования учить
« Ответ #89 : 28 Ноя 2025 [22:05:48] »
https://astronomy.ru/forum/index.php/topic,226601.msg6434988.html#msg6434988
Чисто интересно - а тут есть люди, которые уже в 10 классе школы прочитали какое-нибудь издание Страуструпа целиком и решали школьные примеры на С++ с авто птр, защищенными конструкторами, перегрузкой арифметических операций и разумеется через лямбды и итераторы ? :)
То, что было до STL - вполне осваивается, особенно когда в голове уже есть некое понимание динамики и кинематики, на что основы ООП ложатся довольно неплохо, включая наследование, перегрузку и виртуальные функции с классами. Да, сейчас С++ намного шире в части STL и того, что из неё следует. При этом, на уровне синтаксиса язык расширился всё же не столь Big-Bang-ово и до-STL-ная база - по прежнему база.

Оффлайн Вантуз

  • ****
  • Сообщений: 263
  • Благодарностей: 3
    • Сообщения от Вантуз
Re: Какой язык программирования учить
« Ответ #90 : 28 Ноя 2025 [23:22:07] »
Я наслышан, что астрономия (научная деятельность) на 90% состоит из программирования.
По времени -- возможно, по содержанию нет.
Цитата
Так вот, есть вопрос: какой язык программирования мне стоит учить? Сейчас в 10 классе.
Если уже программируете на чем-нибудь, посмотрите, например, книжку Столярова:
http://www.stolyarov.info/books/pdf/progintro_dmkv1.pdf

Оффлайн peg59

  • Модератор
  • *****
  • Сообщений: 10 630
  • Благодарностей: 34
  • Звезды зовут
    • Сообщения от peg59
Re: Какой язык программирования учить
« Ответ #91 : 28 Ноя 2025 [23:37:24] »
посмотрите, например, книжку Столярова:
Столяров хотя и не без закидонов, но пишет здорово (да и в предмете шарит). Поддерживаю.
Maxvision 150/750 ньютон (доработанный)
SvBony 102 ED   БПЦ20х60

Оффлайн Karagy

  • *****
  • Сообщений: 1 839
  • Благодарностей: 62
    • Сообщения от Karagy
Re: Какой язык программирования учить
« Ответ #92 : 28 Ноя 2025 [23:41:21] »
Гики сделали себе джулию. Как замена фортрану.
https://julialang.org
https://juliaastro.org
https://t.me/JuliaLanguage

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #93 : 29 Ноя 2025 [00:09:11] »
книжку Столярова:
http://www.stolyarov.info/books/pdf/progintro_dmkv1.pdf

Беда останков цивилизации скорее в отсутствии новых специальных книжек каждые 0.1 века примерно для каждого очередного поколения животинок. Там на книжке написано издания 2021 когда интель уже вовсю досыпает новых и новых добавок полезных в авх512. Типа кучи инструкций по прямой работе с фп16 - вот ровно в 2021 первая версия. И первые стабильные релизы авх512_фп16 обещаны только в сапфир рапиде примерно после 2023. А там книжка по содержанию только на уровне середины 199х примерно - когда еще делали и продавали целый и386 процесор на 16бит. Ну если и изучить инструкции и386 уже ко второй четверти 21 века - надо уже добавлять понимание в процесоры с симдом до 512бит хотя бы. А там еще только может про внешний фпу скалярный только написано. Мало понятно зачем делали книжку по паскалю и и386 в 2016. Вмеру умные дяди должны были делать книжки для будущих сезонов - упреждающими обобщениями типа.

Или после этой мемориальной книжки про середину 199х примерно надо будет искать более новые книжки про архитектуры второй четверти 21 века уже.

Оффлайн 3i Atlas

  • Новичок
  • *
  • Сообщений: 8
  • Благодарностей: 1
  • Мне нравится этот форум!
    • Сообщения от 3i Atlas
Re: Какой язык программирования учить
« Ответ #94 : 29 Ноя 2025 [00:24:00] »
15 лет назад, когда моему сыну былр 10 лет, я поставил ему на комп линукс, вручил стопку книг и сказал: развивайся. В то время когда его сверстники играли в GTA , он ходил на гимнастику и занимался велосипедным спортом, так как линукс был сложной штукой. Сейчас он работает программистом в Лондоне.

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #95 : 29 Ноя 2025 [10:51:29] »
То, что было до STL - вполне осваивается, особенно когда в голове уже есть некое понимание динамики и кинематики, на что основы ООП ложатся довольно неплохо, включая наследование, перегрузку и виртуальные функции с классами.
Вот не вижу смысла ставить телегу впереди лошади - ставить язык вперед задачи. Исходить надо из задачи. У ученых две типовых задачи для ЭВМ  - 1) моделирование 2) обработка экспериментальных данных. Причем студенту, включая дипломную работу, сильно сложное не дадут - это не кандидатская и не докторская. Для моделирования имеем набор формул, которые симулируют исходные данные, потом собственно модель в формулах, потом набор формул которые обрабатывают их после прогонки через модель. Как правило для проверки модели берется несколько наборов данных по одному-нескольким параметрам, потом смотрится результаты в разрезе этих параметров - по этому надо построить графики, и делается заключение о применимости модели.
Например у меня бакалаврская была типа такого "применение цифровых нерекурсивных фильтров высокого порядка для детектирования сигналов Шумановского резонанса". Шумановский резонанс - это резонанс на сверхнизких частотах - порядка единиц герц ( первый порядка 7.5 Гц ) от объемного волновода Земля-Ионосфера. Проблема в его выделении - в наличии сильной электромагнитной помехи 50 Гц от электросетей. Т.е. нужен фильтр низких частот  очень высокого порядка чтобы ее отсечь.
Симуляция тогда - это синтез слабого сигнала 7.5 Гц на фоне сильной помехи 50 Гц - т.е. сложение двух синусоид с сильно отличающимся амплитудами, формат данных - double с плавающей точкой. Модель - сам цифровой фильтр. Обработка - БПФ и сопоставление уровня 7.5 Гц и 50 Гц. Параметр - порядок фильтра ( скажем 20, 50, 100 ).
Делается несколько файлов сигнала по параметру, прогоняется через модель в другие файлы и далее прогоняется через БПФ в третьи файлы спектра. Последние после малой обработки - выделение уровня гармоник - на график.
Никакой С++ и ООП тут вообще не требуется - решается на обычных процедурных языках типа Фортран, С ( я на нем делал ), Пвскаль ( а вот на нем у меня была готовая программа БПФ ). Можно сделать тоже самое на Маткаде. ООП тут сугубо избыточно.

Во втором случае вместо симуляции - реальные данные с экспериментальной установки - наборы уже готовых файлов. Ровно тот же инструментарий. ООП - не нужен. Однокурсники именно так и решали для подобных задач.

Тут выше сказали замечательную фразу "Если для решения програмильных задач все еще с запасом хватает обычных сей - конечно перегружать научный мозг плюсатыми сями еще рано и мало рационально. Програмер на обычных сях должен сам понять когда ему уже надо будет добавить возможности плюсов". Я лишь добавлю что для курсовых/дипломных работ, как правило, плюсы и не нужны как таковые. Все тоже самое делается в Jupyter Notebook на Питоне.

Оффлайн e+

  • *****
  • Сообщений: 4 900
  • Благодарностей: 190
  • Урания, ВАГО
    • Сообщения от e+
Re: Какой язык программирования учить
« Ответ #96 : 29 Ноя 2025 [11:08:41] »
... Програмер на обычных сях должен сам понять когда ему уже надо будет добавить возможности плюсов". ...
Безусловно. А поскольку начинать надо с чего-то и все возможности современного С++ однократно в голову не загрузишь, то на задачах попроще - базу, на задачах поинтереснее (если таковые будут) - что-то посложнее. Любую задачу можно решить средствами структурного программирования (просто потому что на уровне бинарного кода это всё последовательность команд). При этом попробовать ООП можно и на  простых задачах (главное, чтобы решение было адекватным) с прицелом на дальнейший рост.

Оффлайн Ph_user

  • *****
  • Сообщений: 3 160
  • Благодарностей: 82
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #97 : 29 Ноя 2025 [11:17:21] »
Гики сделали себе джулию.

Что полезно знать в животноводство таких безплатных опенсорсных гиков - их все полезные и нужные труды по проекту обычно очень ограничены во времени. Типовым сроком около 0.1 века. И этот срок обычно раза в 3..4+ короче времени вмеру трудоспособного состояния тушки гика. Это значит если там уже примерно все сделано - скоро все это издохнет или повиснет на останках последних помнящих проект пенсионеров-девелоперов допиливающих по 1 багу за 1 обормот вокруг системной звезды и примерно без способностей припиливать обновы архитектур на рынке. За первую четверть 21 века останки инетика уже набиты останками таких давно заброшеных програмных проектов. В максимуме вваливаний там могло быть порядка 100+ весьма активных голов девелоперов - а через 0.1..0.15века уже 1..2 и опаньки.

Потому учить полезннее стабильные инструменты вмеру долго удерживаемые в современости крупными конторами и они обычно комерческие типа мелкософта.

студенту, включая дипломную работу, сильно сложное не дадут - это не кандидатская и не докторская.

Это намекает на разумные предположения о реальной силе мозга уже вполне взрослого дитеныша.
« Последнее редактирование: 29 Ноя 2025 [11:29:16] от Ph_user »

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #98 : 29 Ноя 2025 [11:41:07] »
Безусловно. А поскольку начинать надо с чего-то и все возможности современного С++ однократно в голову не загрузишь, то на задачах попроще - базу
Задачи "чуть попроще" от С++ - это задачи для С.
В принципе подойдет любой другой язык процедурного программирования - С, Паскаль, Фортран. Да хоть Алгол или PL/1 - но смысла никакого нет.
Чем брать процедурное подмножество от С++, проще его взять от Питона - там библиотека богатая как раз для ученых и синтаксис проще. А в Jupyter - и отладка.

Оффлайн yacc

  • ***
  • Сообщений: 126
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #99 : 29 Ноя 2025 [11:55:49] »
Это намекает на разумные предположения о реальной силе мозга уже вполне взрослого дитеныша.
Это намекает на то, что условно диплом - это не просто выложить рабочие исходники условно на "гитхаб ВУЗа", а в том, чтобы посчитать, проверить разные параметры, сделать графики и самое главное - правильно это оформить в печатном виде - и теорию описать и суть и результаты, вылизать все синтаксические и грамматические ошибки русского языка, оформить по форме нужными шрифтами и отступами с нужными абзацами и ссылками на литературу и источники - эдакое мини-издательство. А еще к защите подготовиться, где коварные преподы будут задавать коварные вопросы типа "А почему именно так?".

Если программера попросить описать весь код приложения со всеми там экранами, их связями и написать удобное руководство для  пользователя то это времени займет побольше чем прогаммирование и он скажет "Да идите вы с такими задачами лесом!". Ибо код это мысль.