Я не хотел, чтобы это выглядело так, будто я весь такой на негативе злобно насмехаюсь над вами. Но всё-таки вы взялись писать статью о языке, о возможностях и применении которого имеете крайне поверхностное представление. И допускаете ляпы, которые кажутся очень забавными.
Имхо, в такой ситуации лёгкое подтрунивание в комментах — вполне адекватная реакция. Не надо на это болезненно реагировать.
Лучше, посмейтесь вместе с нами. Здоровая самоирония — это прекрасно.
Вот только некоторые применения питона:
— Бэк-енд в вебе
— Написание бизнес-логики при работе с БД
— Парсинг страниц
— EML-скрипты
— «Админские» скрипты
— Статистическая обработка данных
— Научные вычисления
— Простые десктоп-приложения с графическим интерфейсом
— Мобильные приложения
— И многое другое!
Я не заметил в статье ни пафоса, ни глупости. Мне было интересно её читать.
Пара финтов мне показались весьма остроумными, я бы сам не догадался такое сделать. Сильно подозреваю, что «любой современный подросток» — тоже.
Скажите, а вам знаком такой термин из психологии — «проекция»?
Если автомеханик заявляет, что может устранить источник стука, а вместо этого автомагнитолу погромче ставит — то да, шарлатан.
Но с психотерапевтами ситуация скорее похожа на то, как приходит клиент к программисту и говорит, напиши мне такую программу, чтобы сама за меня деньги зарабатывала. Программист ему естественно скажет: такого написать невозможно, но можно написать такую программу, которая автоматизирует какие-то рутинные операции. Давайте с вами сейчас сядем, вы мне расскажете, что у вас за работа, и какие действия в процессе вашей работы вы выполняете, и как можно их формализовать. А клиент ему скажет: «Что ты мне тут втираешь! Я к тебе совсем с другим запросом пришёл! Я думал, ты профессионал!»
Просто есть вещи, которые психотерапия может, и те, которые она не может.
И шарлатан не тот, кто на запрос «хочу бросить пить» предложит его переформулировать, а как раз тот, кто с таким запросом возьмётся работать.
На самом деле, работа психотерапевтов не в том, чтобы решать проблемы в поведении, отношениях или достижении целей. Просто психотерапия так не работает.
Нормальный психотерапевт объясняет это человеку, который пришёл, например, с запросом «хочу бросить пить». И только если человек это осознал и готов сменить запрос с «хочу бросить пить» на «хочу разобраться с тем беспокойством, которое у меня присутствует из-за моей неспособности бросить пить», нормальный психотерапевт начинает цикл сеансов.
Иногда бывает, что после этого и изначальная проблема тоже решается, но не всегда. Психотерапия не работает с жизненными обстоятельствами пациента, а только с реакцией на эти обстоятельства.
Похоже, автор статьи просто неправильно передал суть этой темы из оригинального документа.
В самом меморандуме слово «плацебо» встречается 8 раз.
Из них
— 4 раза использованы при констатирование того факта, что эффект гомеопатии не превышает эффект от плацебо;
— 3 раз в контексте того, что об эффективности лекарства можно говорить только с позиции доказательного подхода, для чего следует проводить двойное слепое исследование с контрольной группой, которая должна получать плацебо под видом исследуемого лекарства;
— и один раз в настоятельной рекомендации врачам отказаться от неэтичной практики назначения гомеопатического «лекарства» для достижения плацебо-эффекта
По поводу похожести list comprehension и SELECT в SQL:
В январе на Python Meetup был доклад про PythonQL — язык запросов к самым разным БД, которые позволяют писать в Python-коде конструкции, похожие одновременно и на list comprehension и на SQL.
Вот пример из их слайдов:
[ select (d.model, d.make, reviews)
for d in dealer_db, p in product_db
let p_make = try p.man[‘company’] except p.man
where d.model = p.model and d.make = p.make
let reviews = [ select r for r in p.reviews where r.stars == 5 ]
where len(reviews) > 1 ]
Проблема в том, что «обычные обзоры обычных игр, которые можно найти на любом игровом сайте» не ориентированы именно на гик-аудиторию, они более попсовы.
Очень хорошо, когда можно найти в одном месте обзоры игр, интересных людям с техническим складом ума. И очень хорошо, что таким местом является именно гиктаймс.
В некоторых случаях итератор в результате лучше списка
Но ведь есть же синтаксис для создания объектов-генераторов, полностью подобный синтаксису list comprehension, только с круглыми скобками вместо квадратных. И там получается как раз итератор вместо списка:
>>> arr = [0, 1, 2, 3, 4]
>>> gen = (i*i for i in arr)
>>> arr[3] = 100
>>> list(gen)
[0, 1, 4, 10000, 16]
Ну не знаю, по мне так естественным поведением для copy является именно то, что сочли таким авторы языка.
Коллекции хранят не содержимое объектов, а ссылки на них. Соответственно, копироваться должно именно то, что лежит в коллекции.
А вот рекурсивный обход с копированием внутренней структуры каждого вложенного элемента — это сложная и отдельная процедура, которая не является просто копированием.
Есть список объектов. Нужно эти объекты как-то обработать — все из списка, но в каком-то определённом заранее неизвестном порядке. Причём оригинальный список должен сохраниться, из него удалять объекты нельзя.
Вполне разумное решение — создать поверхностную копию списка и работать с ней, удаляя обработанные объекты из неё.
Во-первых, глубокая копия затратнее как по времени выполнения, так и по занимаемой памяти. Иногда — сильно затратнее.
Во-вторых, зря вы думаете, что поверхностная копия никому не нужна. Я легко могу себе представить ситуацию, когда полезно иметь пару списков, которые содержат те же объекты, но один из них — с небольшими вариациями.
Я ГПиМРМ примерно так же начал читать.
Сначала встретил упоминание в чьём-то блоге и просто отмахнулся — мало ли этих фанфиков про Гарри Поттера.
Потом через некоторое время опять встретил упоминание в блоге уже другого человека. Причём, и тот и другой человек были весьма интеллектуальными.
Тогда я подумал «Это ж-ж-ж неспроста! Нужно хотя бы пару глав прочитать».
В итоге не смог остановится, пока не прочитал те 80 или около того глав, которые были переведены на тот момент.
Пока ждал остальные 40 глав, уже опубликованное перечитал раза три.
Продукт начинает портиться в первую секунду после своего изготовления, фрукты и овощи начинают разлагаться сразу после того, как их сорвали. Употребляемые в пищу продукты в любом случае будут испорченными.
То есть, я зря купленные бананы оставляю полежать до появления коричневых крапинок на кожуре? Нужно давиться безвкусными свежими бананами, пока они ещё не совсем испорченные?
Имхо, в такой ситуации лёгкое подтрунивание в комментах — вполне адекватная реакция. Не надо на это болезненно реагировать.
Лучше, посмейтесь вместе с нами. Здоровая самоирония — это прекрасно.
Вот только некоторые применения питона:
— Бэк-енд в вебе
— Написание бизнес-логики при работе с БД
— Парсинг страниц
— EML-скрипты
— «Админские» скрипты
— Статистическая обработка данных
— Научные вычисления
— Простые десктоп-приложения с графическим интерфейсом
— Мобильные приложения
— И многое другое!
Пара финтов мне показались весьма остроумными, я бы сам не догадался такое сделать. Сильно подозреваю, что «любой современный подросток» — тоже.
Скажите, а вам знаком такой термин из психологии — «проекция»?
http://lurkmore.to/640_%D0%BA%D0%B8%D0%BB%D0%BE%D0%B1%D0%B0%D0%B9%D1%82
Но с психотерапевтами ситуация скорее похожа на то, как приходит клиент к программисту и говорит, напиши мне такую программу, чтобы сама за меня деньги зарабатывала. Программист ему естественно скажет: такого написать невозможно, но можно написать такую программу, которая автоматизирует какие-то рутинные операции. Давайте с вами сейчас сядем, вы мне расскажете, что у вас за работа, и какие действия в процессе вашей работы вы выполняете, и как можно их формализовать. А клиент ему скажет: «Что ты мне тут втираешь! Я к тебе совсем с другим запросом пришёл! Я думал, ты профессионал!»
Просто есть вещи, которые психотерапия может, и те, которые она не может.
И шарлатан не тот, кто на запрос «хочу бросить пить» предложит его переформулировать, а как раз тот, кто с таким запросом возьмётся работать.
Нормальный психотерапевт объясняет это человеку, который пришёл, например, с запросом «хочу бросить пить». И только если человек это осознал и готов сменить запрос с «хочу бросить пить» на «хочу разобраться с тем беспокойством, которое у меня присутствует из-за моей неспособности бросить пить», нормальный психотерапевт начинает цикл сеансов.
Иногда бывает, что после этого и изначальная проблема тоже решается, но не всегда. Психотерапия не работает с жизненными обстоятельствами пациента, а только с реакцией на эти обстоятельства.
В самом меморандуме слово «плацебо» встречается 8 раз.
Из них
— 4 раза использованы при констатирование того факта, что эффект гомеопатии не превышает эффект от плацебо;
— 3 раз в контексте того, что об эффективности лекарства можно говорить только с позиции доказательного подхода, для чего следует проводить двойное слепое исследование с контрольной группой, которая должна получать плацебо под видом исследуемого лекарства;
— и один раз в настоятельной рекомендации врачам отказаться от неэтичной практики назначения гомеопатического «лекарства» для достижения плацебо-эффекта
В январе на Python Meetup был доклад про PythonQL — язык запросов к самым разным БД, которые позволяют писать в Python-коде конструкции, похожие одновременно и на list comprehension и на SQL.
Вот пример из их слайдов:
[ select (d.model, d.make, reviews)
for d in dealer_db, p in product_db
let p_make = try p.man[‘company’] except p.man
where d.model = p.model and d.make = p.make
let reviews = [ select r for r in p.reviews where r.stars == 5 ]
where len(reviews) > 1 ]
Там написано, что создание словаря из генератора не работает.
Очень хорошо, когда можно найти в одном месте обзоры игр, интересных людям с техническим складом ума. И очень хорошо, что таким местом является именно гиктаймс.
Но ведь есть же синтаксис для создания объектов-генераторов, полностью подобный синтаксису list comprehension, только с круглыми скобками вместо квадратных. И там получается как раз итератор вместо списка:
>>> arr = [0, 1, 2, 3, 4]
>>> gen = (i*i for i in arr)
>>> arr[3] = 100
>>> list(gen)
[0, 1, 4, 10000, 16]
Коллекции хранят не содержимое объектов, а ссылки на них. Соответственно, копироваться должно именно то, что лежит в коллекции.
А вот рекурсивный обход с копированием внутренней структуры каждого вложенного элемента — это сложная и отдельная процедура, которая не является просто копированием.
Есть список объектов. Нужно эти объекты как-то обработать — все из списка, но в каком-то определённом заранее неизвестном порядке. Причём оригинальный список должен сохраниться, из него удалять объекты нельзя.
Вполне разумное решение — создать поверхностную копию списка и работать с ней, удаляя обработанные объекты из неё.
Это первое, что пришло в голову.
Во-вторых, зря вы думаете, что поверхностная копия никому не нужна. Я легко могу себе представить ситуацию, когда полезно иметь пару списков, которые содержат те же объекты, но один из них — с небольшими вариациями.
Сначала встретил упоминание в чьём-то блоге и просто отмахнулся — мало ли этих фанфиков про Гарри Поттера.
Потом через некоторое время опять встретил упоминание в блоге уже другого человека. Причём, и тот и другой человек были весьма интеллектуальными.
Тогда я подумал «Это ж-ж-ж неспроста! Нужно хотя бы пару глав прочитать».
В итоге не смог остановится, пока не прочитал те 80 или около того глав, которые были переведены на тот момент.
Пока ждал остальные 40 глав, уже опубликованное перечитал раза три.
То есть, я зря купленные бананы оставляю полежать до появления коричневых крапинок на кожуре? Нужно давиться безвкусными свежими бананами, пока они ещё не совсем испорченные?