Xenia 35 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 4 часа назад, AlexandrY сказал: Phyton просёк спрос на либы гораздо более мощные чем у C++, и тож занял большую нишу у низкобюджетных программеров под PC. Вообще-то Питон (Python), а не Фитон (Phyton) :), но это типичная опечатка, к которой придираться не стоит. А вот о библиотеках функций действительно стоит поговорить. Скажем, для C/C++ существует астрономическое количество библиотек, но ... их в стандарт не пускают. Тем самым достигается формальная "стабильность" языка за счет спартанского набора функций, замороженных еще в прошлом веке. Вот только что в конце прошлого гола вышла новая "Microsoft Visual Studio 2019", которая на платформе x86 задает моду по части языков. Число функций там пальцем не считала, но размер include-директория снова уменьшился - новых функций не появилось, а некоторые даже исчезли. А в области микроконтроллеров и вовсе абсурдная ситуация - люди на форумах всей гурьбой сочиняют функцию atoi(), для превращения бинарных чисел в текстовый вид. И всё только потому, что стандарт языка не оставляет иных возможностей совершить такое превращением, кроме как с помощью (s)printf(). Тогда как у большинства разработчиков компиляторов представление о стандарте таково, что "нестандартные" функции в языке недопустимы. Это сейчас эпопея с atoi() выглядит смешной на фоне расширения у МК памяти и увеличения их тактовой частоты. Но во времена, когда объем памяти МК был невелик, (s)printf() была неподъемной, как из-за большого размера библиотечного кода, так и из-за своей медлительности вследствие синтаксического разбора форматной строки в реальном времени. В итоге имеем ситуацию, когда разработчики языка и/или его стандарта переложили заботу о функциях на потребителя, уйдя от неблагодарной работы по стандартизации библиотек. Поэтому и, вводя новые стандарты (C++11, C++14 и т.п.), ковыряют синтаксис языка, но библиотеки не трогают. Но это только одна сторона медали, но есть и другая. Стоит только позволить библиотечным функциям размножаться, как язык сразу же "поплывет", т.к. при отсутствии стандартизации библиотечных функций программа перестает быть переносимой, а то и даже читаемой из обилия функций неясного назначения. Эта проблема напрямую касается и составителей библиотек, т.к. при их написании почти всё приходится писать с нуля, чтобы обеспечить независимость от других библиотек, которые тоже могут неожиданно "поплыть". Короче говоря, палка здесь о двух концах: нос вытащишь - хвост увязнет. А компромисс здесь достигается в зависимости от эффективности языка (для процессора, а не для программиста!) - малоэффективные, тяготеющие к интепретаторам (и Питон в их числе) развиваются в сторону роста библиотек, стараясь компенсировать неэффективность исполняемого кода за счет библиотек готовых функций, ранее уже скомпилированных и, как правило, написанных на эффективных языках типа C, а то и ассемблере. Что касается языка Rust, то "хилость" библиотек я бы ему в вину не ставила, поскольку Rust по своей природе относится к эффективным языкам. Кстати, рождающихся в наше время крайне редко, т.к. ныне акценты сильно смещены в сторону "удобства программирования", тогда как эффективность кода приносится ему в жертву. А библиотеки - дело наживное. Несмотря на мое первое полемическое выступление, которое можно расценить, как антирустовское :), я успела отметить (но не высказать вслух) позитивные качества этого языка. В первую очередь, понравился правильный (на мой взгляд) подход к безопасности, когда все проверки (аки верификация) приходятся на этап компиляции, а не выносятся в runtime. Ради этой цели и в самом деле можно пойти на еще большую подробность описания объектов с явным указанием того, что с этими объектами можно делать, а чего делать нельзя. Чтобы компилятор более детально мог следить за теми операциями, которые с ними производятся, выдавая в скользких случаях соответствующие варнинги. В силу своей эффективности, Rust вполне может быть использован в сфере создания программ для микроконтроллеров, поскольку не нагружает исполняемый код параноидальными проверками типа "не изменила ли переменная цикла своего типа за время его последнего оборота, можно ее инкрементировать на единицу?" :). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба Критерии нормальности просты: человеческий синтаксис (пхытон этим не отличается, там логика зависит от того, как вы отступ сделаете! Вообще наркомания какая-то!), возможность собрать бинарник (а не запускать каждый раз интерпретатор), универсальность (хоть пхытон тоже пытаются на МК засунуть, но таки С пока везде впереди), наличие большого количества библиотек (на каком еще языке, кроме С, я смогу под ПК что угодно написать?). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 4 минуты назад, Eddy_Em сказал: Критерии нормальности просты: человеческий синтаксис Это вот это: int *(*(*p)[])(double *p); нормальный человеческий синтаксис? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 5 минут назад, Eddy_Em сказал: Критерии нормальности просты: Тогда чем bash настолько лучше Python? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 5 минут назад, Eddy_Em сказал: возможность собрать бинарник (а не запускать каждый раз интерпретатор) Запускать интерпретатор, не пересобирая каждый раз проект, - часто куда более удобная штука, экономит время, силы даже при отладке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 7 минут назад, Eddy_Em сказал: на каком еще языке, кроме С, я смогу под ПК что угодно написать? На любом, который вы знаете. Разница лишь в том, что на каком-то из них будет проще/быстрее/дешевле. Все определяется задачей. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 7 минут назад, Eddy_Em сказал: универсальность (хоть пхытон тоже пытаются на МК засунуть, но таки С пока везде впереди) Дадада, напишите на С что-нибудь для веба Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 14 minutes ago, dxp said: вот это: int *(*(*p)[])(double *p); нормальный человеческий синтаксис? Да, потому что совершенно все прозрачно. Намного приятней, чем всякие ::-> 13 minutes ago, Grizzly said: чем bash настолько лучше Python? Тем, что для баша не нужно 100500 библиотек и нет проблем с версионированием, как у питона. Баш-скрипт, написанный 20 лет назад, работает у меня и сейчас. А вот питон этим похвастать не может. С С, кстати, то же самое: старый код легко собрать современным компилятором. 14 minutes ago, dxp said: Запускать интерпретатор, не пересобирая каждый раз проект Вот поэтому когда я новый алгоритм оттачиваю, использую octave. Да, считает она супер долго, зато когда алгоритм уже проверен, я переношу исходники на С и радуюсь. 14 minutes ago, Grizzly said: На любом, который вы знаете. Нет. Т.к., скажем, на фортране я не смогу написать иксовое приложение. Все упирается в наличие библиотек. А подавляющее большинство библиотек - для С/С++! 15 minutes ago, dxp said: напишите на С что-нибудь для веба Уже почти 10 лет успешно пишу. Можете у меня на гитхабе посмотреть. В чем проблема-то написать для веба? Это намного проще, чем под микроконтроллеры! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 3 минуты назад, Eddy_Em сказал: Да, потому что совершенно все прозрачно. Намного приятней, чем всякие ::-> О, похоже, наконец мы нашли живого ценителя языков стиля brainfuck. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба On 1/25/2020 at 11:20 PM, Максим Лапшин said: Если интересно — могу поделиться опытом нашей разработки под stm32 Вас надо с Чёблином познакомить на easyelectronics.ru :) Он тоже ратует за Rust. Если конечно же это не вы :) Вот одна из его тем: http://forum.easyelectronics.ru/viewtopic.php?f=32&t=41874 Что касается Rust'а, то моя точка зрения совпадает с т.з. Xenia Нужен доступ в нижний уровень, нужны указатели, а с организацией данных, освобождением кучи мы как-нибудь сами разберёмся. И stdlib нужен. Хотя бы для sprintf всяких чтобы склеивать строки в памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 1 час назад, dxp сказал: О, похоже, наконец мы нашли живого ценителя языков стиля brainfuck. Я тоже ценитель, если что Но Вы хоть раз хоть в одном проекте видели такую конструкцию? Вот такую или еще сложнее? Я вот нет... Бывали у меня конструкции типа массива указателей на функции или указателей на массивы функций, но не более. Я читать это могу, но пишу только в безвыходной ситуации (то есть стараюсь избегать этих конструкций). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 32 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 4 минуты назад, Arlleex сказал: Я тоже ценитель, если что Но не будете же при этом утверждать, что это "нормальный человеческий синтаксис"? Особенно по сравнению с синтаксисом высокоуровненвых ЯП вроде питона. Не, я тоже достаточно легко читаю и пишу подобные выражения (хотя на практике предпочитаю разбивать на части с помощью псевдонимов, чтобы код был не только write-only), но за этим стоит приличная практика, и поначалу приходилось ломать мозги, чтобы подобное хотя бы читать. Посему подобные нагромождения скобок и звёздочек не могу признать ни человеческими, ни нормальными. Код на ЯП с нормальным человеческим синтаксисом читается с ходу, практически без подготовки - как, например, на питоне. Кстати, наш любитель си почему-то не брезгует пользоваться октавой, а ведь это язык по сути такой же как питон или матлабовский скрипт. Та же философия, те же способы достижения эффективности как по скриптованию, так и по скорости выполнения. Поэтому его нападки на тот же питон не логичны и объясняются только тем, что он не знаком с ЯП питон от слова совсем. И единственное, что во всём этом я пока не понимаю: он тролль или просто подросток-максималист в теле взрослого дяди. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha-z 2 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 2 hours ago, Xenia said: А в области микроконтроллеров и вовсе абсурдная ситуация - люди на форумах всей гурьбой сочиняют функцию atoi(), для превращения бинарных чисел в текстовый вид В MSP430 нет аппаратного деления. Поэтому и пришлось писать свой atoi :) 2 hours ago, Xenia said: тогда как эффективность кода приносится ему в жертву Больше похоже на "индусский стиль" программирования. Когда оплата идет за объем, ибо нет единого критерия монетизации эффективности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 2 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 2 hours ago, Xenia said: Но это только одна сторона медали, но есть и другая. Стоит только позволить библиотечным функциям размножаться, как язык сразу же "поплывет", т.к. при отсутствии стандартизации библиотечных функций программа перестает быть переносимой, а то и даже читаемой из обилия функций неясного назначения. Rust между тем оснащен новыми средствами "стабилизации" способными фиксировать снимок либ. В IDE для C-и до такого еще не додумались. Библиотечная лава будет только расти. От этого никому никуда не деться. Буквально сейчас я обновил либы фреймворка для стабильнейшей RTOS ThreadX и у меня отвалился USB стек. Стабильность стала всеобщей проблемой. Багаж библиотек для C и С++ в основной массе морально устарел. Смотрел недавно что может пригодится из Boost-а. Одна труха. Может что-то по мат.вычислениям сгодилось бы, но их теперь можно сгенерить в Matlab-е проще и быстрее. Rust надо не ругать или хвалить, а понять с какими вызовами он борется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 26 января, 2020 Опубликовано 26 января, 2020 · Жалоба 51 minutes ago, dxp said: Код на ЯП с нормальным человеческим синтаксисом читается с ходу, практически без подготовки - как, например, на питоне. Чушь-то какая! Питон - это наркоманский синтаксис, без укурки никак не разберешься! 51 minutes ago, dxp said: почему-то не брезгует пользоваться октавой, а ведь это язык по сути такой же как питон или матлабовский скрипт. Разница очень большая. Синтаксис матлаба придуман людьми для людей, а синтаксис питона - наркоманами для хипстеров-наркоманов! 52 minutes ago, dxp said: не знаком с ЯП питон от слова совсем Писал на этом говне скрипты для генерации линз и кое-чего еще во фрикаде (к сожалению, там вместо с-подобного языка для скриптов этот выродок используется). Оплевался! 2 minutes ago, AlexandrY said: Багаж библиотек для C и С++ в основной массе морально устарел. бугогашеньки! Вы загляните между делом в /usr/lib и найдите там хотя бы полпроцента несишных библиотек! И кто все это будет под хипстерские недоязычки переписывать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться