이 글에서는 Python과 Ruby의 유사점과 차이점, 각각의 장점과 단점 등을 비교하고 Python과 Ruby의 리소스와 학습 곡선을 보여줍니다. 이 두 가지 사이를 망설이는 친구들에게 매우 적합합니다. 좋아요
최근에 백엔드 언어를 배우려고 고민하다가, 같은 문제를 겪고 있는 분들께 도움이 되었으면 좋겠습니다.
1. 유사점과 차이점 비교 선택
1. Python과 Ruby의 유사점:
• 둘 다 단순한 구문을 강조하고 보다 일반적인 표현을 사용합니다. Python은 들여쓰기, Ruby는 기본형 표현식입니다. 모든 기호가 크게 감소되었습니다.
•모두 동적 데이터 유형입니다. 모두 풍부한 데이터 구조를 가지고 있습니다.
•두 가지 모두 C 언어 확장 기능을 갖추고 있으며 이식성이 뛰어나 Perl의 이식성보다 우수합니다. 임베디드 언어로도 사용할 수 있습니다.
•둘 다 객체 지향 언어이며 대규모 프로젝트의 개발 도구로 사용할 수 있습니다.
•모두 풍부한 라이브러리 지원을 제공합니다.
•또한 일부 도구가 GNU 세계에 속한다는 점을 제외하면 가장 관대한 저작권 라이센스를 가지고 있습니다.
•둘 다 Lisp 전용 평가 함수를 갖고 있으며 함수를 매개변수로 사용할 수도 있습니다.
•그래픽 인터페이스를 갖춘 전용 Ruby 편집기도 있습니다.
•두 가지 모두 광범위한 C 라이브러리에서 지원됩니다. qt, gtk, tk, SDL, FOX 등과 같은 Ruby는 SWIG 인터페이스를 구현할 계획입니다.
•모두 완전한 문서가 있습니다.
2. Python과 비교한 Ruby의 장점:
•정규식 및 HTML 삽입 기능이 있습니다. Python에도 정규 표현식이 있지만 Ruby만큼 편리하고 널리 사용되지는 않습니다. Python의 임베디드 HTML 프로젝트가 이제 막 시작되었습니다. Ruby에는 Apache Mod 모듈도 있습니다. Ruby 자체는 rac 및 doctools와 같은 많은 Unix 도구도 구현합니다. 파이썬보다 리눅스에 더 가깝습니다.
•Python보다 더 완전한 객체 지향 구문입니다.
•Ruby의 전체 라이브러리는 클래스 상속으로 구성되어 있습니다.
•그의 기본 데이터 유형과 연산자는 오버로드될 수 있습니다.
•Ruby의 주요 기능은 함수가 아닌 객체 메서드 호출을 통해 구현됩니다. Python도 이 분야에서 발전하고 있지만 Ruby만큼 철저하지는 않습니다.
•Ruby 클래스는 더욱 표준화된 단일 상속이며 인터페이스와 같은 개념도 구현합니다.
•Python은 목록에서 조건문과 루프문을 구현할 수 있는 반면, Ruby는 "block" 메서드를 사용하여 이 기능을 구현하는데, 이는 Python보다 더 유연하고 다재다능합니다.
•Ruby에는 Lisp와 유사한 철저한 기능적 방식으로 조건문, 루프문 등이 있습니다. 문장이 더 표현력이 좋아졌습니다.
• rac 등과 같은 일부 Unix 도구와 함께 제공됩니다.
3. Python과 비교한 Ruby의 단점:
•가장 큰 단점은 바로 Ruby의 힘입니다. 파이썬의 단순성은 없습니다. 보다 복잡한 객체 지향 구문, "블록" 구문의 도입, 정규식의 도입 및 일부 약어 태그는 모두 언어의 복잡성을 증가시킵니다.
•Ruby의 기본 표현보다 Python의 들여쓰기 표현이 눈에 더 좋습니다. Ruby 프로그램의 전체 끝 부분이 불편합니다. 물론 Ruby는 end 메소드가 Python보다 더 발전된 것으로 간주합니다.
•Ruby에는 아직 Python의 "내부 검사" 기능이 없으며 프로그램 파일에서 문서를 생성하는 기능도 없습니다.
•Ruby는 국제화를 지원하지 않습니다. 국제화 지원은 Ruby의 계획에 있습니다. Ruby는 Python보다 역사가 짧기 때문입니다.
•Ruby에는 자이썬과 같은 것이 없습니다.
4. Python과 Ruby 중 언어 선택:
단순함이 최고라는 관점에서 보면 Python을 선택하는 것이 옳습니다. Python은 Python의 인기를 높이고 더 많은 지원을 제공할 수 있는 간단한 언어를 찾는 사람들에게 적합합니다. 하지만 좀 더 강력한 구문 기능을 추구하고 싶다면 Ruby가 좋은 선택입니다. Ruby와 Python의 철학은 매우 유사하므로 먼저 Python으로 시작하여 Python이 충분히 강하지 않은 경우 Ruby를 찾아보십시오.
Ruby와 Python의 비교는 Wubi와 Pinyin 입력 방식의 비교와 같습니다. 병음은 초급 입력 방법으로도, 장기 입력 방법으로도 문제가 되지 않습니다. Wubi는 보다 까다로운 상황에 적합합니다. 성능을 추구한다면 루비를 배우는 것이 좋습니다. 프로그래밍 언어에 관심이 있고, 다양한 프로그래밍 개념을 이해하고 싶은 분들도 루비를 배우는데 흥미를 느낄 것입니다.
2. 둘 다 고유한 특성이 있습니다.
1. Python은 구문이 더 간단하고 Ruby는 더 섹시합니다.
다른 스크립팅 언어에 비해 Python의 구문은 트릭이 많지 않으며 상대적으로 더 엄격합니다. 실제로 Guido의 디자인 언어 방향은 Python의 강제 코드 들여쓰기에서도 확인할 수 있습니다. 엄격한 구문은 Rails와 같은 프레임워크를 사용하기가 쉽지 않다는 것입니다. 또한 Python은 DSL과 같은 작업을 수행할 수 없습니다. 그러나 엄격한 구문의 다른 측면은 더 표준화되어 있다는 것입니다. 소프트웨어 개발에 적합합니다. 엔지니어링 요구 사항으로 인해 개발을 위한 대규모 팀을 더 쉽게 구성할 수 있습니다.
Ruby의 구문은 매우 유연합니다. Matz의 Ruby 디자인의 출발점은 재미를 위한 코딩이기도 합니다. 따라서 Ruby를 사용하여 충분한 기술을 사용하면 DSL을 작성할 수 있습니다. 이는 자연어에 가깝습니다. 프로그래머에게 Ruby를 플레이하는 것은 정말 재미있습니다. Python 커뮤니티의 탄생보다는 Ruby 커뮤니티에서의 Rails의 탄생은 확실히 프로그래밍 언어와 직접적인 관련이 있습니다. 그러나 Ruby의 유연한 구문의 다른 측면은 프로그래밍 구현 스타일의 다양성이며 이는 대규모 팀의 협업 및 관리에 대한 과제입니다.
2. Python의 파서 구현이 더욱 성숙해졌으며 타사 라이브러리의 품질도 높습니다
Ruby 1.9 파서는 성능이 크게 향상되고 많은 새로운 기능이 추가되었지만 소스 코드 구현 측면에서는 기본적으로 Ruby 1.8 소스 코드를 패치하여 기능이 추가되었습니다. 소스 코드의 구조 측면에서 보면 Ruby의 구현이 너무 오래되어 Ruby를 확장하기 어렵고 계속해서 패치를 할 수 밖에 없습니다. 이것이 Ruby 커뮤니티에 새로운 Ruby 파서 구현이 많이 등장하는 이유입니다. 이는 상당 부분 Ruby의 개발 속도를 제한했습니다. 상대적으로 말하면 Python 파서는 더 성숙하고 안정적입니다.
타사 라이브러리 수 측면에서 Ruby는 Python보다 적지 않지만 Python은 Ruby보다 훨씬 더 많은 고성능, 고품질 및 입증된 타사 라이브러리를 보유하고 있습니다. 아직 성숙하지 않았기 때문에 Ruby 개발이 크게 제한되었습니다.
3. Python은 응용 분야가 넓지만 현재 Ruby는 웹 분야에만 국한되어 있습니다.
Python은 웹 개발 외에도 고성능 분야에도 널리 사용됩니다. 서버 백엔드에 서버 구현 서버 백엔드 다양한 집약적 작업, 전체 텍스트 검색, 다양한 텍스트 처리, 시스템 관리 등 또한 wxPython은 데스크톱 애플리케이션 분야에서 매우 성숙한 크로스 플랫폼 GUI 프레임워크입니다. . 운영 체제 커널 API 호출과 같은 일부 특수 응용 프로그램의 경우 Python도 매우 잘 완료할 수 있습니다. 예를 들어 Python을 사용하여 inotify 기능을 직접 호출하면 많은 수의 작은 파일에 대한 실시간 동기화 솔루션이 달성됩니다. linuxKernel. 따라서 Python은 소프트웨어 개발의 만능 칼이라고 할 수 있습니다. Python은 무엇이든 할 수 있습니다.
정확히 Ruby 파서 및 Ruby 클래스 라이브러리의 제약으로 인해 Ruby의 적용은 주로 웹 개발 분야로 제한되어 있으며 현재 Ruby의 적용은 웹 개발 분야 이외의 많은 곳으로 확장될 수 없습니다. Douban은 초기에 Ruby on Rails를 고려했지만 Ruby는 다른 일을 할 수 없고 Python은 모든 것을 할 수 있기 때문에 결국 Ruby를 포기하고 Python을 선택했다고 합니다.
4. Ruby는 웹 분야의 왕입니다
인터넷 애플리케이션이 소프트웨어 개발의 다양한 분야에 더욱 침투함에 따라 실제로 전체 소프트웨어 산업 발전에서 웹 개발이 차지하는 비중이 점점 더 커지고 있습니다. Ruby는 다른 분야에서는 매우 제한적이지만 웹 개발 분야에서는 절대적인 왕입니다. Rails 프레임워크는 잠재적인 경쟁사보다 훨씬 앞서 있습니다. 따라서 Ruby에는 여러 가지 문제가 있을 수 있지만 웹 개발에 있어서는 Rails가 거의 논쟁의 여지가 없는 유일한 선택입니다.
Python은 매우 포괄적이지만 웹 개발 분야에서는 뛰어나지 않습니다. 비록 웹 프레임워크가 많지만 그 중 어느 것도 Python 커뮤니티에서 상대적으로 인기가 있지만, 단점도 있습니다. 많은 측면. 오늘날의 인터넷 응용 프로그램은 여러 언어로 프로그래밍되는 경우가 많습니다. 웹 외부의 Ruby의 단점은 다른 언어로도 보완될 수 있습니다.
5. Python의 패키지 관리는 Ruby만큼 좋지 않습니다
Python의 타사 라이브러리는 품질이 더 좋고 성숙도가 높지만 Python 커뮤니티에는 Ruby Gem과 같은 좋은 패키지 관리 소프트웨어 및 패키지 게시 웹 사이트가 부족합니다. 따라서 애플리케이션 구성은 Ruby만큼 편리하고 사용자 친화적이지 않습니다. 특히 클래스 라이브러리의 버전을 업그레이드할 때 Ruby Gem만큼 간단하지 않은 많은 문제에 직면하게 됩니다.
그러나 일반적으로 Python과 Ruby는 매우 유사한 프로그래밍 언어입니다. 두 프로그래밍 언어를 모두 배우더라도 시간을 너무 많이 낭비하지 않습니다. 개인적으로 선택한다면 먼저 Rails를 사용하여 웹 애플리케이션을 구축한 다음 상황에 따라 Python이나 Java를 선택하여 일부 서버 백엔드 작업을 처리할 것입니다. 간단히 말해서, 미래는 여전히 하이브리드 프로그래밍의 시대입니다. 우리는 일부 프로그래밍 도구에 대해 더 많이 알고 필요에 따라 먹어야 합니다.
3. "Ruby와 Python의 비교"에 대한 수정 사항
1. 문서, 오픈 소스 프로젝트 및 라이브러리 지원은 Python과 비교할 수 없습니다. 왜 나란히 배열된 것처럼 보이나요?
2. Python에는 코어에 정규식 모듈이 내장되어 있지 않지만 당시의 목적은 코어를 최대한 작게 만드는 것이었습니다. 표준 라이브러리와 내장 라이브러리를 사용하는 것, 또는 장점으로 사용하는 것의 차이점이 무엇인지 잘 모르겠습니다. 그리고 Python에서 정규 표현식을 사용하는 것은 호출할 때 여러 개의 가져오기
re와 몇 글자만 저장하면 이 문제를 상쇄하기에 충분합니다.
3. 내장된 HTML 기능의 경우 Python에서 사용할 수 있는 C/Python 이중 구현 Cheetah 템플릿이 있는데, 이를 미국 해군과 프랑스 정부에서 사용하고 있다고 합니다. 함수가 Ruby에 있나요?
4. mod_ruby 모듈은 등장한 지 얼마 되지 않았습니다. 작성자가 mod_python에 대해 들어본 적이 없다면 정말 무식한 사람입니다. 1년 전 mod_python3.2.8 문서를 번역했을 때, mod_python은 이미 매우 성숙하여 거의 모든 Python
WEB 프레임워크가 효율성 향상을 위해 이를 기반으로 구축하는 것을 지원했습니다. 하지만 mod_ruby는 1년에 몇 번만 업데이트되는 것 같습니다. mod_python에는 gnu.org와 같은 강력한 애플리케이션도 있습니다. mod_ruby에 그런 애플리케이션이 있는지 궁금합니다.
5. 추가적으로 유닉스 도구들이 언급되어 있습니다. Red Hat
Linux의 설치 프로그램은 항상 Python으로 작성되었습니다. Ubuntu를 사용하는 경우 시스템 업데이트를 요청하는 프로그램도 Python으로 작성되었습니다.
6. rac과 doctools, 제가 구글링을 해보니 귀하의 기사 외에는 rac에 관한 중국어 콘텐츠가 거의 없습니다. yacc와 유사한 도구라는 것을 알게 되었습니다. Google의 관점에서 볼 때 RACC의 유용성에 대해서는 많이 언급하지 않겠습니다. yacc 도구가 일상적인 프로그래밍에 얼마나 유용한지 잘 이해가 안 되지만, 저자가 언급한 이후로 이름만 들어봤고 한 번도 사용해 본 적이 없는 Spark를 찾아보았습니다. Google의 결과는 "racci
ruby":"python
spark"=159,000:659,000입니다. doctools에 관해서는 Google에 기록이 15,800개밖에 없는데 이게 무슨 용도인지는 아직 알 수 없습니다. 그래서 아마도 비슷할 것 같은 것을 찾아서 Docutils와 구글 기록을 비교해보니 25,400개였습니다.
7. "Python 라이브러리보다 더 완전한 객체 지향 구문". 객체지향의 목적은 무엇인가? 게다가 Ruby가 Python과 같을 수 있을까요? 대부분의 표준 라이브러리는 문서를 전혀 확인할 필요가 없습니다. 일반 이름만 추측하면 dir() 및 help()가 직접 사용되지 않습니다. 두 번째까지. 모듈에 내용이 너무 적고 기억하기가 너무 편리하기 때문에 직접 작성할 수 있습니까? 게다가 객체지향은 만병통치약도 아니고 가장 발전된 소프트웨어 엔지니어링 아이디어도 아닙니다.
8. "루비 라이브러리 전체가 클래스 상속 구조를 기반으로 합니다." 개인적으로 Java의 찌꺼기라고 생각하지만 보물처럼 배웠습니다. 아마도 이것은 Java 프로그래머를 구하는 Ruby의 장점이기도합니다.
9. "기본 데이터 유형과 연산자는 오버로드될 수 있습니다." Python에서 __add__ 등을 오버로드할 수 있는지 궁금합니다.
10. "루비의 주요 기능은 함수가 아닌 객체 메서드 호출을 통해 구현됩니다." Python의 모든 것이 객체이지만 모든 클래스는 아닙니다. 이 문장의 의미는 무엇인지 모르겠습니다. 또, 너무 철저함을 추구하지 않는 것을 권하고, 실용성이라는 단어가 더 매력적이다.
11. Python은 프로그래머에게 유연성을 제공하기 위해 단일 상속을 엄격하게 요구하지 않습니다. 게다가 인터페이스에 관해서는, 파이썬에서 같은 이름의 함수가 정의되어 있는 한, 형이상학이 이 정도 수준까지 올라와서 좀 헷갈립니다. 인터페이스에 관해서는 Ruby의 소위 인터페이스는 단지 혼합일 뿐입니다. 이는 Python의 여러 대규모 프로젝트에서 구현되었지만 Python에는 분명히 의미가 없기 때문에 더 이상 사용되지 않습니다.
12. Lisp 함수형 프로그래밍과 관련하여 Python에는 map, zip, filter 등과 같은 많은 내장 지원이 있으며 물론 람다도 있습니다. 지원에 대해 이야기하지 말고 실용성에 대해 이야기합시다. 일부 Python 사용자는 여전히 함수형 프로그래밍이 코드 가독성에 영향을 미친다고 생각하고 이를 피하려고 노력합니다. 그러므로 무언가를 지원하는 것에 대해 생각하기 전에 먼저 그것이 좋은 것인지 생각해보십시오.
13. "가장 큰 단점은 바로 루비의 힘입니다." 정말 역겹습니다. 댓글이 없습니다.
14. 하하, 루비는 해외 지원이 없군요. 당시 그 작은 일본인은 무슨 생각을 했을지 궁금하네요. 그는 영어로 CET-4를 통과했습니까?
15. 자이썬의 경우 지금은 jruby도 있는데, 아마도 작성자의 원문이 상대적으로 일찍 나온 탓일 것입니다. Python에는 jython, ironpython, pypy, pyrex 등과 같은 많은 구현이 있습니다. Python의 우수성이 반드시 다른 언어로 구현되어야 반영되는 것은 아닙니다. 물론, Java가 Ruby를 심각한 위기에서 구해줄 것이라는 희망은 말할 것도 없습니다.
또한 Ruby의 몇 가지 단점도 피하지 마세요.
16. Ruby에는 현지화된 스레드가 없지만 의사 스레드를 사용하므로 멀티 코어 CPU를 전혀 활용할 수 없습니다. CPython은 지역화된 스레드를 사용하지만 GIL을 사용하기 때문에 멀티 코어 CPU를 활용할 수 없습니다. 그러나 스택리스의 출현은 이 문제를 완전히 해결할 수 있으며, 스택리스는 Python을 병렬 컴퓨팅의 정점으로 끌어올렸습니다. 이 수준의 경쟁자는 Erlang이 될 수 있으며 당연히 Ruby를 걱정할 필요가 없습니다. 초경량 스레딩 기술을 사용하면 열악한 기계에서도 수십만 개의 스레드를 쉽게 실행할 수 있습니다. Twisted를 기반으로 한 비동기 프로그래밍도 옵션을 제공합니다.
17. 처음 Python을 배우기 시작했을 때 "Python은 주류 동적 언어 중에서 가장 느립니다."라는 말을 들었는데, 나중에 그 말을 한 사람은 Ruby를 전혀 심각하게 받아들이지 않는다는 것을 알게 되었습니다. 만약 루비가 주류 동적 언어에 포함된다면, 파이썬보다 훨씬 느린 언어가 나올 것입니다.
18. 루비가 인기가 있나요? PHP로 가시나요? PHP는 좋은데, 문제는 WEB 프로그래밍에만 사용할 수 있기 때문에 PHP의 적용 범위가 좀 더 필요한 것들은 C를 사용해야 한다는 것입니다. 그리고 이제 루비는 이 길을 따르고 있는 것 같습니다. 그러던 어느 날 누군가 “Ruby를 클라이언트 프로그래밍에 사용할 수 있다”는 소식을 전해 모두의 호기심을 불러일으켰습니다. 더욱이 현재의 ROR이 무엇이든 대체할 수 있는지 여부는 아직 알려지지 않았습니다. Java
WEB 개발에서 구출된 사람들이 모두 Ruby로 간 것은 아닙니다.
4. "Ruby 또는 Python?"에 댓글을 달아주세요. 》
Python과 Ruby의 디자인 철학은 실제로 매우 다릅니다. 이 문제에 대해서는 어느 것이 더 나은지 언급하지 않겠습니다. 효율성 측면에서 Ruby는 Python과 비교되어서는 안 됩니다. Ruby는 의사 스레드이므로 멀티 코어 CPU를 활용할 가능성이 없으므로 그냥 통과시키십시오. 그리고 Python은 네이티브를 사용합니다
스레드, 일부 모듈이 스레드로부터 안전하지 않기 때문에 멀티 코어 CPU의 적용을 제한하기 위해 GIL이 추가되었습니다. 최근 테스트에서는 Twisted의 비동기 스레드를 사용한 후 멀티 코어 CPU의 컴퓨팅 성능을 잘 활용할 수 있습니다. 실행 효율성은 동일한 크기가 아니며 직접 시도해 보면 알 수 있습니다.
Java와 Python을 비교해보면 작가의 창의성이 엿보이네요, 하하. 오픈소스 프로젝트는 다윈의 자연선택과 매우 일치합니다. 루비의 오픈소스 프로젝트가 없다는 것이 장점이 아닐까요? 게다가, WEB
프레임워크를 제외하고 Python으로 너무 중복이 많은 프로젝트를 본 적이 없습니다. 예를 들어 pypcap은 기본적으로 pcapy를 제거했습니다.
자원에 있어서는 루비가 아직 갈 길이 멀기 때문에 양쪽이 강하다고 해서 너무 병치하지 마세요. Java 커뮤니티에서 Ruby를 배우려는 경향이 있는 사람들에 대해서는 개인적으로 Java에 익숙한 개발자들의 시야가 너무 좁다는 생각이 듭니다. 언어는 도구이고 객체지향도 도구입니다. Python에도 함수형 프로그래밍이 지원된다는 점은 아닙니다. 또한 Python의 많은 사례는 개발 효율성을 첫 번째 목표로 삼고 있으며 다양한 형태에 국한되지 않습니다. 지능이 부족한 많은 사람들에게 널리 비판받는 C++의 다중 상속도 Python에서도 지원할 수 있습니다. 문제는 마음에 들지 않는 것을 지원하는 것이 아니라 가능한 한 많은 사람들이 좋아하는 것을 사용하도록 하는 것입니다. 또한 Ruby 개발자가 항상 OO가 충분하지 않다고 간주했던 Python의 예는 Python이 len(x) 메서드를 사용하는 것입니다. 이 질문에 대해 Ruby 개발자가 x.length가 OO로 간주될 수 있다고 생각한다면 Python은 x.__len__()을 직접 사용하여 길이를 얻을 수도 있습니다. 메소드를 사용하여 속성을 캡슐화하는 Java의 관점에서 보면 누가 더 OO에 가깝습니다. 하하.
Ruby는 일본 작품입니다. 하하, 일본을 싫어하는 중국인이 많거든요. 여기서는 기술적인 부분은 제외하고 Ruby를 폄하할 수 있어요.
Ruby on
rails와 관련하여 Ruby 커뮤니티는 거의 모든 에너지를 여기에 집중하고 있습니다. 그러나 이는 Ruby의 순진함을 보여줄 뿐입니다. 많은 ROR 모방자가 ROR을 훨씬 능가하는 수많은 고급 기능을 출시했다는 사실이 입증되었습니다. 지금 Ruby가 갑자기 ROR을 잃으면 어떻게 될까요? 저자가 언급한 zend는 ROR에 비하면 계란으로 돌을 치는 것과 같습니다. Python의 WEB 프레임워크 두 개를 배웠고, 평소에는 Python과 Ruby의 여러 가지에 더 관심을 두지만, 한 번도 해본 적이 없습니다. 젠드라고 들었는데, 작가님 작품인지는 모르겠네요. 하하. WEB 프레임워크에서 경쟁을 해야 한다면 django, Quixote, mod_python 등을 사용하여 비교할 수 있습니다. 전형적인 ROR 모방작인 Django는 계속해서 성장하고 있지만 이미 ROR보다 나은 기능을 많이 갖고 있고, 성능도 ROR보다 훨씬 낫다는 것은 말할 필요도 없습니다. Quixote를 사용하는 douban.com은 Python과 Ruby를 사용하는 모든 웹사이트 중 트래픽이 가장 많고, 동일한 하드웨어 구성으로 ROR보다 2배 이상 빠릅니다. WEB 서버 등 다양한 동일 손실을 제거한 후에는 알아야 합니다. . 이는 훨씬 더 빠릅니다. mod_python은 www.gnu.org에서 이것을 사용한다고 합니다. 만약 Ruby가 여전히 오픈 소스가 되기를 원한다면, Ruby는 항상 Python의 그늘에서 살게 될 것입니다.
시작하는 속도는 사람마다 상황이 다르기 때문에 언급하지 않겠습니다. 유연성이 무엇을 가져오는지는 의견의 문제이므로 언급하지 않겠습니다. 저자는 Python을 시작하는 것이 얼마나 어려운지 이야기하지만 Ruby를 사용하는 것이 얼마나 쉬운지는 잘 모르겠습니다. 제가 처음 파이썬을 배웠을 때 11일차에 파이썬으로 어휘 파서를 작성했는데, 지금도 제 블로그에서 보실 수 있습니다. 그러므로 초급 난이도에 관해서는 남의 말을 듣지 않고 각자가 스스로 해보는 것이 좋습니다.
ROR에서 생성된 디렉토리에는 많은 것들이 있고, 그것들을 모두 이해하는 데 시간이 오래 걸린다고 합니다. 이것은 그야말로 IDE 증후군입니다. Python에서 일반적인 예는 TurboGears입니다. 전체 애플리케이션이 어떻게 실행되는지 이해하려면 핵심 Cherrypy에서 학습을 시작하면 TurboGears를 사용할 때 알 수 있는 것이 없습니다. 이러한 관점에서 볼 때 ROR에는 선택의 여지가 없습니다. 게다가 현재 ROR에서 사용할 수 있는 WEB 서버에 연결하는 방법인 scgi도 당시에는 Python의 작업이었고 Python의 그늘에 사는 또 다른 작은 것이었습니다.
루비의 향후 발전은 장담하기 어렵지만, 절박한 움직임이기 때문에 위험성은 여전히 상당히 높습니다. Python의 경우 정말 꾸준하게 발전할 거라 생각했는데, Micro$oft가 추가되면서 Python의 미래가 얼마나 커질지 예측하기 어려워졌습니다. 저자가 항상 싫어했던 Python의 다양성에 대해 다시 이야기해 보겠습니다. 내 생각에는 Ruby가 Python을 능가할 수 있는 것은 소수에 불과하며, Python이 Ruby를 능가하는 것은 당연히 Ruby에게는 극복할 수 없는 격차입니다. 따라서 프로그래밍 언어의 다양성을 고려하면 모든 사람이 Ruby를 배우는 것은 권장되지 않습니다. 선택의 폭이 줄어들고 인기를 얻는 것은 항상 좋습니다.
5. 파이썬과 루비, 누구를 선택해야 할까요?
사실 Python과 Ruby는 대부분의 다른 언어보다 훨씬 더 가깝기 때문에 원하는 대로 사용할 수 있습니다(솔직히 말하면 말도 안 되는 소리지만). 구문에는 몇 가지 차이점이 있지만 대부분은 구문 설탕입니다. 몇 가지만 나열해 보겠습니다(파이썬을 거의 잊어버렸으니 틀렸다면 언제든지 비판해 주세요). 디자인 컨셉: 유연성 vs 명시성. 익숙하다면 둘 사이의 생산성에는 차이가 없다고 생각합니다. *참고: 비교는 언어 자체로 제한됩니다.
1. Ruby의 대소문자는 범위/배열, 객체, 정규 표현식과 일치할 수 있습니다. Python에는 대소문자/스위치가 없으며 if/else를 사용하는 것이 더 엄격합니다.
2. Python의 들여쓰기는 매우 아름답습니다. 문제. Ruby의 끝은 꽤 추악해서 모두가 한 줄이 될 수밖에 없습니다(농담)
3. Ruby가 Python보다 OO에 더 가까운 것처럼 느껴집니다. 물론 이것은 Python이 Python을 옹호하지 않기 때문일 수도 있습니다. 객체의 내부 구조를 변경하는 '트릭' 사용 환상
4. Python에는 목록 이해 기능이 있지만 Ruby에는 없습니다.(
5. Python에는 실제 키워드 인수가 있고 Ruby에는 해시를 사용하여 이를 시뮬레이션합니다. 물론 실제 사용에는 별차이가 없습니다
6. 파이썬 자체가 굉장히 귀찮습니다. 루비에는 그런게 없습니다. 지루한 일이죠
7. 리플렉션, 루비에는 object.methods 같은 메소드가 많이 내장되어 있습니다. , Python은 이 정보를 특수 사전에 저장합니다
8. Ruby의 블록 기능은 매우 강력하며 Python의 람다는 단일 값만 반환할 수 있습니다.
9. Ruby의 공개 클래스는 광범위하게 선언되었으며 다음과 같은 트릭을 수행할 수 있습니다. 2.days.ago. Python은 내장 클래스를 직접 수정할 수 없는 것 같아서 그렇게 하는 것을 반대합니다.
10. Python은 @classmethod로 장식해야 합니다. Ruby는 내장되어 있습니다. . Ruby에는 객체를 개별적으로 사용자 정의할 수 있다는 의미인 모나드 메서드가 있습니다. Python에도 비슷한 개념이 있는지는 모르겠습니다
12. Ruby에는 method_missing 메커니즘이 있으며 Python은 __getattr__을 사용하여 정의되지 않은 메서드(qiezi에서)를 가로챌 수 있습니다.
13. Ruby는 단일 상속 + mixin을 사용하고 Python은 다중 상속을 사용하지만 Python에도 mixin이 있습니다14. Ruby에는 attr_* 일련의 구문 도우미가 있어 Python의 속성을 직접 작성하지 않아도 됩니다. 방법은 여전히 동일합니다. 자신만의 setter/getter를 작성해야 합니다15. Ruby와 Python 모두 Duck Typing을 사용하지만 Python에도 명시적인 인터페이스 메커니즘이 있습니다(zope3에서 커널에 통합되었나요?) 16. Ruby의 함수 호출 괄호는 생략 가능합니다. 예, 키보드를 조금만 누르면 됩니다. Python은 기본적으로 괄호나 매개변수 없이 함수 자체에 대한 참조를 반환합니다. 17. , 그래서 전문가가 설명할 때까지 기다려야 합니다. Python 사용자가 일반적으로 사용하는 것이 아니며 아마도 프로그램 논리를 모호하게 만들 수도 있습니다. 18. Ruby는 미리 정의된 많은 것들을 포함합니다. $x 상수. 19. Ruby에는 정규 표현식이 내장되어 있어 좀 더 편리합니다20. Ruby의 Yield는 블록을 호출하는 데 사용됩니다. Python의 Yield는 생성기에 값을 입력하고 출력하는 데 사용됩니다. 21. Python 라이브러리의 명명 규칙이 약간 일관성이 없는 것 같습니다. 일부 메소드는 snake_case를 사용하고, 일부는 CamelCase를 사용합니다. 아마도 너무 많은 라이브러리가 남긴 역사적 문제일 것입니다. 22. Ruby의 < ;<-XX…XX는 너무 보기 흉합니다. %q{…}를 사용하여 여러 줄의 텍스트를 래핑할 수도 있습니다(qiezi에서)23. Ruby의 클래스 라이브러리 디자인에서는 메서드에 별칭을 추가하는 것을 좋아합니다. 기억을 촉진합니다. 또 다른: 공식 Ruby 웹사이트에서는 몇 가지 기본적인 비교도 제공합니다. 6. 두 언어의 리소스 및 학습 곡선 비교: 부적절한 비유를 사용한 전반적인 인상: Python이 Java라면 Ruby는 .net입니다. 우리는 Java 세계가 매우 복잡하고 다양하다는 것을 알고 있습니다. 어떤 요구 사항이든 다양한 오픈 소스 프로젝트를 사용하여 이를 구현하고 성능 특성도 매우 다릅니다. 지금의 Python도 마찬가지고, Python은 Java에 비해 개발하기가 훨씬 덜 어렵기 때문에 Java보다 Python 관련 프로젝트가 더 많습니다. 리소스 측면에서 두 커뮤니티는 매우 강력합니다. 흥미롭게도 Java 커뮤니티는 이제 Java보다 Ruby에 대해 더 많이 이야기하기 위해 내가 구독하는 Java 블로그 집합 중 일부에 동화될 위험에 처해 있습니다. Ruby의 커뮤니티는 더 집중되어 있는 반면 Python의 커뮤니티는 더 분산되어 있습니다. 나는 항상 Ruby에 일본인 사용자가 더 많다고 의심하지만, 일본어를 이해하지 못하기 때문에 이를 확인하기는 어렵습니다. 모국어가 영어가 아닌 창업자로서는 늘 조금 두렵고, 그를 이해하기 어려울까 두렵고, 최신 소식을 접하기 어려울까 두렵습니다. 지금은 이런 걱정이 불필요해 보이지만, 하지만 무슨 일이 일어날지 누가 알겠는가! 루비가 갑자기 인기를 얻은 이유는 레일즈 아키텍처와 불가분의 관계에 있습니다. Ruby를 고려할 때 Ruby on Rails를 고려해야 합니다. Rails는 매우 높은 개발 효율성을 갖춘 매우 우수한 웹 개발 프레임워크를 제공합니다. Python에는 유사한 아키텍처 구현이 많이 있지만 세계를 통합할 수 있는 아키텍처는 없습니다. Python의 zend는 완벽하지만 웹 서버에 더 편향되어 있어 레일과 비교할 수 없습니다.Ruby는 Python보다 사용하기 쉽습니다. 언어 기능의 관점에서 볼 때 Ruby에는 블록과 같은 흥미로운 창작물이 많이 있지만 이러한 흥미로운 것들을 대규모로 적용하면 프로그램이 혼란스러워집니다. Python 구문은 단순성을 강조하지만 너무 유연하고 너무 단순하기 때문에 기존 프로그래머는 종종 놀라운 표현을 보게 됩니다. 이것이 장점인지 단점인지는 모르겠습니다. 적어도 구문이 너무 유연해서 프로그래머마다 코딩 스타일이 과도하게 달라져 학습 비용이 증가할 수 있다고 생각합니다.
초기에는 Ruby가 시작하기가 더 쉽지만 특정 수준의 복잡성에 도달하면 Ruby의 난이도가 갑자기 높아집니다. 파이썬을 시작하는 것은 쉽지 않고, 복잡해지면 그다지 고통스럽지 않습니다. Rails는 시작하기는 쉽지만 시작하기는 어렵다는 문제가 있습니다. 레일즈가 생성한 디렉토리의 목적은 무엇입니까? O/R 매핑은 어떻게 구현되나요? 웹에서 데이터베이스로 데이터를 전송하는 방법. 이것들은 모두 Ruby 프로그래머가 조만간 직면하게 될 문제입니다. Python의 경우에는 그렇지 않습니다. 이러한 내용을 이해하지 못하면 아마도 시작하지 못할 것입니다. 너무 고도로 통합된 빠른 개발 도구는 이런 특징을 가지고 있습니다. VB든, 델파이든, .net이든, 그것을 사용한 지 반년 미만인 개발자가 프로젝트 디렉토리에 있는 모든 파일의 목적을 명확하게 설명하고, 각 파일의 구문은 무엇입니까? 경험이 많은 사용자들은 명확하게 설명하지 못할 수도 있다고 생각합니다.
구조적인 관점에서 볼 때 둘은 실제로 매우 다르지만 최종 결과는 매우 유사합니다. Ruby는 순수 OO 언어인 반면 Python은 함수와 OO의 혼합입니다. Ruby에서는 함수형 스타일 코딩도 사용할 수 있지만 실제로는 시뮬레이션됩니다. 이들 사이의 이러한 차이는 일반 프로그래머에게는 큰 영향을 미치지 않으며 결국 유사해 보입니다.
일반적으로 처음 개발을 시도하는 비전문가라면 Ruby가 적합합니다. 전문 프로그래머라면 여전히 Python을 선택하는 것이 좋습니다.
향후 개발에 관해서는 Python의 개발은 예측 가능하고 비교적 안정적일 것이라고 생각합니다. Python은 이미 사람이 아닌 커뮤니티에 속해 있지만 Ruby는 여러 가지 이유로 인해 Ruby 작성자 미로의 의지가 Ruby 개발에 더 큰 영향을 미칠 것입니다. Sun이 Java를 제어하지만 Sun의 강력한 리소스와 조정을 위한 jcp 구성으로 인해 Java는 매우 잘 발전했지만 Ruby가 이를 달성할 수 있는지 여부를 입증하려면 시간이 걸릴 것입니다.
7. Python에서 Ruby로
Python은 Python에서 Ruby로 마이그레이션할 때 몇 가지 문법적 차이를 발견하게 됩니다.
Similarities
Python과 마찬가지로 Ruby에는... 명령줄에서 문서를 읽을 수 있습니다(pydoc 대신 ri 명령을 사용). 한 줄(새 줄 제외) 텍스트는 Python에서 세 개의 따옴표를 사용하는 것처럼 여러 줄을 사용할 수 있습니다. Dict는 {}를 사용합니다(Ruby에서는 배열이 "해시"라고 함). 더 긴 배열에 추가되지만 a3 = [ a1, a2 ]와 같이 병합하려는 경우 배열이 포함된 배열이 생성됩니다. 객체는 고정된 유형과 동적 변환을 갖습니다. name은 객체 포인터에 대한 포인터일 뿐입니다. 비록 키워드는 다르지만 예외는 동일한 방식으로 작동합니다. Ruby에서는 rdoc라는 도구가 있습니다.
차이점
Python과 달리...문자열은 다음과 같습니다. 변경되었습니다. 상수를 사용할 수 있습니다(상수 값은 다르게 변경됩니다). 몇 가지 필수 작성 요구 사항이 있습니다(예: 클래스 이름은 대문자로 시작하고 변수 이름은 소문자로 시작합니다). 컨테이너(Array)는 1개만 있으며 변경이 가능합니다. 따옴표 안의 문자열 제한 사항은 다릅니다. 여기에는 새로운 스타일의 클래스가 없습니다. 클래스에는 단 하나의 스타일만 있습니다. 속성에 직접 액세스할 수는 없지만 Ruby에서는 메서드 호출을 통해 이 작업이 수행됩니다. 메서드 호출에 ()를 사용하는 것은 선택적인 전략입니다. 여기서는 개인 및 기타 제한된 액세스와 같은 키워드를 사용하여 Python에 숨어 있는 이름을 대체합니다. "mixin's"는 다중 상속의 대안으로 사용됩니다. 언제든지 기존 클래스를 수정하고 새 메서드를 추가할 수 있습니다. True 및 False 대신 true 및 false를 사용합니다(None 대신 nil 사용). 진리값을 판단할 때 false와 nil만 false로 간주됩니다(0, 0.0, "" 및 [] 포함). elif 대신 elsif를 사용하십시오. import 대신 require를 사용하십시오. 그러나 사용법은 동일합니다. 문서에 주석을 달고(문서 문자열 대체) 문서를 생성하려면 일반 스타일을 사용하십시오.
8. Python과 Ruby를 세 가지 측면에서 비교합니다.
1. 각각 적합한 애플리케이션은 무엇입니까?
2. 개발 환경 및 실행 환경
3. 프로젝트는 최종적으로 이식될 예정이므로 이식성은 어떻습니까? Windows CE Symbina와 같은 모바일 플랫폼
[1. 각각 적용 가능한 응용 프로그램]
검토된 결과는 두 언어 모두 좋은 평가를 받은 것으로 보이며 네트워크 개발 성능도 매우 좋습니다. 신속한 애플리케이션 개발에 매우 적합하며 개발 효율성이 매우 높습니다.
Python:
프로젝트와 관련된 일부 애플리케이션 설명을 추출했습니다.
교차 플랫폼 개발:
Python은 중립적인 방식으로 일련의 다양한 플랫폼을 지원합니다. 사용자가 사용하는 시스템에 다양한 플랫폼이 포함되어 있는 경우 Python을 사용하여 개발하세요. 응용프로그램은 더욱 향상되었습니다. 응용프로그램의 적응성은 시스템에서 다른 도구를 사용할 수 있게 해줍니다. 플랫폼을 자주 전환하는 사용자에게는 Python이 이상적인 선택입니다.
최종 사용자에게 소프트웨어 서비스를 제공할 때 Python은 동시에 다른 응용 소프트웨어를 프로그래밍하는 데 드는 시간과 비용을 피하기 위한 대안이기도 합니다.
인터넷 프로그래밍:
Python에는 네트워크 슬롯에서 기본 및 프로토콜 수준 통신을 수행할 수 있는 표준 모듈이 함께 제공됩니다. 예를 들어 POP 서버에서 이메일을 읽으려는 경우 Python에는 이를 수행할 수 있는 라이브러리 모듈이 함께 제공됩니다. 또한 Python은 XML, HTML 및 CGI 라이브러리 파일도 지원하므로 사용자 입력 요구 사항을 구문 분석하고 웹 서버를 통해 최상의 품질 결과를 생성하는 데 사용할 수 있습니다.
프로그래머는 Python의 내장 인터프리터가 있는 Apache, Unix 및 Windows 웹 서버용 모듈을 컴파일할 수도 있습니다. CGI 프로그램의 위력을 바탕으로 Python 문을 별도로 로딩하지 않고도 쉽게 실행할 수 있습니다.
파이썬 네트워크 프로그래밍에 대한 좋은 책이 있습니다: "파이썬 네트워크 프로그래밍 기초"
이 책은 파이썬 언어를 사용하여 네트워크 프로그래밍의 기본 지식을 포괄적으로 소개합니다. 주요 내용에는 기본 네트워크 지식과 고급 네트워크 운영, 웹 서비스가 포함되어 있습니다. , HTML 및 스레드 구문 분석 및 비동기 통신) 등 이 책은 총 175개 정도의 예제와 6,600줄 이상의 코드를 제공할 정도로 실용성이 높다. 독자들이 파이썬 언어를 종합적이고 빠르게 익히고 네트워크 프로그램을 작성하는 데 도움이 되는 모범 사례이다.
Ruby:
객체 지향 프로그래밍을 편리하고 빠르게 수행할 수 있게 해주는 강력한 객체 지향 스크립팅 언어입니다. 때로는 Smalltalk, 에펠 또는 C++와 같은 형식적인 객체 지향 언어를 사용하여 일부 소규모 프로젝트를 개발하는 것이 약간은 보입니다. "overkill"을 사용하면 Ruby는 이러한 객체 지향 프로그래밍 요구 사항을 충족할 수 있습니다. 물론 일반적인 프로세스 지향 프로그래밍에도 Ruby를 사용할 수 있습니다.
Ruby는 높은 수준과 낮은 수준 모두에서 다양한 네트워크 프로토콜을 지원합니다. Ruby는 네트워크 계층에 얽매이지 않고 TCP, UDP, SOCKS 및 기타 여러 프로토콜을 사용하여 상호 작용할 수 있는 몇 가지 기본 클래스를 제공합니다. 이러한 클래스는 서버를 쉽게 읽고 쓸 수 있는 도우미 클래스도 제공합니다. 네트워크 프로그래밍도 훌륭합니다.
【2. 개발 환경, 운영 환경】
Python: 이에 비해 강력한 통합 개발 환경은 없습니다. 어떤 사람들은 오픈소스 소프트웨어가 유료 소프트웨어보다 사용하기 쉽다고 말합니다.
가장 일반적으로 사용되는 것:
Python 자체의 유휴: Python IDE 중에서 최고는 아닙니다...
PythonWin: 사용하기 매우 쉽습니다(Windows를 사용하는 것처럼 편안합니다). 코드 병합, 구문 태그 강조 표시 및 코드 자동 완성 기능을 포함하는 유용한 편집기가 있습니다. 일부 IDE와 마찬가지로 PythonWin에는 어떤 종류의 양식 디자이너도 포함되어 있지 않지만 모니터링, 코드 검사, 대화형 디버깅 창, 중단점 및 디버거에 있어야 하는 기타 기능을 갖춘 뛰어난 디버거를 제공합니다. 가장 중요한 것은 PythonWin이 Win95r2 시스템에서 사용될 때 때때로 이상하게 "응답을 중지"하지만 안정적이라는 것입니다. 인터페이스 측면에서 PythonWin은 상대적으로 단순하지만 매우 매력적이며 삽입 가능하고 도킹 가능한 요소를 잘 활용합니다(저는 다른 많은 IDE에서도 사용되는 Idle 스타일 "모든 창"을 약간 선호합니다). PythonWin은 또한 ActiveState의 HtmlHelp 버전 Python 설명서와 PythonCOM을 통합합니다.
eclipse의 pydev 플러그인 eclipse+pydev
Pydev는 훌륭한 Python 환경인 Eclipse를 기반으로 하며 개선 속도가 매우 빠릅니다.
UliPad에서 제공하는 일부 기능:
문서 작성 및 프로그래밍 개발에 사용할 수 있는 편집기입니다. Python 프로그래밍 언어를 사용하여 개발되었으며 사용자 인터페이스는 wxPython을 기반으로 합니다. 일반 편집자의 공통 기능을 완성하는 것 외에도 개발자가 새로운 기능을 쉽게 개발할 수 있도록 편리하고 유연한 프레임워크를 구현하려는 것이 주요 목표입니다. 또한 프로그래밍 경험이 있는 사용자는 플러그인을 컴파일하여 일상 업무의 특별한 문제를 처리할 수 있으므로 일상 업무와 긴밀하게 통합될 수 있습니다. 강력한 프로그래밍 언어인 Python을 사용하므로 필요에 맞게 소프트웨어를 쉽게 수정할 수 있습니다.
UliPad는 코드 색상 지정, 스마트 완성, 코드 디버깅, Python 클래스 검색, 코드 조각, Ftp 기능, 디렉터리 검색 및 기타 강력한 기능을 지원합니다. Doc 디렉터리의 문서는 매우 풍부하여 Python을 작성하는 데 큰 도움이 됩니다. .
시스템 요구 사항:
python 2.4+
wxPython 2.6+
최종 선택은 꽤 괜찮은 UliPad입니다.
Ruby:
Ruby에는 뛰어난 고급 디버거가 있습니다.
netbeans의 ruby 플러그인이나 eclipse의 ruby 플러그인을 사용할 수 있습니다.
Eclipse에서 개발 환경을 설치하는 일반적인 과정:
1 Ruby 1.8.6 원클릭 설치 프로그램을 설치합니다. .
2. Eclipse Platform Runtime Binary 압축 패키지를 특정 디렉토리에 압축 해제합니다.
3. Ruby Development Tools 압축 패키지의 내용을 해당 Eclipse 디렉터리에 추출합니다.
운영 환경은 공식 홈페이지에서 해당 버전을 다운로드한 후 설치하면 됩니다. Windows에서의 설치는 비교적 간단합니다. 더블클릭하여 설치하면 됩니다.
【3.이식성】
Python:
오픈 소스 특성으로 인해 Python은 다양한 플랫폼에서 이식되었습니다(다른 플랫폼에서 작동할 수 있도록 수정됨). 시스템 종속 기능을 사용하지 않도록 주의한다면 모든 Python 프로그램은 아래 나열된 플랫폼에서 수정 없이 실행됩니다. 이러한 플랫폼에는 Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acom RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE, 심지어 PocketPC까지!
Python이 실행되면 먼저 .py 파일의 소스 코드를 Python 바이트 코드로 컴파일한 다음 Python 가상 머신이 이러한 컴파일된 바이트 코드를 실행합니다. 이 메커니즘의 기본 아이디어는 Java 및 .NET과 일치합니다. 그러나 Python Virtual Machine과 Java 또는 .NET Virtual Machine의 차이점은 Python Virtual Machine이 고급 가상 머신이라는 것입니다. 여기서 고급은 일반적인 의미에서 고급이 아닙니다. 이는 Python의 가상 머신이 Java 또는 .NET보다 강력하다는 의미는 아닙니다. 이는 Java 또는 .NET에 비해 Python의 가상 머신이 실제 머신에서 더 멀리 떨어져 있음을 의미합니다. 또는 Python의 가상 머신은 더 높은 추상화 수준을 갖춘 가상 머신이라고 말할 수 있습니다.
객체 지향 해석형 컴퓨터 프로그래밍 언어를 설치할 수 있습니다. 이는 강력하고 완전한 범용 언어이며, 10년 이상의 개발 역사를 가지고 있으며 성숙하고 안정적입니다. Python은 스크립팅 언어 중 가장 풍부하고 강력한 클래스 라이브러리를 갖추고 있어 대부분의 일상적인 애플리케이션을 지원하기에 충분합니다. Symbina 스마트폰은 C++ 및 JAVA로 개발된 두 가지 유형의 프로그램을 지원하며 Python을 설치한 후에는 Python으로 개발된 많은 프로그램도 지원할 수 있습니다. 다양한 프로그램. 일반 휴대폰 사용자의 경우, Python 플랫폼만 설치하면 됩니다. 그러면 휴대폰에서 Python으로 개발된 더 많은 프로그램을 지원할 수 있습니다. 현재 Symbian 휴대폰에는 Python으로 개발된 프로그램이 꽤 많이 있으며 모두 비교적 실용적입니다.
Ruby:
주로 Linux에서 개발되었지만 다양한 유형의 Unix, Dos, Windows95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2 및 기타 시스템에서 실행될 수 있습니다.
루비와 휴대폰 개발에 관한 정보는 거의 없습니다. Windows CE에서 실행되는 버전도 있지만 아직 관련 정보가 거의 없는 것 같고, 설치 실패나 컴파일 실패 사례도 많습니다. 일본어 페이지에는 일본어 소개가 조금 있습니다.
【요약】
그리고 친구의 제안으로 Python과 Ruby에 대해 다음과 같은 참고 의견을 제시했습니다.
1. Python은 명확한 언어로도 알려져 있습니다. 왜냐하면 저자가 그것을 디자인했을 때 일반적인 지침 아이디어는 특정 문제에 대해 그것을 해결하는 가장 좋은 방법은 단 하나뿐이라는 것이었기 때문입니다. Python 언어가 명확한 언어라는 또 다른 의미는 작성자가 의도적으로 매우 제한적인 구문을 설계하여 나쁜 프로그래밍 습관(예: if 문에서 다음 줄을 오른쪽으로 들여쓰지 않는 등)이 컴파일될 수 없다는 것입니다. 이는 의도적으로 프로그래머가 좋은 프로그래밍 습관을 개발하도록 강요합니다. 또한 Python은 다른 부분의 디자인에서도 명확하고 일관된 스타일을 고수하므로 Python을 읽기 쉽고 유지 관리가 가능하며 많은 사용자에게 인기 있는 언어로 만듭니다.
동일한 문제에 대해 여러 사람이 Python을 사용하여 작성한 코드는 매우 유사합니다. 그러나 Ruby를 사용하여 작성된 프로그램은 너무 유연하며 다른 사람이 작성한 프로그램은 크게 다를 수 있습니다.
2. Ruby의 영어 문서는 중국어 문서는 물론이고 매우 부족합니다. Python 커뮤니티는 상대적으로 성숙하고 많은 정보를 보유하고 있습니다.
마지막으로 다음은 Python 웹사이트입니다.
•http://www.python.org/– Python 공식 웹사이트
•http://python.cn/– Python 중국어 커뮤니티
•http://www.codeplex .com /Wiki/View.aspx?ProjectName=IronPythonPython For Dot Net 웹사이트
여러 Ruby 웹사이트
•www.ruby-lang.org/zh_CNRuby 중국어 공식 웹사이트
•http://www.rubystudy.com/ bbs/tag.php ?name=RubyRuby 중국어 학습 교류 커뮤니티
•http://ruby-lang.guo.cc/Ruby 온라인 참고 매뉴얼
위 내용은 파이썬과 루비 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!