lisp4web

10
Lisp для Веб Всеволод Дёмкин [email protected]

Upload: blogcamp-organization-committee

Post on 06-Feb-2015

1.231 views

Category:

Self Improvement


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Lisp4web

Lisp для Веб

Всеволод Дёмкин[email protected]

Page 2: Lisp4web

— — Почему бы и нет?Почему бы и нет?

— Почему Lisp?

Page 3: Lisp4web

ХарактеристикиCommon Lisp

высокоуровневыйвысокоуровневый мультипарадигменныймультипарадигменный динамическийдинамический префиксный полностью скобочный префиксный полностью скобочный

синтаксис, code is dataсинтаксис, code is data

Page 4: Lisp4web

Уникальные технологииCommon Lisp

макросистемамакросистема мета-объектный протоколмета-объектный протокол сигнальный протоколсигнальный протокол протокол множественных протокол множественных

возвращаемых возвращаемых значенийзначений

Page 5: Lisp4web

(defun count-total-size (file) "Count the size of files and total number of lines in the output of `ls -l`, written to a FILE"

(with-open-file (in file) (let ((num-lines 0) (size 0)) (do ((line (read-line in nil) (read-line in nil))) ((null line) (close in)) (incf size (parse-integer

(cl-ppcre:scan-to-strings "\\b \\d+" line) :junk-allowed t))

(incf num-lines)) (values size num-lines)))

Пример программына Common Lisp

Page 6: Lisp4web

PHPPHP+ модуль Apache+ shared nothing+ “есть везде”, “все знают” и “просто работает”

+ специально для Web+ специально для Web+ достаточно быстрый (?)+ достаточно быстрый (?) – – специально для Webспециально для Web – – состояние нужно хранить вне языковой состояние нужно хранить вне языковой средысреды

– – примитивныйпримитивный

PHP — даже не совсем язык, а скорее PHP — даже не совсем язык, а скорее библиотека...библиотека...

Lisp vs PHP

Page 7: Lisp4web

C# & ASP.Net, JavaC# & ASP.Net, Java

Ruby, PythonRuby, Python

Lisp & высокоуровневыединамические языки

Page 8: Lisp4web

Чего мы можем добитьсяс Common Lisp?

Диспетчиризация HTTP-запросов с помощью замыканий

Использование DSL'ей для генерации HTML, JavaScript, SQL

Неявный pooling соединений с БД Новые подходы к тестированию

Page 9: Lisp4web

КонкретноеКонкретное vs vs абстрактноеабстрактное

Lisp для тех, кто любит Lisp для тех, кто любит программированиепрограммирование

Lisp для тех, кто хочет решать Lisp для тех, кто хочет решать уникальные уникальные проблемыпроблемы

Lisp для Lisp для предпринимателейпредпринимателей

Where's the catch?

Page 10: Lisp4web

Спасибо за внимание!

Lisp для ВебВсеволод Дёмкин

[email protected]