Ниша PascalABC.NET

Так поэтому я Вам и написал. Ну откуда мне знать, почему, может Write реализована как вызов внутри нее Print, за исключение случая параметра $’…’

Print разделяет элементы вывода пробелами и потому удобен для начинающих. В Pascalabc.net считается основным. Почитайте первую презентацию на сайте. Еще он перекликается с одноимённым методом Print. В остальном всё одинаково

Нет, Print вызывает Write)))

Но всё они вызывают Console.Write(...).

Как он может быть “основной”, если он в PABCSystem реализован через write?!

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

Ну, конечно, профессор… А еще почему-то так делается в официальном стайл-гайде Борланда и в команде JEDI (чертовы С-маны! :smile:). Это, конечно, не обязательно, но многим так удобнее с точки зрения последующего редактирования кода: напр., так проще добавлять новый код перед end-ом или переносить часть кода до end-а в любое другое место, не спотыкаясь после о забытую ;

За бессмысленные высокомерные замечания – 2 минуса в карму :slight_smile:

1 лайк

Одно другому не противоречит. Если надо просто вывести два значения, то Print.

Форматирование в стиле Write устарело. И конечно :: это огромная нерегулярность языка, которая может встречаться только в Write. Это портит всю грамматику, препятствует реализации новых конструкций.

Вам “сэр @spectatorBH” по-видимому тоже пожелает двух минусов в карму ))) Раз уж ссылка на Ваше мнение для него - " бессмысленные высокомерные замечания"

Ну, это не мое мнение, это официальный источник на сайте проекта. Это - разные вещи.

Не ваше мнение? Шутите? А чье же оно тогда? Кто же автор этого “официального источника”? Да и ссылаться на упрощенные презентации для начинающих, выложенные всего несколько месяцев назад при возрасте проекта в ~13 лет и наличии официальной развернутой “справки”, в кач-ве какого-то особого официального источника вообще как-то странно, не находите?

Ладно, пускай теперь презентация будет у нас главным источником. Но даже там сказано про print/println как “предпочтительные” процедуры вывода, а не “основные” – что вполне корректно и с чем я в целом согласен (только еще уточнил бы, что это справедливо только для вывода на экран, т.к. при выводе в файл лишние неконтролируемые пробелы не нужны).

Но основная (базовая) процедура по определению – та, на которой базируется реализация других, вторичных по отношению к ней. Я уже не говорю о том, что write/writeln – неотъемлемая стандартная часть всех существующих ныне и когда-либо существовавших реализаций Паскаля!

Вот тут соглашусь. Особенно касательно “нерегулярности” специального синтаксиса для форматирования в процедуре. Еще Str() этим же грешит.

Может быть пора уже официально вводить свой несовместимый диалект без лишнего и проблемного груза legacy-синтаксиса? Скажем, с помощью директивы {$mode legacy_style} или наоборот {$mode modern_style}.

Тогда стоит заранее обсудить все подобные отличия, или же вообще отказаться от 100% совместимости снизу-вверх в новом синтаксисе, полностью развязав себе руки на будущее и официально объявив проект учебно-экспериментальным (as-is) и нерекомендуемым для использования в “продакшн”. Я серьезно! Таким образом все сразу встанет на свои места и не будет больше оснований для несправедливой критики.

По поводу ; - это была всего лишь шутка. Не надо пытаться перевести её в конфликт, это никому не нужно. RAlex - уважаемый пользователь, если Вы не правильно поняли сказанное, ещё не значит что надо устраивать здесь разборку а-ля Малахов.

Ну, подскажите, в какой форме кроме презентаций это будет весомым. Мы это примем и проанализируем.

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

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

3 лайка

И почти 15 лет усиленной работы многих людей коту под хвост. Если язык засветится хотя бы в одном более-менее серьёзном проекте, то его будет не догнать всяким VisualStudio и подобным. А деньги? Разработчикам языка будут платить, причём много. Говорить о багах вообще не придётся.

А, ну ясно. Мы просто по-разному трактуем понятие основной процедуры. Если Вы внимательно посмотрите, как сделана процедура Read, то по вашей классификации ее никак нельзя отнести к основной, потому что она базируется на целом классе, состоящем из десятка виртуальных методов, которые по вашему и должны быть объявлены основными. Но это как то совсем странно.

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

1 лайк

Стоп, но ведь Паскаль туда и не лезет. Открытый исходный код, бесплатная поддержка(по возможности).

Да что уж там, Вы правы…

Это было бы хорошо, но

то на него тоже обратят внимание, причём, возможно, не только в сфере образования.

Но вот как по мне, редактор Паскаля гораздо удобнее, чем VS. Я пробовал использовать студию для написания кода на C# и был крайне неприятно удивлён, а затем вспомнил, что C# встроен в Паскаль - вот был кайф!

1 лайк

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

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

Думаю, что для полноценного роста проекта надо привлекать сюда не только школьников и студентов, но и учителей школ. Как минимум потому, что не школьники решают, что там на компьютерах в кабинете стоит. Кроме того, нужна натурально взрослая аудитория - от нее меньше радостей, но в разы больше пользы. Каким путем? Как например - раздачей буклетов/рекламок в период проведения школьных олимпиад, дней открытых дверей, и прочего. Мелочь, а достаточно действенно. И в масштабах мехмата - дешево. Возможно - проведением курсов повышения квалификации для учителей информатики. Те же статьи в популярных местах вроде Хабра - но только не с позиции “как написать очередной helloworld”, а с позиции “как мы преподаем с помощью Паскаля, и почему у нас это получается хорошо”. Гранты - круто, конечно, но этот вопрос, как я понимаю, на три головы выше самих разработчиков, и выбивать их сложно. Плюс, с ними можно “словить” указаний, как должен выглядеть проект, что выведет его из свободного плавания. Инвестиции - далеко не всегда хорошо… А вообще, пиар - не моя тематика, так что пропустим :slight_smile:

P.S.

Картинки - это мой стиль! И мне обычно перед ними есть, что сказать =3

2 лайка

Касательно ниши. Паскаль имеет красивый и логичный синтаксис, а также доступ ко всем возможностям .NET. Мысль такова - что если поступить с Паскалем так, как в своё время поступили с Питоном - использовать для написания “скелета” приложения и интерфейса? Приведу пример из той области, в которой работаю - из нейросетей: на C++ написана библиотека с базовыми функциями(например, TensorFlow, хотя на C++ написаны все) и откомпилирована. Далее на Питоне расписывает структуру нейросети и, иногда, интерфейс. В Паскале примерно то-же самое, но чуть лучше. Я сейчас работаю с библиотекой ConvNetCS, написанной на C# из под Паскаля. В итоге - большая скорость выполнения(C# даёт более эффективный код, чем Паскаль. Надеюсь, что разработчики этим займутся.) и красивый и понятный код на Паскале.

  1. Не стоит проецировать личное удобство на всех подряд - для меня, к примеру, Паскаль очень многословен (красивые примеры с LINQ не в счет, наглядно, но редко действительно применимо). Красивость и понятность кода - вещи относительные.
  2. Синтаксис, и прочий связанный с ним сахар - лишь один из вариантов представления абстракций, доступных любому программисту. Программировать учатся годами, новые языки выучиваются за неделю.
  3. Если уж сравниваем с Питоном… Хоть и не люблю я этого, см. пункт 2. “Поступать” с Паскалем можно как угодно - только не стоит забывать, что у Питона огромная база написанного кода на все случаи жизни, работы, хобби, и межгалактических путешествий. Ну вот не нужно под него свою нейронную сеть писать - просто пакет нужный доставить, да запустить. 5 минут дела. Сдвинуть Питона с ниши “быстро накидал что-то там” - задача невыполнимая. То, что Паскаль тоже так может, не означает, что его будут с этой целью использовать (нет, не может, базу кода .NET и Питона не сравнить). Плюс, формат интерпретируемого языка в этих задачах удобнее. Для этих целей нужна пиар-кампания, которой свет не видывал. А еще - нужно заставить народ “полюбить” .NET - Microsoft себе раз за разом штаны мочит уже который год, и я все больше сомневаюсь в существовании длительного будущего этой технологии. Отношение к Microsoft в сообществе крайне сомнительное. Ставлю на 5-6 лет, сугубо из того, какой это мастодонт. Хотя, вакансии живы, так что… Ну, это ИМХО.
  4. По поводу скелета - см. пункт 2. И возможностями FFI нынче никого не удивить. В каждом языке есть.

Обсуждение “ниши” продукта лежит далеко за пределами удобства и красот исходников, на нем написанных. Размер “ниши” произрастает из возможностей “руки” - насколько она длинная, и насколько загребущая. Тот же Go, в моем понимании - простой как пробка язык, без большинства современных возможностей ЯП, отсутствие шаблонов, к примеру - вырвиглазная боль. Продвигается Google, поэтому “на коне”. Взять Rust - достаточно больной синтаксис, сложная обработка владения переменными, куча подводных камней, претензия на “системность”, но с постоянной оглядкой на кучу ограничений, что он навешивает (писать на нем лично мне было гораздо сложнее, чем на С++). Продвигается Mozilla, поэтому на коне.

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

Я же не сказал, что все должны им так пользоваться, специально ведь отметил, что речи идёт именно о моём мнении. Да и Паскаль я тоже по всякому использую.

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

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

Но мы ведь не знаем, кто читает этот форум(особенно без регистрации). Всякое может быть :slight_smile:

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