Уведомления

Группа в Telegram: @pythonsu

#1 Март 25, 2009 09:20:28

Dmitrey
От:
Зарегистрирован: 2007-10-20
Сообщения: 32
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

Massachusetts Institute of Technology, провідний технічний ВНЗ США, починає використовувати Python замість Scheme
лінк
коментарі



Офлайн

#2 Март 27, 2009 10:13:50

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

1) Сассман ничего не говорил о том, что новая программа сможет охватить все то, что охватывала старая. Например, питон не умеет продолжений (continuations), нет вменяемых анонимных функций, нет поддержки хвостовой рекурсии. Я не знаю, как они заменят scheme.
2) Питон уже используется в МИТ на курсе робототехники, о чем Сассман и упомянул.
3) И еще - основной посыл SICP, что можно сделать много используя минимум базовых примитивов. Как сюда ложится питон я не очень представляю.

И наконец. ЛИСП - концептуальнейшая вещь, без которой никак в Computer Science. Так что никуда он из MIT не денется. И в любом сколько-нибудь приличном ВУЗ-е ЛИСП преподавать будут. А все-таки жаль, что 6.001 уходит от нас.



Отредактировано (Март 27, 2009 10:57:47)

Офлайн

#3 Март 27, 2009 11:30:54

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

ыыы….
продолжения - хм… а что, yield не подходит?
хвостовая рекурсия - опять же генераторы творят чудеса (но конечноэто уже не хвостовая рекурсия, но, как минимум замена)
нету крутых лямбд - ну и что, можно делать не анонимные + самое главное это наличие замыканий, а они есть.

Я конечно не спрорю, лисп классная штука, но на нем нельзя сделать чегото принципиально невозможного на питоне, другое дело сколько придется переписывать и на сколько разрастется код. Это я к тому, то бывают ограничения, которые делают невозможным использование какого-либо языка (ну там например: синтаксис основанный на скобках).

Но это все мое личное мнение.



Офлайн

#4 Март 27, 2009 11:54:54

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

cybergrind
продолжения - хм… а что, yield не подходит?
Подходит. Не подумал.
cybergrind
хвостовая рекурсия
генераторы это уловка вместо прямого решения.
cybergrind
нету крутых лямбд - ну и что, можно делать не анонимные
Можно, но веселее с лямбдами. Я их очень много использую и хотелось бы нормальных а не того обрубка, который есть. Люблю, знаете-ли, прямые решения.

cybergrind
но на нем нельзя сделать чегото принципиально невозможного на питоне,
Макросов хочу, без них сложно язык под свои нужды подганять. Опять же в ЛИСПе все напрямую в АСТ пишется, что самое то для всяких eDSL.



Отредактировано (Март 27, 2009 11:57:41)

Офлайн

#5 Март 27, 2009 12:00:25

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

balu
Макросов хочу, без них сложно язык под свои нужды подганять. Опять же в ЛИСПе все напрямую в АСТ пишется, что самое то для всяких eDSL.
Наткнулся на такое EasyExtend, сам не пробовал.



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

Офлайн

#6 Март 27, 2009 12:17:18

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

PooH
Наткнулся на такое EasyExtend, сам не пробовал.
Посмотрю, но это не совсем то. Плюс есть lexx и yakk. Но все это стороннее и неудобное, а хотелось бы родного. Плюс я там не прочитал ничего про переопределение самого языка. И тормоз этот EasyExtend. Автор сам признает.

И совсем забыл. В Python нет REPL.



Офлайн

#7 Март 27, 2009 15:17:27

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

И совсем забыл. В Python нет REPL.
Как это нет???

Отредактировано (Март 27, 2009 15:18:40)

Офлайн

#8 Март 27, 2009 15:45:32

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

balu
Макросов хочу, без них сложно язык под свои нужды подганять. Опять же в ЛИСПе все напрямую в АСТ пишется
мы можем манипулировать объектами.
базируясь на манипуляции объектами мы можем создавать свои объекты (да теже фабрики классов).
что же такого я не могу сделать умея это? написать программу которая мне напишет программу? У меня есть программа, в которой я динамически создаю классы (модели и таблицы для алхимии), а потом просто запускаю полученную кашу, и оно работает.
Фактически тут динамически создаются классы, а т.к. типичная моя программа состоит из классов, то фактически программа пишет программу.

Я не спорю что возможности у питона по манипуляции с объектами может не такие как у лиспа с макросами, но принципиально нереализуемых вещей изза этого я не вижу.
Добавлено: Хотя нет… вижу: я не могу модифицировать синтаксис самого питона. Но изза того что я не смогу использовать @@ или что-нибудь в таком роде, это не помешает использовать эту же фичу используя скобки =)

balu
И совсем забыл. В Python нет REPL.
REPL - не знаю что ты имел в виду, но посмотри http://ru.wikipedia.org/wiki/REPL, тут пишут что в питоне это есть…


p.s. не хочу раздувать спор по поводу того что лучше (мне самому нравиться лисп, как язык). но на питоне все можно реализовать не чуть не хуже, тут скорее вопрос в мастерстве тех кто будет реализовывать (ктото это напишет на лиспе лучше, а на питоне будет хез что, а кто-то на питоне сделает не хуже чем на лиспе… или одинаково плохо).
сори, чтото вышел пост в стиле “смотрите какой я умный и соглашайтесь со мной”. не специально ;) просто задела фраза что о том, что схему нельзя заменить питоном.



Отредактировано (Март 27, 2009 15:48:28)

Офлайн

#9 Март 27, 2009 15:52:40

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

и вроде отсутствие хвостовой рекурсии и оптимизации хвостовой рекурсии - это тоже разные вещи.



Офлайн

#10 Март 27, 2009 16:39:56

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

MIT переходит со Scheme на Python

REPL - тут читать http://pcl.catap.ru/doku.php?id=pcl:%D1%82%D1%83%D1%80%D0%B2repl Это когда компилируешь по одной функции, строя, таким образом, программу. Таким образом можно постоянно работать в интерпретаторе, почти не выходя из лиспа. Профит ;)
Про макросы и прочие синтаксические деревья - они позволяют делать DSL и на них уже решать саму задачу. Генерация объектов - это, конечно, хорошо. Но питон только для себя в свое АСТ генерирует. А если не только питон-код на выходе? Например код на питоне генерируется лиспом ;)
Про рекурсию - питон ее вообще не держит. Только до определенного числа итераций. Может щас что-то поменялось.

Я тут, кстати, на питон не наезжаю. Я все свои инструменты могу покритиковать. Например, тот же Лисп - есть за что.
UPD. Про рекурсию - не, не поменялось. Не держит. для сравнения:
На питоне:

def rec(count):
if count==0: return count
count -= 1
try: return rec(count)
except: print "count", count

print rec(10000)

count 9001
И на Scheme, можно попробовать тут http://sisc-scheme.org/sisc-online.php , только жаба нужна.
#;> (define (rec count)
(if (= count 0) count
(rec (- count 1))))
#;> (rec 100)
0
#;> (rec 10000)
0
#;> (rec 100000000)
0
#;>
Кстати, вычисление прямо в теле параметра тоже зело полезная вещь



Отредактировано (Март 27, 2009 17:21:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version