Имя: Пароль:
IT
 
Почему язык Python такой популярный?
,
0 megabax
 
31.10.16
21:22
Добрый день. Я тут начала изучать Python, и, если честно, был сильно удивлён некоторыми фактами. Во-первых, этот язык интерпретируемый и работает медленно. Во-вторых, в нем нестрогая динамическая типизация, то есть, мало того что не обязательно предварительно объявить переменную, так он еще и может менять свой тип по ходу работы программы, и, более того, если мы обратимся к несуществующему полю объекта, то мы получим вовсе не исключительную ситуацию, а просто создадим это поле. То есть, с ООП там, если грубо говорить, немножко бардак.
Но тем не менее, почему то Python очень популярный, им пользуется Яндекс, Гугл, на нем написано много разные программ, а многие серьёзные компании в своих вакансиях предъявляют требование обязательного знания Python.
Дык почему Python так популярен? Что в нем такого крутого, что, несмотря на очевидные недостатки, делает его таким популярным?
1 Волшебник
 
модератор
31.10.16
21:23
В 1С больше ООП, чем в этом "Притоне".
2 megabax
 
31.10.16
21:25
(1) Да ладно. В 1С нет ни наследования, ни полиморфизмов, ни виртуальных методов, ни интерфейсов. Одна имитация ООП.
3 Britta_Perry
 
31.10.16
21:28
Динамическая типизация это очевидный недостаток? И про автоматически создаваемые поля объектов тоже что-то новенькое. Видимо, не на том Питоне я пишу…
4 Loky9
 
31.10.16
21:28
(0) В нём именно что строгая динамическая типизация. Несуществующее поле не прочитается.
5 megabax
 
31.10.16
21:33
(4) Вот сейчас только что написал
b=MyClass1()
потом b.field="dsfdsf"
field - несуществующее поле.
Интерпретатор не ругнулся.
Поле создалось.
6 Волшебник
 
модератор
31.10.16
21:36
(2) Там всё есть, и инкапсуляция, и наследование, и полиморфизм...
7 Serginio1
 
31.10.16
21:45
Питон популярен в среде С++ ников.
http://www.cyberguru.ru/programming/cpp/embedding-python-into-c-part-i.html

Там где нужна динамика, работа с формами, там где на C++ очень сложно писать.
8 Loky9
 
31.10.16
21:45
(5) попробуй
class MyClass:

    __fields = {'field'}

    def __init__(self):
        self.field = 'value'

    def __setattr__(self, name, val):
        if name not in self.__fields:
            print('No-no!')
        else:
            object.__setattr__(self, name, val)


c = MyClass()
print(c.field)
c.field = 1
c.hacked = 2
print(c.field)
print(c.hacked)
9 APXi
 
31.10.16
21:58
Потому что на нем можно быстро написать то, что на сях ты будешь реализовывать в 5 раз дольше, плюс нет всяких лишних ";", нет { }, код сразу структурирован.
10 Asmody
 
31.10.16
22:01
(0) Питон прост. Выучить синтаксис можно за пару вечеров. На питоне написано куча библиотек для всего. Про "тормознутость" интерпретатора тоже с натяжкой. Исходники компилятся в байт-код в отдельных файлах. Есть всякие компиляторы питона в LLVM,JRE,CLR.
11 megabax
 
31.10.16
22:01
(8) Круто!
12 megabax
 
31.10.16
22:03
(9) На C# тоже можно очень быстро писать. А то что код сразу структурирован - это весьма спорное достоинство. Но почему то питон все же популярней си шарпа, странно
13 vde69
 
31.10.16
22:04
(0) Питон не популярен...

у меня подчиненный хотел в него уйти, и не смог

кроме 6..8 действительно больших компаний (одна из них яндекс) с питом практически нет вакансий в России, вообще нет....

Все вакансии ведут через КА к этим "монстрам"....

так, что популярность Питона - это миф...
14 vde69
 
31.10.16
22:05
(10) чем ниже порог вхождения - тем выше конкуренция...
15 Serginio1
 
31.10.16
22:07
(12) Приведи статистику. C# мало уступает Java, а  Java это не только Энтерпрайз, но и андроид.

Еще раз питон в основном идет как дополнение к С++
16 Serginio1
 
31.10.16
22:13
17 Serginio1
 
31.10.16
22:14
18 Loky9
 
31.10.16
22:19
(12) На питоне можно написать до того как загрузится студия)
19 Torquader
 
31.10.16
22:49
Во-первых, интерпретируемые языки хороши тем, что можно править код на ходу, а не грузить исходники в компилятор и пересобирать всё решение.
Во-вторых, на чём-то нужно писать программы, не вдаваясь в подробности системной реализации и связанных с ней сложностей.
В-третьих, к питону можно дописывать модули, чтобы реализовать то, чего нет в языке.
20 organizm
 
31.10.16
22:53
в-четвертых, он как и Джава и cpp относительно свободны, по сравнению с#
21 Jump
 
31.10.16
23:23
(0) Вы назвали некоторые достоинства языка, обозвав их недостатками.
Причина в том что для каждой ситуации есть свой инструмент.
22 HeKrendel
 
31.10.16
23:24
Среди кого популярный?
23 Jump
 
31.10.16
23:25
(22) Среди тех кто им пользуется.
24 HeKrendel
 
31.10.16
23:27
(23) Голосование среди пользователей интернетом показало что 100% пользуются интернетом?
25 mikecool
 
31.10.16
23:47
(0) как вообще можно что-то изучать, если не определился - ты он или она?
26 Бертыш
 
01.11.16
00:32
(15) Java? Фу так говорить. Разачарован после того как после выхода очередной версии JDK мой работавший Jar перестал работать
27 Злопчинский
 
01.11.16
02:00
я когда хомячка заводил - на перле попрограммил малость. мне очень понравилось...
28 Бертыш
 
01.11.16
02:18
Пайтон это с одной стороны быстрое создание прототипа конечного приложения плюс всякие примочки либы по анализу данных, по распознаванию образов (компьютерное зрение), а с другой стороны очень хорошо обучать на нём детей программированию. Во всяком случае я дочу 9 ти лет программированию начал учить именно с пайтона
29 wormselfish
 
01.11.16
02:53
(28) Жаль что у меня не такой отец. Я бы щас зарабатывал нормально.
30 wormselfish
 
01.11.16
02:59
(5) >>Вот сейчас только что написал
>>b=MyClass1()
>>потом b.field="dsfdsf"
>>field - несуществующее поле.
>>Интерпретатор не ругнулся.
>>Поле создалось.

Ошибаешься. Ты не обратился к несуществующему полю, а создал его и присвоил значение.

И то что с типами так все просто - это же хорошо!
Попробуй на С# присвой int16 к int32? Фиг. Придется преобразовывать. А зачем программисту делать работу которую обязан делать компьютер? Вот то то же!
31 spock
 
01.11.16
08:03
(0) Потому что:
- простой синтаксис (об этом в этой ветке высказался каждый);
- много лицензионно-свободных библиотек всякого рода направленности;
- легкая интеграция с C++, например, через CPython;

Основными драйверами языка являются web-проекты и разные научные проекты. Сейчас в тренде BigData, MachineLearning, ComputerVision. Под это все есть либо адаптеры, либо библиотеки с уже реализованными математическими алгоритмами.

От идеи до реализации прототипа на языке python уходит минимум времени. Открыл любимую IDE (да хоть сразу в py-файле), импортнул нужные мат.библиотеки и реализовал. Все! Нет танцев из-за строгой типизации и прочего.

Как язык для прототипирования, python идеален.
32 Рэйв
 
01.11.16
08:06
(2)>>В 1С нет ни наследования, ни полиморфизмов, ни виртуальных методов, ни интерфейсов.

А оно тут надо? Вот ты сам, на вскидку можешь придумать хоть один смысл полиморфизм или наследования в 1С? Я уж не говорю про интерфейсы:-)
33 Xapac
 
01.11.16
08:10
(0) недавно познакомился с питоном. он мне понравился. копаюсь глубже.
34 Kupogun
 
01.11.16
08:12
>>Почему язык Python такой популярный?
1c по этой же причине обрела популярность - высокая скорость разработки
35 dmitryds
 
01.11.16
08:13
(12) кросплатформенность, скорость выполнения кода не меньше...

p/s правда мне синтаксис не нравится)
36 megabax
 
01.11.16
08:29
(30) "Попробуй на С# присвой int16 к int32? Фиг. Придется преобразовывать" - зато я не могу случайно "выстрелить себе в ногу", ошибочно присвоив типу int, например, тип string. А если я  явно преобразую один тип к другому, то значит, я знаю что делаю.
37 Лодырь
 
01.11.16
08:30
(0) Как уже писали в (31) есть много полезных библиотек в области анализа данных и MachineLearning. Фактически там используется либо R либо Python. Выбор невелик )
38 Турист
 
01.11.16
08:34
(36) для каждой работы используется свой инструмент. нужна строгая типизация, используй С, можешь даже на асме писать, никто не запрещает.
39 Naf_kultura
 
01.11.16
08:35
(30) int16 к int32 - легко неявно, а вот обратно надо явно и это правильно
40 Naf_kultura
 
01.11.16
08:36
(38) в С менее строгая типизация, в асме вообще никакая
41 megabax
 
01.11.16
08:36
(32) "Вот ты сам, на вскидку можешь придумать хоть один смысл полиморфизм или наследования в 1С". Ну от например, я хочу создать некий альтернативный вариант документа РасходнаяНакладная. Что я делаю? Варианта 3:
1. Правлю типовой документ и имею проблемы при обновлении.
2. Копирую документ, создав, например МояРасходнаяНакладная, но все равно не застрахован от проблем при обновлении.
3. Имею много любви с написанием всяких внешних форм, внешних обработок и реализую желаемый функционал, не меняя документ. Но все равно не застрахован от проблем при обновлении.
А теперь представь, что есть класс РасходнаяНакладная. У него есть некие виртуальные методы, которые можно переопределять и есть те, которые нельзя. Я создаю новый класс со своим альтернативным поведением, где переопределяю разрешенные методы. При обновлении ничего слетает и не происходит никаких проблем, так как API нового документа не меняется, но возможно, появляется новый функционал. Возможно, меняться какие-то алгоритмы, но на API это не влияет.
42 Рэйв
 
01.11.16
08:37
(40) В асме чтобы иметь тип вообще надо извернуться:-)
43 megabax
 
01.11.16
08:38
Короче, я так понял, Питон хорош только из-за библиотек?
44 Турист
 
01.11.16
08:39
(40) и (42) ну немного не так выразился, но все равно же все поняли о чем речь ))
45 Asmody
 
01.11.16
08:39
(43) Из-за всего.
46 Турист
 
01.11.16
08:41
(41) может все таки стоит навыки работы в 1с подтянуть? у меня есть сильно  переписанные документы и проблем при обновлении нет.
47 Asmody
 
01.11.16
08:41
Под c/c++ тоже есть библиотеки для всего, но они сложнее многократно.
48 dmitryds
 
01.11.16
08:42
(43) многим он хорош) как и NodeJS, но 1Сникам это обычно сложно понять)
49 megabax
 
01.11.16
08:44
(47) А вот интересно, в питоне есть библиотеки для реализации нейросетей?
50 ice777
 
01.11.16
08:44
вот с руби носятся тоже. И даже позиционируется круче. И даже вакансии бывают. Но много ли пишущих на нем?
51 dmitryds
 
01.11.16
08:46
(50) вот интересная статистика https://habrahabr.ru/post/235689/
52 Pentosh
 
01.11.16
08:46
Странно, зачем учить язык если не понимаешь для чего он нужен? Хм...

Питон хорошо для своих нужд, если нужна строгая типизация то вам в С#, C++ или Java. А хаять на динамический язык что у ничего динамическая типизация неправильно.
53 dmitryds
 
01.11.16
08:49
(52) вообще пофиг на язык, если есть голова... (ну кроме 1С естественно, т.к. платформа тормозная и небесплатная)
54 ELEA26
 
01.11.16
08:50
(30) Чтобы избежать множества логических ошибок которые могут жить годами...
55 megabax
 
01.11.16
08:50
(52) Вообще то я не хаю. Просто я считаю что динамическая типизация - это зло. Это точно также, что я недоволен отсутствием полноценного ООП в 1С, но, тем не мене, пользую 1С, так как там много других полезных фишек.
56 Рэйв
 
01.11.16
08:53
(41)все твои доводы - просто заботы об обновлении:-)
Я уже много лет работаю только с переписанными конфами, поэтому меня этот вопрос не сильно заботит, а в остально ввполне можно обойтись без переопределения методов.
57 dmitryds
 
01.11.16
08:56
(55) ООП хорошо в меру, в 1С с этим нормально... и не стоит везде где можно, пихать ООП.
58 Pentosh
 
01.11.16
08:57
(55) Ну тогда тема является разжиганием "холивара".

И почему тогда тема исключительно про Python? PHP, Ruby, Perl тоже давайте обсудим, какие они плохие и что они не решают возложенные на них обязанности, хотя постойте...
59 Pentosh
 
01.11.16
08:58
+(58) JS забыл
60 spock
 
01.11.16
09:01
(49) Абсолютно да! Но нейросети есть даже на 1с (см. инфостарт), в каких языках их только не реализовали.
61 megabax
 
01.11.16
09:01
(58) Ну, вообще то я создал тему не для того, чтобы "разжигать холивары и хаять питон", а для того, чтобы увидеть в питоне то хорошее, что в нем есть, несмотря на динамическую типизацию. И, кстати, увидел. говорят, библиотеки хорошие.
62 spock
 
01.11.16
09:05
(61) Тут уже вскольз упомянули, что для python есть кроссплатформенность из каробки. Например, я пишу на python под виндой, тут же отлаживаю и без проблем переношу этот код на vps под ubuntu.
63 Pentosh
 
01.11.16
09:06
(61) это можно было в вики/оф. доке/книгах прочитать, например.
64 megabax
 
01.11.16
09:07
(62) Вот это круто, да, согласен.
65 Pentosh
 
01.11.16
09:10
+(63) кстати, в введении книги Лутца очень хорошо написаны все плюсы языка, но правда сравнивается он с Java и C++, а не с ближайшими конкурентами (PHP, Ruby и JS).
66 Govnokoder
 
01.11.16
09:23
С++ это вообще не безопасный язык
67 LeReve
 
01.11.16
09:24
(1) Глупее глупости не слышал)
68 Govnokoder
 
01.11.16
09:25
переполнение буфера
69 Jump
 
01.11.16
09:25
(61)Что в питоне есть хорошего?
Ну вот например - динамическая типизация.
70 Asmody
 
01.11.16
09:25
(58) Perl — это "write-only" язык. Да, он быстр для определенных задач, да, регулярками на нем можно сделать почти все. Но написанное на Perl не разобрать самому уже через неделю. Я когда-то на нем писал немного. И он почти не развивается (см. Perl 6)
71 Govnokoder
 
