Language Generation & Gnuphoria & Win32lib & Associative...
- Posted by Hawke <mdeland at NWINFO.NET> Aug 03, 1998
- 640 views
betcha think I cannae combine all those topics into one email--eh? :) here goes...;) according to a report I read recently, re: language generations, it goes something like this, with my personal embellishment: 1st generation is machine language, the almighty begetting ones and zeroes, with all coders saying it is good, then 2nd generation is assembly language, the almighty begetting jmp and mov, with all coders saying it must be dancing and that is good, and so thus it follows that 3rd generation is functional language, the almighty begetting for () and () while, with all coders saying it must be bottoms up and tops down, and that is good. Along came the anointed Gates, and he beget 4th generation upon us laying visual hands to our tired languages, GUI to our do's, and all coders said I found a bug, and that is good. :) Without our knowledge, Prograph was created, and for those of you that haven't heard of it yet, and yes, I know this rapidly goes off topic, potentially injures Rob's feelings, and all that.... patience, bear with me... anyway, Prograph is the first I know of that accomplishes what 4th generation (visual X or OOP based languages are mostly considered 3rd or 4th generation) can only dream of... there is -no- code..... again... no code... it is pure diagrammatically based coding... akin to drawing a flowchart (which *can* be parallel data flowing idioms) and well...executing directly... yeah, blew me flat out my chair practically... finally a language that allows true creativity, object reuse, inherent parallelism, and has zero syntax errors (if you can't draw a line between two "boxes" then the program -wont- let you draw it), a near non-existent learning curve, and comes replete with all the bells and whistles (debugger, tracing blahblahblah). I was impressed, seriously impressed. I want this...dunno any of yall that wouldn't... it's just too sweet... now supposedly, there isn't any actual code created... i.e.: its not like a super fancy visual IDE whereby each "structure" (function, while-do, for-next, if-then) just has a picture and you link the pictures and then the program spits out .e or .ex type files and compiles and runs....no... it supposedly runs -the diagrams- and is inherently parallel that way, since each picture can have multiple lines input to it, and the output from that 'picture' (control structure) will only happen if all the proper inputs are present... akin to methods i suppose. however! I think euphoria, if turned into a really good visual IDE, where each structure had a picture, and the resultant 'flow chart' (end result program) would then be turned into a set of .ew and .exw files and ran. that would be a great direction to take euphoria, PEU, and gnueuphoria. the parallel tasking would be hard, but could be implemented via threading. (see how smoothly i integrated everything to language generation? :) ) how does this equate with associative versus analytical thinking? this would be the first time any of us programming with euphoria could design -both- topdown and bottomup and for that matter horizontally, vertically, outwards and inwards... it would allow both halves and all rooms of the brain to function *simultaneously* while coding. (picture drawing? :)) huge project. yes. the generation of toolboxes alone...whew. need a 'toolbox' or a symbol/picture for fileIO, decision makers, var declar, network connecting, multimedia playing and recording, text and graphic displaying (the Show symbol would handle most of it, using defaults for some Mmedia types or custom forms for other things and would automagically pick what was needed as something got input to it, much like windoze knows what to spawn when you double click), database routines, and loops... to name a few... <dreaming> just drop a symbol on the main drawing board, right click to set any needed properties (values, names, filenames, color...etc) then draw a line to somewhere else... run app...nice? </dreaming> ***** ******* ******** * 2 *----* mul *-+--* show * ***** ******* | ******** ***** | | * 5 *-------/ ************ ***** * tada.wav * | ************ | ######### ******** # 100 #2#-+--* show * ######### | ******** --+--\ | ******* ******** \-* mul *---* show * ******* ******** mults 2*5 and shows the result while *simultaneously* playing the wave file, but only plays the wave after the result (10) is determined. also!, in a parallel thread, 5 is input to a fornext block. the 100 is the end and the 2 is the step (for x=5 to 100 by 2 puts (x) end for) and the result of each iteration is shown AND piped into both sides of a mult block (giving the square) and the square is also shown. all these events happen together...(dreaming!) even just linear program flow drawn this way...sweet take care all--Hawke'