LINUX.ORG.RU

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

Нет, притон вообще в среднем короче чем С/С++ для условно средней задачи

Да, я не спорил с этим. Примерно 3-5 раз. Нужно понимать, что в C/C++ кроме выполняемых инструкций есть невыполняемые, которые вполне себе облегчают чтение программы, пусть и затрудняют написание.

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

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

И это уже не говоря о том, чтобы тестить на современном (чего и bnchmarks-game не делает) железе с актуальными версиями софта. Сейчас, запущу эту дичь.

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

Вообще то я биндю классы со сложными полями и кучей функций со сложными аргументами

Да, я посмотрел SWIG — действительно, впечатляет. Хоть и не родной фейс, и есть некоторые проблемы ( http://www.swig.org/Doc4.0/Python.html#Python_nn40 ), но в общем я вынужден согласиться, что для для питона возможно быстро сделать работающие достаточно сложные биндинги.

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

Условно считается (на основе моего опыта и опыта коллег) что разница по скорости разработки составляет порядок

Да. Я отвечал на:

Всё, что можно сделать на питоне, можно сделать и на фортране, только будет раз в 10 больше кода. А на сях раз в 50 больше кода

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

Тот, что с сайта luajit сравнивается с референсным lua и больше ни с чем

LuaJIT убрали с benchmark game, а это был самый доступный бенч, потому нужно смотреть архивы, например, на archive.org.

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

Пример из питона является статической типизацией

О_О???

Описался. Динамической типизацией, конечно же.

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

Ок. А чем динамическая типизация отличается от утиной? Я всегда думал что это одно и то же, но я не специалист.

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

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

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

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

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

http://a-iv.ru/pyart/cpp2py.pdf может пригодиться.

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

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

Мененгит ваще того, я ему сказал «хотя бы уровня benchmarks-game», а он притащил совсем какой-то зашквар. Я же его ткнул носом в бенч techempower, где всё по полочкам.

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

ну если у тебя получается, то ты - монстер.

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

Да. Я отвечал на:

Всё, что можно сделать на питоне, можно сделать и на фортране, только будет раз в 10 больше кода. А на сях раз в 50 больше кода

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

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

Смотри, ну докажу я тебе, что lua быстрее java/c# и прочего на определённых задачах, что жрёт там, в 500 раз меньше памяти и всё такое. И что это изменит? Мне даже лень суетиться и распинаться, я уже тестил 2 года назад все эти lua/perl/php/ruby/python/pypy/node/go/swift/d и прекрасно знаю их производительность на интересующих меня задачах, к примеру, game движки, perlin noise и прочие число дробилки, и я использую эти языки как инструменты, где-то один хорош, где-то другой. Мнение с лора и тесты всяких отдач json plain в tcp сокетном hello world мало что даст на практике людям и мне

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

Смотря какой

Конкретно мой код. С сожалением смотрю на коллег, которые пытаются всё делать на c++/fortan. Трахаются впустую они значительно больше, чем я. Да, я вкурсе, что большинство питоновских модулей написано на сях.

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

Luajit наибыстрейший. Реально. Это самая быстрая vm на планете. C#|Java даже рядом не валялись

lua быстрее java/c# и прочего на определённых задачах

Почувствуй разницу.

в 500 раз меньше памяти

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

Ещё скорость запуска мог упомянуть. Но нет же, «самая быстрая vm на планете. C#|Java даже рядом не валялись». Ещё как валялись, и джава неплоха, а шарп вообще феноменален в плане скорости.

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

На хабре была статья с экспериментальным сравнением

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

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

Нет. Это не так. В 95% случаев, жиненных, C# и Java сливают по скорости LuaJIT, также как Go, Swift, D, и V8. Java и C# по потреблению памяти равны Ruby

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

Но нет же, «самая быстрая vm на планете»

Да, это так. LuaJIT генерирует минимум инструкций на действия vm. JIT в V8 тоже крутой, но там своя специфика, он очень прожорливый до памяти, считается более высокотехнологичным, нежели JIT Java/C#

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

Не верь, а сам проверь. Возьми netty, luvit и потесть на генерации и отдачи карты perlin noise 2D 650 x 650 по HTTP - удивишься результатам

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

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

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

Ок. А чем динамическая типизация отличается от утиной? Я всегда думал что это одно и то же, но я не специалист

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

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

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

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

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

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

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

Ничего что в питоне типизация строгая, в отличии от плюсов? Это не вяжется с Вашим утверждением что в питоне нет типов (они там очень даже есть).

@monk, @pon4ik у меня нубвопрос к гуру за 300. Чем динамическая типизация отличается от утиной? Я всегда считал что это одно и то же, но в Вики это две разных статьи и ЯННП:-(

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

Крякоть не умеет.

Хороший пример «утиной» типизации - СУВТ в Метапрог.

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

Чем динамическая типизация отличается от утиной?

Динамическая типизация = у одной переменной в разное время могут быть значения разных типов.

Утиная типизация = проверяется не тип, а наличие метода (или возможность применения в операции) у значения.

Как правило, бывают вместе, но не обязательно.

Например, в C++ типизация статическая, но внутри шаблонов утиная

template <typename T, typename U>
T max(T x, U y)
{
    return x>y ? x : y;
}

работает для любых значений, для которых осмыслена операция «>».

А в CL типизация динамическая, но в (declare (type …)) и (defmethod …) не утиная.

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

Мораль сего ответа такова - «бедность - не порок».

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

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

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

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

Как реализована работа с объектами в реализации Python знаете?

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

Не стоит путать реализацию на С и то что реализовано. Это классический пример подлога понятий. Ну или надо тогда задаваться подобными вопросами относительно ранних версий pypy.

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

Ничего, что автор вообще не понимает что такое бенчмарк и как его писать. Толку от этих тестов - ноль.

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

Верно подметили, речь о строгой динамической типизации. А не о конкретной реализации языка Python на С. Я понимаю к чему вы клоните, но вы продолжаете либо умышленно либо нет путать теплое и мягкое. Очевидно, что реализуя Python на С внутри этой реализации все волшебство динамической типизации сойдет на нет и это всего лишь идея воплощенная статически типизированным языком С. Но реализация бывает разной тот же pypy такой же python что и cpython, и говоря о динамической типизации мы говорим именно о ней как о самой идее уже реализованной в виде Python, которая работает именно так как была задумана эта идея. Т.е. если следовать вашей логике можно сказать что динамической типизации вообще не существует, но это не так.

abcq ★★
()

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

anonymous
()

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

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

Т.е. если следовать вашей логике можно сказать что динамической типизации вообще не существует, но это не так

Зачем вы свою логику приписываете другому?

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