Skip to content
Familiar, high level programming.
PHP
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md
composer.json
composer.lock

README.md

PurposefulPhp

Join the chat at https://gitter.im/still-dreaming-1/PurposefulPhp

Familiar, high level programming.

Watch me code it: https://www.liveedu.tv/still_dreaming_1/ (Don't actually do this, it's like watching paint dry. No really stop! Your watching right now aren't you... Well, don't say I didn't warn you.)

Become a patron: https://www.patreon.com/user?u=7627857 (I will make your wildest programming dreams come true! (not really (ok maybe some of them)))

Warning, PurposefulPhp is still in the very early stages. If you look at the code, you will see there is really nothing to it yet. I haven't even tagged any pre 1.0 releases yet. But if you watch some of my recent videos that show some code not yet in this repository, you can see it is on its' way to becoming something interesting.

Here are some ways to describe PurposefulPhp:

  • A way to program via time travel paradoxes (the effect triggers the cause, which triggers the effect).
  • Write what you want the code to do (not how), and let the computer figure out how.
  • A contract fulfiller
  • Contracts as code (instead of contracts plus code).
  • A different approach to the logic/constraint programming paradigm that I call purposeful programming. Compared to other examples of logic programming, this is less niche and more generally useful as a normal way of writing code. Your PHP code for expressing contracts will resemble an SQL like language that essentially implements class methods. Structured programming took away gotos. Functional programming took away assignments. Object oriented programming took away function pointers. Purposeful programming takes away explicitly writing implementations and tests.

PurposefulPhp will provide a way to program on a higher level. Writing code with it will feel familiar to people who are already familiar with writing object oriented code in PHP. As much as it might sound like it, it is not used to write machine learning or AI programs, but I guess you could do that with it if you want. It is a way of expressing classes in terms of contracts.

Once it is working, here some possibilities I think it would eventually open up, which basically amount to different ways the computer will keep doing work for you, even while you sleep.

  • The computer can work around the clock to invent and run new ways of testing your code, making your code more and more tested.
  • The computer can constantly work on improving the efficiency of the algorithms that would be used to fulfill the contracts in your code, making your code more and more optimized over time.

PurposefulPhp is inspired by, and aspires to be something more than the ideas promoted by and contained within:

  • Uncle Bob (Robert C. Martin)
  • TDD (Test Driven Development)
  • BDD (Behavior Driven Development)
  • The transformation priority premise
  • James Coplien
  • Contract driven development
You can’t perform that action at this time.