Yes I agree with this Pharo is a live coding BASED enviroment. For Pharo live coding is not just an easy to use feature it based its entire mentality around the idea of live coding.
Even though Smalltalk borrowed live coding and image format from Lisp we are more "pure" in that regard even compared to Lisp. But one thing to note here is that live coding is not really that useful when used always. At least for me I rely a lot on it for debugging and experimenting. But when I work based on a plan , or code just works I do not care so much about it. So my workflow in the end is semi-live coding because I dont feel I need live coding 24/7 to be super productive. Of course that creates some barriers in the end when tools are not made to work 24/7 on a live coding context. To that extend Pharo is definetly superior and a true live coding enviroment. You are suprised that you can do live coding in C++ but I was trully shocked. My saga to do live coding in C++ started as a joke, something to use to mock C++ ugliness and weakness. But oh boy it did slap it back to my face. The process is again simple, you wrap eveything inside a main loop,and call in this loop functions (C has no objects obvious) or methods if you use C++ from DLLs. Those DLLs obviously contain 99.9% of your code. Because a DLL can be reloaded it allows you not to stop executing and replace code on the fly. The main loop is wrapped inside an exception to make sure the an error will never crash your application, C/C++ exceptions are more powerful than Pharo live coding in that regard because in Pharo if you do anything bad with UFFI and crash it , it will crash for sure. If you keep the DLL small and you use tons of small dlls your compile times will be almost instantenous. You can also with very view lines detect date signature change in source file and trigger background compilation. Again few lines of code. The last mountain is live state, in this case the executable pass a single pointer and instead of the executable handling the memory its actually the dlls that handle it but the executable because it cannot crash or exit will keep the live state running. You can also use memory mapped file to store live state as they perform pure memory dumps. All in all you will end up with 100 lines of code that can be wrapped into a library and reused in the next project with zero setup. Its an one time pain. Will I would recommend C++ over Pharo for live coding .... helll no.... C++ obviously misses a hugely important live coding ingredient which is reflection. We do live coding because we want to interact with those objects ask questions about what is going on and why our code does not work as intended However Python has no such limitation following a very similar design to Smalltalk and being much more powerful language than C++. Python follow very closely the Smalltalk paradigm even though there is not a single mention of Smalltalk , anywhere in the Python community or of live coding. Live coding in C++ has become a huge deal in game development mainly because game development tend to want to change things on the fly and games are so big with extremely long compile times. Unreal has made a huge deal over its ability to hot reload C++ code in its editor , though I do not like its approach so much. Bottom line is yes its easy and simple to do live coding in other languages, not recommended so much in C++ because of its static compiled nature and lack of reflection but for dynamic language like Python it can come pretty close and I speak from experience. At least I have not found something in Python that made me wish I was live coding in Pharo so far, but then yes I still think its better to have a full blown live coding. Also from my limited understanding I have figured out that pretty much every language out there allows for reloading code which is pretty much a very large requirement for live coding. So yes you can live code to an extend, lesser in languages like C++ , more so in language like Python, Ruby etc. Can you get the Pharo experience ? In a dynamic language with the creation of a live coding library you could get pretty close but never exactly the same. Pharo still is the undisputed king of live coding. Why live coding is not a huge thing in coding in general, I am willing to bet it has more to do with coder mentality than language limitation. When you are used to "dead code" workflow it difficult to switch. I struggle a lot to get use to the live coding workflow of Pharo because I had to rewire my brain. But in the end you cannot avoid live coding, there will be always scenarios you would want to change things on the fly, reload code, store live state etc. In the end it more a coder flaw than it is a language flaw. I know we love to blame languages for our mistakes. But in our back of our head we all know we debate over languages that we barely use only 0.000001% of their true potential. We are too lazy and sometimes we need someone to slam our face to the truth to actually see it. And by we I dont mean the Pharo community but human nature by itself. That's exactly what Pharo did for me that motivated me exploring live coding in other languages. If it was not for Pharo I would still be doing the old slow method of correct, compile, restart and repeat till you hate yourself. On Sat, Oct 7, 2017 at 1:57 PM horrido <horrido.hobb...@gmail.com> wrote: > > My point is that indeed you can do with EASE live coding in a numerous > languages, at least to my experience. I have tried only Python and C/C++. > > Until I came upon this thread, I never knew you could do live coding in > Python and C/C++. And I was a professional C/C++ programmer for over 15 > years! > > It is certainly a well-kept secret. I have found very little information on > the web about doing live coding in these languages (in fact, none). This > leads me to believe that the vast majority of Python and C/C++ developers > don't know about, or don't do, live coding. > > Whether it's "easy" is rather subjective. I suspect it's not as easy nor as > convenient as in Pharo. If it were, then live coding ought to be much more > prevalent in the Python and C/C++ communities. After all, what developer > doesn't want to improve their productivity or increase their velocity of > development? > > The key differentiator here, I think, is that live coding is baked into > Pharo/Smalltalk, thus making it natural to use. It is not natural for > Python > and C/C++ programmers. It would be difficult to convince the IT industry to > adopt live coding en masse. > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > >