DezmontDeXa
а я после с# + Visual Studio не могу понять
Ну то есть ты после винды не можешь что-то понять в нормальном *NIX-мире. Ну, например, сокеты, которые ты пытаешься создать, пришли в винду из *NIX. А *NIX - это мир языка C. Соответственно, функция open() в питоне так выглядит, потому что удобна для C-программистов как родная. То же самое касается форматирования строк - форматирование взято из библиотечной функции printf() на языке C.
DezmontDeXa
чем он такой простой и удобный
Ну ты заметил, что можно вообще не имея исходника на питоне, выполнить программу на питоне. То есть можно открыть консоль питона, в ней написать программу на несколько страниц, выполнить её и всё сработает. Её не нужно держать в файле, её не нужно компилировать. Поэтому, когда ты хочешь что-то узнать или проверить, ты просто открываешь консоль, узнаёшь это или проверяешь и сразу закрываешь консоль. Вот ты хочешь создать сокет - просто открой консоль и создай в ней сокет. И он создастся и будет там принимать данные, которые можно читать, откроется порт, к которому можно подключаться. При этом тебе не нужен ни один файл для этого и уж тем более компиляция, настройки нового проекта, его сборки и тому подобное.
Вот я открываю консоль, выполняю пару строк и вижу все методы
>>> import socket
>>> help(socket)
>>>
Это если я забыл, какие там методы.
Если же я подробности хочу узнать, я просто иду сюда
https://docs.python.org/3/library/index.htmlИ там открываю
https://docs.python.org/3/library/socket.htmlВ которой есть примеры (рабочие, которые можно просто скопировать в консоль и проверить)
https://docs.python.org/3/library/socket.html#exampleПри этом объекты остаются живыми даже после выполнения работы и с ними можно продолжать работать в консоли.
DezmontDeXa
Нестрогая типизация - на мой взгляд всегда минус
Нестрогая типизация?
>>> 1 + 'a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
>>>
>>> 1 + object()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'object'
>>>
>>> '5' ** 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
>>>
При нестрогой типизации знаешь, что будет? Попробуй JavaScript
In: 'a' + 1 + [2] + null
Out: "a12null"
DezmontDeXa
Кодить без IntelliSens, все равно что кодить в блокноте с макросом для компиляции.
Ты просто не в той среде сидишь. И не в той системе
Винда - система для бухгалтерш и там всё для бухгалтерш, она не заточена на умную работу. Поэтому ты просто не встретишь там программ, которым уже по многу лет. Такие программисты и сисадмины обычно не знают, что такое sed, что такое awk, что такое Vim и Emacs, что такое Git, что такое Docker, конвейеры между программами, нормальный язык оболочки, позволяющий сворачивать горы. И в консоли они работать не умеют и не знают даже, как там пути в ней переключать и файлы просматривать. В винде очень слабая консоль, поэтому все и думают, что консоль - это фигня малофункциональная. А на самом деле это в винде она плохая и неразвитая.
Поэтому и питон тоже работает по-разному в винде и в лине. В винде им пользоваться невозможно, там куча ошибок, он неудобный. А в лине у тебя всё нормально и нет никаких ошибок. В винде ты там захочешь файл открыть в питоне, будешь должен выравнивать путь. чтобы винда случайно не истолковала кириллицу каким-то там своим образом, а в лине ты можешь хоть на китайском пути в питоне открывать, они спокойно берутся и у тебя проблем никаких нет.
Поэтому ты просто не понимаешь разницы.
DezmontDeXa
Если в c# мне достаточно выучить 2-3 варианта создания класса:
А нафиг он вообще нужен, если он в винде только работает? На других языках я могу и под винду писать, но я не обязан писать под винду. А на C# ты будешь должен писать под винду всё время и, соответственно, для него не будет ни сред, ни инструментов, ни нормальной интеграции с новыми технологиями. Docker когда появился, все на него сели сразу, а в винде его не было вообще. Сейчас любой хостинг открываешь, там сайты все существуют в виде изолированных Docker-контейнеров.
DezmontDeXa
Visual Studio
Забудь про эту хрень. Ну ладно, не забывай, но используй её только для C#, потому что она только для него и делалась, чтобы пользователей в винде удерживать.