Silk Case Study

Embed Size (px)

Citation preview

  • 8/12/2019 Silk Case Study

    1/3

    Company Overview

    Founded in 2010, Silk (Amsterdam, Netherlands) has astructured content management application that offersusers a sophisticated means to organize, visualize andassociate their data, especially when there are links andtags within these data elements. Once created, users canvisualize, navigate, track and query the data. One use is forPR agencies to organize their internal knowledge base as

    well as track patterns and trends of online content for theirclients.

    Requirements

    Like any startup, Silks development requirements revolvedaround speed and scale:

    Quickly prototype ideas and test them against evolvingcustomer requirements. Ability to handle large data sets and transactions. Modify test environment without disrupting test users. Bring test environment into production seamlessly. The backend software infrastructure had to be robust,stable, adaptable and highly scalable to support theexpected growth in 3-5 years.

    Productivity, performance, quality, scalability and agility arethe Holy Grail of software development. In their search forthis programming ideal, Silk discovered that none of thewidely-used languages satisfied all of these goals. The Silkfounders knew that building their service in traditionalprogramming languages would be difficult, time consuming

    and costly. Eager to bring their vision to market ASAP andhaving a limited staff, they wanted to skip the prototypinghurdles that most programming languages presented. Thismeant writing quality code the first time around.

    Case Study

    Industry/Application

    Web structured content managementapplication.

    Development Requirements

    Requirements revolved around speedand scale:

    Quickly prototype and test ideasagainst evolving customer needs.Ability to handle large data sets andtransactions.Modify test environment withoutdisrupting test users.Bring test environment intoproduction seamlessly.The backend software infrastructurehad to be robust, stable, adaptableand highly scalable to support theexpected growth in 3-5 years.

    Haskell Solution/benefits

    Saved hundreds of hours testing anddebugging.Programmers can focus on realprogramming and innovation, insteadof grunt work.Delivered on all aspects ofproductivity, performance, quality,

    scalability and agility

    Haskell enabled us to get intomarket in less than half the time!

    --Erik Hesselink Lead Developer

    Silk Structured Content Management

    We just didnt have the resou rces to spend ourvaluable time on hundreds of hours of testing anddebugging during our prototype stages.

    --Salar al KhafajiCofounder, CEO

  • 8/12/2019 Silk Case Study

    2/3

    We used the SNAP libraries and

    Happstack framework to build areliable web architecture for ourapplication. This enabled us toapply the features and benefits ofthe Haskell language to web siteand service development.

    --Erik Hesselink Lead Developer

    Haskell is the Solution

    In Haskell, Silk found the perfect solution:

    Feature Benefit

    An abstract type system with compile-time typechecking that allows program interfaces to bespecified and validated. This documents theintent of the program and enforces codeconformity at compile time.

    If a coder violated the type definitions thecompiler would catch the inconsistencies.

    Pure functional programming that removes theinterdependencies between code segmentscaused by shared variables and objects.

    Software can be developed, refactored,extended and deployed with very low errorrates.

    Functions and modules can be parallelized andscaled to run across a large number ofprocessors and cores.

    Extensive collection of libraries which providehigh-level type abstractions and higher orderfunctions.

    Can be applied to a large variety of problemsand data types.

    Simple abstract functions that can be composedor chained together into sophisticatedalgorithms.

    Greatly increase code reuse, readability, andvalidation.

    Lock-free software transactional memory (STM). Makes explicitly data sharing easier to usethan traditional thread programming modelsthat use locks or mutexes.

    A proven and reliable 7 th generation compilerevolved over 20 years.

    Generates efficient and error-free code.

    Web frameworks that leverage Haskellscorrectness and scalability features.

    Easily develop web UI applications and backendservices.

    Haskell Half the Time to Market

    Once confident that Haskell provided a solid framework to buildwith, Silk s programmers started coding in earnest. T heirinnovative application includes shared custom index serversdesigned to provide speedy responses to data requests frommultiple users, and UI tools for building custom relationshipsbetween data elements and then rapidly compiling them into agraphical representation for visualization. Haskell performedexactly as expected. The programmers found that Haskell, totheir tremendous relief, allowed them to concentrate more on

  • 8/12/2019 Silk Case Study

    3/3

    innovation and real programming, and much less on operational issues such as repetitive testing anddebugging.

    The end result was an innovative and error-free web application that quickly met customer needs andeasily scaled with increasing customer demand. Most importantly, Silk estimates conservatively thatby using Haskell, their product launched in half the time it would have taken had they used traditionalprogramming tools.

    Copyright 2013, FP Complete Corp. All rights reserved.

    While writing type definitions requires some additional upfront time, it saved us from chasing bugsand performing extensive integration testing. It also helped us understand the code. We could revisitwhat we wrote on a white board over two years before and know exactly what was going on.

    -- Erik HesselinkLead Developer