![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Python vs .NET
Иногдаприходится делать выбор, так как не хватает времени на два предмета и надо выбрать один. Вы уже догадались, какие. Пишу для себя, чтобы сравнить. Но многим тоже понадобится. И выбор этот касается только меня. Некоторые пункты - тоже субъективно. 1) Возможности С одной стороны питон может все то, что может дотнет. С другой стороны в дотнете нету многово, что есть в питоне: Нет нормальной кроссплатформенности(mono не предлагать, ). Нет нормальных средств функционального программирования. 2) Простота использования. Для питона нет качественной IDE уровня VS. Есть конечно PyDev для eclipse, но из-за особенностей питона вроде duck-типизации нет нормального автодополнения. 3) Применение в разработке графических программ. Сложнее в питоне делать графические приложения. Но мне использовать PyQt не очень удобно. А в дотнете с этим все прекрасно. В питоне нет мейнстрима - считаю, что это очень плохо. Есть куча библиотек типа Tkinter, wx, PyGTK, PyQt - и у всх ВСЕ по разному. 4) Применение в разработке скриптов и сетевых приложений. Питон лидер. Просто лидер и никакой дотнет рядом не валялся. Написать многопоточный сканер? Пожалуйста, десять строк. Написать вебсервер? Пять строк. Кстати этот пункт я ценю выше всего. 5) Применение при разработке вебприложений. Тут не могу сравнить. Обе вещи ОЧЕНЬ сильны. Сравнивать придется Django с одной стороны(кто хочет - берет Turbogears) и ASP.NET с другой. Мне гораздо приятнее идея и стиль разработки Django, но это лишь мое личное мнение и я не буду его аргументировать - выбираю для себя. 6) Требования контор Есть конечно работа и туда и туда. Но вакансий больше именно для дотнета. Если мелкий город и junior-разработчик - это существенно. Тут лидирует конечно .NET. 7)Стиль программирования. Мне нравится питон. Точнее даже не так: я люблю питон. Код ОЧЕНЬ краток и красив. Мое мнение тут однозначно за питоном. 8) Другие возможности. Это фишки дотнета типа IronPython или Silverlight. Мое мнение касательно первого: слишком "по студенчески". Проект еще не дошел до готовой кондиции. Касательно второго - то пусть уж с апплетами жабы борется, а до Flash текущими темпами ему лет 40 еще. Ну не кроссплатформенный он, а Moonlight будет повторять путь mono, в котором даже стандартных методов для стандартных дотнетовских классов нет: not implemented, как говорится. 9) Документация. У питона ОТЛИЧНАЯ документация. Я бы сказал, что одна из лучших. У дотнета же - MSDN, о которой у меня не лучшее мнение: ставишь критерий поиска win32 native - а оно всякие джаваскрипты в результатах выводит. Тут мне гораздо больше нравится документация питона. Однако одно "но": сторонние питона. Для нормальной работы в питоне их ПРИХОДИТСЯ использовать. Нужен массив? Подключай стороннюю библиотеку. Нужен гуй - снова подключай. Веб - опять подключать придется. Вот у них то как раз документация бывает вовсе не на нужном уровне. По тому же PyQt с ней имею большие проблемы: приходится смотреть доки для С++ для Qt. 10) "Разворачивание" приложений. проблемы и там, и там. В дотнете - с установкой новой версии фреймворка(требует прав админа). В питоне - же - либо установка питона и модулей(админа не требуют в большинстве случаев), либо программа весит под 10мб. 11) Мобильные платформы. Дотнет на WM, Python на Symbian. Хоть у меня и Symbian, но нравится больше именно WM(следующий девайс(как и предыдущий) будет на нем). Да и версии CF от обычного фреймворка отличаются ограздо меньше, чем обычный питон от мобильного. Тут мое мнение все же за .NET. 11) "Кто за ним стоит" За дотнетом стоит только MS. Мне это нравится - сильная контора.будет развиваитть и дополнять пока не появится более мощная технология(что будет не скоро еще), но при этом не поломает обратной совместимости. В питоне же - куча мелких foundations. Сам питон - одно. numpy - другое, Qt - третье, PyQt - четвертое, Django - пятое. Это немного напрягает. Тем более что стандарты у контор разные. Вот стою перед выбором. В чем я ошибся? Мой мосг требует информации. Применяю для написание скриптов и гуевых приложений. Кроссплатформ для скриптов обязателен, но mono негуевые поддерживает. |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
F# не предлагать, да? ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
Питон - тормоз, у него плохо с масштабируемостью и многопоточностью.
![]() |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Ch0bits, этот "тормоз" самый быстрый скриптовый язык из распространенных. ) Ну если не считать lua, из-за его области применения.
Что касается многопоточности - то global lock не мешает, т.к. он не распространяется на модули, а практически все задержки в них, а не на логике. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
||||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Ну в данном случае считать, что Java=.NET ))
Просто для меня существенны следующие разоличия: 1) Java требует JRE для запуска, когда как .NET встроен в винду по дефолту(кроме старых версий, конечно) 2) Но джава кроссплатформенна. 3) Дотнетовский гуй родной для винды, джава выглядит же очень чужеродно. 4) Кроссплатформ для мобильников. Остальные доводы считать идентичными для джавы и дотнета) |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
nerezus, собственно, вопрос поставлен некорректно! Сравнивать язык программирования с платформой!!!
Вот если бы Python vs C#, то можно будет сравнивать.
Почему mono не предлагать? Про F# уже archimed7592 отписался. ![]() А вообще, я смотрю Вам по нраву синтаксические особенности Питона и модель программирования .NET. Может IronPython попробуете? Авось устроит.... -------------------- |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
в питоне многопоточность обычно реализуется не на уровне потоков(из за GIL это все будет выполняться последовательно) а на уровне процессов, так же есть фреймверк Twisted, который в этом помогает ![]() |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Почему Вы считаете, что питон - это не платформа? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
тогда какой к черту .NET? Python + QT4 wrapper -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
![]() У стандартных слассов нет стандартных методов в нем.
Из 12 пунктов про сам язык всего лишь 1 пункт(ибо язык является частью), остальное про платформы. |
||||
|
|||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 13 Всего: 43 |
Но вот документация в стиле "убейте меня". Примеров ОЧЕНЬ мало, а те, которые есть - на C++, а не на питоне. Тем более что в сборке под винду нет половины контроллов(типа QWebView и т.д.) и возможностей(хз почему так собрали). |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
Почему не .NET + SWF? ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 8 Всего: 207 |
потому что платформ, где можно запустить Python + QT4 несоизмеримо больше какие дотнетовские языки являются скриптовыми? Это сообщение отредактировал(а) MAKCim - 19.5.2008, 19:27 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Нужно определиться, что есть платформа. Если, например, использовать определение:
то я действительно был не прав. -------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |