LINUX.ORG.RU

Выбор ЯП для системного программирования.

 ,


2

4

Добрый день, задумался я тут о том чтоб начать учить один из низкоуровневых ЯП для развития и разработки. До этого писал только на Python, но он на роль языка разработки системных инструментов не подходит. Так как тут народ опытный хотел бы узнать что в данный момент лучше начинать учить? Пока выделил следующие ЯП. C,C++,JAVA,RUST.


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

По поводу define вы уже недавно вляпались

Братишка, где я вляпался?

почему упоротые C-шники не могут свои примеры сходу без ошибок написать

Какие ошибки, ты о чем? Человек спрашивал, как лучше оформить конкретный код. Зачем грузить его do..while(0) и прочими вещами, от которых у неподготовленного кресторебенка волосы на ногах дыбом встанут?

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

Ты опять пытаешься соскочить с темы, петушок. ты начало кукарекать про std string в сравнении с char[]. я тебе предлагаю накатать аналог кода С++ с декой и продолжить мериться time'ми. ты сливаешься и кукарекаешь что-то за проекты. Ты ж, чмошник, даже свой Си не знаешь. Ты теперь почетный петух ЛОРа, можешь на аве это написать.

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

Слив засчитан,следующего несите!))Ну ты и тупой,просить код когда ты сам ничего показать не можешь,лол))Даже для жырного тролинга тупо)

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

Петушок, ты сливаешься опять. Я тебе накатал код, аналог которого ты ниосилил (что было очевидно с самого начала). Тыж чмо безграмотное. Ты не знаешь ни Си, Ни С++. Даже школота из 9 класса уже давно бы аналог накидала. Хотя есть подозрение, что ты только из 7ого.

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

Я тебе накатал код

Это копипаста,показывай мне свой проект нормальный.

ты ниосилил

Батарейка видимо села,алгоритм опять не сохранился

Хотя есть подозрение, что ты только из 7ого.

3 класс, вот сегодня решил прогулять

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

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

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

Братишка, где я вляпался?

Еще одно наблюдение: чем неадекватнее чувак, тем быстрее он скатывается на панибратство.

Вляпались вы в отсутствие дополнительных скобок вокруг аргументов макросов. Язык C настолько прост, что эту детскую ошибку допускают все. Причем неоднократно. И регулярно.

eao197 ★★★★★
()

Ничесе крестогеи устроили курятник. Те дегенераты, что якобы «за сишку», похоже виртуалы чокнутого проффэсора Евгения О. За 30 лет долбежки в кресты конечно тронешься умом то.

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

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

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

Зачем грузить его do..while(0) и прочими вещами, от которых у неподготовленного кресторебенка волосы на ногах дыбом встанут?

Как ни странно, обычно начинающие сиплюсники как раз пишут в основном в сишном стиле, с макросами, указателями, ручной работой с памятью и пр. Возможно потому-что это первое что им обычно рассказывают в универах и книжках. А от «do..while(0)» у любого вменяемого человека должны волосы на ногах дыбом вставать, т.к. это костыль, т.е. язык прямо тебя говорит - костыляй, пиши кривой код, ходи по граблям.

anonymous
()

Полный пинцет!

Я думал, что тут будет просто растосрач, а оказалось, что тут /s/пецолимпиада /s/о/s/ач стайл!

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

Я думал, что тут будет просто растосрач

Растоманы как-то неубедительны в нише системного программирования :)

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

Я про местных, LOR-овских, которые отметились в этой теме.

А игрушечные и никому не нужные ОС на чем только не писали.

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

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

А вот про printf не надо. Ежедневно пользуюсь ими на плюсах.

Потому что такое УГ, как std::cout, ещё поискать надо. Я серьезно. Ни в одном языке такого не видел.

Вообще, насколько я слышал, Страуструп просто перегрузил >> и << в качестве демонстрации возможностей нового (на тот момент) языка. Пользоваться этим не обязательно.

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

Ну и поддерживает C++ные типы, у которых определен operator<<(std::ostream). В том числе и любые пользовательские типы ;)

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

Я думал, что тут будет просто растосрач

Растоманы как-то неубедительны в нише системного программирования :)

Meanwhile в треде:

 — Ты петух!
 — Нет, ты!
 — Я первый сказал!

Очень убедительно =)

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

А чего раст?

Раст няшка. Можно делать то же, что и в сишке, но втрое больше кода писать. И в 10 раз больше аски-арта! Отрада для артистичной натуры.

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

Очень убедительно =)

Ну я надеюсь, что этот срач модераторы со временем вымарают. Так что на это можно не обращать внимания.

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

Безопрасно же ну! И еще это как его зерокост во! Смузихлёбам нравится

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

Если возиться со строками, то я сильно сомневаюсь, что сишка будет компактнее. А аски-арт зависит от проекта. У меня вон на тысчонку строк с пяток лайфтаймов от силы наберется, а так — питон питоном. Так что всё зависит от проекта.

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

Что за проект? Веб-сервис по доставке маффинов? Сделай лучше там пипи.

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

На всякий случай скажу, что в g++ так можно. Называется VLA (Variable-Length Arrays).

Но словить stack overflow на таких VLA - просто вопрос времени. После чего это место переписывается на массив в куче, или же заменяется на int arr[max_size], что в любом случае означает выкидывание VLA.

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

словить stack overflow на таких VLA - просто вопрос времени

Есть реальные примеры такого?

Ну и потом, ничего не мешает сделать фоллбек на кучу если размер больше некоторого.

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

Если возиться со строками, то я сильно сомневаюсь, что сишка будет компактнее

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

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

чем неадекватнее чувак

И моя неадекватность проявилась в...?

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

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

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

int c99_detka;
scanf(«%d»,&c99_detka);
int arr[c99_detka]; /* А плюсы так не могут) */

man alloca, и не нужен С99, и, да, за такое надо убивать, т.к. это опасный и кривой код.

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

или же заменяется на int arr[max_size]

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

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

И моя неадекватность проявилась в...?

Во множестве сообщений на LOR-е.

Не «вляпался», а «намеренно пропустил».

Это теперь так говорят вместо «перекуем баги на фичи»? Зачем же было потом исправлять?

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

man подуматьПодольшеПреждеЧемОтвечать

Что конкретно тебе не нравится? Память так же выделится на стеке, так же автоматом подчистится, VLA это по сути синтаксический сахар.

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

алоки может и не быть кстати)Но не суть,я просто пишу примеры,не защищенные.Просто показываю примерно как надо,уже 2 страницы это и пишу.Там вот даже я перешел к my_super_hidden_functions()

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

Что конкретно тебе не нравится?

int bar(int *arr, int sz);

int foo(int arrsz)
{
  int res = 0;
  if (arrsz < 100) {
    int arr[arrsz];
    res = bar(arr, arrsz);
  }
  printf("res = %d\n", res); // arr no longer occupies stack space
  return res;
}


int foo2(int arrsz)
{
  int res = 0;
  if (arrsz < 100) {
    int *arr = alloca(arrsz * sizeof(int));
    res = bar(arr, arrsz);
  }
  printf("res = %d\n", res); // arr is still on the stack
  return res;
}
kawaii_neko ★★★★
()
Ответ на: комментарий от eao197

Во множестве сообщений на LOR-е

Понятненько. И в чем же заключается моя неадекватность?

Зачем же было потом исправлять?

Потому что могу.

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

// arr no longer occupies stack space

Согласен, хоть и не всегда arr будет в отдельной области видимости. Но и это можно обойти выносом кода в отдельную функцию (в случае gcc во вложенную):

  if (arrsz < 100) {
    void do_bar() {
        int* arr = alloca(arrsz*sizeof(int));
        res = bar(arr, arrsz);
    };
    do_bar();
  }

В случае С++ в лямбду.

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

И в чем же заключается моя неадекватность?

В написании подобных сообщений: Избежать повторения кода с помощью C++11 range-based for (комментарий)

Если вам кажется, что это адекватный текст, ну OK, пусть он будет таким в вашем восприятии.

Потому что могу.

А сразу написать без ошибок не можете. О том и речь.

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

Вала ващет того, немножечко умерла

Кто сказал? Где пруф? Почему?

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

Растоманам похер на внутренний срач у кормушки адептов С и С++, ибо к нему отлично применима аксиома Эскобара.

(но если бы был ультимативный выбор писать на Си или на С++ — всё же С++)

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

Благодарствую, пейсательство на плюсах теперь будет меньшей болью. ПМ бы еще, чтобы это всё руками не таскать :С

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