Проектом inlinec предложен новый способ inline-интеграции кода на языке Си в скрипты на языке Python. Функции на языке Си определяются непосредственно в одном файле с кодом на языке Python, выделяясь атрибутом "@inlinec". Сводный скрипт выполняется как есть интерпретатором сpython и разбирается с использованием предоставляемого в Python механизма кодеков, дающего возможность подключить парсер для преобразования скрипта перед его разбором интерпретатором (как правило, модуль codecs применяется для прозрачной перекодировки текста, но позволяет и произвольным образом трансформировать содержимое скрипта)...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=52306
Наконец в питон добавили фигурные скобки)
Если еще все остальное выкинуть и сделать компилируемым... :)))
Т.е. оставить одни фигурные скобки? Получится что-то отдалённо напоминающее Брейнфак.
Это будет фигурный Lisp.)
Так фигурные скобки всегда там были. Просто их можно не использовать.
Че ты несешь?
#{
print("Hello world!")
#}вы просто не знали как их использовать
Какой же это си? Как максимум яваскрипт какой-то.
В пайтоне есть фигурные скобки.
Это множества и словари.
import bython
и пользуйся фигурными операторными скобками сколько влезет
зачем пытаются оживлять питон ?
дайте ему уйти на покой!
Что за отраву ты там куришь? Один из самых популярных языков программирования он на покой отправляет. :D
Выглядит впечатляюще, и код довольно симпатично будет смотреться. А то писать биндинги к C не всегда так уж просто. Жду такое в стандартном CPython 3.10 с кэшированием и -O3 :)
Да изучите наконец уже GoLang. Он же специально для пыхтонистов продвигается как замена. В нём на С можно нативно писать прямо в файле с Go кодом. И это давно уже не в стадии экспериментов, и без ограничений вида "низя передать указатели"
lol no generics
А что, в python они есть?
В любом случае, когда из него GIL выпилят, тогда и приходи лолкать.
зачем его выпиливать? про gil в python любят рассуждать те, кто не понимает, зачем он нужен, не говоря уже о том, зачем он не нужен
Golang к python относится никак.
Это вообще разные языки для разных задач.
Согласен, на GoLang можно нормальный код писать не надрывая мозг и машину.А на пыхтоне только тормозные жрущие поделия на костылях заложенных by design в структуру языка.
Но таки вы почитайте, что GoLang форсился в своё время именно как ЯП, на который можно пересадить пострадавших мозгом от пыхтона.
Мощнейшая аргументация. Вы так говорите, как будто Го сам код генерит за разраба. Бред полнейший, точно также надо писать приседать, отлаживать, преодолевать Гоупроблемы. Очередная сферическая серебрянная пуля от анонимных адептов.Интересно другое. Вам оно лично зачем, чтобы кто-то бросал знакомый рабочий инструмент и пересаживался на непонятный велосипед? Вот прям все сидят питон разрабы(и не только) и плачут от мук, ждут когда же их позовут на Го, что за бред. Прекратите рассказывать о Го то, чем он не является.
> Вы так говорите, как будто Го сам код генерит за разраба.Нет, он просто не позволяет так ловко стрелять себе сразу в обе ноги, как это делает пыхтон. Ну и ещё приятная мелочь - работает на порядки быстрее и экономичней. И в конце концов - на Це можно писать прямо внутри.
> Вот прям все сидят питон разрабы(и не только) и плачут от мук,
Нее, дорогой мой аноним. Страдают не пыхтон-пострадавшие, у них-то мозг уже отдавлен и потому не болит. Страдают те, кто их поделия на проде вынуждены использовать и/или поддерживать.
> Нее, дорогой мой аноним. Страдают не пыхтон-пострадавшие, у них-то мозг уже отдавлен и потому не болит. Страдают те, кто их поделия на проде вынуждены использовать и/или поддерживать.давай пример, трепло
> давай пример, треплоТрепло тебе анонимчик, пусть примеры и показывает. И да пребудет с тобой пыхтон. Больше таких как вы - больше спроса на тех кто поумнее. Хотя конечно, страдать вы заставляете всех кто сталкивается с вашими поделками, и это то что меня печалит каждый рабочий день.
как и ожидалось, ни один свой высер не можешь подтвердить.
> Больше таких как вы - больше спроса на тех кто поумнееэто ты про себя, что ли трепло тупое?
Если ты себе отстрелил 2 ноги на Питоне, то к Си лучше не прикасаться.Все твои фразы говорят лишь о твоем, похоже, невысоком техническом уровне.
Го можно сравнивать с нодой, но никак не с Питоном у которого сфера применения гораздо шире.
> Если ты себе отстрелил 2 ноги на Питоне, то к Си лучше не прикасаться.Бедняжко пыхтонист, знает что на ужасном це-языке страшные указатели и буфера, которые вас обязательно норовят оставить без ног, рук и вообще всего. А ещё, в нём нельзя строчки плюсиком конкатенировать.
Правда, страшный язык це, в отличии от "безопасного", "интуитивно понятного" и "страхующего от ошибок" пыхтона, не позволяет объявлять глобальные переменные из функций-замыканий, не позволяет запускать код который 100% не сможет работать, не позволяет городить синтаксически и логически бессмысленные конструкции не выводя при этом никаких предупреждений, а количество пробельчиков в начале строчки там обычно никак не влияет на логику кода. И кроме прочего, ужасный це имеет обратную совместимость с кодом которому десятки лет.
> Все твои фразы говорят лишь о твоем, похоже, невысоком техническом уровне.
> Го можно сравнивать с нодой,Твой уровень невероятно высок, потому ты сравниваешь компилируемый ЯП общего назначения, с очередным вебмакачьим поделием, требующем уровня понимания происходящего... Ну примерно как у пыхтониста.
А что там, кстати, нельзя принципиально на Go сделать, что можно на пыхтоне напыхтеть?
Знатно тебя бомбит.Языки я сравнивал по сфере применения, Го в основном это вебня и сервисы, как и нода.
То что он компилируемый, внезапно, является и недостатком одновременно.Го не нужен, без него хватает других решений, просто разрабы Го сделали вид, что их нет и создали свой велосипед с присказкой "любой идиот освоит за 5 минут". Видать идут в Го те, кто не осилил норм ЯП и потом они же засирают треды новостей про раст, яву, питон и т.д. навязывая никому не нужный велосипед.
> Знатно тебя бомбит.Та не, дорогой анонимчик. Меня не бомбит, я тут пишу примерно раз в полгода, когда немного развлечься хочется.
По большому счёту, мне решительно пофигу кто на чём пишет, если оно нормально работает в итоге. Например, наш продный софт написан на Java, и претензий у меня к нему никаких. Во всяком случае, если с пыхтоном сравнивать, на котором только обвязка (кстати ынтыпрайз за деньги). Но дело конечно, не в одном только конкретном примере. Дело в том, что достаточно обширная практика показывает, что пихтонические поделки нормально работают где-то в 1 случае из ... Даже не знаю какое сюда число писать, но оно больше 10.
> Языки я сравнивал по сфере применения, Го в основном это вебня и
> сервисы, как и нода.Бгг, 15-20 лет назад тогдашние веб-макаки так говорили про Perl.
То что анонимчик не знает что на нём можно очень успешно решать задачи совершенно не связанные с вебнёй и сервисами (какими?), говорит только лишь об анонимчике, но не о ЯП.И да, если пыхтонисты уйдут вон со своим поделием из сферы написания резидентных сервисов, то я лично напишу им большую благодарность. Но не уйдут же ведь, потому и печалюсь.
> Го не нужен, без него хватает других решений, просто разрабы Го сделали
> вид, что их нет и создали свой велосипед с присказкой "любой
> идиот освоит за 5 минут".Мухаха, то же самое можно сказать и про пыхтон, который как раз и ориентирован на "любого идиота".
> Видать идут в Го те, кто не осилил норм ЯП и потом они же засирают треды новостей
> про раст, яву, питон и т.д. навязывая никому не нужный велосипед.Видать идут в пыхтон те, кто не осилил норм ЯП, С, С++, Perl (мир его праху), Java, разновидности асмов... Навязывая никому не нужный гвидобасик.
(кстати, скажите например гуголю, что он k8s написал на никому не нужном велосипеде, без вашего экспертного мнения он там загинается совсем)
> Знатно тебя бомбит.
> Дело в том, что достаточно обширная практика показывает, что пихтонические поделки нормально работают где-то в 1 случае из ... Даже не знаю какое сюда число писать, но оно больше 10."имя, сестра, имя!". то есть примеры, пожалуйста, трепло, у меня опыт ровно обратный
> пыхтонисты
> пихтоническиеза одно употребление подобных слов тебе нужно ржавый гвоздь в мошенку вбить
> за одно употребление подобных слов тебе нужно ржавый гвоздь в мошенку вбитьМощно!
Так как метод "убедить вас не получится, потому сразу перейду к оскорблениям", результата не дал, то пришлось перейти к угрозам членовредительством?Ты там это, хлебни чайку, напиши пару поделок на пыхтоне, погляди в бэктрейсы. Глядишь попустит.
> Так как метод "убедить вас не получится, потому сразу перейду к оскорблениям", результата не дал, то пришлось перейти к угрозам членовредительством?кому ты нужен, ничтожество?
я, в отличие от тебя, написал достаточно софта и на питоне, и на крестах, и на го, на яваскритпе и даже на php - все прекрасно работает и поддерживается. тебя же просят подтверждать свой бред примерами, а не лирическим графоманством, доказательствами, чего ты сделать, естественно, не можешь, потому что это твоя суть - трепло
Есть типичная статья на Хабре(https://habr.com/ru/post/282588/) гошника, начавшаяся с того, что "жаба тормозит" и тп потому я выбрал Го!В комментариях этого писателя разнесли впух и прах за ложь по отношению к жаве и указали гражданину на его тех. безграмотность. В общем все свелось к неосиляторству.
Здесь ровно та же картина, только нападение на Питон.
Питонистам не подходит Golang им во первых тяжело в статической типизации. Ну а во вторых пайтон поддерживает полный ООП, а в Golang ООП очень урезанный.
> Питонистам не подходит Golang им во первых тяжело в статической типизации.Да, думать приходится как код писать, а не "хренак-хренак и в продакшн! Как-нибудь заведётся!" Да ещё и компилятор постоянно за тобой скрытые ошибки ловит и не даёт код собрать/запустить. То-ли дело в пыхтончике, как бы ты не навертел (кроме священных отступов) - всё запустится! Правда эффект будет непредсказуемым, но это уже не наши проблемы!
> Ну а во вторых пайтон поддерживает полный ООП
Ну да, ну да. Особо хорошо там с инкапсуляцией приватных членов.
> а в Golang ООП очень урезанный.
А там вообще нет ООП в классическом смысле. Зато там есть интерфейсы, которые деле для многих задач хороши возможно не менее чем оно, а где-то даже более. Вопрос в общем, очень дискуссионный.
Зато плюсы неоспоримы, такие как очень сильная страховка языком от дурацких ошибок, хорошая обратная совместимость, простая и удобная работа в асинхронном/параллельном режиме, и наконец - производительность. Всё это оставляет пыхтончик где-то далеко позади.
Но конечно, старый старый мопед на карданном вале и с паровым двигателем, он приятней и привычней, понимаю вас :)
> Ну да, ну да. Особо хорошо там с инкапсуляцией приватных членов.так-так, и какие проблемы с приватными членами, трепло?
"Это уже было в Perl", бгг!
Ваше Х плохое! Давайте сделаем У! Через некоторое время получается У подобное Х ...
И так будет с каждым.
Нужно улучшать имеющееся, а не тратить время на изобретение(людям хочется Си подобного синтаксиса! и вот он блин ...)
присобачьте еще несколько языков. Си будет одиноко
Круто! А теперь уберём обёртку из питона и будет всем счастье!
Не будет, в C нет классов. Ну разве что ещё и C++ прикрутить.
В C есть структуры, это те же классы, но без пространств имён внутри.
пространства имен внутри при желании легко симулируются макросами.
хотя на самом деле они банально не нужны.
Пихон и его стремление "ускориться" и "воспользоваться преимуществами си" -- это как девушка "с широкой костью", которая отчаянно пытается похудеть, но ничего не выходит. Да что там, если продолжать аналогию и вспомнить про то, что даже сам создатель пихона, работая в дропбоксе, так и не сумел "ускорить" свое детище, то в случае с девушкой получится, что создавший ее Господь Бог тоже сдался и прекратил всякие попытки ее прохудить.
Зря вы так. Девушки "с широкой костью" очень даже худеют. Причём выглядит всё довольно забавно. Например, если широкая кость тазовая и при этом весь жир сожжён в бёдрах и в талии, то так прикольно - ставишь такую рачком бабёнцию, а реально попы нет, а по бокам как будто кости торчат, хватаешь их, входишь в неё, и как будто со скелетом занимаешься любовью. Нет, уж лучше жирок помять чем вот так вот. Одно расстройство. Если меня читают девушки, то не бойтесь жирком нарасти, только особо не увлекайтесь, а то от крайности в крайность...
Никогда не знаешь в какой новости найдешь лулзы.
Вот объясни это тем, кто использует питон для высокнагруженных систем, например разработчикам нейросетей. Может если вам не хватает производительности питона, то вы что то неправильно делаете? Нет, ну не пиксели же или биты переставляете в двоичных массивах на самом деле. Если же я ошибаюсь и вы используете питон для битовых масок и копирования байтов в оперативной памяти, то вам не кукарекать на каждом углу что "питон отстой", "питон тормознутый" и прочее КоКоко, а вам нужно к врачу срочной.
> например разработчикам нейросетей"Образ выпуклый но решительно неаппетитный"
Ах извините, чо я встреваю в самом деле, продолжайте пжалуста.
> Вот объясни это тем, кто использует питон для высокнагруженных систем,Так гвидобейсик и делает их высоконагруженными.
в данной ветке собрался весь цвет опеннетовских икспертов в области машинного обучения
Этот эксперт таки был майнтайнером glibc помнится... :)
тяжело представить тему, в которой данные организмы не были бы икспертами
> тяжело представить тему, в которой данные организмы не были бы икспертамиВот конкретно тот организм таки майнтайнил одну из ключевых системных либ, и вообще, видимо нехилый програмер, если оставить моральные качества в стороне. И вы очень врядли птица того же калибра.
> кто использует питон для высокнагруженных системКоторые поголовно утыкаются в производительность / расширяемость и переписывают свои сервисы на Go?
> например разработчикам нейросетей
Это у тех, у которых весь код написан на C/C++?
>> например разработчикам нейросетей
>Это у тех, у которых весь код написан на C/C++?Нет. У них там ещё есть lua
некоторым недалеким (такими себя не считающими, разумеется) икспертам кажется, что им удаются аналогии вообще и уместные в частности
Это говорит лишь о том, что Питон является востребованным языком и у разрабов есть задача точечно повышать производительность. Ваш лирический текст носит капитанский смысл.
Это явное misuse кодеков и костыль.Вместо извращений нужна возможность расширять синтаксис питона питоном.
Теперь от си можно избавляться, так как в питоне есть встроенный си. Что ещё нужно для счастья?
>> Теперь от си можно избавлятьсяКазалось бы, причём здесь реформа образования...
Мы знаем о вашей любви к программированию, поэтому встроили вам язык программирования в язык программирования, чтобы вы могли программировать, пока программируете.
Слушайте, а ведь так можно и SQL и CSS в код встраивать?
Ну так CSS, наверное, ценен тем, что его можно менять не трогая код?
Для счастья нужно выбросить питон.
Из новости не понятно, исполняется код скомпилированный в родные инструкции процессора, или это по сути встроенный интерпритотор Си? К стати, проблема передачи указателей из питона в си и обратно, не тривиальная, например я не осилил как из питона вызвать функцию получающую указатель на массив указателей, котороый после вызова меняется. Вот только решение которое я нашёл, например в оффициальной питон обёртке к ГТК, там просто написали Си функцию которорая вызывает требуемую, и возвращает в питон данные в простом формате. Поэтому не удивительно что с указателями у авторов предмета, есть только простые Си-строки.
Из вашего комментария видно что вы не умеете читать ?
А что там можно понять при прочтении? Читателю, незнакомому с питоном, термины кодек и ctypes ничего не говорят, новость написана для питонистов. Не-питонист попросил пояснения - Вы ему нахамили.
Вот это "сохранение промежуточных *.so, *.o и *.c файлов в текущем каталоге" не-питонисту тоже ничего неговорит ?
И где там написано, что эти промежуточные .o и .so получены именно компиляцией именно тех фрагментов на C? Тем более, что если необходимость запускать gcc -E - это уж прямо такая большая недоработка, то запуск gcc для компиляции - это для создателей декоратора @inlinec, надо понимать, вообще что-то запредельно нежелательное.
Кроме того, формулировки "выполняется как есть интерпретатором", "парсер для преобразования скрипта перед его разбором интерпретатором" и "Python получает уже корректный преобразованный исходный текст скрипта" дают основания полагать, что всё-таки код на C заменяется на какой-то код на Питоне.
Так или иначе, нигде в тексте новости ясно и недвусмысленно не сказано, что внедрённый в скрипт C-код компилируется в двоичный исполняемый машинный код - говорится только о каких-то заменах, преобразованиях и подстановках.
У человека возникли сомнения и он попытался прояснить вопрос для себя. В ответ вместо "да" или "нет" получил комментарий о неумении читать.
Спасибо тебе, добрый человек!
В C# это решается с помощью "pinned objects". Можешь посмотреть туда.
Скоро все языки будут встраиваться во все, и всё у нас будет в ШоКоЛаДе.
> всё у нас будет в ШоКоЛаДе.Шёл бы ты на свой iПарад...
Оно и видно, что этим вашим "шоколадом" в вебе настолько всё обмазано, что разит за триста вёрст.
Забавно думал это давно было. Ruby так умел еще в году этак 2008, а может и раньше. https://github.com/seattlerb/rubyinline
А ежели я захочу в одном питонячем скрипте и си и хтмл?
Ждите from inlinehtml import inlinehtml
Хорошая новость для Сишников. Теперь можно программулину на С обернуть в несколько строк на Пайтон и считатся модным молодежным кодером. Фиг же кто оспорит.
Теперь можно в одной программулине оба языка использовать. Иногда такое надо.
man ffi
С этим вашим ffi приходится ещё тащить всякое уродство в виде мейкфайлов, configure и прочего. То что люди показывают что без всего этого можно обойтись - очень хорошо.
С одной стороны да, а с другой - это "уродство" не просто так придумали, а для борьбы с несовместимостями платформ, конфигурирования, подключения библиотек и так далее. Что всё равно понадобится, скорее всего. Но для проствх случаев - отличный подход.А сам принцип - аннотированный код преобразовывать произвольным образом - совсем хорош,-удивительно, что его шире не применяют. Начиная с тех же BNF и заканчивая каким-нибудь генератором шаблонов.
Отлично! Теперь буду скрипты на сях писать.
А что раньше то мешало? Tcc даже пример приводил как это делать. Без всяких пихонов :)
Не совсем разобрался, а вызовы из Python происходят из основного потока или используется какой-то вариант ThreadPool? Не возникнет ли проблем с реентерабельностью и потокобезопастность в данных C подкладках?
А в чём проблема? Питон однопоточный же в любом случае. Если отключишь гил, делай как захочешь, но это придётся в сишном коде реализовывать.
Пихон поддерживает экспериментально subinterpreters
Судя по комментариям либо программисты на питоне обладают специфический чувством юмора либо большая часть из них не ту профессию выбрала.
код разделённый отступами притягивает особенных
есть более лучший способ:
# ln -sf /usr/bin/gcc /usr/bin/python
# ln -sf /usr/bin/g++ /usr/bin/python ближе к телу Python
Если мне не изменяет память, то пайтон является основным инструментом для непрограммистов.
У непрограммистов основные инструменты - Word и Excel
Ну так их vbscript как раз для примерно той же аудитории что и питон.
> Ну так их vbscript как раз для примерно той же аудитории что и питон.эта аудитория любят писать на вбскриптах, питоне, сишечке, шарпе и прочей ботве.
нормальные кодеры используют ассемблер, а не вот это смузихлёбное непотребство.
Ты нормальный?
> Если мне не изменяет памятьпамять вам ещё как изменяет...
https://www.opennet.ru/openforum/vsluhforumID3/118875.html#23
Гвидо просто сделал несколько опечаток в слове "вебмакака". Ну и он допрограмился до того что сбежал с должности BDFL. Видимо, настолько ускорился что превысил скорость света, не иначе.
> вебмакакаВебмакака - термин, который не привязан к конкретному языку. Это "состояние души". Например, в российских конторах полно макак, которые пишут отвратительный код на C или Java.
На си писать отвратительный код - неудобно и чревато. А на питоне отвратительный код повсеместно. Вон там в соседней новости какие-то тела размахивают чудом где код и конфигурация вперемешку. Найти сишника который бы так же делал наверное трудно даже в РФ.
Сколько ошибок в слове "1С"
ИМХО, малополезная вещь, синтаксический сахарок.
Не вижу никакой проблемы писать, юзая ctypes.Самая мякотка здесь в преобразовании типов, которое между си и питоном делается ручками по принципу выдалбливания пещеры зубочисткой.
Что сводит все профиты на нет.
Извращенцы
Чем не угодил цВитон
Ждём inlinerust
Нет, не ждем.
Гвидобэйсик дорос до Inline::C. А там есть ещё Inline::Java и Inline::Python. Есть куда расти.В своё время с помощью Inline::C ускорил ETL в 30000 раз. Упёрся в 12Gbps SAS и забил на дальнейшую оптимизанцию.
Вот спрашивается, на что они потратили 30 лет?
На нормальную документацию на разных языках и библиотеки. Оттуда и популярность.
Ты хотя бы примерно видел объём перловых библиотек? CPAN многие годы совершенно чудовищен в этом плане.Что до документации - тоже чепуха. Camel book и наследники прекрасны и спокойно позволяют въехать в язык нуля.
Основная проблема перла - он делался умным для умных, и его гибкость и анархичность оказались чрезмерными для обывателя, в отличие от питоновского орднунга с его pep8. Второстепенные - в нём некоторое время был бардак с юникодом (хотя в основном - это, опять же, бардак в головах на тему что такое кодировки и как ими пользоваться) и странные заголовки функций.
>делался умным для умныхой, кто это тут у нас: неужели илитка?
Нет, он просто умный. И я тоже умный. Это позволяет нам, умным, хорошо видеть дураков.
Поражаюсь вашей выдержке: так трудно оставаться аристократом, когда воркуг одно быдло неразумное.
Завидуешь умным? Попробуй читать больше грамотных книг, расширяй кругозор. Развивай критическое мышление, ищи всякие упражнения для мозга. Научишься хоть язвить остроумно.
ну, что вы, ваше блаародие, куда мне до господ...
все перечисленное не делает умным, непонимание этого прекрасно показывает какой ты "умный" на самом деле
Забивание чердака чужими готовыми решениями и идеями не делает тебя умным. Также умные люди, как правило, тяготеют к скромности, т.к. прекрасно осознают, что нихера не знают.
На борьбу со скобками... и на нормальные заголовки функций :-)
А когда ASM прикрутят? Без ASM'а очень тяжко кодить в принципе... Хочу ASM в питоне, а то в JS сделали, а здесь нет.
Прочёл сначала как "Когда AST прикрутят"... и что-то в этом есть.
Так, оно же через gcc работает, а gcc ASM умеет.
> А когда ASM прикрутят? Без ASM'а очень тяжко кодить в принципе...В 2008, если не раньше - назывался (кто бы мог предположить) - pyasm, причем были разные и от разных авторов.
pycca - "PyCCA provides compilers for C and x86 assembly" тоже уже лет 6
MicroPython:
http://docs.micropython.org/en/v1.9.3/pyboard/pyboard/tutori...
> MicroPython includes an inline assembler. It allows you to write assembly routines as a Python function, and you can call them as you would a normal Python function.В общем, "приходи вчера!".
> Хочу ASM в питоне, а то в JS сделали, а здесь нет.
Что только не придумают, лишь бы С не изучать.
а про Rust забыли уже?
Н вот, на нормальный язык стал похож. А то выглядел, как псевдокод...
а в это время на swift пишутся проекты для ML, data science.
пара примеров:
https://github.com/param087/swiftML
https://github.com/KarthikRIyer/swiftplot
Нет, не пишутся.
А потом мы возьмем и все напишем на Си :)
Основную массу времени сижу на англоязычных ресах, после перехода на "нашинские-простоквашинские" хочется завыть читая комменты "умников", и начинаешь понимать парадокс "хорошие люди в плохой стране"Сплошная дичь и выпендреж при полном непонимании инструментов.
Python изначально следовал и следует за математикой и выразительностью с ракурса мат.абстракции (принося в жертву дороговизну манипуляций в реалиях архитектуры фон Неймана)
Из этого ряда - работа с целыми бесконечной длины,и т.п.
Питон (и какой-нить R) и подобные (типа Wolfram) -- безальтернативны для прикладного кодинга, для датасайнтистов это вообще топ-1
(спросите у них)Поэтому, когда вам надо относительно короткий, читабельный, академически опрятный код (со сподручной правкой - интепретатор же), то скриптовать на нем одно удовольствие.
Слабо представляю, чтобы нормальный человек в здравом уме начал кодить аналитический (ситуативный) расчёт или какой нить сценарий/скрипт деплоя на компилируемом GoLang.
Хотя вроде всякие Sublime,Blender(3D) юзают и не жалуются на "скорость", не говоря и Django, футпринт которого по скорости и памяти не хуже, написанного (весьма не криворукими олдскулами типа PAFa и Moko) на C++, какого нить отечественного Parser3 с высокоуровневой оснасткой типа PF2 (без обвязок это велосипед для гостевух). И на котором вертятся онлайн банкинги некоторых топовых банков и порталы/лк сотовых операторов (Татьяныч не даст соврать)
*про GIL отдельно одаренным стоит понять почему это и изучить питоновские корутины, если приспичил асинхрон.
Сишно,Гошные языки напротив, следуют за архитектурой (ценой всего вышеперечисленного выше) и когда "вещь" уже устоялась и она высоконагруженная (не только самим питоном, лол), то тогда и только тогда имеет смысл "вертикальной интеграции вниз" то есть переписывания всего или ядра под архитектурно-оптимизированные языки.
Серебряной пули нет (пока) и каждый инструмент под свои задачи. Впрочем, php можно убрать за скобки вообще.
Я просто оставлю это здесь:
https://benchmarksgame-team.pages.debian.net/benchmarksgame/...На некоторых операциях типа обработки текста, Питон3 уделывает даже Rust, а Go просто в пыль.
Ещё на операциях типа pdigits, поэтому тупые вскукареки выдают лузеров индустрии.
в операциях с btree (бинарные деревья) разница между go и питоном почти не будет
А ещё есть PyPy с JIT-компиляцией, которая уделывает CPython, в общем много чего есть.
Без сложных задач:
вот этот код на чистых Сях:
(сумма в цикле)#include <stdio.h>
int main ()
{
long a;
long sum;
/* for loop execution */
for( a = 0; a < 10000000; a++ )
{
sum += a;
}
printf("sum: %ld\n", sum);
return 0;
}
выполнится в лучшем случае в 3 раза быстрее (что обычное число отставания Go от чистых С в бенчах) чем на Python3 через pypy (при втором запуске)sum = 0
for i in range(10000000):
sum+=i
print(sum)
^^^
А выразительность, и краткость листинга, я думаю наглядна, "писакам всего на Сях" :)
Ну то есть за 4 строчки кода вместо 8 готовы пожертвовать 3x производительности. Ох уж эти пыхтонисты.
И то инклуд, main() и return 0 можно не считать, то есть не 8 даже, а 5.
> И то инклуд, main() и return 0 можно не считать, то есть
> не 8 даже, а 5.К тому же на инклуд можно забить, если уж програмить с качеством как у питонистов. И фигурные скобки в for лишние, однако.
x3 это вообще среднее отставание golang от C на многих бенчах. А уж асму то сколько "иксов" слили и подумать страшно.
у тебя ошибка в коде и рандомный результат.{
long sum = 0;
for (long a = 0; a < 10000000; a++)
sum += a;
printf("sum: %ld\n", sum);
}
> у тебя ошибка в коде и рандомный результат.
> {
> long sum = 0;
> for (long a = 0; a < 10000000;
> a++)
> sum += a;
> printf("sum: %ld\n", sum);
> }Результат по-любому "рандомный", т.к. будет вычислен во время компиляции (начиная с -O1) и в итоге "замерять" будут время старта и вывода константы:
echo 'long foo(void) {long sum = 0; for (long a = 0; a < 10000000; a++) sum += a;return sum;}'|gcc -O2 -S -x c - -o -
foo:
.LFB0:
.cfi_startproc
movabsq $49999995000000, %rax
ret
.cfi_endprocНу и вообще, пока горячие парни опеннета упорно сравнивают длин^W разм^W количество скобок-строк, однострочник на awk (вообще без скобок и отступов) делает их, как стоячих – что по скорости, что по минимализму 😎 *gg*
echo 10050000000000000000|time gawk '$0=$1*($1-1)/2'
50501249999999996460144636159871418368
gawk '$0=$1*($1-1)/2' 0,00s user 0,01s system 80% cpu 0,006 total
// Автор "хитрец" - разбросал всё что мог по отдельным строчкам
int main()
{
long a, sum;
for (a = 0; a < 10000000; a++)
sum += a;
printf("sum: %ld\n", sum);
return 0;
}