Как стать автором
Обновить
87
0
Пётр @Error1024

Разработчик

Можно парировать — что это лишь отражение сколько OpenSource проектов, размещенных на GitHub написали за время существования этой платформы.
Объяснить, что для использования всяких функций нужно подключать библиотеки — это сложно?
Т.е. еще не написав Hello World ученики должны узнать что такое функции и библиотеки?
Или сказать что using namespace std — нужно стобы не писать std:: — это сложно?
А объяснить человеку, еще не написавшему Hello World, что такое namespace сможете?

Тут и видно преимущество Паскаля — не нужно говорить «просто пишите #include <iostream'>, потом станет понятно что это и зачем». В программе на Паскале можно сразу подробно объяснить каждую строчку.

Про Питон — кстати да, почему не питон?)
1) Наличие в Паскале строгой типизации
2) Ошибочный код не скомпилируется, а не упадет в рантайме
3) Отельный блок переменных позволяет лучше понять идею переменных
4) Первое время идея отделения логических блоков пробелами ооооочень сложна для понимания
5)…
Данный код — это работа студента, верно? Раз так — то преподаватель просто обязан сделать так, чтобы студент привел его к приличному виду. Иначе не понятно чему преподаватель вообще учит.
Если free не нужен в учебном коде, то зачем есть одна проверка на NULL? Код же учебный, и все такое. Что-то не складывается.
Мне кажется — что-то изменилось, раньше люди учились программировать из интереса, в последствии этот интерес становился профессией. Щас, в том числе, под влиянием курсов вайти-в-айти люди хотят с первого же hello world стать джуном и пойти в айти, получать 1000к/мс. Безусловно — при таком подходе надо сразу максимально трендовый в сфере вайтишников язык выбирать, и над… заучивать, до получения заветного офера. Желательно еще в школе стать джуном владеющим модной технологией. Какой уж тут Паскаль — GeekBrains, SkillFactory, SkillBox курсов по нему не имеют => не модно, скипаем.
Речь выше была о C++ vs Pascal/Python/etc, так да, лучше Python чем C++. Это создаст вероятность что хотябы треть учеников поймут что такое программирование, а не 1 вундеркинд-олимпиадник из класса.
Мой комментарий был ответом на «согласно рейтингам Паскаль мертв», ок, я привел пример самого авторитетного и известного рейтинга ЯП, где Паскаль жив. В чем проблема? Плохой рейтинг? Так дайте другой.
Да TIOBE Index не идеален, но более авторитетного рейтинга просто нет. Или вы можете привести пример такого рейтинга?
Смех в том, что во всех современных реализациях паскаля есть дженерики для словарей и т.д.
Тут просто проблема — мне кажется не все представляют школьный уровень программирования (как я могу судить из комментариев) — на таком уровне любой (почти) язык — это примерно одно и тоже, и я именно из этого представления предлагаю поменять язык на что-то другое, так как тем, кто пойдет в вузы будет чуть проще.

ОК. Что понятнее, и главное что проще объяснить, на первом практическом занятии программирования?
Pascal
program Hello;
var
  name: string;
begin
  readln(name);
  writeln ('Hello ' + name)
end.

C++
#include <iostream>
#include <string>

using namespace std;

int main()
{
    string name;
    cin >> name;
    cout << "Hello " + name;

    return 0;
}

Код на Си приводить не буду — я думаю очевидно, что объяснять указатели на первом же занятии — плохая идея.
Только отвечайте честно :)
И мало того — в данном коде можно не писать free (чисто по моему мнению, семинарист с ним согласился) — время работы кода меньше секунды, программа прекращается и память освобождается (если можно так сказать).
Семинаристу НЕУД.
В целом для написания кода для олимпиад/университетских заданий можно пренебрегать некими правилами — если вы обратите внимание — это курс алгоритмов и структур данных, а не программирования на си.
Это вы расскажите будущему работодателю когда из-за падения вашего кода фирма потеряет деньги.
Всегда проще если с тобой не соглашается кто-то перейти на «ой поколение», «а кто вы такой чтобы вообще показывать и прочее». Вот только это не разговор по сути (47 процентов прочитавших согласились с моими идеям — но выборка маленькая, согласен) — это о чем-то говорит.
А я из вашего поколения — «поколение ЕГЭ», ничего против не имею.
Мой комментарий не для вас, а для тех кто прочитал статью. Некоторые читатели безоговорочно верят любой заплюсованной статье с хабра, увидев мой комментарий, кто-то возможно поставит под сомнение адекватность вашей статьи.
Ну коли вы решили выйти за правила сообщества хабра, то я не против, но сам останусь в его рамках (почитайте что-ли правила перед тем, как писать здесь...).
Какой конкретно пункт правил я нарушил?
Относительно кода — да косяк — ни я ни мой семинарист, который принимал код не заметили это
Возможно семинаристу стоило изучить Паскаль, и помогать в изучении алгоритмов на Паскале, чтобы не делать таких ошибок в проверке элементарного C++(на самом деле Си) кода? Или задача научить писать быдлокод?
Именно поэтому в школах преподают Паскаль — учителя обычно не профессиональные программисты, а чтобы чему-то научить — надо что-то знать. Разобраться с Паскалем проще чем с C++ => влажным мечтам об обучении программированию на крестах в школе — не суждено сбыться :) Без негатива к C++ — просто это реальность — Плюсы — чертовски сложный язык.
Представляете программисты делают ошибки — и тут одна из них, если вы хотите в школе давать детям allocatоры, то это не моя проблема.
А как дать «динамическое программирование» еще? В Паскале все просто SetLength(Arr, Size), а тут аллокаторы.
Но мои навыки написания кода подтверждены призовыми местами с олимпиад по информатике и робототехнике (как бы я ко вторым не относился).
Не ну тут я действительно слит — призовые места на олимпиадах точно говорят о профессионализме!
И если вы собираетесь ставить под сомнение мои навыки программирования из-за одного пропущенного if — у меня для вас плохие новости (и поверьте — в этом репозитории есть еще ошибки, но я его не скрыл и абсолютно открыто скидывал моему работодателю)
Ну нееет, этот код имеет не одну ошибку, давайте я вместо вашего преподавателя и семинариста помогу вам изучить ваш любимый C/C++:
Код призера
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int N;
    uint16_t *sums;
    scanf("%d\n", &N);
    sums = calloc(N, sizeof(uint16_t));
    char **lab = malloc(sizeof(char *) * (N + 1));
    if (lab == NULL) {
        exit(666);
    }
    for (int i = 0; i < N; i++) {
        lab[i] = malloc(sizeof(char) * (N + 1));
        if (lab[i] == NULL) {
            exit(666);
        }
    }
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            char l = 0;
            scanf("%c", &l);
            lab[i][j] = (char) (l == ' ');
            if (l == ' ')
                sums[i] += 1;
        }
        scanf("\n");
    }

    int a = calc_number(lab, sums, N);
    printf("%d", a);
    return 0;
}

1) Функцией freopen открывается файл но никогда не закрывается функцией fclose
2) Нет проверки на NULL после вызова calloc
3) Память выделенная malloc/calloc никогда не освобождается
4) Великолепный нейминг переменных и функций — смотрю на функцию calc_number и сразу вижу — писал профессионал!
5) Еще куча всего
Мало того, мне стало очевидно насколько сообщество программистов на этого вашего «паскаля» — токсичное болото.
Вы пришли на мое болото и стали кидать в него помои, извините, не смог спокойно на это смотреть.
Вот только как бы вы не хотели — Паскаль в школе умрет — все больше новый учителей начинают учить детей на плюсах/питоне, да сейчас это не много, но вы это уже не остановите. Я просто хотел чтобы это произошло быстрее.
Т.е. вы приходите на Хабр, желаете смерти языку Паскаль, а потом возмущаетесь почему программисты любящие этот язык оставляют токсичные комментарии?
опрос: зачем это делать на языке, умершем 20 лет назад (когда я учился — Паскаль уже не был мейнстримом, а это было… Давно! ;)
Можно конкретные, не школьные пруфы что Паскаль — умер?
Python не долбает мозг лишними для начального этапа вещами — типами, выделением памяти,… — и максимально понятен со своим ООП + универсален: он уже стал базовым языков для неспециалистов для решения внутренних и прикладных задач
От того что Python не долбает мозг типами они никуда не пропадают, в дальнейшем отсутсвие этих знаний может сделать очень больно.
Rust вторым этапом — он обеспечивает гарантированное битьё по рукам за всю ахинею, которую ты пишешь в Паскале, начиная от глобальных переменных, до модификации памяти из нескольких потоков, очень строгая система типов; главное свойство для обучения — максимально жёсткая обратная связь по ошибкам в коде + максимально низкий уровень + отсутствие сборки мусора и упоротый контроль типов и работы с памятью
Ох, страшно представить обучение Rust как первому языку, есть примеры?
тех шизиков, которые начинают новые проекты на Паскале/Delphi — считаю будущими клиентами, с которых можно стричь бабло за legacy raking
Ммм… а вы кто?
То что паскаль был создан для обучения это довольно распространенный миф, он оказался достаточно хорошо для обучения: cacm.acm.org/magazines/2021/3/250705-50-years-of-pascal/fulltext
А на Python/js/C++ такого госсофта ради распила не пишут?
Не хотел скатывается к личностям, апелляции к возрасту и т.д. это гнусно. Но автор поста в комментариях таки добил, поливанием языка Pascal грязью. Простите.

