Google, Amazon 또는 LinkedIn은 현대적인 것으로 간주합니까?
Java는 최신 웹 응용 프로그램에 사용됩니다. 기업 전체를 살펴보면 웹 응용 프로그램 (내부)에 가장 많이 사용되는 언어입니다.
즉, Java는 웹 개발 표준이 모든 사람에게 모든 것이되도록 노력한 기간이었습니다. "반복하지 말아라"는 자바 웹 개발의 xml 지옥과 긴 빌드주기에 대한 응답이었다. 결과적으로 Java (EJB, Struts, JSF 등)는 모든 새로운 패러다임이 극복하려고 시도한 것으로 간주되었습니다.
자바, 언어는 장황하다. 그것은 장단점입니다 (유지 보수에 좋으며 개발자에게는 짜증납니다). Java로 작성하지 않은 많은 최신 언어 기능이 있지만 코딩 시간을 크게 단축 할 수 있습니다 (속성, 이벤트, 클로저, 생성기, 목록 이해 등). 따라서 더 현대적인 언어에서 올 때 실망 할 수 있습니다. 즉, C #이되고있는 쥐 둥지가되지 않고 성숙한 언어에 추가하기가 어렵습니다.
최신 웹 개발에 사용되는 많은 언어가 동적으로 입력됩니다. 이렇게하면 코드를 작성할 때 동적으로 코드를 다시로드 할 수있는 툴링이 가능합니다 (정적 언어 인 jrebel에서는 더 어렵습니다). 웹 개발은 빠른 반복에 적합하기 때문에 동적 재로드는 큰 승리입니다. 그린 필드 프로젝트의 개발주기를 크게 줄이고 UI와 UX를 쉽게 얻을 수 있습니다 (시범 및 오류).
정적 언어도 그 자리에 있습니다. 복잡한 백엔드 로직의 경우 수년간 실행해야하며 문제없이 확장해야하며 매우 빠르며 오류가 없어야하며, 정적으로 유형이 지정된 언어 (Java 또는 C와 같은)가 선호됩니다.
또한 개발자 수 / 회전율이 증가하고 제품이 성숙함에 따라 의도가 높은 사람들이 버그를 도입 할 가능성이 높아집니다. 잘 설계된 Java 프로젝트 (인터페이스, 패턴 및 PHP 뱀파이어를위한 성수)가 시행하는 엄격하고 규율은 장기적인 위험을 줄이는 데 도움이됩니다. 이것은 단위 테스트를 통해서도 달성 할 수 있지만 정적 검사 (및 findbugs 및 clang과 같은 정적 분석기)에서 파생 된 안전망은 필기 테스트로 복제하기 어려운 기본 수준의 코드 적용 범위를 제공합니다. 틀리지 말고 단위 테스트와 기능 테스트가 있어야하지만 실제 조직은 결코 100 % 적용 범위를 달성하지 못합니다. 그들이 확인하는 것은 정적 분석기입니다.
따라서 독립적으로 개발 된 코드 덩어리간에 복잡한 상호 운용성이있는 대규모 프로젝트 (코드 크기보다 팀 크기로 더 정의 됨)에서 Java와 같은 언어가 여전히 선호됩니다. 예를 들어 금융 중개인 (중개인), 금융 거래소 (nasdaq, nyse, .net 실패 후 런던 일 수 있음), 온라인 뱅킹 (거의 모든 것), 이메일 (google), 경매 (ebay)와 같은 대규모 / 복잡한 웹 애플리케이션 등
성능 및 확장 성 측면에서 볼 때 페이스 북의 애플리케이션 파티셔닝 수에 따라 웹 애플리케이션의 확장 성과 성능이 결합 된 Java 플랫폼을 능가하는 것은 없습니다. 예를 들어 트위터는 페일 고래를 다시 바다로 내보내기 위해 자바 VM에서 스칼라에있는 루비 인프라의 많은 부분을 다시 작성해야했습니다. 다른 큰 예를 들었지만 지금 당장 나를 피합니다.
보안도 고려해야합니다. Java 브라우저 플러그인은 보안 취약점으로 인해 많은 어려움을 겪었지만 Java 플랫폼 자체는 더 안전한 플랫폼 중 하나입니다. Java 웹 응용 프로그램은 매우 안전하다는 명성을 가지고 있습니다. 코딩 관행, 라이브러리 및 아키텍처는 SQL 주입이나 버퍼 오버플로와 같은 공격을 가능하게하는 실수를 오랫동안 권장하지 않았습니다. 다른 웹 플랫폼 (레일)은 좋은 보안 평판을 가지고 있지만 Java를 능가하는 플랫폼은 없습니다.
결론적으로, 대부분의 웹 응용 프로그램은 기술적으로 간단합니다. 간단히 말해서, Java는 종종 과도하게 사용됩니다 (우리가 C로 작성했을 때와 마찬가지로) : 그러나 웹앱이 복잡하거나 (백엔드 또는 기타) 개발자가 100 명 이상일 것으로 예상되는 경우 Java를 이길 수 없습니다.
-
개인적으로, Grails는 두 세계의 장점을 모두 제공하기 때문에 Grails를 많이 사용합니다 (루비 세계에서 점점 더 인기를 얻고있는 JRuby에 대해서도 마찬가지입니다).
BTW-PHP의 부상이 정말 당황 스럽습니다. 언어로서의 PHP는 가독성의 펄과 결과 품질의 VB와 거의 같습니다. 그것은 끔찍한 관행을 장려하고 유지 관리가 불가능한 옆에 있습니다. 타사 라이브러리는 예상대로 작동하지 않으며 래리 월 (Larry Wall)을 잘 만들 수있는 구문을 가지고 있습니다. 내가 설명 할 수있는 유일한 설명은 (VB와 같은) 점진적 학습에 적합하다는 것입니다. 다시 말해, 프로그래밍 / 관리에 대해 거의 알지 못하는 유용한 무언가를 달성 할 수 있으며 한 번에 작은 덩어리로 지식을 확장 할 수 있습니다. 입양 관점에서 볼 때 많은 말이 있습니다. 그러나 회사 / MFG 세계에서 "프로그래머"가 작성한 수십억 개의 VB 앱 중 하나를 지원하거나 교체해야하는 모든 사람에게 당신은 아마 고개를 흔들고 은퇴를 계획하고있을 것입니다. :)