Skip to content
This repository has been archived by the owner on Feb 4, 2023. It is now read-only.

still-dreaming-1/PurposefulPhp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Familiar, high level programming.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages