-
Notifications
You must be signed in to change notification settings - Fork 10
/
0244.txt
251 lines (251 loc) · 10.6 KB
/
0244.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
Typeless 언어
Type이 없는 언어들 있죠? 형이 없는
뭐 형, 아우 형이 아니라
어떤 형태, Type
그러니까 뭐 C, C# 이런 거는 integer,
float, string 이게 반드시 들어가야 하지만
자바스크립트 이런 거는
형이 없는 경우가 많죠
그냥 처음에 integer로 만들어 놨다가
나중에 array 대입하면 array가 대입되고
파이썬도 좀 그렇고
한 마디로 스크립트 언어들은 대부분 형이 없어요
예외는 타입스크립트 하나 지금
뭐 다른 스크립트 언어도 있을지 모르겠지만
저는 그게 잘 이해가 안 됐거든요?
일단 형이 없는 게 좋은 거다라고
우기는 사람들도 있어요
어쩌면 종교 전쟁일 수도 있는데
저는 그냥 이게 그 사람들이 진짜
그렇게 믿고 있다고 보지는 않고요
아무리 대답을 들어 봐도
상식적으로 말이 안 되는 얘기들이고
그리고 논거도 굉장히 빈약해요
그냥 그 사람들은 자기가 주로 쓰는
언어들이 이런 부분에서 까이니까
그거를 방어하고 싶은 게 전부인데
차라리 방어를 안 하고 그래 이게 문제다 하지만
이거는 이래서 이런 거다라고 말을 해야 되는데
그게 아니라
Type이 없는 게 좋은 거다
이런 식으로 가 버리니까
이제 그 사람들은
음.. 뭐라 그럴까..
어찌 보면은 좀..
훌륭한 프로그래머가 아니다라는
식으로 많이 사람들이 보게 돼요
그 이유가 뭐냐면
제가 굉장히 몇 번이나 얘기를 했던 것 같은데
Type은 좋은 이유가 뭐냐면
Type이 있는 순간
모든 tool이 편해져요
뭐 IDE, 거기서 이제 Type이 있는 순간
그 Type이 뭔지 알기 때문에 거기서 어떤 함수를
호출할 수 있는지 다 IDE로 보여 줄 수 있고
그러면 일일이 코드 눈으로 확인 안 해 가면서
함수 안 봐 가면서 코딩 막 가능하죠
그리고 두 번째는
사람의 실수를 컴파일러, 아니면 그냥 IDE가
잡아 줄 수 있는 굉장히 좋은 기회가 돼요
이미 형이 있고, 이 형이 아닌
다른 걸 엉뚱하게 쓰고 있다면
아 이거는
이게 문제가 있다라는 걸 컴퓨터가 잡아 줄 수 있어요
그러면 컴퓨터의 도움을 받아 갖고
훨씬 효율적으로 프로그램을 짤 수 있는데
나는
어떻게
어떤 개념으로 보냐면
나는 옛날 한 50년대로 돌아가서
손으로 코딩하고
펀치 홀에 이렇게 펀치, 구멍 뚫은 다음에
홀 펀칭한 다음에
이거 집어넣어 갖고 코딩하겠다
이 얘기거든요?
옛날에 주먹구구식으로 하던 때?
아니면 진공관 끼워 갖고 뭐 이상한..
뭐 어쨌든 간에
결과적으로는 저를 훨씬 효율적으로 만들 수 있는,
도구의 도움이, 이득이 엄청나게 강한데
그걸 버리겠다는 얘기거든요?
그러면 뭐..
일단 코딩을 더 잘하지도 않을 거고
두 번째, 코드 퀄리티도 훨씬 후질 거고
실제 똑같은 얘기로 이제..
구글에서 한동안 파이썬을 밀다가
파이썬 창업자가 결국엔 나갔는데
그 들려오는 속설에 의하면 파이썬을 도입하고 나서
버그율이 확 올라가 갖고 파이썬 빼기로 했다고
그런 얘기도 있어요
근데 저는 그게 말이 된다고 봐요
결과적으론..
저도 열심히 생각을 했어요
그러면 파이썬을 만든 사람도 바보가 아니고
아무도 바보가 아닌데
왜 굳이 스크립트 언어들은 그렇게 형이 없을까?
전 두 가지 이유라고 보거든요
첫 번째는
원래 스크립트 언어가 만들어진 개념 자체가
production, 그러니까 제품을 위한 건 아니었다고 봐요
혼자 편하게 짤 수 있고
그냥 뭐
자바스크립트도 그냥 웹에서 편하게
뿅뿅뿅 짜 갖고 이것저것 바꾸고
이런 정도의 개념을 원했던 거죠
그리고 어찌 보면은 파이썬도 그냥
내 컴퓨터에서 이것저것 테스트해 보거나
빨리빨리 코딩을 짜 갖고 결과를 빨리 보고 싶을 때
그래서 저는 그런 거라고 보거든요
그래서
옛날엔 그게 말이 됐던 게
컴파일 언어 아니면
그런 식으로 인터프리터 언어
그런 식이 많았기 때문에
컴파일
그 옛날 느린 컴퓨터에서
컴파일하고 기다리고 이것보다는
확실히 스크립트 짜 갖고 그냥 Virtual Machine?
그런 걸로 빨리 돌리는 게 훨씬 빨랐겠죠
지금 과연 그런 세대인지는 모르겠어요
지금 굉장히 다른 컴파일러가 빨라지고
뭐 C#이나 자바 이런..
자바는 모르겠다
C# 같은 경우 빨리 짜 갖고 후다닥 돌리기 쉽거든요?
파이썬보다 훨씬 빠를 수도 있어요 지금은
그래서 그런 게 있는데
그게 첫 번째라고 봐요 일단은
스크립트 언어는 처음부터 제품을 제대로 만들고
품질을 신경쓰려고 만든 게 아니라
그냥 갖고 놀기 위해서 나온 게 이유고
두 번째는
제가 최근에
이게 막
파이썬..
그니까 리눅스 환경에서 파이썬 커맨드라인 띄워 놓고
막 팬다 이런 거 막 해 보면서 놀 때
그때 느낀 건데
이 인터프리터 언어들은 대부분이 한 줄 짜고 한 줄 짜고
한 줄 짜고 그때마다 결과를 볼 수가 있잖아요
그니까 컴파일 언어는 보통 다 짜 놓고
돌린 후 가서 Breakpoint 걸고 보는 게 전부지만
뭐 파이썬 같은 언어는 그냥 뭐
array 하나 만들고
그럼 array 값 a[0]에 뭐 있지?
아 이거 있구나
그러면 a[0]하고 a[1]하고 더해 보자
그럼 결과가 뭐지?
이렇게 순서대로 보면서 interactive하게
코딩을 짤 수가 있는 언어거든요?
근데 이걸 짜다가 든 생각이 뭐냐면
예를 들어 제가 변수를 a라고 만들었어요
그래서 a 갖고 막 놀았어요
그러다가 나중에
그래 이거는 됐어
그럼 다음 거 해 보자 그러는데
다음 것도 또 a라는 변수를 만들고 싶은데
형을 다르게 만들어야 돼
그러면 형을 앞에서 지정을 해 줬다면은 형이 충돌이 나고
막 이런 게 있을 거 아니에요 이름 같은 거 쓰면은
형식대로 가는..
그니까 형을 갖고 있는 언어라면
그래서 그런 걸 생각해 보니까
아 그럼 내가 그냥 새로운 거를 그냥
코딩을 또 interactive하게 짜고 싶은데
파이썬 쉘을 죽이고 열 게 아니라 그냥
같은 이름으로 새로운 변수를 대입했을 때
그게 그냥 그거 따라 형이 가도 되겠구나
라는 생각을 한 거에요
그래서
이것도 역시 첫 번째에 말씀드린 이유하고
되게 비슷한 것 같아요 어찌 보면은
그냥 갖고 놀기 위해 있는 언어다
그러면
그렇게 무슨
내가 이제
요번에는 a라는 이름을 string으로 쓸 건데 안 된다고?
그럼 내가 a에다 delete라도 눌러야 돼?
이런 말도 안 되는 얘기들이 좀 나오잖아요?
그래서
그런 면에서 보면은 Type이 없는 언어가
반드시 나쁜 건 아니었다고 봐요
그냥 저는 실제 출시되는 제품에
Type이 없는 언어를 쓰면은
거기에서 올 그..
뭐라 그럴까
실수할 수 있는 그 엄청난 양?
컴퓨터의 도움을 받을 수 없는 그런 비효율성?
이런 걸 따질 때
그냥 유명한 언어 몇 개가 현재 쓰이고 있으니까
울며 겨자 먹기로 쓰고 있는 거죠
어찌 보면은 인터넷 익스플로러도 그렇고
그래서
아니 인터넷 익스플로러나 브라우저들이 지원하는
그 언어가 자바스크립트가 거의 유일하니까
그럴 수밖에 없다고 보는데
저는 이제..
웹 쪽이 되게 중요해지잖아요 가면 갈수록 이제
그쪽을 좀 진지한 프로그래밍이라고 보고 있고
그리고 이제 자바스크립트에 이제 뭐 온갖
떡칠을 해 갖고 어떻게든 뭘 하고 싶어 하는데
저는 이거는 머지 않아 바뀔 거라고 봐요
그냥 집에서 단순하게 장난으로 코딩하던 애들이 아니라
진짜 제대로 된 제품을 만드는
애들이 들어오기 시작하면은
걔네들은 분명히 퀄리티를 신경을 쓸 거고
그 퀼리티가 망가지는 걸 막기 위해서
어떻게든 Type이 있는 언어로 갈 거고
그럼 현재 가장 좋은 언어 두 개는
커피스크립트, 타입스크립트인데
둘 다 자바스크립트로 가는 거죠 결과적으론?
현재 지원하는 거는 타입스크립트가 좀 더 좋다고 보고
그러나 저는 이것도 아직 중간 단계라고 봐요
결과적으론
최종적으로는 Type을 지원하는
언어가 모든 브라우저에서 돌 거고
지금 그게 이제..
예전에..
누구지?
종찬님인가?
이름이 기억이 안 나
종천인가
종찬인가
둘 중에 하나인데
그분 웹 쪽을 주로 많이 하시거든요?
그분이 보여 준 것 중에 와슴이라고,
WASM이라고, 웹어셈블리라고
어떤 언어로 짜든 간에
그 언어로 컴파일이 되고, 중간 언어로
그럼 이제 그거를 브라우저가 알아서 돌린다
그니까 어찌 보면은
컴퓨터에 컴파일했을 때 어셈블리 나오듯이
웹에서 이해하는 어셈블리가 나오게
그거를 지금 추진 중이더라고요
그 예전에 구글에서 Native Client,
피나클(PNaCl) 그거 만들었던 애들하고
파이어폭스에서 asm.js? 그거 만들었던 애들하고
또 아마 마이크로소프트도 지금 들어가 있을 거에요
그렇게 가장
각자 자기들이 브라우저 성능 높일려고
자바스크립트 성능 높일려고 했던 일들
걔네들이 다 모여서 이제 표준을 만들고 있더라고요
그래서
제가 봤을 땐 그게 훨씬 더 가능성 있는 일을 것 같고
그게 그렇게 된다면
결과적으로는..
어느 언어를 쓰든 간에 컴퓨터에서 도는
코드를 만들 수가 있잖아요 현재
그게 컴파일 과정이잖아요?
그거처럼 웹도 언어에 상관없는
날이 올 수도 있을 것 같아요
그러면 뭐 C#으로 짜든 뭐 하든
컴파일한 다음에 올리면 되니까
결과적으로는 그렇게 가고 있지 않나라는 생각이 들고
어쨌든 오늘 했던 얘기는 그냥
Typeless 언어에 대해서 저는 그냥 여태까지
아 뭔가 안 좋아라고 생각을 하고 있었는데
안 좋은 이유는 확실히 알았죠
근데 Typeless 언어가 왜 나왔는지조차를 몰랐었는데
생각해 보니까 아 이래서
나왔겠구나라는 생각이 들어 갖고
그냥 그거를 공유하고 싶었네요
예 포프였습니다