Python is my No2 does not have to be yours, obviously. I prefer it because of its minimalistic ideology and huge third party library ecosystem that makes it dead easy to code in. But in the end I use it because that's what Blender uses for scripting.
Of course Pharo remains my No1 ;) I hate web development for the usual reasons hence I try to stay as far away from it as possible. Pearl syntax looks too ugly to me. I also use C++ because that's what Unreal uses. My post was not an advertisement for those two languages , just to mention that live coding is possible. I actually hate C++. But it's a necessary evil in my case. On the subject of C macros , there is scons which is a Python library and I suspect there are a ton more out there. Blender which is more than one million lines of C code used it but I think now the rely more on CMake.You could probably build one in Pharo too easily for personal usage. I do not rely on C macros or scons because Unreal has its own build system which handles many common issues with the compiler for me. There is a ton of technology for any kind of problem, just a google away. On Fri, 17 Mar 2017 at 12:37, Dima Makhnin <dimamakh...@gmail.com> wrote: > Why all the hype about python? why not more flexible languages like > JavaScript ES6, or Perl5 that are capable of preserving string to object > literal isomorphism out of the box? > > Of course Dynamic Languages are fine for this, that's essentially what > Objective C is; C + FakeTalk. > > I dream of a future where we can throw out the silly C processor macros > and replace them with a real script engine; eg write c in a php file and > have it generate code at preprocessor time, and if you need help at > runtime, load the php runtime, and interact with it. > > This can be done in any language, For SmallTalk it's something like > objective c but objective c is halfway there, it didn't replace c > preprocessor with inline smalltalk. > > But yeah, hopefully we see more elegant compiletime-runtime interop in the > future. > > On Mar 17, 2017 6:21 AM, "Dimitris Chloupis" <kilon.al...@gmail.com> > wrote: > > > With any tech, there is always this hype cycle with the disullusionment > after the "peak of excitement" and that is needed to reach the > productivity. > > I would urge all Pharo users to keep pushing and not let go of the vision, > because there is really nothing like Pharo around. > > > The one things I love about Pharo is Live Coding. The ability to change > the code while it executes without all this recompile-restart nonsense. > > I also was under the assumption you were when it came to live coding that > none is doing better than Smalltalk and Lisp. So just for fun I went on to > experiment how easy it would be to re implement live coding in C++ and > Python. I was not expecting much if anything. > > With Python it was super easy, I only need a main loop, wrap the loop > inside an exception that in case of an error would catch the error , not > stop the execution but rather using the import tools that come with Python > will import the module. Worked like a charm. > > I use this to develop a blender addon. > > But the really shock was how easy it was to do this with C++. I thought > that memory leaks would make live coding with C++ impossible , I was dead > wrong. Apparently OS exceptions can capture even crashes, they wont allow > the executable to crash. Instead of python modules I use DLLs on windows , > .dylibs on MacOS and .so on Ubuntu. Executable is a tiny loop reloading the > dlls and providing to them a pointer to a very large array that contains > the entire memory of the app, DLLs handle the memory to share it between > objects etc. > > https://github.com/kilon/LiveCPP > > Next step is integrating iPython and also python debugger and testing unit > testing with live coding. > > So yes definetly learn Pharo because it has many hidden gems , if you are > newcomer. But if you miss Pharo , like me, when you code in other language, > despair not, its very easy to recreate at least live coding. > >