LINUX.ORG.RU

Ответ на: комментарий от quantum-troll

Use typedef for your structs:

typedef struct FooBar FooBar;

This is preferable to typedef struct { ... } FooBar; because it makes it possible to use FooBar * pointers in FooBar.

А вот Линус считает по-другому.

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

в выстреливании себе в ногу?

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

Мне кажется, что на нынешней ступени развития компиляторы уже (в большинстве случаев) в состоянии сами выполнить нужные оптимизации, при этом проверяя безопасность операций автоматом

Всё вам кажется. Нихрена конпелятор в глаза никто не видел, а для 95% маздайных говнорей - конпелятор это кнопочка «собрать» в мвс.

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

В реальном мире нет ИИ. За тебя никто ничего не сделает. Всё это стоит не бесплатно, ибо предугадывание очень жадно до ресурсов.

Даже на оптимизацию тривиального случая у тебя есть 50-70%, а уж на что-то сложнее последовательного беребора расчитывать не приходится.

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

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

while(++i(ptr, itr - обзови как хочешь) != end) {
*i;
}
Либо вариации с dowhile. Очередной балабол.

с удовольствием, а вы продолжайте байтолюбствовать по поводу и без

Ну иди дальше пили обработчик формачек. Не всем интересно быть рабом конвейера.

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

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

Т.е. направление избрало ЦА - это говнари. Развитие пацанских методов уже давно остановилось и все пацанские силы направлены на развитие столпов мира говна. Это пичально.

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

Лично сталкивался с проблемой.

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

При наличии операторных скобок такого бы никогда не случилось.

Неприятности с препутанными уровнями вложенности в Си даже худшие - там нельзя ориентироваться по отступам (впрочем, даже о минутах отладки речь тоже не идет).

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

А то что char* a, b, c делает указателем только первое — баг синтаксиса убогих язычков, а не программиста, которого это может ввести в заблуждение.

не хочешь знать ЯП - не занимайся программированием. Займись чем-то другим.

Плохому танцору мешают яйца, а тебе - «убогие язычки». Работай другим язычком, своим.

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

Пол-дня отладки?

Чуть чуть приукрасил :) У меня заняло час, у кого-то могло занять больше.

Неприятности с препутанными уровнями вложенности в Си даже худшие - там нельзя ориентироваться по отступам

Там есть ident, astyle и прочие утилиты и такой проблемы как в питоне просто не существует.

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

Каждая неоднозначность — потенциальный источник глюков. Не удивлюсь, если модные компиляторы вроде clang на конструкцию char* a, b, c дают ворнинг.

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

При чем тут много вложений или мало? Ты похоже вообще не понял о чем я говорю.

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

Это может быть втемный говнарьский рефакторинг аля: из char * p, p1, p2; сделали char * p; char * p1; char * p2; Либо ещё какой фейл с синтаксическими особенностями и их недопониманием.

А потом такие узкомыслящие как ты обвинят в этом непонятность первой записи, а не тупость того, кто так отрефакторил.

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

Очередной ололоша. Тут похоже чем больше звёзд, тем более тупой пациент.

Игнорит половину месаги?

Не знает, что такое аргументация?

Обвиняет?

Глянь, а там 95% 5звёзд.

Как я сказал 3-м твоим предшественникам. Ты либо пытаешься говорить более-менее вменяемо, либо твой удел «разоблачать» соседа по парте.

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

Там есть ident, astyle и прочие утилиты

При рефакторинге и Си, и Питона проблемы со вложенностью - наименьшая головная боль.

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

в этом непонятность первой записи

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

Игнорит половину месаги?

Бред был поскипан.

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

на уроках по жаве

к сожалению их не было

Я не осилил память - ГЦ за меня всё сделал,

компьютер вроде бы должен облегчать задачу, не?

В реальном мире нет ИИ.

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

while(++i != end)

это же банальный map

А про байты, довно пора понять, что от байтов ты не уйдёшь.

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

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

При рефакторинге Си такой головной боли просто нет, при рефакторинге питона — есть.

_Эта_ головная боль при рефакторинге Питона настолько невелика, что ее можно просто не учитывать.

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

Мир - сплошная неоднозначность.

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

