Официальной статистики нет, но если Вы посмотрите на количество проектов, например по большим данным и машинному обучению, написанных на Питоне, то желание спорить со знающими эту тему людьми исчезнет. Все(включая Вас) опираются на собственный опыт.
“Знающие люди” - это Вы, как следует из Вашего поста? Тогда, “знающий человек”, расскажите, что Вы понимаете под обработкой “больших данных” на Питоне? Использование его в качестве включающего языка с помощью костыля в какой-нибудь серьезной СУБД, где он генерирует SQL-запрос и последующая визуализация результатов? С этим и Бейсик прекрасно справляется, так что Питон тут никаких заслуг не может иметь особых. А непосредственный движок к базе данных написанный на Питоне - это Вы подружкам своим рассказывайте про эффективность и популярность. Как нибудь, два с лишним десятка лет с большими СУБД проработал, представляю что там к чему.
И какое же там “количество проектов”, на которое смотреть надо? Тысячи? Кто их авторы? Безымянные герои, лепящие на коленке приблуды с качеством студенческих лабораторок для интернет-магазинов и распространения гербалайфа?
И главное - какое отношение вся эта фигня имеет к нише PascalABC.NET ?
Ну тут каждый решает сам и помогает своему ребенку так как сочтет нужным. В изучении языков программирования есть большая свобода. И если человеку не нравится какой то путь или какая то система программирования, то он не должен её выбирать.
Когда мы разрабатывали Pascalabc.NET, то основная идея была проста: хотя паскаль — хороший язык программирования, система с синим экранчиком безбожно устарела.Да и язык нам не вполне нравился некоторой тяжеловесностью конструкций. И мы начали разрабатывать свой. С высокой степенью совместимости с Дельфи. Многое взяли конечно из Net. Поскольку странно было этим не пользоваться. Ведь оно уже есть. А потом пошли сахарные конструкции в стиле Питона.
Малораспространённый — ну да, та часть, которая не есть стандартный Дельфи. Научиться современному программированию можно? Да, отлично. У нас почти всё есть.
Что делать, если человек хочет учиться только на распространённых промышленных языках? Несомненно, их выбирать и пробовать. Свобода выбора тут главное.
Наш достаточно богатый опыт обучения на Питоне говорит о том, что не всё гладко получается. Но язык вполне себе и за начальный может сойти — хороший преподаватель сгладит все острые углы
А я и не говорил про умственные способности. Сильно изменилось восприятие. И запоминают они сейчас по другому. Некоторые вещи очень эффективно с использованием интернета и гаджетов. И надо подстраивать задания и их уровень под современный мир. Если давать материал как раньше, то это скучно, несовременно, труха.
С большим удовольствием бы взглянул на обычного учителя информатики, который на обычном уроке “с использованием интернета и гаджетов” объясняет детям про ссылки и указатели. Например. Лично я знаком с четырьмя учителями информатики, которые сами оказались не в состоянии ответить на вопрос, чем ссылка отличается от указателя. Не знаю, какой смайлик ставить - веселый или грустный.
Это не в плане критики Вашего поста, а сожаление, что даже “по-старому” учить некому, а уж как-то по-новому…
Ну тут я же говорил, что не всё. Мы школьникам объясняем ссылки на понятийном уровне и не объясняем указатели. Совсем.
А задания. Ну вот, мы даём на занятиях - найти все имена в Анне Карениной. Текст легко гуглится, потом надо в правильной кодировке сохранить. Потом бьём на слова, выбираем с большой буквы и обсуждаем отсечения — когда это не имена. И обсуждаем, насколько сложно это сделать. Или вот: государства и их столицы. Как в интернете быстро найти, в какой формат удобнее кинуть чтобы простобыло обрабатывать. А потом технические средства типа Dictionary.
Вообще программирование — это автоматизация окружающей жизни. А языки какие выбрать — это всё вторично. Лишь бы язык и библиотеки были достаточно богатыми
Про школьных учителей и егэ по информатике можно я не буду?
Нет. То, что я об этом Вам написал, не говорит ещё о том, что я имелл ввиду именно себя. Вы зачем то отрицаете всё, что говорится от своего имени, причём не только от меня.
То же, что и Вы. Думаю, нет необходимости приводить определение больших данных.
А я с этим и не спорю. И вообще - разговор не об этом.
Я ведь не говорил, что на Питоне программы эффективные. По поводу Вашего опыта работы с этим делом не сомневаюсь.
На сколько мне известно, на Питоне написана значительная часть Ютуба.
Самый главный вопрос, и ответ на него - никакого. Откуда пошло обсуждение Питона - я не знаю.
Тогда, простите, я вообще не понимаю, как трактовать Ваши посты. Смотрите сами:
Так что - UTube - это существенно большее нуля в общемировом числе программ количество проектов, написанных многими по большим данным? Странно все это как-то…
Как просили. Непонятно только, почему не надо учитывать проекты, сделанные студентами? А ничего, что над нашим Паскалем тоже работали ученики? Если хотите посмотреть на количество - наберите в поисковике “Нейросеть…” и посмотрите на исходники на ГитХабе.
А по моему тут дело в другом. Лямбды, к примеру, только тем кто обучался без них, 30 лет назад, могут казаться чем то страшным. А на деле они не отличаются по сложности от обычных процедур и функций. Так же как патерн мачинг не отличается по сложности от case
. Ну хорошо, отличается. Заумностью названия .
Ага, а в школе в математике долбят функции с 6 класса и это никого не пугало ни раньше ни сейчас
И это наш главный аргумент. Лямбды, т.е.функции, школьники используют много лет.
Второй важный аргумент - лямбды как действия можно запихнуть в переменные и потом использовать для вызова спустя время. Это важнейшая концепция “действия как данные” - ее боятся как огня многие преподаватели начального обучения,но школьники понимают в лет: собственно почему данные можно хранить в переменных, а функции - нет?
Я знаю. Так или иначе PascalABC.NET мы сравниваем с Питоном. Поскольку Питон рассматривается в качестве первого языка программирования.
Мы вот даже специальную презентацию на сайт выложили про сравнение Питона с Паскалем.
Раньше нам давали два аргумента.
- На Питоне программы записываются гораздо короче чем на других языках, в т.ч. на Паскале
- Питон - промышленный язык, на нем пишут все
После этого мы внесли значительные изменения в стандартную библиотеку, и Питон по компактности записи сравнялся с Паскалем.
Остался аргумент 2.
Однако появились контрагументы
- Программы на Питоне могут работать медленнее, иногда существенно
- На Питоне нет хорошей русской локализации
- При массовом обучении школьников на Питоне возникли некоторые трудности - некоторые ошибки Питона трудно находятся школьником в простых программах и некоторые концепции, хоть и компактны, трудновпихуемы обычному школьнику (например, a[-2])
Кстати, кто-то из школьников, даже освоив отступы, продолжал их ненавидеть до конца обучения, предпочитая явные блоки. И это был интересный эффект.
Поэтому конечно сравнивать надо
Мы наверное в спрвке назовем его “оператор сопоставления с образцом”
Ну, это длинный и официальный вариант. Он конечно нужен, но что насчёт по короче, то что можно быстро написать как патерн мачинг?
А может быть вы как-то подробнее сделаете обзор лямбд и функциональной части языка? Как бы в это войти относительно безболезненно? Ну так чтобы охоту учиться программировать не отбило из-за непонимания. Или это у вас уже есть где-нибудь? Процедурная часть она и на старом паскале описана в книжках всяких. А вот функциональная и ооп - очень тут не хватает этого. Справка дается с большим трудом по этим делам. Приходится читать C# Шилдта и рыться в интернетах. =(
Это в Помощь новичкам.
http://pascalabc.net/downloads/Presentations/Tutorials/ProcFuncLambdas.pdf
Тут пара слайдов есть. Напишите, что непонятно
Угу, спс, когда-то пробовал это читать и не зашло. Потом забросил и занялся другими вещами оставил на потом. Сейчас снова прочитал. Про процедурные переменные вроде бы понятно. А вот чуть дальше процедурные переменные - функции :
var a : real -> real := sin;
вот тут пока ступор -> что, откуда, почему %. Чуть дальше читаю: “Лямбда-выражение – это анонимная функция, которая описывается в месте использования.” Ага, где-то я что-то читал или смотрел про анонимные функции, то ли в javascript? Рыть javascript? А по-другому нельзя?
Ну там же дальше есть пример, прочитайте его:
begin
var a := Arr(1,2,3,4,5,6,7,8,9);
a
.Where(x -> x mod 2 = 0) // Выбрать все чётные
.Select(x -> x*x) // возвести их в квадрат
.Println; // и вывести
end.
Это то же самое что
function Cond(x: integer): boolean;
begin
Result := x mod 2 = 0;
end;
function Fun(x: integer): integer;
begin
Result := x*x;
end;
begin
var a := Arr(1,2,3,4,5,6,7,8,9);
a
.Where(Cond)
.Select(Fun)
.Println;
end.
Не понятно, а .Where и .Select это что такое? это какие-то методы для массива? Внутри параметры функции? Надо с чего-то простого начинать, наверное. =(