Clasp: Common Lisp Using LLVM and C++ for Molecular Metaprogramming [video]
youtube.com
youtube.com
I have a lot of respect for these guys; I had a few new ideas for ways of implementing Common Lisp, but decided not to when I realized with the amount of free-time I have, it would be about a decade of work.
I've spoken to Robert online, and he mentioned that a lot of people told him a from-scratch implementation was doomed to fail. The only reason those people were wrong was in that they underestimated his tenacity.
If you read the Feynman speech that he references at the beginning, he actually mentions that as you scale machines down, things like mechanical rigidity will degrade and you will need to change your design rules accordingly. I always assumed that when you reach the molecular level, thermal motion and the constant bombardment by water molecules would mean that the only viable option is to use proteins, just like nature does, so it's very interesting to see that this guy is aiming to use more rigid structures at the molecular level. I guess this is a way to reduce the complexity (degrees of freedom) compared to designing protein tertiary structure. I wonder if this is too constraining though, he admits he has yet to figure out how to build mechanical machines using this approach, and intuitively I'd expect that to be very difficult with this degree of rigidity. You might need the additional flexibility of peptide chains to do many of the interesting things that are possible.
He does point out the advantage of durability, but this raises the obvious issue that one of the questioners alluded to, namely toxicity/pollution risk. I'd think degredation by biological or other means would be a feature, not a bug, since as he points out, even conventional plastics are a huge pollution problem.
Fascinating stuff nonetheless.
Re: rigidity; I'm curious (apologies for not having read your papers) how you define "just enough" flexibility, and how your design tools take freely moving components into account. Would you agree with my intuitive feeling that there's a tradeoff between designability and functionality, and that your spiroligomer work sits between rationally designed protein structures (very hard problem) and Drexlerian molecular-scale gears and ratchets (similar, determinsitic design rules as in macroscopic systems)? Or, do you feel that anything protein "machines" can do, spiroligomer machines can do too?
I recently started a startup that has molecular nanotechnology as the end goal, and my thinking has been that the flexibility of proteins is an essential element in achieving the capability to design and manufacture with atomic precision, and that the concomitant complexity of the large numbers of degrees of freedom can be tamed with a data-driven approach leveraging machine learning algorithms. I'd love to hear if you have any thoughts on this, and how it relates to the spiroligomer approach.
Macros are truly the way up if we are to escape the gravity well of calculus for bio chemistry. How else to gain delta v?
https://github.com/drmeister/clasp
Do any of this from scratch and your productivity will plummet:
LLVM for compiling; Boehm for garbage collection; GMP for bignums; Readline for interactivity; C++11 for ... cough ... oh will you look at the time---lesson is over for today, grasshoppers!
The Boehm GC is only so it doesn't run out of RAM while bootstrapping, it uses the Ravenbrook MPS precise garbage collector once it's bootstrapped.
Also note that Christian reported that Ravenbrook was very responsive when he discovered a few deficiencies in the MPS library.
Also he used clang to walk his C++ code to automatically generate information in order to enable precise GC of C++ objects.
I did watch the lecture, I do know how many libraries he used...