![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Сабж. Для каких задач может понадобится IronPython? Чем мне он может быть удобней нежели C#? Если я изучу этот ЯП, чем мне это поможет в разработке ПО на .нет?
|
|||
|
||||
| leshiy_AlisA |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 6.12.2007 Репутация: нет Всего: нет |
если тебе нужно писать на .net учи c#
удобней VisualStudio для разработки под .net ничего нет, хотя любители mono не согласятся ironpython просто способ работать с библиотеками .net под python |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
||||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 1 Всего: 48 |
Код на питоне лаконичнее, быстрее в написании и т.п. (Язык ведь скриптовый)
Поэтому смысл использования IronPython в том, что в нем есть возможность быстро писать на python, используя библиотеки .net и свой код, написанный на других языках платформы. Вроде бы это очевидно? Добавлено через 59 секунд
Предоставит. Динамическая типизация, list comprehension, и прочие приятности. |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Нет, не очевидно. Я думал что кроме радости от того что я пишу на питоне должны быть ещё какие-то преимущества...
Можно пример задачи, которую будет сложно решить на c# и где всё это понадобится? |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 1 Всего: 48 |
Rohoss, В принципе, я сходу не могу придумать пример, в котором python сильно выигрывает у C#, да и + реализация IronPython на .net может быть медленнее, чем C# (не знаю, как с IronPython, но вот с jython под jvm дела обстоят именно так - jython до 10 раз медленнее, чем java)
А почему вы задумались об использовании IronPython? |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
||||
|
||||
| afiskon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 294 Регистрация: 31.3.2011 Где: Россия, Москва Репутация: нет Всего: 4 |
По слухам, IronPython намного быстрее обычного Python (который CPython). Как минимум, за счет того, что код не интерпретируется, а компилируется/оптимизируется в байткод. Еще CPython кушает много-много памяти, а в IronPython это вроде бы не так.
|
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 9 Всего: 70 |
||||
|
||||
| Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Хорош для прототипирования Когда удобно снабдить программу собственным скриптовым языком В задачах где требуется гибкое конфигурирование программы Для однорозавых задач
Все задачи можно решать на ассемблере. С C# и IronPython вопрос на самом деле звучит так: Можно пример задачи, которую будет сложно решить на ЯП с статической типизацией и где вся эта динамическая типизация может понадобится? И что такое "сложно", "трудно"? Если ты опытен, то сложно - не будет и на ассемблере. А вот дооооолго, до полной потери мотивации писать - да. То есть вопрос личной психологии - как долго можете писать программу не получая результата? И - сколько времени выделено, и какое количество человек? И программы обычно - эволюционируют. Как долго будет изменять/добавлять новый функционал в работающую программу? Насчет скорости выполнения, не смущает что Web это обычно PHP и JavaScript? А вот для EverNote и C# оказался медленным, и переписан был на С++. И: Если бы скорость выполнения программ была главным критерием, никаких языков на свете не было бы кроме ассемблера. Хотя..., может бы на С все развитие языков программирования остановилось бы. Однако уже в конце 50ых появились LISP, Cobol и Algol. Хотя тогда компьютеры были совсем не быстрыми. |
||||
|
|||||
| bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
очень просто (Актуально и для жабы): у тебя есть какой-то толстый мега проект тебе надо его время от времени расширять. проект настолько толст, что собирать, и деплоить его ... убийство человекочасов. или напр. он написан кем-то, и трогать его никому не хочется. создаешь интерфейс (типа плагина) на сишарпе, просто какой-то абстрактный интерфейс. теперь к этому интерфейсу можно подключаться на питоне: в результате (если ограничения виртуального питона тебе не страшны), получаешь старый экзешник, и подключаешься к нему из питона, т.е. динамически расширяешь приложение, прозрачно для приложения. если тебе это ничего не говорит, то ... увы, не срослось. -------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
bilbobagginz, не совсем понял.
То есть делаешь расширяемое приложение? Но с такой задачей справляется скажем MEF, Unity и другие. В конце концов, если нужно именно делать плагины то в .нете есть для этого своя инфраструктура. Или я не совсем понял что ты имел ввиду... Добавлено через 2 минуты и 57 секунд Тут тоже не совсем понял. Подключаешься к интерфейсу на питоне, реализовываешь какую то логику отдельной либой и используешь эту либу в своём .ехе? Ну это же легко можно делать на C# |
|||
|
||||
| Skynin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Мелкий оффтоп - когда появился С++ Сишники говорили так же - а зачем вот "это", когда легко можно сделать и на Си. Потом С++сники так говорили о Java еще и добавляя об убожестве ее возможностей. Вернемся к Python'у. Зачем бодаться с инфраструктурой для плагинов если можно - не бодаться с ней? Скажем в C# есть метаклассы? Нет. А благодаря их наличию в Python куча ОО паттернов, требующий парочку интерфейсов и парочку классов - преобразуются в простой код. Можно динамически, во время выполнения изменять наследование реализации в C#? Нет, если заранее не понаписать инфраструктурного кода. И т.д. это же легко можно - а если это же еще легче на Python'е? Опять же потому что не надо городить инфраструктуры. На C#, кучу вещей нужно проектировать заранее. Закладывать возможности будущего функционала. А на Python'е хитрый функционал можно добавлять малым количеством кода в работающее ПО и без перекомпиляции зависящего кода. Вообще, стоит на ночь прочесть книгу по Python'у. От Лутца или Саммерфилда. Тогда, если знаете C# многие вопросы - "это же легко сделать на C#" отпадут. А возникнут - "а почему же тогда столько кода пишут на Java/C#"
Начните изучать Python - поймете. Просто для саморазвития будет полезно знать, сколько лишнего кода приходится писать и самое главное - сопровождать на Java/C# |
||||
|
|||||
| Rohoss |
|
||||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Это не из той оперы
Вот был бы очень признателен, если бы мне продемонстрировали где айронпайтон удобней, а то просто флуд получается
Ну вот. А выше в этой теме мне говорили что айронпайтон нужен для людей, которые знают пайтон и хотят использовать .нет библиотеки. Добавлено через 3 минуты и 28 секунд Всё же есть много вещей, которых я не знаю и которые нужны, и которым можно будет выделить когда-то время для повышения своего проф. уровня. Вот мне и интересно, стоит ли того айронпайтон? И если стоит, то какой ему выделить приоритет? |
||||
|
|||||
| Skynin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
На любую демонстрацию можно сказать: так я и на C# такое напишу. Или - смысл фичи не очень очевиден. За года в программировании убедился что такой настрой - ничем не перешибить. Где удобно применять, уже сказал. Писать код на C# и аналогичный на Python не вижу смысла. Можно посмотреть Computer Language Benchmarks Game: Python 3 - C# Mono (а если вдруг взволнует эффективность выполнения то сразу сюда: C GNU gcc - C# Mono и сразу бросите этот C# и перейдете на Си Так же примеры-сравнения встречаются в книжках, и конечно - Гугле.
Понимаете... наличие такой фичи в языке говорит о существовании кучи других, менее ярких. Если вам это и наличие метаклассов ни о чем не говорит, то большой вопрос - а вы знаете что такое объектно-ориентированная парадигма вообще, а не ее реализация в С#?
Вы ПМ большого проекта? Или самостоятельно пишете большое приложение? Чем вызвано беспокойство, почему вас заботят не личные знания и навыки программиста, а сложности больших проектов?
Не стоит, не изучайте. Отдохните, пива попейте. Понимаете в чем заковыка - если человеку интересно, он берет и изучает. И никого не просит убедить его, что вот это интересно, это полезно, это нужно и т.д. Хотя бы на хабре типа Заметки об объектной системе языка Python почитает. А если встал в позу - на единственном языке что знаю это могу написать, то и правда - ему ничего не нужно изучать. Вопрос не в том что можно написать - а еще раз - за какое время? Вы явно не понимаете о чем речь. Не понимаете что такое - время Вот когда вы лично начнете писать в разы быстрее, используя IronPython, то абы ПМ не стал запрещать в силу непрограммиских требований к проекту. Мое же глубокое ИМХО, профессиональный программист должен знать 4 ре языка разного типа (один из которых обычно будет его основным): Низкоуровневый: ассемблер или Си Императивно-ООПшный: С++, Java, C# Функциональный: Lisp - Scheme, что-нить из MLсемейства(можно и F#), Erlang С динамической типизацией: Smalltalk, Python, Ruby, Perl, ... JavaScript, ... (1C в конце концов Ваше нежелание узнать новое - это же ваши проблемы, верно? Удачи! Это сообщение отредактировал(а) Skynin - 20.6.2011, 19:37 |
||||||||
|
|||||||||
| Rohoss |
|
||||||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Вот именно уважаемый. Такой настрой мне приписали вы. То что у меня "такой настрой" - это ваше, высосанное из пальца умозаключение. На самом деле мне очень даже интересно и я готов воспринять преимущества подходов питона. Я не говорил про неделание узнавать новое, я говорил про приоритеты. Возможно другие вещи будут иметь для меня больший приоритет чем айронпайтон и до него ещё дело не скоро дойдёт... или никогда не дойдёт. От этих троих меня тошнит, если пайтон в том же стиле, то Добавлено через 12 минут и 18 секунд Какое вам до этого дело, что меня заботит?
Если бы меня интересовал синтаксис или семантика пайтона, я бы нашёл по сабжу литературу, но вопрос был совершенно другой
На вопрос мне ответили только в общих понятиях, вроде получается я должен просто поверить на слово в то, что на пайтоне можно сделать некоторые сложные вещи намного быстрее. |
||||||
|
|||||||
| Skynin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: нет Всего: 10 |
Может быть. Ваши проблемы, не мои - я профессионально(за деньги) пишу на C# и использую как и CPython так и IronPython. Так что если и обознался, моих знаний не убудет. Очень сомневаюсь что кто-то будет тратить время на сотни строк кода специально для вас, когда на все один ответ - так я и на C# могу, "а для большого проекта", "а выполняться будет медленее", "а у меня приоритеты другие", "а ..." Кому нужно вас уговаривать то?
Я дал ссылки. Сравните размеры кода на C# и Pythonе. Конечно, можно и в этом случае сказать: А-а-а, просто библиотеки для C# не было, а если б была то было бы тоже кратко. И нужно то один раз библиотеку такую написать! "Не всякий вопрос завершается вопросительным знаком. Бывает люди спрашивают и ставят в конце - восклицательный знак" Ваши посты мне такими показались.
а возможно вы вообще через год программирование бросите. Так смысл тратится на вас с такими "возможно"?
мир программирования на питоне прекрасно обойдется и без вас. Делов то! С чего вы взяли что Python нуждается в вас? Вам не нужен, у вас другие приоритеты, вам некогда, ..., ..., ну так и забудьте про него. Я, когда решил изучить Python - никого не спрашивал(правда я знал до этого Perl, который тоже изучил, никого не спрашивая). Погуглил, почитал, в том числе и холивары, типа Perl vs Python, посмотрел примеры, попробовал. P.S. Для каких задач говорите... Например: В данный момент пишу прототип на wxPyhon. Потребовался полновестный GUI и лихая логика экспертной системы (используется pylog - реализация простенького Prolog'а на Python'е). После - либо так и будет сдан заказчику, и так и развиваться будет - на Pythonе (возможно вместо pylog придется перейти на SWI-Prolog). Либо - GUI и инфраструктура переписаны на C#, IronPython, логика на F#, а может и Java (с использованием Netbeans RCP, Jython и tuProlog). Задача такая конечно не часто встречается, но как раз по мне - я универсал, а не специалист. Конечно, три специалиста ее напишут быстрей, но денег заказчик на серьезную команду сразу вот выложить не готов. А гибкость системы нужна, потому что в перспективе - сложная, и на готовенькое тех задание той, окончательной системы рассчитывать не приходится. Вот тут Питон и "правила" на Прологе. До меня несколько попыток было другими - обломали зубы. Получалось долго, а денег на года разработки у заказчика нет. И, основная работа в данный момент: внедрение и доработка Aras Innovаtor, а далее интеграция с ERP системой (выбрал пока OpenERP, на Pythone). Стоимость команд и лицензий для заказчика - неподъемная. Perl же когда-то использовал для парсинга хитрых текстовых файлов. Сейчас конечно использую Python - "распарсить и закинуть в базу". На C# - в разы разработка будет дольше. И - ни к чему. 15 минут работы вместо 15 секунд - не критичны. А вот тратить неделю вместо 1-2 дней - не стоит того. Это сообщение отредактировал(а) Skynin - 20.6.2011, 20:34 |
||||||||
|
|||||||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
вы.. (тъфу, ТЫ) не понял. на питоне не нужно "собирать" код. и уже собранный линковать вручную. в результате вшивание намного проще из безболезненнее. на сишарпе/джаве надо будет пересобрать проект. а на вшивание в питоне - подгрузил 2-3 файла через систему версий, и подгрузил программу снова. и всё. особенно это чувствуется в серверных EE приложениях. где каждый апгрейд - обновление пакетов, downtime нодов сервисов и т.д. ну и сам язык предрасполагает к определенному (чистому) направлению мысли, не отвлекает. хотя это уже флейм -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
На C# не обязательно заново собирать проект. Если мы хотим внедрять новые модули без перекомпиляции проекта мы можем использовать MEF. Он нам позволит просто добавлять новые файлы с новым функционалом, для этого будет достаточно добавить файлы и перезапустить приложение. Или я что-то путаю Ну ладно, уговорили, поковыряю этот иронпайтон, может он действительно что-то интересное позволит делать что увеличит качество и сроки моего кодирования Это сообщение отредактировал(а) Rohoss - 27.6.2011, 09:34 |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
c# файлы ты не сможешь запустить без пересборки. а питон - да, т.к. интерпретатор их собирает и внедряет. причем в айронпитоне он их превращает в CLR, а в Джаве (jython) в байт-код и джавовские классы. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Это ещё почему? Добавлено через 52 секунды Не С# файлы а .net сборки Добавлено через 1 минуту и 54 секунды Или ты имеешь ввиду что нужно не компилить а в текстовом виде исходники ложить? Добавлено через 7 минут и 53 секунды Скажем так, с помощью MEF определяем директорию для исследования. при каждом запуске программа будет исследовать данную директорию и искать там классы, которые наследуют определённые интерфейсы и помечены определёнными атрибутами. Дальше они будут использоваться в соответствии с задачами программы. Вообще меф очень часто используется в больших проектах, однако используется для исследования директорий редко. Обычно входящие в состав модули линкуют статически. А цель его использования - это распараллеленная разработка составных приложений. Какой тут профит пайтона я не особо-то понимаю... |
|||
|
||||
| bilbobagginz |
|
||||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
да.
вот именно: классы. а в питоне ты кладешь файлы, и они сами превреащаются в классы, которые и подгружаются в приложение. -------------------- Я ещё не демон. Я только учусь. |
||||
|
|||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Ну как они будут использоваться приложением? Приложение должно же иметь инфраструктуру для использования этих классов? Добавлено через 5 минут и 18 секунд А что мне изучать, пайтон или айронпайтон? Может по пайтону инфы больше а переключится потом на айронпайтон легко разбираясь в .нет? |
|||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 1 Всего: 48 |
||||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
я знаю что в jython точно сработает. если в ironpython нет, то его в топку -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
Вот вы господа мне что-то не договариваете. Хорошо, есть мега-супер сложная прога. Я выкладываю её где то и она у меня работает. Далее, мне нужен какой-то функционал туда добавить. Я пишу на пайтоне пару текстовых файлов и ложу с программой. Создаётся такой вопрос, на каком основании моя программа при старте будет сканировать и интерпретировать файлы пайтона? Или как всё происходит я совсем не пойму?
|
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 6 Всего: 317 |
да нет, уважаемый, это ты не дочитываешь "что-то", в смысле о питоне. хоть бы блин сел и 20 минутный самоучитель прострочил. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| Rohoss |
|
|||
![]() Начальник интернета ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1308 Регистрация: 9.10.2006 Где: Matrix Репутация: нет Всего: 18 |
||||
|
||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 1 Всего: 48 |
||||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: нет Всего: 11 |
|
|||
|
||||
| asaska |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 10.2.2012 Репутация: нет Всего: нет |
Если тема все еще актуальна, то вот один из примеров использования IronPython для написания скриптов:
http://habrahabr.ru/blogs/net/48832/ Хотя я сам еще не пробовал разрабатывать на IronPython. На работе необходимо реализовать обработку скриптов. По-моему, айрон-питон для этого самое то. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |