Re[21]: Питон - супер
От: neFormal Россия  
Дата: 15.06.18 21:16
Оценка: -1
Здравствуйте, vdimas, Вы писали:

V>>>Это предопределённое поведение:

F>>ага, а задокументированная бага становится фичей
V>Не вижу баги.

а я тут при чём? это ж ты не видишь

V>Тут аналогично — была нарушена спецификация списка.


спецификация списка в динамическом языке?

V>Ввиду своего невысокого среднего уровня.


сказал пхпшник, который солнца не видел

V>>>Ага. Тут можно начать с того, что создания объекта — это тоже вызов ф-ии.

F>>нет.
V>Садись, два.



F>>за время твоего унижения питон можно выучить вдоль и поперёк.

V>А толку, если тебе аргументировать всё-равно нечем?
V>Тебе задали конкретный вопрос:
V>

V>Так что помешало в стандартной библиотеке принять единообразное решение — контейнеры будут создавать через вызов конструктора или через вызов ф-ии — фабрики?


Help on function namedtuple in module collections:



V>5-й раз не можешь понять, в чём было дело конкретно в том идентификаторе. ))


пхпшник, плз

F>>про какой модуль ты тут распинаешься, я не в курсе.

V>Дык, открой соответствующий исходник на гит и ознакомься.

я и открыл, а ты всё мучаешься
...coding for chaos...
Re[25]: Питон - супер
От: neFormal Россия  
Дата: 15.06.18 21:17
Оценка:
Здравствуйте, vdimas, Вы писали:

V>- фиксили 4 года.


а в луа, в луа-то пофиксили?
а, ну да. ты ж не видишь баги
...coding for chaos...
Re[16]: Питон - уродство
От: neFormal Россия  
Дата: 15.06.18 21:22
Оценка:
Здравствуйте, novitk, Вы писали:

N>Задача абсолютно типичная, я ее специально под Питон не подбирал, решается за 2 минуты из коробки.

N>Какие библиотеки? csvparser? Ты хочешь сказать что в "суперпродуктивной" 4GL нет csv парсера и его надо делать из говна и палок?

ну, строго говоря в csv "говно и палки"™ заключается в паре split'ов.
не такая большая лажа, хотя и характерная.
...coding for chaos...
Re[15]: Питон - уродство
От: neFormal Россия  
Дата: 15.06.18 21:24
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Скорость разработки примерами показать сложно. Это не то же самое, что количество строк кода. Оно в некоторой степени кореллирует, но не линейно и не всегда. Перл, к примеру, очень лаконичный язык, позволяющий довольно много действий запихнуть в минимум строк кода. Но практически нечитаемый. "Write-Only" язык. Когда проще переписать, чем отрефакторить.


вот серьёзно, был бы перл так прост, его бы использовали все.
но увы.
...coding for chaos...
Re[21]: Питон - супер
От: neFormal Россия  
Дата: 15.06.18 21:26
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Тут самое время сказать, что Питон, судя по всему, отупляет, но не буду, бо обобщать нехорошо.

V>Похоже, сей эффект случился только с тобой.

пхпшник, плз.
от тебя это звучит хуже анекдота

питон, конечно, не самый лучший язык для выражения мыслей, но твои аргументы — это что-то с чем-то
...coding for chaos...
Re[16]: Питон - уродство
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 15.06.18 21:38
Оценка:
Здравствуйте, neFormal, Вы писали:

AK>> Перл, к примеру, очень лаконичный язык, позволяющий довольно много действий запихнуть в минимум строк кода. Но практически нечитаемый. "Write-Only" язык. Когда проще переписать, чем отрефакторить.

F>вот серьёзно, был бы перл так прост, его бы использовали все.

Разве я сказал, что он прост? Напротив. Я привел пример, когда кода вроде бы мало, но он нечитаемый. Продираться через перловую кашу всех этих "?s:<-|&@" то еще удовольствие.
С уважением, Artem Korneev.
Re[17]: Питон - уродство
От: novitk США  
Дата: 15.06.18 22:15
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Не из каробки, либы надо устанавливать.

В питоне для целевой задачи ничего не надо.

V>Для описанного достаточно однажды написать из нескольких строчек какой-нить import-хелпер, навскидку:

Мне надо полное решение задачи подсчета, как у меня, а не псевдо-код COM-wrapper для парсера и его вызова.

Можешь реализовать парсер на split-ax, точная семантика кавычек не важна. Вот код "без библиотек":
import sys

counts = dict()
for r in [s.split(",") for s in sys.stdin.readlines()]:
  counts[r[1]] = counts.get(r[1], 0) + 1
print counts.items()
Re[17]: Питон - уродство
От: novitk США  
Дата: 15.06.18 22:24
Оценка:
Здравствуйте, neFormal, Вы писали:

F>ну, строго говоря в csv "говно и палки"™ заключается в паре split'ов.

F>не такая большая лажа, хотя и характерная.

На питончике все просто, ага. VBA? 3 страницы говнокода!
Не веришь? https://stackoverflow.com/questions/12259595/load-csv-file-into-a-vba-array-rather-than-excel-sheet
Re[15]: Питон - уродство
От: novitk США  
Дата: 15.06.18 22:35
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Первый пример — самый читабельный.

Ты императивный прогер. Это не модно.

AK>А вот эти две конструкции читаются хуже. Особенно f2().

f2 — самое расширяемое и глубокое решение из предложенных. Это модно.
Re[18]: Питон - уродство
От: Cyberax Марс  
Дата: 15.06.18 22:38
Оценка:
Здравствуйте, novitk, Вы писали:

N>На питончике все просто, ага. VBA? 3 страницы говнокода!

N>Не веришь? https://stackoverflow.com/questions/12259595/load-csv-file-into-a-vba-array-rather-than-excel-sheet
"On Error Resume Next" — LOL!
Sapienti sat!
Re[22]: Питон - супер
От: vdimas Россия  
Дата: 15.06.18 22:52
Оценка:
Здравствуйте, neFormal, Вы писали:

F>питон, конечно, не самый лучший язык для выражения мыслей


О чём и речь.


F>но твои аргументы — это что-то с чем-то


Судя по странным ответам с твоей стороны — ты тщательно притворяешься, что понял хоть один аргумент.
На деле же понимания ровно ноль.
Отредактировано 16.06.2018 14:51 vdimas . Предыдущая версия .
Re[18]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 00:31
Оценка:
Здравствуйте, novitk, Вы писали:

V>>Для описанного достаточно однажды написать из нескольких строчек какой-нить import-хелпер, навскидку:

N>Мне надо полное решение задачи подсчета, как у меня, а не псевдо-код COM-wrapper для парсера и его вызова.

Тебе надо остыть.


N>Можешь реализовать парсер на split-ax, точная семантика кавычек не важна. Вот код "без библиотек":


Вот код без библиотек:
' test.vbs
set stdin = WScript.stdin 
set stdout = WScript.stdout 

set counts = CreateObject("scripting.dictionary")

do while not stdin.AtEndOfStream
    for each r in split(stdin.ReadLine, ",") : r1 = trim(r) : counts(r1) = counts(r1) + 1: next
loop

for each s in counts : stdout.WriteLine s & "=" & counts(s) : next

Запускать так:
cscript test.vbs < values.csv
Re[18]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 00:33
Оценка:
Здравствуйте, novitk, Вы писали:

N>На питончике все просто, ага. VBA? 3 страницы говнокода!

N>Не веришь? https://stackoverflow.com/questions/12259595/load-csv-file-into-a-vba-array-rather-than-excel-sheet

Не верю. (С)
Там другая функциональность от показанной тобой.
Re[16]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 00:36
Оценка:
Здравствуйте, neFormal, Вы писали:

F>вот серьёзно, был бы перл так прост, его бы использовали все.


Так его и использовали все.
Намного больший % от всех программистов, чем сегодня использующих Питон.


F>но увы.


Устарел.
Re[16]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 00:46
Оценка:
Здравствуйте, novitk, Вы писали:

AK>>А вот эти две конструкции читаются хуже. Особенно f2().

N>f2 — самое расширяемое и глубокое решение из предложенных. Это модно.

Двойной прогон по коллекции — это круто, конечно. ))
Re[15]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 00:47
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Скорость разработки примерами показать сложно. Это не то же самое, что количество строк кода. Оно в некоторой степени кореллирует, но не линейно и не всегда. Перл, к примеру, очень лаконичный язык, позволяющий довольно много действий запихнуть в минимум строк кода. Но практически нечитаемый. "Write-Only" язык. Когда проще переписать, чем отрефакторить.


Оказывается, еще 3 года назад вышел более-менее работающий perl6! )))
И чувство юмора ребят по-прежнему не подводит:
https://perl6.ru/2018/01/14/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0/
https://perl6.ru/2018/01/05/5-%D0%B0%D1%82%D0%BE%D0%BC%D0%B0%D1%80%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D0%B2-perl-6/
Отредактировано 16.06.2018 0:55 vdimas . Предыдущая версия .
Re[16]: Питон - уродство
От: uncommon Ниоткуда  
Дата: 16.06.18 05:05
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Оказывается, еще 3 года назад вышел более-менее работающий perl6! )))


Точнее последние 3 года он выходил, выходил. Выходил, выходил. Но всё никак не мог выйти. А тут вдруг вышел!
Re[17]: Питон - супер
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.06.18 06:43
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, netch80, Вы писали:


V>>>>>А так-то сам по себе PHP очень даже неплох, местами на голову выше Питона, разумеется.

N>>Начни с обоснования этого тезиса, безаргументный ты наш...

V>- Меньше неявных соглашений.


Безаргументно. С учётом следующего пункта — их больше.

V>- Возможность строгой типизации.


Ага-ага. "Возможность". И как давно убрали автоконверсии между строками и числами? В Питоне этого дерьма не было изначально.

V>- Поддержка абстрактных классов и интерфейсов. Для абстрактного класса можно задать сигнатуру конструктора.


Есть абстрактные классы.

V>- Абстрактный итератор в языке, возможность описания собственных/произвольных итераторов (не путать с генераторами).


Зачем нужен?

V>- "чистая" реализация генераторов в виде корутин, что этот механизм применяется напрямую как для итерации, так и для задач, где в C# или Питоне 3.6 используют костыли async/await.


Корутины есть отдельно. И чем именно async — костыли?

V>- Абстрактный функциональный тип в языке, возможность описания произвольных своих функторов.


Функторы есть. Абстрактный функциональный тип в языке — в стандартной библиотеке есть достаточно близкое.

V>- Декомпозиция элементов языка (можно property описать как объект-шаблон).


Зачем нужно?

V>- Более последовательная и удобная работа с метаинформацией.


Бездоказательно.

V>- Константы в языке.


Можно сделать, кому нужно. В принципе — согласен.

V>- Явное наличие неймспейсов, операторы области видимости '::'.


Делается на импортах проще и удобнее.

V>- Строгие замыкания, возможность управления замыканием по имени или по-значению, а так же "уровнем" захвата переменной (вот эта вечная боль в JS — когда же надо создавать промежуточную переменную для вложенной иерархии анонимных ф-ий, а когда нет, вся эта боль решается, при надобности, явным use в PHP и указанием типа индирекции).


Что такое "строгие" замыкания и чем они лучше обычных питоновых?

V>- Анонимные классы.


Зачем?

V>- Карринг и частичное применение в явном виде.


functools.

V>- Набор аргументов ф-ий можно рассматривать как один именованный тупл, т.е. оперировать им как единой сущностью (привет теориям типов).


В Питоне из коробки, но зачем?

V>- Миксины, трейты, явное управление конфликтами:

V>
V>class Aliased_Talker {
V>    use A, B {
V>        B::smallTalk insteadof A;
V>        A::bigTalk insteadof B;
V>        B::bigTalk as talk;
V>    }
V>}
V>


Всё есть.

V>- Туда же ключевое слово final;


final делается при необходимости, но ни разу не потребовался.

V>- Управление уровнем ссылочности, разыменование ссылок.

V>- Т.е. фактически прямой выход скриптового исходника на возможность его "честной" компиляции в нейтив, в отличие от полукомпиляции в проекте CPython и других уже умерших проектах-экспериментах.

CPython живее всех живых. О чём конкретно речь?

V>- Легкое расширение языка, см. модули паттерн-матчинга, модуля-аналога LINQ, модуль PHP-COM, модуль PHP-.Net, обертки над нейтивом и т.д.

V>- Наличие позднего статического связывания позволяет разрабатывать абсолютно-достоверную диагностику для кода, т.е. не нужны никакие среды-утилиты, это всё можно делать через встроенные ср-ва языка.

Пример?

V>- Легкое подключение нейтивных ф-ий.


V>Про синтаксису Питона не проходился только ленивый, это объект нескончаемого флейма.


Сплошное хейтерство ((c) vdimas) от неосиляторов отступов.

V>Напротив, синтаксис PHP никакого флейма не вызывает, там всё чисто изначально.


Агащазз.

V>Взять даже хотя бы определение статических ф-ий и св-в.


V>Я не перечислял равные возможности, навроде генераторов yield и т.д., так шта, просьба не пытаться отвечать "а вот у Питона зато есть то-то и то-то" не проверив сначала, в каком виде "оно же" есть в PHP.


Так ты объясни, что именно в конкретных реализациях тебе так больше нравится, потому что угадать твои предпочтения невозможно, а к практике они обычно ортогональны.

V>PHP рвёт Python как тузик грелку по скорости исполнения кода.

V>Причём, кто тут попытается что-то говорить (орать?) про CPython и Ко, пытаясь сравнивать их с референсной скриптовой реализацией PHP — лучше сравните их с любым популярным ускорителем PHP, все вопросы отпадут моментально.

Тут не спорю. Попсовость привела таки к огромному количеству дерьмового кода и необходимости его ускорять. Это факт и для PHP, и для JS, где имеем V8, которым пользуются все кому ни лень.
Задачи, где требуется суперскорость собственного кода, я на Питоне и не рассматриваю. Но таких 1-5%.

V>===============

V>В целом и общем Питон более простой язык. Местами вовсе ущербный.

Что простой — согласен. Потому что в разы более логичный. Есть некоторые недоработки и принципиальные шизы авторов, но их можно терпеть.

V>Очистить всё это можно, конечно, за какие-нить большие вложения, только а смысл? ))

V>Вот и выходит, что PHP охотно используют относительно большие компании, которые могут позволить себе чуток вложиться в допиливание инфраструктуры самого PHP, взять даже VK или Yandex.
V>Бо в базе самого языка там всё очень даже ОК.
V>Сравнивать с ним убогие JS или Python можно лишь от упёртой агнажированности, т.е. поправ всякую объективность.

Сказал самый упёртый в этом треде.
The God is real, unless declared integer.
Re[11]: Питон - супер
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 16.06.18 07:03
Оценка:
Здравствуйте, vdimas, Вы писали:

N>>Не надо мне рассказывать, как рефакторинг усложняется при отсутствии статической типизации — эта тема уже активно отрабатывается (аннотации типов в >=3.6, хотя бы).

N>>А вот критерий мог бы показать принципиальную возможность или невозможность какого-то вида рефакторинга, но даже тебе должно быть очевидно, что он весь возможен вопрос в цене поддержки и в её востребованности.

V>Вопрос в модели ООП.

V>В PHP эта модель явная.
V>Для типов не "аннотации", а просто указаны типы.

