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.
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.alios@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/LiveCPPNext 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.��