LINUX.ORG.RU

Существует ли язык высокого уровня, который устойчиво быстрее C?

 ,


0

1

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

Понятно что существует ассемблер, программу на котором можно сделать настолько быстрой, насколько это вообще возможно для данной машины за счёт контроля каждого байтика, но речь не о нём — я говорю о языке высокого уровня, который полностью абстрагируется от машины, так чтобы программа на нём могла быть скомпилирована на любой машине и для любой ОС.

Так вот, возможно ли сделать такой язык? Если да, то в каком направлении копать?

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

★★★★★

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

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

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

можно писать что угодно

В теории можно, если есть супермозг. Практически нет. Когда сложность зашкаливает, нужна синтаксическая абстракция и гибкость.

Кузнец, обычно работает с елезом с помощью молота. Но, поскольку молот сделан из железа, почему бы не ковать железо с помощью железа? Зачем нужен инструмент?

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

есть конторы, конфидент и код безопасности, не смотря на то, что они пишут на С, там ужас, если бы ты видела тз на разработку, у тебя бы крыша поехала. Например основная файловая система в linux это hfs+. Программисты там получают мизер, 50-60 шт, тестеры вообще 30.... причём виндовые тестеры даже минимума не знают по bat/powershell, обе конторы выпускают шлак, зная, что его купят по любому, потому даже часто выпускают отворенную лажу. А исправляют её в следующих версиях за доп плату... Поэтому качество часто вообще не важно.

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

Си, как язык, не абстрагирует все платформы, он абстрагирует линейный однопоточный PDP-11 с локальной памятью.

Отличный комментарий, я бы лаконичнее врядли бы выразился.

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

мне приводили ссылки, что статический анализ кучи опенсорца выдал жуткую статистику по наличию ошибок. но это не означает, что Си - говно или компилятор плох. это означает, что кто попало пишет код.
я не один год пишу и на Си, и на плюсах. лично я не вижу с ними проблем. даже не понимаю вообще, где там могут быть проблемы. там всё просто и прозрачно. но это для меня. я легко нахожу чужие ошибки в коде, пытаюсь объяснять людям, что неправильно. из себя выхожу только если человек упорно продолжает писать говнокод. но повлиять на ситуацию в целом я не могу. если люди не хотят быть внимательными и думать головой, когда пишут код, то я не могу их заставить.
я видела много хорошего кода на Си/C++. и много довольно крупных проектов, которые успешно работали. говнокод тоже видела. но не думаю, что это было сделано специально. скорее, от недостатка квалификации. так что вопрос лишь в том, кого набирать на такие проекты. хороший специалист стоит дорого, но он стоит этих денег. в команде должен быть опытный программист. молодых программистов в команду брать можно, но придётся их сначала натаскивать и контролировать, на это тратится время, это по силам только крупным компаниям.
что касается наших отечественных компаний, и особенно госконтор, то там дело плохо. зарплаты действительно мизерные, специалисты туда не пойдут. а студенты говнокодят в меру своих возможностей. отсюда и проблемы.

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

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

Iron_Bug ★★★★★
()

Зависит от задачи. Если задача, например, в манипуляциях с подстроками, то ты вряд ли найдешь что-то быстрее С. Если операции с числовыми массивами и матрицами - бери Фортран.

annulen ★★★★★
()

Ещё раз C--, чисто теоритически его проще оптимальнее перенести в машинный код, но на деле с этим проблема т.к. нет живых компиляторов. Хотя, может на эту роль сгодится GHC с его слегка модифицированным стандартом C-- — Cmm, но опять-же, будет ли он быстрее Clang или gcc я не знаю и в сети найти не могу.

Deleted
()

Такой язык ЕСТЬ. Называется он Verilog :) Если реализовать некоторые алгоритмы аппаратно, ты потенциально можешь получить невиданное ускорение того или иного алгоритма.

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

Еще вариант - OpenCL. Если алгоритм можно переложить на эту платформу, то что может быть лучше сотен ядер?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от callbackhell

Когда сложность зашкаливает, нужна синтаксическая абстракция и гибкость.

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

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

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

