LINUX.ORG.RU

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

То, что ты (и я) не знаем, когда компактифицировать, ничего не доказывает.

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

Геймдев одна из самых велосипедных областей. Они могут довольно быстро переползти. Просто не на что.

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

А знаешь, что все современные процессоры архитектуры i386 тащат в себе всё устаревшее говно из процессора 8080, просто ради обратной совместимости, в том числе все недостатки этой архитектуры. А для этой убогой архитектуры великолепно подходит С. И да, таки он 40 лет на первом месте по популярности, а всякие rust-ы и haskell-и где-то в конце списка рядом с brainfuck-ом.

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

Устаревшее говно в твоей черепной коробке.

Откуда столько эмоций?

Никто и никогда в здравом уме не будет этим ужасом контроллеры шить.

Ну и зря. Конечно, лучше писать на С вот такое.

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

это уже не низкоуровневое.

Почему нет, если это делается без рантайм оверхеда?

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

Это простой, быстрый и надежный язык. Как молоток.

Си - это инструмент, который с завидной регулярностью бьет то по лбу, то по пальцам тем недоумкам, которые не удосужились вдумчиво прочитать 700 страниц стандарта на Си и считают его «простым как молоток».

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

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

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

именно самыми красивыми

эстетическая красота вся в головах эстетствующих :) С точки зрения эволюции - таки нет и не прямо :) Природа расточительна и слепа - сегодня в тренде длинные хвосты и яркие перья (а чо, самый красивый -> все самки твои) - завтра за эти хвосты хищнеги начинают регулировать численность «кто не спрятался, тот... лол» (с) Человеки вообще «красивыми» считают преимущественно тех, на кого охотились и, особенно, кто охотился на них («стокгольмский синдром» приматов, этология на этом давно причиняет батхерт «венцам творения») :) «Самый приспособленный/перспективный» != «самый здоровый/большой/сильный» (man экологич. ниша)

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

То что она велосипедная не значит, что можно быстро переползти, т.к. для начала в ЯП нужны вменяемые средства для работы с GPU. Да и сколько всего переписывать придётся.

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

А знаешь, что все современные процессоры архитектуры i386 тащат в себе всё устаревшее говно из процессора 8080, просто ради обратной совместимости

Да, знаю. Я также знаю о том, что есть «чистые» архитектуры.

А для этой убогой архитектуры великолепно подходит С

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

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

И да, таки он 40 лет на первом месте по популярности

Убойный аргумент.

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

Нерелевантно.

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

прочитать 700 страниц стандарта на Си

стандарт читать не нужно.

с завидной регулярностью бьет то по лбу, то по пальцам

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

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

Ну и пиши

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

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

стандарт читать не нужно.

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

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

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

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

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

i386 тащат в себе всё устаревшее говно из процессора 8080

Ты упоролся?
Что в 386 от 8080?

просто ради обратной совместимости

Они(внезапно!) не совместимы.

А для этой убогой архитектуры великолепно подходит С

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

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

Но его плавно переписывали, а тут надо всё и сразу вернувшись на стадию 20 летней давности.

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

i386 тащат в себе всё устаревшее говно из процессора 8080

Ты упоролся? Что в 386 от 8080?

думаю, товарищ имел в виду 8086

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

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

В расте нету арифметики указателей? Какой же он после этого «системный»?

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

это уже не низкоуровневое

Нет, низкоуровневое (по сегодняшним понятиям):
1. Программа ведет себя предсказуемо: никаких живущих своей жизнью сборок мусора и jit-ов.
2. Программист вынужден продумывать каждое выделение и использование памяти. И не важно, что компилятор не позволит программисту оступиться.

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

В расте нету арифметики указателей? Какой же он после этого «системный»?

Арифметика указателей нужна примерно в той же степени и в тех же объемах, в каких нужны ассемблерные вставки. Для этих целей в Rust есть Raw pointers, но это — unsafe, то есть зыждется не на формальной верификации, а на клятвах программиста.

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

В расте нету арифметики указателей?

Можно считать, что нет.

Какой же он после этого «системный»?

Назови, зачем нужна именно арифметика указателей. Мне в голову приходит только разбор хитрых двоичных форматов.

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

1. Программа ведет себя предсказуемо: никаких живущих своей жизнью сборок мусора и jit-ов.

таки да

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

без оверхеда (как shared_ptr) невозможно

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

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

А если я просто хочу надежно работающее системное ПО? Хотя бы без детских ошибок с памятью и гонками? Предложи что-нибудь лучше Rust?

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

без оверхеда (как shared_ptr) невозможно

4.2

тогда возможно с дикими ограничениями

если я не могу сделать int* ptr = (int*)rand(0xffffff) и потом записать что-то по этому адресу (даже если это отстрелит яйца) - то это нихрена не низкий уровень. Иди дальше фапай. Сейчас говнокодеры из Самсунга облажаются со своим servo, и больше язык никому не станет нужен.

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

если я не могу сделать int* ptr = (int*)rand(0xffffff) и потом записать что-то по этому адресу (даже если это отстрелит яйца) - то это нихрена не низкий уровень.

Можешь, так что расслабься. Если хочешь отстрелить себе яйца - не вопрос.

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

вот такое

Это не контроллер, а целый RISC-процессор.

даташита нет
кода нет

Забери откуда принёс.

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

Назови, зачем нужна именно арифметика указателей

struct dict_entry {
  const char *key;
  const char *value;
};

struct dict_entry*
make_entry(const char *k, const char *v)
{
  int kl = strlen(k) + 1, vl = strlen(v) + 1;
  struct dict_entry *e = malloc(sizeof(*e) + kl + vl);
  e->key = (char*)(e + 1);
  e->value = e->key + kl;
  memcpy(e->key, k, kl);
  memcpy(e->value, v, vl);
  return e;
}
kawaii_neko ★★★★
()
Ответ на: комментарий от Manhunt

А если я просто хочу надежно работающее системное ПО? Хотя бы без детских ошибок с памятью и гонками? Предложи что-нибудь лучше Rust?

Go

KRoN73 ★★★★★
()

фапаете

Я старый солдатпрограммист, донна Роза, и не знаю слов любви.

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

Ещё плюс - руст, как мне кажется, оказывает некоторое давление на микрософт и C#. Недавно вроде была заява от авторов C# что они будут делать новый язычок на основе C#, но на GC будет одет намордник, будут деструкторы и вроде макросы тоже.

Мне лично будет приятнее, если банки будут пытаться переходить с C++ не на Java и C# в их нынешнем виде, а на более рустоподобное.

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

Куча форматов команд

Например? Оо
8080 гораздо примитивнее, и не иметь даже его возможностей было бы стыдно любому процу. Даже сраный 6502 мог похвастаться индексной адресацией.
И то, что архитектура 8086 была навязана интелу производителем телетайпов(ЕМНИП) и по сути они(80 и 86) друг к другу отношения не имеют, это ничё?
Да даже тот уровень совместимости на уровне автоматического преобразования исходников, которым пытались продвигать 8086, на деле никому не упёрся.

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

Такое можно писать на любом ЯП, который в принципе может работать без виртуальной машины.

От говнокода и виртуальная машина не спасёт.

А вот от многих С/С++ ошибок раст всё-таки спасает.

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

Назови, зачем нужна именно арифметика указателей. Мне в голову приходит только разбор хитрых двоичных форматов.

Ручное выравнивание данных в памяти.

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

Куча форматов команд

Например? Оо

Сам факт наличия кучи форматов.

то, что архитектура 8086 была навязана интелу производителем телетайпов(ЕМНИП) и по сути они(80 и 86) друг к другу отношения не имеют, это ничё?

Это интересно. Такой легенды я еще не слышал.

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

Вопрос не в том, нужен ли он был. 8086 постарались сделать совместимым.

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

Назови, зачем нужна именно арифметика указателей. Мне в голову приходит только разбор хитрых двоичных форматов.

Ручное выравнивание данных в памяти.

Что значит «ручное выравнивание» - размещение на границах, которые не поддерживает компилятор и/или архитектура?

tailgunner ★★★★★
()

Перечитал срач. Не интересно. Нужно построить зиккурат больше золота.

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

страшней котенка зверя нет

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

Год вполне нормальное время чтобы выучить язык программирования (если это не C++). Если цель попробовать «думать иначе», то превращения не страшны. Хотя я подожду версии 1.0.

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