При том, что благодаря этой древности компиляторы существуют под многие платформы. Хотя я считаю, что С еще лучше для таких вот базовых библиотек. Вероятно, и Rust тоже.
N>На чем ее можно написать? Только на плюсах, ну может на Rust-e. Если под низкоуровневостью понимается отсутствие gc, то да это тоже важно.
Не только и не столько отсутствие GC, сколько отсутствие сложных runtime компонентов. Нет ни виртуальной машины, ни развитой стандартной библиотеки, ни всяких других полезных штуковин типа менеджера зависимостей. Это именно что низкоуровневый язык для написания системных библиотек, притом весьма устаревший. Писать сколь-нибудь высокоуровневый код (и тем более продукты и сервисы) на нем нет смысла.
Re[9]: Хочется выучить такой язык программирования
Здравствуйте, SkyDance, Вы писали:
SD>Не только и не столько отсутствие GC, сколько отсутствие сложных runtime компонентов. Нет ни виртуальной машины, ни развитой стандартной библиотеки, ни всяких других полезных штуковин типа менеджера зависимостей. Это именно что низкоуровневый язык для написания системных библиотек, притом весьма устаревший. Писать сколь-нибудь высокоуровневый код (и тем более продукты и сервисы) на нем нет смысла.
А ещё для плюсов есть стандарты. Для С тоже есть, что-то на нем пишут, но больше конечное ПО, а не библиотеки.
По факту на плюсах пишут новое системное ПО и пока альтернативы не видно. На С получается хуже: многословно, нет стольких удобных абстракций. Мне кажется, что большие данные, нейросети и edge вычисления привели к большому подъему C++, на нем стали писать кучу системного ПО и библиотек. Не сказать, что раньше этого не делали, но прямо таки волна нового пошла. В этой области ни С, ни Rust я даже под микроскопом не вижу.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, Разраб, Вы писали:
M>>>>Хочется выучить такой язык программирования, по которому пока мало специалистов, но у которого большое будущее. S>>> Знакомиться нужно со всеми языками. Ничего принципиально нового ни в одном новом языке нет. S>>> Есть фичи собранные из разных языков и выкинуты анахронизмы.
Р>>Тут есть два момента, которые следует учесть: Р>>1. когда переключаешься на другой яп неизбежно возникает когнитивный диссонанс из-за отличий в синтаксисе. Р>>2. возникает мешающее сосредоточиться на решении проблемы желание воспользоваться "лучшим" ЯП. S> У меня был момент когда я сразу использовал 5 языков 1С,C#,C++, TypeScript и JS вкупе с ангуларом
Это скорее всего задачи уровня "json туда, json обратно". Навряд ли также будет легко переключаться между C# и ts и js
при написании большой нетривиальной логики типа софтового рендерера или что-то в этом роде. А так, прочитал из базы
на шарпе, прокинул в json, на клиенте с помощью ts/js прочитал, проваледировал, сделал какой-нибудь binding.
Не очень сложно.
Кодом людям нужно помогать!
Re[8]: Хочется выучить такой язык программирования
Здравствуйте, novitk, Вы писали:
N>Здравствуйте, SkyDance, Вы писали:
SD>>А я что написал? В силу древности и низкоуровневости языка, он много куда проник за столь долгое время пребывания на рынке. N>При чем здесь древность я не понял. Тебе сегодня нужно написать новую библиотеку, которую надо будет использовать в разных экосистемах, например как tflow. N>На чем ее можно написать? Только на плюсах, ну может на Rust-e. Если под низкоуровневостью понимается отсутствие gc, то да это тоже важно.
На чистых сях, очевидно. Зачем для этого плюсы, если это сугубо узкоспециализированная библиотека, где особо абстракциями растекаться не надо -- я
Кодом людям нужно помогать!
Re[6]: Хочется выучить такой язык программирования
Здравствуйте, novitk, Вы писали:
N>Здравствуйте, SkyDance, Вы писали:
SD>>C++ популярен лишь в силу исторического положения. На нем, и про него, слишком много уже написано. Чем-то напоминает латынь, вроде бы уже мертвый язык, но много людей в состоянии понимать. N>Даже вне легасу и числодробилок C++ безальтернативен для "фундаментальных" библиотек. Нет пока другого языка где можно написать библиотеку и относительно просто интегрировать ее во все возможное (jvm,python,.net и т.д).
Язык Си, вестимо. Все "фундаментальные" библиотеки на нем всегда написаны.
Здравствуйте, Miroff, Вы писали:
M>Julia — спецов нет, будущее огромно, для выскокопродуктивных (производительность программиста) и высокопроизводительных (производительность кода) научных и инженерных вычислений альтернативы просто нет. С++ дочень дорог в разработке и поддержке, а Python тормозной.
Тормозной питон использует обертки для вызова си кода в соотв. библиотеках.
Кодом людям нужно помогать!
Re[5]: Хочется выучить такой язык программирования
Здравствуйте, Sharov, Вы писали:
Р>>>Тут есть два момента, которые следует учесть: Р>>>1. когда переключаешься на другой яп неизбежно возникает когнитивный диссонанс из-за отличий в синтаксисе. Р>>>2. возникает мешающее сосредоточиться на решении проблемы желание воспользоваться "лучшим" ЯП. S>> У меня был момент когда я сразу использовал 5 языков 1С,C#,C++, TypeScript и JS вкупе с ангуларом
S>Это скорее всего задачи уровня "json туда, json обратно". Навряд ли также будет легко переключаться между C# и ts и js S>при написании большой нетривиальной логики типа софтового рендерера или что-то в этом роде. А так, прочитал из базы S>на шарпе, прокинул в json, на клиенте с помощью ts/js прочитал, проваледировал, сделал какой-нибудь binding. S>Не очень сложно.
Здравствуйте, novitk, Вы писали:
n> Даже вне легасу и числодробилок C++ безальтернативен для "фундаментальных" библиотек. Нет пока другого языка где можно написать библиотеку и относительно просто интегрировать ее во все возможное (jvm,python,.net и т.д).
Здравствуйте, Sharov, Вы писали:
S>На чистых сях, очевидно. Зачем для этого плюсы, если это сугубо узкоспециализированная библиотека, где особо абстракциями растекаться не надо -- я
На чистых сях библиотеки давно не пишут. Чуть менее чем все на плюсах: qt, pytorch, opencv, llvm, etc. Поэтому и набор инструментария для wrapping такой богатый.
Re[7]: Хочется выучить такой язык программирования
Здравствуйте, Sharov, Вы писали:
S>Язык Си, вестимо. Все "фундаментальные" библиотеки на нем всегда написаны.
Ну, далеко не все. Современные пишут уже на С++. Линейная алгебра вообще на Фортране сидит.
AlexeyAB, который развивает форк Darknet, написанный на С уже до него написал пару статей (раз и два), в которых рассказывает, почему С++ лучше. Подобных статей и рассказов можно найти ещё, у Антона Полухина видел, например. Суть в том, что на плюсах за счёт абстракций времени компиляции можно писать и более краткий, и одновременно более быстрый код. Кажется, что у С есть только одно преимущество — для неспециалиста код на нём читается и пишется легче. Но мы же о фундаментальных библиотеках говорим, зачем там авторы-новички?
Re[7]: Хочется выучить такой язык программирования
Здравствуйте, Sharov, Вы писали:
S>Тормозной питон использует обертки для вызова си кода в соотв. библиотеках.
Это очень большая проблема. К тому же плюсы низкоуровневы и приходится все переписывать по нескольку раз под различные тензорные железяки/API, которого стало жутко много. Поэтому и Julia(или Моjo, хотя это имхо "палки в колеса").
Здравствуйте, novitk, Вы писали:
N>Здравствуйте, Sharov, Вы писали:
S>>Тормозной питон использует обертки для вызова си кода в соотв. библиотеках. N>Это очень большая проблема. К тому же плюсы низкоуровневы и приходится все переписывать по нескольку раз под различные тензорные железяки/API, которого стало жутко много. Поэтому и Julia(или Моjo, хотя это имхо "палки в колеса").
1)О каких плюсах речь, если я про Си?
2)Что может быть более кроссплатформенное, чем Си? И как Julia помогает не переписывать все по нескольку раз? По идее есть одна либа, которая
предоставляет api к железу, вот она может меняться и, наверное, часто. Остальные клиенты этой библиотеки, в том числе питон, могут
про эти изменения вообще ничего не знать. Хотя это не точно.
Кодом людям нужно помогать!
Re[8]: Хочется выучить такой язык программирования
Здравствуйте, novitk, Вы писали:
S>>Язык Си, вестимо. Все "фундаментальные" библиотеки на нем всегда написаны. N>Не знаю ни одной библиотеки после gtk на C. Назови хоть одну.
Вот сейчас работаю с видео -- и gstreamer и ffmpeg написаны на чистых сях.
Далее, numpy... хотя вот же список для просвещения -- https://notabug.org/mazurov/awesome-c
Скорее удивительно, что pytorch не на сях написан. Все-таки, вероятно, есть какая-то разница между библиотекой
и фреймворком. Если библиотека это бери и пользуйся, то тут Си, если фреймворк, нечто большее и предоставляющее высокоуровневые
абстракции (что кстати актуально для torch'а и DL в целом), то тут все же плюсы более уместные. Т.е. да, логично что torch и иже
с ним на плюсах, иначе как использовать все эти абстракции на си --
Кодом людям нужно помогать!
Re[10]: Хочется выучить такой язык программирования
N>Мне кажется, что большие данные, нейросети и edge вычисления привели к большому подъему C++, на нем стали писать кучу системного ПО и библиотек. Не сказать, что раньше этого не делали, но прямо таки волна нового пошла. В этой области ни С, ни Rust я даже под микроскопом не вижу.
Если брать именно количество строк кода, то на том же Питоне на порядок-два больше написано (пусть это все в итоге и вызывает соответствующий код на С — даже не на С++).
"Новую волну" я наблюдал как обезьянничество "а вот смотрите, в гугл на С++ пишут". Этакое самоподдерживающееся пророчество, язык неподходящий для написания бизнес-логики, но в силу сложности работы в корпоративной среде (где поддерживать дополнительные языки дорого), а также в силу наличия совершенно безумных фанатов-любителей С++ (которые попросту не в состоянии осилить более современные языки), приходится пользоваться чем дают.
Не знаю, надолго ли такого запала хватит, да и знать не хочу. Но мне это выгодно — чем дольше другие пользуются каменными топорами, тем легче будет тем, кто освоил более современные орудия труда. Так что, пусть С++ и далее живет и пахнет
Re[9]: Хочется выучить такой язык программирования
Здравствуйте, Sharov, Вы писали:
S>Вот сейчас работаю с видео -- и gstreamer и ffmpeg написаны на чистых сях. S>Далее, numpy... хотя вот же список для просвещения -- https://notabug.org/mazurov/awesome-c
"лихие 90-е" как и gtk, 20y+ Ты еще LAPACK вспомни.
S>Если библиотека это бери и пользуйся, то тут Си, если фреймворк, нечто большее и предоставляющее высокоуровневые S>абстракции (что кстати актуально для torch'а и DL в целом)
имхо грань не качественная, а количественная. Нет библиотеки, которая не хочет стать фреймворком.
S>с ним на плюсах, иначе как использовать все эти абстракции на си --
Единственнoe преимущество у C над C++ — ABI проще. все остальное хуже.
Здравствуйте, Sharov, Вы писали:
S>1)О каких плюсах речь, если я про Си?
На C все еще хуже без шаблонов. Посмотру на мат библиотеки типа NAG, там копипаста через борт.
S>2)Что может быть более кроссплатформенное, чем Си?
Речь идет о легкости с которой можно перенести тензорный алгоритм на специальные архитектуры(GPU и специальные процессоры) в стиле jax/pytorch/tflow.
Нужно очень приличное метапрограммирование: доступ к all stages of compilation pipeline, LLVM, etc. В общем это все не про C/C++. https://www.youtube.com/watch?v=pdJQ8iVTwj8
Здравствуйте, novitk, Вы писали:
S>>Вот сейчас работаю с видео -- и gstreamer и ffmpeg написаны на чистых сях. S>>Далее, numpy... хотя вот же список для просвещения -- https://notabug.org/mazurov/awesome-c N>"лихие 90-е" как и gtk, 20y+ Ты еще LAPACK вспомни.
Ога и они их успешно пережели, что как бэ показательно.
S>>Если библиотека это бери и пользуйся, то тут Си, если фреймворк, нечто большее и предоставляющее высокоуровневые S>>абстракции (что кстати актуально для torch'а и DL в целом) N>имхо грань не качественная, а количественная. Нет библиотеки, которая не хочет стать фреймворком.
Полно библиотек-функций -- что-то такое нетривиальное сделать, получив указатель на память и параметры.
И опять -- бд почему-то игнорируются.