Indeed if you google "live coding" you get a lot of audio visual related tools. I have to confess because I am working with graphics, live coding is pretty much bread and butter of my workflow , cannot imagine myself working without it.
When you step out of audio visual and other live performance arts you barely see "live coding" mentioned if not at all. The only exception I know is RunRev's LiveCode , similar to Pharo in the general idea, used to be closed source but now there is an open source version and Apple's Swift's Playgrounds which were inspired by a Smalltalk like demo. Fragmantation is indeed an issue with all programming languages including Pharo but on the other hand is a necessarily evil for innovation because my experience is that where there is unity there is also stagnation of progress but this enters philosophical ground I rather not venture into. On Sat, Oct 7, 2017 at 6:18 PM Offray Vladimir Luna Cárdenas < offray.l...@mutabit.com> wrote: > I think that there are some communities that are more receptive of live > coding, beyond programmers. Scientist, journalists, hacktivists, data > visualizers, musicians, come to mind and I have a better experience and > more openness to live coding with them that with the "classical > programmer/coder". With our recent Data Journalism Handbook, adaptation in > Grafoscopio [1] and our recurrent Data Week hackathon+workshops[2], we're > trying to reach new audiences and communities. > [1] http://mutabit.com/repos.fossil/mapeda/ > [2] http://mutabit.com/dataweek/ > > Cheers, > > Offray > > > On 07/10/17 07:40, Dimitris Chloupis wrote: > > 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 >> >> >