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

В PascalABC.NET срезы по-другому реализованы, а интервальный тип просто не сработает в качестве среза здесь (хотя, не особо то и нужно). Точнее, я бы сказал здесь так - хотите классический Паскаль и чтобы работало как во многих книжках - берите Free Pascal вместе с Lazarus или подобный; хотите Паскаль на платформе NET, чтобы впоследствии перейти на C# или иной NET-язык - Oxygen/PascalABC.NET. Впрочем, последний как наиболее доступная и простая для обучения (!) альтернатива лучше. Зависит от того, что хочет автор вопроса - выбор то имеется, Паскаль не один, их много (диалектов). Впрочем, иметь представление об обоих было бы не лишним. Во всяком случае, мне интересно узнавать какой был истинный Паскаль, без множеств модификаций при “переносе” его на платформу NET.

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

Как по мне, ошибка главная кроется в том, что сам язык реализован не на той платформе, на которой тот же Free Pascal. Чему мы сами здесь учим? Паскалю? NET? Мы учим маленькой части Паскаля, а дальше всё - NET. Это позволит прыгнуть на C#,VB.NET/F#, но также это отрывает нас от существующей программы обучения, которая не будет меняться по нашей прихоти. Кроме того, если мы учим NET, почему бы не использовать родные языки сразу для этой платформы, а не посредников, которые тянутся в обе стороны - Паскаля и NET. Я сторонник мнения, что если и делать что-то и учить, то лучше на родных для платформ инструментах и в IDE, которые располагают достаточным функционалом, не только для обучения. SharpDevelop - подходит для нескольких языков, даже для C++. Зачем ограничивать себя?

Посмотрите на C++ CLI - это смесь C# и C++, но не лучше ли просто два языка в проекте использовать, чем эту смесь? Я более чем уверен, что у C# и у C++ по отдельности функционала больше, чем у C++ CLI, который ещё может иметь несовместимости с этими языками в некоторых местах (в каких именно?). Ладно, на это ещё глаза закрыть можно, но активное (!) сообщество и хорошая документация - где оно? Точнее, возникла проблема - а кто поможет её решить и насколько быстро? Также и тут - меньше 10 активных участников… Учителей я тоже не наблюдаю, которые бы активно бы здесь помогали ученикам и решали вопросы при разработке. Порой возникает ощущение, что язык делается для самих себя, а не для “народа” (которого, кстати, здесь особо тоже не наблюдается).

Риторический вопрос: Сможем ли мы сохранить популярность PascalABC.NET, как языка для обучения Паскалю (!), если упор делается на NET?.. Красивая и современная оболочка не заменит внутренности и не скроет их недостатки, также как и красивая графика в фильме не скроет минусы и проколы сюжета в фильме (хотя, почему-то современные фильмы делают часто акцент на графику, а не на прописанность сюжета).

Школьникам и студентам сейчас начинают массово преподавать Питон. Так что, мне кажется, не надо сравнивать с устаревшим Free Pascalем (он сейчас практически не используется скажем на школьных олимпиадах по программированию), а надо сравнивать именно с Питоном по лёгкости записи конструкций и решения. Но используется он не только для обучения. Вот например вполне научная статья: https://elibrary.ru/item.asp?id=41444183

@MrFresnel - это вы не увлеклись еще Питоном в достаточной мере - именно он позиционируется как начальный язык программирования и именно с ним надо сравнивать - язык C# тут рядом не стоял. Поэтому PascalABC.NET играет именно на этом поле, выигрывая у Питона там, где он устарел.

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

Он используется в частности для проведения научных расчетов: https://elibrary.ru/item.asp?id=41444183. Или например вот тут: https://elibrary.ru/item.asp?id=39541007. Порадовали также наши израильские товарищи: https://datadryad.org/stash/dataset/doi:10.5061/dryad.kh189322c

Так что не надо недооценивать применимость PascalABC.NET. И уж во всяком случае судить по форумам

1 лайк

Я не спорю с тем что, язык вовсе не новый. Уже взрослый, имеет свои положительные и отрицательные стороны, но у него хотя бы есть поддержка в нескольких IDE. Поддержка несколькими IDE немаловажный фактор. Есть немалое сообщество, готовое помогать другим. Это всё - ему плюс. У PascalABC.NET - есть одна IDE, одна (!), есть плагины, как Вы говорили для профессиональных IDE, но они помнится, уже неактуальны. Точнее, доступность у Free Pascal выше.

