LINUX.ORG.RU

Python 3 может спасти Python

 


0

4

https://medium.com/p/2a7af4788b10

Ин шорт: сделайте Python 3 соблазнительным. Уберите GIL, добавьте каналы, как в Go, ускорьте интерпретатор, добавьте типы, перетрясите и упорядочьте стандартную библиотеку, переделайте REPL и т.д. Не бойтесь ломать вещи. И Python будет спасён.

А что бы вы добавили (удалили, переделали) в Python 3, господа?



Последнее исправление: discordia (всего исправлений: 1)

А что бы вы добавили (удалили, переделали) в Python 3, господа?

Я бы закрыл к нему доступ тем, кто считает себя самым умным.

feofil
()

Каждый суслик агроном, ёпта.

anonymous
()

Ввести полноценные анонимные функции.

Лямбды не канают, ибо их для сложных вычислений не применишь.

И обычные функции тоже не есть хорошо, поскольку они «мусорят» в пространстве имен.

Сейчас, фактически, сделать анонимный колбак, так как это делается в яваскрипте не представляется возможным, и это расстраивает

k0valenk0_igor ★★★
()
Ответ на: комментарий от hateyoufeel

наверное проблема в том, что реализации тех-кто-пытался этого чуть более чем убоги, нет нормальной команды/разработчиков как с тем же V8 который запилили по скорости в небеса просто, очевидно что если ты с пацанами соберешься переписать, то получится 1/100 от того что уже есть под питон

umren ★★★★★
()
Ответ на: комментарий от anonymous

чё бы он умирал? даже если вообще остановится в развитии - на наш век хватит, и другим ещё достанется.

feofil
()
Ответ на: комментарий от k0valenk0_igor

обычные функции тоже не есть хорошо, поскольку они «мусорят» в пространстве имен.

O_O а как по-другому? Это же first-class citizen, оно должно быть доступно в пространстве имён.

true_admin ★★★★★
()

Станическая типизация (в Python!) не нужна.

Нужно убрать только GIL и будет идеально. Ну может еще что-то на подобии case class из Scala добавил. Иногда класс - просто value c данными. Устаешь копипастить поля из аргументов конструктора в обьект

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Станическая типизация (в Python!) не нужна.

Сатаническая штоле? %) Статическая типихзация в Python была бы очень полезна.

Ну может еще что-то на подобии case class из Scala добавил. Иногда класс - просто value c данными. Устаешь копипастить поля из аргументов конструктора в обьект

Зачем ради такой ерунды case class? namedtuple хватит.

tailgunner ★★★★★
()
Ответ на: комментарий от true_admin

И что из того? В яваскрипте функция тоже объект первого класса, и однако там возможны конструкции типа:

require([
  "dojo/_base/Array"
], function(array){
  var a = [1, 2, 3];
  array.forEach(a, function(item){
    console.debug(item);
  });
});

Заметьте, что функция-обработчик, не имеет имени в принципе. Она анонимна, и следовательно пространство имен не захламляется.

k0valenk0_igor ★★★
()

добавьте каналы, как в Go

Как будто это очень хорошая идея.

Debasher ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

Я тебя понял.

Это следствие того что питон не expression-oriented и синтаксис не расчитан на такое. Соглашусь что это его большая беда.

true_admin ★★★★★
()
Ответ на: комментарий от tailgunner

Одна из главных проблем - коллизии наименования таких функций.

Кроме того, функция определенная в пакете на его уровне создается, в смысле как объект, на момент импорта пакета, и нет никакой возможности создать ее в рантайме на этом уровне. В некоторых случаях это ведет к дикому усложнению кода и тяжким попыткам сделать вменяемый лайаут пакетов приложения.

k0valenk0_igor ★★★
()
Ответ на: комментарий от k0valenk0_igor

А в чем проблема с «захламлением» локальной области видимости?

Одна из главных проблем - коллизии наименования таких функций.

В _локальной_ области видимости? O_O

