История изменений
Исправление
Novator,
(текущая версия)
:
Ну вот смотри, маленькая утилитка, а модулей 12 штук подключено (12 ШТУК, КАРЛ!):
https://github.com/Novator/Pandora/blob/master/util/pangate.py
Т.е. на каждый чих нужен модуль:
Хочешь поработать с датой и временем - подключай «time» и «datetime» (в руби всё делает базовый класс Time, ни одного модуля не надо подключать - батарейки в комплекте).
Хочешь поработать с терминалом - подключай «termios» (руби по умолчанию умеет работать с терминалом).
Хочешь вызвать системные функции - подключай 4 модуля «sys, os, socket, threading» (в руби есть системные константы).
Хочешь поработать с файлами (С ФАЙЛАМИ, КАРЛ!) - подключай «fcntl» (в руби класс File доступен по умолчанию).
Хочешь поработать со структурами - подключай «struct» и «binascii» (в руби все методы для работы с данными входят в базовый класс String).
Т.е. если ты в руби хочешь сделать какое-то типовое действие, то ты в 90% случаев берёшь базовый класс и получаешь весь инструментарий, удобный, работающий в традиции Ruby.
А если ты в питоне хочешь сделать какое-то типовое действие, то всегда должен найти какой-то сторонний модуль, разобраться каким образом на этот раз программер извратнулся, чтобы реализовать логику интерфейса (набор классов и методов), как туда параметры подаются. (А извращаются они всегда по-разному).
И вот эта постоянная анальная возьня в питоне (особенно, после руби) меня просто за$бала. Если бы не stackoverflow с большим кол-вом примеров, то я бы наверное от питона вобще отказался. А так он берёт популярностью. Ну и скорость мне понравилась, вроде как чуть шустрее руби.
Исходная версия
Novator,
:
Ну вот смотри, маленькая утилитка, а модулей 12 штук подключено (12 ШТУК, КАРЛ!):
https://github.com/Novator/Pandora/blob/master/util/pangate.py
Т.е. на каждый чих нужен модуль:
Хочешь поработать с датой и временем - подключай «time» и «datetime» (в руби всё делает базовый класс Time, ни одного модуля не надо подключать - батарейки в комплекте).
Хочешь поработать с терминалом - подключай «termios» (руби по умолчанию умеет работать с терминалом).
Хочешь вызвать системные функции - подключай 4 модуля «sys, os, socket, threading» (в руби есть системные константы).
Хочешь поработать с файлами (С ФАЙЛАМИ, КАРЛ!) - подключай «fcntl» (в руби класс File доступен по умолчанию).
Хочешь поработать со структурами - подключай «struct» и «binascii» (в руби все методы для работы с данными входят в базовый класс String).
Т.е. если ты в руби хочешь сделать какое-то типовое действие, то ты в 90% случаев берёшь базовый класс и получаешь весь инструментарий, удобный, работающий в традиции Ruby.
А если ты в питоне хочешь сделать какое-то типовое действие, то всегда должен найти какой-то сторонний модуль, разобраться каким образом на этот раз программер извратнулся, чтобы реализовать логику интерфейса (набор классов и методов), как туда параметры подаются.
И вот это постоянная анальная возьня в питоне (особенно, после руби) меня просто за$бала. Если бы не stackoverflow с большим кол-вом примеров, то я бы наверное от питона вобще отказался. А так он берёт популярностью. Ну и скорость мне понравилась, вроде как чуть шустрее руби.