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

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

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #280 : 10 Дек 2025 [23:02:51] »
Так вот правильно обученый в програмирование дитеныш должен уметь думать сразу на исполняемом машиной языке.
Учиться работать на Минск-22 сначала !

Никакой обязаности покупать чужое и платить за помощь при наличии сил в голове построить себе лучше свое нету.
В смысле ? - построить свой Azure Cloud ? :)

Оффлайн Eddy_Em

  • *****
  • Сообщений: 1 665
  • Благодарностей: 55
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Re: Какой язык программирования учить
« Ответ #281 : 10 Дек 2025 [23:05:46] »
Писать на C++ второй версии ?
Не знаю. Я учил С++ 25 лет назад по классическому учебнику Страуструпа. И да, я - один из немногих уникумов, кто сначала начал пытаться на С++, но потом освоил С и забросил С++. В общем, на С++ я за последние 20 лет ни строчки не написал (если не считать в С-стиле обертку над библиотекой для ПЗС apogee, чтобы она работала с моим софтом), а на С написал уже гору - можно у меня на гитхабе посмотреть.
без буста
За использование буста положено семь лет расстрела! Благо, сейчас этой дрянью программисты не пользуются (правда, приличная часть из нее вошла в стандарт).
Но все равно: мой код из пары десятков тысяч строк за считанные секунды собирается, а у коллеги три тысячи строк - больше минуты! Вот до чего доводит любовь к шаблонам и лямбдам. У меня практика: поменял несколько строчек в коде - переключился в терминал и запустил make. И уже через пару секунд видишь, все ли ОК. А у него такой финт не пройдет.

Ну и я не предлагаю школьникам С++. Только С. Да и то, все же, начинать лучше с классики - паскаля или бейсика. Лучше - паскаля, а то бейсик со своей нумерацией строк может немного мозг повредить (как, впрочем, и фортран).

Оффлайн Ph_user

  • *****
  • Сообщений: 3 295
  • Благодарностей: 88
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #282 : 10 Дек 2025 [23:16:30] »
на Минск-22

На машинах по сезону - которые можно пойти купить в магазинах (останках магазинов счетно-решающих машин).

машкоды

Щас уже в наличии удобства - интринсики и остальной асемблер. Для более удобной передачи дизайн-идеи машине.

Оффлайн Eddy_Em

  • *****
  • Сообщений: 1 665
  • Благодарностей: 55
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Re: Какой язык программирования учить
« Ответ #283 : 10 Дек 2025 [23:20:03] »
Кстати, современные микроконтроллеры — просто фантастика какая-то по сравнению с компьютерами восьмидесятых. Вот, беру 300-рублевый МК вместо 35-рублевого из-за того, что мне нужны флоаты и 5 UART'ов (да еще и чтобы USB с CAN одновременно работали). И думаю: ну, напишу я прошивку на 20кБ, и на кой мне оставшиеся 236к? Или 40к ОЗУ на кой, если на все буферы и 8к за глаза хватит при даже самой напряженной одновременной работе всех интерфейсов? (это будет "мультиинтерфейсная" плата, давно такую хотел сделать, чтобы тебе и несколько 232, и несколько 485, и CAN, и SSI или 422 для энкодера в одном флаконе по USB к компу подключались)

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #284 : 10 Дек 2025 [23:22:22] »
Не знаю. Я учил С++ 25 лет назад по классическому учебнику Страуструпа.  И да, я - один из немногих уникумов, кто сначала начал пытаться на С++, но потом освоил С и забросил С++. 
Мсье знает толк в нестандартных действиях - учить по Страуструпу... Да еще не зная С.

За использование буста положено семь лет расстрела!
Без буста пишут только отмороженные маньяки сейчас. В особенности если код должен быть портируемым - работать и на линуксе и на виндах.
Потому что вся работа с файловой системой различается. Не говоря про многонитевые приложения.
Ручками писать #ifdef работать с разными разделителями - точно для маньяков.

Но все равно: мой код из пары десятков тысяч строк за считанные секунды собирается
А чего сразу не на Паскале ?  Там компилятор однопроходный так как LL(1) грамматика - вообще за секунду соберется.  Если именно это важно.

Ну и я не предлагаю школьникам С++. Только С. Да и то, все же, начинать лучше с классики - паскаля или бейсика. Лучше - паскаля, а то бейсик со своей нумерацией строк может немного мозг повредить (как, впрочем, и фортран).
Между паскалем и бейсиком для начинающих я бы выбрал бейсик однозначно  - потому что меньше набирать. Чем больше символов набивать тем выше вероятность синтаксической ошибки  - это чисто теорвер - набил скажем rnd вместо end потому что R и E рядом на клавиатуре.

Оффлайн Eddy_Em

  • *****
  • Сообщений: 1 665
  • Благодарностей: 55
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Re: Какой язык программирования учить
« Ответ #285 : 10 Дек 2025 [23:26:25] »
учить по Страуструпу.
А по кому же учить, как не по автору языка?
ТеХ, например, я по Кнуту и учил. Правда, латех - по Львовскому. Ну, а С, естественно, по K&R.
Без буста пишут только отмороженные маньяки сейчас.
Нет, сейчас все нужное есть в стандарте. А буст - угребище.
если код должен быть портируемым - работать и линуксе и на виндах
Такое вообще не нужно. Только под линукс. Маздай - он и в Африке маздай. И быстрей бы его в России запретили!
А чего сразу не на Паскале?
И как это линковать с сишными библиотеками? Да и ядро на С написано, микроконтроллеры - С, веб-бэкенд - тоже С. Зачем учить лишний ЯП?

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #286 : 10 Дек 2025 [23:55:31] »
А по кому же учить, как не по автору языка?
В конце 90-х достаточно было книг по C++
Создатель и Учитель - как правило - два разных человека. Один где-то витает в инженерных областях, а второй может объяснить это новичку.
У меня вообще была небольшая книга неизвестных авторов "Неформальное введение в C++ и Turbo Vision" 1992 года, которая в значительной степени представляет из себя описание того, что написано у Гради Буча - и сразу становится понятным зачем С++.

Нет, сейчас все нужное есть в стандарте.
Это "нужное" и есть буст по сути.

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


И как это линковать с сишными библиотеками?
Неленивые это делают  - есть Рекордино.
Работает для микроконтроллеров семейства ARMv6/v7.
Остальные, в вашем стиле - объявляем мастдаем :)

Кстати, реальная история из прошлого:
На ЖД платформе в ожидании электрички я, один мой друг и его девушка. У девушки есть мел. А мы с другом как бы айтишники.
Ну она пишет мелом "майкрософт мастдай" на что друг говорит "сотри это".
Девушка удивляется "почему?"
На что друг отвечает "юзер, он же кормилец наш" :)
« Последнее редактирование: 11 Дек 2025 [00:02:00] от yacc »

Оффлайн Eddy_Em

  • *****
  • Сообщений: 1 665
  • Благодарностей: 55
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Re: Какой язык программирования учить
« Ответ #287 : 11 Дек 2025 [08:39:27] »
"юзер, он же кормилец наш"
Идиоты с этой планеты никуда не денутся. Наоборот - с каждым годом их все больше и больше. Но лучше пусть под маздаем на основе ядра линукс сидят - бубунтой - чем в этой луже пытаются плавать.
Хотя, подозреваю, что мелкомягкие в итоге и придут к тому, что свою нездоровую графическую оболочку натянут на линуксовое ядро: встроенная WM с линуксом там-то уже давно есть.
У меня еще в прошлом году один студент, сволочь эдакая, вместо того, чтобы на своем ноуте поставить нормальный линукс, делал все задания в бубунте, запущенной в WM поверх маздая! Нет, я конечно понимаю, если тебе нужен какой-то очень  редкий софт (тот же земакс, к примеру), ты накатишь "хрюнделя" в виртуалбоксе и будешь там это запускать - благо, надобность в таком софте крайне редко возникает. Но обратно - запускать линукс из-под маздая - вообще бред какой-то!

// ну, теперь у меня на первой же лекции первая же фраза такая: "у кого маздай увижу, выше тройки не видать!"

Оффлайн ma][im

  • *****
  • Сообщений: 5 186
  • Благодарностей: 1607
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от ma][im
Re: Какой язык программирования учить
« Ответ #288 : 11 Дек 2025 [09:54:38] »
"у кого маздай увижу, выше тройки не видать!"
DOS. Черной пеленой экран заполнил
чистый DOS.
Мышь. Потеряла форму, стала вдруг
квадратной мышь.
Я разбил окно, девяносто пятое
мастдайное окно
И поставил DOS и тогда я понял:
Это счастье — вот оно! :)
(кликните для показа/скрытия)

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #289 : 11 Дек 2025 [10:29:38] »
У меня еще в прошлом году один студент, сволочь эдакая, вместо того, чтобы на своем ноуте поставить нормальный линукс, делал все задания в бубунте, запущенной в WM поверх маздая!
И не говорите ! - светлых людей с гентой окружают одни негодяи! :)
Ах да - у меня тоже линуксы на варях, а там где напрямую установлены - дебиан, а не посконная гента :)

Оффлайн Ph_user

  • *****
  • Сообщений: 3 295
  • Благодарностей: 88
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #290 : 11 Дек 2025 [12:17:34] »
Че-то от програмирования машины уходит к осекручению машиной. Полезное дело машина должна делать за пределами кручения оси. В части полезных бытовых машин ось бывает минимизирована весьма.

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #291 : 11 Дек 2025 [13:50:40] »
Кстати о С++

Просто великолепно написано о нем на лурке
Цитата
С++  — язык программирования, который за минимальными исключениями знаком всем программистам, но которым пока никто полностью не овладел. Создан Страуструпом с целью поднять зарплаты специалистов в индустрии, что, судя по всему, ему успешно удалось, так как по сложности изучения С++ превосходит все остальные промышленно используемые языки программирования вместе взятые.

Первоначально представлял собой C + ООП + тележка разных прелестей. Ныне же, со всеми доработками и библиотеками, абсолютно всеобъемлющ, поэтому, предположительно, является языком, на котором Б-г написал Вселенную. Реализует все парадигмы, включает в себя все технологии, годен для любых целей. Несмотря на это, продолжает эволюционировать. При этом быдлокодеры находят в нём простоту и ясность, а гуру-программеры — сложность и глубину. Правда, ровно до тех пор, пока не увидят чужого кода, который, как правило, отличается от их собственного так же, как они сами от автора того кода.

"но которым пока никто полностью не овладел" - святая правда, учитывая что язык действительно поддерживает почти все парадигмы. Например ленивые вычисления, функторы, каррирование и монады ( функциональное программирование ) можно сделать на C++ ? - ДА, можно!
« Последнее редактирование: 11 Дек 2025 [13:57:24] от yacc »

Онлайн crimchik

  • *****
  • Сообщений: 3 842
  • Благодарностей: 213
  • наблюдаю звёзды, сидя на табуретке
    • Сообщения от crimchik
Re: Какой язык программирования учить
« Ответ #292 : 11 Дек 2025 [20:12:46] »
C++ вместе с Boost, на линуксе. Нейронки сами себя не напишут :)

решил провести еще эксперимент
попросил нейронку написать максимально простой симулятор солнечной системы , который позволяет моделировать траекторию движения планет в зависимости от изменения их веса и координат, чтобы эту программу можно было использовать на уроках астрономии в 3 классе. соответственно расчеты должны быть максимально приближены к реальным астрономическим, но с допущением на мощность компьютера intel core-i5 и визуальную составляющую, чтобы можно было в реальном времени видеть изменение траекторий при изменении параметров. все, о чем я попросил непосредственно нейросеть выделено курсивом, все остальные аспекты и формулы сетка уже определяла сама. да, сейчас у меня всего лишь хорошая игрушка, основанная на реальных событиях. но это только потому, что я не знаю так глубоко астрономию, чтобы поставить четкое задание на разработку программы уровне наса и затем проверить качество выполнения. на эту модель ушло 15 минут.

На выходе получил отличную программу. На скриншоте как раз видно момент, что при увеличении массы Юпитера в 80 раз он выбрасывает из солнечной системы половину планет.
это я говорю к тому, что сейчас ученый уже может сосредоточиться непосредственно на постановке задачи, при необходимости можно самостоятельно сделать выбор инструментария. но уже не нужно тратить 1000 человеко-часов на глубокое изучение всех аспектов программирования, который для ученого лишь дополнительный рабочий инструмент. это уже удел специалистов, для которых программирование является основным видом деятельности.

Описание работы симулятора Солнечной системы

Данное программное обеспечение представляет собой интерактивную N-body симуляцию (задача N тел), визуализирующую гравитационное взаимодействие небесных тел в реальном времени. Проект разработан для образовательных целей и позволяет наглядно изучать влияние массы и начальных параметров на стабильность орбитальных систем.



1. Физическая модель

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

Формула силы притяжения:
Для любой пары тел i и j сила рассчитывается как:

F = G * (m_i * m_j) / (r^2 + ε^2)^(3/2) * vec_r

Где:
  • G — гравитационная постоянная (адаптированная для масштаба симуляции).
  • m — массы тел.
  • r — вектор расстояния между телами.
  • ε (epsilon) — параметр сглаживания (softening), предотвращающий сингулярности (деление на ноль) при экстремально близких пролетах или столкновениях.



2. Численные методы и прогнозирование

Для расчета движения используется интегратор Верле по скоростям (Velocity Verlet). Это симплектический метод второго порядка точности, который, в отличие от метода Эйлера, сохраняет энергию системы на длительных промежутках времени, что критически важно для стабильности замкнутых орбит.

Алгоритм шага интегрирования:
  • Обновление позиции: r(t+Δt) = r(t) + v(t)Δt + 0.5 * a(t)Δt^2
  • Расчет новых сил и ускорения a(t+Δt).
  • Обновление скорости: v(t+Δt) = v(t) + 0.5 * (a(t) + a(t+Δt))Δt

Прогнозирование траекторий:
Система рассчитывает будущее положение планет на 25,000 шагов вперед в отдельном, облегченном потоке вычислений. Для оптимизации производительности при отрисовке линий прогноза используется алгоритм пространственной децимации (точки сохраняются только при смещении объекта более чем на 4 пикселя).



3. Астрономические параметры и начальные условия

Симуляция базируется на гелиоцентрической системе координат. Начальные параметры планет (Меркурий — Нептун) приближены к реальным пропорциям Солнечной системы с учетом необходимых масштабных коэффициентов.

  • Начальная позиция: Все планеты генерируются в точках, соответствующих их афелию (максимальному удалению от Солнца).
  • Начальная скорость: Рассчитывается на основе уравнения Vis-viva для эллиптических орбит:
    v = v_circ * sqrt(1 - e)
    Где e — эксцентриситет орбиты (от 0.007 у Венеры до 0.205 у Меркурия).
  • Направление движения: Против часовой стрелки (стандартное астрономическое направление при взгляде с северного полюса эклиптики).



4. Допущения и упрощения модели

Для обеспечения наглядности и работы в браузере приняты следующие допущения:

  • 2D Пространство: Моделирование происходит в плоскости эклиптики, наклонение орбит (ось Z) игнорируется.
  • Масштабирование размеров: Радиусы планет и Солнца увеличены относительно расстояний между ними. В реальном масштабе планеты были бы невидимы на экране, вмещающем орбиту Нептуна.
  • Статичное Солнце: В рамках данной учебной модели Солнце зафиксировано в центре координат (0,0), хотя гравитационные силы, действующие на него со стороны планет, рассчитываются корректно (используется для расчета сил, но не применяется к позиции Солнца).
  • Ускоренное время: Шаг симуляции (Δt) не соответствует реальным секундам, а подобран для комфортного визуального восприятия орбитальных периодов (1 секунда симуляции ≈ несколько месяцев реального времени).
Nicon Aculon 7x35, Hawke Nature 10x50
SW AZ5 + TS 102ED f/7

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #293 : 11 Дек 2025 [21:29:45] »
На выходе получил отличную программу.
А можно спросить у нейросети типовой алгоритмы используемые здесь ? :
- сделать алгоритм стека из изображений ( пока без кадров шумов и виньетирования ) с совмещением кадров
- удалить градиент


Онлайн crimchik

  • *****
  • Сообщений: 3 842
  • Благодарностей: 213
  • наблюдаю звёзды, сидя на табуретке
    • Сообщения от crimchik
Re: Какой язык программирования учить
« Ответ #294 : 11 Дек 2025 [21:33:24] »
На выходе получил отличную программу.
А можно спросить у нейросети типовой алгоритмы используемые здесь ? :
- сделать алгоритм стека из изображений ( пока без кадров шумов и виньетирования ) с совмещением кадров
- удалить градиент

ну так - то это стандартные задачи для питона. или вам нужны не библиотеки, а непосредственное описание алгоритмов и всей подноготной математики ?
Nicon Aculon 7x35, Hawke Nature 10x50
SW AZ5 + TS 102ED f/7

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #295 : 11 Дек 2025 [21:50:49] »
ну так - то это стандартные задачи для питона. или вам нужны не библиотеки, а непосредственное описание алгоритмов и всей подноготной математики ?
Программа готовая вестимо - как в вашем примере - с визуальным интерфейсом.
Лучше на С++ как тут народ хочет.

Оффлайн Ph_user

  • *****
  • Сообщений: 3 295
  • Благодарностей: 88
    • Сообщения от Ph_user
Re: Какой язык программирования учить
« Ответ #296 : 11 Дек 2025 [21:59:52] »
- сделать алгоритм

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

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

Онлайн crimchik

  • *****
  • Сообщений: 3 842
  • Благодарностей: 213
  • наблюдаю звёзды, сидя на табуретке
    • Сообщения от crimchik
Re: Какой язык программирования учить
« Ответ #297 : 11 Дек 2025 [22:06:08] »
в том и дело, что для хорошей программы нужно четко техническое задание, и программировать уже можно и на С++. но четко и однозначно рассказать, что вы хотите сделать, желательно хотя бы с примерами на пальцах, что хотите получить в итоге, желательно с примерами. нужно максимально четко описать вашу задачу, четко поставить проблему, с которой вы хотите получить помощь от программы. тогда нейросети поймет контекст, в котором необходимо решать задачу стека изображения и удаление градиента. я поскольку в астрофотографии не силен, то не могу даже примерно поставить точную задачу. обычно алгоритм такой :
- вы описываете задачу и контекст
- сетка задает вам десяток уточняющих вопросов, чтобы лучше понять суть вашей проблемы и вникнуть в вашу задачу
только после этого уже начинается непосредственно вайбкодинг. но конкретно в вашем случае еще придется подробно описать ваши изображения, дать их сетке "Понюхать и пощупать", чтобы она имела четкое представление о вашем материале
Nicon Aculon 7x35, Hawke Nature 10x50
SW AZ5 + TS 102ED f/7

Онлайн yacc

  • ****
  • Сообщений: 301
  • Благодарностей: 7
  • Мне нравится этот форум!
    • Сообщения от yacc
Re: Какой язык программирования учить
« Ответ #298 : 11 Дек 2025 [22:16:33] »
нужно четко техническое задание, и программировать уже можно и на С++. но четко и однозначно рассказать, что вы хотите сделать, желательно хотя бы с примерами на пальцах,
По факту - это уже полдела. Причем значимая. А в случае пользовательского графического интерфейса вы, вероятно, захотите описание всех форм и диалогов со всеми переходами между ними - ну так чтобы все нюансы были отражены, скажем раз этот пункт выбран, то половина элементов формы становится неактивной и тому подобное - так ?
Ну так в случае графического интерфейса такое описание на 70% решает задачу - дальше и джун код напишет. :)

Оффлайн Karagy

  • *****
  • Сообщений: 1 876
  • Благодарностей: 63
    • Сообщения от Karagy
Re: Какой язык программирования учить
« Ответ #299 : 11 Дек 2025 [22:18:57] »
траекторию движения планет в зависимости от изменения их веса и координат
Массы планет. Не веса.