Что пишут на Питоне?
От: busk  
Дата: 28.01.12 15:44
Оценка: -2
Не совсем понимаю, что на этом языке пишут?
т.е. в чем его плюсы перед java, например?
Re: Что пишут на Питоне?
От: Aib https://razborpoletov.com
Дата: 28.01.12 16:08
Оценка: +4 -4
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

B>т.е. в чем его плюсы перед java, например?

Только УГ
Re: Что пишут на Питоне?
От: Pzz Россия https://github.com/alexpevzner
Дата: 28.01.12 16:11
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?


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

B>т.е. в чем его плюсы перед java, например?


Одним нравится ява, другим — питон...
Re: Что пишут на Питоне?
От: nen777w  
Дата: 28.01.12 16:20
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

B>т.е. в чем его плюсы перед java, например?

Я например писал утилитку
Автор: nen777w
Дата: 13.02.11
которая обрабатывает дизассемблированный в терминах некоторой виртаульной машины код
, что бы по специальным генерируемым, детектором паттернов, коментариям, уменьшить размер исходного файла для разбора
Re: Что пишут на Питоне?
От: Osaka  
Дата: 28.01.12 16:23
Оценка:
B>Не совсем понимаю, что на этом языке пишут?
скрипты для управления программами
B>т.е. в чем его плюсы перед java, например?
можно нанять студента
Re: Что пишут на Питоне?
От: Programador  
Дата: 28.01.12 16:41
Оценка:
Здравствуйте, busk, Вы писали:

B>т.е. в чем его плюсы перед java, например?


там богатые возможностей, не сравнить с java. Любят/пишут в западных научных кругах. Бывает пишут то для чего он не очень предназначен и как напишут тут проблемы с производительностью выясняются, приходится переписывать на С++.
Re: Что пишут на Питоне?
От: redp Ниоткуда redplait.blogspot.com
Дата: 28.01.12 16:53
Оценка: -1
B>Не совсем понимаю, что на этом языке пишут?
B>т.е. в чем его плюсы перед java, например?
Python is not as good as it is made out to be, in other words it suffers from a degree of hype. I'll try to argue this point. Potential detractors of the language usually lack the experience to criticize it authoratively. This is more true for Python as it is not (yet) common that people are coerced (by work, school) into learning and working with the language. So the detractors are few and drowned out by the vocal supporters.

The proponents of Python cite 'indentation' as the worst problem, this is a strawman argument 'this is the worst problem and its not really a problem'. This argument has been voted up presumably by people who like the language, because it is certainly not a good reason not to use Python. I am far from an expert at Python, but I have done a couple of semi-serious projects in the language and will try to recall specifically what I didn't like.

Everything you write will be open source. No FASLs, DLLs or EXEs. Developer may want to have control over the level of access to prevent exposure of internal implementation, as it may contain proprietary code or because strict interface/implementation decomposition is required. Python third-party library licensing is overly complex. Licenses like MIT allow you to create derived works as long as you maintain attrubution; GNU GPL, or other 'viral' licenses don't allow derived works without inheriting the same license. To inherit the benefits of an open source culture you also inherit the complexities of the licensing hell.

Installation mentality, Python has inherited the idea that libraries should be installed, so it infact is designed to work inside unix package management, which basically contains a fair amount of baggage (library version issues) and reduced portability. Of course it must be possible to package libraries with your application, but its not conventional and can be hard to deploy as a desktop app due to cross platform issues, language version, etc. Open Source projects generally don't care about Windows, most open source developers use Linux because "Windows sucks".

Probably the biggest practical problem with Python is that there's no well-defined API that doesn't change. This make life easier for Guido and tough on everybody else. That's the real cause of Python's "version hell".

Global Interpreter Lock (GIL) is a significant barrier to concurrency. Due to signaling with a CPU-bound thread, it can cause a slowdown even on single processor. Reason for employing GIL in Python is to easy the integration of C/C++ libraries. Additionally, CPython interpreter code is not thread-safe, so the only way other threads can do useful work is if they are in some C/C++ routine, which must be thread-safe.

Python (like most other scripting languages) does not require variables to be declared, as (let (x 123) ...) in Lisp or int x = 123 in C/C++. This means that Python can't even detect a trivial typo — it will produce a program, which will continue working for hours until it reaches the typo — THEN go boom and you lost all unsaved data. Local and global scopes are unintuitive. Having variables leak after a for-loop can definitely be confusing. Worse, binding of loop indices can be very confusing; e.g. "for a in list: result.append(lambda: fcn(a))" probably won't do what you think it would. Why nonlocal/global/auto-local scope nonsense?

Python indulges messy horizontal code (> 80 chars per line), where in Lisp one would use "let" to break computaion into manageable pieces. Get used to things like self.convertId([(name, uidutil.getId(obj)) for name, obj in container.items() if IContainer.isInstance(obj)])

