codestar







Joined: 25 Dec 2014

Posts: 254



codestar Quote: The problem I have with typeless languages is that it forces us to give names to things that we would normally identify by type (a box, the screen, some pixels). Code: ; bmi.xpm=0 ; compare this to... put 0 into the BITMAPFILEINFO's xPixelsPerMeter Code: x = 0 put 0 into the numeric constant named x Code: macro c.add a , b { a = a + b } x = 1 ; example... y = 2 c.add x , y ; result: x=3 Quote: ... it forces us to give names to things that we would normally identify by type (a box, the screen, some pixels...



draw_rectangle(r);

draw_circle(c); Code: ; draw(box b, style s) ; "draw box b with style s" ; "draw a box named b with ; the style named s" box b style s ; ... draw_box b , s Quote: ("I want to improve Lisp, or C, or whatever") is the problem "improvement of X". Only uses standard names - function, byte, int, etc - recognized by most programmers and the pointer notation in C and M68K ASM - which were afterthoughts. Unique semantics. Example: Code: function test.file locals n get n = text.n t try create f write t , n close try open f read s , n say s close execute f endf 1 while c , c =* p ++, endw , p - s , p -- . p = a , q = b , n >>> 2 loop n , ( u32 ) * p ++=* q ++, endl while s < e , c =* s , * s ++=* e , * e --= c , endw if n = 0 , * p ++= '0' , * p = 0 return s end loop n , c =* s ++, * p ++= c if c = 0 , break , end endl , p -- while c , c =* s ++, * p ++= c , endw , p -- while c = d , c =* p ++, d =* s ++ if c = 0 , break , end if d = 0 , break , end endw , p = c , p - d while n , x = n , x & 1 , x + '0' . * p ++= x , n >>> 1 endw , * p = 0 forever , c =* p ++ if c = 0 , return n , end . x = n , x << 2 , n + x , n + n . n - '0' , n + c endfv Quote: It's not a matter of intelligence; it's a matter of "unlearning" artificial ways of thinking. It's a matter of "getting back to one's roots".



... It's as if a small child was trying to think about nouns and verbs and adjectives when first learning to speak. The problem isn't that that you're "not bright enough" -- it's that you know too much...



Unlearning is a hard thing to do. I've been practising it for the most of my adult life and it still feels as difficult as it probably was in the beginning. Quote: How to be original? My rules to myself:



* Unplug internet, too many distractions

* Forget everything you've learned

* Ignore everyone, especially their thoughts and ideas on programming

* Don't use references unless you absolutely have to

* Think "unique", "what's needed". Avoid looking at your own previous creations. Buddha: "I never see what has been done; I only see what remains to be done"

* Do whatever you need to relax; example: hot bath, coffee, Nesquick, real wine (Gallo, Sutter Home), natural medicine. Make yourself comfortable, concentrate For Plain English, it seems appropriate to omit names, but in Abakis, there are advantages in using names and aliases.What about macros and constants?How could this macro be written in English and not cause conflict with the runtime language? Returns sum in constant a=. Macro parameters are local names only and the usage determines what they are (numeric or symbolic constant, runtime variable, etc).We could say: "draw box r" or "draw r which is a box".Agree. Abakis was designed with no reference and no thought that it should be an. Only uses standard names - function, byte, int, etc - recognized by most programmers and the pointer notation in C and M68K ASM - which were afterthoughts. Unique semantics. Example:Recently, I've been working on C-ish style macro languages in FASMG for many reasons; To help/teach FASMG; No one else here can/will do this; More programmers know C = more users; Easy conversions to/from C; It can be "portable" (multi-CPU, multi OS); To offer an alternative to C (some programmers have no choice but to use C/C++ for work or Android); Never seen a good "improvement of C" with redesigned syntaxes, only additions to C (ie, start with C then add to it); Smaller than TinyCC; It makes Abakis look better in comparison.