Java를 먼저 배워야 하는 이유: 1부, 기본 타이핑
첫 번째 대학 수업에 등록할 때가 되었을 때 저는 선택에 완전히 압도당했습니다. 생물학 수업, 스페인어 수업, 화학 수업이 많았지만 최악의 경우 컴퓨터 과학 수업이 너무 많았습니다. 옵션을 조사한 후 COMP 401: 프로그래밍 기초부터 시작하기로 결정했습니다. 이름에서 알 수 있듯이 프로그래밍 언어의 기본 사항에 중점을 두었습니다. 구문, 모범 사례, 가장 중요한 것은 데이터 유형과 같은 것입니다. 이 수업을 들었을 때 교수님은 주로 Java에서 이러한 기술을 가르치는 데 중점을 두셨습니다. 거의 모든 대학에서 데이터 유형의 개념을 가르치는 프로그래밍 입문 수업을 시작하지만 지난 몇 년 동안 이상한 일을 해왔습니다. 그들은 프로그래밍 언어에 대한 학생들의 소개로 동적으로 유형이 지정된 언어를 사용하도록 이동했습니다.
Python(동적 형식)과 Java(정적 형식)에서 새 변수 선언을 살펴보겠습니다.
파이썬
new_number = 12
new_string = '12'
자바
int new_number = 12;
String new_string = "12";
언뜻 보기에 Python 버전이 영어와 훨씬 비슷해 보이기 때문에 훨씬 보기 쉽습니다. 그러나 일부 매우 기본적인 프로그래밍 언어 개념을 지나치게 단순화하고 있습니다. 새로운 개발자에게는
new_number
와 new_string
가 메모리에 저장되는 방식에 뚜렷한 차이가 있는지 명확하지 않습니다. 그들에게 하나는 따옴표가 있고 하나는 그렇지 않습니다.새로운 개발자는 다음과 같이 실행하려고 할 수 있습니다.
파이썬
print(new_number + new_string)
# Raises a TypeError
오류가 발생하는 이유를 궁금해할 수 있습니다. 이 특정 표현이 작동하지 않는 이유는 즉시 명확하지 않습니다. 오류 메시지를 읽으면 결국 문제를 발견하게 되지만 코드베이스가 커질수록 문제가 더 커집니다.
문제: 문자열을 영어 문장처럼 생각하십시오. 기억 속의 영어 단어처럼 표현됩니다. 정수는 연산(더하기, 빼기 등)을 수행할 수 있는 수학 숫자처럼 표시됩니다. 이 예는 본질적으로 수학 숫자 12에 "twelve"의 영어 버전을 추가하려는 컴퓨터를 보여줍니다.
좀 더 복잡한 예를 살펴보겠습니다.
파이썬
basic_list = [12, 5, '3', 8, '7']
sum = 0
for n in basic_list:
sum += n
print(sum)
숙련된 프로그래머라면 이것이 왜 문제인지 바로 알 수 있습니다(정수는 메모리에서 다르게 표현되기 때문에 문자열에 추가할 수 없습니다). 그러나 새로운 개발자에게는 이러한 구분이 표시되지 않을 수 있습니다. Python을 첫 번째 프로그래밍 언어로 배우는 경우 데이터가 메모리에 저장되는 방식에 대한 이 지나치게 단순화된 추상화가 매우 혼란스러울 수 있습니다.
Java에서 유사한 프로그램을 살펴보겠습니다.
자바
List<Integer> basic_list = Arrays.asList(12, 5, "3", 8, "7");
// The program halts here before the
// rest of the code runs and throws and error
int sum = 0;
for (int n : basic_list) {
sum += n;
}
System.out.println(sum);
Java는 정적 유형이므로 문자열을 정수 목록에 추가하는 실수를 허용하지 않습니다. 개발자는
basic_list
에 정수만 포함되어야 함을 즉시 알 수 있습니다. 초보 개발자에게는 이것이 처음에는 성가신 것처럼 보일 수 있지만 나중에 개발 프로세스에서 이해하기 어려운 논리 오류를 방지합니다.그 차이는 미묘하지만, 새로운 개발자로서 이러한 차이는 엄청납니다. 나는 많은 친구와 학생들이 첫 번째 프로그래밍 과제를 받은 후 새 프로그램이 예상한 결과를 반환하지 않는 이유에 당황해 저를 찾아왔습니다. 99%의 경우 Python 타이핑 문제가 문제의 근본 원인입니다. 학생들이 타이핑을 이해하기를 원한다면 Java와 같은 안전하고 정적으로 타이핑된 언어(비록 많은 사람들이 구식이라고 생각하지만)로 시작하는 것이 좋습니다.
곧 공개될 시리즈의 2부도 기대해주세요!
Reference
이 문제에 관하여(Java를 먼저 배워야 하는 이유: 1부, 기본 타이핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/benwoodman/why-you-should-learn-java-first-basic-typing-2ino텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)