Разработчики из Института астрономии и исследовательской лаборатории космологии Швейцарской высшей технической школы Цюриха открыли (http://arxiv.org/abs/1410.4345) исходные тексты проекта HOPE (http://pythonhosted.org/hope/index.html), разработанного для ускорения выполнения программных систем на языке Python, используемых для астрономических вычислений. Код проекта распространяется (https://github.com/cosmo-ethz/hope) под лицензией GPLv3.HOPE представляет собой JIT-компилятор, оформленный в виде модуля на языке Python, транслирующий специально отмеченные блоки кода в представление на языке C++ и на лету компилирующий их в машинный код. При первом запуске Python-скрипта при помощи пакета setuptools и штатного C++ инструментария выполняется компиляция HOPE-блоков в форму разделяемой библиотеки, после чего результат кэшируется при последующих вызовах. Обрабатываемые при помощи HOPE функции помечаются специальным декоратором "@jit" или вызываются с использованием функции jit(), например:
<font color="#461b7e">
from hope import jit@jit
def poly(x, y, a):
x1 = x - a
y[:] = x1 + x1 * x1def sum(x, y):
return x + ysum_opt = jit(sum)
</font>Внутри компилируемых функций допускается использование специального подмножества (http://pythonhosted.org/hope/lang.html) языка Python с поддержкой явного определения типов, предоставляющего достаточные возможности для научных вычислений. Выигрыш в производительности при использовании HOPE по сравнению с обычным Python может достигать (http://refreweb.phys.ethz.ch/hope/benchmark.html) десятков раз - скорость выполнения скомпилированных функций приближается по производительности к программам на С++.
<center><a href="http://pythonhosted.org/hope/arch.html"><img src="http://www.opennet.me/opennews/pics_base/0_1413781633.jpg" style="border-style: solid; border-color: #606060; border-width: 1px;max-width:100%;" title="" border=0></a></center>
URL: https://news.ycombinator.com/item?id=8471638
Новость: http://www.opennet.me/opennews/art.shtml?num=40869
Больше трансляторов, хороших и разных!
Пущай откроют для себя shedskin
Его автор почти не развивает, при том что код на ужасном хостинге Гугл-код.
А тут поддержка института, и код на гитхабе это большой плюс.
Развитие - это одно. Но сделать свой форк на гитхабе - это, конечно, чудовищно сложно
Про Гугл-код и гитхаб я к тому что, на Гугле он малозаметен, а делать форк, что бы прежние коммитеры перешли и развивали именно этот форк, это нужно куча усилий вопросов, в гуглогруппе.
> Пущай откроют для себя C++//fixed
Сюда больше напрашивается сравнение с http://numba.pydata.org/
> sum_opt = jit(sum)Да, очень удобно - везде самому тыкать в то что надо скомпилировать :).
этот вариант для тех, кто ниасилил использовать декоратор
Декоратор — просто синтаксический сахар для того же тыканья пальцем.
> этот вариант для тех, кто ниасилил использовать C++//fixed.
> помечаются специальным декоратором "@jit" или вызываются с использованием функции jit()это одно и то же
Внезапно возникает вопрос, почему писать на подмножестве Python предпочтительнее чем писать на полном C++, либо любом другом компилируемом языке?
Ну, может сначала делали временный прототип, потом он сам эволюционировал до крупного проекта, который переписывать на C уже трудно и дорого. Python и прочие позволяют отсрочить дрочево над байтами и сосредоточиться над реализацией проблемы. В данном случае, отсроченная куча мутирует во всякие фееричные костыли.
>Ну, может сначала делали временный прототип, потом он сам эволюционировал до крупного проекта, который переписывать на C уже трудно и дорого.Расшифровываю, python используется только тогда когда по глупости на нём что-то небольшое и несложное написали быстро и потом стали дописывать, дописывать, дописывать... забыв про то что Python не годится для численных вычислений. Т.е. глупость, обыкновенная глупость является единственной причиной использования Python.
> забыв про то что Python не годится для численных вычислений.Про numeric/numpy/sci-py идиоты, пардон, анонимы, не слышали? Ну, на то они и, чтобы глупости говорить, ага.
>Про numeric/numpy/sci-py идиоты, пардон, анонимы, не слышали?Идиот тут только ты. Зачем мне возиться с костылями в виде numeric/numpy/sci-py, которые может быть в некоторых случаях будут сравнимы по скорости с C, C++, Fortran, я лучше сразу буду писать на них.
Да всем по* на чём будешь писать ты, а умные люди вон пишут на Питоне и ничего - становятся только умнее.
> а умные люди вон пишут на ПитонеСомнительный тезис. Большинство програмеров на питоне - то же самое что на вьюжлвасике.
> и ничего -
...много ипутся на ровном месте с тем фактом что он торимозилово. Это наверное и есть поумнение.
Ну если учесть то, что специалисты в своих предметных областях пишут на проприетарных мат-лаб-кадах, то если они освоят Python в виде numpy/sci-py, то это большой плюс. Т.к. ихними трудами могут воспользоваться другие исследователи, предпочитающие пользоваться OSS.
>Ну если учесть то, что специалисты в своих предметных областях пишут на проприетарных мат-лаб-кадах, то если они освоят Python в виде numpy/sci-py, то это большой плюс. Т.к. ихними трудами могут воспользоваться другие исследователи, предпочитающие пользоваться OSS.А если они освоят C++ то это будет гораздо лучше для тех кто будет пользоваться "их трудами". Кроме того, учёные не делятся кодом к большому моему сожалению, делятся только для старых задач и то редко, а то если новым поделишься, то ведь могут и быстрее тебя статью написать и в журнал отправить обсчитав на твоём коде, отбирая по сути твой хлеб.
> Кроме того, учёные не делятся кодом
> к большому моему сожалению, делятся только для старых задачОткройте для себя гитхаб, на нем одном уже сотни востребованных и "свежих" проектов.
> отбирая по сути твой хлеб
Пытаются крысятничать везде, конечно. Впрочем, я думаю что ваши рассуждения - издалека и чисто теоретические.
А на самом деле - недалек тот день, когда подобные публикации уже никто не примет.
>Откройте для себя гитхаб, на нем одном уже сотни востребованных и "свежих" проектов.Пользуюсь github регулярно уже года четыре.
Свежий - это означает что никто ещё этим не занимался и это делается впервые, в такой ситуации при выкладывании исходников в общий доступ, конкурирующие группы учёных, могут запросто воспользоваться моим кодом и, так сказать, развить идею. А ведь развить идею мог бы и я сам, но время упущено уже, статью они уже написали, её отправили на рецензию и приняли, получается я лишаюсь темы для статьи т.к. то что сделаю я будет всего лишь повторением.
>Впрочем, я думаю что ваши рассуждения - издалека и чисто теоретические.
Ну думай, думай.
>А на самом деле - недалек тот день, когда подобные публикации уже никто не примет.
Это крайне маловероятно, хотя это было бы замечательно - скорость развития науки очень сильно увеличилась бы при требовании публиковать в открытом доступе исходники при публикации любой научной статьи где есть численные расчёты.
> Это крайне маловероятно, хотя это было бы замечательно - скорость развития науки
> очень сильно увеличилась бы при требовании публиковать в открытом доступе исходники
> при публикации любой научной статьи где есть численные расчёты.Даже на этом заборе проскальзывают некоторые новости, напр. вот:
http://www.opennet.me/opennews/art.shtml?num=33652
А всё потому, что наука превратилась в гонку за количеством публикаций.
А все потому, что лишилось поддержки государства и оказалась в омуте вне-плановой экономики.
На западе учёные тоже производят макулатуру, хоть и не лишились финансирования.
> На западе учёные тоже производят макулатуру, хоть и не лишились финансирования.Угу, расскажите это NASA.
Другое дело что народ там изначально не был избалован поддержкой госсударства, но необходимость изобретения вундервафель заметно подуменьшилась с поражением СССР, что сказалось на финансировании. И на луны всякие флажки уже не надо спешить доставлять.
Внезапно возникает ответ, что это для ускорения существующего кода, а не для написания нового. Всегда ваш, Капитан.
>Внезапно возникает ответ, что это для ускорения существующего кода, а не для написания нового. Всегда ваш, Капитан.Внезапно возникает новый вопрос, что это за учёные такие, что у них есть существующий код для численных вычислений на Python, почему они с самого начала не использовали компилируемый язык?
Сразу видно такие как ты не читают специализированные ветки научных проектов.Основной мотив развития научных либ на питоне, то что синтаксис легко читаем, т.е. по прошествии 3го кол-ва лет и уходе разработчика научной библиотеки, код быстро смогут подхватить новые люди. У питона множество биндингов к уже существующим проектам.
И как бонус интерес молодежи.
У ряда либ, ядро так и осталось на фортране, но постепенно заменяется на питон.
Ничто из этого не является поводом для использования Python вместо C++ или C.
Точно! Не используй Python, я разрешаю.
Не является. Но сообщество учёных весьма зрелое, с устоявшимися практиками и инструментами. Если выбрали для чего-то Python - значит на то были какие-то причины, и эти причины должны иметь значение только для учёных, которые делают этот выбор, а не для анонима с опеннета. Не надо решать за других.
>Но сообщество учёных весьма зрелое, с устоявшимися практиками и инструментами. Если выбрали для чего-то Python - значит на то были какие-то причиныСообщество учёных? Не смешите меня, какая-то горстка маргиналов выбрала питон, да кто на них внимание обратит, основной массе такое в голову даже не придёт.
> Не смешите меня, какая-то горстка маргиналов выбрала питонУгу, NASA например.
Народа на самом деле много, наивно это игнорировать. Причем в сравнительно "новых" областях - с альтернативами питону полный караул.
> да кто на них внимание обратит
Вопреки голивудской порнографии, на которой вас воспитали - наукой не занимаются из принципа "чтобы девушки обращали внимание".
>опреки голивудской порнографии, на которой вас воспитали - наукой не занимаются из принципа "чтобы девушки обращали внимание".Уважаемый, откуда ты знаешь чему меня воспитали? А вот своё воспитание ты уже продемонстрировал во всей красе в комментариях ниже, где перешёл на личности.
> Основной мотив развития научных либ на питоне, то что синтаксис легко читаем,Да, особенно приятно и легко читать код разбавленный указаниями что с JITить чуть более чем наполовину.
>> Основной мотив развития научных либ на питоне, то что синтаксис легко читаем,
> Да, особенно приятно и легко читать код разбавленный указаниями что с JITить
> чуть более чем наполовину.А чем конкретно декоратор при определении функции - помешал читаемости?
а как же вы читаете код где используются декорируемые функции?
Мхм. Вы своим вопросом отрицаете существование кодовых баз на Python у учёных? Причины, по которым взяли Python, уже не имеют никакого значения. Программы есть, и с этим ничего не поделаешь. Теперь можно только заниматься ускорением, с чем данный транслятор успешно справляется.
>Вы своим вопросом отрицаете существование кодовых баз на Python у учёных?Нет, я сомневаюсь в их компетентности из-за выбора питона как языка для расчётов.
Работа учёных состоит не в изучении программирования. Это всего лишь сайд-скилл, который облегчает их работу. Но раз уж вы заговорили о компетентности, то, простите, кто вы такой, чем вы занимаетесь, и почему мы должны считать ваше мнение более компетентным, нежели выбор людей, которые уже занимаются наукой, и используют выбранные ими инструменты? Это риторический вопрос, не нужно отвечать.
>Но раз уж вы заговорили о компетентности, то, простите, кто вы такой, чем вы занимаетесь, и почему мы должны считать ваше мнение более компетентным, нежели выбор людей, которые уже занимаются наукой, и используют выбранные ими инструменты?Я учёный занимающийся численными расчётами.
> Я учёный занимающийся численными расчётами.Код ученых, создавших экосистему Python для научных приложений - мы видели. А вам же предлагается верить на слово, я правильно понял?
> А вам же предлагается верить на слово, я правильно понял?Да ладно myhand, диагноз и так понятен, а бисер всё так же в дефиците :) Забей, оно само засохнет.
У вас, считалкин, высокая ученость сквозит в каждом слове...
Это был ответ не от, как ты выразился, "считалкина", а от другого человека причём как раз оскорбляющий этого самого "считалкина", но настолько глуп что умудрился этого не заметить.
Всё далают лишь бы C++ не учить...
Выучить плюсы не так уж легко. Профессиональные программисты - одно дело. А физикам, астрономам и прочим нужно, как правило, быстро что-то накидать, посчитать и успокоиться. И чем меньше усилий уйдёт на собственно написание - тем лучше.
Если есть языки позволяющие учёным в кратчайшие сроки и с минимальными усилиями писать необходимое ПО, то в чём смысл существования профессиональных программистов и C++?
>Если есть языки позволяющие учёным в кратчайшие сроки и с минимальными усилиями писать необходимое ПОНе оскорбляйте учёных тем что они якобы не в силах осилить C и C++, а тем более Fortran. Более быстрая скорость написания программ на Python - это враньё, скорость ровно такая же получается. Вывод использование Python оправдано только тогда когда использующий его подрабатывает где-то на стороне программированием на этом языке и ему надо выработать и поддерживать навыки владения именно на Python.
Я пишу весь код для численных расчётов на C или C++ и иногда на Fortran когда существует чей то старый код и надо немного его модифицировать под новую задачу.
> физикам, астрономам и прочим нужно, как правило, быстро что-то накидать, посчитать
> и успокоиться.Вот только греть свой мозг ручной расстановкой что и где JITить - тоже какое-то очень сомнительное действие. При этом непрограмер должен узнать что таеое JIT и зачем ему оно надо и потом грамотно расставить костыли. Вам не кажется что в результате он не только превращается в програмера, но и ему требуются далеко не самые тривиальные знания?
> Вот только греть свой мозг ручной расстановкой что и где JITить - тоже какое-то очень сомнительное действие.Это оптимизация. Вам нужно рассказывать что приходится делать "ручками" при оптимизации C кода, или вы свято верите во всемогущество ключей компилятора?
> При этом непрограмер должен узнать что таеое JIT
Тоже мне бином Ньютона.
> Вам не кажется что в результате он не только превращается в програмера
Вы путаете профессиональных программистов с выпускниками рашен пту (aka "технических университетов"), обучившихся программированию там методом "научного тыка". Увы, на свете есть куча людей, не считающих себя профессиональными программистами, но знающая и умеющая куда больше чем озвучено вами.
Собственно, большинство участников scipy.org - не профессиональные программисты. Что не означает безграмотности, неумения найти узкое место в коде и нежелания учиться.
>Вам нужно рассказывать что приходится делать "ручками" при оптимизации C кода, или вы свято верите во всемогущество ключей компилятора?Вот только не надо лгать, я вообще никак специально не оптимизирую свой код для численных вычислений на С и C++, даже ключи компилятора все по умолчанию использую. А питонисты только тем и занимаются, судя по постоянным новостям про оптимизации путём компиляции питоновских функций с "приближающейся к С и С++" производительностью".
>Тоже мне бином Ньютона.
Ты, как говорится, подменяешь понятия. Потому что изначальный посыл про якобы феноменальную скорость написания кода на Python, в сравнении с C и C++, полностью нивелируется тем что надо заниматься ещё и оптимизацией.
>выпускниками рашен пту (aka "технических университетов")
Оскорблять университеты родной страны и её выпускников это как-то не патриотично, и неприлично даже, ты сам то не из такого ли русского технического университета вышел?
>Собственно, большинство участников scipy.org - не профессиональные программисты.
Кто бы сомневался.
> я вообще никак специально не оптимизирую свой кодЯ готов в это поверить. Из чего не следует, однако, отсутствие необходимости его оптимизации.
>>Тоже мне бином Ньютона.
> Ты, как говорится, подменяешь понятия. Потому что изначальный посыл про якобы
> феноменальную скорость написания кода на Python
> полностью нивелируется тем что надо заниматься ещё и оптимизацией.То чем народ действительно занимается - красноречиво свидетельствует распределение разработчиков: scipy vs разные "оптимизаторы".
>>выпускниками рашен пту (aka "технических университетов")
> Оскорблять университеты родной страны и её выпускников это как-то не патриотичноГлавное, абы было правдой. А в патриотах мне не интересно - они врут как дышат.
> ты сам то не из такого ли русского технического университета вышел?
Я из настоящего, не "технического".
>>Собственно, большинство участников scipy.org - не профессиональные программисты.
> Кто бы сомневался.Ты. Ведь заявил, что только "профессиональные программисты" обладают элементарными навыками отладки своих творений.
>Я готов в это поверить. Из чего не следует, однако, отсутствие необходимости его оптимизации.Даже если в нём и можно что-то оптимизировать, он уже быстрее в разы, десятки и более раз в зависимости от задачи, чем аналог на Python.
> распределение разработчиков: scipy vs разные "оптимизаторы".
Думаю что использующих Python для расчётов в разы меньше тех кто использует для этого C/C++/Fortran.
>Главное, абы было правдой. А в патриотах мне не интересно - они врут как дышат.
Так это не правда.
>Я из настоящего, не "технического".
Т.е. по твоему физтех - это ПТУ?
>Ты. Ведь заявил, что только "профессиональные программисты" обладают элементарными навыками отладки своих творений.
Ничего подобного я не писал.
> Даже если в нём и можно что-то оптимизироватьДаже без даже.
> Так это не правда.
Ах, если бы...
>>Ты. Ведь заявил, что только "профессиональные программисты" обладают элементарными навыками отладки своих творений.
> Ничего подобного я не писал.Ну как: "При этом непрограмер должен узнать что таеое JIT и зачем ему оно надо и потом грамотно расставить костыли." И далее про "плавно превращается" (ц)
>Ну как: "При этом непрограмер должен узнать что таеое JIT и зачем ему оно надо и потом грамотно расставить костыли." И далее про "плавно превращается" (ц)Это был другой аноним.
К тому же опять ты пытаешься подменить понятия, куда делось простое, быстрое, безпроблемное написание кода на твоём замечательном Python, ведь получается всё равно надо вникать в программистские штуки, а не лучше ли тогда C++ изучить.
>>Ну как: "При этом непрограмер должен узнать что таеое JIT и зачем ему оно надо и потом грамотно расставить костыли." И далее про "плавно превращается" (ц)
> Это был другой аноним.Сложно различить похожие глупости.
> а не лучше ли тогда C++ изучить.
#83
>Сложно различить похожие глупости.Переход на личности, тебя отлично характеризует.
>>Сложно различить похожие глупости.
> Переход на личности, тебя отлично характеризует.Сложно "перейти на личность", если "оппонент" - безличен.
>Сложно "перейти на личность", если "оппонент" - безличен.Твои слова ниже:
>кандидат на лоботомию. Вы опасны для окружающих, знаете?
Говорят лишь о том, что оскорблять людей тебе совсем не сложно.
> Говорят лишь о томЧто я намекал на то, что различить разных "Аноним" - мне затруднительно.
> что оскорблять людей тебе совсем не сложно.
Ох. Да просто вы никому не интересны, смиритесь с этим.
>амекал на то, что различить разных "Аноним" - мне затруднительно.Затруднительно отличить или нет, это ни как не отменяет факта оскорбления.
>Да просто вы никому не интересны, смиритесь с этим.
Это ты смирись с тем что выбрал язык не соответствующий роду деятельности, теперь только и остаётся всю оставшуюся жизнь думать как бы исхитрится и ускорить его хоть чуточку.
> Это оптимизация....без которой можно за@#$тся результатов вычислений ожидать. А это - довольно продвинутая оптимизация, требующая уже нехилого залезания в программирование и понимание типовых практик. При том далеко не самых безграбельных. Плюс понимание ограничений. В общем то знатный брейнфак в целом получается.
> Вам нужно рассказывать что приходится делать "ручками" при оптимизации
> C кода, или вы свято верите во всемогущество ключей компилятора?Расскажите. Хочу посмотреть как вы обделаетесь еще и здесь.
> Тоже мне бином Ньютона.
Достаточно глубокое влезание в кодогенерацию. Впрочем, без понимания этого - невозможно писать сколь-нибудь эффективный код. Вы или делаете машине удобно и тогда работает быстро, или не делаете, и тогда получится абы как. Полная лотерея. Это нормально и ожидаемо.
> Собственно, большинство участников scipy.org - не профессиональные программисты.
> Что не означает безграмотности, неумения найти узкое место в коде и нежелания учиться.Обычно это означает что человек не программист или очень хреновый программист. И если для единоразовых вычислений это еще относительно пофиг (хотя научные вычисления приправленные костылями и подпорками, с ограничениями на то что можно использовать - очень сомнительное достижение) то для всех остальных целей это вообще малопригодно.
В целом же юзеж питона становится визитной карточкой пользователя VB, только под линуксом. Обычно у таких на все 1 аргумент: "я ничего кроме VB не знаю".
>> Это оптимизация.
> ...без которой можно за@#$тся результатов вычислений ожидать.Ну да.
Только сменой ЯП оптимизации умеют достигать успеха лишь молодые "гуру" из расейских "технических университетов". Остальным заинтересованным рано или поздно, к примеру, рассказывают историю диссертации Andrew Appel.
>> Вам нужно рассказывать что приходится делать "ручками" при оптимизации
>> C кода, или вы свято верите во всемогущество ключей компилятора?
> Расскажите.Ну идите в хорошую школу.
>> Тоже мне бином Ньютона.
> Достаточно глубокое влезание в кодогенерацию.-O ключики cc - тоже "влезание в кодогенерацию", разве нет? Т.е. на голом C - приходится учитывать вполне аналогичные ньюансы. (И читаемость страдает, имхо, еще больше.)
>> Собственно, большинство участников scipy.org - не профессиональные программисты.
>> Что не означает безграмотности, неумения найти узкое место в коде и нежелания учиться.
> Обычно это означает что человек не программист или очень хреновый программист.Собственно, если эти люди пишут востребованный, рабочий и сопровождаемый код, вместо терпеливого обучения спесивых "гуру" из башни слоновой кости своей предметной области - всем абсолютно начхать на то что это для вас "означает". "Talk is cheap." (c)
> для всех остальных целей это вообще малопригодно.
Для боевых человекоподобных роботов - пусть софт пишут те, кому они нужны.
> В целом же юзеж питона становится визитной карточкой пользователя VB, только под
> линуксом. Обычно у таких на все 1 аргумент: "я ничего кроме VB не знаю".Не встечал ни одного программиста на Python, который бы не знал несколько других языков. Будь то фортраны разной степени выдержки, C (реже ++), или лиспы. Вы случайно о сообществе Python не судите по клепателям сайтов на Django?
> Не встечал ни одного программиста на Python, который бы не знал несколько
> других языков. Будь то фортраны разной степени выдержки, C (реже
> ++), или лиспы. Вы случайно о сообществе Python не судите
> по клепателям сайтов на Django?Хм...под одну гребенку... я работаю с джанго в т.ч, но знаю явасрипт(который сейчас многие должны знать, кто связан с веб) и немного яву и С.
>выпускниками рашен пту (aka "технических университетов")Получается, что выпускники "технических университетов-ПТУ" освоили C++, а ты выпускник элитного "просто" университета этого сделать не смог и пишешь на питоне.
>>выпускниками рашен пту (aka "технических университетов")
> Получается, что выпускники "технических университетов-ПТУ" освоили C++Ах, если бы (
> а ты выпускник элитного "просто" университета этого сделать не смог
С чего вдруг такое "умозаключение"?
> и пишешь на питоне.
Я не на одном питоне пишу.
Для "быстро что-то накидать" существуют Мапл, Математика и что там ещё придумали. Я в бытность свою студентом/аспирантом/мнс'ом писал на си. Для перемалывания цыфар вполне хватало. Плюсы не осилил просто за ненадобностью.
>Для "быстро что-то накидать" существуют Мапл, Математика и что там ещё придумали.Они проприетарны.
Как будто что-то плохое.
Когда у вас ломанный софт, у вы не паритесь то всё "нормально".
Когда МС, которая даст вам лицензию для образовательных учреждений вдруг отзовет её, будет плохо (или если продукт покажется коммерчески не успешным)
> Для "быстро что-то накидать" существуют Мапл, Математика и что там ещё придумали.
> Я в бытность свою студентом/аспирантом/мнс'ом писал на си.Математика может перевести ноутбук в С, потом скомпилировать gccшкой. По скорости выполнения получается как ручной Сшный код (10 раз быстрее родной Математики). По скорости разработки - чуть медленнее родной Математики (нужно ручками выделять, что компилировать).
> Математика может перевести ноутбук в СНоутбук - не знаю. А насчет перевода собственного кода на C - увы, нет. Уж очень много приходится "ручками выделять".
Вот SymPy народ ощутимее использует для кодогенерации - и это становится заметно по развитию соответствующей части кодовой базы. А математика так и хранит свой CForm в анабиозной коробочке.
> А насчет перевода собственного кода на C
> - увы, нет. Уж очень много приходится "ручками выделять".В 8-ке только "top-level" функцию нужно обернуть в Compile + указать CompilationTarge->C и всё.
> Всё далают лишь бы C++ не учить...как бы они делали подобные компиляторы в C++ не зная самого языка, да и питон написан на сях, соответственно и коммиты там есть от научного сообщества, Стефан Бенел к примеру математик, переписал относительно недавно модуль на C.
>скорость выполнения скомпилированных функций приближается по производительности к программам на С++опять 25
Кому нужна эта хрень? Петон -- умирающий язык.
Расскажите это научным сотрудникам. Помню как в 2000 году мне пришлось изощряться с установкой forte77 дома под Win2k лишь для того, чтобы запустить программу, обсчитывающую результаты (пропущенной мной) лабораторной работы.
Вот теперь на смену фортрану пришёл питон - всё-таки прогресс...
> Вот теперь на смену фортрану пришёл питон - всё-таки прогресс...Заменили один крап на другой.
Ты просто не знаешь, насколько плох был фортран.
>Ты просто не знаешь, насколько плох был фортран.Ты идиот? Fortran самый быстрый для численных расчётов и для него существует огромное количество уже написанных и главное отлаженных подпрограмм для разнообразнейших областей научных вычислений, так что можно собирать программы из них как конструктор.
> Ты идиот? Fortran самый быстрый для численных расчётовВо-первых, не правда. Во-вторых, важна не скорость языка, а скорость, удобство и безопасность написания программ на нём, и тут фортран давно уже не котируется.
> и для него существует огромное количество уже написанных и главное отлаженных подпрограмм для разнообразнейших областей научных вычислений
Не больше чем для других языков.
>Во-первых, не правда.Это правда, Fortran и создавался для численных вычислений.
>Во-вторых, важна не скорость языка, а скорость, удобство и безопасность написания программ на нём, и тут фортран давно уже не котируется.
Я как пишущий программы для численных вычислений, которые занимают в лучшем случае часы, а часто дни и иногда недели, могу с уверенностью сказать что важна именно скорость выполнения кода, а не скорость написания, а то что якобы скорость написания на Python выше - это миф. Безопасность тут вообще не важна - мне надо наиболее быстрым способом численно обсчитать на компьютере или кластере задачу.
> Fortran...
> кластерену, и как у фортрана с кластеризацией?
Я в курсе, что и у Питона не очень, но неужто ничего более удобного не придумано? Типа все в тренде big data, а считают её на питоне и на фортране?
>ну, и как у фортрана с кластеризацией?Не в курсе, на Fortran я только однопоточный код писал переделывая старые программы.
какбе на дворе 2014 год, повсюду многоядерные cpu и gpu для обработки расчётов. А в вашем нии до сих пор одноядерный пентиум и фортран. Это грустно, но давайте не делать вид, что это актуальная и перспективная технология.
>какбе на дворе 2014 год, повсюду многоядерные cpu и gpu для обработки расчётов. А в вашем нии до сих пор одноядерный пентиум и фортран. Это грустно, но давайте не делать вид, что это актуальная и перспективная технология.Ниже я написал, что в основном пишу на C и C++, Fortran использую только для доработки старых программ, у C и C++ никаких проблем с многопоточностью нет, судя по поиску в Google и у Fortran тоже, хотя лично не проверял.
Кроме того, огромное количество задач вообще не допускает многопоточности, их хочешь не хочешь придётся на одном ядре считать, но плюсом многоядерных процессоров является то что можно запускать, например, на Intel Core i7 сразу восемь экземпляров программы (в том числе написанной и на Fortran) скомпилированной с разными параметрами или читающей из файлов разные начальные данные. В основном так и использую, и при этом получаем на выходе сразу восемь результатов за время равное обсчёту одного не параллелизуемого кода.
Вы не поняли. В современном мире для вычислений используется CUDA, а уж из питона, из сей или из фортрана её дёргать -- дело десятое. И уж точно не имеет отношения к вопросу о том, какой из этих яп "эффективнее" при обсчёте.Можно и так:
> на Intel Core i7 сразу восемь экземпляров программы
Но это существенно медленнее, чем хороший GPU, будь там хоть си, хоть фортран.
> Fortran использую только для доработки старых программ
т.е. это ископаемая легаси-система, которую даже профильные сотрудники стремятся избегать и которая не имеет преимуществ, кроме ископаемого кода на ней? Ну, я же так и говорил.
>В современном мире для вычислений используется CUDAДа что вы все любители питона от науки понабежавшие в эту новость заладили про современный мир и что я ничего не понимаю, да я моложе тебя наверняка.
CUDA - это вендор лок на NVidia.
GPU вычисления на float заруливают многоядерные CPU да, но на double это уже не так, а покупать дорогие карты с нормальной поддержкой double, по стоимости в 10 раз больше компьютера, как то не очень.
>т.е. это ископаемая легаси-система, которую даже профильные сотрудники стремятся избегать и которая не имеет преимуществ
Развиваются C/C++ поэтому я выбрал их. Преимущества Fortran в скорости никуда ведь не исчезли.
Сам ты "любитель питона от науки".Вендор-лок это да, но иногда важнее быстрее посчитать. А чаще совсем неважно, неделю оно или день работает. Но мы-то говорили про эффективность.
> покупать дорогие карты с нормальной поддержкой double, по стоимости в 10 раз больше компьютера
Ваш компьютер стоит $300? На i7? Ой вей.
> какбе на дворе 2014 год, повсюду многоядерные cpu и gpu для обработки расчётов.А теперь покажи мне код на бидоне который сможет нормально разложиться на GPU или прочие SIMD-образные, массово-параллельные конструкции...
никогда не интересовался приложением питона к числодробительным задачам,
но google помогает:
- NumPy использует SIMD инструкции процессора (пруф: http://docs.scipy.org/doc/numpy/user/install.html )
- Существуют библиотеки, которые повторяют интерфейс NumPy и использующие GPU (пруф: http://www.cs.toronto.edu/~tijmen/gnumpy.html )я ничего не могу сказать о ТТХ этих решений, но есть очевидная особенность - код на python, делающий что-то на "GPU или прочих SIMD-образных" может выглядеть точно также как и код без GPU. Очевидно, что если производительности достаточно, то эта особенность является серьезным преимуществом.
MPICH, Intel MPI, OpenMP умеют Fortran.
Ну, и если под "численными вычислениями, которые занимают в лучшем случае часы, а часто дни и иногда недели" имеется в виду расшифровка (хешей, солей, брутфорс) аналогично интересно: а как с этим в фортране? скажу больше: я не знаю никого, кто его так использует. Если можете поправить, жду ответа.
>имеется в виду расшифровка (хешей, солей, брутфорс)Нет имеются ввиду научные расчёты. И в основном использую C или C++, Fortran совсем немного переделывая старое.
> скорость, удобство и безопасность написания программЭто ценности малолетних пыхеров. Не говоря уже о том, что безопасность и скорость написания - это взаимоисключающие понятия.
> тут фортран давно уже не котируется.Отучаемся говорить за всех. Если научная группа работает в какой-то области с 70-х годов, и имеет тонны софта на фортране, то никто не будет его переписывать, пока качество исполняемого кода, генерируемого компилятором, не окажется ощутимо хуже конкурирующих языков. С питоном, как можно судить из новости, произошло именно это - до яйцеголовых дошло, что питонский код исполняется неудовлетворительно медленно.
> Если научная группа работает в какой-то области с 70-х годов, и имеет тонны софта на фортране, то никто не будет его переписыватьКак минимум, прикрутят интерфейс на питоне.
>Как минимум, прикрутят интерфейс на питоне.Не понятно зачем нужно такое звено как Python.
>>Как минимум, прикрутят интерфейс на питоне.
> Не понятно зачем нужно такое звено как Python.Чтобы ковыряться в носу удобно, а не как принято в 70-х.
> Чтобы ковыряться в носу удобно, а не как принято в 70-х.Во, из литл ламо таки выжали аргумент настоящего скрипткидиза. Ему для чесания носа надо автоматическую чесалку. И чтобы зад еще вытирала. Сам он это делать не умеет.
Там интерфейс был простой (во всяком случае, пока я там работал)
program.exe file.in file.out
Питону там просто некуда присунуться.
> Там интерфейс был простой (во всяком случае, пока я там работал)
> program.exe file.in file.out
> Питону там просто некуда присунуться.Ну посмотрите на auto-07p.
>Заменили один крап на другой.Fortran замечательно справляется со своей задачей - численные вычисления: самый быстрый, огромное количество уже написанного другими кода, который можно повторно использовать.
Python не предназначен для численных расчётов, возможно в какой-то области он и будет полезен, но только не в вычислениях.
Там, где нужно выжать всё - можно использовать NumPy или сабж. И при этом иметь нормальный язык со вменяемым синтаксисом.Я не понимаю, что питону делать в том же вебе или в серьезном большом софте, но как язык для непрофессионалов он, по-моему, идеален со своими принудительными отступами и прочим PEP8.
>Там, где нужно выжать всё - можно использовать NumPy или сабж.Ты новость не читал?
>Выигрыш в производительности при использовании HOPE по сравнению с обычным Python может достигать десятков раз - скорость выполнения скомпилированных функций приближается по производительности к программам на С++.
>скорость выполнения скомпилированных функций
>приближается по производительности к программам на С++.Про это приближается уже много лет во всех подобных питоно-оптимизирующих новостях пишут.
>И при этом иметь нормальный язык со вменяемым синтаксисом.
Fortran, C, C++ - нормальные языки с вменяемым синтаксисом, а использовать интерпретируемый язык для вычислений, кучу костылей для ускорения и угрохать уйму времени на оптимизацию чтобы заставить эту конструкцию хоть чуточку приблизится к C/C++ по скорости счёта - это надо быть мазохистом, не иначе.
> Про это приближается уже много лет во всех подобных питоно-оптимизирующих новостях пишут.Ну это такая же легенда индустрии как "ява не тopмoзит", только все еще хуже. Вон в яве гугель уже добрался до практически предкомпиляции. Еще пара заходов и они переизобретут си++ и прочие D и Go.
> И при этом иметь нормальный язык со вменяемым синтаксисом.И при чём тут питон?
>Расскажите это научным сотрудникам.Мне совершенно непонятно откуда в науке взялась эта мода на Python, у него неприемлемо низкая скорость работы в сравнении с Fortran, C, C++, для секундных расчётов он годится, как и практически любой язык, но его использование для сложных и долгих численных расчётов вообще ни в какие ворота не лезет, более нелепого решения чем писать код для вычислений на Python представить трудно, но ведь пишут же многие, и я совсем не понимаю причин такого странного выбора языка программирования.
Я думаю, что причина в кросс-платформенности - пусть и тормозной, пусть и не идеальный с точки зрения написания вычислений, но код будет работать на без малого любой платформе.
>Я думаю, что причина в кросс-платформенностиFacepalm... а Fortran, C, C++ по твоему что не кроссплатформенные что-ли, я собираю свои программы по необходимости и на Windows тоже.
> код будет работать на без малого любой платформе.Вот наглое вранье, или некомпетентность. Нормально писаный код на чистом си - работает везде, от 8-битного микроконтроллера с 8 лапками до суперкомпьютера. А питон таким похвастаться явно не сможет.
> Мне совершенно непонятно откуда в науке взялась эта мода на Python, у него неприемлемо низкая скорость работы в сравнении с Fortran, C, C++"Чистый" питон конечно будет считать сравнительно долго, но тебе ничто не мешает использовать для расчётов спец. библиотеки вроде NumPy, которые считают значительно быстрее.
>"Чистый" питон конечно будет считать сравнительно долго, но тебе ничто не мешает использовать для расчётов спец. библиотеки вроде NumPy, которые считают значительно быстрее.Объясните мне, зачем мне нужны костыли в вроде numpy, которые в некоторых ситуациях показывают сходную с Fortran, C, C++ скорость, да я лучше с самого начала стану писать на быстром языке.
> Объясните мне, зачем мне нужны костыли в вроде numpy, которые в некоторых
> ситуациях показывают сходную с Fortran, C, C++ скорость, да я лучше
> с самого начала стану писать на быстром языке.Чтобы написать и отладить за ДЕНЬ то, что ты бедешь делать месяц, если сильно повезёт. Плавали знаем.
>Чтобы написать и отладить за ДЕНЬ то, что ты бедешь делать месяц, если сильно повезёт. Плавали знаем.
>Плавали знаем.Аналогично, плавал, и знаю что это не так. Проблема в том что если мой код на C обсчитывает задачу за несколько суток, то сколько же времени он будет считать это на Python, кроме того, обыкновенно требуется многократный обсчёт с разными начальными данными.
Да так же он будет считать. Может, на процент будет разница. Потому что расчетная часть будет выполняться тем же нативным кодом - через NumPy или через сабж. При этом управляющие структуры все будут питоновскими, с хорошей читабельностью и тривиально решаемыми "сторонними" задачами вроде красивого вывода в HTML или отправки письма о том, что расчет закончен.
>Да так же он будет считать. Может, на процент будет разница.Ну-ну, как же.
>Потому что расчетная часть будет выполняться тем же нативным кодом - через NumPy или через сабж.
Это медленнее в несколько раз чем на C/C++
>При этом управляющие структуры все будут питоновскими, с хорошей читабельностью
У C/C++ отличная читаемость.
>и тривиально решаемыми "сторонними" задачами вроде красивого вывода в HTML
Графики я строю с помощью xmgrace и gnuplot, там всё это есть и если надо в виде скриптов.
>отправки письма о том, что расчет закончен.
Вот это функционал, просто космос, все срочно на Python, как мы только могли жить раньше без этого :)
>>Потому что расчетная часть будет выполняться тем же нативным кодом - через NumPy или через сабж.
> Это медленнее в несколько раз чем на C/C++Почему код на фортране должен быть медленнее?
>>При этом управляющие структуры все будут питоновскими, с хорошей читабельностью
> У C/C++ отличная читаемость.За бездумное использование C++ (C и C++ - разные языки, чтоб вы знали) нужно просто кастрировать. А уж "читаемым" этот монстрячий язык может назвать только кандидат на лоботомию. Вы опасны для окружающих, знаете?
>>и тривиально решаемыми "сторонними" задачами вроде красивого вывода в HTML
> Графики я строю с помощью xmgrace и gnuplot, там всё это есть
> и если надо в виде скриптов.Рад за вас. Ну а нафига тогда NASA matplotlib сдался, может не все так просто?
>>отправки письма о том, что расчет закончен.
> Вот это функционал, просто космос, все срочно на Python, как мы только
> могли жить раньше без этого :)Жили и без электронной почты, и без баз данных, и с карандашиком-бумашкой замест CAS. Но мир меняется. Если вы однажды не поймете этого - останетесь на обочине.
>Почему код на фортране должен быть медленнее?Имелось ввиду в совокупности со все остальным кодом.
>C и C++ - разные языки, чтоб вы знали
Уважаемый, я знаю что такое C и C++. А твой стиль общения с унижением собеседника, о котором ты ничего не знаешь, не согласного с твоим мнением и имеющим собственное отличное, а также высказывания выше про выпускников ПТУ-технических-университетов России, очень сильно характеризует твои человеческие качества.
>А уж "читаемым" этот монстрячий язык может назвать только кандидат на лоботомию. Вы опасны для окружающих, знаете?
Ну вот, аргументы закончились и перешёл на личности.
>Рад за вас. Ну а нафига тогда NASA matplotlib сдался, может не все так просто?
Опять, ты подменяешь понятия, у тебя просто мания какая-то это делать.
>Если вы однажды не поймете этого - останетесь на обочине
С чего ты взял то что я старый, думаю мы ровесники, а может даже я и моложе.
>>Почему код на фортране должен быть медленнее?
> Имелось ввиду в совокупности со все остальным кодом.Хоть вдоль - хоть поперек.
>>C и C++ - разные языки, чтоб вы знали
> Уважаемый, я знаю что такое C и C++.Ну тогда не обижайтесь, если люди плюются потому что вы ставите их рядом через /.
>>Рад за вас. Ну а нафига тогда NASA matplotlib сдался, может не все так просто?
> Опять, ты подменяешь понятия, у тебя просто мания какая-то это делать.Я к тому, что вам может gnuplot и хватает еще. А вот людям - увы, нет.
>>Если вы однажды не поймете этого - останетесь на обочине
> С чего ты взял то что я старыйА причем тут, собственно, возраст?
>А причем тут, собственно, возраст?Не лицемерь, а? А то понаписал в комментариях постов для просвещения учёного пенсионного возраста о современном положении дел в вычислениях.
> А то понаписал в комментариях постов для просвещения учёного
> пенсионного возраста о современном положении делС чего вы так подумали? Все сказанное выше было ответом на "почему питон?".
> про выпускников ПТУ-технических-университетов России, очень сильно характеризует твои
> человеческие качества.Да я тут с ним уже зарубился про overcommit и все стало понятно. Это мелкое ламо не понимает как работают компьютеры. Оно страдает легким програмизмом на питончике, но программистом такое называть - больно жирно. Взаимозаменяемый генератор быдлoкода как максимум.
> Мне совершенно непонятно откуда в науке взялась эта мода на PythonЗдравствуйте, пациент анабиозной капсулы №100500. Во избежание культурного шока, предлагаем вам выслушать небольшую сводку изменений в мире с начала 80-х годов прошлого века: ...
... а также:
Стали популярны ЯП с GC, ибо народ $%ся рулить ручками памятью.
Синтаксис F77 больше не в моде, т.к. перфокартами народ не пользуется
Поддержка ООП в ЯП не вызывает буйных восторгов, но рассматривается как полезная вещь и вообще must have.
И вообще, люди начали задумываться про то что читают код - чаще чем пишут. С вытекающими предпочтениями в пользу Python.
А еще об удобстве отладки.
А еще люди редко пишут исключительно код для численных расчетов. В большинстве случаев это так или иначе сопряжено с использованием символьных вычислений. Даже для той самой оптимизации. Поэтому sympy и theano, а фортран курит в сторонке, ибо как язык для CAS он не удобнее ассемблера.
...
>предлагаем вам выслушать небольшую сводку изменений в мире с начала 80-х годов прошлого векаЯ родился в конце 80-ых, что ты мне рассказываешь? И это я выше тебе отвечал про Fortran/C/C++.
>А еще люди редко пишут исключительно код для численных расчетов.
Вот и замечательно, но не надо навязывать тут всем абсурдную идею, что Python лучше в численных расчётах чем Fortran/C/C++.
>>А еще люди редко пишут исключительно код для численных расчетов.
> Вот и замечательно, но не надо навязывать тут всем абсурдную идею, что
> Python лучше в численных расчётах чем Fortran/C/C++.Так это одна из причин, по которой он и становится лучшим. Возможности CAS нужны - как часть процесса работы над собственно числодробилкой. Чем дальше - тем пуще.
Python предназначен для быстрого прототипирования и отладки алгоритма программы, аналог MatLab и MathCad. Скорость вычислений на этом этапе не важна. Важна скорость разработки.
Она на самом деле выше.
Затем программа по отлаженному алгоритму переписывается на C/C++ или FORTRAN с распараллеливанием под кластер.
Сабж - попытка совместить эти шаги.Просто у языков разное применение.
>Python предназначен для быстрого прототипирования и отладки алгоритма программы, аналог MatLab и MathCad.MatLab и MathCad те ещё тормоза.
>Скорость вычислений на этом этапе не важна. Важна скорость разработки.
Бла-бла-бла.
>Затем программа по отлаженному алгоритму переписывается на C/C++ или FORTRAN с распараллеливанием под кластер.
Это helloworld запросто переписать, а что-то реально сложное очень трудно. У меня есть знакомый, который пишет на MATLAB, так вот, когда программа усложнилась до такой степени что время её счёта стало просто неприличным, он и понял что переписывать всё это на C++ он не хочет, потому что это ой как трудозатратно.
Логика подобная такой:
C/C++ - слишком сложные языки для обучения студентов, а давайте создадим специальный упрощённый язык имено для обучения - Pascal, а ведь он мёртв от рождения. А что же дальше? А дальше как обучим всех паскалю, начнётся этап реальной их работы на нормальных языках для дела, т.е. теперь им надо изучать C/C++.
> C/C++ - слишком сложные языки для обучения студентовКстати, для студентов в идеале надо изучать C++, но не по программе "от C к классам", а _сразу_ со string, vector, list, классы, чуть позднее - Qt.
Но как можно дольше без всяких char-массивов и прочей чисто сишной неудобной (и пугающей юный умы) ереси.
> Но как можно дольше без всяких char-массивов и прочей чисто сишной неудобной
> (и пугающей юный умы) ереси.А чего в ней страшного? Это просто доступ к памяти. Простой и низкоуровневый. И быстрый как сверхзвуковой самолет, в отличие от. Что и позволяет поиметь скорость порядка того что физически может оперативка, без клина 100500 промежуточными проверками и прочими автоподтираниями задниц для умственно отсталых, которые сами это делать не в состоянии.
> А чего в ней страшного? Это просто доступ к памяти. Простой и
> низкоуровневый.
> Что и позволяет поиметь скорость порядка того что физически может оперативка, без клина
> 100500 промежуточными проверками и прочими автоподтираниями задниц для умственно отсталых,
> которые сами это делать не в состоянии.Это всё круто, но новичкам в первое время оно точно не надо. Скорее, как углубленка чуть позднее, когда хоть какое-то понимание начнет появляться.
> Это helloworld запросто переписать, а что-то реально сложное очень трудно. У меня
> есть знакомый, который пишет на MATLAB, так вот, когда программа усложнилась
> до такой степени что время её счёта стало просто неприличным, он
> и понял что переписывать всё это на C++ он не хочет,
> потому что это ой как трудозатратно.Переписал несколько проектов коллеги из маткада и матлаба. Часть под кластер на MPICH,
часть под CUDA и многопоточность. Есть софт, встроенный в технологическую линию, написанный
и откатанный на маткад, затем переписанный на LabView с вызовом счетных модулей на CUDA.
Подход себя оправдывает.Знакомый физик-теоретик за два месяца переписал на Python все свои программы, написанные на С за несколько лет. Сокрушался, что не знал про Python раньше.
Студентам даем и Pithon и C.
это твой межушной ганглий - умирающая вещь
Обычно в качестве промежуточного языка (IL) выбирают что-нибудь более простое, чем С++ - как для генерации, так и для последующей компиляции в бинарный код.
Это как переводить в английского на русский через промежуточный китайский.Разве что Питон настолько близок к С++...
> Разве что Питон настолько близок к С++...Он умеет довольно много всего и если его сильнее обрубать - там останется только голова и ж...а от этой змеюки. Ну подумаешь, пять метров гадюки выпилили...
А какой смысл в JIT транслировать в C++?
А мне вот интересно, а что сразу на C++ не писалось то?
> А мне вот интересно, а что сразу на C++ не писалось то?На сях пишут замшелые ретрограды. Продвинутые перспективные амбициозные молодые программисты пишут на питоне.
> На сях пишут замшелые ретрограды.Это теперь так школoло профессионалов с зарплатой в 10 раз больше чем у них называет? :)
> Продвинутые перспективные амбициозные молодые программисты пишут на питоне.
На питоне пишут НеПрограммисты. Которые как правило вообще ни в зуб ногой как и что работает.
> А мне вот интересно, а что сразу на C++ не писалось то?Аналогично глупо продвигали в своё время Pascal - типа это язык для обучения программированию т.к. C видите ли слишком сложен, идиотизм полный.
Чтобы потом конвертить в C...
Смотря что понимать под обучением программированию. Если "выучить прграммиста" - тогда да, начинать надо с сей, ассемблера и т.п.Если "научить (будущего) профессионала в другой области пользоваться программированием" - то паскаль с питоном как раз на месте. Там до лампочки эффективность, нужно сформировать ясное понимание того, что нужно сделать и научить выстро эту алгоритмику закодировать. Не "чтобы всё было идеально", а "чтобы результат получить". Как правило - такой код выполняется всего один или несколько раз, потому что для того, что постоянно нужно, уже к профессиональным программистам идут.
Мало того - с точки зрения профи такие "любительские" программы - адский былокод, и так и должно быть - там, как правило, вообще нет задачи сопровождения, повторного использования, устойчивости к некорректным исходным данным и прочего. Соответственно, половина привычных профи критериев запросто отваливается.
> Мало того - с точки зрения профи такие "любительские" программы - адский былокод,Alex а я тебя раскусил! Ты только косишь под Crazy :)
> А мне вот интересно, а что сразу на C++ не писалось то?А мне вот интересно, а что сразу на ассемблере не писалось то? Наняли бы профессиональных программистов - они бы им быстро наваяли производительные программы, максимально заточенные под нужное железо.
Не понятно чем оно лучше нитки и cython-а.
> Не понятно чем оно лучше нитки и cython-а.Собственно всё описано в их доке, плюс бенчмарки производительности в сравнении с аналогами:
http://arxiv.org/pdf/1410.4345v1.pdf#table.3
> Собственно всё описано в их доке,Ну еще бы, сам себя не похвалишь - никто не похвалит. Очень напоминает историю жабы. Единственная польза от которой - ок, теперь у нас есть восьмиядерные, 64-битные ... смартфоны. Которые воткнут любому писюку десятилетней давности по железу, но все-равно тормозят неизмеримо больше.
Прикольно. Интересно, насколько эффектно.Но лучше сразу транслировать питон в что-нибудь достойное.
Уже был коммент про http://en.wikipedia.org/wiki/Hope_%28programming_langua... ?
Си - язык профессионалов. Много тонкостей и ньюансов. Нужны многие годы практики для более менее эффективного использовани. Ученым нужен гибкий и главное простой инструмент для выражения их мыслей. А у них их много. Им есть чем голову занять. Маргиналы говорите... Кто ты такой чтобы им советы давать? У вас комплекс нарциссизма.
Эээ... как бы тебе сказать по мягче, если уж человек окончил университет и занимается наукой, то это уже подразумевает, что он освоил как минимум классическую механику, СТО, квантовую механику, и соответственно все курсы математики необходимые для их понимая, такие как мат.анализ, линейная алгебра и теория функций комплексного переменного. И по твоему после всего этого он не сможет разобраться в каком-то там C или C++? Это уж не говоря о том, что курсы по языкам программирования начинаются с первого же года обучения.
> если уж человек окончил университет и занимается наукой, то это уже подразумевает, что он освоил как минимумНе, вы правда думаете что граждане, обучавшиеся в том же университете со специализацией в CS - занимались при этом лишь хоровым чтением страуструпа?
> И по твоему после всего этого он не
> сможет разобраться в каком-то там C или C++?C++ настолько сложный и ублюдочный язык, что фраза "я отлично знаю C++" - лакмусовая бумашка для выявления ПТУшников.
Второе, как вы думаете - человек, "разобравшийся в С", способен самостоятельно понять когда он изобретает ООП. Вы уверены вообще, что у каждого "учОного", разобравшегося в синтаксисе C - появится в голове свой аналог ООП, без посторонней помощи?
> Это уж не
> говоря о том, что курсы по языкам программирования начинаются с первого
> же года обучения.Только приличные люди - читают их не на C++, как во всяких "технических университетах" раши. Да и вообще, обучение программированию начинать с обучения синтаксису языка...
>Не, вы правда думаете что граждане, обучавшиеся в том же университете со специализацией в CS - занимались при этом лишь хоровым чтением страуструпа?Логика какая у этого предложения? Хочешь сказать, что даже студенты со специальностью в области Computer Science не осиливают C++ потому что он слишком сложен? Ну тогда ты вообще далёк от реальности. CS уж точно подразумевает отличное владение C++. Про книгу Страуструпа можно сказать только что она малопригодна для изучения C++, потому что он плохо излагает.
>C++ настолько сложный и *чный язык, что фраза "я отлично знаю C++" - лакмусовая бумашка для выявления ПТУшников.
Создаётся впечатление что ты просто не осилил C++, потому и выбрал Python.
>Второе, как вы думаете - человек, "разобравшийся в С", способен самостоятельно понять когда он изобретает ООП. Вы уверены вообще, что у каждого "учОного", разобравшегося в синтаксисе C - появится в голове свой аналог ООП, без посторонней помощи?
Тем кому нужно ООП используют C++ и ничего изобретать не надо.
>Только приличные люди - читают их не на C++, как во всяких "технических университетах"
У нас с тобой разные представления о приличии.
>>Не, вы правда думаете что граждане, обучавшиеся в том же университете со специализацией в CS - занимались при этом лишь хоровым чтением страуструпа?
> Логика какая у этого предложения?Логика та, что студиозусов со специализацией в CS - учат не меньше чем физиков. Преподавание СТО никак не обеспечит знание теории графов.
> Хочешь сказать [бред из тупой башки]
Нет. Однако хочу сказать, что некоторым неплохо было бы научиться сперва читать, прежде чем фантазировать об "оскорблениях" себе на голову.
> Создаётся впечатление
Ну вы уже догадались что делать со своими впечатлениями, да?
> Тем кому нужно ООП используют C++ и ничего изобретать не надо.
Я знаю что в тупые головы выпускников "технических университетов", кроме как ООП=C++ - ничего вбить не удалось.
>Логика та, что студиозусов со специализацией в CS - учат не меньше чем физиков. Преподавание СТО никак не обеспечит знание теории графов.Первоначально было моё утверждение о том что если человек осилил сложное то-то, то-то и то-то, то это означает, что он и подавно в состоянии осилить более лёгкое - С++. На что ты тогда отвечал?
>бред из туп@й башки
>прежде чем фантазировать об "оскорблениях" себе на голову.Ты не замечаешь тут противоречия между фантазиями об оскорблении собеседника и содержанием твоих постов?
Твой стиль общения больше походит на стиль подростка-школьника, чем на выпускника университета.
>Я знаю что в туп@е головы выпускников "технических университетов"
Очередное оскорбление.
> Первоначально было моё утверждение о том что если человек осилил сложное то-то,
> то-то и то-то, то это означает, что он и подавно в
> состоянии осилить более лёгкое - С++.Вообще-то из факта что человека чему-то учили (aka "сложному") - никак не следует, что он аналогичные вещи способен освоить самостоятельно. Увы.
Во-вторых, утверждение про "подавно более легкое" - плод вашей фантазии, оно бездоказательно. Один толмуд стандарта этого ужаса весит пяток томов ландавшица. А обучение программированию - не просто знакомство с синтаксисом. Правда, объяснять это идиоту, для которого ООП = C++ - заведомо бесперспективно. (Прошу прощения если спутал вас, ув. Аноним, с этим идиотом под тем же ником.)
> Очередное оскорбление.
Ладно, это уже действительно скушно. You're no fun anymore.
>Вообще-то из факта что человека чему-то учили (aka "сложному") - никак не следует, что он аналогичные вещи способен освоить самостоятельно.Я говорил про учёного, а не какого то произвольного человека, и речь шла не про аналогичные вещи, а про более лёгкие относительно тех что уже освоены.
>утверждение про "подавно более легкое" - плод вашей фантазии, оно бездоказательно.
Я освоил и то и другое, вот и сравниваю, причём тут фантазирование непонятно.
>Один толмуд стандарта этого ужаса весит пяток томов ландавшица.
Для реализации компиляторов требуется очень подробное описание чтобы исключить неоднозначности. Для изучения языка C++ - это вообще не нужно. Объём книги никак не связан с сложностью усвоения информации в ней.
>Правда, объяснять это идиоту, для которого ООП = C++ - заведомо бесперспективно.
Очередное оскорбление, демонстрирует твоё явное бессилие. Я сказал что те учёные, которым требуется ООП, используют C++.
>Ладно, это уже действительно скушно. You're no fun anymore.
Знаешь, по стилю общения, очень похоже что ты максимум на 1,2 курсе, а может и вообще только в лицее при университете и только собираешься поступать.
Скорость разработки. Понимаешь о чём что это?
> учёные, которым требуется ООП, используют C++.Где пруфы, Билли?
> Я говорил про учёного, а не какого то произвольного человекаНе боги горшки обжигают...
> Я освоил и то и другое
"Я освоил" - эквивалент "я отлично знаю", упомянутый уже выше.
>>Один толмуд стандарта этого ужаса весит пяток томов ландавшица.
> Для реализации компиляторов требуется очень подробное описание чтобы исключить неоднозначности.Вообще-то, это требуется и для рядовых пользователей языка. (Как минимум, для осиливших написание хелвордов и пытающихся заняться мало-мальски полезной деятельностью посредством данного языка.)
> Для изучения языка C++ - это вообще не нужно.
Я уже догадался, что результатом вашего "изучения языка" - вовсе не обязательно должно быть его знание...
> Объём книги
> никак не связан с сложностью усвоения информации в ней.Ну как так... По Шенону, например, связан...
>Представлен HOPE, JIT-компиляторА чего уже не JOPE? Звучит ведь :).