Для меня неоднозначно описание тех же процессоров, предлогаешь заменить его на 2ядра4гига? А потом говорить, что «процессоры уже почти все одинаковые, зачем ваще что-то?». И ещё тысячи примеров.

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

Ну вот в го такого глюка нет принципиально, потому что тип всегда идёт целиком после идентификаторов. a, b, c *byte — объявление 3 указателей на байты.

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

Какая может быть объективность в эстетическом восприятии набора символов? Красота чего-либо, в том числе и кода, вещь сугубо субъективная.

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

в го такого глюка нет принципиально

там вообще много чего нет

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

Час потраченного времени.

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

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

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

Только твоё предвзятое мнение не дало тебе понять меня.

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

И вот пока ты будешь исправлять все такие «нипонятные» места, а не причину - неосиляторов. Таких мест с каждым новым поколением будет всё больше и больше. А потом всё дойдёт до того, что == и != будут путать( хотя уже сейчас путают) и ты будешь говорить, что их писать не надо, ибо это «запутывает».

Скоро вообще все символы уберут из ЯП и заменят на «переменная А равно переменная Б», а типы упразднят, ибо это путает.

Бред был поскипан.

И ты не осилил аргументировать свои выводы? Я так могу на весь твой выхлоп говорить «Бред бы проскипан».

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

Вопрос ТС возник из-за того, что часть типа написана не рядом с базовым типом, а рядом с идентификатором. Логичнее было бы писать кусок типа рядом с базовым типом, но тогда возникает иллюзия того, что данным типом будут объявлены несколько переменных, чего не будет из-за такого вот глюка.

ЯП они не для компьютеров должны делаться, а для человеков.

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

Как же вы меня оадели. Ты бы почитал хоть мои месаги, уже 5-й, которму я отвечаю уже в 10-й раз.

int
getx()
{
return x;
}

5 строк.

int getx() { return x; }

1 строка.

Тебе мало объективности? А теперь напиши таких функций в хедере штук 20. А потом уже начинай меня учить «объективности».

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

Чо тогда приперся сюда, если везде школоло мерещится, лол? Перепутал понятия, теперь и меня с регистрантом попутал, срача навел. Голова болит или понюхал не вовремя? Эго умерь-ка, пацан. Ты вот пытаешься тут донести, что короткий код проще воспринимается. А представь он со всеми ужимками не влазит в одну страницу, что будешь делать? С одной стороны, те, кто не хотят в if (p) и прочая — дебилы, с другой стороны сам ноешь о стиле. Выходит тоже во что-то не можешь и путаешься. Во что конкретно уже второй вопрос. Может тебе просто признаться себе и посмотреть какой-нибудь sublime text? Там полоска есть такая удобная, быстрее навигируешься. Или вим возьми, там по тэгам будешь ходить c-] c-T. Основа кода это соответствие названий тому, что в нем на самом деле происходит. Cache invalidation and naming things, бро. Если короткое имя не отражает сути, а прячет ее, ты попал.

По существу есь чо? Без быдло, конвейер, я пацан вы лохи?

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

А зачем их в хедере писать, м?

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

Глупая балаболка. А ты мне ещё не хочешь поболаболить про то, что он до енда не дойдёт?

Для удобства записи я могу хранить указатели на -1 и +1 елемент, но зачем тебе глупой лалки это понимать? Поэтому сровно в школу, а потом разоблачать.

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

Look at Windows API, glibc header files, Linux kernel source and GNU program source as examples how NOT to write code.

Пусть считает, лол.

My name is Julius Schmidt, I'm a German physics student interested in science, esp. mathematics and physics (obviously), and technology. I'm in a complicated love-hate relationship with computers and software.

Я почему-то Линусу больше доверяю.

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

я какбы ещё предыдущим комментарием намекал, что ты — быдлокодер. если не доходит — приходится писать прямым текстом.

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

могу хранить указатели на -1 и +1 елемент, но зачем тебе глупой лалки

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

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

Чо тогда приперся сюда, если везде школоло мерещится, лол?

Я решил ответить - имею право.

Перепутал понятия, теперь и меня с регистрантом попутал, срача навел.

Где перепутал, ты конкретно говори. Ты тот регистрант - это уже факт с шансом 90%. Такая глупая лалка.

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

Чёткий говнарь с района, который ссыт засветится за говнарьством своими «звёздами». А в жопе свербит, ибо слился и сел в лужу, а на районе принято на говно исходить в таких моментах.

Нет такого кода, а даже если не влезит. Скролить 2 раза лучше, чем 20. Поэтому со своей недоаргументацией улетаешь в лужу.

С одной стороны, те, кто не хотят в if (p) и прочая — дебилы, с другой стороны сам ноешь о стиле. Выходит тоже во что-то не можешь и путаешься. Во что конкретно уже второй вопрос.

Решил выехать на моём стиле. Нет лалка. Понимаешь в чем разница, я понимаю любое говно, но мне противно на него смотреть. А вот ты не понимаешь сложные конструкции, поэтому хочешь от них убежать.

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

Может тебе просто признаться себе и посмотреть какой-нибудь sublime text? Там полоска есть такая удобная, быстрее навигируешься. Или вим возьми, там по тэгам будешь ходить c-] c-T. Основа кода это соответствие названий тому, что в нем на самом деле происходит. Cache invalidation and naming things, бро. Если короткое имя не отражает сути, а прячет ее, ты попал.

В чем суть выхлопа? Давай ты мне ещё на маздай порекомендуешь баш поставить и гцц и в «пач прописать - тогда проблем нет».

Основа кода - это нормальная запись. Я говно не обязан читать, а конпелятору пофиг - хоть называй переменные n1, n2, n3, n4, а функции afsdhas().

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

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

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

Я говно лужа говно говно лалка

Думаю, диагноз готов! Все по машинам, и забаньте меня!!!

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

Я же больше доверяю Пайку, Ритчи и Томпсону, и выберу стиль Plan 9.
А вообще, что спорить о людях, план 9 — очень простая операционная система с гибридным ядром, когда же линукс http://www.makelinux.net/kernel_map/, да ещё и монолит.

quantum-troll ★★★★★
()
Ответ на: комментарий от unsigned

Я считаю неправильно рассматривать только два варианта, мне они оба несимпатичны, ввиду асимметрии. Почему обделены вниманием char*p, char * p, char * p. Также предлагаю амбициозно замахнуться на char**p, char* *p, char **p, ,char** p.

ilovewindows ★★★★★
()
Ответ на: комментарий от quantum-troll

Томсону тоже доверю, а первых двух перцев не знаю, но имена у них как у гангстеров времен Великой Депрессии, и предлагаю их заменить на Браунинга и Маузера. Обычно их доводы весьма корректны и убедительны.

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

Я вообще не понимаю, как и зачем до такого синтаксиса додумались. Ни в каких языках больше такого не видел.

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

Это «ассиметрия» синтаксиса си. Вот куски грамматики си:

declaration:
declaration-specifiers init-declarator-list(opt);

init-declarator-list:
init-declarator
init-declarator-list , init-declarator(opt)

init-declarator:
declarator
declarator = initializer

declarator:
pointer direct-declarator(opt)

pointer:
* type-qualifier-list(opt)
* type-qualifier-list pointer(opt)

Ясно видно, что «*» входит во вторую часть объявления, поэтому группировать её с первой - просто противоречит синтаксису си (хотя и понятно, что компилятору всё равно).

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

А что это вообще такое ? Это не куски грамматики, это издевательство. От такой грамматики дети начинают обзывать друг друга говнокодерами и убивать за количество пробелов до и после звездочки.

ilovewindows ★★★★★
()
Ответ на: комментарий от quantum-troll

план 9 — очень простая операционная система

Очевидно, что Linux «сложный» потому что поддерживает намного больше разнообразного железа и предоставляет большую функциональность.

с гибридным ядром

Я не понимаю что значит «гибридное». IPC + серверы в пространстве ядра или что-то другое?

когда же линукс http://www.makelinux.net/kernel_map/, да ещё и монолит.

Это плохо? Не надо пугать «монолитом». Я могу сказать: «Да еще и микроядро! Не только плохая производительность, но еще и сложное для отладки.»

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