"Code Podcast" entries

Tools for test-driven development in Scala

Two core Scala libraries support features for mocking and data generation.

Scala, a language designed for well-structured and readable programs, is richly provisioned with testing frameworks. The community has adopted test-driven development (TDD) and behavior-driven development (BDD) with zeal. These represent the baseline for trustworthy code development today.

TDD and BDD expand beyond the traditional model of incorporating a test phase into the development process. Most programmers know that ad hoc debugging is not sufficient and that they need to run tests on isolated functions (unit testing) to make sure that a change doesn’t break anything (regression testing). But testing libraries available for Scala, in supporting TDD and BDD, encourage developers to write tests before they even write the code being tested.

Tests can be expressed in human-readable text reminiscent of natural language (although you can’t stretch the comparison too far) so that you are documenting what you want your code to do while expressing the test that ensures that code ultimately will meet your requirements.

Daniel Hinojosa, author of Testing in Scala, describes the frameworks and their use for testing, TDD, and BDD in this interview.

Highlights from our discussion include: Read more…

The promise of WebGL

Author Tony Parisi on learning WebGL and how it's changing interactive graphics.

WebGL (Web Graphics Library) is a JavaScript API maintained by the Khronos group, a standards body responsible for other open standards including OpenGL.

WebGL allows developers to display hardware-accelerated interactive 3D graphics in the browser without installing additional software — READ: no plug-ins needed. It’s currently supported by most of the major browsers (Chrome, Safari, and Firefox). Though it’s not clear when or if Microsoft will support WebGL, the applications created with WebGL are impressive. Ellie Goulding’s Lights illustrates its power.

Tony Parisi (@auradeluxe), author of WebGL: Up and Running, sat down with me recently to discuss how WebGL is changing the way 3D is developed and displayed on the web. While Flash has long been the dominant tool for developers creating animations, WebGL looks promising. My own take is that if the libraries for WebGL continue to mature I believe WebGL will succeed at becoming the preferred tool of choice for developers.

During our interview Parisi elaborated on the state of WebGL, why he thinks it will succeed and where he sees WebGL being used next. Highlights from our discussion include: Read more…

Checking in on Python

Guido Van Rossum on the state of Python and the two services that are helping to push it forward.

Guido van Rossum is the creator of Python. I recently had the opportunity to talk with him about the state of the language.

You probably don’t realize it, but Python’s capabilities are pushed every time you use YouTube and Dropbox. During our interview, Van Rossum said both of these services are at the forefront of Python’s development.

“Whenever someone clicks on a [YouTube] video, they will see HTML that was generated from Python,” he said. “That’s definitely pushing the limits.” [Discussed 27 seconds in — you can see the scalability presentation that Van Rossum mentions during this segment here.]

On the Dropbox side, Van Rossum said the service’s clients for Linux, Windows and Mac are all implemented in Python. You’re also downloading a miniature version of the Python runtime when you’re using Dropbox. [Noted at 1:20.]

Van Rossum also spoke about the lengthy transition Python has undergone from Python 2 to Python 3. “If you want improvements to your Python … now is the time to start trying out Python 3.” Why? While the changes to the language are actually quite small, with the exception of unicode handling being completely overhauled, Python 3 is a better, faster version of Python. In addition, many third parties like Django are coming on line with libraries and frameworks for Python 3. [Discussed at the 7:01 mark.]

Read more…

Why we need Go

Rob Pike on how Go fits into today's computing environment

Go programming languageThe Go programming language was created by Rob Pike, Ken Thompson, and Robert Griesemer. Pike (@rob_pike) recently told me that Go was born while they were waiting a long while for some code to compile — too long.

C++ and Java have long been the go-to languages for big server or system programs, but they were created almost 30 and 20 years ago, respectively. They don’t address very well the issues programmers see today like use of concurrency and incorporating big data and they’re not optimal for the current programming environment.

One main reason that Go will succeed is how it deals with concurrency. It outpaces Java and C++ as well as Python, Ruby, and all the other scripting languages. It simply provides a better model, with Java a close second, that is able to work within the computing environment into which it was born.

During a recent interview, Pike elaborated on the need for Go and where it fits in today’s programming landscape. Highlights from our discussion include: Read more…

The many sides to shipping a great software project

An interview with Shipping Greatness author Chris Vander Mey.

Chris Vander Mey, CEO of Scaled Recognition, and author of a new O’Reilly book, Shipping Greatness, lays out in this video some of the deep lessons he learned during his years working on some very high-impact and high-priority projects at Google and Amazon.

Chris takes a very expansive view of project management, stressing the crucial decisions and attitudes that leaders need to take at every stage from the team’s initial mission statement through the design, coding, and testing to the ultimate launch. By merging technical, organizational, and cultural issues, he unravels some of the magic that makes projects successful.

Read more…

PowerShell for developers

Doug Finke on why PowerShell isn't just for administrators.

Doug Finke (@dfinke) is an O’Reilly author and software developer. He moderates a PowerShell for Developers forum at powershell.org.

We sat down recently to talk about the PowerShell, which has a new version launching with Windows 8 and Windows Server 2012, and how it has grown with this latest release.

Key points from the full video interview include:

  • New to PowerShell v3: Workflows and many, many more cmdlets [Discussed at the 0:39 mark]
  • Streamline larger programs by incorporating PowerShell [Discussed at the 2:15 mark]
  • Automation equals repeatability [Discussed at the 3:40 mark]
  • PowerShell has a passionate community [Discussed at the 5:41 mark]
  • What does the future hold for PowerShell? [Discussed at the 7:16 mark]

You can view the entire interview in the following video.

Read more…

ASP.NET web API rocks

Why the ASP.NET Web API Framework is an essential tool for RESTful applications.

Glenn Block (@gblock) is an O’Reilly author and senior program manager on the Windows Azure Team at Microsoft.

We sat down recently to talk about the newly released ASP.NET Web API Framework, which he helped develop, and why it will become essential to building RESTful applications.

Key points from the full video (below) interview include:

  • ASP.NET Web API enables a rich set of clients to consume info [Discussed at the 1:47 mark]
  • Find out if one comes out on top – MVC vs. Web API [Discussed at the 2:41 mark]
  • Different clients negotiate content differently – Web API handles this with ease [Discussed at the 5:50 mark]
  • Self hosting is a big deal but beyond that Web API introduces flexibility – you no longer need to use IIS [Discussed at the 9:04 mark]
  • An HTTP Programming Model for Microsoft [Discussed at the 11:04 mark]
  • The newest of the new – Hypermedia, OData, and Web API Contrib [Discussed at the 18:08 mark]

You can view the entire interview in the following video.

Read more…

Mastering iOS development

Matt Neuburg has suffered through the difficult bits of iOS development so you don't have to.

Matt Neuburg is an O’Reilly author and long-time writer for tidBITS.

We sat down recently to talk about iOS development and how best to build solid apps … the secret is take the time to learn the basics.

Key points from the full video (below) interview include:

  • All of the real power in iOS development is in C. [Discussed at the 1:26 mark]
  • Don’t use the Cocoa Framework, let it use you. [Discussed at the 2:56 mark]
  • Even though you don’t have time, understanding the underlying foundation of the OS makes you better a developer. [Discussed at the 8:07 mark]
  • Take a deep breath … Apple is actually working on improving the dev experience. [Discussed at the 10:54 mark]

You can view the entire interview in the following video.

Read more…

Android evolves and so must you

Christopher Neugebauer on Android interfaces, Jellybean, and future updates.

Christopher Neugebauer (@chrisjrn) is an Android and Python developer at Secret Lab and conference coordinator of PyCon Australia.

Chris recently wrapped up his work on Meebo for iPhone, Android and BlackBerry which was recently acquired by Google. I got a chance to talk to him at OSCON this summer about Android development.

Key points from our full discussion include:

  • Great features from Jellybean are available for older OSes. [Discussed at the 2:32 mark]
  • Android devices vary greatly in size and shape – design with this in mind [Discussed at the 4:35 mark]
  • Developers need earlier access to new versions of the OS [Discussed at the 5:32 mark]

You can view the entire interview in the following video.

Read more…

Damian Conway weighs in on new features, best practices and Perl’s future

Moose, Regular Expressions and how Perl 6 is influencing Perl 5

Damian Conway is a prominent member of the Perl community, author and presenter.

Key points from the full video of our recent interview include:

  • Perl 6 might not be here yet but it is seeping into Perl 5. [Discussed at the 1:09 mark]
  • You really should use a more current version of Perl — one reason — Regular Expressions. [Discussed at the 1:48 mark]
  • Moose — making object orientation easier. [Discussed at the 2:38 mark]
  • Best Practice — Test! Test! Test! [Discussed at the 6:08 mark]
  • The Perl Community — 25 years old and still optimizing the fastest dynamic language out there. [Discussed at the 9:42 mark]

You can view the entire interview in the following video.

Read more…