스칼라 학습 노트 1 (소개)
4267 단어 Scala
“Put productivity & creativity back in the hands of developers”
1.1. 속도!
자바 의 운행 속도
- JVM 기반 으로 자바 운행 속도 와 비슷 합 니 다.Ruby, Perl, Python 이 큰 프로젝트 의 운영 효율 에 대해 어 쩔 수 없 이 좋 은 컴 파일 러 (Scalac) 와 실행 할 때 (JVM) 가 얼마나 아름 다운 지 알 수 있 습 니 다.
Python / Ruby 프로 그래 밍 속도
- 더 많은 내장 라 이브 러 리 와 데이터 구조 가 있 으 면 프로 그래 밍 이 빠 릅 니 다. Scala 는 자바 와. NET 의 표준 라 이브 러 리 를 완전히 계승 하 는 토대 에서 더욱 풍부 하고 유용 한 함수 라 이브 러 리 를 확장 합 니 다.C + +, D, Go 등 언어 라 이브 러 리 의 발전 상황 (부족 하지 않 으 면 혼란) 을 보면 자바,. NET 과 같은 방대 하고 전면적 인 라 이브 러 리 를 처음부터 만 드 는 것 이 쉽 지 않다 는 것 을 알 수 있다.
라 이브 러 리 는 운행 속도 와 관계 가 있 습 니까? -어느 정도 에 많은 전문가 들 이 라 이브 러 리 에서 충분 한 최적화 알고리즘 을 준비 했다. Scala 는 자바 Collection 알고리즘 을 직접 포장 하거나 직접 호출 했다. 만약 에 풍부 한 라 이브 러 리 가 없 으 면 프로젝트 주기 에 믿 을 수 없 는 알고리즘 과 기능 코드 를 베 끼 는 것 을 피 할 수 없다. 이런 코드 들 은 실행 할 때 귀 찮 게 할 수 있다.라 이브 러 리 알고리즘 을 사용 하면 자체 바퀴 의 운행 효율 을 걱정 할 필요 가 없다.
Scala 는 정적 언어 이 고 Scalac 와 자바 c 는 같은 작가 입 니 다. class 로 컴 파일 한 후에 JVM 플랫폼 에서 실 행 됩 니 다. 최근 20 년 동안 많은 회사 들 이 투입 한 최적화 도 헛 된 것 이 아 닙 니 다.대부분의 응용 프로그램 에서 Scala 를 사용 하면 운행 속 도 를 더 이상 고려 하지 않 아 도 된다. 이것 은 가장 빠 르 지 않 을 수도 있 지만, 적어도 자바 에 접근 하 는 것 은 Groovy, Jruby, Jython 과 같 지 않다. 그렇게 자바 와 수 십 배 에 달 하 는 효율 차 이 를 보인다.
1.2. 사용 하기 쉬 운 데이터 구조
List - map - Tuple 과 그 풍부 한 특성 지원 으로 데이터 구조 문 제 를 해결 할 때 여 유 롭 습 니 다.
List(1,31,4,3,53,4,234) filter (10filter (100>) // List(31, 53)
val (a,b) = List(1, 31,4,3,53,4,234) partition (10>) // a=List(1,4,3,4), b=List(31,53,234)
def info(p:Person) = (name, age, email) // info._1, info._2, info._3
1.3. OOP+FP
l OOP 나 FP 를 적 절 히 선택 하면 표현 이 다른 것 에 비해 더욱 뚜렷 하고 정확 하 다.
l 실제 적 으로 볼 수 있 는 생산력 은 응용 중의 일부 코드, 특히 높 은 지식 이 응 집 된 코드, 예 를 들 어 수학 함수 와 디자인 모델 은 일반적으로 스스로 작성 하지 않 고 기 존의 자바 라 이브 러 리 나 다른 언어 나 위조 코드 에서 나온다.우 리 는 프로 세 스 언어, 대상 언어, 함수 식 언어 중의 코드 를 Scala 코드 로 쉽게 번역 할 수 있다.스칼라 의 혼혈 성 은 우리 의 실제 사용 에 편 의 를 제공 했다.
l 언어 특색 은 프로그래머 의 사 고 를 만 들 수 있다. C + + 도 추상 적 인 기본 디자인 을 사용 하여 다 중 계승 을 할 수 있 지만 자바 의 인 터 페 이 스 는 당신 을 더욱 멀리 가게 합 니 다.자바 도 유형 이 안전 한 정적 방법 (final static) 을 설계 할 수 있 지만, 스칼라 는 당신 이 이렇게 하도록 격려 하고, 점차적으로 OOP 에서 FP 의 반대편 에 도달 하 며, 왕래 가 자유롭다.
1.4. 동적 + 정적
Scala 는 철저한 정적 언어 이지 만 현대 동적 언어의 많은 편리 함 과 유연성 을 갖 추 었 다.
l 불필요 한 형식 설명 이 필요 없습니다.
l 기 존 클래스 에 새로운 방법 을 추가 할 수 있 습 니 다 (implicit 변환 과 Dynamic trait)
l 공통 부 류 를 계승 하지 않 는 다양한 유형의 대상 을 방법 에 전달 할 수 있다.
l 정적 언어 를 할 수 있 는 Refactoring 입 니 다.
l 동적 언어 처럼 테스트 코드 가 업무 코드 보다 많 지 않 아 도 됩 니 다.
l 정적 언어 를 컴 파일 하 는 성능
l Read - eval - print Loop 인 터 랙 션 해석 기 (주: Linux 의 사용자 체험 은 Windows 보다 훨씬 좋 습 니 다)
1.5. DSL
Scala 는 xml / html 처리, 수학 공식 표현, SQL 조회 등 을 더욱 우아 하고 합 리 적 으로 포장 하여 사용자 에 게 더 좋 은 API 를 제공 할 수 있다.이것 또한 스칼라 의 프로그램 도 읽 을 수 있 고 유지 하기 쉽다.
1.6. 복잡 하 다
서로 다른 사고방식: 자바 는 먼저 쓰 고 나중에 생각 하 며 스칼라 는 먼저 생각 하고 나중에 쓴다 (사실은 FP 가 대부분 그렇다).
스칼라 를 초보 자의 첫 번 째 프로 그래 밍 언어 로 기대 하지 마 세 요. 이 언어 는 초급 프로그래머 가 통제 할 수 있 는 것 이 아 닙 니 다. 다시 말 하면 스칼라 코드 를 읽 고 쓸 수 있다 는 것 은 경력 이 풍부 한 프로그래머 이거 나 더 정확 한 것 은 경력 이 풍부 한 자바 프로그래머 임 을 설명 합 니 다.
1.7. 재미있다
"Put" productivity & creativity back in the hands of developers”。사실은 스칼라 에 만 국한 되 는 것 이 아니 라 모든 프로 그래 밍 언어 에 있어 하나의 언어 가 '재 미 있 고' 재 미 있 는 지, 창작 욕 을 불 러 일 으 킬 수 있 는 지 하 는 것 이 가장 관건 적 인 것 이다. 이것 은 언어 스타일, 운영 속도, 도구 지원, 지역사회 문화 보다 중요 하 다.
어떤 사람들 은 한 언어 에 대해 평생 놀 수 있다. 예 를 들 어 Lisp, Haskell, Smalltalk 의 팬 과 같다.그리고 어떤 사람들 은 다음 놀 이 를 계속 찾 습 니 다. 마치 원래 자바 놀 이 를 하 던 일부 사람들 이 더 재 미 있 는 Ruby 와 Python 을 발견 한 후에 자바 를 뿌리 고 후 자 를 버 티 는 것 과 같 습 니 다.Groovy / Grails 의 유 저 는 짧 은 시간 동안 수많은 확장 과 Plugin 응용 을 썼 습 니 다.스칼라 를 배우 면 재 미 있 는 곳 이 많 고 열정 적 으로 고무 적 인 응용 을 쓸 수 있 습 니 다!
1.8. 지역 사 회 를 개발 하 다.
Scala 개발 / 사용자 커 뮤 니 티 분위기 가 좋 습 니 다. 대체적으로 경력 이 풍부 한 개발 자 와 경험 이 있 는 사용자 입 니 다. 지혜 로 운 일 (질문, 싸움) 에 부 딪 히 지 않 습 니 다. 언어 와 도구 의 오픈 소스 를 제외 하고 가장 권위 있 고 가장 좋 은 책 도 모두 무료 입 니 다 (Lift 커 뮤 니 티 포함).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
sbt-native-packager로 docker 이미지의 기반을 amazoncorretto로 만들고 싶습니다.build.sbt에 다음을 추가합니다. 그런데 에서 빌드하려고하면 같은 오류가 발생하여 실패합니다 생성 된 Dockerfile을 들여다 보면 같은 행이 있습니다. 이지만 amazonlinux에서는 addgroup 또...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.