Crippled support for functional programming. Python's lambda is limited to a single expression and doesn't allow conditionals. Python makes a distinction between expressions and statements, and does not automatically return the last expressions, thus crippling lambdas even more. Assignments are not expressions. Most useful high-order functions were deprecated in Python 3.0 and have to be imported from functools. No continuations or even tail call optimization: "I don't like reading code that was written by someone trying to use tail recursion." --Guido

Python has a faulty package system. Type time.sleep=4 instead of time.sleep(4) and you just destroyed the system-wide sleep function with a trivial typo. Now consider accidentally assigning some method to time.sleep, and you won't even get a runtime error — just very hard to trace behavior. And sleep is only one example, it's just as easy to override ANYTHING.

Python's syntax, based on SETL language and mathematical Set Theory, is non-uniform, hard to understand and parse, compared to simpler languages, like Lisp, Smalltalk, Nial and Factor. Instead of usual "fold" and "map" functions, Python uses "set comprehension" syntax, which has an overhelmingly large collection of underlying linguistic and notational conventions, each with it's own variable binding semantics. Using CLI and automatically generating Python code is hard due to the so called "off-side" indentation rule (aka Forced Indentation of Code), also taken from a math-intensive Haskell language. This, in effect, makes Python look like an overengineered toy for math geeks. Good luck discerning [f(z) for y in x for z in gen(y) if pred(z)] from [f(z) if pred(z) for z in gen(y) for y in x]

Quite quirky: triple-quoted strings seem like a syntax-decision from a David Lynch movie, and double-underscores, like init, seem appropriate in C, but not in a language that provides list comprehensions. There has to be a better way to mark certain features as internal or special than just calling it feature. self everywhere can make you feel like OO was bolted on, even though it wasn't.

Python is unintuitive and has too many confusing non-orthogonal features: references can't be used as hash keys; expressions in default arguments are calculated when the function is defined, not when it’s called. Why have both dictionaries and objects? Why have both types and duck-typing? Why is there ":" in the syntax if it almost always has a newline after it? The Python language reference devotes a whole sub-chapter to "Emulating container types", "Emulating callable Objects", "Emulating numeric types", "Emulating sequences" etc. -- only because arrays, sequences etc. are "special" in Python.

— Python's GC uses naive reference counting, which is slow and doesn't handle circular references, meaning you have to expect subtle memory leaks and can't easily use arbitrary graphs as your data. In effect Python complicates even simple tasks, like keeping directory tree with symlinks.

— Problems with arithmetic: no Numerical Tower (nor even rational/complex numbers), meaning 1/2 would produce 0, instead of 0.5, leading to subtle and dangerous errors.

— Poor UTF support and unicode string handling is somewhat awkward.

— No outstanding feature, that makes the language, like the brevity of APL or macros of Lisp.
паранойя не болезнь, а критерий профпригодности
Re: Что пишут на Питоне?
От: мыщъх США http://nezumi-lab.org
Дата: 28.01.12 18:24
Оценка: +1
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

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

пропотип проекта ~300 строк без использования нештатных библиотек. пожалуйста, напишите что-то похожее на любом другом языке. сразу условия -- в день вам нужно выкачать содержимое сотен тысяч сайтов, если оно изменилось со времени предыдущей проверки, то обновить свою базу. выкаченную страницу распарсить и выкачать содержимое страниц со всех ссылок, которые там. система распределенная ес-но.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: Что пишут на Питоне?
От: BrainSlug Израиль  
Дата: 28.01.12 18:51
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

3 язык по популярности на гите. там же можно и посмотреть, что пишут, а пишут все, что угодно — скрипты,веб приложения(может слышали django), всякие скрейперы, пауки, для дата майнинга, анализа данных, всяких математических вычислений, потому есть богатые готовые библиотеки. язык довольно популярный, что появились/появляются такие вещи как cython, boo, jython, IronPython.
.
Re: Что пишут на Питоне?
От: TimurSPB Интернет  
Дата: 28.01.12 18:57
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

B>т.е. в чем его плюсы перед java, например?

Скрипты для кроссплатформенной сборки удобно писать.
Make flame.politics Great Again!
Re: Что пишут на Питоне?
От: D. Petrov США  
Дата: 28.01.12 19:14
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

B>т.е. в чем его плюсы перед java, например?

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

Был опыт использованияя питона в промышленных проектах. Впечатления хуже. Основное что мне не хватало это (как ни странно) компилятора, который отлавливает массу синтаксических ошибок. Очень неприятно когда серьезный баг возникаеи из-за опечатки.
Re[2]: Что пишут на Питоне?
От: Cyberax Марс  
Дата: 28.01.12 19:26
Оценка:
Здравствуйте, redp, Вы писали:

B>>Не совсем понимаю, что на этом языке пишут?

B>>т.е. в чем его плюсы перед java, например?
Плохая копипаста. Если исключить критику, связанную с тем, что Питон — это не Лисп и имеет другой стиль, то останется только GIL.

Возмущения по поводу библиотек и версий — ерунда. В Питоне очень неплохая система версирования библиотек и очень неплохие setuptools, которые позволяют управлять зависимостями. В чём проблемы с bundling'ом — тоже непонятно, так как достаточно просто положить библиотеку рядом с приложением.

