Rapture is a language inspired by the recent prediction that the world will end on May 21st, 2011, 6 p.m. on the dot (The Bible Guarantees It!) As such, all scheduling in the language is done by making predictions that certain events will run at certain real time dates in the future. When said date inevitably passes without it executing, the program will make an elaborate theological excuse for it not have happening. (e.g. prime_sieve() failed to start because Jesus heard our sincere prayers and spared our CPU from its great burden.)
- Constants are godly, variables are manmade.
- Christian variables, when the rapture begins, are sent into heaven and outputted onto stdout one by one. Sinner variables, however, remain on the earth until the great garbage collection.
- Certain contexts are pure, other contexts are sinful. A pure context can become sinful.
- The program ends when Jesus comes. If Jesus will never come, then the program will run forever (just as a Godless universe would)
- String variables can only be set to contain verses from the King James Bible - failure to do so throws a FalseTeachingException. A highly functional and elaborate Bible object is included in the standard library for assistance with this. No translations into other languages are available because that would ruin the integrity of the one true edition.
- Polymorphism is forbidden - the Theory of Evolution is a false, ungodly teaching. All kinds are created separate.
- Some kind of mechanism is necessary to force you to use concurrency from the various threads created by predictions, otherwise what's the fun?
- 'begat' needs to be used as a keyword operator for something that you'd be likely to chain over and over in a single statement, like pointer access, attribute access, method calling, so you can have long strings like 'X begat Y begat Z begat Q...'
- Predictions can be made not just on dates, but contingent on certain events, like World War III starting
- The timestamp you give for a prediction can not be stated as a raw number - it must be the result of an expression, like (5*10*17)^2
- Rapture respects time zones (which are god-given) but not daylight savings time (which is made by man).