Ниша PascalABC.NET

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

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

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

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

Но вот как по мне, редактор Паскаля гораздо удобнее, чем 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

Вот… 17 числа еще одна всероссийская школьная олимпиада.

PascalABC.NET вроде бы включен, но…

Ну это ещё что! Дельфи вообще какая-то 2.4.4. указана. Это что ли Delphi 2 от 1996 года?

Я уже высказывал предположение, что это делается намеренно неким лобби. Иначе пишущие на PascalABС.NET остальных “уделают” в разы. А так программа благополучно зарубится по синтаксису - и все дела.

GCC/++ 4.9.0 - release date April 22, 2014. Это что же, вместо компилятора С++ поставили такое сушеное говно? =3

Delphi 2 - промолчу

Python 3.4.3 - release date February 25th, 2015. Аналогично. Сейчас уже версия 3.7.0 выползла.

Haskell 4.7.1. - это что вообще за зверь такой? GHC нынче восьмой версии в интернетах!

Нет, не в лобби дело. Дело в том, что тем, кто занимается этой самой олимпиадой, влом переставлять компиляторы на компах, на которых олимпиада проходить будет в очном виде, да на системах проверки… Что было - то и взяли. Если уж компилятор С++ вышел трехсполовинойлетней давности (тот, по поводу которого Вы утверждали о наличии для него многочисленного лобби) - о чем тут говорить.

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

Из всего перечисленного софта PascalABС.NET со временем меняется быстрее всего. Либо использовать только какие-то базовые вещи, либо быть готовым, что не откомпилируется. Посмотрите на сайте, сколько изменений сделано за один последний год. Ни один из тех прочих языков так сильно не полируется.

Да, на офф сайте нет, но никто не отменял гитхаб, у которого можно отматывать коммиты))) Там не только 3.1, там все версии и все билды можно получить, даже те что на сайт не попадали…

Но да, это не отменяет ничего что вы сказали…

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

Решением тут было бы формирование Stable/Nightly версий, которые обновляются в соответствии с некоторым графиком. Скажем, Nightly сразу после появления некоторых фич, а Stable - с поднятием мажорной/минорной версии (в зависимости от объема изменений), и не чаще чем один раз в полгода. В таком случае можно было бы (согласно обсуждаемой темы):

  1. снять необходимость с организаторов олимпиад лезть на офсайт проверять версии раз в неделю
  2. иметь официальную возможность сказать всяким баговоенам вроде того же Молдована, что он сидит на нестабильной версии, и свои пожелания по части багов может засунуть себе куда поглубже

Из добавившейся работы по данному вопросу - один раз в полгода формировать набор хорошо оттестированного функционала и мержить его в ветку Stable, оставляя все недотестированные и только появившиеся фичи в Nightly. Не то, чтоб очень много. Документацию делать только на Stable, желающие сидеть на Nightly (т.е., предположительно, более опытные) вполне обойдутся changelog’ами на гитхабе. Можно даже ссылку на Nightly на сайте не держать - лишь сказать, что последняя нестабильная версия доступна для скачивания в репозитарии.

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

Я сейчас не хочу сказать, что Паскаль полон багов и дырок - нет. Вопрос именно в отношении к моделям rolling vs fixed release. Я вот дома у себя archlinux держу, который обновляется так же, как и Паскаль - быстрее даже. Но подумаю 25 раз перед тем, как воткнуть эту операционную систему на прод. По вышеописанным причинам. К продукту со моделью обновлений rolling release недоверие по умолчанию.

1 лайк

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

Согласен конечно.

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

И срезы для матриц сделать. (Кто о чем, а вшивый - о бане)

1 лайк

Трудозатраты нужны, когда возникает более сложная схема:

  • Nightly - текущая последняя нестабильная версия, последний коммит
  • Stable - фиксированный набор функциональности, но есть багфиксы

За счет необходимости внесения багфиксов в Stable в такой схеме, кодовая база двух веток может изрядно разъезжаться - особенно, если в Nightly произведен рефакторинг кода, или избрана новая концепция работы. Это приводит к необходимости тянуть две версии кода вместо одной. Я же предлагаю изначально собирать в Stable только гарантированно откатанный код, и фиксировать его полностью.

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

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

1 лайк

Да, но если на сайте две версии, их нужно поддерживать обе. Ведь если сейчас ,когда задается вопрос не по последней версии, навстречу сразу летит “А Вы обновились?” А так надо у себя держать вторую версию (не так уж они и хорошо на одном компьютере уживаются!) и осуществлять поддержу по обоим. Я вот об этой трудоемкости.

Nuff said.

Обсуждение Nightly-версий так и вовсе выпилить с форума, и отправить на мороз гитхаб.

VirtualBox!

Присоединился недавно, но не могу не добавить своего мнения. Случилось так, что в институте в 0х годах нам преподавали Турбо Паскаль, и с интерфейсом в те годы было туго. Но не смотря на это, на олимпиадах по программированию мне удавалось занимать места сверху. Затем был перерыв в 20 лет, занимался конструкторской деятельностью. В это время пробовал delphi, vs, arduino. Не срослось. А вот, сейчас, понадобилось срочно создавать специализированное прикладное ПО и я натолкнулся на pascalabc.net. И поперло. Сейчас я уже готов сертифицировать этот продукт и узаконить в эксплуатацию на работе. Видимо, для старой школы, в текущих реалиях, pascalabc является хорошим выбором.

3 лайка