Вход | Регистрация

  1  2  3   
Информационные технологии ::

Метки:

Почему язык Python такой популярный?

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

Там где нужна динамика, работа с формами, там где на C++ очень сложно писать.
   Loky9
 
8 - 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)
   APXi
 
9 - 31.10.16 - 21:58
Потому что на нем можно быстро написать то, что на сях ты будешь реализовывать в 5 раз дольше, плюс нет всяких лишних ";", нет { }, код сразу структурирован.
   Asmody
 
Ведущий
10 - 31.10.16 - 22:01
(0) Питон прост. Выучить синтаксис можно за пару вечеров. На питоне написано куча библиотек для всего. Про "тормознутость" интерпретатора тоже с натяжкой. Исходники компилятся в байт-код в отдельных файлах. Есть всякие компиляторы питона в LLVM,JRE,CLR.
 
  Рекламное место пустует
   megabax
 
11 - 31.10.16 - 22:01
(8) Круто!
   megabax
 
12 - 31.10.16 - 22:03
(9) На C# тоже можно очень быстро писать. А то что код сразу структурирован - это весьма спорное достоинство. Но почему то питон все же популярней си шарпа, странно
   vde69
 
13 - 31.10.16 - 22:04
(0) Питон не популярен...

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

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

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

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

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

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

И то что с типами так все просто - это же хорошо!
Попробуй на С# присвой int16 к int32? Фиг. Придется преобразовывать. А зачем программисту делать работу которую обязан делать компьютер? Вот то то же!
   spock
 
31 - 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С? Я уж не говорю про интерфейсы:-)
   Xapac
 
33 - 01.11.16 - 08:10
(0) недавно познакомился с питоном. он мне понравился. копаюсь глубже.
 
  Рекламное место пустует
   Kupogun
 
34 - 01.11.16 - 08:12
>>Почему язык Python такой популярный?
1c по этой же причине обрела популярность - высокая скорость разработки
   dmitryds
 
35 - 01.11.16 - 08:13
(12) кросплатформенность, скорость выполнения кода не меньше...

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

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

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

Много извращенцев развелось.
   Jump
 
81 - 01.11.16 - 09:37
(73)Гермафродит видимо.
   NikVars
 
82 - 01.11.16 - 09:38
(41) Указанный тобой момент не исключает проблем при обновлении. Разработчик перенес часть функционала из одного модуля в другой и ты имеешь проблемы при обновлении, т.к. разработчик ничего не знает от навороченных тобой сверху "наследованиях" и "переопределениях".
   Govnokoder
 
83 - 01.11.16 - 09:45
Звонит программист беременной жене:
— Ты где?
— На сохранении.
— Ну ладно, позвонишь, когда сохранишься.
   megabax
 
84 - 01.11.16 - 09:46
(82) Ну тут уже от разработчика потребуется поддерживать при обновлении одинаковый API. Фирма 1C видимо этого сильно не хочет, от того и нет в 1С полноценного ООП до сих пор.
   Кирпич
 
85 - 01.11.16 - 09:46
(0) потому что мало буков писать и добрый дядя за тебя давно написал все библиотеки, где нужно много ума.
   Кирпич
 
86 - 01.11.16 - 09:47
(84) полноценного ООП в 1с нет только по одной причине - потому что оно там не нужно.
   Naf_kultura
 
87 - 01.11.16 - 09:51
(84)(86) ну если API постоянно меняется от версии к версии в 1С, то да - идея работы от интерфейса компонентов никому не нужна
   shulerr
 
88 - 01.11.16 - 09:51
Допустим, есть у нас сервер, и понадобилось нам на сервере какую-нибудь небольшую задачку выполнять периодически. Логи почистить, за нагрузкой последить, бекап сделать. Bash очень уж неудобный, java -сложности с деплоем, c# только под win. Python самое то. Разбираться не долго, легко интегрируется в любую систему, ресурсы попусту не ест.
   NikVars
 
89 - 01.11.16 - 09:52
(84) Тебе еще разок сказали, и я повторю "оно тама нужно"?!
В С до сих пор нет возможности писать полностью на национальных языках. Недостаток легко выдумать. Твой пример "недостатка" из серии щас научу 1С торговать софтом и научу, какой должен быть язык программирования для бухучета.
   CodeFinder
 
90 - 01.11.16 - 09:57
(88) Bash не удобный? Bash Для этих целей всех удобней. А в винде повершелл
   shulerr
 
91 - 01.11.16 - 09:59
(90) power shell еще куда не шло, но bash... Приведи ка пример оператора if. Можешь при этом не гуглить что там должно вместо == стоять?
   Serginio1
 
92 - 01.11.16 - 09:59
(88) Ребята .Net Core уже месяца 4 в релизе
https://habrahabr.ru/users/serginio1/topics/
   vcv
 
93 - 01.11.16 - 10:01
(88) http://oscript.io/ будет ближе к тематике форума :)
   Asmody
 
Ведущий
94 - 01.11.16 - 10:01
(91) eq
   Govnokoder
 
95 - 01.11.16 - 10:01
Хотя сейчас безопасники постепенно перебираются с Перла на Питон
   Govnokoder
 
96 - 01.11.16 - 10:02
то есть белые хакеры
   shulerr
 
97 - 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 это все уже есть, питон должен умереть

  1  2  3   

Список тем форума
Рекламное место пустует   Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует