“ipb или примитивнейший phpbb был бы в разы лучше того велосипеда, что есть сейчас”
Як на мене, цей форум набагато кращий ніж phpBB
Если говорить как есть, то developers.org.ua один из худших по дизайну и сервису ресурс который мне приходилось видеть.а як на мій погляд — один з кращих
контент хороший і читати зручно
Мені трохи проблематично подивитись, я з hibernate не працюю.Не вернут, посмотрите как работает hibernate criteria, он сгенерирует limit или его аналог.
Питання в зручності.
2. Не крос-платформна
Цікаво як?Ну так это возможно сделать на всех оо языках, даже на С++.
Взяти потім перших 3 елементи зі списку можна звичайно, але всі елементи крім перших трьох викачувалися з бази дарма.
Я мав на увазі, що в пітонівському прикладітой приклад був не про SQL, а про передачу параметрів функції у вигляді об’єкта/списку.
І замість того, щоб витягувати весь список, а потім відбирати три перших елементи, пітонівський код може вияснити, що елементи після 3 не будуть використовуватися, і додати «limit 3» до SQL.
Так, в Джаваскріпт це непогано виглядає, але слайс наскільки я зрозумів, він обробити не може.В JavaScript наприклад теж часто так роблять:
Все одно — як на мене, Пітонівський синтаксис трохи зручніший.
с «питонскимих» курсов\тренигов точнееЯ не дуже спеціаліст по Пітону:)вы так хорошо выучили Питон без них? Может хоть книгу или уроки для топикстартера посоветуйте?:)
Взагалі в інеті багато док, є декілька хороших конспектів, але їх напевно треба читати після книжки.
Можна конкретний приклад?Передавать асоциативный список с названиями и значениями параметров, и в “рантайме узнавать их имена и принимать решения, что с ними делать” можно в любом языке, имеющем структуру данных “список”.
І взагалі — мова йшла про можливості інтроспекції.
Приведите пример, а то у меня в голове сразу несколько идей о том что вы хотели сказать.Наприклад в мене є таблиця orders і мені треба вибрати звідти перших три замовлення за сьогодні по адресах, котрі починаються із стрічки «Шевченка».
Цікаво чи таке можна зробити на Джаві і як воно буде виглядати.
І ще — можна приклад, як на джаві продиференціювати аналітично функцію, задану в коді?Напевно про те, що це зробити непросто:)
Я не могу привести этот пример, о чем это говорит?
Якщо взагалі можливо після JIT компіляції.
:)Опять мелочитесь, лучше тысячу, нет 10, 000, одна священная строка на питоне может заменить годичный труд
100-а джаверов...
Я наприклад різні утіліти сам для себе пишу майже виключно на Пітоні.
В більшості випадків таку помилку можна спокійно обробити в рантаймі і ніяких принципових проблем з цим нема.
Что значит обработать? Программа ведь работать не будет?
Якщо є можливість сконвертувати в щось підходяще, то буде.
Какой то человек положит в параметр не того типа, где то выскочит эксепшн, и человеку выдадут ошибку: типа прийдите позже?Бажано щоб ця помилка виникла ще в девелопера, ну в крайньому разі — в QA.
Хоча в принципі звичайно статична типізація має свої переваги, але не треба з неї робити культ:)
А от необхідність мати 20 функцій типу display_int, dislay_string, dsplay_complex, display_real і т.д., замість одної реально збільшує і код і затрати на розробку.А далі що?
А необходимости нету, можно написать просто display (Object o) например на джава.
В рантаймі обробити неправильні параметри?
Опять мимо, и в Java и в С# есть интроспекция.Про інтроспекцію — в Пітоні можна в функцію передати довільну кількість будь-яких параметрів.
І ще — можна приклад, як на джаві продиференціювати аналітично функцію, задану в коді?
Особливо детальніше мабуть не можу:)Я працював в конторі, де повний чекаут коду був більший ніж гігабайт. Більшість — на Пітоні.Чисто личный интерес, не относящийся к теме: Можете поподробнее рассказать?
В основному код на Пітоні. Треба врахувати що 1К на Пітоні це десь 5К на С.
Тогда такой вопрос:Так.
Человек придумал суперэффективный алгоритм, реализовал его на медленном окружении (один из недостатков питона) и отдает его в продакшэн?
Багато задач на Пітоні йдуть з такою ж швидкістю як на С.
Или отдает его другим людям которые “просто переписывают его на C” (не обязательно C, на языке с более быстрым окружением) или сам реализовывает на этом языке.Буває і так і так.
Але якщо реалізував сам, то потім код передається девелоперам, вони його переглядають, якщо хочуть — переписують і далі вони за нього відповідають.
Несомненно, у питона есть своя ниша, но на мой взгляд — это в основном fun (небольшое сайтики, админские скрипты, сборка проектов).
Я працював в конторі, де повний чекаут коду був більший ніж гігабайт. Більшість — на Пітоні.
Что касается прикладных программ с которыми я сталкивался, например Exaile, то они могут иметь хороший функционал, но при этом безбожно тормозят и глючат, на чуть более чем стандартных данных.Я тут подумав — я сам якось програмами на Пітоні взагалі не користуюся:)
Але сам для себе я написав багато всяких програм і вони для мене дуже корисні.
Реальная задача: Каталог, в нем 30−31 файл по 5−8 Гиг каждый, вычленить все эксепшены.Я не дуже зрозумів суть задачі, але в мене були наприклад задачі типу 4 файли по 30 Гігабайт.
Для питона, в котором нет многопоточности, это нормальная задача?
І пам’ять тредів обмежена.
Можно ли скрипт запустить на продакшен сервере или придется копировать в другое место и там анализировать?В мене були окремі кластери для досліджень.
І ніяких проблем:)
Максимальный размер файла в ext4 16Тбайт (если я все правильно помню). Задача:Якщо це була іронія, то я її не зрозумів.
розпарсати текстовий файл і порахувати, скільки раз яке слово зустрілося в файлі розміром 16Тбайт.
Я не спеціаліст в файлових системах, але в міру мого розуміння, реалізувати 10 ТБ на ext4 практично не можливо.
математики — это математики, а программисты — это программистыЦе дещо застаріле бачення питання.
Зараз багато задач на папері вже не розв’язуються взагалі.
Как должно выглядеть решение такой задачи:
1) Физик (если я правильно помню, что такое уравнение Шредингера), или сам или с помощью математика, написать алгоритм решения и передать его программисту
Власне є такі випадки, де “написати алгоритм” — це 99% роботи.
2) Программист должен запрограммировать этот алгоритм, так что бы тот выполнялся как можно быстрее и потреблял минимум ресурсов и отдать программу физику или математику.Власне цей етап не завжди потрібний.
А поділ на математиків і програмістів не завжди актуальний.
Все же давайте не отклонятся от темы. Все примеры которые вы привели, сводятся к созданию прототипов “на коленках”, а не к промышленным решениям.Не треба недооцінювати прототипи.
Звичайно є також інші типи задач.
Сформулирую вопрос так:В багатьох випадках швидкість ролі не грає (коли вона і так достатня).
За какое время написана математиком функция решения уравнений Шредингера вычислит 1К уравнений? Быстрее чем функция написанная программистом на C?
Є також випадки, де розв’язок не потрібно повторювати 1000 раз.
Где вероятность ошибки больше: когда код пишет не профессиональный программист (математик), или когда код пишет профессиональный программист по алгоритму составленному профессиональным математиком (или спецом в данной области), или составленному с его слов.Складно сказати в загальному. Є різні випадки.
Часто там нема “правильного” алгоритму взагалі.
sage-4.5.1.tar meta 294.10 MBНу Sage — це монстр:)
И это, я так понял, базовая инсталляция сорсы базовой инсталляции.
Є простіші речі, наприклад SymPy, як вже написав crypto5.
медленные реализации, отсюда и возможные доп затраты на железо;Проблема має місце і носить до певної міри принциповий характер.
4. Вузькі місця можна виділити в окрему програму, або написати С-шну бібліотеку і підлінкувати в Пітон.
* динамическая типизация усложняет его использование на больших и долгоживущих проектах, хотя для стартапов, наверно, нормально;Так, є різні типи проектів, для деяких напевно не підходить.
Але я бачив великі проекти на Пітоні.
* неопределенность с поддержкой, версия 3 вроде как заморожена и далеко не факт, что не придется переписывать код при переходе с 2 на 3.Я не відслідковую це детально, але наскільки я знаю 3.0 розроблялася для того щоб додати всі нові фічі (вже закінчена), а 3.1 — переписування деяких повільних фіч на С, для збільшення швидкості. Ніяких проблем з їх розробкою нема, наскільки я знаю.
Так що ті, що писали математику, обробку даних і т.п. (без інтернаціоналізації) можуть взагалі нічого не помітити:)
Я ж не заперечую, що є люди, для яких Матлаб підходить краще.Вы не поверите, у кучи народу. Для бизнеса Matlab интересен как раз тем что он платный!
Я просто пояснюю, що є інші, для яких він не підходить.
Наведу приклад.Зачем математику сорци либ, я не понимаю.
Або писати з нуля, якщо конкретна мова програмування не має таких ліб взагалі.
Ну например возможность задать метод принимающий только список чисел, что бы никакая индюшка туда не положила строку, и мы не словили runtime ошибку.Спірний аргумент.
Та й взагалі слабо собі уявляю, як в статичній мові цю продиференційовану функцію в рантаймі злінкувати із змінними. Там напевно роботи буде в 100 раз більше ніж на Пітоні.
Це не ідея. Це формулювання проблеми.
Формулювання проблеми хороше і напрямок виглядає перспективним.
Але ідеї (унікального шляху розв’язку задачі, якого раніше ніхто не придумав) тут нема.
Зробити «як oDesk» — це є шлях, але він чужий. Навіть якщо він спрацює, то інші можуть це легко скопіювати.
Крім того не факт, що спрацює. Я не сильно з ним знайомий, але в міру мого розуміння — все-таки oDesk зроблений для ІТ. Там наприклад можна покласти результат виконання замовлення (сорци) на сайті і звернутися в арбітраж.
У випадку ремонту квартир це працювати не буде.
Можна звичайно видумувати якісь аналогічні процедури у фізичному світі, але наскільки добре це спрацює, невідомо. Тому в даному випадку закінченої ідеї нема, хоча я б сказав, що половина ідеї тут вже є :)