LINUX.ORG.RU

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

для эквивалентных языков никто пока не написал 100500 либ

Если бы они существовали, проблема бы решилась с помощью ffi к плюсам.

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

проблема бы решилась с помощью ffi к плюсам

И как, по вашему, должен выглядеть ffi к плюсовым шаблонам?

А ведь с конца 1990-х шаблоны в C++ используются очень активно, и чем дальше, тем активнее.

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

«А что по этому поводу думает маршал Жуков?»
На github нужно посмотреть статистику Иосиф Виссарионович.

vladimirmir2016
() автор топика
Ответ на: комментарий от eao197

Значимая их часть в условном новом языке может оказаться не актуальной, остальное можно транслировать.

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

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

Значимая их часть в условном новом языке может оказаться не актуальной, остальное можно транслировать.

Вот есть, например, Asio. С активным использованием шаблонов.

Или есть, например, Eigen, которая вообще вся на шаблонах.

Расскажите, как сделать с ними ffi?

Или что в них окажется неактуальным для нового гипотетического языка?

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

Это не я заговорил про ffi для плюсовых библиотек. А раз вы заикнулись, то давайте, вещайте. Повеселите публику.

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

Камон, одно дело библиотека, которая делает что-то полезное сама по себе, а другое дело, библиотека которая предоставляет внутриязыковые конструкции. И ты докопался до ffi, но почему-то опустил вариант с трансляцией. Eigen, скорее всего, без проблем получится транслировать.

WitcherGeralt ★★
()

wchar_t заменялся на char16_t; мы решили отказаться от использования wchar_t, т.к. char16_t на всех ОС занимает 2 байта и не портит совместимость кода между Windows и Linux.

Почему не char32_t?

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

Камон, одно дело библиотека, которая делает что-то полезное сама по себе

Asio и Eigen как раз делают полезное сами по себе.

библиотека которая предоставляет внутриязыковые конструкции

WTF?

И ты докопался до ffi, но почему-то опустил вариант с трансляцией. Eigen, скорее всего, без проблем получится транслировать.

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

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

Понимаешь, надо человекочитаемый.

На Racket есть всё (а чего нет можно дописать):

#lang honu
for x = 1 to 10 do {
 var y = x + 1;
 printf("x ~a y ~a\n", x, y)
}
#lang algol60
begin
  integer x, y;
  x := 2;
  y := 3;
  println (x+y)
end
#lang datalog
edge(a, b). edge(b, c). edge(c, d). edge(d, a).
path(X, Y) :- edge(X, Y).
path(X, Y) :- edge(X, Z), path(Z, Y).
path(X, Y)?
#lang profj/full
 
class Example {
  static String result = null;
  public static void Main(String[] args) {
    result = "Hi";
  }
}
monk ★★★★★
()
Ответ на: комментарий от madcore

С хабра:

Sterpa

Почему вы не использовали везде максимальный размер wchar_t из существующих систем = 4 байта? Эффективность расширения стандарта на порядок выше, чем при его урезании.

PeterG

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

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

Ну например что вам надо? Я как раз замечаю что в С++ так сложно распространять либы, что ряд динозавров живет, которые пакуют для дистров, но динамической экосистемы вроде NPM/Crates/Maven нету

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

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

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

Eigen основан на паттерне «шаблон выражения», транслировать его в язык без шаблонов не получится. Но есть реализация BLAS поверх Eigen, это уже сишный апи со всеми вытекающими

annulen ★★★★★
()

В нашем коде мы повсеместно используем std::wstring, основанный на типе wchar_t. Его размер в Windows 2 байта, а в Linux по умолчанию 4 байта. Это приводило к несовместимости наших бинарных протоколов между клиентом и сервером, а также различных персистентных данных.

Смелые ребята. Бинарный протокол и персистентные данные путем вбабахивания строки С++ по проводу.

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

Asio и Eigen как раз делают полезное сами по себе

Про Asio никогда не слышал. Предъявление нечта редкоземельного — это очень наглая и дебильная тактика в спорах. Я хз что именно делает Asio, но т.к. ты говоришь о шаблонах, то я предположил, что ничего.

WTF?

Что предоставляет тебе Eigen?

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

Обоснуй.

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

Eigen основан на паттерне «шаблон выражения»

Там не только это. ЕМНИП, например, там матрицы реализуются на шаблонах. И на шаблонах же указывается, как матрица представляется в памяти — по столбцам или по строкам.

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

но динамической экосистемы вроде NPM/Crates/Maven нету

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

А так vcpkg, conan, hunter, cget.

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

Как раз специфика Eigen-а в том, что там на шаблонах реализация сделана. И переделать ее без шаблонов — это переписать заново.

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

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

В отличии от вас у меня есть представление и о C++, и об Asio, и об Eigen. И, немного, о других ЯП и особенностях интеропа между C++ и остальным миром.

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

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

Это какой-то новый штамм болезни кои8-р.
ЕМНИП, на многих не 16-битных системах работа с 16-битными данными может оказаться медленней.
Ну пусть, допустим строк действительно очень много.

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

в язык без шаблонов не получится

Почему обязательно без?

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

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

Да я не говорю, что обязательно прав, просто ты не способен доказать обратное. А почему не способен? Либо просто выпендриваешься, либо ума не хватает.

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

А почему не способен?

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

Тогда вы сами смогли бы понять абсурдность вот таких ваших высказываний:

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

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

Что характерно для современного уровня «специалистов» в ИТ.

eao197 ★★★★★
()

Об светлом будущем C++
Об светлом
б с

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

Вы же не знаете в достаточной степени C++

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

вас сперва нужно научить C++у в такой степени, чтобы вы понимали

«Если ты не можешь объяснить теорию ребёнку, значит ты сам не понимаешь о чём говоришь» — приписывают Эйнштейну. Ты сам, видимо, не одупляешь как следует, потому и не способен по делу ничего сказать. Ты просто переводишь стрелки, а на деле ты сам прекрасная демонстрация эффекта Даннинга-Крюгера.

Что характерно для современного уровня «специалистов» в ИТ

Сказал этот самый «специалист» этого самого ИТ этого самого уровня.

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

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

Но, при этом всем:

Идеальное направление для плюсов — могила. Это невероятных размеров монстр Франкенштейна который со временем становится только жирнее и уродливее.

Какое еще подтверждение тому, что вы говорите о том, в чем не разбираетесь, вам нужно?

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

Зачем орать, что тебе что-то нужно, если, когда показывают готовое, вести себя, как нехочуха?

Чтобы привели примеры. Чем больше шума, тем больше отвечают.

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

Это же 1сники. У них там на плюсах целый язык написан.
Кстати. Что мне там говорили, что метаязык не нужен? Вот, кейс для его применения: 1с. Ну, конечно, можно всё сделать костылями на плюсах.

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

Чтобы видеть очевидное (их уродство), не обязательно досконально разбираться в плюсах.

Какое еще подтверждение тому, что вы говорите о том, в чем не разбираетесь, вам нужно?

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

И таки да, что-то вполне можно прицепить через ffi, что-то можно транслировать, а что-то можно и переписать. Пусть даже не всё и не всегда, но мой изначальный посыл в силе.

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

Ой, простите, я сразу не понял, что говорю с «малолетним дебилом» (с)

Кстати, насчёт 2М строк. Тут проблема в том, что они не вместятся в одну голову. Просто представь, что будет, если те, кто это поддерживает загремят в дурку. Такие проекты не нужны, серьёзно. Тут автор duktape говорит, что не хочет лезть в код своего компилятора js, а у него там всего 10к строк кода. Жирные мегапроекты нахер не нужны, зря ты так.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)

Сдается мне, что C++ всех нас переживет, как и C, пока не придумают принципиально новую аппаратную платформу, но это вряд ли будет. Так что, мучайтесь на здоровье!

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

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

И про lisp что-то подобное слышал

SR_team ★★★★★
()

Почему в этом треде собрались люди, которые про C++ слышали только на ЛОРе, но мнение они уже имеют?

Засрали весь тред глупыми постами и заглушили интересные технические дискуссии.

Стыд и срам, но на хабре более адекватные комментарии у этой статьи, чем здесь.

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

Ну например что вам надо? Я как раз замечаю что в С++ так сложно распространять либы, что ряд динозавров живет, которые пакуют для дистров, но динамической экосистемы вроде NPM/Crates/Maven нету

Отсутствие менеджера пакетами (который должен хорошо совмещаться с системой сборки, чтобы не дублировать граф зависимостей, да еще и поддерживать несколько систем сборки, потому что стандартной нет) одна из основных сложностей экосистемы C++ на текущий момент. Пакетных менеджеров на настоящий момент штук 10, причем живых и развивающихся несколько.

Лично мне подход C++ в этом вопросе кажется более практичным. В большинстве языков кто-то очень умный придумывает пакетный менеджер (как часть экосистемы) и он покрывает 95% нужных пользователям функций, потому что даже самый умный создатель языка (или небольшая команда) не могут знать обо всех потребностях пользователей и способах использования языка. Кроме того, создатели в своем мозгу обычно имеют идею как должен быть устроен «правильный» пакетный менеджер, и все что не стыкуется с этой идей отвергается (один человек или небольшая кучка людей решают как «правильно» должен работать менеджер пакетов). В результате пользователи сразу получают пакетный менеджер, но часть из них в пролете и пользуются костылями.

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

P.S. Уже прям щас ты можешь начать пользоваться conan, например. У него довольно большой репозиторий уже готовых пакетов. Его можно использовать с разными системами сборки (conan только пакетами управляет).

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

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

Кстати, насчёт 2М строк.
Такие проекты не нужны, серьёзно.

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

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

Смелые ребята. Бинарный протокол и персистентные данные путем вбабахивания строки С++ по проводу.

Они изначально писали только под винду, тогда это было оправдано.

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

Почему в этом треде собрались люди, которые про C++ слышали только на ЛОРе, но мнение они уже имеют?

«Он нам и нахрен не нужон, си-плюс-плюс ваш.»

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

Они изначально писали только под винду, тогда это было оправдано.

Сабжевый софт в 2006 году портировали под Linux. Неужели их Legacy настолько выходит за пределы 12-ти лет?

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