what programming language should we use tomorrow n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
What Programming Language Should We Use Tomorrow PowerPoint Presentation
Download Presentation
What Programming Language Should We Use Tomorrow

Loading in 2 Seconds...

play fullscreen
1 / 40

What Programming Language Should We Use Tomorrow - PowerPoint PPT Presentation


  • 129 Views
  • Uploaded on

What Programming Language Should We Use Tomorrow. Kim Young Soo. Introduction. Introduction. Tool. Language is a religion So, what language do you believe? So, what language should we use tomorrow? We should choose the language which is good for our purpose. Contents. Introduction

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'What Programming Language Should We Use Tomorrow' - corin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction1
Introduction

Tool

  • Language is a religion
    • So, what language do you believe?
    • So, what language should we use tomorrow?
      • We should choose the language which is good for our purpose
contents
Contents
  • Introduction
  • Trends and Languages
    • Multi-core
    • Productivity
    • Other trends
  • Conclusion
cpu clock limit
CPU Clock Limit

So Hot!

Intel Core 2 Duo E6600 (2.4GHz)

\221,840

Intel Pentium 4 640 (3.2GHz)

\62,900

trend is multi core
Trend is Multi-Core
  • Single Core, Dual Core, Quad Core…
    • Intel Developed 8-Core “Gainestown”
as mr lee presented
As Mr.Lee Presented…
  • Functional Language is good for programming for Multi-core processes
    • Pure function
    • Optimization
  • Thread Safe!
    • Haskell provides STM (transaction memory)
parallel programming in c
Parallel Programming in C
  • OpenMP
    • We can just use “#prgma omp” directive
    • Little more complex than Haskell’s case
  • But… Really ‘Little’?
    • NO!
speed of functional language
Speed of Functional Language
  • Very Slow
    • Lazy Evaluation
    • List Processing
    • Garbage Collection
    • Etc..
trend is multi core1
Trend is Multi-Core…?
  • Single Core, Dual Core, Quad Core…
    • Intel Developed 8-Core “Gainestown”
  • Changing not so rapidly
    • Still, Even quad-core is not so common
    • Expensive
but there is
But there is…
  • In my computer, there is a device which
    • Can process numbers faster than CPU!
    • Have more core than CPU!
    • …more expensive than CPU! OTL
slide14
GPU
  • GPU in the VGA Card
    • To Process Graphic Data
      • Excessive Number of Vertex and Pixel
      • We need Simple but Many and Fast Processer
shading language
Shading Language
  • To fully use GPU to process graphic data
    • We need program for GPU : Shader
    • Decide GPU’s behavior
shading language1
Shading Language
  • Shader in DirectX 8

Simple.vsh

vs.1.1

dp4 oPos.x, v0, c0

dp4 oPos.y, v0, c1

dp4 oPos.z, v0, c2

dp4 oPos.w, v0, c3

dp3 oD1, v3, -c4

mov oD0, c5

mov oT0, v7

shading language2
Shading Language
  • DirectX 9 Provides HLSL

PS_OUT ps( PS_IN In )

{

PS_OUT Out = ( PS_OUT ) 0;

float4 color;

float4 shadow;

color = tex2D( sBase, In.Base.xy );

shadow = tex2D( sShadow, In.Shadow.xy );

color = color * shadow;

Out.Color = color;

return Out;

}

shading language3
Shading Language
  • High-level shading languages
    • CG (C for Graphics)
    • GLSL (OpenGL)
    • HLSL (DirectX)
    • C-like languages
shading language4
Shading Language
  • And next…?
  • Graphic Library to Software Rendering
    • Tim Sweeney(Epic Games)’s speech in CEDEC 2008
    • We need high level language
    • Productivity is also important
  • Basically, shader programming is massive-parallel
    • Shading Language often describe what ‘value’ should be
    • Why cannot be functional?
gpgpu
GPGPU
  • GPU is not only for shading
    • Good to Floating point operations
    • High-end VGA Card’s has >1 Tflops of computing power
    • GPU for General Purpose
gpgpu1
GPGPU
  • NVidia Supports CUDA for GPGPU
    • C-like GPGPU program language
    • Tesla series graphic card for CUDA
  • Revolution Started!
gpgpu3
GPGPU
  • C-like language is not enough
    • Will you only use assembly to single thread?
    • More high-level
    • Language for Parallel computing
  • Functional?!
functional is not a panacea
Functional is not a Panacea
  • Difficult for common programmers in field
    • IO, GUI programming
    • Procedural Algorithms
    • Flow control
    • Why we are still using QWERTY keyboard?
  • Evaluation cost
productivity for small program
Productivity for Small Program
  • Easiness is the most important
    • For programmer
    • Not for programmer
      • Labview
      • Matlab
script language
Script Language
  • Python, Ruby, JavaScript and etc..
  • Very easy to learn
    • Simple grammar
    • Doesn’t need to consider everything
  • Some weakly-dynamic typed language
    • Easy
    • More Intuition Friendly
productivity for big program
Productivity for Big program
  • Big and Bigger!
    • Mabinogi :
    • Windows XP :
    • Mac OS X 10.4 :
    • Debian 4.0 :

1,000,000 Lines

40,000,000 Lines

86,000,000 Lines

283,000,000 Lines

productivity for big program1
Productivity for Big program

Gears of War

Gameplay Code~250,000 lines C++, script code

Unreal Engine 3

Middleware Game Engine

~250,000 lines C++ code

DirectX

Graphics

OpenAL

Audio

OggVorbis

Music

Codec

Speex

SpeechCodec

wxWidgets

Window

Library

ZLib

Data

Compr-

ession

productivity for big program2
Productivity for Big program
  • Modularity
    • Functional Language, OOP…
  • Reliability
    • Memory operation
    • Type checking
  • Concurrency
    • I already mentioned about concurrency

High Level - Functional

web 2 0
Web 2.0
  • Based on web application
    • Dynamic web page
    • Web based application
  • Programming Languages?
    • Mainly Framework Based
    • Easy, Browser-friendly language needed
cloud computing
Cloud Computing
  • Server program should be parallel
  • Consider browser and network
conclusion1
Conclusion
  • Multi-core Trend
    • Concurrency is very important
    • High-level language for productivity
    • Functional can be answer
conclusion2
Conclusion
  • Productivity is very ‘very’ important
    • For small program
      • Easy script language can be answer
    • For big program
      • Must be well-moduled High-Level language
      • Functional language can be answer
c is under developing
C# is under developing
  • C#
    • structured, imperative, object-oriented, event-driven, functional, static-strong typed
  • Microsoft is providing and developing useful paradigm and functions
my recommendation
My Recommendation
  • Learn and use
    • Haskell
    • Python or Ruby or Perl
    • C#
    • And Assembly, C, C++, Delphi , HDL, Java, Matlab, Labview, Lex, Lua, Prolog, Regular Expression, Visual Basic…
reference
Reference
  • Tim Sweeney's talk at POPL06 and CEDEC 2008
  • Wikipedia
  • Google Image Search
slide40

- End-

Thanks for your attention