01.11.16
09:25
С# - тема!
72 Jump
 
01.11.16
09:27
(70) Что не развивается - это так.
А если писать аккуратно - разберешься и через пять лет.
73 NikVars
 
01.11.16
09:27
(0) "Я тут начала изучать" ... ты точно мужик?!
74 Asmody
 
01.11.16
09:27
(72) Аккуратно писать и на питоне можно :)
75 Asmody
 
01.11.16
09:28
(73) Как начала — так сразу стал мужиком!
76 Asmody
 
01.11.16
09:28
Главное — начать.
77 Govnokoder
 
01.11.16
09:29
Не, лучше уж тогда Перл чем Питон
78 Naf_kultura
 
01.11.16
09:29
(66)(68)(71)(77) это что за микролозунги?
79 CodeFinder
 
01.11.16
09:34
(13) А город какой? Не получилось потому что вакух нет?
80 trdm
 
01.11.16
09:36
(0) > Дык почему Python так популярен?

Много извращенцев развелось.
81 Jump
 
01.11.16
09:37
(73)Гермафродит видимо.
82 NikVars
 
01.11.16
09:38
(41) Указанный тобой момент не исключает проблем при обновлении. Разработчик перенес часть функционала из одного модуля в другой и ты имеешь проблемы при обновлении, т.к. разработчик ничего не знает от навороченных тобой сверху "наследованиях" и "переопределениях".
83 Govnokoder
 
01.11.16
09:45
Звонит программист беременной жене:
— Ты где?
— На сохранении.
— Ну ладно, позвонишь, когда сохранишься.
84 megabax
 
01.11.16
09:46
(82) Ну тут уже от разработчика потребуется поддерживать при обновлении одинаковый API. Фирма 1C видимо этого сильно не хочет, от того и нет в 1С полноценного ООП до сих пор.
85 Кирпич
 
01.11.16
09:46
(0) потому что мало буков писать и добрый дядя за тебя давно написал все библиотеки, где нужно много ума.
86 Кирпич
 
01.11.16
09:47
(84) полноценного ООП в 1с нет только по одной причине - потому что оно там не нужно.
87 Naf_kultura
 
01.11.16
09:51
(84)(86) ну если API постоянно меняется от версии к версии в 1С, то да - идея работы от интерфейса компонентов никому не нужна
88 shulerr
 
01.11.16
09:51
Допустим, есть у нас сервер, и понадобилось нам на сервере какую-нибудь небольшую задачку выполнять периодически. Логи почистить, за нагрузкой последить, бекап сделать. Bash очень уж неудобный, java -сложности с деплоем, c# только под win. Python самое то. Разбираться не долго, легко интегрируется в любую систему, ресурсы попусту не ест.
89 NikVars
 
01.11.16
09:52
(84) Тебе еще разок сказали, и я повторю "оно тама нужно"?!
В С до сих пор нет возможности писать полностью на национальных языках. Недостаток легко выдумать. Твой пример "недостатка" из серии щас научу 1С торговать софтом и научу, какой должен быть язык программирования для бухучета.
90 CodeFinder
 
01.11.16
09:57
(88) Bash не удобный? Bash Для этих целей всех удобней. А в винде повершелл
91 shulerr
 
01.11.16
09:59
(90) power shell еще куда не шло, но bash... Приведи ка пример оператора if. Можешь при этом не гуглить что там должно вместо == стоять?
92 Serginio1
 
01.11.16
09:59
(88) Ребята .Net Core уже месяца 4 в релизе
https://habrahabr.ru/users/serginio1/topics/
93 vcv
 
01.11.16
10:01
(88) http://oscript.io/ будет ближе к тематике форума :)
94 Asmody
 
01.11.16
10:01
(91) eq
95 Govnokoder
 
01.11.16
10:01
Хотя сейчас безопасники постепенно перебираются с Перла на Питон
96 Govnokoder
 
01.11.16
10:02
то есть белые хакеры
97 shulerr
 
01.11.16
10:03
(94) а скобки квадратные или круглые? От чего это зависит? И главное, нафига это надо, если есть python?
98 Мойдодыр
 
01.11.16
10:05
Как я понимаю питон хотели сделать как js только с классами.
99 Кирпич
 
01.11.16
10:06
(92) ну как бы и Mono никто не отменял. Но если человек уже пишет на питоне, то ему будет и java -сложности с деплоем и C# только на винде. Фанатики. Хотя питон конечно шикарная вешь.
100 Мойдодыр
 
01.11.16
10:07
(98) теперь когда в js это все уже есть, питон должен умереть
101 CodeFinder
 
01.11.16
10:11
(91) а что в нем тебе не нравится? Т.е для тебя скрипт бэкапа лукчше писать на питоне чем на баше? мдаа...а может на 1с сразу же?
102 megabax
 
01.11.16
10:12
(100) Да ну нафиг этот js. После него у меня до сих пор неприятная отрыжка. Лучше уж питон: Все таки, если закрыть глаза на динамическую типизации, то хороший получается язык.
103 Asmody
 
01.11.16
10:13
(100) Пфф!
104 Кирпич
 
01.11.16
10:14
(101) на 1с уже давно пишут http://oscript.io/
105 Govnokoder
 
01.11.16
10:15
Ох уж эти энтузиасты
106 megabax
 
01.11.16
10:15
(104) Блин, извращение какое-то. Зачем нужно еще один скриптовый язык создавать, когда их итак навалом?
107 Кирпич
 
01.11.16
10:18
(106) Ну в нашей стране полно программистов, которые кроме КонецЕсли ничего не знают. Опять же фирменный стиль. Некоторые даже скажут, что это импортозамещение :)
108 Govnokoder
 
01.11.16
10:19
Объявление: "Программистка-индивидуалка. Выезд, апартаменты. Классика, реверс-инжениринг, глубокий кодинг без ТЗ. Звони! Есть подруга бизнес-аналитик".
109 Кирпич
 
01.11.16
10:20
(106) да и красивый код на русском языке, если к 1c через Ole подключаться.
110 Govnokoder
 
01.11.16
10:20
ПрограммистГуманитарий
111 NikVars
 
01.11.16
10:20
(106) Вот тебе другия "извращения"
:)
https://toster.ru/q/51646
"Из недавнего.. делал перенос данных из 1С 7.7 в Oracle JD Edwards. Самый быстрый инструмент для этого оказался опять же питон."
Или это
Аналог внешней компоненты на Python для 8-ки
http://catalog.mista.ru/public/190166/
112 CodeFinder
 
01.11.16
10:36
Кстати Python больше всего требуется в веб
113 megabax
 
01.11.16
10:40
(111) Внешняя компонента на питоне - не такое уж и извращение, если так подумать. Но вот одинэсоподобный скриптовый язык.... действительное, наверное только для тех, кто кроме "концаесли" ничего не знает
114 Мойдодыр
 
01.11.16
10:42
(108) Почти угадал
http://ximage.ru/index.php?id=1477986131
115 Кирпич
 
01.11.16
10:46
(113) "Внешняя компонента на питоне - не такое уж и извращение" - а по моему, это полный треш и питон головного мозга. А вот одинэсоподобный скриптовый язык это вполне логичная приблуда к 1с.
116 CodeFinder
 
01.11.16
10:47
Вообще python не особо популярен.
Лучше бы тему подняли. Почему java настолько популярна?
117 Мойдодыр
 
01.11.16
10:47
(116) такую тему 100500 раз поднимали
118 Кирпич
 
01.11.16
10:47
+(115) потому что любой одинесник поймет чо там в этом скрипте понаписано
119 Serginio1
 
01.11.16
10:51
(116) А кто тебе мешает? Только так или иначе здесь мало квалифицированных программистов на Java или том же питоне.
120 Naf_kultura
 
01.11.16
11:12
оффтоп, зачем 1С снова переходит к созданию объектов, указывая тип через строковые литералы:

Форма = ПолучитьФорму("Справочник.Валюты.Форма.ФормаЭлемента");

почему-то вспомнилось 7.7:

СЗ = СоздатьОбъект("СписокЗначений");
121 Мойдодыр
 
01.11.16
11:15
(120) чтоб в веб клиенте проще было в js компилить
122 Loky9
 
01.11.16
11:18
(116) $$$ * 86%
123 shulerr
 
01.11.16
11:25
(101) прикинь!
Я там наверху писал про if [[ a -eq b ]] ... Инопланетянские конструкции какие-то. Python же на интуитивном уровне понятен. Для сервачных скриптов - незаменимая вещь.
124 CodeFinder
 
01.11.16
11:26
(123) мдааааа...бэкап на баше можно написать в 3-4 строчки. на питоне?
125 shulerr
 
01.11.16
11:27
В две, раз пошла такая пьянка. Ты количеством строк измеряешь качество?
126 CodeFinder
 
01.11.16
11:32
(125) и это тоже.
127 Loky9
 
01.11.16
11:47
При подключении флешек к хосту сканировать их содержимое, по определённой схеме копировать нужное на диск, ставить на флешке отметку обработки, распарсить полученное, переслать на удалённый хост. При сбоях информацию не терять.
Напишите на баше.
128 Сильф
 
01.11.16
11:53
(0) > в нем нестрогая динамическая типизация, то есть, мало того что не обязательно предварительно объявить переменную, так он еще и может менять свой тип по ходу работы программы

Какой ужас! А в 1Се не так, что ли? :)
129 shulerr
 
01.11.16
12:10
(127) + или на java, подняв предварительно openjdk или как его там. Или на c#, загнав на сервер тонну библиотек. При этом все равно придется вызывать bash'евые инструкции, обернув их вызовами своего языка. Потратить на это надо кучу времени, напрячь админов..
130 Мойдодыр
 
01.11.16
12:12
(128) в 1с не так. а вот в js тоже так же
131 Мойдодыр
 
01.11.16
12:12
х = Новый Структура;
x.x = 1 // тут будет ошибка
132 Pentosh
 
01.11.16
12:20
(128) замечу что в питоне СТРОГАЯ (читать как сильная)  динамическая типизация.

й = "строка" + 1 - даст ошибку
133 shulerr
 
01.11.16
12:33
Зато й = "строка" * 2 не дает))
134 Yrii-ay
 
01.11.16
12:41
Советы программисту:
Отношения с заказчиком станут менее формальными, если программа начисления зарплаты вместо 'ИТОГО' будет печатать 'ИГОГО'.
135 Кирпич
 
01.11.16
12:45
(134) а если сумма по зарплате превышает плановую, то ОГОГО
136 LeReve
 
01.11.16
12:52
(119) Здесь в принципе мало квалифицированных программистов.
137 sapphire
 
01.11.16
13:02
(0) Потому, что пистон легко поддерживать, парадигма, обратная перлу, "это можно сделать только так и больше никак".
138 Loky9
 
01.11.16
13:08
(133) Чисто по здравому смыслу и не должно)
139 Web00001
 
01.11.16
13:10
(0)Отличная штука, я на нем 1Спастебин сначала написал, потом нормально на flask переписал. Очень годная штука этот самый flask. Да и в остальном писать очень приятно, много удобных фишек.
140 Кирпич
 
01.11.16
13:25
Чота я думал, что питон быстрее. У меня есть такая придурь - я пишу быстрый интерпретатор языка 1с. Типа хобби такое. Пишу несколько лет, в основном осенью :) Щас откопал свой этот интерпретатор и там набит тестовый код

перем результат;
D=0;
for i=1 to 100000000 do
d = d + 100.25;
enddo;
результат=d;

набил такое в питоне
import time
print "start..."
t1 = time.time()
z = 0.00
for index in range(100000000):
    z += 100.25
t2 = time.time()
print "end."
print z
print t2-t1

питон выполнил за 16 секунд
моё поделие за 3 секунды
OneScript думал 2 минуты

от это я дал :))
141 Кирпич
 
01.11.16
13:27
мож там числа какие нибудь сильно умные. типа как в 1с
142 Loky9
 
01.11.16
13:41
(140)
pypy.exe tmp.py
start...
end.
10025000000.0
1.10899996758

Но подглючивает, гад.
143 Кирпич
 
01.11.16
13:52
(142) так веселее. ага. у меня даже 0.33333 выдало
144 Кирпич
 
01.11.16
13:54
так что на эту осень есть чем заняться
145 Loky9
 
01.11.16
13:54
С заменой на xrange CPython у меня отработал за 17 с половиной сек.
146 Serginio1
 
01.11.16
13:57
(144) Угу сразу в байт код компилируй.
147 Кирпич
 
01.11.16
14:09
видимо этот pypy понял, что переменная z имеет только значение double и зафигачил сразу код для double, а у меня каждый раз проверяет тип переменной. от того и тормоза
148 Serginio1
 
01.11.16
14:43
Да потому, что компилирует.
for i=1 to 100000000 do
d = d + 100.25;
enddo;

Аналогично поступает компилятор и для dynamic в .Net
149 CodeFinder
 
01.11.16
16:38
(127) легко. я парсер зарубежного интернет магазина делал на баше, который потом импортировал всю номенклатуру в мой интернет магазин зеркало.
150 Мойдодыр
 
01.11.16
16:44
(149) парсинг с помощью регулярок?
151 CodeFinder
 
01.11.16
16:46
(150) да
152 Кирпич
 
01.11.16
16:53
(148) dynamic в .Net показал результат медленнее, чем pypy в четыре раза
153 Serginio1
 
01.11.16
17:01
(152) А в режиме release компилировал и с прогревом на компиляцию?
154 Кирпич
 
01.11.16
17:01
+(152) а если уж совсем по честному написать так
for (dynamic x = 0; x < 100000000; x++)

то чуть меньше трёх секунд. как в моей поделке :))

так что "Аналогично поступает компилятор и для dynamic в .Net" - бряхня
155 Кирпич
 
01.11.16
17:02
(153) в режиме release
156 Serginio1
 
01.11.16
17:41
(154) Аналогично поступает делает класс с методом
Для x++ вызывается типизированный метод. Понятно, что незаинлайненный метод будет выполняться долше.
157 Serginio1
 
01.11.16
17:42
В .Net же все компилируется
158 Gary417
 
01.11.16
17:43
(157) компилируется во что? в Native?
159 Serginio1
 
01.11.16
17:45
(158) JIT компилятор компилирует в натив в реалтайме.
160 Serginio1
 
01.11.16
17:48
161 Кирпич
 
01.11.16
17:53
(156) если аналогично, то почему разница в 100 раз?
162 Serginio1
 
01.11.16
17:56
(161) Ну не совсем аналогично. Во первых создается Expression и компилируется в  делегат и на каждом шаге сравнивается с типом.
Задержки на вызов делегата и сравнение с типом делегата в кэше
163 Serginio1
 
01.11.16
17:58
По ссылке

Для описания логики работы DLR приведу ответ Эрика Липперта по этому поводу (вольный перевод):


