Страницы: 1
RSS
Python как замена VBA, Microsoft рассматривает возможность задейсвовать Python в качестве своего скриптового языка
 
Собственно вот ссылка на первоисточник (https://www.bleepingcomputer.com/news/microsoft/microsoft-considers-adding-python-as-an-official-scr...)

Как признанные гуру смотрят на потенциальную замену VBA (я не буду говорить, что он скоро умрет. Это ему уже давно обещают), но все же стоит признать, что функциональность Python будет шире. Он конечно и сейчас может обрабатывать листы Excel через библиотеки xlrd, xlwt, но например редактирование сводных, графиков, это пока невозможно (по крайне мере мне не известно).
Если будет возможность нажав Alt + F11 перейти в окно разработки и просто писать код, так же, как мы это делаем сейчас на VBA. Обрадует ли вас подобное?
Когда испробованы все варианты, я начинаю плясать с бубном. Как правило — помогает.
 
Слыхал об этом.
Мне, как знающему Python на уровне x = input(), print(x) - без разницы.
В Excel важна объектная модель и доступ к ней (при помощи VBA). Будет такой же доступ на Python - отлично. Не будет - тогда Python будет для каких-то узких специфических задач, пока не придумают, как юзать модель и не сделают библиотеки нужные (может они и есть уже?)
В каком-то скором времени, наверное, приведет к изменениям. С внешними данными работать можно будет удобнее. Какие-то работы data sciense будут выполняться. Найдет свое место, в общем.
F1 творит чудеса
 
Какой-то ерундой занимаются если честно. Нет бы то что есть совершенствовать, тем более уже всё сделано. Может чуть расширить функционал и всё. А они питоны яву хотят засунуть, всё в облачные сервисы переводят. Если честно, то уже к маразму подходим.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, поддерживаю вашу позицию. Тоже не понимаю, зачем плодить столько языков программирования, когда все языки имеют один принцип: пишешь объект, ставишь точку, выбираешь методы, свойства. И тому подобное.
И при этом ни один язык не является универсальным, т.е. нельзя решить все задачи с помощью одного языка программирования и надо учить несколько языков, что очень сложно.
Изменено: Karataev - 26.12.2017 21:19:10
 
Я только рад этому и очень надеюсь, что в MS решатся на добавление. Сам давно стараюсь многое делать в питоне.
Кстати питон уже можно ограниченно использовать через надстройку Pyxll. Кому интересно: https://www.pyxll.com/
Изменено: Все_просто - 26.12.2017 22:26:23
С уважением,
Федор/Все_просто
 
Alemox, усовершенствовать - что? VBA? Сейчас чай 21 век на дворе. Windows - далеко не единственная ОС, MS Office далеко не единственный офис, в моде веб, мобильные устройства и кроссплатформенность стала необходимым атрибутом выживания на рынке. Пытаться это всё скрестить с VBA (что значит, как минимум, переписать весь его нативный код с С++/COM под .NET/CLI), всё равно что прикручивать лошади колёса - зачем?
Хоронить его, безусловно, рано: VBA будет востребованным прикладным языком в своём сегменте ещё долго, пока будут активно использоваться старые версии приложений MS Office. Но развиваться он не будет, т.к. проще к новым офисным приложениям прикрутить новый, отвечающий современным реалиям, язык надстроек, чем реанимировать VBA.

Возможно, конечно, что это будет VB .NET и тогда разница будет невелика (наконец-то появятся Continue, Try-Catch и прочие долгожданные плюшки). Но, думаю, это будет C-подобный язык, т.к. они занимают практически весь рынок, а унифицированный синтаксис - великое дело. Возможно, что и Python, сам на нём не писал ничего сложнее Hello World'a, но, говорят, его освоить проще, чем Java или C#, и тем более C/C++. Имхо, программисту лучше больше думать не о точках с запятой, фигурных скобках и заглавных/строчных буквах, а о программе.
 
Цитата
Karataev написал: зачем плодить столько языков программирования...?
Почему все в мире не могут общаться на одном языке? Зачем столько операционных систем? Почему для PIC-контроллеров язык один, а для мобильника - другой? для сетевых одно, для настольных другое?
Сами же и ответили:
Цитата
нельзя решить все задачи с помощью одного языка программирования
 
Цитата
нельзя решить все задачи с помощью одного языка программирования
Не соглашусь! Основная причина - человеческие амбиции: "Если Билли создал ОСь, то и я смогу!..." и вкусовые предпочтения.

Не говорите мне, что Lisp работает быстрее, чем C, или на нём можно сделать, что-то, что нельзя на С! База-то у всех языков одна - двоичный код некоторого процессора! Просто Lisp для конкретного программиста удобнее для обработки некоторых типов данных (очень часто в ущерб производительности). При этом, другой программист может взять С, применить другую структуру данных и получить на выходе лучший результат (а при неправильном типе данных - худший).

Мелкомягкие один раз уже пытались заменить VBA - на платформу .NET. Результат известен...
Python может постичь та же участь - дело-то не в языке, а в реализации!..
 
Ну если продолжать тему, то совсем недавно Microsoft анонсировала и выпустила первый язык программирования для квантовых компьютеров. Получается дальше опять будут плодить сущности для компьютеров интернета и прочих изобретений, но уже на квантовом языке.
Весь спор скорее всего из-за того, что наш мозг не может освоить столько информации и нельзя овладеть всеми языками программирования одновременно. А то чем мы владеем несомненно умирает и от этого нам грустно.  :(  
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Skif-F написал: Мелкомягкие один раз уже пытались заменить VBA - на платформу .NET. Результат известен...
Первый раз узнал об этом. Мне кажется, что Майкрософт просто отказался от VBA по каким-то своим соображениям.

Цитата
Alemox написал: А то чем мы владеем несомненно умирает и от этого нам грустно.
Мне не грустно, просто мне не хочется изучать несколько языков программирования, т.к. в каждом есть свои какие-то нюансы, о которых можно узнать только в процессе опыта, о которых нигде не написано или написано, но человек не читал.
Изменено: Karataev - 27.12.2017 06:10:03
 
vikttur, языки программирования придумывают люди, а не природа дает язык программирования. Вот пусть Майкрософт придумает универсальный язык, чтобы зная C# можно было решать любые задачи. Смысл было заменять Visual Basic языком С#, если C# не решает всех задач. Пусть в Майкрософт что-нибудь придумают. Но они не придумывают почему-то. А вместо C# еще будут изобретать какой-нибудь язык, который будет такой же как C#, но там будут слова по-другому писаться.
 
Karataev, вы опять за своё?) чем вам не угодил С#? Что на нем нельзя сделать? Вы так и не ответили в прошлой теме по существу, ссылаясь на то, что это не по теме. Здесь опять те же не обоснованные высказывания. Дайте пример. Или опять не по теме?
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
Все_просто написал:
Сам давно стараюсь многое делать в питоне
Почему?
Нет, серьезно, очень любопытно, почему в Питоне?
Я, например, замечаю большое увлечение питоном среди увлекающихся ML и прочими нейронками. Насколько понимаю, это увлечение обусловлено наличием scikit и pandas. Без этих библиотек питон - просто еще один язык.
F1 творит чудеса
 
Максим Зеленский, большинство знакомых, кодивших на питоне, считают его простым для изучения. На Хабре периодически тоже муссируется его простота/функциональность/востребованность. Думаю, причина именно в человеческом факторе.

Karataev, язык, решающий все задачи, — это ассемблер. Точнее, все задачи, кроме одной, — трудозатрат на написание кода. Чем более высокоуровневым, простым для понимания и удобным будет язык, тем более узкоспециализированным он будет.
 
Наверное, я не описал свое понимание ситуации достаточно полно.
В моем понимании Excel - лучшая платформа для проведения сценарного анализа. И в своей работе я именно этой частью Excel и пользуюсь.
Все, что выходит за рамки простого и привычного что-если, уже стараюсь делать за периметром офисных приложений.
Скажем для data-майнинга и парсинга эксель ну никак не годится. Есть фреймоворки (scrapy) и билиотеки (urllib* и requests), которые позволяют парсить практически любые сайты. Под открытые API, в т.ч. c OAuth2 аутентификацией, уже написаны клиенты (например, сервисы Google). Вот как это все реализовать в экселе? Признаю, это все делается при должном старании, но оно надо? Зачем изобретать велосипед каждый раз в VBA, когда все это уже есть в специализированных языках.
Pandas, Scikit-learn, конечно, хорошие библиотеки и я ими очень активно иногда пользуюсь. Но не только этими. Не надо забывать о возможностях Python в части визуализации. Если комбинировать с javascript'ом можно получать совершенно потрясающие динамические диаграммы. Если разобраться один раз, все не так сложно, как может показаться.
С уважением,
Федор/Все_просто
 
Все_просто, понятно. Но, насколько понимаю, в Excel поддержка питона нужна в общем только для более удобного доступа к внешним источникам?
F1 творит чудеса
 
Abakumov, Все_просто, можно отметить плюсы/минусы использования VBA/Python в Excel, для понимания, можно в общих чертах, без незначительных подробностей. Скажу честно, с Python близко не знаком, но функционал в Excel интересен для самообразования.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал: чем вам не угодил С#? Что на нем нельзя сделать?
Нельзя написать программу, которая бы работала на хостинге, если хостинг не поддерживает C#. В этом случае надо использовать PHP. В основном дешевые хостинги не поддерживают C#. Чтобы работала на хостинге программа на C# надо покупать дорогой хостинг.
Да и мне начинает казаться, что элементы формы C# морально устаревают, я мельком читал о том, что нужно использовать WPF. Но пока не знаю, что это.
Взять например кнопку. Сейчас уже не модны объемный кнопки, да и получаются они большими. А в C# они есть. Это неправильно. C# ведь новый язык и в нем должны быть нормальные современные кнопки. Не делать же кнопку на основе Label.
 
Цитата
Karataev написал:
должны быть нормальные современные кнопки
А мне не нравятся современные кнопки. Я как-то сторонник старых кнопочек. Они красивее. В них труд вложен и выглядит гораздо красивее программа. А современный плоский дизайн, складывается ощущение, что разработали на скорую руку не уделяя внимания графике. Всё таки раньше подходили лучше к таким вопросам. А теперь на скорую руку состряпать и продать побыстрее.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, у выпуклых кнопок есть недостаток - их нельзя сделать маленькими, т.к. в них не вписывается текст. Так например и в VBA. То есть в C# осталось так, как было в Visual Basic. И возникает вопрос, зачем был сделан новый язык? Почему нельзя было просто модернизировать Visual Basic. Раз уж сделали новый язык, то хотя бы делайте его нормальным.
 
Цитата
Karataev написал:
оторая бы работала на хостинге, если хостинг не поддерживает C#. В этом случае надо использовать PHP
Можно вопрос? Любой хостинг по умолчанию поддерживает PHP? Серьёзно?
Цитата
Karataev написал:
Сейчас уже не модны объемный кнопки, да и получаются они большими. А в C# они есть.
Так никто не мешает использовать ButtonRenderer Class, например, и рисуйте кнопки как хочется. Зачем же через Label идти-то? Может стоит изучить?
И вообще вас не понять, то вы хотите всё из коробки без всякого изучения с минимальными телодвижениям - так где есть такое?, то хотите иметь широкие возможности по настройке - так это нужно изучать, прежде чем утверждать, что этого нет.
Цитата
Karataev написал:
лементы формы C# морально устаревают, я мельком читал о том, что нужно использовать WPF
Просто сменился подход к построению интерфейса. От старых форм переходят к новому стилю, который позволяет адаптировать интерфейс приложения к любому размеру экрана вывода. Тут как раз в VBA большая проблема, так как он рассчитан на старый тип форм, почитайте Сложности современного масштабирования, например.
По существу, вместо использования Windows.Forms переходят к Windows Presentation Foundation, причём тут устаревание C#? Просто от одного framework переходят к другому. С языком никакой связи.
Изменено: Андрей VG - 28.12.2017 11:26:36
 
Цитата
Karataev написал:
хостинг не поддерживает C#
для C# нужен .Net Framework (насколько я знаю, есть не только под win, на все win - есть по умолчанию.). Под Java по-моему, то же платформа ставится. Пишите на С\С++ - не нужно трансляторов (машинный код). PHP, главным образом, предназначен для работы в среде web-серверов (как по мне) -
узкоспециализирован.
Цитата
Karataev написал:
C# ведь новый язык и в нем должны быть нормальные современные кнопки.
- да какие угодно можно сделать - набросал за 5 сек (свойств- на экране не помещаются, можно сделать все что угодно :) )
Изменено: bedvit - 28.12.2017 12:15:57
«Бритва Оккама» или «Принцип Калашникова»?
 
Гуглим :) FlatStyle - прямо из коробки - именно плоские кнопки - без проблем (стандартный функционал, ничего ставить не нужно)!
Изменено: bedvit - 28.12.2017 12:24:44
«Бритва Оккама» или «Принцип Калашникова»?
 
Я давно делал программу на C# (и я сделал только одну программу для себя), на продажу не делал, т.к. плохо ориентируюсь в этом языке, поэтому про кнопки точно не помню. Мне почему-то показалось, что проблема с выпуклыми кнопками осталась, как в VBA. Возможно я что-то путаю. Буду иметь ввиду про FlatStyle.
 
Искал более свежую информацию на эту тему, но так ничего и не нашел.
Я так понимаю что интеграция Python и Excel пока так и осталась на уровне предположений 2017 года.
(я не про подключение Python к Excel, а наличие Python как VBA в Excel)
 
Lari, Переходите на Libre c питоном https://help.libreoffice.org/6.3/en-US/text/sbasic/python/main0000.html
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо, очень интересно!
 
Но имейте ввиду
Цитата
"В отличие от разработки макросов на базовом языке в LibreOffice, разработка сценариев Python для LibreOffice требует настройки внешней интегрированной среды разработки (IDE)."
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Но имейте ввиду
Ну тут, или дудочка, или горшочек :-)
По вопросам из тем форума, личку не читаю.
 
Basic и в LO намного удобнее, чем  Python.
Владимир
Страницы: 1
Наверх