저는 보통 PHP, Ruby 또는 Perl로 웹 앱을 작성합니다. 저는 Scheme 연구를 시작하고 있으며이 언어로 웹 프로젝트를 시도하고 싶습니다. 그러나 이것에 가장 적합한 환경이 무엇인지 찾을 수 없습니다.
다음 기능을 찾고 있습니다.
- 요청 매개 변수를 가져 오는 간단한 방법 (예 : get-get #key, get-post #key, get-cookie #key).
- MySQL 액세스.
- HTML 양식 생성기, 처리, 유효성 검사기 등
- 사용자 입력 데이터 필터링을위한 도우미 (htmlentities, 쿼리 입력을위한 이스케이프 변수 등)
- 풀솜.
- 그리고 GNU / Linux 친화적입니다.
따라서 모든 답변에 미리 감사드립니다.
답변
답변
Clojure를 살펴볼 수 있습니다 .
Clojure는 Java Virtual Machine을 대상으로하는 동적 프로그래밍 언어입니다. […] Clojure는 선택적 유형 힌트 및 유형 추론을 통해 Java 프레임 워크에 쉽게 액세스 할 수 있도록하여 Java 호출이 리플렉션을 피할 수 있도록합니다.
Clojure는 Lisp의 방언이며 데이터로서의 코드 철학과 강력한 매크로 시스템을 Lisp와 공유합니다.
Clojure에서는 Java와의 상호 운용이 간단하므로 필요에 따라 기존 Java 라이브러리를 재사용 할 수 있습니다. 웹 개발에 유용한 정보가 많이 있다고 확신합니다.
clojure-contrib 에는 SQL API가 있으며, ClojureQL 도있어 DB 액세스 요구 사항을 충족해야합니다.
Compojure 라는 Clojure 용 웹 프레임 워크가 개발 중입니다. 다른 것도있을 수 있습니다.
Clojure의 소스는 EPL 아래 github 에서 사용할 수 있습니다 . Linux에서 실행하는 것은 쉽습니다. git repos를 복제하고 .ant
답변
guile scheme으로 웹 개발을 할 수 있습니다 . 표준 라이브러리에는 html 생성, 조작 및 구문 분석에 매우 유용한 (sxml simple) 모듈이 포함되어 있습니다. 교활-WWW의 라이브러리는 HTTP에 대한 지원, CGI 등을 추가 교활-DBI 라이브러리는 MySQL을 사용하고 다른 데이터베이스에 대한 액세스를 제공합니다. 이러한 빌딩 블록을 사용하면 간단한 cgi 스크립트에서 자체 HTTP 서버가있는 웹 애플리케이션에 이르기까지 모든 것을 구현할 수 있습니다.
답변
답변
나는 주제에 대해 꽤 광범위한 튜토리얼 / 전자 책을 썼습니다 : http://lispwebtales.ppenev.com/
요약 :
- Common Lisp를 사용합니다.
- Restas 프레임 워크를 사용합니다.
- DB 액세스, 인증, HTML 생성 및 템플릿을 포함한 거의 대부분의 기본 웹 개발에 대한 예제가 있습니다.
- Restas 문서는 거의 구식이기 때문에 내 튜토리얼은 최신 문서에 가장 가까운 것입니다.
- 플러그인 가능한 인터페이스를 작성할 수있는 정책과 같은 몇 가지 고급 기능을 보여줍니다. 인증 프레임 워크와 같은 재사용 가능한 구성 요소를 작성합니다.
- lisp 설치, ASDF 빌드 시스템 및 quicklisp 패키지 관리자 설정 등을 다룹니다.
- 그것은 무료 온라인이고 내가 그것을 끝내 자마자 leanpub에서도 무료입니다. 소스는 CC 라이선스에 따라 https://github.com/pvlpenev/lispwebtales 에 있으며 소스 코드는 MIT입니다. 아직 모든 것이 게시되지는 않았으며 수정하는 중입니다.
답변
답변
Common Lisp에 관심이 있고 weblocks 경로를 따르지 않으려면 다음 설정을 권장합니다.
- Linux에서 SBCL을 사용하지만 다중 스레드 지원
- Hunchentoot를 웹 서버로 사용하여 세션 및 쿠키를 포함하여 필요한 모든 서버 처리를 제공합니다.
- ClSql을 사용하여 MySql과 통신하면 충분한 문서가 있으며 매우 안정적입니다.
- HTMl 세대의 경우 Dr Edi Weitz Cl-WHO (매우 잘 문서화 됨)를 사용할 수 있습니다.
위의 모든 내용은 GPL 또는 유사한 라이선스 (LISP 프로그램에서 더 많이 작동하는 라이선스)에 따릅니다.