Питон не является функциональным языком, так что непонятно почему это минус. Соответственно, функциональные конструкции в нём неудобны. А вот питоновские list comprehensions успешно перекочевали во многие другие языки, так как они очень неплохо читаемы.

Вообще, идеология Питона — это делать понятный и читаемый код, даже если он не является максимально компактным. И в этом Питон преуспел, в общем-то.

R>- No outstanding feature, that makes the language, like the brevity of APL or macros of Lisp.

Самая outstanding feature в Питоне — это то, что он не является ужасом типа APL или макросов Лиспа.
Sapienti sat!
Re[2]: Что пишут на Питоне?
От: vayerx  
Дата: 28.01.12 19:33
Оценка:
Здравствуйте, D. Petrov, Вы писали:

DP>Основное что мне не хватало это (как ни странно) компилятора, который отлавливает массу синтаксических ошибок. Очень неприятно когда серьезный баг возникаеи из-за опечатки.


pylint?
Re[3]: Что пишут на Питоне?
От: alexlz  
Дата: 29.01.12 04:09
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> А вот питоновские list comprehensions успешно перекочевали во многие другие языки, так как они очень неплохо читаемы.


Только почему они питоновские? В википедии история рисуется: SETL, Smalltalk-80... Miranda, Haskell, Python...
Re[2]: Что пишут на Питоне?
От: Igor Sukhov  
Дата: 29.01.12 04:47
Оценка:
Здравствуйте, D. Petrov, Вы писали:

DP>Он идеален для быстрого прототипирования. Когда занимался наукой, почти во всех моих проектах требовалась разработка прототипов, вот и использовали Питон.

DP>Он интуитивно понятный. Приходит новый человек в команду, а вечером уже чего-то там программирует на питоне

DP>Был опыт использованияя питона в промышленных проектах. Впечатления хуже. Основное что мне не хватало это (как ни странно) компилятора, который отлавливает массу синтаксических ошибок. Очень неприятно когда серьезный баг возникаеи из-за опечатки.


а как у питона производительность — применительно именно к использованию в промымшленных проектах?
* thriving in a production environment *
Re: Что пишут на Питоне?
От: azzx Россия  
Дата: 29.01.12 06:41
Оценка:
Здравствуйте, busk, Вы писали:

B>Не совсем понимаю, что на этом языке пишут?

B>т.е. в чем его плюсы перед java, например?

Кому чего. Я вот мелкие утилитки для собственного использования пишу — табличку обсчитать, файл с данными переформатировать и т.д. Но это мелочь конечно. Но удобно — подсел, слезать не хочу.
Re[2]: Что пишут на Питоне?
От: dsorokin Россия  
Дата: 29.01.12 06:55
Оценка:
Здравствуйте, мыщъх, Вы писали:

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


М>пропотип проекта ~300 строк без использования нештатных библиотек. пожалуйста, напишите что-то похожее на любом другом языке. сразу условия -- в день вам нужно выкачать содержимое сотен тысяч сайтов, если оно изменилось со времени предыдущей проверки, то обновить свою базу. выкаченную страницу распарсить и выкачать содержимое страниц со всех ссылок, которые там. система распределенная ес-но.


F# с его монадой асинхронных вычислений Async еще лучше подойдет при сохранении практически такой же, а, может быть, и большей выразительности кода, но на вкус и цвет все фломастеры разные
Re[3]: Что пишут на Питоне?
От: dsorokin Россия  
Дата: 29.01.12 06:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Питон не является функциональным языком, так что непонятно почему это минус. Соответственно, функциональные конструкции в нём неудобны. А вот питоновские list comprehensions успешно перекочевали во многие другие языки, так как они очень неплохо читаемы.


List comprehension пришел из мира функциональных языков. В питон он пришел именно оттуда.
Re[4]: Что пишут на Питоне?
От: Cyberax Марс  
Дата: 29.01.12 09:51
Оценка:
Здравствуйте, alexlz, Вы писали:

C>> А вот питоновские list comprehensions успешно перекочевали во многие другие языки, так как они очень неплохо читаемы.

A>Только почему они питоновские? В википедии история рисуется: SETL, Smalltalk-80... Miranda, Haskell, Python...
Они точно не смолтоковские. Именно удобный питоновский синтаксис перелез во многие языки.
Sapienti sat!
Re[4]: Что пишут на Питоне?
От: Cyberax Марс  
Дата: 29.01.12 09:52
Оценка:
Здравствуйте, dsorokin, Вы писали:

C>>Питон не является функциональным языком, так что непонятно почему это минус. Соответственно, функциональные конструкции в нём неудобны. А вот питоновские list comprehensions успешно перекочевали во многие другие языки, так как они очень неплохо читаемы.

D>List comprehension пришел из мира функциональных языков. В питон он пришел именно оттуда.
Да, и что? И именно в Питоне для них придумали удобный синтаксис.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.