Convergence of code and speech

Nicole van der Hoeven

Code















Ada Lovelace: Great minds. from SciShow on YouTube.

Binary code

Ariel Zych on Science Friday.

Machine code

BigDumbDinosaur, BCS Technology Limited

Assembly code

Holley, M. (1980)

Compiled languages

package v1

import (
	"gopkg.in/guregu/null.v3"

	"go.k6.io/k6/core"
	"go.k6.io/k6/lib"
)

type Status struct {
	Status lib.ExecutionStatus `json:"status" yaml:"status"`

	Paused  null.Bool `json:"paused" yaml:"paused"`
	VUs     null.Int  `json:"vus" yaml:"vus"`
	VUsMax  null.Int  `json:"vus-max" yaml:"vus-max"`
	Stopped bool      `json:"stopped" yaml:"stopped"`
	Running bool      `json:"running" yaml:"running"`
	Tainted bool      `json:"tainted" yaml:"tainted"`
}

func NewStatus(engine *core.Engine) Status {
	executionState := engine.ExecutionScheduler.GetState()
	return Status{
		Status:  executionState.GetCurrentExecutionStatus(),
		Running: executionState.HasStarted() && !executionState.HasEnded(),
		Paused:  null.BoolFrom(executionState.IsPaused()),
		Stopped: engine.IsStopped(),
		VUs:     null.IntFrom(executionState.GetCurrentlyActiveVUsCount()),
		VUsMax:  null.IntFrom(executionState.GetInitializedVUsCount()),
		Tainted: engine.IsTainted(),
	}
}

func (s Status) GetName() string {
	return "status"
}

func (s Status) GetID() string {
	return "default"
}

func (s Status) SetID(id string) error {
	return nil
}

github.com/k6io/k6

Interpreted languages

class App extends React.Component {
    constructor(props) {
        super(props)
        this.state = {
            balance = 0
        }
    }
    
    onAdd3 = () => {
        this.SetState({ balance: this.state.balance + 3})
    }

    onWithdraw5 = () => {
        this.setState({ balance: this.state.balance -5})
    }

    render() {
        return (
            <div>
                <button onClick={this.onAdd3}>Add $3</button>
                <button onClick={onWithdraw5}>Withdraw $5</button>
                <p> My balance is {this.state.balance}</p>
            </div>
        )
    }
}

Debuild.co

Code abstraction cake

Speech
















opinion

size

physical quality

shape

age

color

origin

material

type

purpose

Project plan/theme

Kotz, M. (2010).

Epics

Scaled Agile Framework

User stories

As an account owner,

I want to deposit and withdraw money from my account

so that I can save and spend my money.

Behavioral specifications

Feature: Deposit and withdraw

  Scenario: User clicks Add 3
    When the user clicks Add 3
    Then 3 is subtracted from the balance

Speech abstraction cake

Code or speech?

A button that says "Add $3" and a button that says "Withdraw $5".
Then, show me my balance.

A button that says “Add $3” and a button that says “Withdraw $5”. Then, show me my balance.

Code > Speech

Code < Speech

If you’re a coder…





Write expressive code.



Document your work.



Learn to write.

Handley, A. (2014)

If you’re a writer…



Use tools that developers use.





- version control: Git
- Markdown
- static websites like Hugo

Refactor your writing like code.

Clarke, S. (2021).



Learn to code.



General: learnprogramming.online

JavaScript: codeacademy.com

Python for Everybody: py4e.com

Kotlin and Java: developer.android.com/courses

For both


Learn in public.





Build and maintain a personal knowledge management system.

Me.me

Thanks!


Slides: slides.nicolevdh.com

Site: nicolevdh.com / k6.io

Twitter: @n_vanderhoeven /@k6_io

YouTube: k6test

Email: nicole@k6.io

Ada Lovelace: Great minds. (2013). Retrieved in June 2021 from SciShow on YouTube.

Adjectives: Order. Cambridge Dictionary. Retrieved in June 2021 from https://dictionary.cambridge.org/grammar/british-grammar/adjectives-order

BigDumbDinosaur, representing BCS Technology Limited. (2012). Machine code monitor. Retrieved in June 2021 from Wikipedia.

Code Tower of Babel: Abstraction and programming. Learneroo. Retrieved https://www.learneroo.com/modules/142/nodes/744

Computer programming: Learn to code step-by-step. Learn Computer Science Online. Retrieved in June 2021 from https://www.learncomputerscienceonline.com/computer-programming/

devDeejay. (2019). Expressive clean code: Tell beautiful stories with beautiful programs. Better Programming. Retrieved from https://betterprogramming.pub/clean-code-give-meaning-to-your-code-to-exist-f966b3f00848

Epic - scaled agile framework. Scaled Agile Framework. Retrieved in June 2021 from https://www.scaledagileframework.com/epic/

Etter, A. (2016). Modern technical writing: An introduction to software documentation. Retrieved from https://www.amazon.com/Modern-Technical-Writing-Introduction-Documentation-ebook/dp/B01A2QL9SS/

Gherkin reference. Cucumber.io. Retrieved in June 2021 from https://cucumber.io/docs/gherkin/reference/

Handley, A. (2014). Everybody writes: Your guide to creating ridiculously good content. Wiley. Retrieved from https://www.amazon.com/Everybody-Writes-Go-Creating-Ridiculously-ebook/dp/B00LMB5P0G/

Holley, M. (1980). Motorola 6800 assembly language. Retrieved in June 2021 from Wikipeda

k6.io. Load Impact. Retrieved from the GitHub repository: https://github.com/k6io/k6/blob/master/api/v1/status.go

Kotz, M. (2010). Minnesota geospatial commons - test implementation. Retrieved from https://www.examples.com/business/business-project-plan.html

Metrics - k6.io. k6.io. Retrieved in June 2021 from https://k6.io/docs/using-k6/metrics/

Who wants change who wants to change. Meme. Retrieved in June 2021 from https://me.me/i/who-wants-change-who-wants-to-change-20192343

Zych, A. (2015). Write your name in binary code. Retrieved in June 2021 from Science Friday.