Телескопы покупают здесь


A A A A Автор Тема: Изучаю Паскаль. Присоединяйтесь.  (Прочитано 22686 раз)

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

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #560 : 17 Июн 2024 [16:53:12] »
Вот к примеру на С++:
   {sfplanet->material->texture->image->loadfromfile(planetpath +”.jpg”); close();}
Тогда как на Pascal всё гораздо читабельней:
   begin sfPlanet.Material.Texture.Image.LoadFromFile(PlanetPath + '.jpg'); Close() end;

Конечно, комуто больше нравится первый вариант, но это лишь часть айсберга - в сложных проектах с многооконными интерфейсами частая сборка для отладки и проверки работоспособности всего кода (вычислений, графики, загрузки данных с диска и SQL запросами к БД, смене локализации и т.д.) ведёт к тому, что время сборки аналогичного дельфи проекта для с++ проекта увеличивается в 5-10 раз. В день сто раз. Враньё, что можно билдить по частям или наделать кучу dll. Не говоря уже о самом времени разработки проекта,  где менее удобна внутренняя структура, больше случайных ошибок в кодировании, организации файлов (прыжки в заголовочники и мимо, оказии с case sensitive, #pragma link и т.п.).  Рефакторинг приводить опасно, так как ошибки грозят непредсказуемыми последствиями и необходимостью отката. Работа с git и локализация интерфейса в с++ более трудоёмкая, чем в Pascal. Фирма Embarcadero c её Rad Studio может подтвердить всё это, не даст соврать. Хотя они помалкивают (тот же Marco Cantu, который перешёл с С++ на Delphi, написал вначале 1 книгу по С++, а потом 20 книг по Delphi) – им надо продавать С++Builder. Так ради чего все эти плюшки?  Не сомневаюсь, что сишные апологеты скажут, что вот зато больше возможностей и можно писать элегантный код, если знать как это сделать по стандарту С23 (ISO/IEC 9899:2024). 

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #561 : 17 Июн 2024 [16:54:15] »
Инфа для СИ программистов, изучающих Delphi, и переходящих на OP с других языков.
Справедливости ради надо сказать, что для астрономии уже есть готовые либы на си,  которые можно использовать и в Delphi.

Вот, кстати, проект AstroViewer на С++  https://gitverse.ru/glscene/AstroLibrary , который я создал для обновления GUI сборника сишных программ по книге  Montenbruck O., Pfleger T.: Astronomy on the Personal Computer. Springer-Verlag Berlin Heidelberg (2000). Планетарий на базе компонента TGLSkyDome в проекте есть, но это не главное, нет задачи конкурировать со Stellarium, но есть планы  смоделировать эволюцию солнечного участка Млечного Пути с учётом звездообразования, структуры, классов звёзд, зон обитаемости, c обновлением диаграммы ГР (код Цветкова) по последним данным Gaia DR3 и не только.  Это было бы полезно для студентов специальности «физика и астрономия». 

Кроме того, на языке OP мной подготовлен российский стартап Galaktika  https://gitverse.ru/glscene/AstrobloQ , приглашаются все желающие ЛА программисты. Однако есть ограничение – среда разработки RAD Studio 11 или 12, работа с репозиторием на gitverse.ru c помощью клиента TortoiseGit (можно использовать MS Github Desktop), исходный интерфейс Galaktika на английском, тетраэдральные сетки, регулярные гридрешетки и функции свёртки (рождения и гибели классов звёзд) в рамках модели создаются внешними генераторами, локализация на русский язык - средствами dxgettext. Пока программистов среди ЛА мало, и те работают в основном над оффшорными заказами.

Оффлайн LeftUser

  • *****
  • Сообщений: 31 743
  • Благодарностей: 1012
  • Кирилл ㋛
    • Сообщения от LeftUser
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #562 : 17 Июн 2024 [16:57:52] »
Хотите спорить? А не получится  :P :D ъ
Весь тот флуд, что вы тут понаписали не имеет никакого отношения к теме. Тема про Паскаль, а не про сравнительные характеристики языков, в том числе так вам ненавистных С/С++

Оффлайн Karagy

  • *****
  • Сообщений: 1 117
  • Благодарностей: 35
    • Сообщения от Karagy
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #563 : 18 Июн 2024 [10:34:05] »
а не каким-то там американским сленгом

Оффлайн Vladimir73

  • *****
  • Сообщений: 21 635
  • Благодарностей: 863
    • Сообщения от Vladimir73
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #564 : 18 Июн 2024 [12:23:57] »
Перевод не совсем верный, но в целом все так и есть :good:
Это вы одиноки во вселенной. А нас - рать.

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #565 : 19 Июн 2024 [14:22:35] »
Тема про Паскаль, а не про сравнительные характеристики языков
Не выдумывайте глупости. При изучении языка программирования как раз надо обязательно сравнивать характеристики языков, хотя бы из первой двадцатки. Часто бывает, что начинающий программист, да ещё не очень знающий английский язык, пытается, но не  может осилить Object Pascal и решает – дай-ка я лучше изучу другой язык программирования, например С++, на котором буду заколачивать бабосы как сеньор. Но не тут-то было, в плюсах всё гораздо сложнее, и осваивать придётся долго. «Удаётся это не только лишь всем, вернее мало кто это может делать».   
 
Если нет времени и желания изучать Паскаль и участвовать в проекте Galaktika, раз вы хорошо знаете С/C++, то можно подключиться к опенсорс проекту AstroPC.cbproj в репозитории https://gitverse.ru/glscene/AstroLibrary, в котором используются в т.ч. рекомендованная международным астрономическим союзом IAU сишная библиотека SOFA. Буду рад включить вас в команду разработчиков, если вы предложите какие-то патчи или ветки, для последующего слияния с основным транком разработки.

Оффлайн LeftUser

  • *****
  • Сообщений: 31 743
  • Благодарностей: 1012
  • Кирилл ㋛
    • Сообщения от LeftUser
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #566 : 19 Июн 2024 [16:02:18] »
Не выдумывайте глупости. При изучении языка программирования как раз надо обязательно сравнивать характеристики языков, хотя бы из первой двадцатки.
Это ваше заблуждение. На самом деле оно может привести к удалению сообщений и наказанию в %, так как является жестким офтопом в данной теме.

Оффлайн Vladimir73

  • *****
  • Сообщений: 21 635
  • Благодарностей: 863
    • Сообщения от Vladimir73
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #567 : 19 Июн 2024 [16:07:59] »
При изучении языка программирования как раз надо обязательно сравнивать характеристики языков
При изучении языка надо изучать язык и только.
Это вы одиноки во вселенной. А нас - рать.

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #568 : 20 Июн 2024 [12:41:37] »
При изучении языка надо изучать язык и только.
Конечно, когда в теме про изучение Паскаля кто-то негативно отзывается о языке, уверяет всех, что он давно погиб на рынке смертью храбрых и агитирует за другие сиподобные языки, то это нормально, а если приводятся достоинства многих характеристик языка Паскаль в сравнении с тем же C/C++, то это по их мнению оффтоп, потому как аргументов нет. К тому же при изучении надо различать, одно дело сам язык с ключевыми словами и конструкциями, а другое дело вспомогательные либы, компоненты и среды программирования. Так вот, и в Дельфи, и Си++Билдере, основные библиотеки VCL/FMX общие на 99%, то есть изучив её в Delphi вы можете создавать приложения и на С++. И наоборот. В справочной системе RAD Studio описание функций на двух языках находятся рядом. Не закрывайте глаза на верхнюю строчку и вы изучите заодно и Delphi. Примеры там есть.

Оффлайн Дрюша

  • *****
  • Сообщений: 4 949
  • Благодарностей: 98
  • Вы сышите только мой голос...
    • Сообщения от Дрюша
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #569 : 21 Июн 2024 [03:38:14] »
И не кстати ещё плохая новость недавно проскочила. Умер создатель языка паскаля - Никлаус Вирт. https://habr.com/ru/news/784564/
Я одно время всерbёз думал, что слово "виртуалbный" происходит от фамилии этого самого Вирта

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #570 : 25 Июн 2024 [23:59:04] »
Я одно время всерbёз думал, что слово "виртуалbный" происходит от фамилии этого самого Вирта
Совпадение имён. Спасибо профессору Вирту за то, что он создал такой замечательный язык как Паскаль. Не на ровном месте, конечно. Первым языком программирования по сути был Фортран, который с 1954 года 20 лет доминировал в Штатах, пока его не опередил по популярности Си. Но в Европе более широко использовался Алгол 60, потом 68, от которого Вирт и отталкивался при создании Паскаля.  Добавил туда много чего хорошего, но главное – оставил в Паскале знак присваивания (:=), а не (=) как в Фортране и Си, т.к. будучи математиком не мог смириться со знаком равенства для присваивания и был недоволен странным двойным  знаком (= =) для логического сравнения.  Ему предлагали прямую или обратную стрелочки для операции присваивания, но он отказался. Решил написать свой язык. И правильно сделал. Кроме того, сохранил такую же как в Фортране нечувствительность к регистру – кодируй переменные хоть с маленькой, хоть с большой буквы на здоровье. Демократия! Однако в отличие от Алгола поменял местами идентификатор и его тип при объявлении – было, к примеру, Integer X; а стало var X: Integer; и т.д. Правильный порядок. И теперь, собственно говоря сегодня,  в ООП, в Delphi сперва пишутся названия объектов или экземпляры классов, свойства, а уж потом их тип, а не наоборот. Это гораздо читабельней в Паскале, чем в Си, т.е. не так, как принято в аналогичных американских правилах написания дат  – на первом месте объявлять тип месяца, на втором день месяца (06.10.2024).  В Европе кто-то подумал, что это 6-е октября, а нет, в США это 10-е июня. Вы можете опоздать на сдачу экзамена по программированию. Были не виртуальные случаи.

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #571 : 27 Июн 2024 [14:06:05] »
Единственный ресурс за который сейчас стоит бороться - скорость разработки.
Нельзя с этим не согласиться. Вот поэтому берём среду RAD Studio и изучаем скорость сборки коллективного проекта на Паскаль, на примере программ из книги "Астрономия на ПС"  Мантенбрука и сравниваем с теми же проектами на С++, что я и сделал сегодня. Привожу результат, который показывает высокую скорость в пользу компилятора Паскаля. Итак, билд группового проекта из 15 астрономических программ (Coco,..., Sunset) 
на Дельфи занял 2.4 СЕКУНДЫ, https://gitverse.ru/glscene/AstroLibrary/content/master/apex/pascal
а билд той же группы программ https://gitverse.ru/glscene/AstroLibrary/content/master/apex/cpp
на С++ компиляторе (Classic or Modern, LLVM) отнял 1.33 МИНУТЫ. 
Консольные приложения, ничего лишнего.  Для программ с формами и современным интерфейсом отрыв будет гораздо больше.
Вот и ответ почему лучше программировать астрономические приложения на Паскале.
« Последнее редактирование: 27 Июн 2024 [14:14:52] от Павел Васильев »

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #572 : 29 Июн 2024 [20:59:26] »
Изучающим Паскаль полезно знать, что Паскаль гораздо быстрее других языков при сборке рабочих программ. Открою страшную тайну – сборка готовых бинарников 15 программ из широко известной в узких кругах ЛА книги «Астрономия на ПК» Пфлегера и Монтенбрука в 30 РАЗ (!!!)  быстрее при использовании компилятора Pascal (1.9 сек), чем компилятора С/C++ Modern, LLVM (1.04 мин).  Тут надо подчеркнуть, что для теста взят одинаковый объём кода исходников, где-то по 0.8 Мбайт на каждом из языков, которые решающих одни и те же астрономические задачи в консольных приложениях.  В Интернете вы таких сравнительных тестов не найдёте – Microsoft, владелец Github, не заинтересован, продвигает C#, но, скорее всего там сборка ещё медленнее. Это информация к размышлению, если кто-то из изучающих Паскаль столкнётся с трудностями и решит перейти на другой язык.  Но сейчас редко можно встретить большой проект, где использовался бы только один язык программирования, так что среди прочих языков в новой GIGA IDE от Сбертеха есть и Pascal, перед Python.

Оффлайн Vladimir73

  • *****
  • Сообщений: 21 635
  • Благодарностей: 863
    • Сообщения от Vladimir73
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #573 : 29 Июн 2024 [21:43:40] »
Да все это знают уже с четверть века точно :facepalm: Остановитесь, пожалуйста, а ???
Это вы одиноки во вселенной. А нас - рать.

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #574 : 30 Июн 2024 [15:42:57] »
Да все это знают уже с четверть века точно
Коллега, вы не правы. Во-первых, 25 лет назад сегодняшних студентов, изучающих Паскаль, небыло ещё на свете и они не знают, что он быстрый. На Хабре они сегодня подобных тестов на Паскале или переводов англоязычных статей на эту тему днём с огнём не найдут.

Во-вторых, за четверть века производительность процессоров возросла, на многоядерных машинах и небольших исходниках разница во времени между реализациями проектов на разных языках может быть незаметна. Поэтому нужен по меньшей мере мегабайт исходного текста на каждом языке, решающем один и тот же набор конструкций, функций и классов вычислительных задач, для полноценного парсинга, а не просто умножение 2*2. Что мы и имеем в приведённом выше тесте.

В-третьих, сегодняшний 32/64 компилятор языка Pascal от Embarcadero на основе Borland компилятора, да и компилятор Freepascal тоже, на месте не стоят, существенно улучшена их производительность и они выполняют Build гораздо быстрее, чем старые версии, установленные на одной и той же машине. 
Так что то, что было 25 лет назад давно кануло в лету – надо изучать заново. Вот, например, ввод дат и времени, крайне необходимые в астрономических программах, раньше этих компонентов небыло, их тоже теперь надо изучать. Всё познаётся в сравнении!

Оффлайн ekvi

  • *****
  • Сообщений: 6 690
  • Благодарностей: 374
    • Сообщения от ekvi
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #575 : 30 Июн 2024 [16:55:05] »
все это знают уже с четверть века точно  Остановитесь, пожалуйста, а
Нет, а я с удовлетворением созерцаю эту баталию, как все кавалеристы расшибаются о скалу П. Васильева.
« Последнее редактирование: 01 Июл 2024 [06:07:39] от ekvi »

Оффлайн Karagy

  • *****
  • Сообщений: 1 117
  • Благодарностей: 35
    • Сообщения от Karagy
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #576 : 30 Июн 2024 [22:05:30] »
Вот и я повторяю - нет худа без добра! Те кто писал на паскале - всё так-же пишут. А те кто писал на си и си с крестами - придумали COM. От неприемлемо большого времени сборки больших проектов.

Оффлайн LeftUser

  • *****
  • Сообщений: 31 743
  • Благодарностей: 1012
  • Кирилл ㋛
    • Сообщения от LeftUser
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #577 : 01 Июл 2024 [11:38:30] »
Си плюс плюс, си плюс минус, питон, гадюка... Паскаль - вот главный источник восхищения Павла Васильева! Он же может собрать 20 мини утилит за 2 секунды. Вот это скорость!! Ай да Паскаль, ай да сукин сын!!
 ;D ;D

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

  • *****
  • Сообщений: 561
  • Благодарностей: 19
    • Сообщения от Павел Васильев
    • Программные компоненты астромоделирования
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #578 : 04 Июл 2024 [19:36:21] »
Он же может собрать 20 мини утилит за 2 секунды. Вот это скорость!!
Компилятор от Борланд и Абракадабры да, может. Надо проверить на Freepascal и PascalABC.net, на той же группе проектов скорость сборки. Сегодня при разработке новых программ, а не всяких там утилит и веб поделок сайтов, это важный момент. Но изучать вместе с Паскалем такие вспомогательные языки, как С/С++, жабаскрипт  и питон сегодня конечно тоже нужно, юниорам, т.е.джунам, пригодится.

Оффлайн Karagy

  • *****
  • Сообщений: 1 117
  • Благодарностей: 35
    • Сообщения от Karagy
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #579 : 05 Июл 2024 [01:03:52] »
Сегодня при разработке новых программ, а не всяких там утилит
и чем утилита отличается от программы?