When Will Drupal Die? Keynote talk from Bay Area Drupal Camp 2014

Preview:

Citation preview

WHEN WILLDRUPAL DIE?

Chris Shattuck @chris_shattuck

chris@buildamodule.com

WHEN WILLDRUPAL DIE?

Chris Shattuck @chris_shattuck

chris@buildamodule.com

Darth Blogger

Darth Blogger

Backdrop

Backdrop

?

1 The Competition

(Project Realtime)

http://plnkr.co

http://vimeo.com/36579366 Live Coding - Bret Victor

MEAN Stack

MongoDB Express.js Angular.js

Node.js

Drupal Stack

Apache MySQL

PHPJavaScript

jQuery Symfony

Apache (C++) MySQL

PHPJavaScript

jQuery Symfony

!

Node.js MongoDB JavaScript

Angular.js Express.js

SERVER

DATABASE

SERVER-SIDE LANGUAGE

CLIENT-SIDE LANGUAGE

CLIENT-SIDE FRAMEWORK

SERVER-SIDE FRAMEWORK

Apache (C++) MySQL

PHPJavaScript

jQuery Symfony

!

Node.js MongoDB JavaScript

Angular.js Express.js

SERVER

DATABASE

SERVER-SIDE LANGUAGE

CLIENT-SIDE LANGUAGE

CLIENT-SIDE FRAMEWORK

SERVER-SIDE FRAMEWORK

1

2

3

4

1

Woah, only one language?

Meteor

(Meteor example)

Github vs. Drupal.org 100 pages of comments57 points of comparison

https://groups.drupal.org/node/313068

Realtime application building Realtime interaction DRY to the extreme

(Do not Repeat Yourself)

One language = Faster to learn 2-50x faster on the server

The Competition

Drupal

Project Realtime

2 The Incumbent

(i.e. Drupal!)

5…6…7…82007

20082011

2015

28% of Universitieshttp://w3techs.com/technologies/segmentation/tld-edu-/content_management

150 Governmentshttps://groups.drupal.org/government-sites

23 Fortune 500 Main Siteshttp://www.zyxware.com/articles/4351/list-of-fortune-500-companies-using-drupal-for-their-websites

!

Stable release cycles

Securit

y + bug fixes

Securit

y + bug fixes

Securit

y + bug fixes

People use Drupal

People make

Drupal bette

r People tell us w

hat’s needed

Established audience = Feedback loop

Mature community (for the most part)

Camps, Cons, User Groups Drupal Association Governance Group

Initiatives Code of Conduct Working Groups

Add page programmatically

Create a list of content

Alter a form

Allow manipulation of your code

Share code with others

Use hook_menu()

Use Views

Use hook_form_alter()

Create an alter hook

Share a module on D.o

Best Practices

Node.js

Angular.js

Hype Cycle is (probably) Over

TestBot

Patches require tests Over 500 tests run on every patch

Hours of man-hours saved each run 6000 runs made every month

http://qa.drupal.org

Stable releases Established audience Mature community

Automation Best practices

On the Plateau of Productivity

The Incumbent

Stable releases Established audience Mature community

Automation Best practices

On the Plateau of Productivity

Drupal

Realtime application building Realtime interaction DRY to the extreme

One language(faster to learn)

Project Realtime

Stable releases Established audience Mature community

Automation Best practices

On the Plateau of Productivity

Drupal

Realtime application building Realtime interaction DRY to the extreme

One language(faster to learn)

Project Realtime

CHANGE

The problem with big changes is that they’re hard to understand.

Big changes probably have to be made to stay relevant.

Big changes won’t happen if the community doesn’t support it.

1. OOP 2. 3rd Party Libraries

Controversial Changes in Drupal 8

OOP?

Procedural Object-oriented

Procedural vs. Object-oriented

OOP Benefits:1. Clearer interfaces

2. Unit testing 3. Greater complexity can be managed

4. Components are more re-usable 5. Community of users grows

The cost of OOP

1. Re-training of the Drupal developer community

2. Added complexity in the short-term

3rd Party Libraries

composer.json file from Drupal 8

3rd Party Library Benefits:

1. Less Drupal-specific code to manage 2. More sharing between communities

The cost of 3rd Party Libraries

1. Dashing away of the work of core developers

2. Dependency on other communities 3. Changes have to be approved by

library owners

The End User Workflow

Step 1: Copy and paste from example code until it works.

Step 2: Memorize certain patterns enough to write code from memory.

Step 3: Learn more about the underlying structures when needed.

Is Drupal Doomed?

What is Drupal?Are we still Drupal if we use OOP?

Are we still Drupal if we use Symfony? Are we still Drupal if we convert all our PHP

to JavaScript and use Node.js? Are we still Drupal if it becomes much

harder to contribute?

When will Drupal die?

Are big changes needed to manage Drupal’s growing complexity?

Are big changes needed to keep Drupal relevant to the users it currently serves?

Will we be able to make big changes with the support of the community in the future?

Drupal

Project Realtime

Drupal

Project Realtime

Dru

pal 8 Dru

pal 8

.1.0

Dru

pal 9

Chris Shattuck @chris_shattuck

chris@buildamodule.com

Thank you, you’re awesome!

Chris Shattuck @chris_shattuck

chris@buildamodule.com

Thank you, you’re awesome!

Recommended