Здравствуйте, okon, Вы писали: O>Вполне можно было сделать такой же инструмент на C подобном синаксисе, как это делали в случе C++, C#, Java.
делали так, потому что так решили. Вкусовщина. Мне не известно, почему именно Гвидо так решил. Но одно вполне определенно: тех, кому реально нужен Питон, его синтаксис не напрягает.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, okon, Вы писали:
O>>Опять же мы тут начинает обсуждать текущую реализацию в .NET, но в скриптовом языке с синтаксисом того же C#, dynamic может быть реализован точно также как это сделали у питона или лучше чем у питона.
N>Правильно ли я понимаю, что твой вопрос можно переозвучить так: зачем взяли готовый язык с интерпретатором и библиотеками, а не написали всю инфраструктуру заново для существующего языка? В такой постановке вопроса, ответ уже не требуется.
По сути верно, именно такой вопрос не плодить синтаксические сущности, только еще бы уточнил — не всего существующего языка, а исключив не нужны сущности, добавив нужные, но не изменяя уже существующие, а повторно их используя.
Примерно как сделали С++ из C или С#/Java.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали: O>допустим нам нужен язык только для булевских выражений 4 операции — почему бы не оставить уже существующий синтаксис и не писать как ^ | & !, не дублировать эти сущности. Это не увеличило бы сложность языка — сущностей в нем было бы столько сколько нужно.
Ты сейчас про какой-то сферический ЯП в вакууме? Когда Гвидо создавал Питон, цель была более мощная альтернатива шеллу для написания скриптов. Ты видел синтаксис шелла? Про С я уже написал, сделали по-другому по какой-то причине.
Здравствуйте, okon, Вы писали:
I>>Дело не в кроссплатформенности, а в разделении труда и вытекающей из этого разницы в квалификации. I>>В МЛ пишутся два вида вещей — интеграция, и числодробилки. Числодробилки и так пишутся на Си/С++ и в принципе на чем угодно. I>>А вот интерграция требует ничтожной сложности со стороны ЯП. На эту роль не годится ни один из языков выше, т.к. их учить нужно слишком долго.
O>Согласен что полное изучение С++ в его прикладном применении который с ним ассоциируется уйдет много времени, но мы сейчас говорим про синтаксис, о том что допустим нам нужен язык только для булевских выражений 4 операции — почему бы не оставить уже существующий синтаксис и не писать как ^ | & !, не дублировать эти сущности. Это не увеличило бы сложность языка — сущностей в нем было бы столько сколько нужно.
Какой существующий ? К слову — питон появился гораздо раньше шарпа и джавы, на нем и так пишут довольно много людей. Нету никакой проблемы писать на питоне. Есть адаптация, стоимостью в пару недель от силы. К слову, адапатация для C#, Java длится гораздо дольше. А про С++ и говорить не надо — не меньше года уйдет на внятное вхождение. Это если речь только про сам язык, а не платформу.
O>К сожалению с первой попытки не удалось найти график с 90х, только с 2012 , но упоминание питона тогда в 90х было около нуля, в отличии от того же С. Фортран, Бейсик — звучали как сейчас Python. O>Image: projections-1-1400x1200.png
Питон только появился в 1990-м году. И в каком месте ты видишь умирание Питона на этом графике? Почему бы не дать умереть С++ или Джаве?
Здравствуйте, okon, Вы писали:
O>вопрос в другом, про изобретение нового синтаксиса, если упростить вопрос то зачем придумали новую сущность как разделение пробелами вместо C подобного { }.
Разве это новая сущность? В синтаксисе мэйкфайлов команды, относящиеся к цели, выделяются табуляцией, а не {}, begin/end или чем-то подобным. Ничего нового Гвидо не придумал. А почему применил именно эту идею, лучше спросить его самого. Если интересно — на странице https://gvanrossum.github.io/ есть адрес изобретателя Питона.
O>Вполне можно было сделать такой же инструмент на C подобном синаксисе, как это делали в случе C++, C#, Java.
То-жа самое можно сказать и про C.
Зачем нужны эти ужасные фигурные скобки, когда есть понятные begin и end, как в Алголе?
И про любой язык можно сказать "Зачем нужна фича X, когда есть фича Y в других языках?".
Здравствуйте, Sharov, Вы писали:
S>На каком языке человеку без опыта проще построить график какой-нибудь ф-ии и вообще отвалидировать модел в две строчки кода, подключив при этом какую-нибудь библиотеку? Где меньше кода надо написать и S>сделать меньше телодвижений, чтобы получить желаемый результат?
Здравствуйте, Nuzhny, Вы писали:
N>Толком никаких не было и сейчас нет. Я вообще не понимаю, к чему ты о нём вспомнил, тот же lua по библиотекам богаче, имел jit компилятор и намного активнее Питона использовался в качестве скриптового языка и языка сценариев.
Здравствуйте, okon, Вы писали:
O>По сути верно, именно такой вопрос не плодить синтаксические сущности, только еще бы уточнил — не всего существующего языка, а исключив не нужны сущности, добавив нужные, но не изменяя уже существующие, а повторно их используя. O>Примерно как сделали С++ из C или С#/Java.
Или Паскаль и Делфи. По факту, Питон с 2009 года преподавал я в МИТ вместо Лиспа. Это тоже было фактором будущей популярности. Думаю, что вопросы должны начинаться именно здесь, а не где-то потом. Ну и вообще непонятно, в чём проблема выучить синтаксис не плохого и удобного языка.
Здравствуйте, Gt_, Вы писали:
Gt_>кроме этого C# для старта требует гигантскую виртуальную машину поднять. тоже нафиг не нужное занятие на массе задачек
Гигантскую? Я думал, мы уже давно не живем во времена оперативки по 8 мегабайт.
Здравствуйте, okon, Вы писали:
O>Совершенно не принципиально пусь будет C, а не C#.
Теперь ты предлагаешь язык, который просаживает продуктивность не в разы, как C#, а на порядок.
O>Windows-only ты говоришь про компилятор который был.
я говорю про времена до NETCore.
O>Это опять же реализация тулзы , она не имеет отношения к синтаксису. Что мешает a = a + 2 выполнить как в питоновском синтаксисе так и в шарповом. O>Зависит от того сделаешь ты repl или нет для языка. Вот в студии сделали например панельку там тебе Repl для шарпа.
Во-первых, он там появилась относительно недавно, как и type inference и прочие нужные для нормального репл-а вещи, когда ниша уже была ...., ну ты понял.
Во-вторых, он нужен не только в студии, а в продакшен ssh-сессии в putty.
N>>-- не имеет продвинутых штук типа jupyter, O>что за продвинутая штука ? https://jupyter.org/ ? эта штука вроде как 40 языков поддерживает в том числе C#.
Да, но хорошо работает только с питоном.
O>опять же причем тут синтаксис, от того что вместо пробелов ты поставишь скобки { } или другие отличия синтаксиса такую тулзу будет не возможно сделать ?
Для нормального репла для статики нужно многое. по-минимум авто-вычисление типов и присутствие list-comprehension(linq). Сейчас возможно репл в C# и можно довести до уровня питона, но уже поздно.
N>>-- если использовать dynamic, ты занимаешься сексом в гамаке: все проблемы статики(тяжелое IDE, куча файлов и опций для сборки и т.д.), но не получаешь удовольствий (intellisense, compile time error checking) O>Почему не получу — вопрос такой же как и все выше — причем тут синтаксис.
Кто сказал, что-то про синтакс? Я говорю о том, что при поголовном использовании dynamic на C# ты получишь говно-питон.
N>>-- если не использовать dynamic, то разработка сильно замедляется: нет repl-a, a есть куча лишних движений и суеты (типы, сборка, проекты, IDE и т.д.) O>Это все опять про тулзы а мы про то зачем надо было новый синтаксис воротить для всего этого.
Кто сказал, что-то про синтакс? Я говорю о том, что хорошая динамика(питон) продуктивней хорошей статики(C#).
Здравствуйте, Mr.Delphist, Вы писали:
MD>TCL — аналогчино.
TCL? Он на порядок хуже по всему: библиотекам, средствам, поддержке, рынку труда. Единственный возможный конкурент питону — js.
Здравствуйте, Kolesiki, Вы писали:
K>C# — пусть и "переименованная Жаба", но туда вложились СОТНИ инженеров на коммерческой основе, имеющих опыт создания С++ и Васика. K>Думаю, не надо объяснять, какой язык спроектирован более грамотно?
Как и в Кобол. И вообще "верблюд это лошадь, созданная комитетом".
P.S. Я не к тому, что C# плохой язык, просто аргумент дурацкий.
Здравствуйте, okon, Вы писали:
O>Текущее состояние и полезность питона тут не обсуждается, вопрос в другом, про изобретение нового синтаксиса, если упростить вопрос то зачем придумали новую сущность как разделение пробелами вместо C подобного { }. Это помешало бы ему создать кучу библиотек ? O>Вполне можно было сделать такой же инструмент на C подобном синаксисе, как это делали в случе C++, C#, Java.
Тогда я вообще не понял вопроса. При такой постановке вопроса ответ -- затем. Затем что могли, затем что хотели попробовать что-то новое и у них получилось, а нас забыли спросить, надо ли нам это. В общем, надо расслабиться и получать удовольствие, и не задавать ээээ... глупых вопросов.
Gt_>>C# компилированный и строго типизированный язык, т.е. заставляет задефайнить переменную, указать ее тип. совершенно не нужный синтаксис скриптовым языкам, которые думаю все с динамической типизацией. O>Ничего он не заставляет, у тебя есть текст алгоритма — хочешь компилируй заранее и делай бинарь на ассемблере x86, хочешь компилируй в бинарь который будет виртуальной средой обрабатываться, хочешь парсь и интерпретируй как питоновский исходник.
я так понимаю ты ушел в мир грез. проспись и взгляни на мир трезвыми глазами. нет C# способного скомпилировать бинарь. есть поделка что заталкивает пародию на jvm внутрь экзешника. со всей требухой виртуальной машины. нет и остального.
O>Не обязательно указывать строгий тип, есть в синтаксисе C# тип dynamic.
это просто syntax sugar. реально типизация никуда не девается, просто подсовывается тип Object
Gt_>>кроме этого C# для старта требует гигантскую виртуальную машину поднять. тоже нафиг не нужное занятие на массе задачек O>Ничего синтаксис C# не требует, как реализуешь его парсинг и обработку так и будет. Хочешь парсь, компилируй под виртуальную машину, хочешь парсь и интерпретируй. Не путай синтаксис и реализацию конкретной технологии.
и кому мог бы понадобится такой инвалид ? никакого смысла плодить еще одну сущность нет. (tm)
питон появился раньше и под те задачи где он выстрелил он еще в 90х делал лучше, чем сегодня C#. если же говорить о синтаксисе — то C# просто унылое подобие java. совершенно унылое. а вот синтаксис dataframe из питона/pandas похоже произвел серьезную революцию. по мотивам этого dataframe в бигдата мире сделали фреймворк spark, который думаю станет в конце концов красивой заменой SQL, что застрял в 80х.
т.е. синтаксис питона серьезно влияет даже на передовой жава мир, тогда как от синтаксиса C# миру ничего не интересно. кстати в mssql2019 уже будет hadoop и тот самый spark. т.е. опосредовательно синтаксис питона и в стане майкрософт сейчас все перевернет.
Здравствуйте, zverjuga, Вы писали:
Z>многие вещи на питоне делать намного легче, чем на том же сишарпе или плюсах. я на нем не работаю, но когда изучал, то это сразу бросается в глаза. ты тоже его поизучай и может найдешь, где тебе было бы его удобнее использовать. к тому же питон — функциональный язык, а сишарп — императивный.
Не, питон ни разу не функциональный. Даже сишарп более функциональный, чем питон. Но в целом да, питон легче и приятнее сишарпа.
Здравствуйте, AlexGin, Вы писали:
BFE>>А вы что? Всё ещё отлаживаете программы?
AG>Завидую Вам — белой завистью! AG>Восхищаюсь Вами! AG>Вы умееете писать программы — без ошибок. AG>Они сразу же — начинают правильно работать!!!
Ну как сразу... Когда пишу на С++, то обычно двух-трёх запусков хватает, чтобы выловить все ошибки на assert'ах. Потом, конечно, ещё тесты писать приходится. Дебагер я при этом не использую. Я дебагер два последних года не запускал.
AG>Я, к сожалению, так не умею
А вот если на С писать, то приходится программировать начиная с тестов. Сначала тесты, потом код. Дебагер не нужен, если сначала написать тесты, а потом код.
Тесты, понятное дело, не на все задачи можно написать, но те задачи, которые я последнее время программирую, хорошо покрываются тестами.
Так что если у вас задачи не связаны с интерактивной работой пользователя, то попробуйте начать с тестов, используйте проверку пред и постусловий в каждой функции и вы увидите, что дебагер не нужен.
Здравствуйте, okon, Вы писали:
O>Можно примерчик, питон он мультипарадигменный язык а не чисто функциональный или императивный. O>Императивность в нем также есть, if/for и все остальное. Синтаксис функциональщины в C подобный синтаксис тоже добавляется, как это сделали в С# например добавив from x in a и т.д.
ну прямо сейчас я уже не помню деталей, надо перечитывать книгу. я его изучал с оценкой его возможного изучения. но по итогу решил на F# более сосредоточиться. но из того, что помню, просто навскидку
1. срезы массивов и строк, с ними очень удобно работать с массивами и ихними кусками
2. генераторы — отличная штука
3. циклы
4. даже банальное отсутствие обязательных точек с запятыми — это на самом деле очень удобно. я после свифта, когда перехожу на сишарп, мне кажется таким излишеством ставить точку с запятой или скобки, и оттого сишарп кажется таким избыточным и тяжелым
в общем, питон классно подходит для обработки больших массивов данных из-за более удобного и упрощенного синтаксиса и других удачных решений.
опять таки, я не говорю, что этого нельзя сделать на сишарпе. но на питоне — удобнее.