Сначала среда выполнения решает с объектом какого типа мы имеем дело (COM, POCO).

Далее в дело вступает компилятор. Так как необходимость в лексере и парсере отсутствует, DLR использует специальную версию компилятора C#, имеющего только анализатор метаданных, семантический анализатор выражений, а также генератор кода, который вместо IL генерирует Expression Trees.

Анализатор метаданных использует рефлексию, чтобы установить тип объекта, который потом передается семантическому анализатору для установления возможности вызова метода или выполнения операции. Далее происходит построение Expression Tree, как если бы Вы использовали лямбда-выражение.

Компилятор C# возвращает обратно дерево выражений в DLR вместе с политикой кэширования. DLR потом сохраняет данный делегат в кэше, ассоциирующимся с узлом вызовов.


Для этого используется свойство Update класса CallSite. При вызове динамической операции, хранящейся в поле Target происходит перенаправление к свойству Update, где и происходит вызов байндеров. Когда в следующий раз произойдет вызов, вместо повторного выполнения вышеперечисленных действий, будет использоваться уже готовый делегат.


Polymorphic Inline Cache

Производительность динамических языков страдает из-за дополнительных проверок и поисковых запросов, выполняющихся во всех местах вызова. Прямолинейная реализация постоянно ищет члены в списках приоритета класса и, возможно, разрешает перегрузку типов аргументов метода каждый раз, когда исполняется строчка кода. В языках со статической типизацией (или с достаточным количеством указаний типов в коде и выводом типов) можно генерировать инструкции или вызовы функций среды исполнения, которые подходят для всех точек вызова. Это возможно, потому что статические типы позволяют узнать все, что нужно, во время компиляции.

На практике повторные операции над одними и теми же типами объектов можно привести к общему типу. Например, при первом вычислении значения выражения x + y для целых x и y можно запомнить фрагмент кода или точную функцию времени исполнения, которая складывает два целых числа. Тогда при всех последующих вычислениях значения этого выражения искать функцию или фрагмент кода уже не потребуется благодаря кэшу.

Вышеприведенный механизм кэширования делегатов (в данном случае), когда узел вызова является самообучающимся и обновляющимся называется Polymorphic Inline Cache. Почему?
164 Serginio1
 
01.11.16
17:59
Кстати посмотри через ILSpy какой код сгенерировал компилятор
165 Кирпич
 
01.11.16
18:00
(162) проще говоря, нет оптимизации типа dynamic
166 Serginio1
 
01.11.16
18:01
(165) Читай 163
167 Кирпич
 
01.11.16
19:09
(166) почитал. Нафиг я это читал? Pypy делает быстро, .net медленно.
168 spock
 
01.11.16
19:10
(140) примеры не одинаковые. Range выделяет весь массив в памяти, а потом итерирует по нему. Замени на xrange чтоли.
169 Кирпич
 
01.11.16
19:40
(168) чота я не заметил, как выделяется полгига памяти под массив
170 Serginio1
 
01.11.16
19:50
(167) Угу у тебя пример того, что никогда не возникает в жизни ни разу.

В реальной жизни приходится работать с утиной типизацией то есть с объектами неизвестного типа, но имеющие определенную сигнатуру методов и их название. Например COM, ExpandoObject (аналог структура) DynamicObject (нет аналога) и объекты неизвестного типа

Для COM и обычных объектов можно использовать Reflection.
Так во dynamic быстрее Reflection раз в 13-30

http://stackoverflow.com/questions/13193799/performance-cost-of-using-dynamic-typing-in-net

И при этом вызов по сигнатуре. Для интереса проведи тест для установки свойства, вызова метода с не dynamic параметрами.
171 Serginio1
 
01.11.16
19:52
Кстати можно и IronPython попробовать. Там как раз все на DLR
172 Serginio1
 
01.11.16
19:53
Кстати хорошая презентация про то как работает DLR http://www.slideshare.net/yu5k3/dlr-54012646
173 Кирпич
 
01.11.16
20:20
(170) "Угу у тебя пример того, что никогда не возникает в жизни ни разу."
Ну в .NET я конечно не стану какие нибудь гигантские матрицы на dynamic считать, а на PyPy получается можно.
Я просто подумал, что компилятор NET такой же умный как PyPy. Оказалось нет. Ну и пофиг.
174 Loky9
 
01.11.16
20:26
(171) Он тормозней цэпитона раз в десять.
Нашел такую штуку: http://numba.pydata.org/
Это даже круче pypy!
175 Loky9
 
01.11.16
20:30
(149) Нужно было разобрать xml в архивах, но разбор был не самой большой проблемой в задаче.
На баше это сделать можно, но неудобно, громоздко и плохосопровождаемо.
176 Jija Grenkov
 
01.11.16
22:30
Пайтон часто используется как вспомогательный язык. На пример как замена bash скриптов. На Пайтон часто пишут вспомогательные утилиты не требовательным к производительности. Так же Пайтон широко используется при анализе данных, но если данных много то на Пайтоне делают только прототипы, а основную реализацию на jvm языках. Производительность Пайтон скриптов никогда не была высокой
177 Jija Grenkov
 
01.11.16
22:32
В разработке классических приложений Пайтон не слишком популярен
178 Loky9
 
01.11.16
23:05
(176) "Производительность Пайтон скриптов никогда не была высокой"
-Ты что, дальтоник, Скрипач, - зелёный цвет от оранжевого отличить не можешь?

@jit
def mandel(x, y, max_iters):
    """
    Given the real and imaginary parts of a complex number,
    determine if it is a candidate for membership in the Mandelbrot
    set given a fixed number of iterations.
    """
    i = 0
    c = complex(x,y)
    z = 0.0j
    for i in range(max_iters):
        z = z*z + c
        if (z.real*z.real + z.imag*z.imag) >= 4:
            return i

    return 255

print(mandel.inspect_asm((numba.float64, numba.float64, numba.int64)))

>>>>>
.text
        .file   "mandel"
        .section        .rodata.cst8,"aM",@progbits,8
        .align  8
.LCPI0_0:
        .quad   4616189618054758400
        .text
        .globl  __main__.mandel$27.float64.float64.int64
        .align  16, 0x90
        .type   __main__.mandel$27.float64.float64.int64,@function
__main__.mandel$27.float64.float64.int64:
        movsd   40(%rsp), %xmm0
        movq    48(%rsp), %r9
        xorl    %eax, %eax
        testq   %r9, %r9
        cmovsq  %rax, %r9
        xorpd   %xmm2, %xmm2
        movabsq $.LCPI0_0, %r8
        xorpd   %xmm1, %xmm1
        .align  16, 0x90
.LBB0_1:
        leaq    (%r9,%rax), %rdx
        testq   %rdx, %rdx
        jle     .LBB0_4
        movapd  %xmm2, %xmm4
        mulsd   %xmm4, %xmm4
        mulsd   %xmm1, %xmm2
        mulsd   %xmm1, %xmm1
        subsd   %xmm1, %xmm4
        addsd   %xmm2, %xmm2
        addsd   %xmm3, %xmm4
        movapd  %xmm2, %xmm1
        addsd   %xmm0, %xmm1
        movapd  %xmm4, %xmm2
        mulsd   %xmm4, %xmm4
        movapd  %xmm1, %xmm5
        mulsd   %xmm5, %xmm5
        addsd   %xmm4, %xmm5
        decq    %rax
        ucomisd (%r8), %xmm5
        jb      .LBB0_1
        notq    %rax
        movq    %rax, (%rcx)
        xorl    %eax, %eax
        retq
.LBB0_4:
        movq    $255, (%rcx)
        xorl    %eax, %eax
        retq
.Lfunc_end0:
        .size   __main__.mandel$27.float64.float64.int64, .Lfunc_end0-__main__.mandel$27.float64.float64.int64

        .section        .rodata.cst8,"aM",@progbits,8
        .align  8
.LCPI1_0:
        .quad   4616189618054758400
        .text
        .globl  cpython.__main__.mandel$27.float64.float64.int64
        .align  16, 0x90
        .type   cpython.__main__.mandel$27.float64.float64.int64,@function
cpython.__main__.mandel$27.float64.float64.int64:
        .cfi_startproc
        pushq   %r15
.Ltmp0:
        .cfi_def_cfa_offset 16
        pushq   %r14
.Ltmp1:
        .cfi_def_cfa_offset 24
        pushq   %rsi
.Ltmp2:
        .cfi_def_cfa_offset 32
        pushq   %rdi
.Ltmp3:
        .cfi_def_cfa_offset 40
        pushq   %rbx
.Ltmp4:
        .cfi_def_cfa_offset 48
        subq    $112, %rsp
        movapd  %xmm7, 96(%rsp)
        movapd  %xmm6, 80(%rsp)
.Ltmp5:
        .cfi_def_cfa_offset 160
.Ltmp6:
        .cfi_offset %rbx, -48
.Ltmp7:
        .cfi_offset %rdi, -40
.Ltmp8:
        .cfi_offset %rsi, -32
.Ltmp9:
        .cfi_offset %r14, -24
.Ltmp10:
        .cfi_offset %r15, -16
.Ltmp11:
        .cfi_offset %xmm6, -80
.Ltmp12:
        .cfi_offset %xmm7, -64
        movq    %rcx, %rsi
        leaq    56(%rsp), %rax
        movq    %rax, 48(%rsp)
        leaq    64(%rsp), %rax
        movq    %rax, 40(%rsp)
        leaq    72(%rsp), %rax
        movq    %rax, 32(%rsp)
        movabsq $.const.mandel, %rax
        movabsq $PyArg_UnpackTuple, %rbx
        movl    $3, %r8d
        movl    $3, %r9d
        movq    %rdx, %rcx
        movq    %rax, %rdx
        callq   *%rbx
        movl    %eax, %ecx
        xorl    %eax, %eax
        testl   %ecx, %ecx
        je      .LBB1_16
        testq   %rsi, %rsi
        je      .LBB1_17
        cmpq    $0, 24(%rsi)
        je      .LBB1_3
        movq    72(%rsp), %rcx
        movabsq $PyNumber_Float, %rdi
        callq   *%rdi
        movq    %rax, %rsi
        movabsq $PyFloat_AsDouble, %rbx
        movq    %rsi, %rcx
        callq   *%rbx
        movapd  %xmm0, %xmm6
        movabsq $Py_DecRef, %r15
        movq    %rsi, %rcx
        callq   *%r15
        movabsq $PyErr_Occurred, %r14
        callq   *%r14
        movq    %rax, %rcx
        xorl    %eax, %eax
        testq   %rcx, %rcx
        jne     .LBB1_16
        movq    64(%rsp), %rcx
        callq   *%rdi
        movq    %rax, %rsi
        movq    %rsi, %rcx
        callq   *%rbx
        movapd  %xmm0, %xmm7
        movq    %rsi, %rcx
        callq   *%r15
        callq   *%r14
        movq    %rax, %rcx
        xorl    %eax, %eax
        testq   %rcx, %rcx
        jne     .LBB1_16
        movq    56(%rsp), %rcx
        movabsq $PyNumber_Long, %rax
        callq   *%rax
        movq    %rax, %rdi
        testq   %rdi, %rdi
        je      .LBB1_8
        movabsq $PyLong_AsLongLong, %rax
        movq    %rdi, %rcx
        callq   *%rax
        movq    %rax, %rsi
        movq    %rdi, %rcx
        callq   *%r15
.LBB1_8:
        callq   *%r14
        movq    %rax, %rcx
        xorl    %eax, %eax
        testq   %rcx, %rcx
        jne     .LBB1_16
        xorl    %ecx, %ecx
        testq   %rsi, %rsi
        cmovsq  %rcx, %rsi
        xorpd   %xmm1, %xmm1
        movl    $255, %eax
        movabsq $.LCPI1_0, %rdx
        xorpd   %xmm0, %xmm0
        .align  16, 0x90
.LBB1_10:
        leaq    (%rsi,%rcx), %rbx
        testq   %rbx, %rbx
        jle     .LBB1_14
        movapd  %xmm1, %xmm2
        mulsd   %xmm2, %xmm2
        mulsd   %xmm0, %xmm1
        mulsd   %xmm0, %xmm0
        subsd   %xmm0, %xmm2
        addsd   %xmm1, %xmm1
        addsd   %xmm6, %xmm2
        movapd  %xmm1, %xmm0
        addsd   %xmm7, %xmm0
        movapd  %xmm2, %xmm1
        mulsd   %xmm2, %xmm2
        movapd  %xmm0, %xmm3
        mulsd   %xmm3, %xmm3
        addsd   %xmm2, %xmm3
        decq    %rcx
        ucomisd (%rdx), %xmm3
        jb      .LBB1_10
        movl    $2147483647, %eax
        subq    %rcx, %rax
        notq    %rcx
        shrq    $32, %rax
        jne     .LBB1_15
        movq    %rcx, %rax
.LBB1_14:
        movabsq $PyInt_FromLong, %rdx
        movl    %eax, %ecx
        callq   *%rdx
        jmp     .LBB1_16
.LBB1_15:
        movabsq $PyLong_FromLongLong, %rax
        callq   *%rax
.LBB1_16:
        movaps  80(%rsp), %xmm6
        movaps  96(%rsp), %xmm7
        addq    $112, %rsp
        popq    %rbx
        popq    %rdi
        popq    %rsi
        popq    %r14
        popq    %r15
        retq
.LBB1_3:
        movabsq $PyExc_RuntimeError, %rcx
        movabsq $".const.missing Environment", %rdx
        movabsq $PyErr_SetString, %rax
        callq   *%rax
        xorl    %eax, %eax
        jmp     .LBB1_16
.LBB1_17:
        movabsq $".const.Fatal error: missing _dynfunc.Closure", %rcx
        movabsq $puts, %rax
        callq   *%rax
        ud2
.Lfunc_end1:
        .size   cpython.__main__.mandel$27.float64.float64.int64, .Lfunc_end1-cpython.__main__.mandel$27.float64.float64.int64
        .cfi_endproc

        .type   .const.mandel,@object
        .section        .rodata,"a",@progbits
.const.mandel:
        .asciz  "mandel"
        .size   .const.mandel, 7

        .type   ".const.Fatal error: missing _dynfunc.Closure",@object
        .align  16
".const.Fatal error: missing _dynfunc.Closure":
        .asciz  "Fatal error: missing _dynfunc.Closure"
        .size   ".const.Fatal error: missing _dynfunc.Closure", 38

        .type   ".const.missing Environment",@object
        .align  16
".const.missing Environment":
        .asciz  "missing Environment"
        .size   ".const.missing Environment", 20


        .section        ".note.GNU-stack","",@progbits
179 Loky9
 
01.11.16
23:07
"а основную реализацию на jvm языках"
Больше неначем...
180 Jija Grenkov
 
02.11.16
00:31
(178) да такой пример и на 1с не сложно llvm байт код интерпретировать. Вот только я не слышал о больших приложениях на этой виртуальной машине.
(179) таковы реалии.
181 Tarzan_Pasha
 
