DZone
Big Data Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Big Data Zone > Finding Abstractions That Give Data Applications 'Flight'

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.

Michael Perez user avatar by
Michael Perez
·
Apr. 18, 16 · Big Data Zone · Tutorial
Like (2)
Save
Tweet
1.97K Views

Join the DZone community and get the full member experience.

Join For Free

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!

application Abstraction (computer science) Data (computing)

Published at DZone with permission of Michael Perez, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Top Soft Skills to Identify a Great Software Engineer
  • Kafka Fail-Over Using Quarkus Reactive Messaging
  • Ultra-Fast Microservices: When Microstream Meets Payara
  • Product Owner Anti-Patterns

Comments

Big Data Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo