웹 개발 배우기 : Django vs Node vs Rails vs Others [닫힌]


80

저는 Java와 Python (일부 Django 포함)과 Ruby (Rails 없음) 및 Node.js를 조금 알고 있으며 아마도 제가 알지 못하는 것이 더있을 것입니다.

나는 웹 개발과 전체 스택을 배우기 시작할 계획이지만 주위를 둘러 보면 많은 옵션이 보이고 이것은 나를 혼란스럽게 만듭니다. 다음 매개 변수를 기반으로 한 제안이 필요합니다.

  1. 배우기 쉬움
  2. 구축 및 반복 용이
  3. 배포 용이성 (무료 및 저렴한 호스팅 솔루션 등)
  4. 인기 있는

조언을 좀 던져주세요

감사합니다


Google의 GWT는 어떻습니까? 아니면 그루비 성배?
Angel O'Sphere 2011-08-18

답변:


82

Ruby on Rails :

배우기 쉬운가요? - 예 -에 뛰어난 문서 guides.rubyonrails.org 과의 좋은 튜토리얼 railstutorial.org .

쉽게 만들고 반복 할 수 있습니까? -물론-레일은 민첩하고 반복적 인 개발에 매우 ​​적합합니다.

배포가 쉽습니까? -배포하려면 (적어도 작은 앱과 학습하는 동안) heroku.com -git 기반 푸시를 사용하는 것보다 쉬울 수 없으며 무료입니다.

인기 -대인기!

장고

배우기 쉬운가요? -Rails 와 마찬가지로 Django는 docs.djangoproject.com/en/1.3/에 훌륭한 문서를 가지고 있습니다. 아마도 약간 더 가파른 학습 곡선 일 것입니다 (순전히 여기에 의견이 있지만 레일은 "준비된"경향이있는 반면 django는 개발에 들어가기 전에 약간의 구성이 필요합니다).

쉽게 만들고 반복 할 수 있습니까? -다시 Rails와 마찬가지로 일단 설치하고 실행하면 반복하기가 매우 쉽습니다.

배포가 쉽습니까? -Rails만큼 쉽지는 않습니다. heroku 등가물 gondor.io , djangozoom.com , stable.io가 있지만 비공개 베타 버전 인 경향이 있습니다. 즉, gondor.io 초대를받는 데 문제가 없었 습니다 .

인기 -인기가 있지만 사용자 커뮤니티는 Rails 군중보다 약간 적습니다.

마디

배우기 쉬운가요? -음, 예, 아니오, 빠른 hello world 서버를 쉽게 결합 할 수 있지만 풀 스케일 앱을 원한다면 더 까다 롭습니다. 나는 첫 번째 인스턴스에서 멀리 떨어져있을 것입니다. 새롭고 빠르게 진화하고 있습니다. 또한 Node 자체는 Rails 또는 Django와 비교할 수 없습니다. 후자의 두 가지는 프레임 워크 인 반면 Node는 무언가를 개발하는 데 사용할 수있는 베어 본 API 세트에 가깝기 때문입니다. Rails 및 Django와 더 일치 하는 expressjs.com 과 같은 프레임 워크를 선택할 수 있습니다 . 나는 그것을 사용하지 않았기 때문에 정말로 당신에게 의견을 줄 수 없습니다.

쉽게 만들고 반복 할 수 있습니까? -구축하기 쉬움-예, 반복하기 쉬움-예.

배포가 쉽습니까? -no.de로 이동하여 스마트 머신을 신청할 수 있습니다. 현재 무료이며 배포하기 쉽습니다.-git 기반.

인기 -증가하고 있습니다.


13
RoR에 대한 귀하의 처음 3 점에 동의합니다. 불행히도 마지막 요점은 사실이 아닙니다. 아마도 부끄러운 일이지만 RoR은 실제로 인기가 없습니다. Tiobe를 보면 Ruby의 시장 점유율은 1.3 %에 불과합니다. 이는 RoR이 훨씬 적다는 것을 의미합니다. 레일에 대해 제공되는 일자리를보십시오. 하나를 찾기가 매우 어렵습니다.
Mike Braun

4
충분히 공평한 마이크-아마도 온라인 커뮤니티는 그것이 대중적이라는 내 생각에 충분한 소음을 내고있을 것입니다. :)
slapthelownote

2
정말 모르겠지만 자바 웹 프레임 워크로 태그가 지정된 모든 질문을 결합하면 SO에 대한 Rails 질문의 수에 거의 도달하지 못할 것입니다. 이는 1.3 %의 시장 점유율입니다.
Filip Dupanović 2011-08-18

19
Heroku는 이제 Django를 지원합니다.
Ben Racine 2012

5
Rails에 대한 SO 질문이 더 많다는 사실은 실제 배포 된 애플리케이션에서 프레임 워크의 인기보다 더 많이 배우려는 프로그래머 유형의 지표 일 수 있습니다. newbs의 무리는 질문에 한 무리의 것
A_funs

44

Node.js를 탐색하는 데 약간의 시간을 보낸 Django 개발자의 몇 가지 메모 :

  • Node.js의 비동기 프로그래밍 접근 방식은 개념적으로 더 어렵습니다. Django 또는 Rails에서 유사한 접근 방식을 취할 수 있지만 그렇게하는 것은 일반적이지 않습니다.

  • Node.js는 정말, 정말 빠릅니다. 그러나 그 이유 중 일부는 OOB를 많이 포함하지 않기 때문입니다.

  • 노드 세계는 지금 ​​매우 조각화되어 있으며 수십 개의 노드 라이브러리, 솔루션 및 프레임 워크가 모두 관심을 끌기 위해 경쟁하고 있습니다. Express는 현재 Node에서 가장 인기있는 프레임 워크 인 것 같지만, 무엇이 흔들리는 지보기 위해 대기중인 게임입니다. Django와 Rails는 모든 것을 직접 붙일 필요없이 고급 애플리케이션을 만드는 데 필요한 모든 비트를 이미 갖추고 있습니다.

  • 현재 Node.js의 가장 인기있는 프레임 워크는 Express이지만 Express에는 데이터베이스에 연결하는 방법도 포함되어 있지 않습니다. 당신은 그것을 추가해야합니다. ORM도 포함되어 있지 않습니다. 추가해야합니다. 일부 Node ORM을 살펴 보았지만 Django만큼 완벽하거나 정교 해 보이지는 않았습니다.

  • Django는 모든 부분이 원활하게 결합되는 ( "Mac 방식") 완벽하고 응집력있는 종단 간 솔루션입니다. Node.js는 자체 프레임 워크, 자체 ORM, 자체 db 드라이버, 자체 URL 라우팅 시스템 등 ( "유닉스 방식")을 선택하는 기준선입니다.

  • Unix 방식에는 장점이 있지만 이와 같은 IMO 시스템은 시작하기가 더 어렵고 유지 관리가 더 어렵습니다. 부품이 예상 한대로 반드시 서로 대화하는 것은 아니며 전체 프로젝트가 한 번에 업그레이드되지도 않습니다. Mac 소프트웨어 / 하드웨어 연속체 및 Django / Rails와 같은 엔드-투-엔드 시스템은 생산성 측면에서 큰 이점을 제공합니다. 비교를 위해 Django와 비교하여 Python의 TurboGears (연결이 끊어진 부분)의 상대적인 모호함을 참고하십시오. 장고는 응집력 있고 일관성이 있기 때문에 TurboGears의 점심을 먹었습니다. 생산성이 중요하다면 더 성숙한 프레임 워크에서 더 생산적으로 작업 할 수 있습니다. 이 비전을 실현하는 Node.js 프레임 워크는 언젠가는 도착할 것이지만 아직 존재하지 않습니다.

  • Express는 Django 또는 Rails가 제공하는 유용한 명령 줄 도구, 데이터 API 등을 제공하지 않습니다.

  • Node.js 프레임 워크에는 Django 개발자에게 엄청난 생산성 승리 인 Django 관리자와 같은 것이 포함되어 있지 않습니다.

  • 순전히 내 의견이지만 Python 은 Javascript보다 더 우아하게 느껴집니다 . 코드가 더 간결하고 읽기 쉽습니다. 하지만 큰 장애물은 아니지만 선호하는 것입니다.

전반적으로 Django는 "배터리가 포함 된"플랫폼처럼 느껴지고 Node는 뒤죽박죽 판매처럼 느껴집니다.

Node / Express는 정말 젊습니다. 흥미로운 방식으로 엄청난 가능성을 보여 주지만 Node.js 프레임 워크가 성숙한 프레임 워크와 경쟁적으로 느껴지는 데 얼마나 걸릴까요? 모르겠어요.


3
CoffeeScript로. 코드는 Python만큼 더 간결하고 읽기
쉽습니다

Express 메인 페이지의 "Express는 Node.js를위한 빠르고 의견이없는 미니멀 한 웹 프레임 워크입니다."

27

직업 기회 측면에서 Rails 나 Django를 선택하면 좋은 직업을 얻을 수있을 것입니다. 아직 충분히 크지 않기 때문에 현재 Node.js 개발자에게 비용을 지불하는 회사는 소수에 불과합니다.

스타트 업 기회 측면에서 Rails는 계속됩니다. 대부분의 재미 있고 흥미로운 스타트 업 기회는 Ruby on Rails의 지원을받습니다. Django를 사용하는 몇 가지를 보았습니다. 그러나 Groupon 및 Living Social과 같은 회사는 모두 주로 Rails에 작성됩니다. Ruby는 Github 에서도 Python보다 거의 두 배나 인기 가 있습니다. 그리고이 Quora 질문이 있습니다.

미래의 관점에서 보면 Node.js가 그 길입니다. HTML 템플릿은 어쨌든 거의 전적으로 자바 스크립트 ( jQuery.tmpl ) 로 작성되기 시작 했습니다. 따라서 하나의 언어 인 자바 스크립트 만 마스터하면되므로 기술 세트가 훨씬 더 강력 해집니다. 그리고 node.js는 실제로 실시간 웹 앱에 적합합니다 . 또한 원래 100 % 루비였던 Heroku와 같은 클라우드 배포 플랫폼도 Node.js를 지원하기 시작했습니다 . dotcloud 와 같이 모든 언어에 대해 수행하는 다른 사람들도 있습니다.

Node.js를 Ruby on Rails만큼 완벽하게 기능하도록 만들기 위해 수행해야 할 작업이 많이 있지만 (현재 Rails는 여전히 표준입니다) 기본은 모두 있습니다.

최첨단을 원한다면 Node.js. 네가 원한다면

  1. 완화 하는 배우
  2. 손쉬운 구축 및 반복
  3. 배포 용이성 (무료 및 저렴한 호스팅 솔루션 등)
  4. 인기 있는

Ruby on Rails.


5

인기도 (포인트 4)) : JSF (Java Server Faces) 기술 . JSF 1.2에서 현재 JSF 2.1까지, 이제 각각 Java EE 5 및 Java EE 6과 일치합니다. 이는 이제 Java EE 표준임을 의미합니다. 또한 이점은 완전히 Java EE를 준수하는 (5 이상) 웹 애플리케이션 서버 (예 : JBoss AS 5 이상, GlassFish, WebSphere AS, Oracle AS 등)가 JSF를 실행할 수 있다는 것을 의미합니다 (구성 필요 없음, 그래서 점 c))를 해결합니다.

CoreServlets 와 같은 JSF에 대한 다양한 튜토리얼이 있습니다 . BalusC는 간단한 JSF 웹 애플리케이션 을 처음부터 설정하고 작성하는 방법 에 대한 간단하고 훌륭한 튜토리얼을 작성했습니다 .


3
난 전적으로 동의합니다! 요즘 JSF는 매우 훌륭합니다 (이전 버전은 그다지 좋지 않았습니다). 귀하의 예에 추가; JSF는 Java EE 웹 프로필의 일부이기도하므로 Resin과 같은 초경량 서버는 즉시 JSF를 지원합니다.
Mike Braun

1
추신 BalusC의 블로그와 기사는 절대적으로 훌륭합니다! :)
Mike Braun

1

JSF 2.x는 요즘 인기가 높아지고 있으며 , 레일과 같은 JSF 생태계에서 신속한 애플리케이션 개발이 필요한 경우 프라임 페이스 와 결합 된 UI 중심 프레임 워크가 더 많이 사용 됩니다.

http://www.springfuse.com/

http://www.myeclipseide.com/documentation/quickstarts/ME4STutorialScaffoldingJSF/scaffoldingjsfarticle.html

JSF 애드온이있는 Spring Roo http://java.dzone.com/articles/jsf-20-spring-roo

1)ease to learn (http://www.vogella.com/articles/JavaServerFaces/article.html)

2)ease to build and iterate

3)ease to deploy (like free and cheap hosting solutions) 

   a) http://www.mkyong.com/google-app-engine/google-app-engine-jsf-2-example/
   b) http://blog.jelastic.com/2012/06/11/how-to-deploy-primefaces-applications-into-jelastic-cloud/

4)popular (http://www.primefaces.org/whouses.html)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.