Я конечно не фанат этого языка, но, где именно он устарел? Мне очень интересно. Пока я вижу, что он жив и успешно развивается. И у него с IDE всё прекрасно - возьмите ту же PyCharm и будет Вам счастье. Хотя, конечно, я редко смотрю что в нём происходит. И буду рад, если просветите.

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

Можно вопрос? Почему здесь дата 2021 года, хотя он ещё не наступил?

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

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

Я не знаю как вы понимаете - мы просто сканируем сообщения в сети. Вероятно, ошибка

Он давно не развивается как язык. Почитайте внимательно, какие новшества были предложены за последнее время. Попробуйте, что можно сделать на шаблонах. В частности, какая модель принята в их шаблонах - C++ или C#, можно ли ставить ограничения. А то получается по известному анекдоту: “Не слушал, но поддерживаю”

1 лайк

What’s New In Python 3.8, первое что видим: Assignment expressions, это доказательство того, что Python развивается как язык.

Здесь какая-то адова куча понамешана. Надо различать язык и оболочку. Оболочка во Free Pascal - синенькая - если вы в ней поработаете хотя бы часик, то поймёте насколько она дырявая. Плагинов к Free Pascal я не встречал вообще. Про плагины как в профессиональных IDE я не писал вообще - я что-то такого не помню.

IDE - ну OK, если это критерий качества языка для вас, то это ваш выбор.

Вообще мне кажется, что вы слишком тенденциозны в отношении PascalABC.NET - вы всё время пытаетесь найти причины, почему он хуже, приводя сейчас уже заведомо какие-то убитые доводы о том, что устаревший 15 лет назад Free Pascal лучше. Вы определитесь, зачем это вам. Поверьте, попытка разрушать сделанное руками других - это не лучшее приложение сил для молодого человека.

А Lazarus? Или про неё уже можно не вспоминать, “лишь бы не мешало”?

Кажется, плагин в Eclipse у Вас был.

Нет, Питон конечно развивается - это я о Free Pascal и Delphi говорил. Python - это огромная денежная индустрия - ничего удивительного. Там даже пытаются аннотации типов вводить ну чтобы на этапе компиляции можно было улавливать ошибки.

Не качества самого языка, а критерий его поддерживаемости сообществом в целом.

Нет, у меня ничего не было.

Вот.

Не спорю - Free Pascal поддерживается фанатами в хорошем смысле этого слова. Он переносится на многие платформы, и в этом его огромное преимущество. Но как язык он практически не развивается. Как и Delphi. Потому что он был сделан как жёсткий клон Delphi.

Мы занимаемся прямо противоположным - следим, какие тенденции имеются в современных языках программирования, и пытаемся некоторые наиболее подходящие внедрить у нас. Мы отслеживаем большой спектр языков, среди которых Kotlin, Python, Haskell, C++, Rust, Go, Julia и некоторые другие. Не все концепции конечно ложатся на язык, а некоторые требуют значительного времени для разработки и тестирования.Но именно в этом направлении будет развиваться PascalABC.NET.

А с сообществом - ну что ж сделать, если у нас такое сообщество. Мы как видите работаем с сообществом, какое есть ))

2 лайка

Мы не писали. Если бы мы писали, то мы бы написали. Вообще, идея встраивать компилятор PascalABC.NET в java-оболочку с постоянно меняющимся стандартом плагинов - самоубийство.

Занятие хорошее, но с образовательной программой пока что конфликтует местами все эти новшества. Я лишь к этому написал своё первое сообщение. А не чтобы сказать “у Вас ужасно то, то и это”. И точно не для того, чтобы с Вами начинать конфликтовать публично.

Вы опять пытаетесь найти только контраргументы. Lasarus - хорошая среда, мы оттуда позаимствовали частично идею автозавершения кода. Нам надо её доработать - она у нас будет лучше.

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

Профессионально - не знаю, кто использует, но среда добротная.

Так я поэтому и сказал, что PascalABC.NET для обучения хороший выбор. Я где то выше разве иное сказал? Здесь, как нигде, есть много учебных (!) модулей, выбирай что хочешь.

Когда будет - тогда будет, подождать можно ради хорошей IDE. Тогда будет всё хорошо, а пока уж вот так.