LINUX.ORG.RU

Разыскивается сишка, но с юникодом из коробки

 ,


2

5

САБЖ. Ищется относительно простой (не C++), но быстрый язык с полноценным юникодом из коробки, хочу в питон батарейку клепать, так как готовая библиотека на ванильном питоне (не моего производства) на пару порядков по скорости проседает от того, что я бы хотел видеть и да, я точно знаю что это возможно, так как есть проприетарщина на крестах, которая могёт (но авторы бабосика уж очень много хотят). При этом не очень хочется заниматься любовью и лишней магией на указателях с utf-8, utf-16 и utf-32 посредством всяких костылей.

Интересно, как там у ржавого и го с юникодом и производительностью.

★★★★★
Ответ на: комментарий от anonymous

И писать можно в сишном стиле. Без вырвиглазного синтаксиса.

anonymous
()
Ответ на: комментарий от crutch_master

Не, не-не. Теоретически даже знак № может иметь смысл, а у кои8 его нет.

peregrine ★★★★★
() автор топика

Бери Си, библиотеку от Беллара, которую он для QuickJS написал для UTF, пиши расширение для 3 питона и не сношай мозг

menangen ★★★★★
()

Rust, очевидно.

Не знаю, что тебе нужно, но там есть такая штука как wtf-8, например. Можешь обмазаться unsafe и забив на лайфтаймы кодить как на сишечке, только ещё приятнее. Поддержка юникода близка к идеальной на всех уровнях.

Можешь взять хаскелль, но оптимизировать его умеют только всякие энтузиасты.

anonymous
()

К сожалению, серебряной пули нет. Go прост, но скорость порядка java. Rust не прост. Вот и выбирай

RedPossum ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

размер кешей

пруфы с профилировщиком на сказанное будут, иксперд?

anonymous
()

Можно либу написать на языке rust, где utf8, а потом использовать из сишки. Например, я так подключал rust к питончику (но потом запутался в gc последнего). Go, вероятно, не подходит из-за gc.

dave ★★★★★
()

Если раст не трогал, то и не бери. Окровавленного поноса про раст в дев разделе хватает.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Если раст не трогал, то и не бери. Окровавленного поноса про раст в дев разделе хватает.

Зато понос стильный, модный и молодежный!

anonymous
()

Давайте немного поболтаем о вечном.

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

Для меня главный минус растишки в том, что ее по факту нет на эльбрусах пока (технически это преодолимо, конечно). Такой шоустопер, который пресекает иногда интерес к растишке на корню. Зато сильно подогревает интерес к плюсам.

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

dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от dave

Там правят идеологи опенсорса: мозилла, все дела.

Вам уже 10 раз объясняли что идеология тут не при чём. Просто это не является приоритетной задачей. Особенно учитывая что ABI не стабилен.

RazrFalcon ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Оставайтесь на линии. Ваше мнение очень важно для нас.

RazrFalcon ★★★★★
()

сишка, но с юникодом из коробки

Сишка в Plan 9?

Plan 9 supports Unicode via UTF-8, however you need special provisions for handling the extended characters. The special type Rune is large enough to store a UTF-8 character, which can be embedded into a C program using Standard C’s wide character literal format L’character’. A string of Runes can be made in the same way as a string of characters, and has the type «array of Runes.»

Warez
()
Ответ на: комментарий от dave

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

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

относительно простой (не C++)

Rust, Можешь взять хаскелль

лол

next_time ★★★★★
()
Последнее исправление: next_time (всего исправлений: 1)
Ответ на: комментарий от peregrine

Там даже строк нет полноценных

Зачем тебе строки в самом языке? Чтобы как лох хардкодить строковые литералы? Читай из свои «константы» из конфига, благо юникодных библиотек предостаточно.

no-such-file ★★★★★
()
Ответ на: комментарий от dave

На растишке проще писать производительный код, тогда как на плюсах довольно легко написать тормозной код

Чем же он так примечателен? ИМХО теоретически производительный код проще писать на всяких ФП языках, т.к. там идея обхода коллекции выражается явно в виде map и компилятор может широко использовать векторизацию и т.п. улучшения. В императивных языках компилятору ещё нужно догадаться, что вот этот конкретный цикл с заданным алгоритмом обхода можно заменить эквивалентным векторизованным.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

ИМХО теоретически производительный код проще писать на всяких ФП языках

На прологе проще всего, так как он сам думает, а программисты часто не думают, вот как бы и решение.

Только вот почему то хескель сливает даже в «ленивых» примерах плюсам, царь уже показывал.

stasolog
()
Ответ на: комментарий от Warez

A string of Runes can be made in the same way as a string of characters, and has the type «array of Runes.»

Звучит как поставка Go, но оно и неудивительно.

gedisdone ★★★
()

nim - питонообразный синтаксис с юникодом и сишной производительностью

anonymous
()
Ответ на: комментарий от stasolog

почему то хескель сливает даже в «ленивых» примерах плюсам

Потому что «теоретически», а на практике качество компилятора решает. И что-то мне подсказывает, что раст и тут не на первом месте.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Вообще-то, map в итераторах коллекций часто используется в расте. Ты тут в самое яблочко попал.

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

dave ★★★★★
()
Ответ на: комментарий от dave

map в итераторах коллекций часто используется в расте

Так это обычная функция, сахарок над императивным циклом по итератору, а вовсе не языковая операция. Это не тот map, лалка.

no-such-file ★★★★★
()
Ответ на: комментарий от dave

Похоже, ФП-шникам руст тоже не по нраву, так что с аргументами вида «смотрите, в руст также» можешь пройти в баню

DllMain
()
Ответ на: комментарий от DllMain

Пока что в треде не объявилось ни одного настоящего «ФП-шника».

Virtuos86 ★★★★★
()
Ответ на: комментарий от no-such-file

ИМХО теоретически производительный код проще писать на всяких ФП языках

Ага, а лишп это идеальный языг.

А на практике (((((()()()(((())))))))). В хаскеле искоропки строка это список символов. Никакой конпелятор тебе не создаст эффективный код, если ты решишь обрабатывать текст с помощью String. А про ByteString надо еще узнать. И т.д.

Virtuos86 ★★★★★
()
Ответ на: комментарий от anonymous

А на практике (((((()()()(((()))))))))

Практиковал или балабол?

По делу есть что написать? Лишп здесь для примера. А почему именно он, нет-такого-документа знает.

Алсо, лисп мультипарадигменный.

Ага, а погода завтра будет хорошая.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Лишп здесь для примера

Норм отмазка. Я-то вообще про сферический в вакууме ФП говорил, а не про Хаскель и уж тем более не про ЛИСП. Я как бы задал вопрос, что это такое есть в расте, что, как утверждается «позволяет легко писать эффективный код» и привёл как пример теоретическую возможность для ФП языков оптимизировать map. В ответ я слышу только КОКОКО ЛИШП. Растоманы в своём репертуаре.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

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

Я-то вообще про сферический в вакууме ФП говорил, а не про Хаскель

«Сферический ФП» может порождать эффективный код только при навороченном компиляторе. Назовешь еще хоть один, кроме GHC?

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Но в расте нет наслоений нелогичностей и хитрожопых тонкостей стандартов, которые познают только набив шишек на лбу

Не, ну по сравнению с крестами в их нынешнем виде всё что угодно будет лучше. Тут вопросов нет.

«Сферический ФП» может порождать эффективный код только при навороченном компиляторе.

Таки да, и увы. Поэтому на практике быстрее там, где есть хороший компилятор. Причём ещё нужно уметь приделывать правильные костыли, ибо из наивного «идеоматичного» кода никакой компилятор не сделает конфетку.

no-such-file ★★★★★
()
Ответ на: комментарий от dave

но порог вхождения у раста заметно ниже, чем у плюсов

лол, нет - порог вхождения в раст сильно выше

Для меня главный минус растишки в том, что ее по факту нет на эльбрусах

жирнота

next_time ★★★★★
()
Ответ на: комментарий от no-such-file

про сферический в вакууме ФП

сферический в вакууме ФП работает с адресованными функциями, а вызывать функцию по её адресу на современных GPU нельзя - шах и мат

next_time ★★★★★
()

Очевидно, что для NLP надо выкинуть к херам питон, и тем более не лезть во что-то низкоуровневое.

А надо взять Common Lisp, на нем например написан Grammarly, а это уже о чем-то говорит.

lovesan ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.