LINUX.ORG.RU

Язык программирования Картарика.

 , , ,


2

1

Решил открыть отдельную ветку на эту тему, так как возникло много вопросов по этой теме в другой ветке. Поэтому обсуждаем здесь.

Язык программирования Картарика или Картарский язык является строго-типизированным объектно-ориентированным языком с обязательной инициализацией переменных с ограниченным сборщиком мусора и запретом кольцевых зависимостей.

Создается на основе русской раскладки клавиатуры. С открытым исходным кодом. Разрабатывается на языке C.


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

Из того, что где-то поддерживается юникод, не следует, что юникод должен быть везде. Видимых линкеру юникодных символов я не видел. И да, тебе выдать на поиграться мой VT240, который мне еще иногда нужен? Ищи там юникод :) Кроме ключевых слов, есть еще имена функций и внешних переменных. В общем, это тухлый разговор. Допускать юникод ради юникода — это порочная идея. Строки — на здоровье, и то, лучше для этого локализацию типа gettext использовать.

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

Это всё можно долго обсуждать, но разработчики компиляторов и языков уже допустили юникод и он уже поддерживается. Можешь продолжать считать это порочной идеей. Видимо, твой VT 240 не так уж значим для основной массы людей, и те ограничения, которые ты хочешь всем ради него навязать, оказались разработчикам основных ЯП неинтересными.

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

Видимых линкеру юникодных символов я не видел

Скорее всего, если это линукс, то там utf-8. Не проверял, надо бы найти время и проверить.

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

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

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

ну договорились бы уже наконец и выбрали один язык и все бы его выучили. сколько проблем бы решилось таким образом. вроде разумные существа а ведут себя как чёрти кто.

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

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

Нет. Юникод существует для того чтобы облегчить компьютеру передачу информации. Полноценно работать на языках ты там мог еще в 80хх, а вот при передаче инфы на другой комп - тот не понимал как отобразить то, что ему прилетело.

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

ну договорились бы уже наконец и выбрали один язык и все бы его выучили

Ты одно DE сначала выбери)))

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

Такое уже было. 15_стандартов.жпег, на последней странице - эсперанто, и чо там, как оно ?

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

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

И да, использование повсеместное юникода уже приводит к проблемам. Попробуйте поработать с последовательным портом на третьем питоне, получите кучу проблем. Я тут как-то разбирался с софтом для прошивки раций, так при переходе на третий питон, модуль отправки байтов в порт мне говорит «у вас строка юникодная, не понимаю я таких», при том, что написана она «на чистом ASCII». Вот чо это за нах?

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

Тебе не нужно, но авторы стандартов и реализаций Явы, JS, С, go, питона 3 разрешили юникод в идентификаторах. Значит твоё ненужно - только твоё и ещё кого-то, но лидеры в отрасли, которые создают стандарты, решили по-другому. Ты считаешь, что все должны писать идентификаторы только в латинице - но эта точка зрения не единственная. Я считаю, что совершенно естественно писать программный код на национальных языках, в т.ч. на русском. И это не только моё мнение, а ещё и факт, имеющийся на рынке. В России очень востребованы программисты 1С, на hh.ru вакансий «программист 1С» больше, чем «программист X» для любого другого X. Во всяком случае, так было год-два назад, когда я это последний раз проверял. А в культуре 1С программный код пишется в основном на русском. Я не думаю, что авторы clang, MSVS и gcc ввели юникод в идентификаторы именно глядя на 1С, но очевидно, что они чем-то при этом руководствовались. В целом сегодня люди и их навыки стоят дороже, чем компьютеры, а людям удобнее работать на родном языке, а не на английском. Возможно, авторы gcc имели в виду именно это. А может бытЬ, они хотели, чтобы можно было использовать греческие буквы и разные экзотические значки, которые делают запись плотной. Но со значками можно наступить на много грабель, и я в ЯОС разрешаю только очень ограниченное подмножество юникода. Кстати, надо не забыть и выяснить, чем мотивировали свои решения авторы всех вышеперечисленных языков. Если ты выяснишь и подгонишь цитатки - буду благодарен.

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

Ваше эмоциональное заявление не отменяет конкретных проблем питона с юникодом. Хотя, частично их объясняет. А так, ну пишите на чем угодно. И хлебайте проблемы ложками. Я не буду, мне не удобно. У меня не на всех клавиатурах и буквы-то русские есть. 1С — штука нишевая, вряд ли все разработчики clang вообще в курсе, что она существует. Ну и что из того, что на ХаХа много вакансий для ОдинЭсеров? Ну популярная в России штука, Вакансий для джаваскриптеров, полагаю. больше. А так, придумывать русский синтаксис только потому, что он русский — ну можно, да в качестве хобби. Есть и французские языки и испанские, и немецкие. И, даже, модуль для перла, который позволяет писать программ на латыни. Очень красиво, кстати, получается. Lingua::Romana::Perligata называется. Как кундштюк красиво, как продакшн — как минимум не перносимо.

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

Ваше эмоциональное заявление не отменяет конкретных проблем питона с юникодом.

Ты используешь строки с символами для хранения байтов, это не проблема питона.

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

Это не я использую строки для хранения байт, это Chirp их так использует. Во втором питоне это работает, в третьем перестало. Вот и проблема, которая стала моей. Порт Chirp'a на третий питон оказался полностью неработоспособен. Вот как-то так.

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

Да, Javascript перегнал, но некритично - по России 11000 JS, 9000 1C. По Москве разрыв больше. Но тут дело не в моих эмоциях, а в причинах присутствия юникода в clang, gcc и иже с ними. Не я же его туда впилил. И у 1С синтаксис русский, но это не для хобби, а для дела. Она в своей нише популярнее Галактики или Sap, у которых англоязычные языки. А сколько уж она других конкурентов похоронила - не сосчитать.

От Питона я стараюсь держаться подальше всегда, поэтому могу только издалека тебе посочувствовать, а за себя порадоваться. Надо было изначально сделать по-нормальному. Лисп с 90-х не меняется, и почему-то там с этим не так уж сложно, хотя и там проблемы есть. Но там юникодные строки уже очень давно присутствуют. Никто не заставлял авторов Питона изначально делать убого. Если брать не маргинальщину, то в Java проблем таких вроде тоже нет, т.к. там изначально сделали с юникодом. Т.е. это проблемы именно Питона, а не юникода.

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

Проблема питона — это проблема бездумного использования юникода по умолчанию. У юникода своих проблем хватает (хотя бы, порядок байт в слове на разных процессорах). Я не то, что бы стараюсь держаться от питона подальше, я не возлагаю на него больших надежд В «режима перла» для мелкой автоматизации и автотестов он хорош, но не более. Присутствие юникода в gcc в виде строк — это «проблема негров, которая не волнует шерифа». Для gcc строка — это поток байт до ближайшего нуля. А UTF там восемь или еще что, компилятор не волнует. И это правильно.

И да, . Support for actual UTF-8 in identifiers is still pending

https://gcc.gnu.org/wiki/FAQ#utf8_identifiers

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

Видимых линкеру юникодных символов я не видел.

А что не так со связыванием символов в UTF-8?

as << 'конец' ; echo $LANG; nm
"Понятный символ": .word "Внешняя ссылка"
конец
en_US.UTF-8
                 U Внешняя ссылка
0000000000000000 t Понятный символ
vM ()
Ответ на: комментарий от den73

От Питона я стараюсь держаться подальше всегда, поэтому могу только издалека тебе посочувствовать, а за себя порадоваться.

+1

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

Я не знаю, что там написано в этом FAQ, но gcc с 10.0 кириллицу в идентификаторах поддерживает. ЕМНИП я это проверял, и вот тут есть свидетельство в эту же сторону. Я не понял, что они там обсуждают и каков реальный статус, и что у них означает «Resolved Fixed»

Нормальная поддержка юникода - это кодировки для ввода-вывода и массив 32-битных знаков внутри. Использование utf-8 для внутреннего представления - это просто костыль, но это к делу в общем-то не относится.

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

32 битные знаки это лишний расход памяти, почти никаких преимуществ они не дают, utf-8 оптимален.

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

Ну кстати, вожусь с Идеей. Есть плагин для Котлина - Chinese Pinyin - Code Completion Helper - скачан 253 тысячи раз. В аннотации написано:

初衷在于,一些业务上不太适合用英语表达的,可以用上直白的母语而非拼音,然后像平常写代码那样去调用母语所表达的东西,解决部分命名困难症🤔

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

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

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

Если есть другие способы выделения блоков, готов рассмотреть.

Двойные скобки (( )) уже предлагали ?

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

Всегда мечтал материться в исходниках на родном языке.

Что мешало это делать в комментариях? Можно и в коде:
if (0) {
printf(«да вертел я на юхе всё это погромирование!»);
}
int mama, nana, ocoka, mope, Bepa, xep, нах...

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

Ну если совсем не хотите «плагиата», тогда давайте и цифирки на римские заменим. Или ещё круче, что бы точно русский был, цифирки и чиселки - прописью.

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

Нет, дело не в плагиате. Как раз наоборот, много чего из других языков собрано. По другому и быть не может. Просто скобки сразу с LISP-ом дают ассоциации, вот и написал. А так, не плохая идея.

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

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

Не убедительно. Почему написание русских имен переменных и функций «быстрее» чем в латинице?

В-общем, хочется создать удобный мультиплатформенный ЯП на основе русской раскладки клавиатуры

А про кодировку не забыли? А то кроме раскладки клавиатуры таще-то ещё 100500 кодировок прилагается и это бОльшая проблема, чем раскладка.

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

Они жалуются, что им неудобно постоянно переключать язык.

ЯННП. Что значит «постоянно»? Вообще говоря «выводимой» информации во много раз меньше чем кода, если это не «программа» васи из 5-го йу. А для мультиязычных так аще ресурсы отдельно прикладывают.

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

Есть ещё одна проблема: приходишь на другой компьютер и там этой раскладки нет.

+1 Тоже самое хотел написать. Бывало на практике, когда я оказывался за чужим компом с целью поправить программу. Как говориться и так-то не удобно, хочется побыстрее это закончить, а тут тебе ещё и раскладка до кучи прилетит.
Кстати один из случаев был весьма ограничен по времени. Конечно возможен был вариант, дождаться когда я вернусь (дело было в другом городе), поправлю, переслать это все пользователю... но дало бы минус к карме. А так получилось с точностью до наоборот, заказчик достаточно прижимистый, с которого не просили денег за это, он оплачивал только трансфер... по итогам внезапно сказал, выставляйте счет.

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

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

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

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

А вот например группа программистов в русском банке, которая делает мобильное банковское приложение для русскоязычных клиентов вполне может использовать такой ЯП.

Угу, угу...процессинг передает вам большой и пламенный...

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

А у латиницы на родном мейнфрейме – родной EBCDIC. И тоже не один.

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

деятельность российских организаций (в том числе банков, в том числе филиалов иностранных банков) в России должна происходить на русском языке

А причем тут ЯП?

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

глобальный банк написал 42 мобильных приложения для 42 разных стран, силами 42 различных команд

Я очень сильно сомневаюсь что они каждый раз писали всё с нуля. Вполне верю что учёные в очередной раз изнасиловали журналиста и он ляпнул такую херню, про 42 разных приложения.

1. Фантазии. Кстати могли. Команда сверху: «зафигачить оболочку вот под 'это', таким образом как у вас тама пипл лучше схавает».
2. Реалии. Функционал различается в зависимости от региона. И вот пипиську за воротник, а не скачать приложуху «for region R1» «from» region R2. Причем настолько «за воротник», что в бане сети всяческих хостеров.

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

На своём родном языке человек быстрее думает, быстрее пишет и читает. Я достаточно долго искал научные статьи на эту тему именно по программированию, но не нашел. Возможно, не там искал. Интересно было бы узнать на сколько процентов быстрее осуществляется деятельность, если не приходится постоянно переводить на английский. Поэтому сейчас просто возьму цифру с потолка, например 20%. На самом деле эту цифру надо каким-то образом узнать, потому что она очень важна, чтобы понять насколько это нужно или нет.

Проведите исследования среди медиков на тему латыни.

Итак, допустим за счёт русскоязычности можно увеличить скорость разработки на 20%,

ЛОЛ. А теперь прекращаем флудить на ЛОРе и начинаем плотно готовиться к переэкзаменовкам.

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

Я останусь при своём мнении, что какого-то особого запроса на «непереключение» раскладки со стороны программистов нет и каждый кто утверждает обратное - врунишка.

Я вас поддерживаю.

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

Ага. В космосе международный язык - русский.

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

Базовый набор символов ASCII тоже можно по-разному закодировать. Да и сам набор символов не стоял на месте. На старых ASCII-терминалах вместо подчёркивания была стрелочка назад.

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

https://support.microsoft.com/en-us/office/excel-functions-translator-f262d0c0-991c-485b-89b6-32cc8d326889

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

Предметчики говорят на родном языке (потому что латынь перестала быть универсальным языком всех точных наук). То же и пользователи. Т.е. если у нас предметчики и пользователи говорят на русском, а программный код - на английском, значит, где-то в цепочке нужно включить работу переводчика, заплатить за неё и потом на протяжении всего ЖЦ постоянно повторять эту работу, когда код надо любым способом тронуть по цепочке от предметника или пользователя к коду.

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

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

Вообще говоря «выводимой» информации во много раз меньше чем кода, если это не «программа» васи из 5-го йу.

так что ли писать?

for(int позиция = 0; позиция < данные.count(); позиция++) {
  формаПрограммы.вывести(данные[позиция]);
}
формаПрограммы.show();
monk ★★★★★ ()
Ответ на: комментарий от monk
for( auto нечто : данные) {
  формаПрограммы.вывести(нечто);
}
глянь(формаПрограммы);
vM ()
Ответ на: комментарий от anc

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

Для того, чтобы ездить, понимать конструктора вообще не надо.

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

А если описания знаков ПДД будут приведены только по-английски, то это и ездить может помешать.

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

Пара анекдотов в тему:

Умер старый капитан. Много лет водил он суда по морям и океанам. Все уважали старого капитана. Однако была у него одна странность. Стоя на мостике, прежде чем отдать команду, он всегда доставал из кармана маленькую бумажку, смотрел на нее, и затем уже отдавал команду. Никто никогда не видел, что написано в этой бумажке.

После похорон капитана офицеры, снедаемые любопытством, собрались в кают-кампании. Старший помощник торжественно подошел к капитанскому кителю, вынул бумажку и развернул ее. На бумажке было написано: „Перед — нос, зад — корма“.

Уволилась сегодня от нас одна сотрудница, проработавшая лет семь. Подхожу я к её монитору и вижу наклеенный стикер:

 Дебет	(-)	актив
 Кредит	(+)	пассив
monk ★★★★★ ()
Ответ на: комментарий от Nervous

Совсем набоборот: текстовое раскаладочноориентированное программирование.

vM ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)