Чтож, давайте посмотрим на типичного «разоблачителя» школьной программы, с программированием на языке Pascal. По факту еще одно Бабушкина, который переизобрел школьную программу.

Вот наш герой, ультра профессионал C++/Python/etc., точно уверенный, что Паскаль уже никто не использует, а кто использует — только по инерции.
По факту — типичный школьник, которого бедного, заставляли в школе на Pascal массивы сортировать.
Предположительно, когда он пришел в Вуз, увидел «профессионалов» С/С++/Python/C#, которые загнобили за Пасцал. Автор потыкал C++, получил приятные ощущения внизу живота, от магии указателей, да и возможность прострелить себе колено — это совершенно другой уровень, это вам не школьный Паскаль, где компилятор просто не скомпилирует заведомо бредовый код.
После С/С++ — Паскаль для автора уже «детский сад». Смотрите — целый репозиторий крутых C++ проектов: github.com/AnarCom/imperative_tasks.
Правда в первом же открытом файле я странность обнаружил — автор уверяет что C/C++ для школьника — это просто, но будучи студентом возврат calloc не проверяет, в то время как возврат malloc проверяет, странно. И да — судя по коду автор уверен что освобождение памяти это лишний, лишь замедляющий программу код.
int main() {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    int N;
    uint16_t *sums;
    scanf("%d\n", &N);
    sums = calloc(N, sizeof(uint16_t));
    char **lab = malloc(sizeof(char *) * (N + 1));
    if (lab == NULL) {
        exit(666);
    }
    for (int i = 0; i < N; i++) {
        lab[i] = malloc(sizeof(char) * (N + 1));
        if (lab[i] == NULL) {
            exit(666);
        }
    }
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            char l = 0;
            scanf("%c", &l);
            lab[i][j] = (char) (l == ' ');
            if (l == ' ')
                sums[i] += 1;
        }
        scanf("\n");
    }

    int a = calc_number(lab, sums, N);
    printf("%d", a);
    return 0;
}

Однако точно можно сказать: учителя преподающие Паскаль, люди, которые коммерческие и не коммерческие проекты на Паскале пишут, и указывают в комментариях что используют Паскаль — это так, детсадовцы, которые не понимают ничего ни в программировании, ни в школьной программе. А вот автор поста настоящий Профессионал(666)!
Ок, рейтинги (TIOBE Index — самый авторитетный рейтинг ЯП) — Паскаль обычно в 20ке самых популярных языков, периодически попадает в 10ку. В данный момент согласно рейтингам более мертвыми языками являются Rust, Dart, TypeScript, Kotlin, Bash. Упс!
Или под рейтингами имеется ввиду посты в пабликах ВК вида «ТОП 5 САМЫХ КРУТЫХ ЯЗЫКОВ ДЛЯ ХАКЕРА»?
Соотнесите процентное соотношение кода, написанного за последние 10 лет на Паскале и на условном Си, это про «мертвость» и «не актуальность».
Да на Си пишут больше чем на Паскале в 2021, однако так можно признать мертвыми еще 100500 языков. И где это соотношение можно увидеть, с пруфами? Чтобы сказать «да — не пишут на Паскале.
Так же ученые все еще программируют и поддерживают код на Fortran (или переписывают его) — становится ли он от этого живее — спорный момент. Мало того, ученые (почти) не цепляются за этот язык и с удовольствием его отказываются, так как стремятся к современным решениям.
Фортран активно используется в науке и не куда не пропадёт, модные Питоновские NumPy и Pandas внутри на Фортране частично написаны.
Мало того, ученые (почти) не цепляются за этот язык и с удовольствием его отказываются, так как стремятся к современным решениям
Где об этом можно прочитать?
Так что я не вижу противоречия между написанием кода на Паскаль и его мертвостью, даже если учитывать выпуск новых компиляторов и тд.
Т.е. несколько платных компиляторов Pascal, куча популярного софта написанного на Pascal, использование Pascal для обучения — этого недостаточно, чтобы язык был „живым“? А что тогда?
1) Любой современный Паскаль поддерживает сторонние библиотеки.
2) docwiki.embarcadero.com/Libraries/Sydney/en/System.Generics.Collections

Информация

В рейтинге
4 301-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

Software Developer, Траблшутер