Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

“питончег” — improve yourself

Камрады, я вот смотрю, а на наших просторах как-то не складывается с «питонскими» курсами\тренигами:)

Какбэ вопрос — кто-то владеет информацией относительно «сабжа» в Киеве? Может кто-то из гуру сподобится на ряд семинаров или тренингов?

Thx!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

ни одних курсов по питону не видела.

П.С. нашла, Софтсерв во Львове проводит.

Pyhton еще может быть весьма удобен в решении задач «здесь и сейчас», например задачи Эйнштейна:
Solving «Who owns the Zebra» programmatically?
Заметьте, лучшее решение не на Прологе, хотя он тут в самый раз бы подошел.

Также с помощью Pyhton, как видно, несложно создавать удобные человеко-ориентированные DSL.

Я тоже не спец, но думаю как то так:


session.createCriteria(Insurance.class).add(Restrictions.like("insuranceName", "%a%")).setMaxResults(5);

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

res=orders.filter (order_date=today (), customer_office_address__like= «Шевченка» ) [: 3]

читается даже без знания питона и какой-то спицифической ORM

Ээээ... программисты перестали дружить с математикой и не встречались с понятием срезов? о_0 Посмотрите, как их записывают в других ЯП с матуклоном. Гарантирую, будете удивлены — довольно распространенная запись.

Посмотрите, как их записывают в других ЯП с матуклоном. Гарантирую, будете удивлены — довольно распространенная запись.

Да мне это не особо интересно. :)
Суть поста была в том, что:
То к чему ВЫ привыкли, не обязательно понятно ОСТАЛЬНЫМ.

Кстати, про понимание:

customer_office_address__like= «Шевченка»

customer_office_address__like — это имя колонки

или customer_office_address — это имя, а like — какой-то модификатор?

Второй вариант. После двойного подчеркивания идет модификатор __like __isnull __leq и вот тут с вами соглашусь даже я — это совершенно не очевидно и это таки надо учить. А вот про остальное я хотел сказать именно тоже самое, что вы. тока наоборот. Такая запись мне кажется очевидной даже для не знающих питон. Тут я могу быть плохим примером, все же питоном занимаюсь уже много лет (хотя, как мне помнится, когда впервые знакомился с синтаксисом питона практически рыдал от счьястья. таким самоочевидным он мне казался), но я специально тока шо провел эксперимент над своим знакомым пэхапэшником — скинул ему ту запись и попросил записать это на sql, какбуд-то это ОРМ. Он «угадал» все точно, тока тот самый __like не верно интерпретировал.

Он «угадал» все точно, тока тот самый __like не верно интерпретировал.

Ну вот.

Просто прошу Вас согласитесь

То к чему ВЫ привыкли, не обязательно понятно ОСТАЛЬНЫМ.

Кстати, вопрос: Что будет если у меня в базе будут 2 поля:

customer_office_address

и

customer_office_address__like

?

Это не стеб, мне и правду интересно, а лезть в доку джанги (я так понял это оно) мне лень.

Все просто :) Нельзя использовать двойное подчеркивание в именах полей.

А вообще, все же, речь идет вообще о синтаксисе питона, который просто прекрасен и позволяет как в стиле ООП программить, так и потрясающие однострочники строить. Я тут никому не доказываю, что питон может что-то такое, что другие не могу, а говорю, что у питона потрясающий синтаксис. Возможно, даже самый лучший синтаксис :) Постулаты питона — все объект, метапрограммирование, пожалуй полнейшая интроспекция и утинная типпизация — делают его уникальным языком по скорости разработки и читаемости получаемого результата.

Не вернут, посмотрите как работает hibernate criteria, он сгенерирует limit или его аналог.

Мені трохи проблематично подивитись, я з hibernate не працюю.
Але якщо б хтось тут запостив аналогодного рядка коду на Пітоні, який я привів, то було б цікаво глянути.
Я розумію, що досягнути того самого результату можна на буль-якій мові.

Питання в зручності.


Цікаво як?
І до чого тут оо?
Більшість мов, на етапі filter () вернуть з бази повний список даних.

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

Не вернут, посмотрите как работает hibernate criteria, он сгенерирует limit или его аналог.

Про LINQ — я з ним не знайомий, але виглядає так, що то в будь-якому разі гірший варіант.
Навіть якщо там є співмірні можливості, то треба прийняти до уваги, що ця технологія
1. Платна

2. Не крос-платформна

Ну так это возможно сделать на всех оо языках, даже на С++.

Цікаво як?
І до чого тут оо?
Більшість мов, на етапі filter () вернуть з бази повний список даних.

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

Ну так это возможно сделать на всех оо языках, даже на С++.

Конечно можно. Что питон, что си, что кресты обычные тьюринг-полные языки. Просто концепция «все объект» с большим наслоением функциональщины и утинная типизация позволяют писать красиво, а не строить мозгодробительные комбинации для STL, что бы потом новый человек через год без веществ не смог осилить ваш код. Вот и вся разница :)

Мы жертвуем скоростью исполнения в угоду скорости написания/модификации.

той приклад був не про SQL, а про передачу параметрів функції у вигляді об’єкта/списку.

Я мав на увазі, що в пітонівському прикладі
res=orders.filter (order_date=today (), customer_office_address__like= «Шевченка» ) [: 3]
не тільки параметри функції можуть оброблятися, але і слайс після її виклику ([: 3])

І замість того, щоб витягувати весь список, а потім відбирати три перших елементи, пітонівський код може вияснити, що елементи після 3 не будуть використовуватися, і додати «limit 3» до SQL.


Так, в Джаваскріпт це непогано виглядає, але слайс наскільки я зрозумів, він обробити не може.
Тобто в SQL не буде додано «limit 3»

Все одно — як на мене, Пітонівський синтаксис трохи зручніший.

той приклад був не про SQL, а про передачу параметрів функції у вигляді об’єкта/списку.

Про SQL я навидив приклад LINQ, в якому начебто багато хороших можливостей

В JavaScript наприклад теж часто так роблять:

Так, в Джаваскріпт це непогано виглядає, але слайс наскільки я зрозумів, він обробити не може.
Тобто в SQL не буде додано «limit 3»

Все одно — як на мене, Пітонівський синтаксис трохи зручніший.


с «питонскимих» курсов\тренигов точнее

вы так хорошо выучили Питон без них? Может хоть книгу или уроки для топикстартера посоветуйте?:)

Я не дуже спеціаліст по Пітону:)
Так — використовую для своїх задач.
З того що я читав, найкраще для початку напевно — книжка Guido van Rossum.
В мене вона друкована (рос. переклад), але напевно десь є в інеті.

Взагалі в інеті багато док, є декілька хороших конспектів, але їх напевно треба читати після книжки.

Мне их оф. мэнюала вполне хватает.

Да, он по крайней мере всегда up-to-date.


с «питонскимих» курсов\тренигов точнее

вы так хорошо выучили Питон без них? Может хоть книгу или уроки для топикстартера посоветуйте?:)

Мне их оф. мэнюала вполне хватает.


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

В JavaScript наприклад теж часто так роблять:

jQuery.fjFunctionQueue({
        interval: 1,
        onStart: function(){ alert("start")},
        onComplete: function(){alert("complete!"},
        autoStart: false,
        tick: function(index, func) {func();},
});

- передається 1 параметр — об’єкт в {}

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

Цікаво чи таке можна зробити на Джаві і як воно буде виглядати.

А в.NET-а є таке en.wikipedia.org/...ntegrated_Query

Как то перешли на другую тему (с статической типизации).

с “питонскимих” курсов\тренигов точнее

вы так хорошо выучили Питон без них? Может хоть книгу или уроки для топикстартера посоветуйте?:)

Тут много зависит от личных предпочтений/способностей/специфических отличий в обучении. Кому-то курсы лучше — можно спросить, кому-то книгу прочесть — есть о чем подумать, кому-то — туториалы, что бы ручками сразу все попробовать. Люди разные: аудиалы, визуалы, кинестетики... Я, к примеру, доклады и подкасты не перевариваю, они мне кажутся жутко медленными — зачем кого-то слушать 20-30 минут, когда я за это время с сотню страниц прочту? Возможно, топикстартеру нужны именно курсы, и книги ему никакого профита не дадут?

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

А я и не использую, там где мне джавы с головой...

А спор в том, что Эндрю утверждает, что в питоне существуют некие уникальные фичи, вот и интересно выяснить, что за фичи.

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


Наприклад в мене є таблиця orders і мені треба вибрати звідти перших три замовлення за сьогодні по адресах, котрі починаються з стрічки «Шевченка».
На Пітоні це можна зробити якось так:
res=orders.filter (order_date=today (), customer_office_address__like= «Шевченка» ) [: 3]
Тобто функція filter розглядає назви параметрів і розуміє, що саме треба відібрати.
Потім враховується інформація про те, що з результуючого списку я буду відбирати тільки перших 3 записи.
На цьому етапі генерується SQL, щось типу
select * from orders join offices where address like «Шевченка%» limit 3
і йде на виконнання в серевер бази.
Цікаво чи таке можна зробити на Джаві і як воно буде виглядати.

Как то перешли на другую тему (с статической типизации и интроспекции). Ответ на ваш вопрос — примером подобного подхода можно рассматривать hibernate criteria.

Напевно про те, що це зробити непросто:)
Якщо взагалі можливо після JIT компіляції

А мне кажется что это просто никому не нужно. В чем принципиальная проблема сделать такое на джава?

Передавать асоциативный список с названиями и значениями параметров, и в “рантайме узнавать их имена и принимать решения, что с ними делать” можно в любом языке, имеющем структуру данных “список”.

Можна конкретний приклад?

І взагалі — мова йшла про можливості інтроспекції.


Приведите пример, а то у меня в голове сразу несколько идей о том что вы хотели сказать.
Наприклад в мене є таблиця orders і мені треба вибрати звідти перших три замовлення за сьогодні по адресах, котрі починаються із стрічки «Шевченка».
На Пітоні це можна зробити якось так:
res=orders.filter (order_date=today (), customer_office_address__like= «Шевченка» ) [: 3]
Тобто функція filter розглядає назви параметрів і розуміє, що саме треба відібрати.
Потім враховується інформація про те, що з результуючого списку я буду відбирати тільки перших 3 записи.
На цьому етапі генерується SQL, щось типу
select * from orders join offices where order_date=20100805 and address like «Шевченка%» limit 3
і йде на виконнання в сервер бази.

Цікаво чи таке можна зробити на Джаві і як воно буде виглядати.

І ще — можна приклад, як на джаві продиференціювати аналітично функцію, задану в коді?
Я не могу привести этот пример, о чем это говорит?
Напевно про те, що це зробити непросто:)

Якщо взагалі можливо після JIT компіляції.


Про інтроспекцію — в Пітоні можна в функцію передати довільну кількість будь-яких параметрів.
І в рантаймі взнати їх імена, значення і прийняти рішення, що з ними робити.

А в Джаві так можна?

Использование Питона отучает думать? Передавать асоциативный список с названиями и значениями параметров, и в “рантайме узнавать их имена и принимать решения, что с ними делать” можно в любом языке, имеющем структуру данных “список”.

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

Опять мелочитесь, лучше тысячу, нет 10, 000, одна священная строка на питоне может заменить годичный труд 100-а джаверов...

xkcd.com/353


Бажано щоб ця помилка виникла ще в девелопера, ну в крайньому разі — в QA.

Якщо вони розробляють так, що віддають замовнику код, який самі толком не запускали, то навряд чи і статична типізація їм поможе.

Я не хочу спорить на эту тему, так как видимо из-за отсутствия опыта промышленной разработки у вас идеалистическое представление о ее процессе, не все ошибки можно отловить во время тестирования, а статическая типизация это один их факторов существенно сокращающий их количество.

А далі що?
В рантаймі обробити неправильні параметри?

Я не понял мысли, очевидно что в коде метода где то будет что то вроде o.toString ();

Про інтроспекцію — в Пітоні можна в функцію передати довільну кількість будь-яких параметрів.
І в рантаймі взнати їх імена, значення і прийняти рішення, що з ними робити.

А в Джаві так можна?

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

І ще — можна приклад, як на джаві продиференціювати аналітично функцію, задану в коді?

Я не могу привести этот пример, о чем это говорит?

Опять мелочитесь, лучше тысячу, нет 10, 000, одна священная строка на питоне может заменить годичный труд 100-а джаверов...

:)
Треба напевно уточнити — я не агітую писати на Пітоні все що завгодно.
І статична типізація дійсно має свої переваги:)
І є фреймворки/бібліотеки, які підходять для певних задач.
Я і сам би напевно не писав дуже великий проект на Пітоні.
Але є проекти, де він зручний.

Я наприклад різні утіліти сам для себе пишу майже виключно на Пітоні.


В більшості випадків таку помилку можна спокійно обробити в рантаймі і ніяких принципових проблем з цим нема.
Что значит обработать? Программа ведь работать не будет?

Якщо є можливість сконвертувати в щось підходяще, то буде.

Какой то человек положит в параметр не того типа, где то выскочит эксепшн, и человеку выдадут ошибку: типа прийдите позже?
Бажано щоб ця помилка виникла ще в девелопера, ну в крайньому разі — в QA.
Якщо вони розробляють так, що віддають замовнику код, який самі толком не запускали, то навряд чи і статична типізація їм поможе.

Хоча в принципі звичайно статична типізація має свої переваги, але не треба з неї робити культ:)

А от необхідність мати 20 функцій типу display_int, dislay_string, dsplay_complex, display_real і т.д., замість одної реально збільшує і код і затрати на розробку.
А необходимости нету, можно написать просто display (Object o) например на джава.
А далі що?

В рантаймі обробити неправильні параметри?

Опять мимо, и в Java и в С# есть интроспекция.
Про інтроспекцію — в Пітоні можна в функцію передати довільну кількість будь-яких параметрів.
І в рантаймі взнати їх імена, значення і прийняти рішення, що з ними робити.
А в Джаві так можна?

І ще — можна приклад, як на джаві продиференціювати аналітично функцію, задану в коді?

Та й взагалі слабо собі уявляю, як в статичній мові цю продиференційовану функцію в рантаймі злінкувати із змінними. Там напевно роботи буде в 100 раз більше ніж на Пітоні.

Опять мелочитесь, лучше тысячу, нет 10, 000, одна священная строка на питоне может заменить годичный труд 100-а джаверов...


Крім того є серйозніші проблеми.
Наприклад в Пітоні, якщо в мене є функція, яка описана і використовується в програмі, то я можу наприклад її аналітично продиференціювати без проблем (код доступний по інтроспекції)
А на мовах статичної типізації мені треба буде ще раз описати її як стрічку, розпарсати в рантаймі і тільки тоді я зможу продиференціювати (якщо ще в мене буде ліба, яка це може зробити)

Це не просто купа лишньої роботи, але і принципове погіршення архітектури програми (одна функція дублюється в двох місцях — при її зміні треба не тільки робити подвійну роботу, але ще і можна зробити помилку, задавши функцію по-різному, а знайти цю помилку може бути непросто)

Опять мимо, и в Java и в С# есть интроспекция.


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

Что значит обработать? Программа ведь работать не будет? Какой то человек положит в параметр не того типа, где то выскочит эксепшн, и человеку выдадут ошибку: типа прийдите позже?

А от необхідність мати 20 функцій типу display_int, dislay_string, dsplay_complex, display_real і т.д., замість одної реально збільшує і код і затрати на розробку.
А необходимости нету, можно написать просто display (Object o) например на джава.

Вообще очевидно из ваших коментов что вы не понимаете о чем спорите...

по 10 Мбайт

Треба врахувати що 1К на Пітоні це десь 5К на С.

Тада ясно.


Я працював в конторі, де повний чекаут коду був більший ніж гігабайт. Більшість — на Пітоні.

Чисто личный интерес, не относящийся к теме: Можете поподробнее рассказать?

Особливо детальніше мабуть не можу:)
В двох словах — велика контора, девелоперів близько сотні.
Основна тема — складний аналіз неструктурованих даних (тексти, зображення і т.п.)
Багато проектів, в основному працюють на стороні замовників.
Деякі проекти внутрішні, зокрема веб-інтерфейси до всяких систем обробки даних.
Тобто гігабайт коду — це умовно кажучи, 30 проектів по 10 Мбайт при умові що кожен проект існує у вигляді декількох окремих версій (продуктів)

В основному код на Пітоні. Треба врахувати що 1К на Пітоні це десь 5К на С.

Я працював в конторі, де повний чекаут коду був більший ніж гігабайт. Більшість — на Пітоні.

Чисто личный интерес, не относящийся к теме: Можете поподробнее рассказать?

Запускав як правило на ніч на одному блейді — 4 процеси.

Відпрацьовує як правило за 1−3 години, але то залежить від задачі.

А потом еще собрать данные со всех процессов.

Задача которую я привел реальна, и приложение написанное “на коленке” на 32-разрадной Java (1Гиг памяти) занимает 1−1, 5 часа (зачастую ближе к часу), правда оно кроме эксепшенов еще и информацию, от счетчиков производительности собирает. Насколько корректно такое сравнение не знаю, но вот такие цифры.


Тогда такой вопрос:
Человек придумал суперэффективный алгоритм, реализовал его на медленном окружении (один из недостатков питона) и отдает его в продакшэн?
Так.
В більшості випадків швидкості вистачає.
Якщо в продакшені швидкість виявиться недостатньою, то запускається на кластері.
Якщо це не допоможе, то переписується на С.
І взагалі — не треба абсолютизувати проблему швидкодії.

Багато задач на Пітоні йдуть з такою ж швидкістю як на С.

Или отдает его другим людям которые “просто переписывают его на C” (не обязательно C, на языке с более быстрым окружением) или сам реализовывает на этом языке.
Буває і так і так.

Але якщо реалізував сам, то потім код передається девелоперам, вони його переглядають, якщо хочуть — переписують і далі вони за нього відповідають.

Несомненно, у питона есть своя ниша, но на мой взгляд — это в основном fun (небольшое сайтики, админские скрипты, сборка проектов).

Я працював в конторі, де повний чекаут коду був більший ніж гігабайт. Більшість — на Пітоні.

Что касается прикладных программ с которыми я сталкивался, например Exaile, то они могут иметь хороший функционал, но при этом безбожно тормозят и глючат, на чуть более чем стандартных данных.
Я тут подумав — я сам якось програмами на Пітоні взагалі не користуюся:)
Щось їх дійсно мало на десктопах. Напевно мова нова і занадто відкрита як для комерційних вендорів.
Хоча веб-сайти на Пітоні є. Там все одно до коду не доступишся.

