Рассуждения о предназначении PascalABC.NET (внимание - религиозные войны!)

Я вообще человек позитивный )

Принципиально - я хочу подчеркнуть - я не согласен с утверждением, что PascalABC.NET - учебный язык программирования. Это не так. Он вообще не так нами позиционируется.

Нет не лучше. C++CLI даёт больше возможностей соединения кода на C++ и C#, потому что в C# запрещены многие вещи, необходимые для написания производительного интерфейса к библиотеке на C++.

Сам по себе C++CLI использовать бесполезно и глупо. Но создавать проект, использующий C++, C++CLI и C# правильнее, чем проект, использующий только C++ и C#.

И функционала в C++CLI не меньше. В C++CLI доступно почти всё и из C++, и из C#. Единственное - разумеется, использовать оба этих функционала вместе ещё менее удобно чем писать на C++. И надо для начала хорошо разбираться в том, как работают и C++ и C#.

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

А вот у данного паскаля таких же больших минус нет. Его расхайпить нейросетями было бы логичнее))

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

Только из-за этих больших возможностей соединения кода изучать новый язык, который недо-C# недо-C++? Притом, что управляемый C++ не будет содержать абсолютно все новшества C# как и C++. Придётся изучать разницу между языками, а она где-то чётко прописана? Та же ситуация была и с J# - не взлетел. Проще было писать либо на Java, либо на C#.

Почти всё, но не всё. Вы сами себе противоречите.

Сам Паскаль (как множество языков) тоже можно покритиковать - слишком длинные операторные скобки, но Вы же его не критикуете. Более того, это особенность языка, и даже если и минус, то совсем небольшой, так что Ваше утверждение неверно.

А никто и не заставляет. Этот всё только для тех, кто хочет писать особо качественный код.

Я не говорил что в C++CLI есть всё. Я не знаю C++CLI от и до. Но наверняка есть какая то фича, которая реализована по-разному в C++ и C#, из за чего в C++CLI попадает только одна из версий этой фичи.

Когда писал - я изначально подумал про шаблоны в виде пример, о сейчас проверил - это не так, в C++CLI есть и шаблоны и генерики.

Но если пример такой фичи всё же есть - это наверняка какая то мелочь, которая не сильно то и нужна.