Само собой. Ядро линукса же написано. Вопрос в другом. Начиная с некоторого уровня сложности кода сборщик мусора очень даже помогает, а вот ручное управление памятью порою порождает жрущих и медленных монстров в руках обычных смертных программистов.

Просто сборщик мусора открывает способы работы с данными, которые или недоступны на Си/Си++, или труднореализуемы. Это касается циклических структур данных (графы) и данных с неопределенным временем жизни (лямбды/замыкания), особенно в условиях многопоточности. shared_ptr/weak_ptr/enable_shared_from_this как бы намекают.

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

Это софистика чистой выводы. Этому приему сто лет в обед. Подмена понятий.

dave ★★★★★
()

llvm и ошибки в дизайне будут выдающимися тормозами

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

Это софистика чистой выводы. Этому приему сто лет в обед. Подмена понятий.

Да это не софистика, и не подмена понятий, это просто, тупо, непонимание.

и да, ваш монстр, жрущий гигабайты памяти, всё так же работает поверх ядра, написанного на [somelanguage]. тут и сказочке конец.

Ясно, что эта фраза ни о чем. Но дело даже не в этом. Дело в непонимании того, что если мы реализовали инструмент B с помощью инструмента A, это не означает, что A == B.

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

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

Если бы jvm работала поверх чистой трансляции в си, Вы бы еще имели какое-никакое формальное право утверждать это. Но присуществующем положении вещей, ваше утверждение вообще не имеет никакого отношения к реальности. Вы тотально путаете понятия. Я Вам уже намекал, что ваши ассоциации абсурдны. Как если бы я утверждал, что на гаечном ключе можно развить скорость 300 км/ч, на том основании, что ферарри собирается гаечными ключами.

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

Как там Декорт поживает с проектами на io? Ах да! он же на с/обжси пишет, а io оставил для академической дрочи и макак, которые не умеют думать.

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

на Си можно писать что угодно. и монстров вроде жабы

Мухаха! Царица сишки штоле? Или это школо-царь акк угнал?

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

Такой язык ЕСТЬ. Называется он Verilog :)

Verilog вряд ли можно назвать языком программирования.

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

OpenEuphoria ©

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

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

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

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

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

у меня на задачи проектирования и предварительные тесты иногда уходит 99% времени. а конечный код я могу написать за один день.

Хмм. Красиво сказано, но справедливо лишь для малых проектов на С. В проекте даже средней величины Вы или свалитесь в говнокод или провалите все разумные сроки.

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

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

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

я не знаю, что такое «обычный смертный программист». человек либо программист, либо не программист. неумение управлять памятью означает второй вариант.
«недоступных» вариантов работы с данными в С/C++ нет. есть глупость, лень и неквалифицированные кадры. но это не относится к языкам.

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

В проекте даже средней величины

это если хуяк-хуяк. https://www.youtube.com/watch?v=ir5rj2yYH_8

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

anonymous
()

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

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

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

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

Дак обезьяна даже забанила меня, причём за флуд - ну да, молодец. Пожри говна.

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

но это не означает, что Си - говно или компилятор плох. это означает, что кто попало пишет код.

Означает. Язык, и, как следствие, компилятор, слишком легко позволяет отстрелить себе ногу. Например забудешь один знак = в if — и гадай потом, почему программа работает не так как надо. Хорошо хоть нормальные компиляторы при этом выдают предупреждения, но лучше бы чтобы такой возможности вообще не было.

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

Программы, написанные тобой всегда работают правильно после первой успешной компиляции?

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

А у тебя ещё и компиляется не с первой попытки? Над учебником посиди.

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

Например забудешь один знак = в if — и гадай потом

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

Программы, написанные тобой всегда работают правильно после первой успешной компиляции?

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

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

Нет, невозможно. В случае Си всё упирается исключительно в крутость оптимизации, которую делает компилятор.

Посмеялся. И чем же отличается отличается оптимизатор в шланге и русте, либо пхпллвм? Ничем.

Ассемблер круче только по той причине, что ИИ пока не изобрели

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

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

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

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

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

Си - убогое убожество, которое основано на протухших представлениях о железе. Но в этом и разница, я уже про это писал. В основе си - абстракции с низу, а в основе «высокоуровневого языка» - абстракции сверху.

Язык может быть таким же «высокоуровневым», как и жабка и быть таким же «быстрым» как сишка - всё дело в подходе, а не в самой «уровневости».

«Высокоуровневость» - существует только для одного - попытка заместить квалификацию.

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

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

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

Я уже писал тебе - если такой язык появится, то ты первый же окажешься на помойке. Это то же самое, что сейчас некоторые крестовики орут «ГОвно наше всё, Дерьмо наше всё, раст наше всё» - бараны не понимают, что этот вектор развития направлен на пинок им под сраку в район помойки.

А про ИИ и 10 и 100пунктов я уже говорил.

Например забудешь один знак = в if — и гадай потом, почему программа работает не так как надо.

Она работает так, как надо.

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

но лучше бы чтобы такой возможности вообще не было.

Ну я знаю то место, где возможно вообще нету - помойка. Там твоё самое место.

Программы, написанные тобой всегда работают правильно после первой успешной компиляции?

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

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

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

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

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

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

Как это делается в нормальном языке:

gets stdin my_string
Как это делается в C:
Я вообще затрудняюсь это написать, чтобы прожевалась строка произвольной (не более половины размера свободной оперативки) длины. Но очевидно, это будет далеко не одна строка, а как минимум пять или десять.
Необходимость написать много кода для такой простейшей операции и лёгкость написать этот код неправильно как раз и делают язык плохим. Нужно всё время помнить о десятках вещей, которые никак не относятся к алгоритму, который ты хочешь воплотить.

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

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

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

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

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

Заметь, что для того чтобы так сделать, нужно специально подойти к плите и это сделать.

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

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

read(stdin, my_string, 100500500500ul);

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

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

Я уж не говорю о том, что stdin дерьмо для убогих и вообще бесполезное дерьмо.

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

Например забудешь один знак = в if — и гадай потом, почему программа работает не так как надо. Хорошо хоть нормальные компиляторы при этом выдают предупреждения, но лучше бы чтобы такой возможности вообще не было.

Например идешь ты по квартире и хренась - мизинцем о тумбочку. Хорошо хоть в нормальных палатах такого нет, там все обшито теплым и мягким поролоном и такого там точно не бывает. А еще можно дома в железных сапогах ходить. не ну а чо! зато мизинцем никогда не ударишься, можно даже подойти и специально попинать о тумбочку, можно о стену. А еще же можно и голову ударить и стену. Стена же это позволяет! А лучше чтоб вообще такого не было. Как часто в каске ходишь?

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

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

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

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

read(stdin, my_string, 100500500500ul);

А кто будет выделять память под my_string, Пушкин что ли?

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

Например, идёшь ты по минному полю и хренась — кровь-кишки. А что, сам виноват — нечего было на мину наступать.

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

А ты бы согласился каждый день ходить на работу через минное поле?

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

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

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

забыть один раз проверить длину строки или сделать это неправильно.

Уважаемый ламерок - писать на сишке можно точно так же используя готовый интерфейс, ведь именно ты это понимаешь под «писанием». Никакой длины строки там в помине не будет.

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

Очередная жертва хартблида. Ты хоть чуть-чуть способен к оценки действительности, а не просто к потреблению помоев, что вливаются в тебя из СМИ и прочих помоек.

Для этого ведь надо обладать квалификацией, а вот без неё - ты бальная, убогая жертва пропаганды.

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

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

я не считаю, что код, который длиннее на пару строк, но работает в сто раз быстрее, это плохой код. пример из жизни: я в риалтайме читаю довольно большие файлы и постоянно их обрабатываю в памяти. у меня программа жрёт 2-3% проца и подгружает файлы за доли секунды. скрипт на питоне, который обрабатывает эти файлы, жрёт 99% проца и работает несколько минут. возникает вопрос: что лучше: одна строка и 99% проца или три строки и 3% проца.
я не считаю сложным процесс написания программ на С или C++. и алгоритмы тут никак не страдают. котлеты - отдельно, мухи - отдельно. зато если мне нужно в алгоритмах я могу учитывать все тонкости работы с системой или с сетью. и у меня всегда есть выбор, как реализовать то или иное действие, чтобы добиться максимальной производительности. в языках высокого уровня нет такой гибкости. они предоставляют один метод решения одной задачи и он не зависит от контекста и тонкостей использования. поэтому получается просто, топорно, неоптимально. зато да, кода меньше, думать не надо, компилятор тыкает недопрограммиста носом в его ошибки. красота!
и анонимус выше верно заметил, что в языках высокого уровня квалификация ничего не значит. и у опытного разработчика, и у новичка код получится одинаково тормозным.

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

идёшь ты по минному полю и хренась — кровь-кишки.

Софистика - удел слабых и тех, кому сказать больше нечего.

Ладно спорь вон с царем. А то тут уже 2 часа ночи.

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

истории сишника пишущего на питоне как на c и ой надо же тормазит

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

у меня программа жрёт 2-3% проца и подгружает файлы за доли секунды. скрипт на питоне, который обрабатывает эти файлы, жрёт 99% проца и работает несколько минут. возникает вопрос: что лучше: одна строка и 99% проца или три строки и 3% проца.

А может у тебя на питоне неоптимальный алгоритм?

Давай так:
Есть задача: написать простейший grep, который поддерживает только один аргумент командной строки, не имеет опций, и сравнивает буквально, а не регекспами, но чтобы правильно работал, какой бы ему файл не подсунуть, хоть гигабайтный без единого перевода строки.
Как ты это сделаешь на C? Только необходимо, чтобы какой бы ни была входная строка, он работал правильно.

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

А кто будет выделять память под my_string, Пушкин что ли?

А кто будет выделять под твою?

Пожалуйста. my_string = alloc_totalram(void) { return malloc(get_totalramsize());};

Например, идёшь ты по минному полю и хренась — кровь-кишки. А что, сам виноват — нечего было на мину наступать.

Обезьяна, ты реально пытаешься меня на чём-то поймать своими тремя извилинами?

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

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

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

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

Какая же ты убогая.

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

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

А ты бы согласился каждый день ходить на работу через минное поле?

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

Опять же балабокла пытается враться, высирая брехню, которая не соответствует действительности. А ей ты можешь только подтереться.

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

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

anonymous
()

Только C. Хочешь удобства - бери Vala. Код на нём тупо парсится в C

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

Зря я отвечаю на твоё сообщение, потрут же потом всё дерево...
Но ладно, вот тебе задача:

Написать аналог grep, пусть без поддержки полноценных регекспов, но с возможностью поискать фрагмент текста на stdin и вывести найденную строку на stdout, только такой чтобы его можно было вывести в Production — то есть, чтобы работал корректно во всех мыслимых случаях. Реализовывать ли сценарий grep «строка» filename.txt — по желанию.

И когда напишешь — посчитай самостоятельно количество «мин»

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

я не считаю, что код, который длиннее на пару строк

Только с этим соглашаться не надо. Тут типичная подмена понятия «реализация» и «интерфейс». Ничего тебе не мешает сделать интерфейс в одно строку, как в пистоне(про одну то же брехня).

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

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

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

Обоссанно в нулину. Ничего иного от балаболки я не ожидал.

Радует уже одно, что я настолько наобоссывал лалок в темках про маллок(100500), что теперь с этим уже никто не спорит - ведь работает.

чтобы работал корректно во всех мыслимых случаях.

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

Когда ты ставишь какие-то требования - ты должен предоставлять причины их существования. Без них - все твои попытки насрать себе на голову слишком просто множаться на ноль.

И когда напишешь — посчитай самостоятельно количество «мин»

Т.е. писать его сам ты не собираешься?

В целом тактика ублюдка ясна - ври, игнорируй и пиши неконкретную херню.

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

anonymous
()

Минутка саморекламы. Царь как всегда ответил и решил вопрос, смешав с дерьмом ТС"а, путём множинья на ноль убогой постановки вопроса балаболок, по которым плачет 4.2.

Но ведь 4.2 - это вся суть этого раздела, но да - за 4.2 надо банить царь. И ведь царь не решает вопросов и ничего полезного в темах не делает.

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