Skip to content

Instantly share code, notes, and snippets.

@karlkaebnick
Last active January 20, 2017 19:55
Show Gist options
  • Select an option

  • Save karlkaebnick/73557327974f85f8e5ba80c313966a59 to your computer and use it in GitHub Desktop.

Select an option

Save karlkaebnick/73557327974f85f8e5ba80c313966a59 to your computer and use it in GitHub Desktop.
Research of potential web frameworks for use in DoIT

Obviously most of the content on detroitmi.gov will be supported by a CMS. However, there will still be instances where we need to use a web framework to support functionality that the CMS cannot achieve. Because of this I have done some research into what frameworks would be suitable for our purposes. (Note that this is not intended to cover all commonly-used web frameworks - I have intentionally ignored some [web frameworks built in Java or C/C++, for instance] because they tend to present long development cycles that I do not feel are adequate for our purposes. Also, I am leaning strongly towards frameworks that are frequently used / well supported as well as written in a programming language that is itself frequently used, with the intention that it will be easier, when needed, for other developers to work with the frameworks.)

Some of the criteria I have for web frameworks include the following:

  • should be highly productive (i.e., able to let developers achieve high-quality results in minimal time)
  • should be reasonably accessible (since we have only 1 back-end developer, I have put a high priority on using frameworks that are written in well-known and readable languages)
  • should use languages that are not only common, but likely to stay common going forward
  • should be reasonably performant / scalable

Django (built on Python)

  • pros
    • high-productivity
    • good performance / scalability
    • explicit, straightforward syntax (less 'magic' behavior than rails)
    • intended for and widely-used in publishing (e.g., used by Washington Post, National Geographic, Pinterest)
    • widely used in scientific research / engineering / data analytics (used by NASA)
    • python is especially common (more so than ruby)
    • python can easily access ArcGIS via ArcPy
  • cons
    • syntax is less elegant and concise than ruby

Ruby on Rails

  • pros
    • high-productivity
    • broad user base (wide variety of supported functionality)
    • concise, elegant syntax
  • cons
    • sometimes confusing 'magic' behavior
    • poor performance

Grails (build on groovy)

  • pros

    • high performance / scalability (runs on java VM)
    • high-productivity
  • cons

    • built on relatively rarely-known language (groovy)

Laravel (built on PHP)

  • pros
    • widely-known / widely supported
    • good performance
    • PHP popularity
  • cons
    • PHP arguably declining in popularity and difficult to maintain
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment