![]() |
|
Модераторы: 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 |
||||||||
|
|||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |