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 > <mailto: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 >