Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
В нижнем за 40 ведущего С++ не найдешь нормального. Фокус в том, кстати, что чистая зп ниочем не говорит. Многие сидят в аутсорсинговых конторах закрывая хедкаунт и левачат еще на две работы вместо основной, тк это возможно. В итоге выходит... у кого как Но у нормальных и поболе чем в москве, причем и гемора поменьше
Из-за этой ситуации глядеть на чистую зп в фирме толку нет — дают человеку вдвое больше, а он не идет. Ему бы лучше наоборот чтобы на десятку поменьше на своем месте платили-бы и в его дела не лезли и левачить не мешали
Re[5]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, мыщъх, Вы писали:
М>не знаю как в .ru, а в us ситуация обратная. рубисты хотят получать деньги и не хотят работать. стратегия приблизительно следующая -- устраивается рубист на работу. пол-года что-то делает, а потом планирует только багфикс да мелкий допил. причем многие соискатели даже не обрабатывают ситуацию "нет файла" или "нет библиотеки", не говоря уже о том, что логгер в их понятии это функция в несколько строк и у них не возникает вопроса -- что произойдет, если скрипт будет вызыван из 2+ процессов и они оба откроют один и тот же файл на запись. понятно, что они окончили вечерние курсы по руби и на курсах вопросы синхронизации вообще не затрагивались. но даже такие перцы как-то находят работу. не знаю как, но находят.
Может их на курсах не столько программированию учат, а умению продать себя на собеседовании. А уж этот навык он важнее для получения плюшек, многие программисты торговаться не умеют.
М>логично. рубиновые рельсы на мою винду не встали. когда мне надоело трахаться, я быстро наваял на питоне прямой SQL запрос. работает везде (на любой платформе). и, кстати, абстрагируется от базы. поменяется внутренеее представление (что навряд ли) -- перепишу SQL запрос в скрипте. делов-то. а почему рельсы не встают на винду -- хз.
У меня встали на раз-два вместе с Аптаной. Хотя таргет-платформой был Линукс, где уже крутилась модель базы, с которой предстояло работать.
М>серьезно? да вроде нет никакой боли, если не использовать ActiveRecords, а коннектиться к базе и говорить ей SELECT.
Так это и есть то самое "вручную писать SQL" Вот, так и делал, да.
D>> "No, I am not Japanese. I am Canadian." М>гм, ну вот для меня в свое время было открытием, что питон можно вызывать нативно из руби и наоборот.
Круто, кстати. Для женитьбы питономодуля и рубимодуля от разных разработчиков может пригодиться.
D>> У двери, банки и Америки общих предков нет, конечно, но есть общий интерфейс IOpenable. D>> В C++ это выражается чисто абстрактным классом с одним методом open() М>а если завтра нам нужен интерфейс, типа щупальца, который говорит "свободен", "занят", "заблокирован застрявшим винни-пухом". а после завтра нужен интерфейс "тревоги" (типа на банке пива сработала сигнализация). у си++ не хватит выразительности языковых средств, чтобы при чтении кода не сорвало крышу. или я просто не умею его готовить...
Я нигде не сказал, что С++ — лучший язык в мире. Возможность есть. Удобнее на питоне — пиши на питоне. Никто с пистолетом не заставляет писать на конкретном языке.
В питоне и руби меня доставало каждый раз писать рантаймовую проверку/преобразование типа, потому как иначе оно всё падает в процессе, а не на этапе компиляции, как в C/C++/ObjC/Java.
М>мои задачи это pattern matching в реальном времени, причем сопоставление нечеткое, что сильно осложняет дело. тут больше математики, чем программирования, тем более, что изначально в мою задачу входило определение _что_ искать, а не _как_ искать, но выяснилось, что первое и второе неразрывно связаны. даже если я знаю, что искать, нужно учитывать возможности существующих движков или допиливать их.
Это я читаю как "обработка больших массивов данных". Задача интересная, но мне с ней сталкиваться не приходилось.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, susumanin, Вы писали:
S>130 за кодинг в офисе это у вас грустно?
Грустно.
S>грустно это 40 в шахте.
Есть разные степени грусти. Степень 40 в шахте называется трындец.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, monax, Вы писали:
M>Здравствуйте, Brutalix, Вы писали:
B>>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно? M>Мне интересно почему питон так занижен в стоимости. При том, что я наблюдаю несколько иную ситуацию.
а мне интересно, что так занижен в стоимости руби, когда кандидатов расхватывают как горчие пирожки, т.к. при всех недостатках руби на нем RESTful запрос реально одна строка, да и для сношения с базами данных руби очень хорошо подходит. во всяком случае пару лет назад спрос на спецов резко превышал предложение.
но вообще мне не понятно с какой стати язык определяет зарплату. не знаю как у вас, а у нас по приказу партии будешь делать шпагат даже если не балерина. питон я уже выучил. завтра меня или изнасилуют и заставят учить жабу или я уйду в другой тим (при этом у меня в job description программирование вообще не значится).
как ни крути, а в реальности приходится иметь дело с кучей языков. вот даже насколько я далекий от программирования человек, но, попав в индустрию, вынужден писать на си, питоне, руби и немного на жабе. "немного" это меня без пяти минут не подписали писать высоконагруженный сервер с балансируемой загрузкой и масштабируемый. и даже не сервер, а фреймворк, что еще хуже. не, ну архитектурно один хрен на чем его писать -- архитектурно оно что на питоне, что на жабе. ну жаба, конечно, больше для этого подходит, конечно.
быть узким программистом и писать только на языке X -- это фантастика. главное все-таки это специализация. а язык вторичен. на том же питоне можно программы для анализа ДНК писать (благо есть море библиотек). или можно API шпиона забацать (библиотеки есть). только между этими двумя задачами нет ничего общего. первое это матчасть, второе — системное программирование.
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[6]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
D> Но как-то мне кажется, что дело не в языке.
дело не в языке, конечно. но кому-то приходится делать грязную работу в стиле "принять запрос", "дернуть базу", "мяукнуть в ответ". если архитектурно база инкапсулирована в библиотеку на руби и ее внутреннее представление может меняться, то прямые SQL-запросы, очевидно, делать смерти подобно и потому приходится юзать руби, который популярен в стартапах, которые в какой-то момент выходят на рынок и начинают расти. и кого они нанимают в первую очередь? правильно — рубистов, а их на всех не хватает (учитывая относительную молодость языка).
D> Я Питон довольно поверхностно знаю, написал на нём пару оперденей под линукс, D> ну и для скриптинга использую обильно. НО в библиотеках есть 90%, по тем задачам, D> которые я встречал. Остальное есть в stackoverflow
а когда вы используете регулярные выражения вы отдаете себе отчет, что библиотека re2 рвет стандартную re как грелка тузика? и что если нужна производительность, то ее следует искать совсем в другом месте. а если нам нужен нечеткий поиск, то это тема отдельного разговора. а если еще и семантику хочется прикрутить, то нужно знать в каком направлении рыть, иначе вообще ничего найти невозможно. уже не говоря о таких мелочах, что некоторые вещи дешевле купить в железе, чем пытаться переоткрыть колесо и построить паровой двигатель на его основе, когда нормальные люди уже летать начали.
D>Меня лучше на "ты"
ок. давай на ты
D>О, вот вызов питона из жабы — это уже фреймворк
это ты называешь громким словом фреймворк? http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html
тут чтения минут на полчаса. и тут описаны целых два фреймворка, работающие по разному принципу (вызов через скриптинг и нативный вызов с компиляцией питона в JVM), кстати, питон может вполне нативно вызывать Java.
D> А когда понятен синтаксис — уже можно писать. Не без мануалов/гугла, D> но на нормальную скорость выходишь довольно быстро. Так у меня было и с C#,
смотря насколько глубоко рыть. например, чем в питоне генератор от итератора отличается? нет, это неправильный ответ. правильный ответ искать нужно в другом месте, т.к. различия проявляются при отказе от стандартного тормозного интерпретатора. а независимые аналоги полнотой поддержки не страдают. и начинаешь себя ругать -- на кой ляд я пытался сделать "элегантно" и "красиво"?! теперь приходится все переделывать взад.
D> Первыми языками давным давно уже были C, C++, perl.
c++ мне показался слишком переусложненным и героически борющимся с проблеммами им же самим и созданным. например, отказ от макров и строгая система типов повлекла за собой потребность введения перегрузки функций. в том же питоне такой потребности нет, т.к. там достаточно уток. а перегрузка влечет за собой систему правил выбора нужной функции и в языке появляются подводные рифы.
эти же самые типы влекут за собой тепловоз, называемый полиморфизмом, потому что нельзя тупо передать функции foo объект obj, реализующий все необходимые ей методы, если obj не в той иерархии классов. и потому наследование появляется там, где оно не подкреплено никаким здравым смыслом. на питоне (и многих других языках) функции foo можно передать объект "дверь", "окно", "банка пива" и функция foo дернет метод 'открыть' и все довольны. а теперь вопрос на засыпку -- что нужно курить, чтобы построить систему классов, в которой у банки пива и двери есть общий предок?
и ведь это не надуманный пример. пусть нам по ходу дела нужно читать данные. читать их можно из чего угодно, был бы только метод read(). общих предков иметь необязательно. общие предки нужны только там, где в базовый класс можно вынести 90% функционала, а наследники реализуют вариации на тему. например, если у нас есть класс "абстрактное хранилище", которым может быть SQL, ассоциативный массив в памяти и файловая система. нужно ли им всем иметь общего предка? а зачем? ведь базовый класс будет пустышкой по сути. а вот если мы реализуем библиотеку работу со строками, то 90% функционала таки в базовом классе, а в производных -- работа с национальными кодировками, например, для сравнения символов без учета регистра.
D> С вебом хуже, фреймворков действительно десятки.
какое счастье, что от веба я далек как от луны
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.
немного отвлекаясь от Микрософта и Америки и начитавшись во время ночного бдения над интернетом о том что Россия (Москва) перегнала Европу и скоро перегонит Америку по зарплатам, был несколько удивлен этими веселыми картинками:
(как картинки получились читать тут, если не лень)
Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Здравствуйте, Brutalix, Вы писали:
B>немного отвлекаясь от Микрософта и Америки и начитавшись во время ночного бдения над интернетом о том что Россия (Москва) перегнала Европу и скоро перегонит Америку по зарплатам, был несколько удивлен этими веселыми картинками:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
А сколько надо? Это же обычный старший С++ — не лид, не архитектор. К тому же речь идет о на руки как я понял. Я вот читал про ту же Германию, мол там средний разраб — 50к евро в год, но ~45% — налоги — получается 90к рублей в месяц, что хуже. А в Германии я так понимаю лучше чем в остальных Европах, ну мб кроме Швейцарии и Лондона, но там и цена жизни умудряется превышать московскую.
Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Для java в дефолт сити 90к на руки это очень мало
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Это похоже на правду, но авторы честно говорят что это за графики и интерпретировать их надо правильно: во-первых, персентили считаются по вакансиям а не по людям, а во-вторых, остаётся ещё целых 10% вакансий с большими суммами. Какое отношение эти графики имеют к реальному распределению зарплат врядли кто-то сможет аргументированно ответить без серьёзного исследования.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
по собственным впечатлениям все зависит от предметной области, разброс может достигать 30-40 тысяч где-то. Плюс ещё что-то зависящие от компании по всей видимости (гдето до 20к разброс). Впрочем моя выборка не репрезентативна, тк мало вакансий по моей тематики в Питере.
Здравствуйте, Brutalix, Вы писали:
B> B>(как картинки получились читать тут, если не лень)
Читаем и видим:
> В этом посте мы используем данные №2 (сбор информации о зарплатах с Job порталов) и только вакансии.
Собственно, это данные по вакансиям. Реальные зарплаты выше на 15-30% за счёт годовых/квартальных бонусов, индивидуальных договорённостей, и других подобных факторов.
Прибавляете этот процент, получаете довольно достоверные цифры. Ну, может для дельфистов можно не прибавлять, они и без премий легаси-код поддерживают на ура.
Здравствуйте, Brutalix, Вы писали:
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Хочу заметить, что:
1. нужно смотреть не просто на языки, а на области разработок и статус.
2. программист который может уехать в Европу чтобы там сравнить зп — выше среднего в России.
3. Зп несколько выше среднего в России с поправкой на её мизерные налоги — часто больше, чем в Европе.
4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
Нужно разобрать угил.
Re[3]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, мыщъх, Вы писали:
М>но вообще мне не понятно с какой стати язык определяет зарплату. не знаю как у вас, а у нас по приказу партии будешь делать шпагат даже если не балерина. питон я уже выучил. завтра меня или изнасилуют и заставят учить жабу или я уйду в другой тим (при этом у меня в job description программирование вообще не значится).
Это зависит от предметной области. Когда я фрилансил, или работал в аутсорсе, то да — писал на всём, что можно скомпилить и интерпретировать. Сейчас я разрабатываю систему скриптования на питоне для питона. Т.е. я в какой-то мере ограничен именно питоном, а не алгоритмами. Я могу крутить AST как мне угодно, но в итоге я должен выдать байт-код именно для питона, а не для руби.
М>быть узким программистом и писать только на языке X -- это фантастика. главное все-таки это специализация. а язык вторичен. на том же питоне можно программы для анализа ДНК писать (благо есть море библиотек). или можно API шпиона забацать (библиотеки есть). только между этими двумя задачами нет ничего общего. первое это матчасть, второе — системное программирование.
тут ты прав. Я вот пишу систему скриптования, народ пишет скрипты для анализа безопасности. Дома я варганю сервис обработки картинок. И всё это на питоне. Не так давно делал прототипы игр на cocos2d
Здравствуйте, Nikе, Вы писали:
N>4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
ХОТЯ БЫ?! Там так всё плохо?
Re[3]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, azzx, Вы писали:
N>>4. Про себя хочу заметить, что работая в Норвегии моя покупательская способность падает где-то вдвое, относительно Питера, хотя абсолютное значение дохода (до налогов) там несколько выше. Вся надежда на переработки и то, что получится жену на работу устроить, где её зп будет хотя бы соизмерима с моей.
A>ХОТЯ БЫ?! Там так всё плохо?
Тут (в Питере) её зп раз в 10 меньше моей (была, когда она работала).
Нужно разобрать угил.
Re[4]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Nuseraro, Вы писали:
N>Мб, я зашел на http://www.nettolohn.de, ввел брутто 4000, выбрал Баварию, нажал посчитать и он мне выдал 2300, и на основании этого я огорчился.
N>Расскажите пожалуйста про налоги?
Холостой и без детей? Тогда правильно посчитал.
Женатый — выбрал 3-ий налоговый класс и получил совсем другие цифры.
И да, в любом случае не забудь убрать церковный налог.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Brutalix, Вы писали:
B>немного отвлекаясь от Микрософта и Америки и начитавшись во время ночного бдения над интернетом о том что Россия (Москва) перегнала Европу и скоро перегонит Америку по зарплатам, был несколько удивлен этими веселыми картинками:
B>
B>
B>(как картинки получились читать тут, если не лень)
B>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
Что решили-то? Сомжет С++ Сениёд Дев. зарабатывать 120к в месяц чистыми или нет?
Sic luceat lux!
Re[2]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Azotix, Вы писали:
B>>Собственно сабж. Это клевета врагов, пытающихся очернить или все действительно так грустно?
A>Надо сравнивать чистые зарплаты.
Смысл? В России прибавь/убавь 13% и получишь нужную цифру, а за бугром считать чистые зарплаты это верх глупости, чистые деньги от одинаковой з/п для двух разных людей может отличаться на десятки процентов.
A>А еще правильней условия жизни.
Это правильнее, только боюсь Москва тогда будет позади списка, плюс все очень индивидуально. Например я сейчас наврядли соглашусь на что-нибудь кроме огромного дома за городом в максимум часе езды от работы, а другому будет достаточно студии, но в самом центре, в пешей доступности от ночных клубов и работы.
Re[2]: Хотелось бы коментариев с мест, про зарплаты
М>а мне интересно, что так занижен в стоимости руби, когда кандидатов расхватывают как горячие пирожки, т.к. при всех недостатках руби на нем RESTful запрос реально одна строка, да и для сношения с базами данных руби очень хорошо подходит. во всяком случае пару лет назад спрос на спецов резко превышал предложение.
Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении
М>но вообще мне не понятно с какой стати язык определяет зарплату. не знаю как у вас, а у нас по приказу партии будешь делать шпагат даже если не балерина. питон я уже выучил. завтра меня или изнасилуют и заставят учить жабу или я уйду в другой тим (при этом у меня в job description программирование вообще не значится).
Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере". C, C++, C#, Java, Perl, python, вот теперь Ruby, ну и всякие связки вроде bash. Освоить новый язык — дело примерно суток. В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше.
Re[4]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
D>Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении
не знаю как в .ru, а в us ситуация обратная. рубисты хотят получать деньги и не хотят работать. стратегия приблизительно следующая -- устраивается рубист на работу. пол-года что-то делает, а потом планирует только багфикс да мелкий допил. причем многие соискатели даже не обрабатывают ситуацию "нет файла" или "нет библиотеки", не говоря уже о том, что логгер в их понятии это функция в несколько строк и у них не возникает вопроса -- что произойдет, если скрипт будет вызыван из 2+ процессов и они оба откроют один и тот же файл на запись. понятно, что они окончили вечерние курсы по руби и на курсах вопросы синхронизации вообще не затрагивались. но даже такие перцы как-то находят работу. не знаю как, но находят.
D> Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере".
аналогично. алгоритмы и структуры данных рулят. главное, знать о существовании вещей типа: http://morepypy.blogspot.com/2010/05/efficient-and-elegant-regular.html, а не ограничиваться тем, что есть в библиотеках.
> Освоить новый язык — дело примерно суток.
вы спринтер. азы программирования на питоне я освоил за пару выходных, провалявшись с книжкой и ноутом на диване. через месяц стал вникать во всякие итераторы, генераторы, наследование, вызов питона из жабы...
> В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше.
у фреймворков есть и другая засада. когда их больше одного, то возникает проблема выбора. и какое-то время нужно потратить на то, чтобы определиться с выбором, ведь подводных камней много. как оно себя поведет при большой нагрузке? сколько в нем багов? какова вероятность, что девы забьют на поддержку или новые версии не будут стыковаться со старыми?
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[5]: Хотелось бы коментариев с мест, про зарплаты
D>>Посмотрел по hh.ru — да, тоска и уныние. А только-только рельсы освоил в первом приближении М>не знаю как в .ru, а в us ситуация обратная. рубисты хотят получать деньги и не хотят работать. стратегия приблизительно следующая -- устраивается рубист на работу. пол-года что-то делает, а потом планирует только багфикс да мелкий допил. причем многие соискатели даже не обрабатывают ситуацию "нет файла" или "нет библиотеки", не говоря уже о том, что логгер в их понятии это функция в несколько строк и у них не возникает вопроса -- что произойдет, если скрипт будет вызыван из 2+ процессов и они оба откроют один и тот же файл на запись. понятно, что они окончили вечерние курсы по руби и на курсах вопросы синхронизации вообще не затрагивались. но даже такие перцы как-то находят работу. не знаю как, но находят.
Отлично
Но как-то мне кажется, что дело не в языке.
D>> Вот тут +100500. Когда меня спрашивают, на чём я пишу, я отвечаю "на компьютере". М>аналогично. алгоритмы и структуры данных рулят. главное, знать о существовании вещей типа: http://morepypy.blogspot.com/2010/05/efficient-and-elegant-regular.html, а не ограничиваться тем, что есть в библиотеках.
Я Питон довольно поверхностно знаю, написал на нём пару оперденей под линукс, ну и для скриптинга использую обильно. НО в библиотеках есть 90%, по тем задачам, которые я встречал. Остальное есть в stackoverflow
>> Освоить новый язык — дело примерно суток. М>вы спринтер. азы программирования на питоне я освоил за пару выходных, провалявшись с книжкой и ноутом на диване. через месяц стал вникать во всякие итераторы, генераторы, наследование, вызов питона из жабы...
Меня лучше на "ты"
О, вот вызов питона из жабы — это уже фреймворк А когда понятен синтаксис — уже можно писать. Не без мануалов/гугла, но на нормальную скорость выходишь довольно быстро. Так у меня было и с C#, и с Java, и вот свежий пример — RoR, при том, что вебпрограммирование я вот тоже только что увидел.
Первыми языками давным давно уже были C, C++, perl.
>> В отличие от какого-нибудь фреймворка вроде RoR, на который уйдёт, конечно, побольше. М>у фреймворков есть и другая засада. когда их больше одного, то возникает проблема выбора. и какое-то время нужно потратить на то, чтобы определиться с выбором, ведь подводных камней много. как оно себя поведет при большой нагрузке? сколько в нем багов? какова вероятность, что девы забьют на поддержку или новые версии не будут стыковаться со старыми?
И это тоже верно. В моём случае платформа определяет сознание, ну т.е., под iOS есть Cocoa (щас пишу не на ней, но), под Android есть ээээ... Android, ну или как там называется жабный гуглофреймворк под Андроид С вебом хуже, фреймворков действительно десятки.
Re[7]: Хотелось бы коментариев с мест, про зарплаты
М>дело не в языке, конечно. но кому-то приходится делать грязную работу в стиле "принять запрос", "дернуть базу", "мяукнуть в ответ".
Это 70% моей работы
M>если архитектурно база инкапсулирована в библиотеку на руби и ее внутреннее представление может меняться
Это как секс у подростков — чаще говорят, чем делают. Вот кто в здравом уме будет перепиливать всерьёз структуру боевой базы?
M>то прямые SQL-запросы, очевидно, делать смерти подобно и потому приходится юзать руби, который популярен в стартапах, которые в какой-то момент выходят на рынок и начинают расти. и кого они нанимают в первую очередь? правильно — рубистов, а их на всех не хватает (учитывая относительную молодость языка).
О, да. Я внимательно изучил модели в руби. Сделать там обычный для меня запрос
SELECT Q.CYCLE_ID AS ID, C.KEY AS TICKER, C.NAME AS NAME, Q.PRICE AS QUOTE, Q.TRADE_LIMIT AS TRADE_LIMIT, Q.NPCS_BUY AS NPCS_BUY FROM STOCK_COMPANY C LEFT OUTER JOIN STOCK_QUOTE Q ON (C.KEY = Q.COMPANY_KEY AND Q.CYCLE_ID IN (SELECT MAX(ID) FROM STOCK_CYCLE))
превращается в головную боль.
D>> которые я встречал. Остальное есть в stackoverflow М>а когда вы используете регулярные выражения вы отдаете себе отчет, что библиотека re2 рвет стандартную re как грелка тузика?
Все те полтора раза, когда мне надо было использовать регекспы, мне было искренне пофиг на производительность, ибо это был масс-парсинг сорцов.
M>и что если нужна производительность, то ее следует искать совсем в другом месте. а если нам нужен нечеткий поиск, то это тема отдельного разговора. а если еще и семантику хочется прикрутить, то нужно знать в каком направлении рыть, иначе вообще ничего найти невозможно. уже не говоря о таких мелочах, что некоторые вещи дешевле купить в железе, чем пытаться переоткрыть колесо и построить паровой двигатель на его основе, когда нормальные люди уже летать начали.
Это правда. Гугл в помощь, как обычно.
М>это ты называешь громким словом фреймворк? М>http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html М>тут чтения минут на полчаса. и тут описаны целых два фреймворка, работающие по разному принципу (вызов через скриптинг и нативный вызов с компиляцией питона в JVM), кстати, питон может вполне нативно вызывать Java.
Круто, чо, спасибо, буду знать.
Но на моей прошлой работе в Джире был один из "эпиграфов": "The very last thing you'll ever need to learn how to say in Arabic:"لا، أنا لست ياباني أنا كندي" "No, I am not Japanese. I am Canadian."
М>смотря насколько глубоко рыть. например, чем в питоне генератор от итератора отличается? нет, это неправильный ответ. правильный ответ искать нужно в другом месте, т.к. различия проявляются при отказе от стандартного тормозного интерпретатора. а независимые аналоги полнотой поддержки не страдают. и начинаешь себя ругать -- на кой ляд я пытался сделать "элегантно" и "красиво"?! теперь приходится все переделывать взад.
Опять же. Задачи у нас разные, решения, соответственно, тоже.
М>эти же самые типы влекут за собой тепловоз, называемый полиморфизмом, потому что нельзя тупо передать функции foo объект obj, реализующий все необходимые ей методы, если obj не в той иерархии классов. и потому наследование появляется там, где оно не подкреплено никаким здравым смыслом. на питоне (и многих других языках) функции foo можно передать объект "дверь", "окно", "банка пива" и функция foo дернет метод 'открыть' и все довольны. а теперь вопрос на засыпку -- что нужно курить, чтобы построить систему классов, в которой у банки пива и двери есть общий предок?
У двери, банки и Америки общих предков нет, конечно, но есть общий интерфейс IOpenable. В C++ это выражается чисто абстрактным классом с одним методом open()
М>и ведь это не надуманный пример. пусть нам по ходу дела нужно читать данные. читать их можно из чего угодно, был бы только метод read(). общих предков иметь необязательно. общие предки нужны только там, где в базовый класс можно вынести 90% функционала, а наследники реализуют вариации на тему. например, если у нас есть класс "абстрактное хранилище", которым может быть SQL, ассоциативный массив в памяти и файловая система. нужно ли им всем иметь общего предка? а зачем? ведь базовый класс будет пустышкой по сути. а вот если мы реализуем библиотеку работу со строками, то 90% функционала таки в базовом классе, а в производных -- работа с национальными кодировками, например, для сравнения символов без учета регистра.
Вопрос философский. Можно так, можно так. Одно другого вроде как ничем не хуже. Питон позволяет обойтись без общего предка? Отлично, тогда и фиг ты с ним. C#/Java/C++ не позволяет? Вот, интерфейс.
D>> С вебом хуже, фреймворков действительно десятки. М>какое счастье, что от веба я далек как от луны
Мне уже интересны твои повседневные задачи, если для тебя важна производительность регекспов в питоне, но с веб это не связано
Re[3]: Хотелось бы коментариев с мест, про зарплаты
B>>подтверждаю, что московские зарплаты точно уже лет несколько как перегнали европейские. во
D>В Европе есть как Греция, Литва и Польша, а есть Лондон. Если хочется сравнивать с Европой, то надо уточнить, с какой именно.
Когда мне говорят про зарплаты программиста в Европе, я представляю в первую очередь Германию, во вторую — Францию, в третью, наверно, Австрию.
Re[8]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
M>>если архитектурно база инкапсулирована в библиотеку на руби и ее внутреннее представление может меняться D>Это как секс у подростков — чаще говорят, чем делают. Вот кто в здравом уме будет перепиливать всерьёз структуру боевой базы?
логично. рубиновые рельсы на мою винду не встали. когда мне надоело трахаться, я быстро наваял на питоне прямой SQL запрос. работает везде (на любой платформе). и, кстати, абстрагируется от базы. поменяется внутренеее представление (что навряд ли) -- перепишу SQL запрос в скрипте. делов-то. а почему рельсы не встают на винду -- хз.
D> О, да. Я внимательно изучил модели в руби. Сделать там обычный для меня запрос D> превращается в головную боль.
серьезно? да вроде нет никакой боли, если не использовать ActiveRecords, а коннектиться к базе и говорить ей SELECT.
D> "No, I am not Japanese. I am Canadian."
гм, ну вот для меня в свое время было открытием, что питон можно вызывать нативно из руби и наоборот.
D> У двери, банки и Америки общих предков нет, конечно, но есть общий интерфейс IOpenable. D> В C++ это выражается чисто абстрактным классом с одним методом open()
а если завтра нам нужен интерфейс, типа щупальца, который говорит "свободен", "занят", "заблокирован застрявшим винни-пухом". а после завтра нужен интерфейс "тревоги" (типа на банке пива сработала сигнализация). у си++ не хватит выразительности языковых средств, чтобы при чтении кода не сорвало крышу. или я просто не умею его готовить...
М>>какое счастье, что от веба я далек как от луны D>Мне уже интересны твои повседневные задачи, если для тебя важна производительность регекспов в питоне, но с веб это не связано
мои задачи это pattern matching в реальном времени, причем сопоставление нечеткое, что сильно осложняет дело. тут больше математики, чем программирования, тем более, что изначально в мою задачу входило определение _что_ искать, а не _как_ искать, но выяснилось, что первое и второе неразрывно связаны. даже если я знаю, что искать, нужно учитывать возможности существующих движков или допиливать их.
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[10]: Хотелось бы коментариев с мест, про зарплаты
Здравствуйте, Dair, Вы писали:
D>У меня встали на раз-два вместе с Аптаной. Хотя таргет-платформой был Линукс, D>где уже крутилась модель базы, с которой предстояло работать.
у меня тоже основная платформа линух, под который пишу, но пишу сидя то под виндой, то под маком. догадываюсь, что с рельсами делаю что-то не то или не так, но запросы к базе у меня несложные и мне напрямую работать проще, чем тащить непонятно какие зависимости по библиотекам. тем более, что сейчас переползаю с хрюши 32 на семерку 64. вдруг и там рельсы не встанут?
D> Я нигде не сказал, что С++ — лучший язык в мире. Возможность есть. Удобнее на питоне — пиши на питоне.
да у меня и выбора особого нет. на питоне занимаюсь быстрым прототипированием. расширяемость питона поражает. допустим, моя API Функция возвращает список. списка становится мало и в следующей версии вместо списка у меня словарь. но словаря тоже мало и наконец возвращается объект. и все это без потери совместимости со старым кодом. вот такое legacy. т.е. хочешь работать с возвращенным типом как со списком -- флаг тебе в руки. хочешь юзать его как словарь -- да без проблем. ну а если тебе нужны все-все-все фичи -- юзай это как объект.
это облегчает прототипрование, поскольку типы можно меняь прямо на ходу и старый код об этом даже не подозревает. я уже молчу про то, что на питоне элементарно (в несклько строк) пишется функция, принимающая строку с данными как аргумент или абстрактный объект, реализующий метод read(). просто невероятно удобно. например, нам нужно считать md5. мы передаем либо файловый объект, либо буфер с данными.
> Никто с пистолетом не заставляет писать на конкретном языке.
зависит от работодателя...
D> В питоне и руби меня доставало каждый раз писать рантаймовую проверку/преобразование типа, D> потому как иначе оно всё падает в процессе, а не на этапе компиляции, как в C/C++/ObjC/Java.
есть же ведь статические верификаторы... кстати, рантаймовая проверка обходится, если наследовать все, что вам нужно от базового класса, где реализованы заглушки на все нужные вам методы, которые возвращают "не реализовано" и сигнализируют об ошибке.
D> Это я читаю как "обработка больших массивов данных". Задача интересная, но мне с ней сталкиваться не приходилось.
да, массивы данных, действительно, большие. 2TB — это микроскопический тестовый набор данных для _быстрой_ проверки не развалилось ли чего. допустим, прототип на питоне. даже с учетом оптимизирующего JIT компилятора на лаптопе эти 2TB обрабатываются очень долго хотя бы в силу того, что диск подключен как сетевой, а гигабитный езернет это очень узкий канал.
вот поэтому интерактивные отладчики на меня действуют как красная тряпка на быка
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.