Аннотация это и есть указание типов, и в чём тебе столь принципиальная разница?
Кстати, чего ты вдруг перепрыгнул на PHP, хотя перед этим субтред относился к сравнению с Matlab?
"Забегал" ((c) vdimas)

N>>И это я ещё не вспоминаю, зачем тут вообще категорически хотеть сложный рефакторинг для языка прототипирования, если в прототипе некуда те сложные методы применять.

V>В прототипе можно и нужно не только функциональность прототипировать, но обязательно "играть" с внешним АПИ и основными сценариями.
V>Разработка АПИ и сценариев его применения — это тоже важная часть разработки, ес-но.

Которые никакой рефакторинг не покроет, потому что свойства API за пределами его понимания. Подтасовываешь...

V>>>Верно, не отличается.

V>>>Та же хрень, вид сбоку.
V>>>Прототипировать на ём можно только от невладения другими ср-вам прототипирования.
N>>Которые ты, разумеется, никому не покажешь.

V>Ну а смысл тебе показывать, бо ты не раз проявлял себя как классический хейтер того же дотнета, т.е. не раз занимал позицию отрицания ради отрицания.


Ну я так и понял, что аргументы ты просто не принимал, не рассматривая.

V>И что характерно, что я часто прототипировал на дотнете, а целевые проекты — плюсовые для линухов.

V>Лично меня это не смущает, я ХЗ почему смущает некоторых. ))

Потому что критический пласт функциональности, связанный, например, с управлением дочерними процессами, там или отсутствует, или закрыт так, что недоступен. Причём в Core его ещё больше закрыли.

V>>>"По сумме факторов".

V>>>Я отвечал на конкретные абзацы.
N>>И неконкретно рубанул с размаху упоминанием этих трёх языков.
V>Я указал на твой мухлёж.

Ja-ja

V>Надо было прямо писать "он середнячок в разных дисциплинах, но в сумме набирает больше баллов".


Нет, не надо было. Потому что не просто "в сумме", а в адекватном сочетании элементов в удобную конструкцию.

V>Итого, ключевое тут — использование одного и того же языка для всего.

V>Последние 25+ лет я считаю такой подход ущербным.

Приём Pugna: приписал мне "использование для всего" и отвергаешь эту собственную приписку.
Затем отсылка к собственному авторитету — "25+ лет".
Смешной ты, так прямо палиться.

V>>>Здечь я отвечал на использование в кач-ве языка для высокоуровневой "склейки" в реальных боевых проектах. Питон опять сливает в этом месте.

N>>Твои глюки другим не видны. Ты бы их хотя бы описал подробно...

V>Почему мои?

V>Я отвечал на конкретный твой абзац, контекст там задан.
V>Питон не очень удобно сопрягать с нейтивом, в отличие от того же VB/VBA/VBS, Lua или дотнета.
V>Поэтому, "клей" из него откровенно никудышный.
V>Есть целая охрененейшая библиотека Boost.Python, и даже с её помощью остаётся достаточно траха.
V>Само наличие такой либы уже много о чём говорит, что задача не из тривиальных.

Само наличие такой либы говорит, что потребность очень высока — выше, чем для любого другого языка.
А оформить в библиотеку некоторые вещи — полезно для любого FFI.

N>>Есть и другая инженерная база, которая говорит, что не надо без совсем уж безысходности требовать гайки на M3.1415926 или напильник с поперечным профилем циклоиды и разными насечками с разных сторон.

V>Но закручивать гайки, всё же, лучше гаечным ключом, а не плоскогубцами.
V>Пусть даже это очень клёвые плоскогубцы и вообще ты к ним привык как к родным.

Так это ты предлагаешь их закручивать напильником.

N>>Но ты эту инженерную базу почему-то игнорируешь в одном конкретном случае.

V>Наоборот, я утверждаю, что никакого одного конкретного случая не существует.
V>Питоноводы доказывают мне обратное — что любой случай сводится к одному. ))

А ты не с абстрактными "питоноводами" в своих глюках общайся, если мне отвечаешь, а со мной.

N>>Как ты замечательно передёрнул, вдруг заменив тему на "синтаксически" строгие языки.


V>Ну ты же про "грабли".


И какая причина перейти на синтаксис? Ты других страшных слов не знаешь?

V>В Lua и VB вообще никаких граблей прямо бай дизайн.


Тебе уже ответили.

V>В VB и JS можно запретить использование необъявленных переменных.


Можно. Я никогда не спорил, что именно это в Питоне мне не нравится. Но простейший статический анализатор ловит подавляющее большинство случаев опечатки/etc., а остальное — тестами, потому что любая динамика их требует больше, чем статика.

N>>Хотя я вообще ни слова про синтаксис не говорил.

V>При чём тут ты?

Если ты отвечаешь на мои аргументы, то вполне при чём.
Если ты споришь с собственными галлюцинациями, то зачем для этого писать ответ мне?

N>>Начинаю сомневаться, что ты на Питоне вообще что-то писал больше двух страниц

V>А надо писать больше на самом скриптовом из всех языков?
V>Рилли? ))

Чтобы про него говорить с хоть сколько-то реальными аргументами — да, рилли, надо.

V>>>Но в отсутствии систематизации и единообразия АПИ оно всё представляет из себя информационный мусор.

N>>И опять, разумеется, у тебя есть не менее 3 примеров конкретных областей. Но которые ты не покажешь.
V>Я покажу стандартную библиотеку Dart.
V>Вот где радующая глаз продуманность всего и вся.
V>Там учтены ошибки проектирования даже таких более-менее современных (в сравнении с Питоном) платформ, как дотнета.
V>На сегодня в природе нет скриптового языка чище, во всех смыслах.

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

N>>>>>>Аналоги для компилируемых языков в виде мер "выгрузить целиком classloader или assembly, сериализовав состояние" не дают плавный незаметный переход.

V>Между второй и последней строчкой можно "на лету" заменить бинарник COM-объекта.

То есть ты снова не читаешь задачу.

V>>>https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms690368%28v=vs.85%29.aspx?f=255&amp;MSPPError=-2147217396

N>>То есть букварь ты не прошёл и больше половины букв ещё не знаешь?
V>Ты просил — я показал.

Не читаешь.

V>Во второй строчке моего примера, еcли это была последняя ссылка, то бинарная либа выгрузится.

V>Если использована строгая типизация, то тут ограничение на сохранение интерфейса подменяемой на лету реализации.
V>А если использовать просто Object, то даже такого ограничения не будет.


N>>Иначе сложно объяснить, почему ты даже в моём укороченном описании пропустил всё, кроме упоминания выгрузки.


V>Я не пропустил, я как раз показал, что "горячая замена кода" легко делается даже на нейтиве, т.е. не аргумент ни в одном из мест.


"Легко" она как раз не делается.

N>>Ты же вместо этого предложил посмотреть на функцию, которая делает проверки типа "я ещё нужна?" изнутри библиотеки.


V>Потому что я верил, что ты, скорее всего, хотя бы краем уха слышал о такой функциональности, просто забыл в пылу спора — иначе бы не потребовал ссылок.

V>Но ты потребовал ссылки, чем и спалился, собсно. Вот я тебе и намекнул. ))

Спалился ты — на нечтении задачи. Опять невидимые собеседники чего-то намешали, видимо...
The God is real, unless declared integer.
Re[17]: Питон - уродство
От: vdimas Россия  
Дата: 16.06.18 12:30
Оценка:
Здравствуйте, uncommon, Вы писали:

V>>Оказывается, еще 3 года назад вышел более-менее работающий perl6! )))

U>Точнее последние 3 года он выходил, выходил. Выходил, выходил. Но всё никак не мог выйти.

Как это не мог, если есть ссылки для скачивания?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.