AkashaRepo / prog

Nat's software projects
1 stars 0 forks source link

Hello from me. :octopus: **+** :octocat: `%^)` #1

Open harmonicalchemy opened 5 years ago

harmonicalchemy commented 5 years ago

Hello from me. :octopus: + :octocat: %^)

I see your Python projects here which prompted me to tell you that after all these years, I am getting back into Lisp programming... Well.. (I was never a lisp programmer actually) because I had to get a real job and make money back in the early days when I was first starting out at MIT Lincoln Labs.

Instead of diving deep into the wonderful scientific experimental world of Lisp (which is what I was totally interested in doing - mostly to do music/sound and signal processing etc.) I did the sensible thing and went for the working industry's choice of using the ALGO language family's: C (from Bell Labs) instead of the Scientific CS Geek's Lisp family Common Lisp which was way more powerful for prototyping, experimentation, and even some industry implementation: i.e. Emacs Apple Macintosh (yep... a rip-off from Xerox Park's SmallTalk environment which was influenced by bringing the power of Lisp programming to the End User Experience) and a few other things that are still required today (to run some industry things) which underlying code remains unchanged after 50 or so years!

I don't believe anything created with ALGO based languages has ever lasted that long without going through a complete re-write many times over, including switching programming languages from: C to C++ then Java, Python, Swift, Go, Hascal, Whatever. Actually Hascal was trying to get back closer to what Lisp does, but they choose the wrong parent language to base it on. ML (do you know what ML is?) Look that one up... It was a great idea for mathmetiticans and proofs etc. Lisp was better for programming. They were similar...

I don't want you get the impression that I believe ALGO based languages are bad... not at all bad! (except the new ones that are trying to do something that Lisp could have been better for) I don't want you to think any language is a bad idea... Languages are created to solve some problem and be useful for some purpose that they were designed for... I mean... of course, the entire unix OS family (including all it's derivatives) is based on the original Bell Labs: C (Whereever unix goes, there is C) has lasted 50 years since the PDP11 but for sure the unix kernel has been written over and over again and... Is it even written in C anymore? More like C++ I believe...

Suffice it to say... If I could do it over again... I would have done what my friend Bob Lang (our old System Admin at the MIT Lincoln Labs group) did when our project was shut down by the government... (a couple years after you were born)

Bob got a slacker job at the MIT institute (on campus) instead of continuing to search Government/Industry based jobs. I was so envious because he still got a pretty decent paycheck (reduced of course) but he had a load of free time on his new job to play, attend lectures, and take classes (for free) and also play around with our favorite language Lisp! I spent many lunch hours "up at the tute" with Bob, wishing I could just go back to work in his office rather than driving back out to my new Lockheed Sanders Job...

Bob retired last year (2018 like me) and now he is doing a lot of Lisp programming fun too! What is it about Lisp? Why did it not catch on so well in the beginning? Its the best language for learning AI! It was the basis for the first super computer by Thinking Machines in Massachusetts. Its the best language for anything! (my bias and not true of course) Although many programmers are afraid of it, its surprisingly trivial to learn the basics and jump in programming right away! (i.e. There are only 7 basic things to learn... That's it! Programmers are afraid of that? In order to learn Python you have to learn a bunch more things and you have to set up a lot of things at the top of your program before you can even type one line of code!)

Lisp is hard to master though! Those seven basics are powerful!!! With lisp you can design your own programming language within lisp and run off your merry way using your new language! It must be this power that scares most away. You cannot do that with any other language!

Python is a great replacement to Perl for System Admins, and it is a great language for doing lots of prototyping etc. But Lisp is so much better for such things! Python was originally a cumbersome attempt to make Java (which was supposed to fix the problems of C++) , into more of a language that adds more features that Lisp has built in already!

Whaaat? Why do they keep trying to fix things on the ALGO branch of programming languages? Swift, Go, all of those new languages... They are all trying to do the same... Fix a system that was never designed to do what they want it do to... Come on guys... Lets get back on the Lisp track! Thank you! No not Haskell either! Haskell, Rust... OMG!!! Wake up and smell the lists... um.. Lisps...

Where to start? I have an old PDF document from Thinking Machines titled *Getting Started in Lisp** which I had on my computers and laptops from many years ago. This document is still on line here! I guess Professor Bradley used to work for Thinking Machines... I don't recommend using this doc to copy line for line as a coding example however. It most likely won't work on any new Lisp compilers... It is a great reference just the same however!

The above linked document will make a great companion tuturial for designing your own version of a simple Cellular Automata System (i.e. the game of life, invented by John H. Conway). All the powerful Lisp concepts can be gleaned from this old document which was written for a "parallel" version of Lisp (designed to work on multiprocessor super computers). However it is the Cellular Automata algorithm explanation within this document that will reveal the super powers of Lisp to you early on!

Once you "Get It" you won't be fearful like many seasoned Software Engineers are... We need the younger generation to get us back on track so we can stop building more and more complex engineering to build practical use systems that could have been built much less complex at the end of the day if they were willing to try something completely different...

All those folks using Python (or even Javascript omg!) for AI are doing a great job for sure and adding more and more libraries of cools things to play with... But why Python? Come on... Wouldn't it be way better if we all moved back over to Lisp... The language that was specifically designed for such things? I dream about a massave decentralized network of Lisps. _(a real neural net in the global cloud)

For documents, tutorials etc. the best place to go is: CLiki the common lisp wiki... They recommend reading the book: Practical Common Lisp by: Peter Seibel. The link above is to the on-line version of the book which costs more than $50 for even the eBook version. So take advantage of the free on-line version while it lasts! (also easier to copy and paste examples than dead-tree versions that are even more expensive)!

The best place to find coding examples to try out is: RosettaCode.org (the Akasha Repo of programming Languages!) Here is the search result for Cellular Automata - The Game of Life which lists the code in many different languages! Scroll down the page until you find the Common Lisp example... See how short it is compared to most of the other listings? There is some evidence to prove my statements above... If you search through the RosettaCode database you will find many examples where lisp code does the job in the least amount of programming lines! Usually something that can be implemented well with recursion possibly? Among other things...

OK... That's it... I was only going to share a link with you about Lisp and how it could be better than Python for AI stuff, and ended up writing this volume! You know me though... My computer did not stack overflow but my brain did... lol

harmonicalchemy commented 5 years ago

I wrote the above in the web box instead of composing it within Emacs... So many markdown syntax mistakes! From now on I am sticking to composing all markdown within Emacs because with Visual Markdown VMD. (except quick post/replies like this)

With VMD mode in Emacs, I get instant updates in a side panel while continuing to type in the edit window... Why can't other products do this? I don't care... My newest version of: HarmoincAlchemy - Modular Emacs has everything I need to both publish and also code. Modular Emacs now has a full fledged Lisp IDE (which can be installed as a option). Clone it and try it out... Tell me if my instructions are ok to understand etc. Thanks!

harmonicalchemy commented 5 years ago

Oh.. btw you can also try out RMOO mode as well which is a Harmonicalchemy/Modular-Emacs option when you install it. Tell me what you like about it and ask for features! I maintain my own fork of RMOO now...

harmonicalchemy commented 5 years ago

I will be in town tomorrow... We can talk some more about all this...