Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Finding Abstractions That Give Data Applications 'Flight'

DZone's Guide to

Finding Abstractions That Give Data Applications 'Flight'

Nailing the best abstractions is a quintessential software challenge, but we are often forced to compromise in order to get the details right for one particular use case.

· Big Data Zone ·
Free Resource

Hortonworks Sandbox for HDP and HDF is your chance to get started on learning, developing, testing and trying out new features. Each download comes preconfigured with interactive tutorials, sample data and developments from the Apache community.

Continuing with our recent theme of abstraction in data applications, Dave King gave a talk last month explaining his design principles for "Making Code Sing: Finding the Right Abstractions." Nailing the best abstractions is a quintessential software challenge. We strive for generality, flexibility, and reuse, but we are often forced to compromise in order to get the details right for one particular use case. We end up with projects that we know have amazing potential for use in other applications but are too hardcoded to make repurposing easy. It’s frustrating to see the possibilities locked away, just out of reach.  

Dave's talk discussed design principles that balance object-oriented and functional programming techniques to create a hybrid abstraction architecture. The result is both high levels of customization and easy reconfiguration. And, like a Lego box filled with potential, it’s really fun, leveraging our creative lateral thinking just as much as our linear mind. How is visualizing genes like visualizing music? How is analyzing countries like analyzing proteins? How does manufacturing line look like a social network? The answer is in the abstractions.

The sharing economy is rapidly becoming a collaboration economy, and the ability to build off of others’ work—and more fluidly off of our own—is key. By writing software with this in mind, and by supporting abstractions that allow for analogies to be drawn between use cases, we give our code wings. 

As you'll see in the video, Dave shared a data application built with these concepts in mind, a version of Conway's game of life. Try it out, take it in some unexpected directions, and tell us about it!

Hortonworks Community Connection (HCC) is an online collaboration destination for developers, DevOps, customers and partners to get answers to questions, collaborate on technical articles and share code examples from GitHub.  Join the discussion.

Topics:
architecture ,soa

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}