MrFresnel и его критика PascalABC.NET


#1

Главное, что постигать (полностью) его мало кто желает, а уж тем более за разумные сроки. Есть несколько тому причин.

  1. Первая - это его ниша. Поскольку он используется преимущественно в образовании, а не в разработке крупных проектов, то у изучающего его встаёт вполне адекватный вопрос: Зачем изучать язык, который не используется в “производственной” сфере, да и по сложности примерно равняется C#'у?
  2. Вторая причина - отсутствие стандартизации в некоторых моментах в языке. На мой взгляд, виной тому (в основном) становится малое количество разработчиков. Они просто не могут уследить за всеми неточностями физически.
  3. Третья причина - нестабильность компилятора и всей IDE. Проблемы начинаются в большинстве случаев при использовании плюшек .NET. Обучающихся программированию (в большинстве своём) они не касаются. Это в свою очередь, делает язык непригодным для написания крупных проектов. Опять же, одной из причин тому, является малое количество разработчиков. За всем уследить сложно. Но, думаю, конечному пользователю всё равно на то сколько и как разработчиков работают над компилятором и IDE, для него главное, чтобы всё работало и работало хорошо. Если это не так, то пользователь (программист) может начинать альтернативу языку PascalABC.NET.
  4. В четвёртых, так как язык ориентирован на образование, то оптимизация не проводится в полной мере. В этом PascalABC.NET проигрывает другим производственным языкам. Другое дело, что в образовании сильной оптимизации зачастую не требуется.

PascalABC с точки зрения меньшей перегруженности был тем, что надо. Для обучения, по крайней мере, его было бы предостаточно. Спектр его возможностей был хотя бы обозримым. Да и было сразу ясно для чего этот язык и IDE - для обучения или для профессионального программирования. В случае же PascalABC.NET ситуация противоречивая - язык позиционируется как язык для обучения, но в него добавляются постоянно новые фичи, да и в таком количестве, как в “производственный” язык (как C#). Причём, времени на тестирование новых фич, особо не находится (опять же возвращаясь к вопросу о малом количестве разработчиков), новые версии выходят часто, и в итоге имеем возникающие в неожиданные моменты времени баги как в компиляторе, так и в IDE. Количество же тестировщиков достаточно мало, что также замедляет процесс улучшения компилятора и IDE. Разработчики тратят своё время на внедрение новых возможностей в язык, но не лучше ли “отпалировать” то, что уже имеется, а потом уже браться за все эти новшества, которыми далеко не все обучающиеся PascalABC.NET пользуются?


Pattern Matching в PascalABC.NET
#2

А зачем его весь постигать? На нем можно спокойно программировать и без всяких лямбдо-паттернов. И даже не знать об их существовании…


#3

Можно, можно писать и в стиле Turbo Pascal. Но только - зачем? Фичи создавались разве, чтобы просто “присутствовать” в языке? Для кого тогда все эти фичи, взятые из иных современных языков, делаются (Вы, @Admin, преподаёте, насколько знаю, PascalABC.NET, Вы можете мне ответить на данный вопрос.)? Как много человек используют эти фичи? Если судить исключительно по активности на форуме, то меньше 10.


#4

Фичи создавались для тех, кто не хочет оставаться в прошлом веке.


#5

А насколько много таких

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


#6

Без специальных сборов информации - можно только гадать. Однако, по крайней мере на кубер-форуме таких становится больше со временем. А людей которые напрочь отказываются от кодов на pabc.net - всё меньше.

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


#7

Значит, мы о разных вещах.

С точки зрения начинающего следующие фичи можно было бы выкинуть: автоклассы, свойства, автоматически реализуемые свойства, анонимные классы, срезы и т.д (я не говорю о бесполезности данных фич, я говорю лишь о том, что для начинающего они не играют никакой роли). Подчеркиваю, что речь идёт именно о новичке в программировании, то есть человеке, для которого пока что главное именно работоспособность программы, а не её оптимальность и “красота кода”, связанная с обильным использованием фич языка и не только. Когда человек дойдёт до понимания таких вещей как концепция свойств, generic’и, то скорее всего он уже будет писать на другом “производственном языке”.

Говоря о себе, хочу заметить, что эти фичи считаю полезными. Другой вопрос в том, а как часто их используют остальные и сколько таких, кто использует. Это немаловажный момент, который разработчикам (не конкретно этого языка, а абстрактного) стоит учитывать при внедрении фич в язык.


#8

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


#9

Главное, чтобы язык потом не оказался перегруженным как C++. Иначе будем иметь второго такого " неповоротливого монстра".