what programming language should we use tomorrow n.
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

  • 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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
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


  • 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
  • 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)


Intel Pentium 4 640 (3.2GHz)


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
  • 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



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?
  • 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
  • NVidia Supports CUDA for GPGPU
    • C-like GPGPU program language
    • Tesla series graphic card for CUDA
  • Revolution Started!
  • 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

















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
  • Multi-core Trend
    • Concurrency is very important
    • High-level language for productivity
    • Functional can be answer
  • 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…
  • Tim Sweeney's talk at POPL06 and CEDEC 2008
  • Wikipedia
  • Google Image Search

- End-

Thanks for your attention