Well I was refering to live coding itself, but you are correct, I have not tried combining with literate coding hence why I was curious about the difficulties you ecountered. I did not know that you focused so much Grafoscopio on iterate coding. Thanks for enlighting me. I never implied that Python was easier in everything compared to Pharo. Afterall kinda misses a huge chunk which is the IDE itself. There lies the challange of live coding as I initially said that we each use it in a diffirent way. Thanks for the link also very enlighting and it is what i wanted, an actual use case. On Sat, Oct 7, 2017 at 5:49 PM Offray Vladimir Luna Cárdenas <[hidden email]> wrote:
|
In reply to this post by kilon.alios
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. [2] http://mutabit.com/dataweek/ Cheers, Offray On 07/10/17 07:40, Dimitris Chloupis
wrote:
|
In reply to this post by kilon.alios
Ok. Glad to help. In the thread I mentioned some of the specific difficulties I had implementing Grafoscopio's idea in Python[1] (in one word: fragmentation, of technologies and computing paradigms) [1] http://mutabit.com/offray/static/blog/output/posts/grafoscopio-idea-and-initial-progress.html Cheers, Offray On 07/10/17 10:17, Dimitris Chloupis
wrote:
|
In reply to this post by Offray Vladimir Luna Cárdenas-2
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 <[hidden email]> wrote:
|
In reply to this post by horrido
Hey, guys, I'm mentioned in this O'Reilly newsletter
<http://post.oreilly.com/form/oreilly/viewhtml/9z1zgj2l150hp80ah3enjvhjhqcnr218calos5bd9o0?imm_mid=0f7103&cmp=em-prog-na-na-newsltr_20171007> !!! All because of the Pharo article. I wonder, is my campaign /actually/ succeeding? If so, I can die happy. ;-) -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
In reply to this post by kilon.alios
kilon.alios wrote
> Care to explain what difficulty you experienced in live coding with > Python. > Or what Pharo can do that Python can’t live code wise ? Maybe I will learn > something. It's funny that one of main reasons why I discovered and started using Pharo was failure to get live coding working for Python (Jython in particular). And now time after time kilon.alios states that live coding in Python is "easy" and no big deal. I will tell you, Pharoers, about code reloading in Python, and let you decide for yourselves how it compares to Pharo. Out of the box in Python you can execute some Python code and reload modules with reload() function. What reload() does is it reads code from file (in Python each source file corresponds to module), executes it, and replaces reference to [that module] in current module. From that moment, any code in current module, when referencing reloaded module, will point to new version of it. All implicitly imported names will (like from foo import bar, from foo import *, etc.) will point to old version. Also all other modules except current will not be affected. There are, however, third-party libraries, that take care of it. But that's not all. All instances and subclasses of old classes will point to old versions of classes. To counter that, instead of replacing old module you could replace its contents by newer variables/functions and patch classes by replacing their contents. Some third-party libraries do that. That's still not all. If you store references to functions/methods/classes, that references will point to old versions. reimport library takes care of that, but it uses implementation-specific feature of CPython's GC, which lets you get all references to some object. Unfortunately, it doesn't work in Jython, and probably in other alternative Python implementations. But wait, what if you rename a class or function, or change its base class(-es)? You're out of luck. Theoretically you could handle such change if recent code change consists of a single rename, but that's it. I may have missed some other edge cases and haven't talked about tools support, but I hope you get the idea. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
I never claimed that Python , which refers to CPython to the vast majority of python coders, is offering live coding out of the box. The fact that you have to reload modules manually would make such claims ridiculous. From the very first post I was crystal clear that there is a need for creating a library that handles live coding for you and gave general instructions of what this library will have to do. My claim is that Python and other languages CAN do live coding. I NEVER claimed also that Python is a live coding environment which it stores in an image format. In short Python IS NOT Pharo. Period. Can python reload modules ? Yes Can python trigger the debugger in case of error ? Yes Can python replace methods and variables during execution ? Yes Can python recompile individual methods and classes and replace their previous instances ? Yes Can python make you coffee ? Nope Etc etc Depending how deep you want to go live coding wise your live coding library will enlarge. From my experience around 100 lines of code are enough to offer most of Pharo’s basic live coding functionality. Such task that needs to happen only once and then simply reused in each project that wants to utilize live coding , for my standards it is easy. It won’t be easy for a beginner python coder cause he may not even know what OOP is. So obviously I am referring to experienced coders. It won’t be easy if you want to fully replicate Pharo’s live coding capabilities , because you will Definetly go way beyond 100 lines. I stated this before and I will state this again Pharo IS HANDS DOWN THE BEST LIVE CODING ENVIRONMENT I have ever used. My point is that other languages CAN do what Pharo does. Even though they are NOT live coding environments. They just have the features to be live coding environments. Jython has had a lot of problems using CPython libraries, live coding is the least of its problems. This is the reason CPython has almost the monopoly of python coding. I just don’t like it when other languages are illustrated as garbage and Pharo as the holy grail. They all have their pros and cons. Can’t help with Jython , I used it on the premise that I may need Java libraries, I ended up finding what I wanted in CPython and have not touched it since. My post were not made to pick a fight but rather to inform and demolish the wrong assumptions that other languages CANNOT DO live coding. If we are to compare them the least we can do is do it in a fair and sincere way. On Mon, 9 Oct 2017 at 20:06, webwarrior <[hidden email]> wrote: kilon.alios wrote |
And not to worry I won’t bother with discussing such issues again it’s clear the community is unwilling to deal with such discussions. I have no problem with that , it’s a free world.
On Tue, 10 Oct 2017 at 03:41, Dimitris Chloupis <[hidden email]> wrote:
|
Calm your tits, dude. No need to use Caps Lock that much :-)
I made no value judgements in my post, letting readers decide for themselves. Nor did I attribute any claims to you. Except "live coding in Python is easy", which you did say in some earlier posts. > My post were not made to pick a fight but rather to inform and demolish > the wrong assumptions that other languages CANNOT DO live coding. Well, many of them kinda can. But you see, when live coding is an afterthought, problems appear here and there, and some of them are unsolvable. Up to the point that it's easier to do traditional development process and not bother with live coding at all. It's almost like saying that you can do point-free style functional programming in Python. Of course you can (to some extent). There is even a library for that (https://pypi.python.org/pypi/pointfree/). I there much sense in it? I don't think so. -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
Hi Dimitris. You opinion about live programming reminds me the common sentence from developers who don't care about languages at all. Usual argument is: they all are Turing complete, so who cares. 2017-10-10 11:02 GMT+02:00 webwarrior <[hidden email]>: Calm your tits, dude. No need to use Caps Lock that much :-) |
Administrator
|
In reply to this post by kilon.alios
kilon.alios wrote
> it’s clear the community is unwilling to deal with such discussions. I wouldn't say that... after all this thread has the most posts on this list since January 21 ;) I personally learned a lot and was glad to hear all the points. I thought the last two pretty much captured the situation, which is that you *can* do live programming in other languages, but the advantage of Pharo is that it's *about* live programming. I certainly didn't know it was even possible in some of the other languages mentioned. Yet, practically, it seems extremely difficult for a system that tacks something on as a feature to compete with a system that values that thing at its core. Ironically, the biggest barrier seems to be human, in the McLuhan sense that our medium determines how/what we can think/say. I feel lucky to have discovered Smalltalk and have cast off (most) of the brain damage from C and C++ ha ha. ----- Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Cheers,
Sean |
In reply to this post by horrido
Interestingly, I'm getting a fair amount of pushback on this. Personally, I
think it would be very helpful to have a live (updatable, so as to keep it current) reference page for the class library, something that developers can easily look up what they need. After all, most of the power of Pharo comes from the class library and we need to make it as accessible as possible to less experienced Pharoers (i.e., beginners). Exploring the class library through the System Browser is very inefficient. This is further exacerbated by the fact that many classes and methods are simply not well-documented (containing a cursory remark which is just barely useful). I realize that creating a live reference page is not easy to do. In fact, it's a lot of work. But the absence of such a page is a real obstacle to Pharo acceptance. horrido wrote > Thanks. I gave your answer verbatim. I also added the following paragraph: > > The problem I find with today’s developers is that they are rather > closed-minded. They are rigid and inflexible, and not willing to adapt to > new and different ways of doing things. In my generation (circa > 1980–1990), > people didn’t have a problem with trying different technologies. That’s > why > I had no issue with learning Smalltalk 10 years ago, after I had retired > from a 20-year-long career in C systems programming and FORTRAN scientific > programming. > > > > Sven Van Caekenberghe-2 wrote >>> On 6 Oct 2017, at 14:54, horrido < > >> horrido.hobbies@ > >> > wrote: >>> >>> I received this comment from someone who complained: >>> >>> *What about the lack of documentation? From time to time I’ve checked >>> some >>> SmallTalk implementations like Squeak, GNU-Smalltalk and now Pharo. Of >>> these, only GNU-SmallTalk appears to have a free, official programming >>> guide >>> and core library reference that any serious programmer expects from a >>> language. >>> >>> https://www.gnu.org/software/smalltalk/manual-base/html_node/* >>> >>> I pointed to Pharo's documentation but then he came back with: >>> >>> *Then show me a link of the free, maintained reference documentation for >>> the >>> classes that form “the core library”, like this one for Python >>> (https://docs.python.org/3/library/index.html)* >>> >>> It's true, most Smalltalks do not have a core library reference, not >>> even >>> VisualWorks! So what is the proper response to this complaint? >> >> The first answer is that Pharo/Smalltalk is unique in that a running >> system/IDE contains _all_ source code, _all_ documentation (class, >> method, >> help, tutorial), _all_ unit tests and _all_ runnable examples in a very >> easy, accessible way. It takes some getting used to, but this is actually >> better and much more powerful than any alternative. >> >> The second answer is that there are lots of books and articles that take >> the classic/structured book/paper approach. There is >> http://books.pharo.org, http://themoosebook.org, >> http://book.seaside.st/book, http://medium.com/concerning-pharo and many >> more. >> >>> Thanks. >>> >>> >>> >>> -- >>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >>> > > > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html |
A Bluebook updated picture would be great. And I am sure Roassal could produce it right away. Phil On Oct 10, 2017 15:58, "horrido" <[hidden email]> wrote: Interestingly, I'm getting a fair amount of pushback on this. Personally, I |
In reply to this post by webwarrior
Webwarrior I can tell you that you made my day :)
Thanks for this great testimony. Today we discuss about Pablo because he has a working system being able to upload hot code and migrate instance but also the code on the stack. We will see if we integrate it in Pharo but I want the best hot code loader ever and be able to update the updater while running the updater. Then we want to have a context aware version of this one where you can apply a change that break the UI and revert it. Stef On Mon, Oct 9, 2017 at 7:05 PM, webwarrior <[hidden email]> wrote: > kilon.alios wrote >> Care to explain what difficulty you experienced in live coding with >> Python. >> Or what Pharo can do that Python can’t live code wise ? Maybe I will learn >> something. > > It's funny that one of main reasons why I discovered and started using Pharo > was failure to get live coding working for Python (Jython in particular). > > And now time after time kilon.alios states that live coding in Python is > "easy" and no big deal. > > I will tell you, Pharoers, about code reloading in Python, and let you > decide for yourselves how it compares to Pharo. > > > Out of the box in Python you can execute some Python code and reload modules > with reload() function. > > What reload() does is it reads code from file (in Python each source file > corresponds to module), executes it, and replaces reference to [that module] > in current module. > From that moment, any code in current module, when referencing reloaded > module, will point to new version of it. > > All implicitly imported names will (like from foo import bar, from foo > import *, etc.) will point to old version. Also all other modules except > current will not be affected. > > There are, however, third-party libraries, that take care of it. > > But that's not all. All instances and subclasses of old classes will point > to old versions of classes. > To counter that, instead of replacing old module you could replace its > contents by newer variables/functions and patch classes by replacing their > contents. > Some third-party libraries do that. > > That's still not all. If you store references to functions/methods/classes, > that references will point to old versions. > reimport library takes care of that, but it uses implementation-specific > feature of CPython's GC, which lets you get all references to some object. > Unfortunately, it doesn't work in Jython, and probably in other alternative > Python implementations. > > But wait, what if you rename a class or function, or change its base > class(-es)? > You're out of luck. Theoretically you could handle such change if recent > code change consists of a single rename, but that's it. > > I may have missed some other edge cases and haven't talked about tools > support, but I hope you get the idea. > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > |
In reply to this post by Denis Kudriashov
Which reminds me a guy that I tried to convince that become: is not
the same as changeClassToThatOf: but he was super smart and knew so this is written in his super smart paper and I smile still now thinking about it. On Tue, Oct 10, 2017 at 11:39 AM, Denis Kudriashov <[hidden email]> wrote: > Hi Dimitris. > > You opinion about live programming reminds me the common sentence from > developers who don't care about languages at all. Usual argument is: they > all are Turing complete, so who cares. > > 2017-10-10 11:02 GMT+02:00 webwarrior <[hidden email]>: >> >> Calm your tits, dude. No need to use Caps Lock that much :-) >> >> I made no value judgements in my post, letting readers decide for >> themselves. >> Nor did I attribute any claims to you. Except "live coding in Python is >> easy", which you did say in some earlier posts. >> >> > My post were not made to pick a fight but rather to inform and demolish >> > the wrong assumptions that other languages CANNOT DO live coding. >> >> Well, many of them kinda can. >> But you see, when live coding is an afterthought, problems appear here and >> there, and some of them are unsolvable. Up to the point that it's easier >> to >> do traditional development process and not bother with live coding at all. >> >> It's almost like saying that you can do point-free style functional >> programming in Python. >> Of course you can (to some extent). There is even a library for that >> (https://pypi.python.org/pypi/pointfree/). >> I there much sense in it? I don't think so. >> >> >> >> >> -- >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >> > |
In reply to this post by horrido
On Tue, Oct 10, 2017 at 3:58 PM, horrido <[hidden email]> wrote:
> Interestingly, I'm getting a fair amount of pushback on this. Personally, I > think it would be very helpful to have a live (updatable, so as to keep it > current) reference page for the class library, something that developers can > easily look up what they need. After all, most of the power of Pharo comes > from the class library and we need to make it as accessible as possible to > less experienced Pharoers (i.e., beginners). This is why I started to comment even the classes that we all know You see having a lovely comment on Association, Array, OrderedCollection with all the love we can is the best welcoming. > > Exploring the class library through the System Browser is very inefficient. > This is further exacerbated by the fact that many classes and methods are > simply not well-documented (containing a cursory remark which is just barely > useful). Totally agree. Now the good aspect is that ANY pharoers can help making such class/method comments great. It takes 5 to 10 min. And I started to add executable examples " 3 + 2 >>> 5 " > I realize that creating a live reference page is not easy to do. In fact, > it's a lot of work. But the absence of such a page is a real obstacle to > Pharo acceptance. In the past we generate a javadoc but nobody looked at it. > > > > horrido wrote >> Thanks. I gave your answer verbatim. I also added the following paragraph: >> >> The problem I find with today’s developers is that they are rather >> closed-minded. They are rigid and inflexible, and not willing to adapt to >> new and different ways of doing things. In my generation (circa >> 1980–1990), >> people didn’t have a problem with trying different technologies. That’s >> why >> I had no issue with learning Smalltalk 10 years ago, after I had retired >> from a 20-year-long career in C systems programming and FORTRAN scientific >> programming. >> >> >> >> Sven Van Caekenberghe-2 wrote >>>> On 6 Oct 2017, at 14:54, horrido < >> >>> horrido.hobbies@ >> >>> > wrote: >>>> >>>> I received this comment from someone who complained: >>>> >>>> *What about the lack of documentation? From time to time I’ve checked >>>> some >>>> SmallTalk implementations like Squeak, GNU-Smalltalk and now Pharo. Of >>>> these, only GNU-SmallTalk appears to have a free, official programming >>>> guide >>>> and core library reference that any serious programmer expects from a >>>> language. >>>> >>>> https://www.gnu.org/software/smalltalk/manual-base/html_node/* >>>> >>>> I pointed to Pharo's documentation but then he came back with: >>>> >>>> *Then show me a link of the free, maintained reference documentation for >>>> the >>>> classes that form “the core library”, like this one for Python >>>> (https://docs.python.org/3/library/index.html)* >>>> >>>> It's true, most Smalltalks do not have a core library reference, not >>>> even >>>> VisualWorks! So what is the proper response to this complaint? >>> >>> The first answer is that Pharo/Smalltalk is unique in that a running >>> system/IDE contains _all_ source code, _all_ documentation (class, >>> method, >>> help, tutorial), _all_ unit tests and _all_ runnable examples in a very >>> easy, accessible way. It takes some getting used to, but this is actually >>> better and much more powerful than any alternative. >>> >>> The second answer is that there are lots of books and articles that take >>> the classic/structured book/paper approach. There is >>> http://books.pharo.org, http://themoosebook.org, >>> http://book.seaside.st/book, http://medium.com/concerning-pharo and many >>> more. >>> >>>> Thanks. >>>> >>>> >>>> >>>> -- >>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >>>> >> >> >> >> >> >> -- >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > |
In reply to this post by webwarrior
Nothing is unresovable, some problems will require a lot of more hacking sure, but Pharo VM is implemented in C (yeah I know it suppose to be smalltalk but is actually slang compiled to C) and since everything out there uses C anything out there can do live coding. You can do it in billlion diffirent ways.The question of course is then how easy to do.
The answer to that is usual answer as in all things, it depends. But yes it easier indeed to do traditional level coding because lets say face, you have to be aware of the benefits of live coding and you have to really try it beforehand. Plus the idea of having to move a finger to make live coding work properly on the language of choice is less than appealing to most developers. Take for example your instance update problem, you can resolve it 2 ways, python allows you to copy the data of an instance to another in a form of a dictionary or you can exchange live methods between old a new instances in frankenstein way. You also find references and replace them real time keeping track of their object ids. I lately got an idea about a time machine live coding, live coding that does not keep alive the current data and execution but also old data and execution and allows you go backwards in time. I am inspired by implementation of backward debugging and some demos I have seen where data was visualised as it evolved with the ability to move it back in time. This is something that no language I am aware of , including Pharo offers. I am the weirdo researching live coding because after being introduced to Pharo my appetite severely increased. Pharo opened to me a world that never knew it existed. As a resulte I know learn more about language features related to live coding that I never thought it was possible. I implement my own live coding library because I want to learn more about live coding and if possible improve on it but without messing with VMs. I hope I bring some of those features back into Pharo as my giift for introducing me to such a fun way of coding. On Tue, Oct 10, 2017 at 12:03 PM webwarrior <[hidden email]> wrote: Calm your tits, dude. No need to use Caps Lock that much :-) |
In reply to this post by Denis Kudriashov
No because turing conplete means you have to implement all those live features yourself, I only gave a taste but I return to Python because thats the language I know the most, you can live manipulate objects in so many diffirent ways and mess their structure. Make a method become an instance variable,and instance variable to a method, rename variables , change the signature of your methods but only on specific instance or on the class itself. There is an incredibe large library of object manipulation features there to be tamed. Pharo can do many of those things and more of course.
Turing complete would apply to me if I said, Python has no live coding feature, but you can implement those if you want. Thats not what I am saying. Python or C may not call this live coding, they call it dynamic libraries, dynamic loading of modules, exceptions , post mortem debugging (debugger popping up in case of error) , module reloading, execution time compiling and many more. They never mentions the word "live coding" , but the features themselves are directly related and very fundamental requirements for live coding. Those features exists because live coding is a necessity , there will be always scenarios that a coder will want to dynamically change something during execution. There is no big ideology behind it like Pharto , which is why Pharo is the best at live coding, but rather practical needs that users requested to be resolved and the devs of languages were forced to implement them to keep them happy. For example its possible to extend live coding outside the Pharo image, using memory mapped files , the Pharo image can be extended not only to save Pharo live state but also the live state of any C library it depends on. This is crucial when you open the image and then you find something does not work because C live state was not storred which is why we have the session attribute we use to make sure that C libraries are correctly initialize in image startup. My CPPBridge which is 100% Pharo project , if you exclude some C examples , it provide a basic way of a live coding image that can act as an extension to the pharo image and include live C state. So yes I have done my hopework. As a matter of fact each time I hear arguments turing complete wise, I facepalm myself. Because its a louse excuse to support a language. Any tool or library that can save you time its a huge deal. On Tue, Oct 10, 2017 at 12:40 PM Denis Kudriashov <[hidden email]> wrote:
|
In reply to this post by Sean P. DeNigris
Yes exactly my post was not an effort to diminish the value of Pharo as live coding system.
My effort was to reveal my findings because I have been doing a lot of research lately. I am not keen on abandoning the comforts of Pharo live coding wise now that I code in Python. But to get to Pharo level there are many issues to be resolved. I know however that I can get to Pharo level eventually at least on features I really care about. Because I have little interest in proving something better from something else. I would not try this if there were not already a substantial amount of features. I know that you guys did not know this is possible and I do not think thats a bad thing because a year ago I did not know that is possible either. It started as a joke and out of it I created two projects , Atlas and CPPBridge both 100% Pharo code. With atlas I could have settled with inling python syntax but I did not because that was easy instead I parsed Pharo syntax to python syntax to make a deeper integration between Pharo and Python libraries. I think how difficult it is depends on how high you put your barrier of entry, if you go for a full blown live coding system like Pharo has, it will be difficult because there will be several important issues to resolve. As you said those language do not follow a strict live coding workflow. They have live coding features out of need to resolved real time issues. Does C has DLLs because it cares about live coding, obviously not, but the moment you have a library that can at any moment be reloaded you already made the first step down the path. When I said you can do hardcore live coding with ease, I meant that you can live code full time provided you have built some of the functionality. Once you got a basic library running the rest just flows. But if you want to complete neck to neck with Pharo it will be a challange because Pharo does not have live coding feature only at language level but also at IDE level. Again if people did only the easy stuff, we would not have Pharo would we , the fun is in the challenge. If a python coder should be stop by the lack of a live coding enviroment should a Pharo be stopped by the lack of namespaces ? Of course not, languages are there to be extended via third party libraries and the more we challange ourselved the deeper the understanding becomes and the more amazing stuff we can do. On Tue, Oct 10, 2017 at 2:25 PM Sean P. DeNigris <[hidden email]> wrote: kilon.alios wrote |
In reply to this post by horrido
> On Oct 10, 2017, at 09:58, horrido <[hidden email]> wrote: > > Interestingly, I'm getting a fair amount of pushback on this. Personally, I > think it would be very helpful to have a live (updatable, so as to keep it > current) reference page for the class library, something that developers can > easily look up what they need. After all, most of the power of Pharo comes > from the class library and we need to make it as accessible as possible to > less experienced Pharoers (i.e., beginners). > > Exploring the class library through the System Browser is very inefficient. > This is further exacerbated by the fact that many classes and methods are > simply not well-documented (containing a cursory remark which is just barely > useful). > > I realize that creating a live reference page is not easy to do. In fact, > it's a lot of work. But the absence of such a page is a real obstacle to > Pharo acceptance. > > > > horrido wrote >> Thanks. I gave your answer verbatim. I also added the following paragraph: >> >> The problem I find with today’s developers is that they are rather >> closed-minded. They are rigid and inflexible, and not willing to adapt to >> new and different ways of doing things. In my generation (circa >> 1980–1990), >> people didn’t have a problem with trying different technologies. That’s >> why >> I had no issue with learning Smalltalk 10 years ago, after I had retired >> from a 20-year-long career in C systems programming and FORTRAN scientific >> programming. >> >> >> >> Sven Van Caekenberghe-2 wrote >>>> On 6 Oct 2017, at 14:54, horrido < >> >>> horrido.hobbies@ >> >>> > wrote: >>>> >>>> I received this comment from someone who complained: >>>> >>>> *What about the lack of documentation? From time to time I’ve checked >>>> some >>>> SmallTalk implementations like Squeak, GNU-Smalltalk and now Pharo. Of >>>> these, only GNU-SmallTalk appears to have a free, official programming >>>> guide >>>> and core library reference that any serious programmer expects from a >>>> language. >>>> >>>> https://www.gnu.org/software/smalltalk/manual-base/html_node/* >>>> >>>> I pointed to Pharo's documentation but then he came back with: >>>> >>>> *Then show me a link of the free, maintained reference documentation for >>>> the >>>> classes that form “the core library”, like this one for Python >>>> (https://docs.python.org/3/library/index.html)* >>>> >>>> It's true, most Smalltalks do not have a core library reference, not >>>> even >>>> VisualWorks! So what is the proper response to this complaint? >>> >>> The first answer is that Pharo/Smalltalk is unique in that a running >>> system/IDE contains _all_ source code, _all_ documentation (class, >>> method, >>> help, tutorial), _all_ unit tests and _all_ runnable examples in a very >>> easy, accessible way. It takes some getting used to, but this is actually >>> better and much more powerful than any alternative. >>> >>> The second answer is that there are lots of books and articles that take >>> the classic/structured book/paper approach. There is >>> http://books.pharo.org, http://themoosebook.org, >>> http://book.seaside.st/book, http://medium.com/concerning-pharo and many >>> more. >>> >>>> Thanks. >>>> >>>> >>>> >>>> -- >>>> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >>>> >> >> >> >> >> >> -- >> Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > > > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html > |
Free forum by Nabble | Edit this page |