The brave new world of software
1 / 22

The Brave New World of Software - PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

The Brave New World of Software. Adam Kemp Staff Software Engineer National Instruments. Back in my day…. Programmers had it tough… No fancy high-level languages (except C…) What’s an “IDE”? Debuggers? Just use printf No Internet (i.e., no Google) Good for you, old man….

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

Download Presentation

The Brave New World of Software

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

The Brave New World of Software

Adam Kemp

Staff Software Engineer

National Instruments

Back in my day…

  • Programmers had it tough…

    • No fancy high-level languages (except C…)

    • What’s an “IDE”?

    • Debuggers? Just use printf

    • No Internet (i.e., no Google)

  • Good for you, old man…

Back to reality

  • Programming is still just as hard

  • Problems keep getting harder as tools get better

  • The tools are never good enough

  • Also applies to hardware


  • RAM

    • Then: 640 kB should be enough for anyone

    • Now: 2 GB minimum

  • Clock speed:

    • Then: 8-10 MHz (“turbo mode”)

    • Now: 2-3 GHz

Moore’s Law

  • The number of transistors on a chip will double about once every 2 years

Clock speed reality check

  • 3 GHz in 2002

    • => 48 GHz next year?

Clock speed history

Speed limits

  • Heat

  • Power

How is that a software problem?

  • “I hate it when the computer gets in the way of my computer science.” – Some LabVIEW developer

The solution: Multi-core

  • Dual-core

  • Quad-core

  • N-core

“Intel pledges 80 cores in five years”

- Headline following Intel Developer Forum

September 2006

How can software keep up?

  • Optimize

    • Only goes so far

  • Do more in parallel

Programming the old way:

void doSomeStuff()





Programming the new way:



void doSomeStuff()












  • Threads are tasks that can be run at the same time as other tasks




Programming Paradigms

  • Procedural/Imperative

    • Sequence of steps executed in order

    • Difficult to visualize multiple threads

    • Difficult to write multiple threads

    • Even harder to write safe code for multiple threads

“Probably the greatest cost of concurrency is that concurrency really is hard...”

– Herb Sutter

Programming Paradigms

  • Dataflow

    • Emphasis on data

    • Data “flows” through the program

Dataflow Example

Control/indicator terminals


Primitives (built-in functions)


  • Data flows through “wires”

    • Produced by output terminals

    • Consumed by input terminals

  • Execution order defined by flow

    • A node runs when it has all of its inputs

    • A node’s outputs are available only after it runs

Dataflow Example

Dataflow Example


  • Programming is just as hard today

  • Hardware is not getting faster

  • Parallel programming is the future

  • Dataflow may be a better way to do parallel programming


  • Learn on your own

    • Keep up with tech trends

    • Work on your own pet projects

    • Work with other people

  • Get an internship

  • Try LabVIEW


  • Login