Але сам для себе я написав багато всяких програм і вони для мене дуже корисні.

Реальная задача: Каталог, в нем 30−31 файл по 5−8 Гиг каждый, вычленить все эксепшены.
Для питона, в котором нет многопоточности, это нормальная задача?
Я не дуже зрозумів суть задачі, але в мене були наприклад задачі типу 4 файли по 30 Гігабайт.
Запускав як правило на ніч на одному блейді — 4 процеси.
Відпрацьовує як правило за 1−3 години, але то залежить від задачі.
Швидкість роботи як правило не принципово відрізняється від С.
Багатопоточність в Пітоні ніби є, але не дуже добра, я нею не користувався.
Як на мене, краще запустити декілька процесів.
Зокрема це єдиний спосіб розпаралелити роботу на кластері.
Треди ж працюють тільки в границях конкретного блейда.
А в мене були кластери по 20 блейдів.

І пам’ять тредів обмежена.

Можно ли скрипт запустить на продакшен сервере или придется копировать в другое место и там анализировать?
В мене були окремі кластери для досліджень.
Але в разі потреба запускав і на продакшені.
nice 10

І ніяких проблем:)

Несомненно, у питона есть своя ниша, но на мой взгляд — это в основном fun (небольшое сайтики, админские скрипты, сборка проектов).

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

Для питона, в котором нет многопоточности, это нормальная задача? Можно ли скрипт запустить на продакшен сервере или придется копировать в другое место и там анализировать?

Я бы копировал в другое место безотносительно питон/не питон, это раз. А два, если разовая задача, то делал бы на чем угодно. На CL, например. Там образы можно сохранять, для таких задач прикольно. Но и на питоне (равно как и перле,...) было бы хорошо. Если это логи, то там строковые операции + регекспы, работать должно нормально. Если не разовая, то смотрел бы в сторону Hadoop, наверное.

Власне є такі випадки, де “написати алгоритм” — це 99% роботи.

В реальних комерційних розробках нових алгоритмів все значно складніше.

Часто там нема “правильного” алгоритму взагалі.

Тогда такой вопрос:
Человек придумал суперэффективный алгоритм, реализовал его на медленном окружении (один из недостатков питона) и отдает его в продакшэн?
Или отдает его другим людям которые “просто переписывают его на C” (не обязательно C, на языке с более быстрым окружением) или сам реализовывает на этом языке.

Несомненно, у питона есть своя ниша, но на мой взгляд — это в основном fun (небольшое сайтики, админские скрипты, сборка проектов). Что касается прикладных программ с которыми я сталкивался, например Exaile, то они могут иметь хороший функционал, но при этом безбожно тормозят и глючат, на чуть более чем стандартных данных.

10 ТБ на ext4 практично не можливо

Да по поводу 16Тбайт, я загнул. Реальная задача: Каталог, в нем 30−31 файл по 5−8 Гиг каждый, вычленить все эксепшены.

Для питона, в котором нет многопоточности, это нормальная задача? Можно ли скрипт запустить на продакшен сервере или придется копировать в другое место и там анализировать?

На питон есть многопоточность — ее просто надо уметь готовить. Стандартные алгоритмы в лоб из явы здесь будут давать значительно просидание производительности.

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

выходит, он нужен далеко не всем, но это не повод для его неприятия.

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


Максимальный размер файла в ext4 16Тбайт (если я все правильно помню). Задача:
розпарсати текстовий файл і порахувати, скільки раз яке слово зустрілося в файлі розміром 16Тбайт.
Якщо це була іронія, то я її не зрозумів.
Я займався подібними (тільки значно складнішими) задачами на Пітоні.
Розміри датасетів були близько 10 ТБ.
Правда це був NFS, а не ext4.

Я не спеціаліст в файлових системах, але в міру мого розуміння, реалізувати 10 ТБ на ext4 практично не можливо.


математики — это математики, а программисты — это программисты
Це дещо застаріле бачення питання.
Це колись математичний алгоритм розроблявся на папері, а потім реалізовувався в коді.

Зараз багато задач на папері вже не розв’язуються взагалі.

Как должно выглядеть решение такой задачи:
1) Физик (если я правильно помню, что такое уравнение Шредингера), или сам или с помощью математика, написать алгоритм решения и передать его программисту

Власне є такі випадки, де “написати алгоритм” — це 99% роботи.

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

А поділ на математиків і програмістів не завжди актуальний.

Все же давайте не отклонятся от темы. Все примеры которые вы привели, сводятся к созданию прототипов “на коленках”, а не к промышленным решениям.
Не треба недооцінювати прототипи.
Інколи отримати прототип — це 99% роботи.

Звичайно є також інші типи задач.

Сформулирую вопрос так:
За какое время написана математиком функция решения уравнений Шредингера вычислит 1К уравнений? Быстрее чем функция написанная программистом на C?
В багатьох випадках швидкість ролі не грає (коли вона і так достатня).

Є також випадки, де розв’язок не потрібно повторювати 1000 раз.

Где вероятность ошибки больше: когда код пишет не профессиональный программист (математик), или когда код пишет профессиональный программист по алгоритму составленному профессиональным математиком (или спецом в данной области), или составленному с его слов.
Складно сказати в загальному. Є різні випадки.
До речі — таке враження, що у Вас трохи спрощене уявлення про розробку таких речей.
Приблизно як про рішення диф.рівняння методом Рунге-Кутти.
Тобто берем підручник, читаєм правильний алгоритм і кодаєм.
Це звичайно існує, але то є певний вид проектів.
В реальних комерційних розробках нових алгоритмів все значно складніше.

Часто там нема “правильного” алгоритму взагалі.

2 no pasaran:
Всякую инфраструктуру делаю. Много разных серверов, скрипинга, очереди, задачи и пр. В последнее время еще и web добавился (имхо минимум две трети питонистов — это веб программмеры). Одна из топ-новостей: openstack — инфраструктура облачных вычислений, зааутсорсеная rackspace. Там питон на питоне и питоном погоняет.
SimPy, кстати, использую, имитационное моделирование — любимая и приятная тема. Я люблю читать исходники, если они нормальные. Бывает, разбираешься быстрее, чем по документации. Так вот SimPy прочитать весь от начала до конца можно за вечер. Она простая и маленькая. Но тут не надо с профессиональным софтом меряться. Жрет памяти недопустимо много, да и все ж, как ни крути, довольно медленный интерпретатор. Но если в модели объектов тысячи, а не миллионы, то самое оно.

По поводу всего срача, да ничем питон не лучше. Я вообще нифига не питон программист. Исторически C, C++, а вообще CL больше нравится, а питон надоел уже жуть как. Но как ни возьмись за какую задачу — смотришь — на чем бы ее сделать, чтобы лучше всего было по параметрам простоты, удобства сопровождения, скорости разработки, понятности — в каждом конкретном случае почему-то чаще Питон рулит. Не хватает скорости — модули на C писать легко, ну и варианты вроде cython тоже есть, хотя мне проще бывает сразу на С написать, чем думать какая версия cython что поддерживает и пр.

Найпростіший приклад — розпарсати текстовий файл і порахувати, скільки раз яке слово зустрілося.

Максимальный размер файла в ext4 16Тбайт (если я все правильно помню). Задача:

розпарсати текстовий файл і порахувати, скільки раз яке слово зустрілося в файлі розміром 16Тбайт.

не здатна аналітично проінтегрувати рівняння Шредінгера для кулонівського потенціалу.

Повторяю:

математики — это математики, а программисты — это программисты

Как должно выглядеть решение такой задачи:
1) Физик (если я правильно помню, что такое уравнение Шредингера), или сам или с помощью математика, написать алгоритм решения и передать его программисту
2) Программист должен запрограммировать этот алгоритм, так что бы тот выполнялся как можно быстрее и потреблял минимум ресурсов и отдать программу физику или математику.
Все же давайте не отклонятся от темы. Все примеры которые вы привели, сводятся к созданию прототипов “на коленках”, а не к промышленным решениям.
Сформулирую вопрос так:
За какое время написана математиком функция решения уравнений Шредингера вычислит 1К уравнений? Быстрее чем функция написанная программистом на C?

Где вероятность ошибки больше: когда код пишет не профессиональный программист (математик), или когда код пишет профессиональный программист по алгоритму составленному профессиональным математиком (или спецом в данной области), или составленному с его слов.


sage-4.5.1.tar meta 294.10 MB
И это, я так понял, базовая инсталляция сорсы базовой инсталляции.
Ну Sage — це монстр:)
Таке враження, що там зібрали все, що людство змогло придумати в математиці:)

Є простіші речі, наприклад SymPy, як вже написав crypto5.

медленные реализации, отсюда и возможные доп затраты на железо;
Проблема має місце і носить до певної міри принциповий характер.
Через динамічну типізацію швидкість буде відносно повільна при будь-якій реалізації.
Але мій особистий досвід такий:
1. Для задач, які не описуються поінтерами, швидкодія Пітона приблизно така ж, як С.
Найпростіший приклад — розпарсати текстовий файл і порахувати, скільки раз яке слово зустрілося.
2. Затрати на залізо набагато менші, ніж виграш від швидкості розробки.
3. Більшість задач мають достатню швидкість. Тобто якщо навіть переписати на С і пришвидшити в 10−100 раз, практично це нічого не дасть, або навіть буде взагалі непомітно для користувача.

4. Вузькі місця можна виділити в окрему програму, або написати С-шну бібліотеку і підлінкувати в Пітон.

* динамическая типизация усложняет его использование на больших и долгоживущих проектах, хотя для стартапов, наверно, нормально;
Так, є різні типи проектів, для деяких напевно не підходить.

Але я бачив великі проекти на Пітоні.

* неопределенность с поддержкой, версия 3 вроде как заморожена и далеко не факт, что не придется переписывать код при переходе с 2 на 3.
Я не відслідковую це детально, але наскільки я знаю 3.0 розроблялася для того щоб додати всі нові фічі (вже закінчена), а 3.1 — переписування деяких повільних фіч на С, для збільшення швидкості. Ніяких проблем з їх розробкою нема, наскільки я знаю.
Принципово 2.х і 3.х мають однакові можливості.
Різниця тільки в деталях синтаксису. Тому переходити, чи ні — це справа особистого смаку. Ніякої спішки з цим нема. Я сидів на 2.4 десь 3 роки після того, як він перестав девелопатися. Потім перейшов на 2.6.5 за 1 день без ніяких проблем.
Між 2.х і 3.х в основному 2 зміни — оператор print замінили на функцію, тобто треба буде пододавати дужки всюди де він використовувався.
Стрічка по-замовчуванню в 3.х буде Юнікодівська, а 2.х була 8-бітна.
Це звичайно буде вимагати детального перегляду коду для тих задач, де була інтернаціоналізація.
Але в мене наприклад завдяки динамічній типізації подібні речі фіксаються на ходу без видимих проблем.
Є автоматичний конвертор сорців (я не пробував)

Так що ті, що писали математику, обробку даних і т.п. (без інтернаціоналізації) можуть взагалі нічого не помітити:)

Вы не поверите, у кучи народу. Для бизнеса Matlab интересен как раз тем что он платный!

Я ж не заперечую, що є люди, для яких Матлаб підходить краще.

Я просто пояснюю, що є інші, для яких він не підходить.

Зачем математику сорци либ, я не понимаю.

Наведу приклад.
Ні одна комерційна ліба (наскільки я знаю), не здатна аналітично проінтегрувати рівняння Шредінгера для кулонівського потенціалу.
Отже якщо є бажання це пофіксати, то єдиний вихід — брати сорци і доробляти.

Або писати з нуля, якщо конкретна мова програмування не має таких ліб взагалі.

1. Це якраз матлаб неясно як працює — сорців нема. А як працюють ліби, до яких є сорци — це якраз ясно набагато краще

Обычно в таких случаях пишут: “Тру гентушник дедектед”. Я сам сторонник Open Source, но этот довод убит.

2. А в кого є гроші, щоб купляти матлаб?

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

3. Не треба перебільшувати можливості матлаба і т.п...
Якщо б вони вміли розв’язувати всі задачі, то багато людей сиділи би без роботи (в т.ч. всі математики)

Тому мати сорци бібліотеки — принципово важливо.

Суть в том что у Matlab возможностей значительно больше чем вы можете себе представить, просто конкретно вам и мне нужны максимум 1−2% (цифры с потолка). Второй момент, математики — это математики, а программисты — это программисты. Зачем математику учить довольно сложный и мощный язык, такой как Python, язык Matlab’а значительно проще для человека не связанного с программированием, при этом для человека который работал с другими языками, он кажется убогим (уточнение: для меня конкретно).
Зачем математику сорци либ, я не понимаю.

Мы все еще о Python или о математическом ПО?

Язык матлаба не убог, а очень хорош для работы с матрицами. После с++ на реализацию решения задач в трехмерном пространсвте в матлаб уходит намного меньше времени. После матлаба когда надо было писать дальше код, перешел на питон — интерфейс numpy полностью копирует матлаб, что очень ускоряет работу.


Ну например возможность задать метод принимающий только список чисел, что бы никакая индюшка туда не положила строку, и мы не словили runtime ошибку.
Спірний аргумент.
В більшості випадків таку помилку можна спокійно обробити в рантаймі і ніяких принципових проблем з цим нема.
А от необхідність мати 20 функцій типу display_int, dislay_string, dsplay_complex, display_real і т.д., замість одної реально збільшує і код і затрати на розробку.
Крім того є серйозніші проблеми.
Наприклад в Пітоні, якщо в мене є функція, яка описана і використовується в програмі, то я можу наприклад її аналітично продиференціювати без проблем (код доступний по інтроспекції)
А на мовах статичної типізації мені треба буде ще раз описати її як стрічку, розпарсати в рантаймі і тільки тоді я зможу продиференціювати (якщо ще в мене буде ліба, яка це може зробити)
Це не просто купа лишньої роботи, але і принципове погіршення архітектури програми (одна функція дублюється в двох місцях — при її зміні треба не тільки робити подвійну роботу, але ще і можна зробити помилку, задавши функцію по-різному, а знайти цю помилку може бути непросто)

Та й взагалі слабо собі уявляю, як в статичній мові цю продиференційовану функцію в рантаймі злінкувати із змінними. Там напевно роботи буде в 100 раз більше ніж на Пітоні.


То есть все сводится к студентам, которые пишут непонятно как работающие библиотеки, потому что у них нету денег на матлаб?
1. Це якраз матлаб неясно як працює — сорців нема. А як працюють ліби, до яких є сорци — це якраз ясно набагато краще.
2. А в кого є гроші, щоб купляти матлаб?
Звичайно, якщо не розробляти самому, а кодувати з 9 до 18 за гроші, то можна сказати замовнику — плати за матлаб. А потім віддати продукт в 1 екземплярі і забути.
Але якщо розробляти самому і співпрацювати з іншими людьми, то потрібна буде ліцензія не тільки для себе, але і на кожен сервер і ще для кожної людини, яка працює локально (вдома наприклад).
Хто це все захоче оплачувати?
І які гарантії, що в нього не закінчаться гроші?
І хто захоче цим користуватись, знаючи що все це може пропасти, бо в когось закінчаться гроші?
Наука — це не комерційний проект, який робиться 5 місяців і потім забувається назавжди.
3. Не треба перебільшувати можливості матлаба і т.п...
Якщо б вони вміли розв’язувати всі задачі, то багато людей сиділи би без роботи (в т.ч. всі математики)

Тому мати сорци бібліотеки — принципово важливо.

ТС, почитай про Common Lisp, а тогда уже можешь бубнить тут про Питон и прочее. Или не бубнить уже.

Наверное он имеет в виду sympy, она 3 мега весит, правда ее возможности по сравнению с матлабом неочевидны.

Коли matlab і mathematica будуть безплатними, багатоплатформними, займати 20М і інсталитись 1 хв., тоді я прийму цей аргумент.

sage-4.5.1.tar meta 294.10 MB

И это, я так понял, базовая инсталляция сорсы базовой инсталляции.

На Пітоні пишуться достатньо великі речі.

Простите за назойливость, но мне бы примерчик (гуглить впадло)
Еще раз повторюсь:
Python — классный язык, НО он не готов к “промышленному” использованию, по причинам:
* медленные реализации, отсюда и возможные доп затраты на железо;
* динамическая типизация усложняет его использование на больших и долгоживущих проектах, хотя для стартапов, наверно, нормально;

* неопределенность с поддержкой, версия 3 вроде как заморожена и далеко не факт, что не придется переписывать код при переходе с 2 на 3.

Рекоменду для ознакомления Google App Engine. Один вариантов на питон. Предоставляет возможность написания легкокласстеризуемой инфраструктуру на питон. Конечно, это не «особая» заслуга питон, там можно на яве и го еще писать.... Но так и я не говорю, что все гавно — тока питон в белом, а говорю, что питон мощный, легкоизучаемый, высокоуровненый, мультипарадигменный язык общего назначения. На нем можно написать все, что угодно, а для некоторых задач он даже подходит лучше, чем другие языки.

о каких преимуществах идет речь?

Ну например возможность задать метод принимающий только список чисел, что бы никакая индюшка туда не положила строку, и мы не словили runtime ошибку.

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

Или мы пишем одну функцию, которая делает со списком шо нам надо, а в случае неудачи выбрасывает эксцепшин, дескать «не пиши сюда больше это!». И мы сообщаем об этом юзеру. Вы же в своих программах делаете проверки на соблюдение типов? Так вот, дактайпинг питона. позволяет нам это делать в месте, где эти данные используются. а не где-то там совершенно в другом месте кода, который еще найти надо.

Вы говорите о таких преймуществах, которые вам позволяют писать красивые алгоритмы на вашем языке, а я говорю, что на питон надо писать на питоне, а не переписать ява программу на синтаксисе питона. И в этом случае вы получите красивую, легкочитаемую, расширяемую, поддерживаемую программу. Так еще и оказывается, что она короче и написана была быстрее... ;)

> Когда база кода больше очень ощущается преимущества статической типизации.

о каких преимуществах идет речь?


Дійсно, може і п’ять:)

Більшість бібліотек для аналітичного інтегрування диф. рівнянь розроблялися напевно більше одного року.

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

Не треба перебільшувати.

На Пітоні пишуться достатньо великі речі.

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

Коли matlab і mathematica будуть безплатними, багатоплатформними, займати 20М і інсталитись 1 хв., тоді я прийму цей аргумент.

То есть своей фразой:

А у випадку прикладу з диф.рівнянням — більшість інших мов банально не мають бібліотеки, якій можна передати формулу диф.рівняння і отримати аналітичний розв’язок

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


Якщо Пітон дозволяє в три рядки запрограмувати задачу, яка на інший мові буде вимагати рік кодування, то це погано?

Год как то мало, может сразу пять?...

Дійсно, може і п’ять:)

Більшість бібліотек для аналітичного інтегрування диф. рівнянь розроблялися напевно більше одного року.

Это она быстрее до первых 300 строк кода и когда на проэкте 1−2−3 человека.

Не треба перебільшувати.

На Пітоні пишуться достатньо великі речі.

Когда база кода больше очень ощущается преимущества статической типизации.

Звичайно в деяких інших мов є свої переваги.
Але я ж не доводжу, що Пітон — найкраща мова для всіх випадків.

Я привів деякі конкретні приклади, от і все.

Конечно конечно, matlab и mathematica имеют АПИ к всем популярным языкам.

Коли matlab і mathematica будуть безплатними, багатоплатформними, займати 20М і інсталитись 1 хв., тоді я прийму цей аргумент.

А еще гугл пишет на джаве и еще больше на С++.

Так я ж і не кажу, що Джава і С++ — це “just for fun”.

Якщо Пітон дозволяє в три рядки запрограмувати задачу, яка на інший мові буде вимагати рік кодування, то це погано?

Год как то мало, может сразу пять?...

В типовому випадку — коду в декілька раз менше, розробка в декілька разів швидша.

Это она быстрее до первых 300 строк кода и когда на проэкте 1−2−3 человека. Когда база кода больше очень ощущается преимущества статической типизации.

А у випадку прикладу з диф.рівнянням — більшість інших мов банально не мають бібліотеки, якій можна передати формулу диф.рівняння і отримати аналітичний розв’язок

Конечно конечно, matlab и mathematica имеют АПИ к всем популярным языкам.

І чому наприклад Гугл пише на Пітоні?

А еще гугл пишет на джаве и еще больше на С++.

так splunk здатний систематизувати гігабайти логів на день, а бібліотека pymorphy дозволить елегантно провідмінювати “кутявые бутявки”.

Splunk на С++ вроде написан, а кластеризируется с помощью джавовского хадупа.


Вы сравниваете низкоуровневый язык и язык высокого уровня.

Ок, нехай буде Python vs. C

С таким же успехом можно найти доку по Matlab, где описывается подключение его к Java, и сказать что Java — супер язык.

Можна, і в певному контексті це може бути правильно.

Тот факт, что вы нашли библиотеки под конкретную задачу для языка А, не значит что нет аналогов этих библиотек (а иногда и значительно более эффективных аналогов) под язык Б.
Може і не значить. А може і значить:)

http://pypi.python.org/pypi? %3Aaction=browse

Решении дифуров по уравнению в строчном виде? Кому нужна такая задача, кроме студентов которые забивали на пары, и не способны сдать расчетку?
Насправді потрібно багато кому (в масштабах світу).
Але я навів це як приклад вправи для вивчення мови і оцінки переваг відносно інших мов.

А взагалі такі сервери є, тільки складніші (наприклад Sage)

Не эффективнее. А быстрее состряпать шото работающее.

З комерційної точки зору, ефективність = результат/час

ИМХО, на сегодняшний день Python — это язык, только для fun.
Чому?
І які мови тоді серйозні?

І чому наприклад Гугл пише на Пітоні?

Рекомендую виконати наведені вище вправи два рази — на Пітоні і на Асемблері

"А теперь подумай шо ты сказал."© Вы сравниваете низкоуровневый язык и язык высокого уровня.

Не зрозумів суть претензії.

Скрутить вместе 2 либы. Это не как не покажет преимуществ и недостатков языка. С таким же успехом можно найти доку по Matlab, где описывается подключение его к Java, и сказать что Java — супер язык.

Тот факт, что вы нашли библиотеки под конкретную задачу для языка А, не значит что нет аналогов этих библиотек (а иногда и значительно более эффективных аналогов) под язык Б.

Дана задача має як мінімум багато тисяч користувачів.

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

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

І взагалі — питання було про приклади задач, де Пітон ефективніший за інші мови.

Не эффективнее. А быстрее состряпать шото работающее.
ИМХО, на сегодняшний день Python — это язык, только для fun.

Если есть реальные примеры где данный язык самый эффективный, буду рад услышать.

> А Рубі має бібліотеки в-основному тільки для веба.
каких библиотек не для веба лично тебе не хватает в руби?
> більшість інших мов банально не мають бібліотеки, якій можна передати формулу диф.рівняння і отримати аналітичний розв’язок.
беда беда. диф.ур для тебя ключевой критерий оценки яп? все равно на пистоне ты супер тяжелых вычислений не сделаешь, т.к. скорость. там есть всякие клевые лапаки\скалапаки как в С, раз уже ты такой классный математик?
> на Пітоні і на Асемблері
зачем такие крайности. сравни скажем со scala или еще чем-нибудь современным static typed
половина сформулированных задач делается grep’ом с минимальными подсчетами результата. в чем проблема.
> Якщо Пітон дозволяє в три рядки запрограмувати задачу, яка на інший мові буде вимагати рік кодування, то це погано?
ты действительно настолько глуп? это тебе не пистон позволяет, а авторы какого-то кода\библиотеки\фреймворка. если ее нет на *всех* языка — это не делает пистон лучше.
> де Пітон ефективніший за інші мови.

огласи критерии эффективности. наличие твоей любимой мат. библиотеки — не причина. вот на С есть супер крутая библиотека генетических алгоритмов и всего., а вот в пистоне — нет. С — намного лучше, ок?

Скорость разработки зависит, не от языка. А от того насколько программист хорошо знает инструменты (язык, библиотеки, ИДЕ, ОС)

Та невже?

Рекомендую виконати наведені вище вправи два рази — на Пітоні і на Асемблері, а потім зробити висновок:)

А программирование где? Из веб-фреймворка передать данные в либу которая решает дифуры и назад?

Не зрозумів суть претензії.

Якщо Пітон дозволяє в три рядки запрограмувати задачу, яка на інший мові буде вимагати рік кодування, то це погано?

Я уже не говорю о “востребованности” такой задачи.

Дана задача має як мінімум багато тисяч користувачів.
А більшісь задач, які програмуються, мають декількох користувачів.
І взагалі — питання було про приклади задач, де Пітон ефективніший за інші мови.

Я навів приклади.


розробка в декілька разів швидша.
Винятки напевно Рубі і Перл.
Але як на мене, Перл незручний для складних задач, особливо із складними структурами даних.

А Рубі має бібліотеки в-основному тільки для веба.

Скорость разработки зависит, не от языка. А от того насколько программист хорошо знает инструменты (язык, библиотеки, ИДЕ, ОС)

Зробити веб-сайт, де юзер може ввести диф. рівняння і отримати його розв’язок.

А у випадку прикладу з диф.рівнянням — більшість інших мов банально не мають бібліотеки, якій можна передати формулу диф.рівняння і отримати аналітичний розв’язок.

А программирование где? Из веб-фреймворка передать данные в либу которая решает дифуры и назад?

Я уже не говорю о “востребованности” такой задачи.


все задачи, перечисленные в 2х постах выше отлично решаются на почти любом из современных языков. в чем преимущество пистона?

В типовому випадку — коду в декілька раз менше, розробка в декілька разів швидша.
Винятки напевно Рубі і Перл.
Але як на мене, Перл незручний для складних задач, особливо із складними структурами даних.
А Рубі має бібліотеки в-основному тільки для веба.

А у випадку прикладу з диф.рівнянням — більшість інших мов банально не мають бібліотеки, якій можна передати формулу диф.рівняння і отримати аналітичний розв’язок.

все задачи, перечисленные в 2х постах выше отлично решаются на почти любом из современных языков. в чем преимущество пистона?
> фактично часто можна читати програму навіть не вивчавши мову до того.

expressiveness / verbose — это не только про питон. более того, это больше зависит от самого разработчика (терминальные стадии типа крестов и прочих дурацких яп не в счет)

Python нерідко може виступити гідною заміною Perl, зокрема в галузі обробки текстів: так splunk здатний систематизувати гігабайти логів на день, а бібліотека pymorphy дозволить елегантно провідмінювати “кутявые бутявки”.
Варто застерегти, що після використання Python протягом певного часу перегляд джерельних текстів мовою Java буде неодмінно викликати блювотний рефлекс.

Для швидкого виявлення прогалин у знанні мови варто скористатися таким собі Python knowledge coverage.

Повний список зараз складати не буду, але приведу приклади.
Наприклад скачати www.developers.org.ua/forum
і порахувати який нік скільки постів написав.
Або порахувати середнє значення і дисперсію кількості постів за день і скласти рейтинги.
Або проаналізувати тексти і відділити ті ніки, під якими заходили різні люди від тих випадків, де під одним ніком пише одна людина.

Зробити веб-сайт, де юзер може ввести диф. рівняння і отримати його розв’язок.

Найкраще вчитися на задачах, які добре підходять для пітона

Огласите список пожалуйста;)

Если кто не знает Питон — он многое теряет?

Это просто второй сорт
:)
Я думаю, це залежить від задач.
По моєму досвіду, зручно для роботи із складними структурами даних.
Наприклад щось типу складних алгоритмів аналізу текстів.
Думаю, що Java чи Ruby не сильно відстають, а в окремих випадках може і кращі.
Також добре для невеликих програм (щось типу 300 рядків)
Пишеться швидко і 1 рядок пітона це орієнтовно напевно десь 5 рядків С.
Інсталятор — 20 М, все фрішне.
Мова легко вчиться і читається, фактично часто можна читати програму навіть не вивчавши мову до того.
Є неймовірна кількість бібліотек для всього — від захоплення відео до аналітичного інтегрування.
Правда, інколи швидкість мала, але то вже залежить від задачі.
Як на мене — варто вивчити Пітон, якщо є час і натхнення.
Це трохи іншй світ порівняно з речами типу C, Java, Delphi:)

Найкраще вчитися на задачах, які добре підходять для пітона, бо так зразу можна і не відчути різниці:)

Если кто не знает Питон — он многое теряет?

Это просто второй сорт

Если кто не знает Питон — он многое теряет?

@valeryz
какого штыбу) приложения делать приходится?

работы хватает? thnx)

Там все новые фичи 2.x не обязывают тебя отказываться от старых. Я до недавнего времени прекрасно жил в формате 2.4 и новомодными штуками вроде syntax sugar для декораторов, или yield как выражение, и новые модули библиотеки, не увлекался вообще.
Значительная часть библиотек тоже работают с 2.4, совсем недавно еще 2.3 поддерживали. Тот же Twisted, django. Потому что на RedHat’е 2.4 и на солярках вообще 2.3 встречается. Только в последнее время, полгода-год, стало выгодно подтянуться до 2.6 — 2.7.

А на 3.x действительно никто никого не гонит. Там переход будет небыстрым. Тот же twisted обещает, что это займет несколько лет ПОСЛЕ того, как все, от чего они зависят, перейдет. То есть года 4−5 еще будем на 2.x жить.


А как вы можете на этом Питоне работать, если выходят новые старые, обновляются старые версии и т.п.?
Почти длл хелл.
А в чому проблема?
Всі версії до 3 ніби нормально сумісні.
А переходити на 3 чи ні — кожен вирішує сам.
Та й між 2.х і 3.х різниця ніби не така страшна, я думаю, перейти не було б проблемою, як би було реально треба.

Просто як на мене, в 2.х є все, що треба і переходити ніхто нікого в шию не жене.

А как вы можете на этом Питоне работать, если выходят новые старые, обновляются старые версии и т.п.?

Почти длл хелл.

А учиться — официальный туториал по питону имхо самое оно для старта

Дык тема какая:) —> improvement;)

Питонисты, если кто хочет стать тренером, вона, спрос есть на экспешены за деньги:)

А если серьезно, то учить питон на тренингах это как-то... На семинары люди пообщаться приходят, людей посмотреть, знакомства завести, идей нахвататься. А учиться — официальный туториал по питону имхо самое оно для старта.

Підписатись на коментарі