Я уже много раз писал, мне нравится наглядность операторных скобок. За begin проще зацепиться глазом, чем за {. А снипеты из автовставка полностью убирают разницу в скорости написания.

Кроме того, это не критика а высказывание мнения о предпочтении. Я прекрасно представляю что кому то может нравиться когда отступы влияют на синтаксис. Но для меня это серьёзный минус.

Качественный код можно писать и вовсе без этих извращений, так что это снова ещё один слабый аргумент в защиту данного языка-посредника. Если человек это не может сделать, то надо ему улучшать свои умения и навыки, а не бежать сразу на C++ CLI.

Какая может быть и неизвестно, по языку мало литературы. Более того, даже если и известно, то в одном случае может реализация некоторой функциональности приниматься из C#, в другом из C++ - точнее каша. Я, конечно, за изучение новых языков и технологий, но изучать C++ CLI - не вижу смысла.

Если уж подняли вопрос про сниппеты - в Visual Studio они реализованы более гибче, как и в том же Rider и писать там гораздо быстрее, чем здесь даже со сниппетами. Так что здесь выигрывают C-подобные языки во многом благодаря их IDE. Набрал имя сниппета, два раза Tab, заполнил поля и Enter - здесь, как и в DevC++ так не сработает - нужно вручную заполнять.

Надо было сразу так говорить, а не выдавать за истину в последней инстанции.

На этом можете считать разговор оконченным.

В России Lazarus в обучении действительно не популярен, потому что если кто-то из учителей “заморочен” на быстрой разработки интерфейса, он использует Delphi. А вот украинские школьники достаточно часто обращаются на сайтах-решебниках с просьбами написать программы на Lazarus. Также есть некоторая доля школьников из Казахстана, где учителя тоже посещают капище этого божка.

Вот тут я не понял: Вы предлагаете изучать “классический Паскаль” лишь для того, чтобы “работало как в книжках” ? Т.е. изучать язык, у которого нет будущего, потому что он давно уже не развивается и не соответствует современным тенденциям лишь чтобы “как в книжках было”, причем, добавлю, в тоже старых? Удивительная идея!

Ошибка? Какая ошибка, Вы о чем? О несовпадении части синтаксиса и семантики PascalАВС.NЕТ с Turbo Pascal ? Вы спели достаточно много дифирамбов Free Pascal, но в пылу полемики как то забыли, что учебники в школе - они вовсе не по Free Pascal. Школа с ее крайне скудной часовой сеткой, отведенной изучению алгоритмического языка просто не в состоянии обеспечить изучение Free Pascal сколь-нибудь полно. Изучается подмножество языка, которое даже уже, чем описано у Н.Вирта. Другими словами, это концепции программирования 70-х годов прошлого века. Вдумайтесь: Вы возмущаетесь, что PascalАВС.NЕТ, видите ли, отходит от традиций полувековой давности. Фактически, школьный Паскаль - это ранее изучаемый ершовский Алго (КуМир) в нормальной английской нотации - и все! И Вы предлагаете с таким “багажом знаний” выпускать в большой мир современного школьника?

По поводу “почему бы не использовать родные языки сразу для этой платформы” - Вам знаком термин “время вхождения в язык” ? Если знаком - то Ваш вопрос, извините, выглядит не очень умно, если незнаком - ознакомьтесь…

1 лайк

Питон - не учебный ЯП и никогда таковым не будет. Он развивается в сторону усложнения, поэтому никто не делает его учебным - его навязывают быть таковым.

Если PascalABC.NET тоже не учебный ЯП, то глупо ждать на форуме учителей и учеников. В школе есть учебный ЯП - это Кумир. Название хорошее, но настоящим кумиром он не станет. PascalABC.NET тоже не станет кумиром, пока не станет учебным. Для этого необязательно ориентироваться только на школу. Но учесть потребности школы необходимо. В моей группе на Фейсбуке есть учитель, который привлёк внимание учащихся к Питону с помощью простейшей анимации.

Лично меня бы PascalABC.NET заинтересовал бы как именно учебный ЯП и ЯП для начинающих, непрофессионалов и тп. Вот что наклепал 1 человек за короткое время: https://superbasic-v2.azurewebsites.net/ При этом параллельно существует аутентичный SmallBasic.

Не нужно сравнивать PascalABC.NET с другими ЯП - они действительно другие. Сравнивайте, насколько PascalABC.NET удовлетворяет реальные потребности пользователей. Но пока не определён портрет этого пользователя, говорить не о чем. Стремление угодить всем ведёт к усложнению языка, но при этом все всё равно недовольны. Абстрактный пользователь и не может быть удовлетворён, поскольку его потребности столь же абстрактны. Без чёткого и конкретного указания конечного пользователя ЯП эта религиозная война никогда не закончится.

МИРУ - МИР!

3 лайка

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

Дельфи в разы проще PascalABC.NET. Все, что там сложным кажется - это библиотеки и интерфейсные формы. А сам язык намного примитивнее - это старый Object Pascal

PascalABC.NET - мультипарадигменный. На нем можно программировать как в процедурном, так и в объектно-ориентированном, так и функциональном стиле.

Кроме того, PascalABC.NET содержит языковые и библиотечные средства, разные по сложности, что позволяет выстраивать программу обучения на нем как второкласснику, так и студенту профильного ИТ-направления.

Искусство преподавателя - выбрать эти средства.

Учебность многие ущербно понимают как простоту, простоту - как три команды и два оператора.

PascalABC.NET позволяет просто решать многие сложные задачи. В этом отношении он - простой. Гораздо проще Delphi.

В частности, в число золотых примитивов современного программирования входят автовывод типов, лямбды и кортежи, без которых программирование на PascalABC.NET неполно.

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

Научить решать задачи вида “Вычислить по заданной формуле Y(x), где х - произвольное вводимое число” на PascalАВС.NЕТ действительно можно и второклассника. Но чтобы изучить этот мультипарадигменный язык сколь-нибудь подробно и уметь на нем писать именно мультипарадигменно, т.е. сделать его в своих руках действительно тем мощным инструментом, каким он является, - для этого надо потратить времени гораздо больше, чем для освоения Delphi.

2 лайка

При правильном преподавателе и методике - это время вполне нормальное, а пользы и количества концепций на единицу времени - больше.

1 лайк

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

А откуда у вас такое профессиональное мнение?

Школьникам, к примеру и в телескоп не надо давать смотреть - это вещь такая, еще начнут к соседям в окна подглядывать… )))

Кем нечитаемый? Отдельными учителями информатики, которые как познакомились тридцать лет назад с Паскалем, так ничего другого и не видели, а при виде современного кода трижды через левое плечо плюют?

– Доктор, а откуда у Вас книжка с такими картинками?

1 лайк

Доводилось видеть в других языках. Я не говорю, что любое лямбда выражение нечитаемое. Но бывает.

А вообще, Сишники вот тоже не понимают почему я считаю, что запись вида

for (int i = 0; i < 9; i++)

хуже , чем

for i := 0 to 8 do 

хотя по мне это очевидно (приходиться вводить больше искусственных обозначений, в паскале оно всего одно := вместо =. Но си здесь ещё хуже, т.к. он вводит ненаглядное соглашение, что справа налево присвоение идёт).

А вот питонисты это поняли, когда писали

for student in students:
  • в этой конструкции нет ничего отличного от естественного языка.

(спасибо кстати разработчика Pascal.ABC.NET за foreach).

В Питоне лямбды плохо читаемые бывают - это да. Вообще, на мой взгляд Питон - это зазеркальная логика". Ну не понимаю я, как это можно писать “а присвоить 5 если x > 0 иначе 3 * х”. Я уже в другой ветке писал, что это речь магистра Йоды.

В С оператор for намного универсальнее паскалевского - вот за это его сишники и любят, а не за запись.

Тоже не фонтан. “Для студента из студентов…”. foreach тут лучше, безусловно. “Для каждого студента из студентов…”

Наша методическая концепция - такая: лямбды - это новые примитивы программирования для начального обучения.

Мы начинаем немного с математики:

y(x) = x*x - квадратичная функция (график - парабола)

y: x -> x*x - другая запись, каждому значению x ставится в соответствие x*x

Имя y неважно, x -> x*x - безымянная функция или отображение, ставящее каждому x его квадрат

uses GraphWPF;
begin
  DrawGraph(x -> x*x);
end.

А вот - график этой безымянной функции:

40 сообщений перенесены в тему Болталка PascalABC.NET