raiboon: я ничего не имею против ускорения имеющегося кода через Pypy, даже за, если это возможно:) Но есть два но. Первое: я видел как минимум два проекта, которые на Pypy сходу (точнее, в разумный срок) не завелись. Если где-то бы завелось - я бы прыгал от радости:) Второе про статистику и аналитику (у меня с ними очень близкие отношения): в системе сбора данных большая часть времени уходит на передачу данных по сети. В планировщике - тут вообще скорость играет не самую большую роль. В обработке - да, если у скриптов расчета сложная логика (по-моему вот тут мы даже побывали впихнуть Pypy и там, где это было возможно, ускорение было весьма существенным). А если рассматривать обычные веб-проекты - тут JIT и прочее большого прироста дать не должны, ибо, опять же, сеть. Тут больше поможет python 3 с его зачатками асинхронщины.
maxxannik: это не просто мой выбор - я привёл аргументы, почему это именно так. К сожалению, идеи и стартаперский булшит находятся за гранью логики и конструктивного разговора. Ещё раз повторю - для человека, выбирающего на какой платформе и в какой области начать свой бизнес ваши слова имеют большую пользу. Но вот для работника нет. Почему - я выше уже писал.
Что за бред вы написали? Как вообще могло прийти в голову применение "подхода предпринимателя" к наемному работнику? Для предпринимателя да - чем больше потенциальный рынок, тем потенциально больше денег можно заработать. Для наемного работника все с точностью до наоборот - чем больше рынок - тем больше конкуренция - тем меньше его потенциальная зарплата. Особенно доставляет вывод о полезности какого-то навыка исходя из масштабов рынка, а потом из этогг и зарплата работника. Я могу только предложить, следуя этой логике, устроиться работать дворником - рынок огромный, пользы очень много, значит и цена вас как работника будет достигать запредельных значений.
Va1ery: У меня сразу два вопроса: а это точно важно? И почему бы не взять и не проверить? (я проверил, мой код в два раза быстрее в данном конкретном случае на Python3)
Но если нужен быстрый и общий ответ: да. В Python встроенные конструкции в разы быстрее альтернативных реализаций на самом питоне + модуль re достаточно тормозной (особенно по сравнению с регулярками в Perl). Я писал небольшую заметку на похожую тематику: thenno.me/blog/python-terrible-patterns.html (часть про встроенные средства языка).
Есть еще один нюанс - регулярки тоже нужно уметь писать. Например, регулярка из комментария господина Павел Воронцов делает лишнее действие, лучше написать '^(:?AA)|(:?\\nAA)' - за счет сохранения совпадений терялась эффективность.
А какая именно задача решается? Код явно не пытается проверить, что введенное значение должно заканчиваться на 11. Да и не очень понятно, для чего все это. Возможно, если Вы сформулируете вопрос именно в форме решаемой задачи, можно будет дать более детальный и полезный ответ.
@tuccar: а вот это вопрос даже более холиварный, чем первый:) Я бы посоветовал начать с Питона. Он в разы проще + он абстрагирует программиста от многих проблем, которые будут постоянно возникать у новичка в Си и достаточно сильно давить на психику. В Си нужно внимательно следить за выделением памяти, выходами за границы массивов, да и многим чем еще, что в Python'e сделает за программиста сама среда исполнения.
Как я уже выше писал - в Питоне из коробки доступна куча библиотек, а еще больше можно доставить через pip. И можно достаточно легко найти и посмотреть их исходный код, хотя для Си открытого кода тоже хватает, на самом деле.
К тому же, Питон интерпретируемый - а значит во время обучения можно сразу же в интерпретаторе что-то набросать и посмотреть, что и как себя ведет, в то время как в Си будет постоянный цикл "скомпилировал-слинковал-запустил-залез деббагером или посмотрел на вывод".
Таким образом, у Питона срок с момента "начал учить язык" до момент "написал первую осмысленную и полезную программу" меньше, чем в случае с Си. И это, на самом деле, намного сильнее мотивирует продолжать обучение, чем изучение тонны теории, применение которой в ближайшее время не предвидеться.
Но тут есть нюанс - если Вы настроены серьезно связать свою жизнь и карьеру с программированием - может быть стоит начать именно с Си. Так можно понять, что именно происходит в программе - как выделяется память, что такое ссылки и указатели, как все это добро представляется в ассемблерных кодах и многое другое.
Но мое мнение - для старта все это знать не обязательно, лучше направить свои первые шаги на то, чтобы понять, что из себя представляет программирование и Computer Science. Лучше сначала разобраться с императивной и функциональной парадигмами, с ООП, с алгоритмами с структурами данных, и иметь возможность полученные знания сразу же применять на каком-нибудь языке программирования. А уже потом, освоившись с высокоуровневыми абстракциями, можно спустится на уровень ниже и посмотреть, что же стоит за всем ранее написанным кодом.
Странно, по моему опыту начинающие с хорошей начальной подготовкой получают 45-60к на фултайм (с не очень хорошей - от 20к), мидлы до 90к, а синьеры с тимлидами соответственно еще выше. Но это просто то, что я вижу вокруг, не больше:) Ну и опять же, это все среднее по больнице, в отдельном конкретном случае ситуация может менять как в лучшую, так и в худшую сторону:)
А не подскажете, где там идут настройки чекеров? Хочется не просто бездумно скопировать, но и понять:) Нашел что-то похожее в lisp/init-flyspell.el, но все равно ясности процессу это не придало.
@iproger, можете дать этот же график, но с датами по оси X? Больше похоже на сезонность (в определенные дни недели к вам чаще ходят). Провал в центре - это же НГ, я прав?
Было бы еще удобнее, если интервал был один день, а не два. К сожалению 7 - число нечетное)
@NewTypes в идеально мире, конечно, будет существовать аккуратная прослойка, но мы же все прекрасно понимаем...:) Вопрос даже не в том, насколько легко можно отделить один сервис от другого, а в том, насколько он будет полезен в автономном состоянии.