picking programming packages

11
Principles and practices for picking powerful programming platforms, packages, and plugins Abe Gong CSAAW Jan 2012

Upload: abe-gong

Post on 04-Dec-2014

558 views

Category:

Technology


0 download

DESCRIPTION

My presentation to the comples sytems workgroup on picking programming packages.

TRANSCRIPT

Page 1: Picking programming packages

Principles and practices for picking powerful programming

platforms, packages, and plugins

Abe GongCSAAWJan 2012

Page 2: Picking programming packages

Picking programming packages

Getting the right tools matters.

Page 3: Picking programming packages

Picking programming packages

It matters a lot, but we never talk about it.

Page 4: Picking programming packages

Picking programming packages

It is a decision we will each face many times.

Page 5: Picking programming packages

Picking programming packages

It's a lot like another decision we often face...

"What should I wear to the thing?”

Page 6: Picking programming packages

What should I wear to the thing?

Clothing Software

Accesorizes well Does it work with other software and tools that you use? Is it extensible?

Matches others Is it a popular package? Are there active forums to get help and updates?

Comfortable Is it well-documented and easy to debug?

Reasonably priced It is open source? Does the University already have licenses?

Fits the occasion Does it do what you want it to do? Really?

Page 7: Picking programming packages

Tools I use

Python – Data acquisition and manipulation R, RStudio, and ggplot – Statistics, data

visualization Hadoop – Really big data crunching Django – Server-side web development HTML, CSS, Javascript, jquery – Client-side

web development Protovis – Client-side data visualization

Page 8: Picking programming packages

Tools I would think about using

D3 – A souped-up replacement for protovis Ruby on Rails – More popular alternative to

Django. Doesn't use python, though. Repast – ABMs with python support PANDAS – A python-based replacement for R?

Page 9: Picking programming packages

Tools I would never use

Java – A perfectly decent programming language, but it does nothing that C++ and python can't do better.

PERL – Like python, but not for humans. NetLogo – A horrible, legacy language that is

difficult to understand and almost impossible to debug. In exchange for sliders, NetLogo will give you bad habits and make you afraid of programming.

Page 10: Picking programming packages

Other links and sources

Picking programming languages:

http://www.tundraware.com/Technology/How-To-Pick-A-Programming-Language/

http://www.awaretek.com/atesterea.html

http://newbiehacker.wordpress.com/2010/01/23/how-to-choose-a-programming-language/

http://blog.aegisub.org/2008/12/if-programming-languages-were-religions.html

http://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software

Kinda random:

http://www.inc.com/guides/choosing-accounting-software.html

http://www.mb-guide.org/medical-billing-and-coding-software.html

http://www.qualitydigest.com/july01/html/gauging.html

http://3d.about.com/od/A-Guide-To-3D-Software/a/Buyers-Guide-To-3d-Software.htm

http://www.lingualogue.com/language-software-reviews.html

Page 11: Picking programming packages

Picking powerful programming platforms...

>> Python

Powerful Flexible

<< Extensible Very popular

Very free