LINUX.ORG.RU

Какие преимущества я получу, перейдя с Python на C?

 ,


1

2

Вот сижу я, говнякаю на питончике одной рукой. Получается очень быстро. Но все говорят, что питон убог. А какие преимущества получу я, как питонист, если перейду на эту вашу сишку?

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

На помойку её

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

можно указать зависимости в деструкторах.

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

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

Stanson ★★★★★
()

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

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

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

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

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

Тогда уж Оберон. Язык простой, компилятор не сложно написать, даже своё железо под него делают.

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

А кто мешает это сделать в деструкторе?

В каком из деструкторов. Вот железка. У неё внутри куча всего. Для того, чтобы сделать определённую операцию надо совершить определённые действия. Железку разбили на несколько логических объектов. Для совершения операции надо инициализировать объекты 1,3,2, записать в железку пару команд, проверяя ответ, и данные, тоже проверяя ответ. Если железка жалуется на команду, нужно деинициализировать объекты 2,1,3, если на данные, то 1,2,3, а если всё нормально - то 2,3,1, причём между 2 и 3 дать команду почистить буфер. Если порядок деинициализации железки нарушен, то она встаёт колом и помогает только физическое отключение.

Ну и как это всё будет выглядеть на плюсах? На сишечке ничего сложного - несколько if’ов с goto, не более, всё влезет на один экран.

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

Тогда уж Оберон. Язык простой, компилятор не сложно написать, даже своё железо под него делают.

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

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

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

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

поделия на С++ смогут поддерживать хотя бы половину поддерживаемого богомерзким сишечным линуксом железа

Тут дело не в Си, а в корпорациях, которые пишут драйверы под Линукс. Многие драйверы пишут штатные сотрудники Intel. Станет Zircon мейнстримом и начнут писать драйвера на C++.

Железки - это тоже не данность, их проектируют вместе с драйверами.

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

в лапше из говнокода ты хотел сказать

Лапша из говнокода - это пять объектов, три темплейта, имена длиной в полэкрана и наследования в которых хрен разберёшся, вместо 20 строк простого кода.

В реальности же, когда доходит до дела, в чудесной SerenityOS или Haiku внезапно забывают про плюсы и пишут драйвер тупого 8042 точно так же как на сишечке, с байтолюбством и всеми прочими пирогами. Вопрос - нахера? Ну напиши ты общение с железом, всякую там память и arch на сишечке и дёргай её из плюсов. Но нет, надо чтобы обязательно .cpp было и g++ дёргать при компиляции.

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

Станет Zircon мейнстримом и начнут писать драйвера на C++.

И при этом все драйвера на C исчезнут или что? Какое дело линуску до zircon’ов этих всех. Линукс работает здесь и сейчас.

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

никаких. /thread

Согласен, такие, как ты и RedEyedMan не получат.

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

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

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

Если железка жалуется на команду, нужно деинициализировать объекты 2,1,3, если на данные, то 1,2,3, а если всё нормально - то 2,3,1

Используете std::unique_ptr и присваиваете указателям NULL в нужном порядке.

Если порядок деинициализации железки нарушен, то она встаёт колом и помогает только физическое отключение.

Reset? Не, не слышали. Железки видимо разрабатывают фанаты личностей с аватара.

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

в классе глобальный стейт железки и композиция инстансов объектов 1-n. Туда же инкапсулированы все функции для для работы. Можно использовать инварианты, пре и пост условия. Все дает гарантию консистентного состояния железки.

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

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

Код Линукса настолько трудночитаем, что проще с нуля по спецификации написать.

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

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

Ему уже писали про это, он огородился и кричит «Легаси!». То есть, тем самым заявляя, что его удел это форумная пропаганда и пространные рассуждения о чужом коде, который он сам никогда не напишет.

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

Код Линукса настолько трудночитаем, что проще с нуля по спецификации написать.

А с нуля написать конечно же не можете, потому что…? :) :) :)

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

Код Линукса настолько трудночитаем, что проще с нуля по спецификации написать.

Так а в чем проблема тогда? Идеальный язык есть, спецификация есть, чего не хватает? Почему твоя Haiku плетется в хвосте? Взять да сконвертировать хотя бы половину из твоих

3329

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

goto-vlad
()
Ответ на: комментарий от Stanson

вместо 20 строк простого кода.

Это для ардуины. А если прошивка в нескольких тыс. строк ты утонешь в своих if и goto.

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

Потому что корпораций в проекте нет.

Понятно, опять корпорации и «Легаси» насрали в штаны C++. Да что ж такое.

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

Это для ардуины.

В этих ваших ардуинах для идиотов внезапно цепепе. :)

А если прошивка в нескольких тыс. строк ты утонешь в своих if и goto.

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

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

Потому что корпораций в проекте нет.

Это корпорации вам никак не дают на цепепе линуксячьи драйвера переписать? Бегают наверно вокруг, компилятор из рук вырывают?

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

Это только начало. А теперь ты напиши как написать неблокирующее чтение с железки или работа с ней из нескольких потоков.

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

Код Линукса настолько трудночитаем, что проще с нуля по спецификации написать.

Код Линукса написан предельно просто, кто считает иначе, тот недостаточно компетентен

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

А теперь ты напиши как написать неблокирующее чтение с железки или работа с ней из нескольких потоков.

Ну так загляни в линуксячьи сырцы.

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

кто считает иначе, тот недостаточно компетентен

Код BSD читабелен, код Haiku/Serenity/Zircon читабелен и только для Линукса требуется особая компетентность.

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

Я до сих пор не понимаю почему их так бомбит от if и goto. Это же маленькие и понятные конструкции иф то вообще во всех языках и все их используют. При этом многомерные классы и 33 раза перегруженные действия с тройными исключениями на ровном месте это типа красиво ))))))) Чёт тут не так.

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

Проблема в том, что это не ты их написал. А писать нужно самому. Вот давай выкатывай свои 20000 строк на goto.

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

так он же на С, потому и читабелен :)

Линукс не читабелен, а BSD почему-то читабелен, хотя всё на Си…

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

Тыщи разработчиков ежедневно постят в LKML

Профессиональная деформация. Нормальный код они видимо уже писать не могут.

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

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

Если их больше, чем бсдунов и цэпепе-драйверистов, значит именно их код нормальный по определению, а ваш - маргинальный :)

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

Надув щеки сообщил нам программист индусских счетчиков.

Там между прочим линукс унутре и драйверы подпиливать надо было :P

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

Ну так и где весь спектр драйверов бзди в гайках? :)

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

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

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

их так бомбит от if и goto

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

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

Тогда ладно, а то я думала, там счетчики на ардуине :)

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

Делов-то, прочитать заведомо рабочий код и переписать «как надо».

Помимо прочего в Линуксе код на GPL, а в Haiku и Serenity - MIT/BSD. Вместо документации им можно пользоваться когда ничего лучше нет но не более.

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

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

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

Проблема в том, что это не ты их написал. А писать нужно самому.

Да неужели. Ну, скажем, из ширпотреба - найди например ядро 2.4 для Psion Series 5 (не mx). Там закрытие дырок в physical RAM, быстрый экран и драйвер ETNA (контроллер CF[IDE/PCMCIA]) - мои.

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

Помимо прочего в Линуксе код на GPL, а в Haiku и Serenity - MIT/BSD.

Так вам тупо воровать код, или всё-же посмотреть как работать с железкой чтобы написать вместо поганого сишечного, свой, кошерный код на цепепе без goto?

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

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

Нужны для освобождения ресурсов в том же порядке, что и выделение, и использование goto даёт наиболее простой код из возможных вариантов

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

Да ладно, дядя, все мы поняли, что ты большой молодец. Вот только ядро 2.4 это год моего рождения :).

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

Вот только ядро 2.4 это год моего рождения :).

Соболезную.

Забавно что это ядро было предназначено для замены оригинальной для Psion 5 ОС EPOC32 написанной как раз на C++. Линукс работал значительно быстрее и из коробки поддерживал кучу CF железок которые вообще никак не работали в EPOC. Ну и конечно же тонны готового софта в линуксе.

Что тогда ОС написанная на С++ была более убогой чем линукс, что сейчас все ОС написанные на С++ более убоги чем линукс.

Если за столько лет ничегошеньки не изменилось, то может проблема всё-же в С++?

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

Потому что код на Си написан в дремучие годы когда C++ ещё не было или был только в зачатке

Это такая шутка? nginx - 2004, ffmpeg - 2000

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