Он и так универсальный. На нём в принципе можно писать всё.
Но ниша - это то, как языком реально пользуются и то, где он достиг/может достичь успеха
Он и так универсальный. На нём в принципе можно писать всё.
Но ниша - это то, как языком реально пользуются и то, где он достиг/может достичь успеха
В таком случае полностью согласен с Вадимом. Не стоит ограничиваться модулями для обучения, нужно ещё и то, что может пригодиться при разработке реальных проектов.
И много ли таких модулей будет написано?
Это .Net язык, так что весь .Net в его распоряжении. А писать что-то просто так, чтобы было, не думаю хороший вариант. Только если это облегчит работу в этой среде и этого нет в .Net.
Сейчас в образовании это язык, который подобен разгонной ступени в ракетных технологиях. Ступень вырабатывает топливо, а потом отстреливается. Вроде бы, скромый вклад в космический полет, но без этой ступени полет вообще невозможен.
Не стоит горевать, что изучив один язык, человек перейдет к следующему. А ведь из школьников, если потом, в работке своей, программировать будет хотя бы 5-10% - это уже хороший результат. Следовательно, остальные 95-90% так и останутся с Паскалем. По-моему, неплохая ниша)))
Ну, я больше склоняюсь к мнению уважаемого RAlex. И обращаю внимание, что на форуме нет никого, кто обсуждал бы нужды и чаяния этих 95%. По объективным причинам конечно.
Ещё раз зафиксируем эту пропорцию. 95%.
Именно поэтому, язык надо развивать в сторону образования. Издавать по нему литературу, включать модули, делающие работу с ним более эффективной. Например, сделать построение “настоящих” графиков какой-нибудь стандартной возможностью Plot() в одной из графических библиотек. Был бы принят на “ура” генератор блок-схем из паскалевского кода, раз их уж так любят в школах. В общем, есть что обсуждать и о чем думать. Возможно, через некоторое время “в нашем стане” прибавится желающих пообсуждать))
Столько, сколько будет нужно. Например, нейросетевая библиотека была бы весьма актуальна.
Актуальна среди кого?
Простите, очень напоминает фразу “Как широко известно в нашем узком кругу…”
Возьмем новичка от программирования, да что там - просто школьника или даже школьного учителя. Многие из них знают, что есть в .NET и как это все вызвать?
Я и не говорю об этом. Разумеется, что делать очередной PABCSystem не имеет смысла. Но вот, например, то же построение графиков-полезная вещь. Она может быть крайне полезна.
Речь идёт не о конкретном круге людей, а о направлении в целом. Вы просто ради интереса посмотрите, какие задачи можно решить простейшей сетью! Там никакие “традиционные” методы рядом не стояли.
Нейросеть - она же готовый продукт фактически. Пакет. Какая разница, на чем он реализован? Ну вот реализовали на Питоне, к примеру, какой-то там интерфейсный проект для работы в Интернет. И что - это повод говорить о том, что Питон “прочно занял нишу в WEB-программировании” ?
Я не об этом. Речь шла о реализации модулей, которые могут расширить круг программистов, использующих Паскаль для своих проектов. Питон-явный пример. Вот разработали свёрточную нейросеть. Появилась потребность в быстрой разработке сетей данной структуры. Быстро нашлись разработчики, реализовавшие модуль под Питон. Теперь ради запуска нейросети, многие готовы ставить виртуальную машину с Линуксом, ставить Питон… Питон на высоте. А раз он стал набирать не шуточную популярность, под него стали писать кучу всяких других прибампасов. Теперь сам факт того, что программа на Питоне обеспечивает +1 к рейтингу.
Теперь понятно. Речь у Вас просто об отдельной библиотеке, а не о языке.
О языке. Просто я предложил вариант, который имеет место быть. Я не привык говорить абстрактно.
У бурмистра Власа бабушка Ненила
Починить избенку лесу попросила.
Отвечал: нет лесу, и не жди — не будет!»
«Вот приедет барин — барин нас рассудит,
Барин сам увидит, что плоха избушка,
И велит дать лесу»,- думает старушка.
(Н.Некрасов)
На мой взгляд, нужно решать одну задачу, но делать это хорошо. В этом смысле PascalABCNET уже не идеален, потому что пытается усидеть на двух стульях. С одной стороны он позиционируется как первый язык программирования, язык для изучения программирования. С другой стороны, его также позиционируют как универсальный язык. Это явно несовместимые цели, потому что одна требует делать язык проще, а другая его усложнять.
Я ничего не понимаю в преподавании программирования и могу опираться лишь на собственный опыт обучения. Моё мнение таково, что первый язык должен лишь продемонстрировать основные концепции, которые существуют во всех без исключения языках программирования в том или ином роде: переменные, условия, циклы, функции. Для людей, ничего не знающих о программировании, разобраться с этим уже непростая задача. Всё, что чуть более сложно, чем упомянутые мною сущности, не должно присутствовать в языке для обучения программированию. В этом смысле какой-нибудь Basic или даже Cи оказываются лучше.
“Но как же быть со всеми современными особенностями вроде обобщённого программирования, ООП, лямбда функций и другими?” - спросите вы. Для их изучения вполне можно обратиться к конкретному популярному языку, особенно если учесть, что реализация всего этого зоопарка в разных языках достаточно сильно различается, а в некоторых языках вообще отсутствует.
Говоря по теме, нужно решать куда двигаться дальше: оставлять PascalABCNET языком для обучения или делать его по-настоящему универсальным. Если важнее первое, то я бы пошёл по пути упрощения и отказа от многих существующих особенностей. Если важнее второе, то я бы сконцентрировался на стабильности работы компилятора, стабильности интерфейса стандартной библиотеки, стабильности особенностей языка, а также на инструментах разработки.
Возможно Вы будете удивлены, но алгоритмический язык Algol получил свое название, как аббревиатуру от английских слов ALGOritmic Language и во всем мире позиционировался, как универсальный язык программирования, более того, он был во всем мире признан также официальным языком для публикаций алгоритмов. И я напомню, что при этом в нем не было символьного типа данных, системы ввода-вывода, как таковой, нельзя было создавать свои типы данных - только базовые использовать, которых было три: целые, вещественные и булевы. Никаких классов в помине не было. Никаких обработок исключений. И это был язык “первый и последний” - и для обучения новичков. и для программирования самых серьезных проектов того времени - и в народном хозяйстве. и в инженерно-технических расчетах, и в науке… В космос запускали ракеты, строили атомные ледоколы, проектировали самолеты - все это был Алгол, а кое-где параллельно еще менее “универсальный”, как следует из Ваших слов, Фортран-II.
Посмотрите в словариках определение понятия “универсальный алгоритмический язык” и пожалуйста, используйте общепринятую терминологию по ее прямому назначению, а не в каком-то собственном понимании.
А вот это, извините, чувствуется…
После этого заявления чувствуется значительно сильнее.
А что мешает начинающему просто не лезть в дебри? Когда я только начинал учиться программированию, я писал в стиле TP, однако это не помешало мне начать осваивать новые конструкции и впоследствии перейти на стиль C#. А вот C как раз не лучший выбор для первого языка. Причину уже описывали на форуме - много хлама, который просто путает начинающих, только вот избавиться от него невозможно. Такова структура языка.
Думаю, что Ваш вывод неверен. Язык для обучения не должен быть “проще”. Он должен дать возможность познакомиться с основными (в том числе и современными) концепциями программирования, узнать о стиле написания программ, научиться выражать свои мысли в терминах языка программирования и т.д. Упомянутые Вами С и Basic для этого не подходят (только можно я не буду объяснять, почему именно).
При Вашем подходе получается, что язык или для образования, или профессиональный. Но у многих преподавателей подход такой: зачем давать студентам язык, который заведомо не будет использоваться в разработке? В чём-то они, возможно, правы. Но тогда выходит, что учить на “обучающих” (не знаю как лучше сказать) языках будут только не-разработчиков. А разработчиков только на плюсах.
PascalABC.NET сейчас заполняет пропасть между названными видами языков. И это правильно и очень здорово. А.Кей говорил, что язык программирования должен быть “инструментом для думания”. И такой язык как топор: можешь дров нарубить, а можешь при помощи одного топора и дом поставить. Ты берёшь то, до чего дорос.