LINUX.ORG.RU

[Python] Быстрое освоение языка

 


0

1

Какие технологии/фичи в питоне вы считаете важными для реальной разработки. Интересует как web так и desktop применение.

Есть ли некий список best practice?

Какие типовые проекты можете посоветовать для улучшения навыков(примеры : PHP - форум, гостевая книга; Haskell - компилятор, eDSL)


Ответ на: комментарий от anonymous

Бред. Думай прежде чем постить или тебе анонимность совсем крышу снесла?

tia
()
Ответ на: комментарий от tia

> Твои дампы команд не стоят ничего

как минимум они опровергуют твой тупой тезис о том, что твистед написан на си. 140к строчек на пайтоне против 0.4к на сях. Ответ, мне кажется, очевиден.

anonymous
()
Ответ на: комментарий от anonymous

Ты понимаешь под твистедом только верхний слой?
А под Linux может ты понимаешь WM?
Можешь не отвечать, и так понятно что я говорю с дубом.

tia
()
Ответ на: комментарий от tia

Любой язык по итогу будет траслироваться в машинные команды. В любом языке от не деться от вызова низокуровневых функций оси, которые написаны на си. Да, python уступает Си по скорости. Самая популярная реализация Python - это CPython.

Но! twisted написан именно python.

anonymous
()
Ответ на: комментарий от anonymous

Да вы ебан#лись. Twisted написан на двух языках.

dizza ★★★★★
()
Ответ на: комментарий от tia

> Про плееры я сразу скажу, я знаю что их написано много на пайтоне и почти все тормозят(уж больно много я наслушался этого)

Во-первых, ни баньши, ни ритмбокс к питону отношения не имеют. А во-вторых, скорость работы приложения на питоне зависит от того, как его написать (спасибо капитану, подсказал). Использую Quod Libet — ни разу не жаловался на скорость его работы.

pevzi ★★★★★
()
Ответ на: комментарий от iZEN

> Deluge написана на Питоне. Из 3,7 ГБ RAM 99% — её. В то же время, как Transmission написана на C, эта занимает только 50%.

3,7 ГБ

Transmission


занимает 50%



В вашей фрибсд весь софт так много памяти жрет?

pevzi ★★★★★
()
Ответ на: комментарий от tia

охлол, на моей памяти (только на моей!) это уже четвёртый случай, когда tia люди говорят, что он недоумок

но он до сих пор верит, что умный -))

anonymous
()
Ответ на: комментарий от tia

А вот и нет. Twisted написан на пайтоне, да. Однако, вся требовательная логика, включая ядро системы - на си. Пайтон выступает как высокоуровневый язык для построения абстракций работы с низким уровнем. По сути, твистед это и есть высокий уровень, который написан хорошо, с использованием узких мест через либы, модули, написанные на си.

Чувааак, да ты просто наркоман. На си там только буквально пара косметических обёрток. которые на питоне написать трудно.

mashina ★★★★★
()
Ответ на: комментарий от tia

> Да ты знаток извращений, раз используешь такие поделки.

Лучший медиаплеер на GTK

tensai_cirno ★★★★★
()
Ответ на: комментарий от anonymous

>охлол, на моей памяти (только на моей!) это уже четвёртый случай, когда tia люди говорят, что он недоумок

Есть ещё куча случаев, когда надо было бы это сказать, но его просто игнорировали.

anonymous
()
Ответ на: комментарий от tia

>Большие (веб)приложения. За счёт того, что узкие места можно написать на Си, а управлять ими на Пайтоне, можно использовать данный язык для крупных приложений, используя высокоуровневый язык для высокого уровня проекта. Это позволило родиться таким веб-фреймворкам как Werkzeug, Pylons, Pyramid etc. Они достаточно просты, динамичны, имеют простую внутреннюю логику, позволяют делать что хочется с любой частью веб-приложения. К таким фреймворкам относятся и Twisted, и Tornado.

Судя по тому, что ты пишешь, ты сравниваешь werkzeug и tornado с джангой, которую ты выше описал как «плохую».

Это даже не смешно.

anonymous
()
Ответ на: комментарий от Deleted

> Если у вас 100500 end в одном месте

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

то где-то явно что-то не так.


Не факт, функции вложенные в другие функции и не срущие в общее пространство имен без надобности - это хорошо.

А 3 end'а ещё никого не убивали.


«Наш костыль не такой уж большой можно не обращать на него внимания»

В рубях этой проблемы нет


Перловое наследие - основная его проблема

Другое дело, что просто взять имя функции не оборачивая в обёртку стало невозможно.


Фейл

Впрочем, с блоками кода это не очень страшно.


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

dens-dens-dens
()
Ответ на: комментарий от anonymous

Да кому я пытаюсь что-то доказать... Можешь и дальше говорить на каждом углу что twisted на пайтоне написан и писать свои приложения на пайтоне же. Я что, запрещаю? Просто обидно за таких людей.

tia
()
Ответ на: комментарий от pevzi

Во-первых, я уже раз 20 сказал что имел ввиду другие поделки.
Во-вторых, я уже сто и один раз привёл примеры того, как можно написать приложение плохо и оно на Си тормозит. За пример на пайтоне спасибо да.

tia
()
Ответ на: комментарий от mashina

>На си там только буквально пара косметических обёрток.
Ахахахахах. Всё, с тобой бесполезно говорить. Лучше почитай чего умного, погугли, покопай сырцы. Тебе многое ещё предстоит узнать.

tia
()
Ответ на: комментарий от anonymous

Это уже овер 9000ый раз, когда я вижу одного и того же анонимуса, усиленно пытающегося показать себя умным, но трусящего даже зарегистрироваться.

tia
()
Ответ на: комментарий от anonymous

Джанго плох не тем что написан на пайтоне. Он хоть и чуть быстрее рельс, но даёт очень и очень мало инструментов, которые и реализованы через Ж, и приколочены гвоздями, и не дают свободы.
Те же торнадо, векзеуг, пайлонс, пирамид - в разы удобнее джанги.
Одно но: я говорю не про синтетические тесты вроде «написать блог». Да, на джанге будет быстрее. Однако, если будешь делать реальную разработку, то всё может оказаться не так как хотелось бы и на веркзеуг или пирамиде будет просто проще сделать то что нужно.

tia
()
Ответ на: комментарий от tia

>Те же торнадо, векзеуг, пайлонс, пирамид - в разы удобнее джанги.

Джанго и торнадо/веркцойг - _разные_ вещи по своим задачам. Настолько, что даже сравнивать нельзя. Удивительно, что вы, опытыный, по вашим словам, разработчик, этого не понимаете.

anonymous
()
Ответ на: комментарий от pevzi

> Использую Quod Libet — ни разу не жаловался на скорость его работы.

удваиваю

Corey
()
Ответ на: комментарий от dens-dens-dens

>«Наш костыль не такой уж большой можно не обращать на него внимания»

Да, и } тоже костыль, давайте делать отступами и к чертям что неудобно и легко ошибиться, зато не костыль!! :}

Перловое наследие - основная его проблема


Не угадал.

Костыль это ваша необходимость всё время хватать функцию по имени, а блоки это Ъ.

Deleted
()
Ответ на: комментарий от Deleted

> Не угадал.

И какая же основная его проблема? Расскажи, как рубист, чтобы я знал чем вас в дальнейшем троллить, будь добр

Да, и } тоже костыль


От языка зависит

давайте делать отступами


В Haskell вон делают. Че, плохой язык? Вайтспейс-стайл?

к чертям что неудобно и легко ошибиться


«Так говорят лишь те, кто на питоне не писал». Попробуй и удивись

dens-dens-dens
()
Ответ на: комментарий от Deleted

> Костыль это ваша необходимость всё время хватать функцию по имени, а блоки это Ъ.

tailgunner тут приводит раз от разу, как делаются блоки в питоне. И делаются они обычными функциями в python

dens-dens-dens
()
Ответ на: комментарий от dens-dens-dens

>И какая же основная его проблема?

Сам же завёл песню про основную проблему, сам же у меня спросил. Это такой тонкий троллинг? Чем подобные мелочи меня больше беспокоит, к примеру, что некоторые функции не понимают, что юникод это не только A-z. В результате ни сортировку нормально сделать из коробки, ни просто регистр сменить. В добавок к чему привязки Qt автоматически преобразовывают QString в руби-строку, что вроде бы и хорошо, но приводит к невозможности использовать таковые возможности в Qt.

В Haskell вон делают. Че, плохой язык? Вайтспейс-стайл?


Да :}

«Так говорят лишь те, кто на питоне не писал». Попробуй и удивись


Попробовали, попугались и ушли обратно.

Deleted
()
Ответ на: комментарий от tia

То ты говоришь так:

Джанго тормозит, страдает неоднозначностью(что ласково называется «возможностью выполнить одну вещь многими путями», но это не RoR, здесь это неудачно, очень неудачно)

То эдак:

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

Определись. :)

anonymous
()
Ответ на: комментарий от anonymous

Я говорю то что вижу, что следует знать разработчику.
Тебе нужны факты? Какие? 2х2=4, пойдёт?
Примеров? Руби, питон, джава - хорошие примеры инструментов?
Сравнения? Руби это хорошо в средних и небольших проектах, посколько скорость не велика, но количество инструментов зашкаливает(это к фактам вообще даже стоит добавить). На пайтоне мало инструментов, значительно меньше чем на руби. Графики надо?

Увы, в наше время часто выбирают неверные решения. Надо на роутер поставить веб-сервер с веб-приложением - люди используют руби с Sinatra, джаву. Какая нафиг джава и руби?! Там даже пайтон не факт что подойдёт, хотя он лучше всего подходит на такую роль, если смотреть высокоуровневые языки.
Я говорю что рельсы это хорошо, кто против? Давайте, говорите, я хочу пополнить свой список игнора.
Я говорю что питон это хорошо, кто против? Смелее!
Я говорю что для каждой задачи есть свой инструмент, что не может один язык сразу и везде быть лучшим инструментом, по крайней мере таких сейчас нет(а пайтон ближе всего, просто некоторых возможностей нет и инструментов). Кто против? Сразу в игнор добавлю.

tia
()
Ответ на: комментарий от anonymous

Я определился. Всё просто: в джанго есть костыли, которые позволяют делать одни и те же вещи, но разными путями. Свобода? Если ты считаешь свободой выбор каким страпоном тебя *бать, то ок, здесь есть неопределённость.

tia
()
Ответ на: комментарий от mashina

Ты просто генеришь высеры и пытаешься осмеять факты.

tia
()
Ответ на: комментарий от tia

Джанго - самый развитый веб-фреймворк на пайтоне, имеющий самую большую публику среди веб-фреймворков на пайтоне же. Просто он самый простой из веб-фреймворков на питоне и, как говорят некоторые люди, стремится быть аналогом RoR(что совсем не так, а даже если бы и было так, то получается оно отвратно, совсем не получается). Джанго тормозит, страдает неоднозначностью(что ласково называется «возможностью выполнить одну вещь многими путями», но это не RoR, здесь это неудачно, очень неудачно), имеет много костылей, неудачные реализации простых вещей и ORM, который хоть и работает быстрее SQLAlchemy, но является страшным гогном.

ололо толстячок, вот тебе мнение создателя Pylons (по крайней мере он так представился):

It really depends on the type of application you're building. Both frameworks were originally made to solve different problems. Despite how far they've both come since their creation its still very useful to keep in mind the problems they were created to solve because many of those choices have guided further development.

Django was made for newspaper sites, not just a single newspaper (publishing) site, but for making entire sites quickly. They generally had a staff that needed to start pushing content into the system ASAP, even before the public version of the site might be done. This is still clearly reflected in Django as it has a very complete user-friendly admin interface for the staff to begin entering content.

At the time Django was made, SQLAlchemy wasn't around, and SQLObject was kind of... lacking, so Django has its own ORM. It's still lacking in many ways compared to SQLAlchemy, but it'll work just great for alot of people's needs.

Django also has the concept of 'apps', which are just directories inside a Django project that do a specific function for the site. This reflects the original creators needs to quickly share components of a site with other sites they made. For example, quickly adding comments, or reviews, to another Django site.

While you can use SQLAlchemy, or other template languages such as Mako, in Django, many of Django's strengths (the existing 'apps' you can re-use, the admin interface, parts of the form library) go up in smoke as soon as you use SQLAlchemy instead of Django's ORM.

Just like the Django authors made Django to scratch their particular itch, I made Pylons to scratch mine.

In my experience, creating sites is a very small portion of their life-span. I actually spend significantly more time maintaining a web application, or adding features to an existing one. So the first thing I wanted in the framework was common places to put the 'basics' of a web application, so that it'd be easier to maintain, and that if other people knew Pylons they'd have an easier time jumping in to help maintain a Pylons app.

For all the sites I've built, they generally involve very different database schemas and data back-ends, with little in common. So sharing 'apps' like Django does just isn't a priority, nor is it feasible given how different each app will actually be (you can't share parts requiring a specific concept of how users are handled if different apps need to handle them differently).

I also needed something small, that wasn't trying to run the show for me. I want to be able to go in and determine how something is going to respond without hoping the framework 'lets' me do it. For this reason, a Pylons app is a bit different from most frameworks, in that the project itself builds the application object, making it easy to get in and tweak and change any core bit as needed.

So the question someone trying to choose should be asking themselves, is what are they trying to build? Because that's really the best way to determine the appropriate framework to use for the task.

Also, at the moment, the Pylons Book is 100% up to date with Pylons, while Django's book has been updated for version 1.1 of Django.

если надо - переведу

взято отсюда

shty ★★★★★
()
Ответ на: комментарий от tia

Для средних и небольших проектов использовать пайтон слишком сложно и просто не окупается. Проще использовать руби и рельсы.

бред, лучше писать на том что умеет использовать твоя команда, а на размер проекта - покласть

shty ★★★★★
()
Ответ на: комментарий от tia

Можешь не отвечать, и так понятно что я говорю с дубом.

друид детектед

shty ★★★★★
()
Ответ на: комментарий от tia

Это уже овер 9000ый раз, когда я вижу одного и того же анонимуса, усиленно пытающегося показать себя умным, но трусящего даже зарегистрироваться.

кольцевая, подумал Штирлиц (с)

shty ★★★★★
()
Ответ на: комментарий от anonymous

>Любой язык по итогу будет траслироваться в машинные команды.

...которые интерпретируются CPU => любой язык интепретируемый

annulen ★★★★★
()
Ответ на: комментарий от annulen

> ...которые интерпретируются CPU => любой язык интепретируемый

In computer programming, an interpreted language is a programming language in which programs are 'indirectly' executed («interpreted») by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then 'directly' executed by the host CPU. [*]

[*] http://en.wikipedia.org/wiki/Interpreted_language

anonymous
()
Ответ на: комментарий от anonymous

в современных процах большая часть иструкций реализуются с помощью микрокода, который по сути является программой. Разбор инструкций осуществляется последовательно, т.е. на лицо все признаки интерпретатора (out of order можно считать небольшим хаком в этом интерпретаторе)

annulen ★★★★★
()
Ответ на: комментарий от annulen

> в современных процах большая часть иструкций реализуются с помощью микрокода, который по сути является программой. Разбор инструкций осуществляется последовательно, т.е. на лицо все признаки интерпретатора (out of order можно считать небольшим хаком в этом интерпретаторе)

CPU это не программа.

anonymous
()
Ответ на: комментарий от shty

А вот ты теперь сам перечитай что пишу я и автор этого текста. Хорошенько подумай, а если ли разница? О чём говрит он, о чём говорю я.
Что ты хотел сказать? То, что один из контрибьютеров пайлонс не говорит что джанго - говно, а просто ласково называет его «хуита для газеток»?

tia
()
Ответ на: комментарий от shty

Идиот! Как так можно отвечать вообще не используя контекст, нести бред и гордиться этим? Твой аватар хорошо подчёркивает суть твоих сообщений.
Не о том речь идёт. Речь о выборе инструмента.
Если команда знает лисп, то это не значит что нужно писать на лиспе(считай это первым уроком).
На размер проекта НИКОГДА нельзя класть(а это второй урок).

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

tia
()
Ответ на: комментарий от tia

То, что один из контрибьютеров пайлонс не говорит что джанго - говно, а просто ласково называет его «хуита для газеток»?

иди подучи английский

//и, кстати, где там слово на букву х (хотя бы в контексте) ты нашёл?

Что ты хотел сказать?

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

shty ★★★★★
()
Ответ на: комментарий от tia

Твой аватар хорошо подчёркивает суть твоих сообщений.

мой аватар, в данном случае (!), вполне подчёркивает моё отношение к твоим сообщениям, можно даже сказать - выгодно оттеняет

Если команда знает лисп, то это не значит что нужно писать на лиспе(считай это первым уроком).

ога, надо обязательно писать на visual basic

На размер проекта НИКОГДА нельзя класть(а это второй урок).

в данном контексте МОЖНО (ну, у кого тут буквы толще выходят?)

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

спасибо Кэп :)

что сказать-то хотел? не вижу от тебя мощных патетических тезисов в защиту твоего высвиста, напомню:

Для средних и небольших проектов использовать пайтон слишком сложно и просто не окупается.

shty ★★★★★
()
Ответ на: комментарий от shty

Я даже не знаю куда тебя послать. К психологу, наверно.
Уважение? У тебя точно что-то не так с головой.

tia
()
Ответ на: комментарий от tia

Уважение? У тебя точно что-то не так с головой.

ну что-ж, раз толстый намёк для Вас тонковат, придётся пояснить - есть люди, которые разработали весьма удобные софтины (которые используются аццким количеством людей), так вот они о продуктах созданных друг другом, конкурирующих продуктах, отзываются с неизменным уважнением, отмечая что у каждого из этих продуктов есть свой фокус (в смысле таргет) и тут появляется tia и... tia? who the f*ck is tia?

//теперь ясно?

и по теме: прекрасно джанга подходит и для мелких и для средних и для крупных проектов и нет там ничего сложного, так что не надо п!, лучше программировать научись

shty ★★★★★
()
Ответ на: комментарий от tia

Я вижу что ты хочешь что-то сказать, но получается только газирование луж.

про то что у тебя получается только газирование луж я заметил, бро

предлагаю сконцентрированный вопрос:

не вижу от тебя мощных патетических тезисов в защиту твоего высвиста, напомню:

Для средних и небольших проектов использовать пайтон слишком сложно и просто не окупается.

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.