SlideShare a Scribd company logo
격변하는 프로그래밍 언어,
이제는 LET IT GO
옥찬호
강연자 소개
• 옥찬호
• 히어로 코리아 수석 엔지니어
• 게임 제작팀 Xpecial / Mine Scroll 팀장
• KAIST 전산학과 석사과정 재학
• 경북대학교 컴퓨터학부 졸업
• 에이콘출판사 Translator
• 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013)
• 3D 게임 최적화와 시각적 효과를 위한
유니티 Shader와 Effect 제작 (2014)
• 다수의 스터디 운영 및 멘토링 진행
• C++ 공부 10년차 (근데 아직 잘 모르겠어요…)
한글은 이제 끝, 영문의 세상으로…
WHAT IS “YOUR” PROGRAMMING LANGUAGE?
TIOBE INDEX FOR AUGUST 2014
TIOBE INDEX FOR AUGUST 2014
VERY LONG TERM HISTORY
IS IT RIGHT…?
WHAT IS “YOUR” PROGRAMMING LANGUAGE
TO MATCH THE PATTERN IN THE DATA?
REGULAR EXPRESSION – C++
REGULAR EXPRESSION – PYTHON
WHAT IS “YOUR” PROGRAMMING LANGUAGE
TO QUERY THE DATA?
QUERY THE DATA “>= 4” IN ARRAY
SIMPLE DATA QUERY – C++
SIMPLE DATA QUERY – C#
MORE COMPLEX…
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
QUERY THE STUDENT ID, SCORE
“>= AVERAGE SCORE OF ALL STUDENTS”
IN THE STUDENT LIST
COMPLEX DATA QUERY – C++
COMPLEX DATA QUERY – C#
WHAT IS “YOUR” PROGRAMMING LANGUAGE
TO CREATE THE BLOG?
SIMPLE BLOG – C++
…?
SIMPLE BLOG – RUBY ON RAILS
WHAT IS “YOUR” PROGRAMMING LANGUAGE
TO SORT THE DATA?
QUICK SORT – C++
QUICK SORT – F#
WHAT IS “YOUR” PROGRAMMING LANGUAGE
TO PROCESS THE FASTEST SPEED?
BENCHMARK – C++ VS PYTHON
BENCHMARK – C++ VS C#
BENCHMARK – C++ VS RUBY
BENCHMARK – C++ VS F#
HOW MANY PROGRAMMING LANGUAGES
ARE THERE IN THE WORLD?
격변하는 프로그래밍 언어, 이제는 Let it go
THE PARADIGM OF COMPUTER PROGRAMMING
IS CHANGING CONSTANTLY.
격변하는 프로그래밍 언어, 이제는 Let it go
EACH PROGRAMMING LANGUAGE HAS
A REASON TO MADE.
RYAN DAHL – THE CREATOR OF NODE.JS
• InfoWorld: What's the main benefit [of Node]?
• Dahl: Node does things a bit differently than other
programming platforms. The main thing is that it handles I/O
very differently, so it doesn't allow the user to lock up the
program, ever. It keeps the user handling new things, so it's
very useful for network programming.
You often are dealing with many people at the same time on
your server, and you're juggling these different connections.
Node encourages the developer to continue to process
connections without blocking.
And because of this model of handling I/O, users tend to find
it easier than developing with a traditional programming
language for servers.
RYAN DAHL – THE CREATOR OF NODE.JS
• InfoWorld: Node.js의 가장 큰 장점은 무엇이라고 생각하시나요?
• Dahl: Node.js는 다른 프로그래밍 플랫폼과는 약간 다른 무엇인가를
가지고 있습니다. 그 중에서 가장 중요한 것중에 하나가 입출력을 매우
다르게 처리하고 있다는 점인데, 즉 Node.js에서는 개발자들이
프로그래밍을 할 때 사용하는 리소스들을 소유하는 것을 허용하지
않습니다. 이런 방법을 사용하게 되면 개발자들은 어떤 리소스를
사용하든지 리소스의 소유권에 대한 걱정없이 비지니스 로직에 집중할
수 있고, 특히 네트워크 프로그래밍에서 매우 유용하게 사용될 수
있습니다. 보통 하나의 서버에서 동시에 수많은 사용자들의 요청을
처리해야 하는데, 이 경우 이렇게 서로 다른 수많은 요청과 연결들을
처리할 때에는 발생할 수 있는 여러 가지 가능성에 대해서 준비를
해야합니다. Node.js는 이런 경우에 개발자들이 네트워크에서 발생하는
요청과 연결 처리에 대한 큰 걱정없이 비지니스 로직에만 초점을 맞출 수
있도록 도와줍니다. Node.js에서 제공하는 이러한 새로운 입출력 모델
때문에, 많은 개발자들이 서버에서 사용되는 기존의 프로그래밍
언어보다 Node.js로 개발하는 것이 더 쉽다고 느끼는 것 같습니다.
MARTIN ODERSKY – THE CREATOR OF SCALA
• InfoWorld: What was your intent in developing Scala?
• Odersky: It was curiosity, whether we could combine
functional and object-oriented programming in a
package that was useful to people [and] would make it
a powerful language... It felt like it would be the right
thing to do, to have very complementary strengths.
Functional programming is in a sense very clean, it can
be very powerful. It makes it easy to construct things
out of simple elements. Object-oriented programming
has a good story when it comes to essentially the
evolution of large systems... I always felt it would be
interesting to combine the two, and I think the success
of Scala has shown that there is something.
MARTIN ODERSKY – THE CREATOR OF SCALA
• InfoWorld: Scala 프로그래밍 언어를 만든 의도가 무엇이었습니까?
• Odersky: 처음에는 그냥 호기심이었습니다. 과연 함수형 프로그래밍과
객체지향 프로그래밍을 개발자들에게 유용하도록 하나의 패키지로
묶을 수 있고, 또 그렇게 묶여진 것이 개발자들을 도와줄 수 있는
유용한 언어가 될 수 있는지 없는지 궁금했습니다. 결과적으로는 서로
부족한 부분을 보완해 주는 장점을 볼 수 있었기 때문에 꼭 해야할
일을 했다고 생각합니다. 함수형 프로그래밍은 매우 깔끔하고
강력합니다. 이러한 함수형 프로그래밍의 특성은 시스템의 기반이 되는
것들을 쉽게 구축할 수 있도록 도와줍니다. 객체지향 프로그래밍은
시스템이 대용량 시스템으로 나아갈때 적용할 수 있는 좋은 선례들을
많이 가지고 있습니다. 저는 항상 이 두가지 프로그래밍을 결합하면
아주 좋은 결과가 나오지 않을까 고민해 왔습니다. 현재의 Scala의
성공은 제가 지금까지 해왔던 이 고민이 헛되지 않았음을 보여주는
것이라고 생각합니다.
BJNARE STROUSTRUP – THE CREATOR OF C++
• InfoWorld: When should a developer opt for native
programming, and when should a developer opt for a
virtual machine-based language?
• Stroustrup: C++ has significant strengths compared to
"virtual machine-based languages" when it comes to
building infrastructure. In other words, where
performance, reliability, resources, and complexity
need to be tightly controlled. For example, you
wouldn't write a JavaScript engine in JavaScript, and
you probably wouldn't write a "first to market" simple
Web app in C++. You would write the foundations of a
Google, an Amazon, a Facebook in C++, but maybe not
the rapidly changing top layers of such systems. C++
comes in strong where power consumption is an issue -
for example, server farms and handheld devices.
BJNARE STROUSTRUP – THE CREATOR OF C++
• InfoWorld: 개발자들은 어떤때에 네이티브 프로그래밍(native
programming)을 선택하고, 또 어떤때에 가상 머신(virtual machine)
기반의 언어들을 선택해야 할까요?
• Stroustrup: C++는 가상 머신 기반의 언어들과 비교해서 시스템의
기반구조(infrastructure)를 만들때는 아주 큰 장점을 가지고
있습니다. 다시말해서, 성능, 신뢰성, 복잡성, 리소스 관리등이 아주
중요한 시스템의 기반구조 개발의 경우 C++가 큰 장점을 가집니다.
예를 들어, 자바스크립트 엔진을 자바스크립트로 구현하는 것은 거의
불가능합니다. 또한 시장 선점을 위해서 간단한 웹 애플리케이션을
구현해야 하는 경우에는 C++를 사용할 필요가 없습니다. 구글,
아마존, 페이스북과 같은 플랫폼의 기반은 C++를 사용해서 구현할
수 있지만, 이러한 플랫폼들에서 자주 변경해야하는 상위 레이어를
C++로 개발하지는 않습니다. 또한 전력 소비(power
consumption)가 중요한 서버 팜(server farm)과 핸드헬드
기기(handheld device)에서 C++는 큰 장점을 가지고 있습니다.
RICH HICKEY – THE CREATOR OF CLOJURE
• InfoWorld: What was your intention in [developing Clojure]?
• Hickey: My intention was to make a dynamic, functional
programming language for the JVM. I had been building
large systems in C# and Java, and the only way we could
do them sanely was to do them in a functional style, but
the functional style is not idiomatic in those languages.
I wanted a language where functional style was idiomatic,
and that's the case for Clojure...
Fundamentally, Clojure gives developers a lot of leverage.
They can write short, succinct programs that work correctly
the first time and are fast enough for production use...
It's very popular among startups because they have new
ideas they need to pursue quickly.
RICH HICKEY – THE CREATOR OF CLOJURE
• InfoWorld: Clojure를 만든 목적이 무엇이었습니까?
• Hickey: 사실 처음 목적은 자바 가상 머신(Java Virtual Machine)을
위한 동적이고 함수형 프로그래밍 언어를 만드는 것이었습니다. 저는
C#과 Java를 사용해서 큰 시스템을 개발해왔는데, 이 두 가지 언어를
동시에 품을 수 있는 유일한 방법은 함수형 스타일을 사용하는 것인데,
하지만 함수형 스타일을 사용하게 되면 이 두 언어가 지원하는
특징들을 제대로 살릴수가 없게됩니다. 그래서 함수형 스타일을
기본으로 가지고 있는 언어가 필요했고, 그래서 만들어진 것이
Clojure입니다. 근본적으로 Clojure는 개발자들에게 많은 장점들을
제공합니다. 개발자들은 처음에는 쉽게 개발이 가능하고 또한 실제
서비스가 가능할 정도로 충분히 빠른 짧고 간결한 프로그램을 작성할
수 있습니다. Clojure는 새로운 아이디어들을 가지고 있고 그
아이디어들을 재빨리 구현하는 것이 필요한 스타트업 회사들에게
매우 인기가 높습니다.
THEREFORE,
YOU SHOULD USE THE PROPER LANGUAGE
DEPENDING ON YOUR PURPOSE.
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
격변하는 프로그래밍 언어, 이제는 Let it go
THERE WAS A TIME WHEN NAILS WERE HIGH-TECH.
THERE WAS A TIME WHEN PEOPLE
HAD TO BE TOLD HOW TO USE A TELEPHONE.
TECHNOLOGY IS JUST A TOOL.
PEOPLE USE TOOLS TO IMPROVE THEIR LIVES.
- TOM CLANCY
BEFORE THE END…
I’D LIKE TO TALK TO YOU.
FIRST,
격변하는 프로그래밍 언어, 이제는 Let it go
AND,
격변하는 프로그래밍 언어, 이제는 Let it go
DON’T FLATTER YOURSELF.
IT’S JUST THE BEGINNING.
THANK YOU!
QUESTION?
UTILFOREVER@GMAIL.COM
HTTP://WWW.FACEBOOK.COM/UTILFOREVER

More Related Content

PDF
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
PDF
온라인 게임 처음부터 끝까지 동적언어로 만들기
PPTX
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
PDF
청강대 특강 - 프로젝트 제대로 해보기
PPTX
C++과 Lua script연동
PPTX
유니티로 해보는 게임 프로토타이핑
PDF
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
온라인 게임 처음부터 끝까지 동적언어로 만들기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
청강대 특강 - 프로젝트 제대로 해보기
C++과 Lua script연동
유니티로 해보는 게임 프로토타이핑
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018

What's hot (20)

PPTX
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
PDF
게임 프로그래밍 기초 공부법
PDF
[Hello World 천안아산] 안드로이드 입문
PDF
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
PDF
왜 Swift를 해야할까요?
PDF
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
PDF
도도와 파이썬: 좋은 선택과 나쁜 선택
PDF
파이썬을 배워야하는 이유 발표자료 - 김연수
PDF
Slipp clojure-1212
PDF
DDD 산책
PDF
eclipse에서 intelliJ IDEA로
PPTX
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
PDF
게임프로그래머에게 배우는 C#1권(버전1)
PDF
Work With Engineer
PDF
NDC2019 - 게임플레이 프로그래머의 역할
PDF
버그 트래킹 시스템 Mantis의 사용 그리고 예제
PPTX
깨끗한 코드 (클린 코드, Clean Code)
PPTX
Open Jig Ware
PPT
게임 프레임워크의 아키텍쳐와 디자인 패턴
PDF
소프트웨어 설계 악취: 기술 부채 관리 방법
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
게임 프로그래밍 기초 공부법
[Hello World 천안아산] 안드로이드 입문
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
왜 Swift를 해야할까요?
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
도도와 파이썬: 좋은 선택과 나쁜 선택
파이썬을 배워야하는 이유 발표자료 - 김연수
Slipp clojure-1212
DDD 산책
eclipse에서 intelliJ IDEA로
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
게임프로그래머에게 배우는 C#1권(버전1)
Work With Engineer
NDC2019 - 게임플레이 프로그래머의 역할
버그 트래킹 시스템 Mantis의 사용 그리고 예제
깨끗한 코드 (클린 코드, Clean Code)
Open Jig Ware
게임 프레임워크의 아키텍쳐와 디자인 패턴
소프트웨어 설계 악취: 기술 부채 관리 방법
Ad

Viewers also liked (20)

PDF
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
PDF
Go로 새 프로젝트 시작하기
PDF
고 언어 소개
PDF
Conociendo a John Smyth
PDF
1031 아로마테라피
PPTX
CS152 Programming Paradigm
PDF
Programming paradigm
PPTX
Hot Trend Lambda Expressions, Compare C# With Java
PPTX
Programming Paradigm
PDF
폰노이만 머신 이해
PDF
그루비 소개 발표자료 - 김연수
PPTX
Standard Algorithms
PDF
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
KEY
[H3 2012] 꽃보다 Scala
PPTX
[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계
PDF
Cmos fabrication layout_v2
PPTX
함수형 프로그래밍 언어 스칼라(Scala) 소개
PDF
Spring Scala : 스프링이 스칼라를 만났을 때
PDF
Lambda 란 무엇인가
PPT
Lec0 fab
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
Go로 새 프로젝트 시작하기
고 언어 소개
Conociendo a John Smyth
1031 아로마테라피
CS152 Programming Paradigm
Programming paradigm
Hot Trend Lambda Expressions, Compare C# With Java
Programming Paradigm
폰노이만 머신 이해
그루비 소개 발표자료 - 김연수
Standard Algorithms
Objective-C에서 Swift로 전향할 때 생각해 볼 거리들
[H3 2012] 꽃보다 Scala
[KGC2014] 두 마리 토끼를 잡기 위한 C++ - C# 혼합 멀티플랫폼 게임 아키텍처 설계
Cmos fabrication layout_v2
함수형 프로그래밍 언어 스칼라(Scala) 소개
Spring Scala : 스프링이 스칼라를 만났을 때
Lambda 란 무엇인가
Lec0 fab
Ad

Similar to 격변하는 프로그래밍 언어, 이제는 Let it go (20)

PDF
월간 리드잇(beta) 2018년 10월호
PDF
3주차 language
PDF
[Part1] Welcome To the Java World
PDF
JavaScript Everywhere from Mobile and Robot
PDF
Slipp 발표 자료 20151212
PPTX
[코드포인천] 나프다 도서 세션
PDF
『행복한 프로그래밍(개정판)』 - 맛보기
PDF
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
PDF
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
PDF
About Programmer 2021
PDF
클로져 소개 강의 (한국정보통신산업노동조합)
PDF
31기 고지웅 "구글오픈소스"
PDF
(책 소개) 한 권으로 읽는 컴퓨터 구조와 프로그래밍
PPTX
Java 그쪽 동네는
PPTX
Open stack 세미나자료_장현정
PDF
OSS개발자 포럼 캠프
PPTX
java_1장.pptx
PDF
1.Startup JavaScript - 프로그래밍 기초
PPTX
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
PPTX
Java (spring) vs javascript (node.js)
월간 리드잇(beta) 2018년 10월호
3주차 language
[Part1] Welcome To the Java World
JavaScript Everywhere from Mobile and Robot
Slipp 발표 자료 20151212
[코드포인천] 나프다 도서 세션
『행복한 프로그래밍(개정판)』 - 맛보기
PHP 개발 생산성을 높여주는 통합 개발 환경 - 이클립스 PDT
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
About Programmer 2021
클로져 소개 강의 (한국정보통신산업노동조합)
31기 고지웅 "구글오픈소스"
(책 소개) 한 권으로 읽는 컴퓨터 구조와 프로그래밍
Java 그쪽 동네는
Open stack 세미나자료_장현정
OSS개발자 포럼 캠프
java_1장.pptx
1.Startup JavaScript - 프로그래밍 기초
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
Java (spring) vs javascript (node.js)

More from Chris Ohk (20)

PDF
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
PDF
Momenti Seminar - 5 Years of RosettaStone
PDF
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
PDF
Momenti Seminar - A Tour of Rust, Part 2
PDF
Momenti Seminar - A Tour of Rust, Part 1
PDF
Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021
PDF
Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021
PDF
Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020
PDF
Proximal Policy Optimization Algorithms, Schulman et al, 2017
PDF
Trust Region Policy Optimization, Schulman et al, 2015
PDF
Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015
PDF
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
PDF
[RLKorea] <하스스톤> 강화학습 환경 개발기
PDF
[NDC 2019] 하스스톤 강화학습 환경 개발기
PDF
C++20 Key Features Summary
PDF
[델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지
PDF
디미고 특강 - 개발을 시작하려는 여러분에게
PDF
[NDC 2018] 유체역학 엔진 개발기
PDF
My Way, Your Way
인프콘 2022 - Rust 크로스 플랫폼 프로그래밍
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
Momenti Seminar - 5 Years of RosettaStone
선린인터넷고등학교 2021 알고리즘 컨퍼런스 - Rust로 알고리즘 문제 풀어보기
Momenti Seminar - A Tour of Rust, Part 2
Momenti Seminar - A Tour of Rust, Part 1
Evolving Reinforcement Learning Algorithms, JD. Co-Reyes et al, 2021
Adversarially Guided Actor-Critic, Y. Flet-Berliac et al, 2021
Agent57: Outperforming the Atari Human Benchmark, Badia, A. P. et al, 2020
Proximal Policy Optimization Algorithms, Schulman et al, 2017
Trust Region Policy Optimization, Schulman et al, 2015
Continuous Control with Deep Reinforcement Learning, lillicrap et al, 2015
GDG Gwangju DevFest 2019 - <하스스톤> 강화학습 환경 개발기
[RLKorea] <하스스톤> 강화학습 환경 개발기
[NDC 2019] 하스스톤 강화학습 환경 개발기
C++20 Key Features Summary
[델리만주] 대학원 캐슬 - 석사에서 게임 프로그래머까지
디미고 특강 - 개발을 시작하려는 여러분에게
[NDC 2018] 유체역학 엔진 개발기
My Way, Your Way

격변하는 프로그래밍 언어, 이제는 Let it go

  • 2. 강연자 소개 • 옥찬호 • 히어로 코리아 수석 엔지니어 • 게임 제작팀 Xpecial / Mine Scroll 팀장 • KAIST 전산학과 석사과정 재학 • 경북대학교 컴퓨터학부 졸업 • 에이콘출판사 Translator • 게임샐러드로 코드 한 줄 없이 게임 만들기 (2013) • 3D 게임 최적화와 시각적 효과를 위한 유니티 Shader와 Effect 제작 (2014) • 다수의 스터디 운영 및 멘토링 진행 • C++ 공부 10년차 (근데 아직 잘 모르겠어요…)
  • 3. 한글은 이제 끝, 영문의 세상으로…
  • 4. WHAT IS “YOUR” PROGRAMMING LANGUAGE?
  • 5. TIOBE INDEX FOR AUGUST 2014
  • 6. TIOBE INDEX FOR AUGUST 2014
  • 7. VERY LONG TERM HISTORY
  • 9. WHAT IS “YOUR” PROGRAMMING LANGUAGE TO MATCH THE PATTERN IN THE DATA?
  • 12. WHAT IS “YOUR” PROGRAMMING LANGUAGE TO QUERY THE DATA?
  • 13. QUERY THE DATA “>= 4” IN ARRAY
  • 14. SIMPLE DATA QUERY – C++
  • 19. QUERY THE STUDENT ID, SCORE “>= AVERAGE SCORE OF ALL STUDENTS” IN THE STUDENT LIST
  • 22. WHAT IS “YOUR” PROGRAMMING LANGUAGE TO CREATE THE BLOG?
  • 23. SIMPLE BLOG – C++ …?
  • 24. SIMPLE BLOG – RUBY ON RAILS
  • 25. WHAT IS “YOUR” PROGRAMMING LANGUAGE TO SORT THE DATA?
  • 28. WHAT IS “YOUR” PROGRAMMING LANGUAGE TO PROCESS THE FASTEST SPEED?
  • 29. BENCHMARK – C++ VS PYTHON
  • 31. BENCHMARK – C++ VS RUBY
  • 33. HOW MANY PROGRAMMING LANGUAGES ARE THERE IN THE WORLD?
  • 35. THE PARADIGM OF COMPUTER PROGRAMMING IS CHANGING CONSTANTLY.
  • 37. EACH PROGRAMMING LANGUAGE HAS A REASON TO MADE.
  • 38. RYAN DAHL – THE CREATOR OF NODE.JS • InfoWorld: What's the main benefit [of Node]? • Dahl: Node does things a bit differently than other programming platforms. The main thing is that it handles I/O very differently, so it doesn't allow the user to lock up the program, ever. It keeps the user handling new things, so it's very useful for network programming. You often are dealing with many people at the same time on your server, and you're juggling these different connections. Node encourages the developer to continue to process connections without blocking. And because of this model of handling I/O, users tend to find it easier than developing with a traditional programming language for servers.
  • 39. RYAN DAHL – THE CREATOR OF NODE.JS • InfoWorld: Node.js의 가장 큰 장점은 무엇이라고 생각하시나요? • Dahl: Node.js는 다른 프로그래밍 플랫폼과는 약간 다른 무엇인가를 가지고 있습니다. 그 중에서 가장 중요한 것중에 하나가 입출력을 매우 다르게 처리하고 있다는 점인데, 즉 Node.js에서는 개발자들이 프로그래밍을 할 때 사용하는 리소스들을 소유하는 것을 허용하지 않습니다. 이런 방법을 사용하게 되면 개발자들은 어떤 리소스를 사용하든지 리소스의 소유권에 대한 걱정없이 비지니스 로직에 집중할 수 있고, 특히 네트워크 프로그래밍에서 매우 유용하게 사용될 수 있습니다. 보통 하나의 서버에서 동시에 수많은 사용자들의 요청을 처리해야 하는데, 이 경우 이렇게 서로 다른 수많은 요청과 연결들을 처리할 때에는 발생할 수 있는 여러 가지 가능성에 대해서 준비를 해야합니다. Node.js는 이런 경우에 개발자들이 네트워크에서 발생하는 요청과 연결 처리에 대한 큰 걱정없이 비지니스 로직에만 초점을 맞출 수 있도록 도와줍니다. Node.js에서 제공하는 이러한 새로운 입출력 모델 때문에, 많은 개발자들이 서버에서 사용되는 기존의 프로그래밍 언어보다 Node.js로 개발하는 것이 더 쉽다고 느끼는 것 같습니다.
  • 40. MARTIN ODERSKY – THE CREATOR OF SCALA • InfoWorld: What was your intent in developing Scala? • Odersky: It was curiosity, whether we could combine functional and object-oriented programming in a package that was useful to people [and] would make it a powerful language... It felt like it would be the right thing to do, to have very complementary strengths. Functional programming is in a sense very clean, it can be very powerful. It makes it easy to construct things out of simple elements. Object-oriented programming has a good story when it comes to essentially the evolution of large systems... I always felt it would be interesting to combine the two, and I think the success of Scala has shown that there is something.
  • 41. MARTIN ODERSKY – THE CREATOR OF SCALA • InfoWorld: Scala 프로그래밍 언어를 만든 의도가 무엇이었습니까? • Odersky: 처음에는 그냥 호기심이었습니다. 과연 함수형 프로그래밍과 객체지향 프로그래밍을 개발자들에게 유용하도록 하나의 패키지로 묶을 수 있고, 또 그렇게 묶여진 것이 개발자들을 도와줄 수 있는 유용한 언어가 될 수 있는지 없는지 궁금했습니다. 결과적으로는 서로 부족한 부분을 보완해 주는 장점을 볼 수 있었기 때문에 꼭 해야할 일을 했다고 생각합니다. 함수형 프로그래밍은 매우 깔끔하고 강력합니다. 이러한 함수형 프로그래밍의 특성은 시스템의 기반이 되는 것들을 쉽게 구축할 수 있도록 도와줍니다. 객체지향 프로그래밍은 시스템이 대용량 시스템으로 나아갈때 적용할 수 있는 좋은 선례들을 많이 가지고 있습니다. 저는 항상 이 두가지 프로그래밍을 결합하면 아주 좋은 결과가 나오지 않을까 고민해 왔습니다. 현재의 Scala의 성공은 제가 지금까지 해왔던 이 고민이 헛되지 않았음을 보여주는 것이라고 생각합니다.
  • 42. BJNARE STROUSTRUP – THE CREATOR OF C++ • InfoWorld: When should a developer opt for native programming, and when should a developer opt for a virtual machine-based language? • Stroustrup: C++ has significant strengths compared to "virtual machine-based languages" when it comes to building infrastructure. In other words, where performance, reliability, resources, and complexity need to be tightly controlled. For example, you wouldn't write a JavaScript engine in JavaScript, and you probably wouldn't write a "first to market" simple Web app in C++. You would write the foundations of a Google, an Amazon, a Facebook in C++, but maybe not the rapidly changing top layers of such systems. C++ comes in strong where power consumption is an issue - for example, server farms and handheld devices.
  • 43. BJNARE STROUSTRUP – THE CREATOR OF C++ • InfoWorld: 개발자들은 어떤때에 네이티브 프로그래밍(native programming)을 선택하고, 또 어떤때에 가상 머신(virtual machine) 기반의 언어들을 선택해야 할까요? • Stroustrup: C++는 가상 머신 기반의 언어들과 비교해서 시스템의 기반구조(infrastructure)를 만들때는 아주 큰 장점을 가지고 있습니다. 다시말해서, 성능, 신뢰성, 복잡성, 리소스 관리등이 아주 중요한 시스템의 기반구조 개발의 경우 C++가 큰 장점을 가집니다. 예를 들어, 자바스크립트 엔진을 자바스크립트로 구현하는 것은 거의 불가능합니다. 또한 시장 선점을 위해서 간단한 웹 애플리케이션을 구현해야 하는 경우에는 C++를 사용할 필요가 없습니다. 구글, 아마존, 페이스북과 같은 플랫폼의 기반은 C++를 사용해서 구현할 수 있지만, 이러한 플랫폼들에서 자주 변경해야하는 상위 레이어를 C++로 개발하지는 않습니다. 또한 전력 소비(power consumption)가 중요한 서버 팜(server farm)과 핸드헬드 기기(handheld device)에서 C++는 큰 장점을 가지고 있습니다.
  • 44. RICH HICKEY – THE CREATOR OF CLOJURE • InfoWorld: What was your intention in [developing Clojure]? • Hickey: My intention was to make a dynamic, functional programming language for the JVM. I had been building large systems in C# and Java, and the only way we could do them sanely was to do them in a functional style, but the functional style is not idiomatic in those languages. I wanted a language where functional style was idiomatic, and that's the case for Clojure... Fundamentally, Clojure gives developers a lot of leverage. They can write short, succinct programs that work correctly the first time and are fast enough for production use... It's very popular among startups because they have new ideas they need to pursue quickly.
  • 45. RICH HICKEY – THE CREATOR OF CLOJURE • InfoWorld: Clojure를 만든 목적이 무엇이었습니까? • Hickey: 사실 처음 목적은 자바 가상 머신(Java Virtual Machine)을 위한 동적이고 함수형 프로그래밍 언어를 만드는 것이었습니다. 저는 C#과 Java를 사용해서 큰 시스템을 개발해왔는데, 이 두 가지 언어를 동시에 품을 수 있는 유일한 방법은 함수형 스타일을 사용하는 것인데, 하지만 함수형 스타일을 사용하게 되면 이 두 언어가 지원하는 특징들을 제대로 살릴수가 없게됩니다. 그래서 함수형 스타일을 기본으로 가지고 있는 언어가 필요했고, 그래서 만들어진 것이 Clojure입니다. 근본적으로 Clojure는 개발자들에게 많은 장점들을 제공합니다. 개발자들은 처음에는 쉽게 개발이 가능하고 또한 실제 서비스가 가능할 정도로 충분히 빠른 짧고 간결한 프로그램을 작성할 수 있습니다. Clojure는 새로운 아이디어들을 가지고 있고 그 아이디어들을 재빨리 구현하는 것이 필요한 스타트업 회사들에게 매우 인기가 높습니다.
  • 46. THEREFORE, YOU SHOULD USE THE PROPER LANGUAGE DEPENDING ON YOUR PURPOSE.
  • 51. THERE WAS A TIME WHEN NAILS WERE HIGH-TECH. THERE WAS A TIME WHEN PEOPLE HAD TO BE TOLD HOW TO USE A TELEPHONE. TECHNOLOGY IS JUST A TOOL. PEOPLE USE TOOLS TO IMPROVE THEIR LIVES. - TOM CLANCY
  • 53. I’D LIKE TO TALK TO YOU.
  • 56. AND,
  • 58. DON’T FLATTER YOURSELF. IT’S JUST THE BEGINNING.