Pull to refresh
84
0.1
Пётр @Error1024

Разработчик

Send message
Мне кажется — что-то изменилось, раньше люди учились программировать из интереса, в последствии этот интерес становился профессией. Щас, в том числе, под влиянием курсов вайти-в-айти люди хотят с первого же 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
А школьнику точно надо забивать голову такими кривыми и не нужными для обучения алгоритмам вещами как хидеры? Тем более в Паскале есть более красивая концепция модулей, как и во всех современных языках, кроме C++, где уже 30 лет модули все обещают добавить.
Безусловно, тут просто автор статьи хочет убедить всех, что в С++ это так же просто как и в Pascal, что явно не правда.
Интересное мнение о том, почему его ненавидят конечно. Я дал себе обещание не спорить больше в комментариях, но тут я просто воздержаться не могу.
(Возможно там и есть что-то хорошее — не буду скрывать), но основная «ненависть» (тут точно не это слово, но менять его не буду) не в реализациях Паскаля, а в том, что это Паскаль.
Вау, супер объективная вышла статья у вас. Статья про неправильную информатику в школе, где в качестве аргументов к тому, что Паскаль надо заменить на что-то более «модное» — высказывания вида «Ненавижу Паскаль, потому что это Паскаль». Ок.
С такими темпами мы можем учить на условном Ада/Алголе и прочем, и говорить, что его хейтят программисты за «функциональность» и «крутость».
Ох, знаете, если по языку Ада нет 100500 курсов на площадках типо ГикБрейнс или СкилФактори, это не значит, что язык мертв, или не нужен. Вы летаете на самолетах? Знаете, о том что в Airbus и Boeing софт на Аде написан и продолжает писаться? Однако с Адой то все понятно — опять Паскальный синтаксис вам глаза режет.
К Паскалю есть притензии на уровне «слишком много слов ради слов (end, begin и прочее)», переменные в начале
А к C/C++/Python/Go нет претензий никаких, они идеальны?
или поддержания его (в некоторых версиях) по-факту для школы (и да я знаю про написание на нем продуктов, но все же).
А что плохого в том что есть удобная среда для школьников и студентов? PascalABC.Net — ДЕЙСТВИТЕЛЬНО создан для обучения, и хорошо выполняет свою функцию, впрочем его и для науки используют.
Для меня стало удивлением насколько «сообщество» программистов на Паскаль стало защищать свой язык. Если он нуждается в такой защите возможно с ним что-то не так?
А вы попробуйте написать статью с посылом «Python — устаревший и мертвый язык», а я посмотрю на комментарии к этой статье и на вашу карму.

Information

Rating
2,500-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

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