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

  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 человек.
Рекламное место пустует