Кроме того, функция определенная в пакете на его уровне создается, в смысле как объект, на момент импорта пакета, и нет никакой возможности создать ее в рантайме на этом уровне.

Осталось понять, зачем ее создавать на уровне пакета.

tailgunner ★★★★★
()
Ответ на: комментарий от hateyoufeel

А в чём собственно проблема скомпилировать пистон в нативный код?

Потому что это дисциплина специальной олимпиады. Кто этого не понимает — кандидат в спортсмены.

Кстати, питон уже лет пять компилируется в нативный код.

anonymous
()
Ответ на: комментарий от k0valenk0_igor

Кроме того, функция определенная в пакете на его уровне создается, в смысле как объект, на момент импорта пакета, и нет никакой возможности создать ее в рантайме на этом уровне. В некоторых случаях это ведет к дикому усложнению кода и тяжким попыткам сделать вменяемый лайаут пакетов приложения.

Глупости. Условное импортирование ничего не усложняет, наоборот, делает структуру понятее и код проще. А твоя JS лапша из анонимных ф-ий и выглядит как гогно и значительно ухудшает читабельность

mashina ★★★★★
()

Язык без скобочек должен умереть))

ritsufag ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

Я думаю, что перевод Гвидо в какой-то мере ответит на ваши вопросы

Нет. Он вообще не о захламлении пространства имен.

tailgunner ★★★★★
()
Ответ на: комментарий от blackst0ne

Добавьте скобки и уберите это недоразумение под именем self в обязательных параметрах функций.

Ruby получится.

x_hash
()
Ответ на: комментарий от DeadEye

man 2to3

Где-то я читал, что сами создатели Python объявили создание инструментов для миграции ошибкой...

x_hash
()
Ответ на: комментарий от vurdalak

[code](if (> i 0) (...))[/code]

У этого синтаксиса есть один недостаток: без прохождения специального обучения совсем не понятно, что за абракадабра тут написана

P.S. А после обучения шаблоны C++ становятся элементарщиной ибо там сплошная функциональщина. Это пока единственная польза от ML, которую я обнаружил.

x_hash
()

Не бойтесь ломать вещи. И Python будет спасён.

Спасен переходом на Ruby, аллилуйя!

iVS ★★★★★
()
Ответ на: комментарий от blackst0ne

Добавьте скобки и уберите это недоразумение под именем self в обязательных параметрах функций

Это твое личное, малокомпетентное, мнение.

anonymous
()
Ответ на: комментарий от x_hash

У этого синтаксиса есть один недостаток: без прохождения специального обучения совсем не понятно, что за абракадабра тут написана

Как раз тут всё идеально понятно, нужно только знать в какую сторону читать: слева направо или справа налево. А вот в других синтаксисах надо знать сам синтаксис, потому что есть команды, есть операторы, у всех синтаксис особенный и разные скобочки.

P.S. Ни разу не лиспер, никакого обучения не проходил, но считаю такой синтаксис идеальным.

vurdalak ★★★★★
()
Ответ на: комментарий от x_hash


Добавьте скобки и уберите это недоразумение под именем self в обязательных параметрах функций.



Ruby получится.


Ну так это же и хорошо.

blackst0ne ★★★★★
()
Ответ на: комментарий от vertexua

Иногда класс - просто value c данными. Устаешь копипастить поля из аргументов конструктора в обьект

В чем проблема сделать

class foo(object):
    def __init__(self, a, b, c=1, d=2):
        vars(self).update(locals())

bar = foo(3, 2, c=1, d=0)
print vars(bar)
? Если я правильно понял.

Virtuos86 ★★★★★
()

Убрать из гвидобейсика быдлокодеров и он сам сдохнет.

anonymous
()

А что бы вы удалили в Python 3, господа?

несвободное название

next_time ★★★★★
()

Народ тупо хочет JavaScript без асинхронности, но компилируемый, и чтобы «летал и фыр-фыр-фыр», чтобы не пришлось пугаться всяких GIL и прочего, ибо это непонятные названия, устрашающего вида...

menangen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.