02.11.16
05:57
да не такой уж он популярный. Ну на питоне всякие парсеры пишут, насколько мне известно и некий хакерский софт.
182 DDwe
 
02.11.16
06:20
(181) Паша как всегда всякую хрень пишет.
183 spock
 
02.11.16
06:21
(169) python3 чтоли?
184 Loky9
 
02.11.16
08:04
(180) "Вот только я не слышал о больших приложениях на этой виртуальной машине."
Эпл использует llvm в графической подсистеме макоси. BSD собирается clang. https://wiki.freebsd.org/BuildingFreeBSDWithClang
(183) pypy не выделяет память в такой ситуации.
185 kihor
 
02.11.16
18:44
(0) Не знаю, не знаю насчет этого Питона. Вот перед мной встала задача написать скрипт, который бы парсил неструктурированный Ексель-файл и готовил CSV-файл для загрузки в базу. Решил, что Питон это модно и начал писать на нем. Несколько дней я промучался с кодировками. Все время были какие-то проблемы с преобразованием символов при записи в файл. Плюнул я на это дело и написал скрипт за пару часов на Перле. Признаю, что наверное я просто плохо знаю Питон, но в моем случае это было так. Не понимаю почему Питон так потеснил в популярности Перл. Наверное просто мода такая.
186 kihor
 
02.11.16
18:46
(185)+ Или еще пример. Надо было мне написать скрипт, который бы обращался по https ссылке и при помощи PKCS12 сертификата скачивал бы информацию. Долго читал доки и как я понял Питон не позволяет это делать. На Перл это делается "на ура".
187 Loky9
 
02.11.16
19:12
(185) Регулярно пиходится разбирать питоном xls и xlsx. Не имею никаких проблем. С dbf тоже.
(186) Может быть проблема решается
openssl pkcs12 -in filename.p12 -nokeys -out certificate.pem
openssl pkcs12 -in filename.p12 -nocerts -out privkey.pem
?
188 spleen
 
02.11.16
19:16
1. Порог вхождения низкий.
2. Кроссплатформенный
3. На нем написан популярный web фреймворк Django. Хотя на этом фреймворке вся популярность в web заканчивается.

4. В научной среде много его используют. Есть библиотека NumPy. Часто это не совсем программисты, а ученные которым надо написать не сложные программы по анализу и тд. Тут как раз динамическая типизация большой плюс.

5. Хороший язык для обучения программированию.
6. Опять же, Raspberry pi
7. Много уже готовых написанных библиотек.
8. Хорошее сообщество.
9. Скриптовый язык. В системном администрировании тоже очень популярен. Потому как почти во всех дистрибутивах Linux предустановлен.
189 kihor
 
02.11.16
19:18
(187) Да, решение с openssl я также нашел, но не хотелось заставлять клиентов кроме возни с PKCS12 сертификатом заставлять еще возиться с их преобразованием. Поэтому я решил распространять скрипт на Перле для своего сервиса.
190 Loky9
 
02.11.16
19:26
(189) from OpenSSL import crypto
p12 = crypto.load_pkcs12(file("push.p12", 'rb').read(), [password])

# PEM formatted private key
print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())

# PEM formatted certificate
print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())
191 kihor
 
03.11.16
01:13
(190) Спасибо. Я не находил раньше такого.
В целом, единственный случай когда у меня Питон "победил" Перл - это чтение списков Sharepoint. У варианта на Перл были какие-то глюки с авторизацией, а вариант на Питон заработал без проблем.
192 Balabass
 
03.11.16
02:03
Разработка ПО.
Оставлю это здесь: https://www.youtube.com/watch?v=4UhESx6vK4c
193 EvilBeaver
 
09.11.16
11:25
(163) Встроить DLR в 1script я думал, но как-то закопался в документации и исходниках IronPython. Не уверен, что овчинка стоит выделки.
194 Gary417
 
09.11.16
11:26
(188) <Опять же, Raspberry pi >

А что распберри? я на яве для неё пишу
195 EvilBeaver
 
09.11.16
11:28
(140) вот выполнение вашего примера на 1script 1.0.15.

38 секунд. Откуда 3 минуты взялось?

https://s21.postimg.org/lfrm47e1j/2016_11_09_11_26_26.png
196 Rovan
 
гуру
09.11.16
12:46
(0) в Lotus Notes не лучше
метод AddItemValue создает поле в документе
а чтобы получить знание поля надо его найти
GetFirstItem()
Все поля являются сразу массивами.
Нет понятия "тип документа".
Есть просто поле Form, по значению которого система понимает в какой форме его открывать.
197 Кирпич
 
29.11.16
22:51
(195) и правда. может ком чота считал во время теста. ну вот на ноуте старом померил сейчас.
https://postimg.org/image/4i46fnx21/

моё 5 сек
python 24 сек
onescript минута
198 Garykom
 
гуру
29.11.16
23:01
(197) А ты повторно то запусти... причем сразу же после 1-го теста ))
199 Кирпич
 
29.11.16
23:03
(198) да запускал раз пять
200 Кирпич
 
29.11.16
23:06
+(199) может другая версия была. сейчас то последнюю качнул
201 Jump
 
30.11.16
00:42
(197) Ну вроде умный человек, неужто не понимаешь что измерять время выполнения скрипта для сравнения языка не слишком умная затея?
202 Кирпич
 
30.11.16
07:37
(201)да я языки и не сравниваю. Просто попробовал и удивился, что питон так тупанул на ровном месте.
203 NikVars
 
30.11.16
09:56
(202) А чего ты время исполнения разного кода сравниваешь?!
204 Кирпич
 
30.11.16
10:03
(203) и чем он разный?
205 NikVars
 
30.11.16
10:04
(204) Может ты тут запутать всех решил. Глянь свою картинку и увидишь.
206 Кирпич
 
30.11.16
10:07
(205) не вижу
207 Jokero
 
30.11.16
10:13
(0) Он простой, поэтому и популярный. Я вообще Фитон в глаза никогда не видел, зашел в "проект Малмо", почитал их демки на фитоне, все понятно, даже без комментов.
208 NikVars
 
30.11.16
10:18
(206) В цикле что ты суммируешь? Смотри после "+100.".
Попробуй проверить на
Д = Д + синус(Д)/(1+ Логарифм10(Д))
209 Кирпич
 
30.11.16
10:29
(208) сам пробуй. нафиг мне твои логорифмы
210 craxx
 
30.11.16
10:37
(0) интересно, а почему это в разделе "Убийцы 1С"? разве Питон - убийца 1С? по моему даже близко нет.
211 NikVars
 
30.11.16
10:39
(209) Обиделся?! Я ж копался в твоих мудростях... Ты уж напрягись!
212 Кирпич
 
30.11.16
10:44
(211) зачем мне напрягаться? Прибавдять 100.50 или 100.25 как то может повлиять на скорость что-ли?
213 NikVars
 
30.11.16
10:49
(212) Честно?! Не знаю! Но как варианты для проверки: работа от сети, а не от аккума, и что там с антивирусом - тоже отключить.
А раз свелось у нас - делай сам - ибо ты уже сравнил и тебе все ясно - то предлагаю закрыть тему.
214 Мандалай
 
30.11.16
10:53
Заголовок из разряда "Вы перестали пить коньяк по утрам?"
215 Кирпич
 
30.11.16
10:57
(213) Ничо не понял чего там у вас свелось и где. Я просто в (140) по ошибке написал, что onescript выполнял такой код за 2 минуты. Потом признал, что ошибся. Код одинаковый. 100.50 или 100.25 значения не имеет.
216 NikVars
 
30.11.16
10:58
(215) Код разный, это твоя вторая ошибка.
217 Кирпич
 
30.11.16
11:00
(216) ну так напиши, где он разный
218 Кирпич
 
30.11.16
11:01
(216) и про первую ошибку тоже напиши
219 NikVars
 
30.11.16
11:04
(217) Уже написал в (208). Ты говоришь, что одинаковый.
Мне стебануться над тобой?!
220 Кирпич
 
30.11.16
11:09
(219) лучше не стебайся. не умеешь.
221 NikVars
 
30.11.16
11:10
(220) Ок. Не буду.
222 eklmn
 
гуру
30.11.16
12:11
(202) тут не питон тупанул, а проверяльщик ))
range создал тебе объект из 9999999 элементов, а то что в цикле уже не важно

Гвидо сказал бы тебе "use multiprocessing"
223 Кирпич
 
30.11.16
12:15
(222) xrange не намного ускоряет. на секунду может
224 Поросян
 
30.11.16
12:44
Есть тут люди, хорошо разбирающиеся в Питоне?

Скажите как на нем заработать не выходя из дома.
225 Loky9
 
30.11.16
15:18
(224) Кроме как "клепать сайты" вариантов выбора не очень много.
226 Jija Grenkov
 
30.11.16
16:41
(224) На питоне больше зарабатывает data scientist, но питон там вторичен. А сатики клепат ьна питоне последнее дело
227 Tarzan_Pasha
 
30.11.16
16:46
(224)мне кажется парсеры всякие. а не сайты.
228 Loky9
 
30.11.16
16:53
229 Кирпич
 
30.11.16
16:53
(224) разве что книжки про питон писать и продавать :)
Я питоном текстовые файлы генерю. Или какой нибудь микросервис на коленке. Рассылку почты там и сё такое.
Или посчитать чего нибудь. Просто инструмент вспомогательный, короче.
230 Господин ПЖ
 
30.11.16
16:53
под парсеры сейчас вроде go модно
231 Кирпич
 
30.11.16
17:00
(230) если людям отдавать, то Go конечно лучше. а если для себя, то и питон пойдет.
232 Loky9
 
30.11.16
17:02
На питоне лучше всего строчится всё срочное и/или одноразовое.
233 Loky9
 
30.11.16
17:03
... ажильное, можно сказать.
234 Вафель
 
30.11.16
17:05
а питон вс js? кто быстрее?
235 Loky9
 
30.11.16
17:05
(234) на питоне написать быстрее
236 Gary417
 
30.11.16
17:07
(235) букв меньше? :)
237 Loky9
 
30.11.16
17:07
Написал OpenCV счетчик машинок. Работает шустро. Из-за питона? Не думаю.
238 Loky9
 
30.11.16
17:07
(236) Конструкции более ёмкие.
239 craxx
 
30.11.16
17:11
(224) если ты осваиваешь язык программирования чтобы зарабатывать - ничего зарабатывать не получится.
240 Кирпич
 
30.11.16
17:21
(239) И только язык 1с все изучали исключительно для зарабатывания денег.
241 Tarzan_Pasha
 
30.11.16
17:21
(234)конечно Питон.
242 Tarzan_Pasha
 
30.11.16
17:22
(239)не согласен с вами дяденька. Я начал веб изучать ради заработка денег и начал на нем зарабатывать. уж очень 1с надоел.
243 Кирпич
 
30.11.16
17:27
(242) я вообще в программисты пошел потому что в офисе работать тепло, а на улице холодно. вовсе даже не из-за денег.
244 craxx
 
30.11.16
17:35
(240) я ради интереса аж в 2001 году
245 Турист
 
01.12.16
09:35
Хмм, паша уже сам с собой общается ))
246 Shurjk
 
01.12.16
09:48
Очень широкая сфера прикладного применения, много библиотек. Весьма прост, не дает того самого простора мысли что присущ системщикам, на питоне либо что то делается либо объявляется что это невозможно - вообщем то что надо для бизнесса.
247 Loky9
 
01.12.16
12:31
(246) Как будто описание js.
Чего там невозможного, что так сильно ограничивает простор мысли?
248 Кирпич
 
01.12.16
12:38
(247) ну например указатели и с ними миллион способов вызвать загадочный глюк
249 Loky9
 
01.12.16
12:46
(248) С mutables можно наловить всего того же)
250 losky_9
 
01.12.16
13:14
В общем, до понимания работы zip(*[iter(seq)] * n) о простоте/сложности питона говорить рано.
253 ELEA26
 
01.12.16
14:05
(0) рассадник багов. Даже опечатку можно искать долго. Ошибок не видать на 1й, 2й и третий взгляд.
254 bolder
 
01.12.16
14:07
(41) Спасибо,посмеялся!
Какой API у Расходной накладной может быть у 1С, если процедуры даже извлечения и расчета налогов переименовываются и перемещаются по модулям произвольно.
Если бы этого не было и способы 1 и 2 были бы не геморройными.Поэтому наследование в 1С - это из области фантастики.
255 eklmn
 
гуру
01.12.16
14:09
(253) как все печально и с глазами и с руками...
256 Jump
 
03.12.16
02:51
(239) Это почему?
Вот взять тот же JS.
Я его учил чтобы зарабатывать.
Для того чтобы зарабатывать нужно было реализовать некоторый функционал, и это самый удобный для этого язык.
Можно было нанять программиста - но это офигенно дорого в отсутствие четкого ТЗ и четкого понимания нужной функциональности.
А так - выучил, написал прям в процессе обучения, и получаешь деньги.
257 rphosts
 
03.12.16
06:04
(64) docker - это круто, а копипаст одних исходников уже банально
258 Serginio1
 
03.12.16
12:13
(252) Сейчас изучаю Angular 2. Так TypeScript намного приятнее JS. А учитывая мощь ангулара, то TS будет развиваться еще быстрее. Смысл в том, что TS поддерживает старые версии JS. А там смотришь и поддержка браузерами будет TS, учитывая, что WebAssembly буксует. Но и перекомпиляция TS в WA более удобная за счет типизации
259 Мэс33
 
03.12.16
13:14
260 Jija Grenkov
 
04.12.16
04:26
(259) Для девелопера высокого уровня 200к смешные деньги. Как по мне у них ценикс на начинающего синьера
261 Garykom
 
гуру
04.12.16
05:40
(259) BDSM: business, development, sales and marketing

Но реально читаешь что пишет "рекрутчик" и да вроде все понятно, но на каком же языке она мысленно думает?
Уж явно не на русском ибо "Методологии различаются между продуктовыми командами" ))
262 Garykom
 
гуру
04.12.16
05:51
(260) Для "девелопера высокого уровня" деньги довольно часто уже не на 1-м месте.
Важнее комфортная работа над интересными (бросающими вызов самолюбию) задачами/проектами.

Комфортная это значит тебя не залюбливают совещаниями и тимбилдингами, минимум ненужной/пустой работы (только когда сам хочешь отвлечься) и четкое разделение обязанностей.
Если я разработчик то плиз все баги/жалобы/фидбеки от пользователей хочу иметь уже в письменном структирированном/сводном виде. А если приходится общаться вместо поддержки то это конечно без проблем, но за отдельную плату и понимая что процесс разработки будет страдать.
263 Garykom
 
гуру
04.12.16
05:58
(262) *структурированном
264 Мэс33
 
04.12.16
09:38
(260) нормальные деньги.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс