Но что-то расплодилось разговоров о том, какой PHP убогий. А так же все, кто только начал разбираться с питоном просто усираются, какой это суперправильный и ниибацо верный язык.
Поэтому добавлю к этому немного говнеца.
1. Нету var
В JS есть var для четкого указания в каком контексте определена переменная.
В PHP нет, но там и контексты особо не отсвечивают.
В питоне и контексты важны и var'а нет.
Попробуем сделать простейшее замыкание:
def makeClosure(value):
def getValue():
return value
def setValue(newValue):
value = newValue
return {"get": getValue, "set": setValue}
v = makeClosure(10)
print v["get"]() # 10
v["set"](5)
print v["get"]() # хуй там - опять 10
getValue() разделяет переменную value из объемлющего контекста, а setValue() создаёт переменную в локальном.
Пиздец.
2. ++
Схуя я могу сделать
v += 1
но не могу
v++
?
3. len(), str()
Моё имхо, гораздо правильнее и ООПешнее вызывать методы:
len = obj.length()
print obj.toString()
Чем использовать встроенные глобальный функции:
len(obj)
str(obj)
Тем более, что они всё равно являются надстройкой над "магическими" методами объектов.
Тем более, что они занимают мои любимые краткие имена переменных.
4. Регулярки
Почему нахуй не усравшиеся большинству населения комплексные числа являются встроенным типом, а регулярки нет?
Почему в таком уебанском по мнению многих языке, как JS я могу работать с ними совершенно прозрачно:
s.replace("a", "b");
s.replace(/[a-z]/, "b");
А в охуенном питоне я должен тащить какой-то модуль re?
5. Unicode
3-й питон обещает нам счастливую жизнь в этом плане, но пока приходится жестко ебаться.
6. Модули
Хочу создать маленький классик "fuck" обернутый в модуль (очевидно тоже "fuck").
Теперь я должен к нему обращаться, как fuck.fuck или делать злоебучий import from
Определение одного модуля не разбить на несколько файлов.
Не подключить произвольный файл.
7. Анонимные функции
Хочу полноценные анонимные функции в дополнение к ущербным лямдам.
8. Магические методы
Имхо, в ущербном PHP с его ущербным использованием интерфейсов, перегрузка операций сделана чуть правильнее. Хоть и в убогом масштабе.
Все эти __attr__ и т.п. забавляют, но для столь правильного языка, имхо, слишком много магии.
9. И ещё куча мелочей
Как собрать все элементы списка в одну строку?
Так?
list.join("")
Хуй! Так:
"".join(list)
—
По теме (добавил adw0rd):