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

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

Оффлайн ἭλιοςАвтор темы

  • Новичок
  • *
  • Сообщений: 2
  • Благодарностей: 0
  • Астрономы всех стран соединяйтесь!
    • Сообщения от Ἥλιος
Здравствуйте, жители форума. Я наслышан, что в астрономия (научная деятельность) на 90% состоит из программирования. Так вот, есть вопрос: какой язык программирования мне стоит учить? Сейчас в 10 классе. Буду рад

Оффлайн crimchik

  • *****
  • Сообщений: 3 761
  • Благодарностей: 209
  • наблюдаю звёзды, сидя на табуретке
    • Сообщения от crimchik
Re: Какой язык программирования учить
« Ответ #1 : 24 Ноя 2025 [21:50:56] »
сдается мне, что к моменту вашего выпуска из института через 7 лет все программы уже будут писать нейронки. так что сейчас вам имеет смысл сосредоточиться на самом простом языке, типа питон, изучать алгоритмы и математику. тогда вы сможете поставить четкую задачу и написать качественное техническое задание на реализацию нужной вам идеи

Nicon Aculon 7x35, Hawke Nature 10x50
SW AZ5 + TS 102ED f/7

Оффлайн Pluto

  • Администратор форума
  • *****
  • Сообщений: 27 919
  • Благодарностей: 1155
    • Сообщения от Pluto
Re: Какой язык программирования учить
« Ответ #2 : 24 Ноя 2025 [22:11:04] »
C++

Оффлайн Тот самый Кеплер

  • *****
  • Сообщений: 3 712
  • Благодарностей: 180
  • Per aspera ad astra
    • Сообщения от Тот самый Кеплер
Re: Какой язык программирования учить
« Ответ #3 : 25 Ноя 2025 [10:19:53] »
C++ вместе с Boost, на линуксе. Нейронки сами себя не напишут :)
С уважением, Андрей.
--
http://kepler-observatorium.ru

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

  • *****
  • Сообщений: 1 083
  • Благодарностей: 34
  • БПЦ 20х60, HD 75x60
    • Сообщения от Павел Васильев
Re: Какой язык программирования учить
« Ответ #4 : 25 Ноя 2025 [11:46:16] »
C++ вместе с Boost, на линуксе. Нейронки сами себя не напишу
А почему сразу линух? Его доля на рынке мала. Из коммерческих соображений надо учить Swift и офшорно пахать на фирму Apple для обеспечения астрономией айфонов. И будет тебе счастье.
Программирование системы AstrobloQ https://gitverse.ru/astrogeoscenter/astrobloq

Оффлайн ROVIAN

  • Модератор
  • *****
  • Сообщений: 68 099
  • Благодарностей: 1427
  • RV6LOT Icom IC-775DSP
    • Сообщения от ROVIAN
    • Астрономия в Ростове-на-Дону
Re: Какой язык программирования учить
« Ответ #5 : 25 Ноя 2025 [11:48:47] »
C++ вместе с Boost, на линуксе. Нейронки сами себя не напишу
А почему сразу линух? Его доля на рынке мала. Из коммерческих соображений надо учить Swift и офшорно пахать на фирму Apple для обеспечения астрономией айфонов. И будет тебе счастье.
Отличный совет....  :facepalm:  пахать на врага, обеспечивая его программным обеспечением.  :(
80ED+SW0.85/HEQ5/533ММ/QHY5-II,
203/1000/HEQ5/МРСС/183ММ/QHY5-II

Н 150,200,300,  МСТ-180 Hand made  165,215,300,317,450
Canon 550D, 550DA, 1100DA, 5DM2, 5DM4,  (SY 14/2.8, SY 135/2.0, EF 70-200/4L, )  

Оффлайн Тот самый Кеплер

  • *****
  • Сообщений: 3 712
  • Благодарностей: 180
  • Per aspera ad astra
    • Сообщения от Тот самый Кеплер
Re: Какой язык программирования учить
« Ответ #6 : 25 Ноя 2025 [11:55:43] »
C++ вместе с Boost, на линуксе. Нейронки сами себя не напишу
А почему сразу линух? Его доля на рынке мала. Из коммерческих соображений надо учить Swift и офшорно пахать на фирму Apple для обеспечения астрономией айфонов. И будет тебе счастье.

Потому что его доля растёт и будет расти, прежде всего в тех областях где есть большие и очень большие деньги. В профессиональной астрономии тоже линукс, насколько мне известно. Ну и то, что написано под линукс, если заведомо озадачиться мультиплатформенностью, то вы сможете свой проект портировать хоть под вину, хоть под мак. А с винапи у вас так не выйдет, по крайней мере быстро и элегантно.
С уважением, Андрей.
--
http://kepler-observatorium.ru

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

  • *****
  • Сообщений: 1 083
  • Благодарностей: 34
  • БПЦ 20х60, HD 75x60
    • Сообщения от Павел Васильев
Re: Какой язык программирования учить
« Ответ #7 : 25 Ноя 2025 [12:13:28] »
с винапи у вас так не выйдет, по крайней мере быстро и элегантно.
Дайте, пожалуйста, ссылку на какой-то известный астрономический проект, изначально написанный под линукс, который потом портирован под винду, а не наоборот. Я что-то таких не встречал, может есть, но мелкие и мало.
Программирование системы AstrobloQ https://gitverse.ru/astrogeoscenter/astrobloq

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

  • *****
  • Сообщений: 1 083
  • Благодарностей: 34
  • БПЦ 20х60, HD 75x60
    • Сообщения от Павел Васильев
Re: Какой язык программирования учить
« Ответ #8 : 25 Ноя 2025 [12:27:41] »
если заведомо озадачиться мультиплатформенностью, то вы сможете свой проект портировать хоть под вину, хоть под мак.
А, если изначально (!) озадачиться, то пишите на Java. Один мой коллега, программист из заморской страны, написал крутую систему гидромоделирования на с++, она имела успех и продавалась, но он решил переписать её на джаву. Пять лет портировал её на Java и в итоге всё выбросил вместе с исходниками в мусорную корзину. Обанкротился. Вот такие дела.
Программирование системы AstrobloQ https://gitverse.ru/astrogeoscenter/astrobloq

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 873
  • Благодарностей: 566
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Какой язык программирования учить
« Ответ #9 : 25 Ноя 2025 [14:11:28] »
Я наслышан, что в астрономия (научная деятельность) на 90% состоит из программирования.
Это не так.

Так вот, есть вопрос: какой язык программирования мне стоит учить?
Соответственно, никакой. Только физику, математику и английский до разговорного уровня. В профильном ВУЗе курс какого-нибудь математического пакета в любом случае будет.
Трэш, угар и астрономия!
沖縄最高

Оффлайн Ed_Vazhorov

  • Модератор
  • *****
  • Сообщений: 4 482
  • Благодарностей: 523
  • MPC:M12, CG5GT C8/C6N/MK127/SW80/66ED SV605/705/6D
    • Skype - Ed_Vazhorov
    • DeepSkyHosting: vazhorov
    • Сообщения от Ed_Vazhorov
    • Группа "Астрономия XXI"
Re: Какой язык программирования учить
« Ответ #10 : 25 Ноя 2025 [14:25:20] »
Вообще, это зависит от поставленных задач - какой язык программирования учить. Это как выбор инструментария - под конкретное дело. Но среди самых популярных - Python, JAVA, C++ остаются многие годы.
Забавно, но крупные кроссплатформенные астропрограммы - SkyChart, ASTAP, Hallo Northern Sky (HNSKY) и CCDCiel написаны на Lazarus - FreePascal.
Когда я учился на астронома в начале 90-х, нас обучали Паскалю и Фортрану. Первый - для понимания алгоритмов и быстрой реализации задач. Второй - для математики. Для баз данных был FoxPro. Он в свое время мне очень пригодился.
Сейчас все эти функции, а еще многие другие в принципе выполняет Python, на котором, кстати, реализованы несколько астропроектов (в том числе, всем известный StarNet++, GraXpert).
Кроссплатформенный Python имеет широкое применение как в образовании (более 90% мировых ВУЗов избрали его как основной), так и в науке, в том числе, в астрономии. На нем практически построена data science. Он полезен сисадминам для автоматизации рутины (кстати, в CCDCiel есть поддержка запусков скриптов автоматизации на Python, а в Siril он поддерживается нативно). На нем можно писать визуальные приложения, используя библиотеки Qt (и не только).
Кроме того, на Python реализуются веб-проекты (к примеру, изначально Гугл был написан на Python). Создание веб-проектов на Flask и Django актуально и востребовано. Также востребованы тестировщики на Python+Flask. Мой друг через много лет работы сисадмином освоил профессию Python-тестировщика и работает с пандемии удаленно.
 
Конечно, уметь писать на С - навык полезный (он мне пригодился, когда осваивал Arduino, правда, теперь можно на Python писать решения под Raspberry Pi, Raspberry Pi Pico). Создавать мобильные приложения на Java/Kotlin - тоже тема актуальная. Но многое уже можно реализовать на том же Python, например, используя библиотеку Qiwi для мобильных приложений и мультимедиа, или CPython для оптимизации скорости.
Ни в коем случае не настаиваю, но сам начал изучать Python с 2017г. (почти в 50-лет, т.к. он оказался востребованнее тех языков, коими владел, да и ребенку подарил RasPi - надо было показать что с ним делать). Потому что бесплатный, кроссплатформенный, актуальный/развивающийся, имеющий всеобъемлющий репозиторий библиотек, (включая астрономические) и легкую читаемость/портируемость/разворачивание/обучаемость, популярный в DIY, веб-программировании, анализе данных и ML/AI.
После даже удаленно преподавал Python детям знакомых во время пандемии. В ковид прошел курс Python для анализа данных и ML.
Сейчас на Python работает мой телеграм-бот и не только.
Итак, выбор языка программирования зависит от поставленных задач. Но многие сейчас решаются быстрым способом через ООП-языки высокого уровня, такие как Python, т.к. под них много готовых решений и руководств, в том числе, для астрономии.
« Последнее редактирование: 26 Ноя 2025 [13:06:22] от Ed_Vazhorov »

Оффлайн 3i Atlas

  • Новичок
  • *
  • Сообщений: 8
  • Благодарностей: 1
  • Мне нравится этот форум!
    • Сообщения от 3i Atlas
Re: Какой язык программирования учить
« Ответ #11 : 25 Ноя 2025 [14:52:51] »
Присоединяюсь к совету учить математику и алгоритмы, а также английский до уровня C1. Языков надо знать несколько, 1 скриптовый лучше всего Python. Второй системный: Си самый простой. Еще не помешает знание ООП это С++ или Java. Очень востребован сейчас язык Rust. Остальные языки учатся интуитивно и быстро. Swift учить не надо.
Nikon Aculon 7x50

Оффлайн Ph_user

  • *****
  • Сообщений: 2 935
  • Благодарностей: 79
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #12 : 25 Ноя 2025 [18:20:18] »
А почему сразу линух?

Виндус умрет вместе с европейцами. А линух еще какие-нить новозеландцы будут дольше помнить и поддерживать.

Один мой коллега, программист из заморской страны, написал крутую систему гидромоделирования на с++, она имела успех и продавалась, но он решил переписать её на джаву. Пять лет портировал её на Java и в итоге всё выбросил вместе с исходниками в мусорную корзину. Обанкротился. Вот такие дела.

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

Оффлайн e+

  • *****
  • Сообщений: 4 872
  • Благодарностей: 189
  • Урания, ВАГО
    • Сообщения от e+
Re: Какой язык программирования учить
« Ответ #13 : 25 Ноя 2025 [20:28:15] »
Здравствуйте, жители форума. Я наслышан, что в астрономия (научная деятельность) на 90% состоит из программирования. Так вот, есть вопрос: какой язык программирования мне стоит учить? Сейчас в 10 классе. Буду рад
1. Это форум астрономов-любителей. То есть людей, работающих в какой-угодно области, кроме астрономии. Астрономов-профессионалов тут крайней мало, а кто есть, скорее всего напишет довольно чудное. С чего это я вдруг решил что сам напишу что-то иное - вопрос тоже правильный, но это выходит за рамки темы. ;D

2. В Астрономии, прежде всего, вам потребуется знание Математики, Физики, Английского языка и умение критически мыслить (в том числе и в оценке своих мыслей). Причём, если вы хотите действительно заниматься научной деятельностью - то на уровне ведущих физико-технических ВУЗ-ов страны, таких как МФТИ, МИФИ, Бауманка, МГУ. Скорее всего, чтобы попасть на учёбу на какие-либо астрономические отделения, сейчас достаточно и куда худших познаний, но это уже будет не про науку. Если вы понимаете, что не тянете - лучше пойдите на хорошую техническую специальность, приносите пользу стране и себе, а там уже и на любительскую астрономию заработаете.

3. В научной iT-деятельности одним языком (в широком смысле) - не обойтись. Для компьютерного моделирования (вот того самого, на суперкомпьютерах) вам вероятно потребуется С/С++/Фортран. Для работы с приличным базами данных - SQL. Да, сейчас пошло ещё и всякое NoSQL-ное, но это вообще отдельная барахолка. Для повседневной работы в Linux - bash, awk и прочее. Для написания GUI с кнопочками и каких-нибудь простых программулин может подойти и Python и ещё чего-нибудь. Для всевозможных Web-приложений (и не только - и для написания тоже каких-нибудь GUI) - Java.

4. Помимо всего этого есть огромное количество и других языков каждый из которых пытается что-то улучшить в существующих. Когда будет надо - столкнётесь и разберётесь. Для начала, как по мне, так лучше C и основы C++ вместе с основами работы самой вычислительной техники (вот только где это вам адекватно расскажут на астрономическом отделении? - придётся разбираться самому).

5. И, да, как вы уже заметили - Linux. У Windows, по крайней мере сейчас, есть ниши где он почти не заменим (например работа с CAD-системами, определённые виды офисной работы), но в мире больших вычислений, науки и iT в целом - без Linux всё равно что на велосипеде без одного колеса.
« Последнее редактирование: 25 Ноя 2025 [20:44:41] от e+ »

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 873
  • Благодарностей: 566
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Какой язык программирования учить
« Ответ #14 : 26 Ноя 2025 [00:18:12] »
Для компьютерного моделирования (вот того самого, на суперкомпьютерах) вам вероятно потребуется С/С++/Фортран. Для работы с приличным базами данных - SQL.
Да нахрен это всё не нужно. "Настоящие учёные" не программируют от слова "вообще", во времена оны они по встроенной справке мастырили на коленке что-то в Maple, оно один раз считалось, результаты - в диссер, остальное - в помойку. Может, сейчас на Питоне мастырят, но суть та же самая, собрать из кусочков нечто работающее на одном-единственном в мире компьютере, посчитать и забыть.
Трэш, угар и астрономия!
沖縄最高

Онлайн Shandrik

  • *****
  • Сообщений: 25 237
  • Благодарностей: 1308
  • Счастье для всех даром!..
    • Сообщения от Shandrik
Re: Какой язык программирования учить
« Ответ #15 : 26 Ноя 2025 [00:22:43] »
А почему сразу линух? Его доля на рынке мала. Из коммерческих соображений надо учить Swift и офшорно пахать на фирму Apple для обеспечения астрономией айфонов. И будет тебе счастье.
Отличный совет....  :facepalm:  пахать на врага, обеспечивая его программным обеспечением.  :(
Разумеется, это чтобы выявить уязвимости!
« Последнее редактирование: 26 Ноя 2025 [00:33:52] от Shandrik »
"Иметь, а не быть" - главнейший тезис гниения! (с) Юдин

Где сойдутся воедино
Человек и то, чем был он...

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

  • *****
  • Сообщений: 1 083
  • Благодарностей: 34
  • БПЦ 20х60, HD 75x60
    • Сообщения от Павел Васильев
Re: Какой язык программирования учить
« Ответ #16 : 26 Ноя 2025 [00:48:21] »
Забавно, но крупные кроссплатформенные астропрограммы - SkyChart, ASTAP, Hallo Northern Sky (HNSKY) и CCDCiel написаны на Lazarus - FreePascal.
Имею мнтголетний опыт программирования на поприще различных языков, начиная с Фортрана и кончая OpenCL. Открою страшную тайну.  Из известных 100 языков на роль универсального языка программирования претендует ...
ОП (Объектно-ориентированный Паскаль) - самый лучший язык разработки программ для астрономии во всех отношениях, и для обучения и для создания больших ИС с биг датами, ИИ и СУБД. На Си много хороших библиотек, но, например, рекомендуемая МАС либа SOFA конвертируется на Паскаль за 1 минуту и дальше можно пользоваться этой динамической  библиотекой.

Главные преимущества ОП (Object Pascal):
 - алголоподобный синтаксис ближе всего к английскому языку и общепринятым математическим обозначениям;
- основные понятия, типы данных и методов даются без сокращений: program, function, procedure, record, class, constructor, destructor, integer, boolean и т.д.;
- ключевые слова и символы операций понятны и однозначны, нет двойных ++, ==, &&, ::, || и т.п. Знак * используется только для умножения;
- присвоение значения обозначается как := , а не как знак математического равенства =;
- нечувствительность к регистру, можно создавать отлично читаемые идентификаторы любой длины и не делать постоянно ошибок при наборе прописных и строчных букв;
- нет проблем с необходимостью переключения из основных в заголовочные файлы при отладке программ, нет двойного редактирования списка подлючаемых модулей в #include <module> и pragma link <module>;
- компиляция и сборка бинарников больших проектов выполняется на порядок быстрее, чем у компиляторов си-подобных языков.
Программирование системы AstrobloQ https://gitverse.ru/astrogeoscenter/astrobloq

Оффлайн e+

  • *****
  • Сообщений: 4 872
  • Благодарностей: 189
  • Урания, ВАГО
    • Сообщения от e+
Re: Какой язык программирования учить
« Ответ #17 : 26 Ноя 2025 [01:41:23] »
Работая одновременно и С/C++ и Pascal/Delphi ни разу не почувствовал, что хоть что-либо озвученное действительно является преимуществом. Гораздо чаще и явственнее чувствовалось обратное. Если человеку нужно, чтобы определение функции начиналось со слова function и т.д. и т.п., то в программировании ему делать нечего. Pascal возник как чисто академический язык, но, к сожалению, в отличии от ЛОГО его восприняли слишком серьёзно. Ущерб от его внедрения в ещё советскую iT-отрасль оценить просто невозможно.

Оффлайн Karagy

  • *****
  • Сообщений: 1 783
  • Благодарностей: 62
    • Сообщения от Karagy
Re: Какой язык программирования учить
« Ответ #18 : 26 Ноя 2025 [01:49:29] »
Ущерб от его внедрения в ещё советскую iT-отрасль оценить просто невозможно.
Так и запишем: ущерб оценить не может, но язык хает.

Оффлайн nolv

  • *****
  • Сообщений: 2 646
  • Благодарностей: 195
    • Сообщения от nolv
Re: Какой язык программирования учить
« Ответ #19 : 26 Ноя 2025 [10:35:53] »
Здравствуйте, жители форума. Я наслышан, что в астрономия (научная деятельность) на 90% состоит из программирования. Так вот, есть вопрос: какой язык программирования мне стоит учить? Сейчас в 10 классе. Буду рад

Python и набор библиотек (pandas, numpy, astropy, специальные библиотеки с каталогами, для фотометрии, спектроскопии и т.д., и т.п.). На ютубе была запись курса лекций МГУ "Научный Python" или как-то так, лекции читались для студентов астрономического отделения. Там с самого начала и до вполне уверенного уровня с упором на астрономию. IDE сейчас другие в используют, но в остальном вполне годный курс, начинай с него.