Re[9]: Зачем воскресили питона ?
От: AlexGin Беларусь  
Дата: 11.10.19 21:35
Оценка:
Здравствуйте, B0FEE664, Вы писали:
...
Sorry, если я (вполне преднамеренно), допустил некоторый сарказм в моём предыдущем посте!
Насчёт различных методов отладки, в т.ч. и TDD методики — я в курсе.

Для чего-то она подходит, для чего-то — нет.
ИМХО — здесь даже не важно, это обычный C или это C++, всё-равно всё зависит от задачи.

Часто удобно сочетать различные методы отладки:
1) Debug-ер
2) Выдача сообщений в LOG-файл
3) Выдача отладочных ASSERT-ов
4) Прогон набора UNIT-тестов с различными условиями (что особо рекомендуют апологеты TDD)
5) Визуальный анализ (для интерактивных приложений с GUI)
...
Возможны ещё какие-либо, не упомянутые выше.
Я расставил методы в порядке убывания (IMHO) частоты применения.
То есть — наиболее часто (лично я) прибегаю к обычному отладчику

Мой первоначальный посыл был в том,
что правильный стиль написания кода — это отступы,
это каждый "оператор" — в отдельной строке.
В общем-то: классика

P.S. По теме: Python — язык хороший и полезный.
Прививает красивый стиль написания кода.
И несмотря на то, что я в основном пишу на C++
(на Python занимался относительно мало), я причисляю себя к лагерю сторонников Python.
Отредактировано 11.10.2019 21:36 AlexGin . Предыдущая версия .
Re[10]: Зачем воскресили питона ?
От: pagid Россия  
Дата: 12.10.19 10:02
Оценка: -2
Здравствуйте, AlexGin, Вы писали:

AG>Мой первоначальный посыл был в том,

AG>что правильный стиль написания кода — это отступы,
AG>это каждый "оператор" — в отдельной строке.
Во всем нужна мера, в соблюдении стиля. Вариант "if (a) { smth(); return; }" во всех отношениях лучше Вашего, если религиозные предпочтения почему-то иногда называемые "принципами" или "обязательными правилами" не припутывать.

P.S. Совершенно в сторону, но в некоторой степени на эту же тему. Немало обсуждений о том, какая беда этот ООП-стиль, так вот там тоже нагромоздили множество "принципов", соблюдение которых поклонники в какой-то момент объявили обязательным, а потом почему-то сокрушаются, что за монстра мы родили.

P.P.S. Ваш вариант написания того условия и пары операторов немоден, нужно же было фигурную скобку на первой строке оставить, по-фиг, что безобразно и уродливо, но все пацаны так пишут, а кое-где и в требования к синтаксису языка прошили
Re: Зачем воскресили питона ?
От: Ночной Смотрящий Россия  
Дата: 12.10.19 20:50
Оценка:
Здравствуйте, okon, Вы писали:

O>Взяли бы для кросс-платформенности любой активный и живой язык C++/C#/Java например ? Зачем плодить сущности которые делают тоже самое ?


Питон это заменитель бейсика. Бейсик как то подпротух, но свято место пусто не бывает.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Зачем воскресили питона ?
От: alex_public  
Дата: 12.10.19 22:21
Оценка: +3
Здравствуйте, okon, Вы писали:

O>Почему не дали ему спокойно умереть ?


Не дали умереть? А он умирал? Что за бредовые фантазии? Питон всю свою жизнь развивался более менее равномерно, заняв значимые позиции в ряде ниш и даже став однозначным лидером в ещё нескольких. Возможно кому-то кажется что о Питоне активно заговорили только в последнее время, но это только так кажется, людям далёким от темы. В основном в связи с тем, что одна из ниш (ML), в которых Питон царил (задолго до этого!), в последнее время вырвалась на передний край развития индустрии.

O>Взяли бы для кросс-платформенности любой активный и живой язык C++/C#/Java например ? Зачем плодить сущности которые делают тоже самое ?


Все перечисленные языки намного менее продуктивны, чем Питон для проектов небольшого размера (сюда естественно включаются и произвольные админские/сборочные скрипты и научные/инженерные расчёты в Jupyter и бэкенд веб-страничек и ещё много чего подобного). Разве что C++ после выхода стандарта C++20 (в котором в язык добавятся Ranges) станет сравнимым по набору удобств, но всё равно при этом останется намного более многословным, не говоря уже сложности инфраструктуры.
Re[3]: Зачем воскресили питона ?
От: Ночной Смотрящий Россия  
Дата: 13.10.19 07:02
Оценка:
Здравствуйте, okon, Вы писали:

O>Так синтаксис C# не сложнее


Синтаксис может и не сложнее, только дело не в синтаксисе. Синтаксис С++, к примеру, еще проще шарпа, а толку то?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Зачем воскресили питона ?
От: Ночной Смотрящий Россия  
Дата: 13.10.19 07:02
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Был тот же самый TCL — кроссплафторменный, дефолтный для многих дистрибутивов Linux. Почему не он?


Имхо тикль слишком уж тяготеет к командной строке.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Зачем воскресили питона ?
От: Mr.Delphist  
Дата: 14.10.19 09:54
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Mr.Delphist, Вы писали:


MD>>Был тот же самый TCL — кроссплафторменный, дефолтный для многих дистрибутивов Linux. Почему не он?


НС>Имхо тикль слишком уж тяготеет к командной строке.


Не более чем Питон. И был Tcl/Tk — кроссплатформенный UI-фреймворк. Ещё раз повторюсь — сравнивать надо не с сегодняшним днём 2019, а с началом двухтыщных. Для того времени TCL был очень бодренький кросс-платформенный скриптовый язык. К сожалению, за ним не было каких-то Больших Папочек, разве что ActiveState, но для них он был не более чем ещё одним из продуктов (ActiveTcl, наравне с ActivePerl и т.п.). На роль Большого Папы это не тянуло.
Re[4]: Зачем воскресили питона ?
От: Mr.Delphist  
Дата: 14.10.19 09:58
Оценка:
Здравствуйте, novitk, Вы писали:

N>Здравствуйте, Mr.Delphist, Вы писали:


MD>>TCL — аналогчино.

N>TCL? Он на порядок хуже по всему: библиотекам, средствам, поддержке, рынку труда. Единственный возможный конкурент питону — js.

Сегодня — да. В начале двухтысячных — нет. Тогда наиболее мощными скриптерами были TCL и Lua (более того, у нас в одном проекте использовались оба: для внутреннего скриптинга — Lua, а для внешнего управления приложением — TCL, исторически так сложилось, хе-хе).
Re[5]: Зачем воскресили питона ?
От: Ночной Смотрящий Россия  
Дата: 14.10.19 10:03
Оценка: +1
Здравствуйте, Mr.Delphist, Вы писали:

НС>>Имхо тикль слишком уж тяготеет к командной строке.

MD>Не более чем Питон.

ИМХО существенно больше.
Хотя и Питон тоже, не лишен наследия. Отсюда и синтаксис, а вовсе не из за того что некоторые любители Питона понапридумывали.

MD> И был Tcl/Tk — кроссплатформенный UI-фреймворк. Ещё раз повторюсь — сравнивать надо не с сегодняшним днём 2019, а с началом двухтыщных.


В начале двухтыщных не было Django и AI, и оба, и тикль и Питон, пользовались ограниченной популярностью.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Зачем воскресили питона ?
От: alex_public  
Дата: 14.10.19 11:08
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

N>>TCL? Он на порядок хуже по всему: библиотекам, средствам, поддержке, рынку труда. Единственный возможный конкурент питону — js.

MD>Сегодня — да. В начале двухтысячных — нет. Тогда наиболее мощными скриптерами были TCL и Lua (более того, у нас в одном проекте использовались оба: для внутреннего скриптинга — Lua, а для внешнего управления приложением — TCL, исторически так сложилось, хе-хе).

Что там у указанных языков с наличием срезов и генераторов? Без этого в Data Science (и как его подмножество ML, хотя сейчас моднее уже говорить AI) делать нечего...

Так же важна бесшовная интеграция с C/C++, т.к. без этого Питон не стал бы лидером в научных/инженерных областях — там с вычислениями могут справиться только эти языки, но гораздо удобнее управлять процессом из Питона, на более высоком уровне. Ну и кстати опять же без наличия в языке такого инструмента как срезы (которые по сути абстрагируют собой пару итераторов C++, которые опять же в большинстве подобных задач сводятся к паре голых указателей на данные в массиве) это вряд ли возможно реализовать эффективно.

Для всяческих админских скриптов по идее разницы нет между всеми этими языками, главное чтобы синтаксис не цеплялся (как в Perl). А вот для инструментов посложнее (типа систем сборки (waf/scons), контроля версий (Mercurial), удалённой автоматизации (fab или вообще какой-нибудь ansible) и т.п. удобностей) становятся уже актуальны такие инструменты языка как декораторы — некое подобие метапрограммирования.

Для веб'а (где Питоне тоже популярен) актуальна скорее удобная модульность (включая гибкое ООП), наличие фреймворков и библиотек (доступных для автоматической установки из пакетного менеджера в одну строчку).

Это первое что пришло в голову, вспоминая ниши, в которых Питон популярен, и сравнивая с указанными языками...
Re[6]: Зачем воскресили питона ?
От: Mr.Delphist  
Дата: 14.10.19 14:29
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Mr.Delphist, Вы писали:


N>>>TCL? Он на порядок хуже по всему: библиотекам, средствам, поддержке, рынку труда. Единственный возможный конкурент питону — js.

MD>>Сегодня — да. В начале двухтысячных — нет. Тогда наиболее мощными скриптерами были TCL и Lua (более того, у нас в одном проекте использовались оба: для внутреннего скриптинга — Lua, а для внешнего управления приложением — TCL, исторически так сложилось, хе-хе).

_>Что там у указанных языков с наличием срезов и генераторов? Без этого в Data Science (и как его подмножество ML, хотя сейчас моднее уже говорить AI) делать нечего...


Оно?
https://wiki.tcl-lang.org/page/Generators+In+Tcl
https://riptutorial.com/lua/example/14569/stateless-iterators

Срезы — в смысле слайсинг? Тоже есть, пусть и не в виде нативного синтаксиса (хотя для скриптовых языков говорить о синтаксисе можно довольно условно, т.к. он расширяется подключаемыми пакетами, как, например, поддержка ООП для TCL).

_>Так же важна бесшовная интеграция с C/C++, т.к. без этого Питон не стал бы лидером в научных/инженерных областях


TCL — да, https://wiki.tcl-lang.org/page/Adding+Tcl%2FTk+to+a+C+application
Lua — да, https://rubenlaguna.com/post/2012-11-26-first-steps-in-lua-c++-integration

В общем, инструментально эти языки никак не назвать отстающими по сравнению с Python. Им всего лишь недоставало какой-то жалкой сотни ежегодных конференций по всему миру
Re[5]: Зачем воскресили питона ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.10.19 17:00
Оценка:
Здравствуйте, okon, Вы писали:

O>Это опять же реализация тулзы , она не имеет отношения к синтаксису. Что мешает a = a + 2 выполнить как в питоновском синтаксисе так и в шарповом.

Не-не-не дэвид блейн. Так у нас ничего не получится. Скриптовые языки очень сильно отличаются по семантике от традиционных.
Например, в синтаксисе C# 'a = a + 2' выполнить невозможно, т.к. непонятно, что такое это 'a'.
Вот если, к примеру, написать что-то типа 'var a = 0;', то уже после этого можно было бы писать 'a = a + 2'.
Но опять же — это гипотетически; на практике мы не можем просто взять и написать var a = 0.
В "шарповом синтаксисе" такое может встречаться только лишь внутри какого-то метода; а метод должен жить в каком-то классе.
Ок, мы можем делать вид, что в нашей консольке текст является частью какого-то main(). Но там появляется ещё масса проблем, т.к. шарп не проектировался для написания в стиле "всё внутри main()".
Можно посмотреть, куда привели попытки написать скриптовый шелл на дотнете — это powershell.
Он, мягко говоря, очень другой, чем C#. И по синтаксису, и по семантике. И тормозит он тоже адски — я поверить не мог, что на современной машине задачки типа "подсчитать частоты слов в двухмегабайтном документе" могут занимать наблюдаемое невооружённым глазом время. То есть возвращаемся в щасливые времена моего детства, когда программа рисовала окружность и ты это видел.

И адски противоестественный, как и всё скриптовое. Писать на нём для повторного использования — боль.
Хотя по сравнению с питоном — норм, всё надёжненько.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.