...обращаясь к nemerle community
я очень люблю питон. просто обожаю. на нем я продуктивен как собака баскервилей. но все чаще и чаще замечаю, что вместо решения насущных проблем, я решаю проблему производительности питона, извращаясь самым непотребным образом. в частности, задача разбивка файла на строки это десяток функций, опирающихся на string.find с концепций головы и хвоста (подразумевается, что файл может использовать \x0A, \x0D, \x0D\x0A в качества маркера конца строки, в том числе и все три представления внутри одного файла).
Регулярное выражение (\x0D\x0A|\x0A|\x0D|$) работает не быстрее асфальтоукладчика, который толкают по бездорожью бурлаки. Библиотеки типа re2 равно как и pypy не позволяют добиться сколь-нибудь существенного увеличения производительности.
У меня есть два пути: а) реализовать примитивы на Си, вызываемые из питона; б) забить на питон и выбрать другой язык.
И вот перед началом довольно масштабного проекта я задумался о nemerle. Надеюсь, это послужит рекламой/бустером для nemerle. Отсюда к сообществу разработчиков у меня есть пара вопросов:
1) будет ли оно работать под Linux и Mac OS? Если да, то какие компоненты необходимо устанавливать?
2) производительность. главным образом интересует с какой скоростью код на nemerle может распарсить хотя бы такой простой формат как pdf. поскольку я не знаком с языком, то пробовать оценивать производительность программы, написанной в процессе изучения языка, я не берусь. если вас не затруднит, не могли бы вы написать скелет очень простого парсера для pdf наподобие этого:
http://www.gnupdf.org/Introduction_to_PDF
все парсить не обязательно. Достаточно выполнить разбивку на объекты и потоки, т.е. парсер должен возвращать что-то типа этого:
x y obj # возвращаем номер объекта (x, y)
<<
# возвращаем в сыром виде то, что в угловых скобках
>>
stream
# возвращаем что между stream и endstream, обрасывая первый и последний переносы строки (контент может содержать нули)
endstream
endobj
в свою очередь обещаю продвигать nemerle всеми силами
PS. если у вас нет времени на это, то просьба написать скелет, возвращающий позиции x y obj, начинающиеся с новой строки. заранее спасибо.
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.