Ruby | JavaScript |
Ruby는 일반적으로 클라이언트 서버 측 응용 프로그램에 사용 | JavaScript는 일반적으로 클라이언트에 사용 -사이드 애플리케이션 |
Ruby는 JavaScript보다 느립니다. | JavaScript는 Ruby보다 빠릅니다. |
< tr> Ruby는 작성하고 배우기 더 쉽습니다. | JavaScript는 파악하고 배우기가 더 어렵습니다. | Ruby는 클래스를 사용하는 객체 지향적이며 Ruby의 거의 모든 것이 객체 | JavaScript는 객체 지향이지만 클래스가 없습니다. |
Ruby는 `duck`으로 작성되었습니다. | JavaScript는 자유롭게 작성되었습니다. |
이제 두 언어에 대한 정보를 얻었으므로 두 언어를 살펴보고 어떤 언어를 선호할 수 있는지 알아보겠습니다. 우리는 이 작업을 여러 측면에서 대면하여 비교함으로써 접근할 것입니다.
입력 및 구문
Ruby는 사용성을 위해 설계되었습니다. 그의 철학은 무언가를 하는 데에는 한 가지 이상의 방법이 있다는 것입니다. 따라서 Ruby에는 단순하고 배우기 쉬운 구문이 있을 뿐만 아니라 원하는 대로 사용할 수 있도록 설계된 구문도 있습니다. 최고 수준이며 변수나 세미콜론 선언이 없으며 읽기 쉬운 코드입니다. 또한 대부분의 다른 객체 지향 언어보다 더 객체 지향적입니다. 매우 객체 지향적이어서 메서드와 함수, 심지어 단순한 정수까지 모든 것이 객체입니다. 이러한 이유로 프로그래머는 메서드 체인을 사용할 수 있습니다. 많은 코드를 약간의 코드로 줄일 수 있는 곳 루비처럼 깨끗합니다. Ruby는 일반 인간 언어와 거의 흡사하여 상위/중/하위 프로그래밍 차트에서 상위에 위치합니다.
div> 그러나 Ruby는 프로그래머가 사용할 수 있는 방식이 매우 유연하기 때문에 프로그래머 간에 코드를 전달하는 것이 어려울 수 있습니다. 일반적으로 여러 줄로 구성된 코드를 몇 줄로 줄였다가 나중에 한 줄로 줄일 수 있습니다. 이러한 깨끗한 코드가 보기에는 더 좋아 보이지만 여러 줄에 걸쳐 있는 동일한 코드보다 읽기 어렵거나 읽기 어려울 수도 있습니다. 많아야 하는 한 줄의 코드는 해독하기 어려울 수 있습니다. 그는 느긋하기 때문에 Ruby는 매우 비효율적인 프로그래밍 방법을 허용하고 누군가에게 프로그래밍 규칙 집합을 따르도록 강요하지 않습니다.
또한 Ruby는 높은 수준에 있기 때문에 디버깅 악몽이 될 수 있습니다. Ruby는 특히 추상적이므로 어떤 코드 라인이 인터프리터를 잘못된 방식으로 조작하는지 알아내는 것이 어려울 수 있습니다. squo, 세미콜론을 잃는 것만큼 쉬운 일이 아니며 종종 내부에서 발생하는 보이지 않는 상호 작용과 연결되거나 거대한 호출 스택에 묻혀 있습니다.
성능
일반적으로 프로그래밍 언어의 성능에 관한 규칙이 있습니다. 기계어에 가까울수록 빨라집니다. 이런 의미에서 프로그래밍 언어가 높을수록 느려집니다. 이 규칙은 Ruby 및 JavaScript에 적용됩니다. JavaScript는 빠르지 않습니다. C ++와 같이 더 빠르게 컴파일된 언어와 비교할 수 없습니다. 그러나 Ruby는 JavaScript를 페라리처럼 보이게 합니다. 벤치마크의 경우 Ruby는 JavaScript(node.js로 실행)보다 50%에서 200% 느린 평균 속도를 유지합니다. JavaScript에서 30초 미만이 소요되는 작업은 Ruby를 완료하는 데 약 8분이 소요될 수 있습니다.
Ruby는 기본 상황에서 더 느립니다. 그 때 우리는 이해하기 어려운 것을 집어넣고 언어가 그것을 이해하는 데 걸리는 시간을 측정합니다. 현실 세계에서 웹 애플리케이션을 구축할 때 항상 만델브로트 프랙탈을 풀 필요는 없습니다. 이러한 의미에서 많은 Ruby 팬은 Ruby가 다른 언어에 비해 매우 빠르며 느리지만 그렇지 않으면 잘 작동한다고 주장합니다. 이 주제는 격렬한 논쟁의 주제이지만 AirBnB, Kickstarter 또는 Apple.com과 같이 Ruby가 잘 작동하는 기능적 예가 많이 있습니다. 성능은 일반적으로 완벽한 타이밍이나 크고 복잡한 계산이 필요한 경우에만 문제가 됩니다.
두 언어 모두 뒤에 큰 커뮤니티가 있습니다. JavaScript 제품군은 더 크고 많은 매개변수에서 가장 많이 사용되는 언어로 간주됩니다. 인터넷의 거의 95% 이상을 소비합니다. 사용 가능한 모듈과 패키지에서 그는 여기에서 달까지의 거리에서 승리합니다. Ruby와 Rails는 수천 개의 모듈을 사용할 수 있지만 npm(node.js의 경우, 다시 JavaScript)에는 800,000개 이상의 모듈이 있으며 대부분은 오픈 소스이며 대부분은 상용으로 무료입니다.
그러나 Ruby는 사용하기 훨씬 쉬운 언어이므로 커뮤니티도 마찬가지입니다. Ruby는 초보자에게도 친절한 언어이기 때문에 일반적으로 초보자에게 도움이 되고 친절한 것으로 간주됩니다. 커뮤니티도 매우 활동적이어서 문서화가 상당히 잘 된 언어입니다. Rails용 Gem 라이브러리는 node.js용 JavaScript 카탈로그만큼 크지는 않지만 모듈은 신중하게 설계되었습니다.
경력 관점
JavaScript는 인터넷을 지배하고 Rails는 사용하기 쉽지만 JavaScript의 성능이나 시장 점유율이 부족합니다. 그렇지만 Ruby는 새로운 언어를 배우려는 사람들에게 여전히 가치 있는 투자입니다. Ruby는 배우기 쉽기 때문에 제2외국어로도 잘 작동합니다.
작성 당시에는 Indeed.com 은 미국에서만 Ruby 개발자 및 프로그래머를 위해 일하는 I의 16,000개 이상의 광고를 제공합니다. Ruby 개발자는 또한 많은 돈을 벌고 있습니다. 평균적인 Ruby 개발자는 일반적으로 연간 $50,000에서 $200,000 이상을 벌어들일 것으로 예상할 수 있습니다. 인디드에 따르면 이 모든 직업이 나열되어 있는 미국 Ruby 개발자의 전국 평균은 연간 $123,154 .
많은 사람들이 JavaScript가 주머니에 넣고 다닐 수 있는 최고의 언어라고 말할 것입니다. 그들이 생각하지 않습니다. 당신은 잘못. JavaScript 전문가가 될 생각이 없더라도 JavaScript를 배우면 개발자의 삶, 특히 전체 스택 개발자의 삶에서 더 많은 도움이 될 것입니다. JavaScript를 관심의 중심에 둘 계획이라면 그것도 나쁘지 않은 생각입니다. 이전에 사용한 것과 동일한 사이트인 인디드에는 거의 60,000개의 JavaScript 작업이 있습니다. 인디드에서 자바스크립트 개발자의 평균 급여는 다음과 같습니다. $ 113,615 연간 .
두 선택 모두 큰 전망이 있지만 둘 중 하나를 선택해야 한다면 JavaScript가 기본 언어입니다. 향후 몇 년 동안 인터넷이 바뀌지 않는 한 JavaScript는 아무데도 갈 수 없습니다. Ruby의 미래는 덜 확실하지만 항상 더 많은 JS 개발자가 필요합니다.
Shop
Best laptop for Excel
$
Best laptop for Solidworks
$399+
Best laptop for Roblox
$399+
Best laptop for development
$499+
Best laptop for Cricut Maker
$299+
Best laptop for hacking
$890
Best laptop for Machine Learning
$699+
Raspberry Pi robot kit
$150
Latest questions
PythonStackOverflow
Common xlabel/ylabel for matplotlib subplots
1947 answers
PythonStackOverflow
Check if one list is a subset of another in Python
1173 answers
PythonStackOverflow
How to specify multiple return types using type-hints
1002 answers
PythonStackOverflow
Printing words vertically in Python
909 answers
PythonStackOverflow
Python Extract words from a given string
798 answers
PythonStackOverflow
Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?
606 answers
PythonStackOverflow
Python os.path.join () method
384 answers
PythonStackOverflow
Flake8: Ignore specific warning for entire file
360 answers
Wiki
Python | How to copy data from one Excel sheet to another
Common xlabel/ylabel for matplotlib subplots
Check if one list is a subset of another in Python
How to specify multiple return types using type-hints
Printing words vertically in Python
Python Extract words from a given string
Cyclic redundancy check in Python
Finding mean, median, mode in Python without libraries
Python add suffix / add prefix to strings in a list
Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?
Python - Move item to the end of the list
Python - Print list vertically