Behold Pharo: The Modern Smalltalk

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
167 messages Options
1 ... 3456789
Reply | Threaded
Open this post in threaded view
|

Re: Pillar (was Re: Behold Pharo: The Modern Smalltalk)

kilon.alios
Why exporting to latex, html and markdown is not enough for you ? 

On Fri, Oct 13, 2017 at 1:05 PM Gour <[hidden email]> wrote:
On Wed, 11 Oct 2017 17:18:54 +0000
Dimitris Chloupis <[hidden email]>
wrote:

> Well there is a move towards Pillar for class and method commands so
> who knows maybe we will have that soon enough ;)

Let me say that I'm very happy seeing that Pillar is moving forward (e.g.
addition of support for footnotes) as well as plan for the future (*.epub
support) since I'm considering whether it could serve as single-source markup
for all of one's writings?

After migrating from Python-powered static-site-generator (to Hugo) and rst
markup I was considering to use AsciiDoc(tor) markup for all my content, but,
so far, due to using Emacsm settled to use org-mode instead. Haven't tried with
slides (yet), but there is Pandoc support for it.

Therefore, I'd rather see Pillar support in Pandoc which would buy us even more
import/export capabilities for free instead of focusing on single formats like
*.odt, *.epub etc.

Pillar with 1st class support in Pandoc would, imho, improve status of Pharo
itself making it along with Pillar exceelent tool for development as well as
for all writing needs - articles, books, documentation, slide-presentations.

But it would be nice to make it more transparent where/how can one submit
feature request for Pillar?

Fogbugs issue trakcer is certainly not the ideal place these days...


Sincerely,
Gour

--
Everyone is forced to act helplessly according to the qualities
he has acquired from the modes of material nature; therefore no
one can refrain from doing something, not even for a moment.



Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

kilon.alios
In reply to this post by aglynn42
Thanks for the insight Andrew , I heard of VisualAge Smalltalk but not of C++ and Java, very interesting :)
On Fri, Oct 13, 2017 at 1:44 PM Andrew Glynn <[hidden email]> wrote:
VA (VisualAge) for C++ and for Java were two IBM products, the latter being the predecessor to Eclipse. They were both available on OS/2 and Windows NT variants (2000 mainly), and the C++ version on AIX. Whichever platform the C++ version was run on, you could target any supported runtime platform. They were all (along with VisualAge Smalltalk, now maintained and sold by Instantiations and currently at version 9.0, and VisualAge Generator - a Cobol version) written in IBM Smalltalk.

I still use VA C++, Java, and occasionally VA Smalltalk, albeit the latter at v. 6.02, in a VM running OS/2 (well, Ecomstation, but it's the same as OS/2 4.5, just updated for more recent hardware - interestingly Arca Noae released a version 5.0, the first official (i.e. called OS/2 version since 2004, in June of this year).  

I use them for prototyping and quickly creating cross-VM client/server apps that allow me to generate virtual network traffic without using tons of memory for each VM (much of what I do involves monitoring network protocols such as BGP, and without traffic to exercise the virtualized aggregated service routers, I can't demonstrate the code without carrying 6 75lb servers on my back).  

I can run Lotus Domino plus 10-12 server apps written in VA C++ in a VM with one or two vCPU's and 256MB RAM. On the client, I can run a couple dozen Java clients, connecting either to the C++ servers or Domino, in 128MB. I put a screenshot of the CPP and Java versions below.

For Smalltalk code, Pharo is better than VA, certainly better than the 6.02 version, but for C++ or Java, as long as you don't mind prototyping in an old Java version (lacking the syntactic parmesan, mainly), they're still better than anything else. Both incrementally compile/precompile in-memory on save the way ST does, but that's fairly rare in C++. Both have ways of writing arbitrary test code similar to a playground, which is also rare in either language. Both also have data access libraries that are far faster and easier to use than JPA, never mind CMP. VA Java also includes an ancient version of WebSphere for J2EE.

CORBA (Common Object Request Broker Architecture) is a complex way of exchanging objects/data between languages. I've seen interviewers who are/were developers actually shake if I mention it. However both the C++ and Java versions handled most of the details without any fuss.

All the build/deploy tooling was in the environment. With the app I mentioned, lacking those environments it's maybe not impossible, but likely at least close to 'infinitely improbable' to get the thing built properly, never mind actually change the code and configs. The junior developer from that project is a friend of mine's little brother, he's still at the company that paid to have it built, and it's now 15 years later, just so it will keep running. Ironically he was fresh out of school at the time and basically worked as a gopher, he didn't write or even debug a line of code. After we finished the project I taught him how to modify/build it using those tools, and they're still the only thing he can use.

cheers
Andrew







-----Original Message-----

Date: Fri, 13 Oct 2017 07:26:13 +0000
Subject: Re: [Pharo-users] "Building-With versus Building-on"
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <[hidden email]>
From: Dimitris Chloupis <[hidden email]>
What is a VA Java ? and a VA C++ ? 

Call me an idiot or insane but I am in favor of combiding languages, though I only have heard of COBRA never used it. 

I am a lawyer by profession, I know fellow lawyers still using DOS and QBasic databases and yes under windows ...... sadly very common for businesses here. Ah the pleasures of technology but nothing comes close to the pleasure of rejecting it. 

On Fri, Oct 13, 2017 at 12:49 AM Andrew Glynn <[hidden email]> wrote:

I know about personalization being a lot of work, particularly with Eclipse.  I copied the text out of the ‘summary’ page in About Eclipse into Kate, and it was 1233 lines long, lol. 

 

I was one of two team leads on what was probably the most complex application I’ve worked on, using VA Java and VA C++ with CORBA to exchange objects (the need to combine both was due to legacy issues).  Siemens now owns the application, which was successful enough to bankrupt its closest competitor, but the binary jars in the latest version are still dated 2002, and every addition has been made via .the WS* API we included, which if I remember correctly, uses version 1.x of WebSphere.  I’m a bit surprised it still runs at all tbh, but its security must be horrible by now.

 

Eclipse’s only saving grace is EMF/CDO, and a few projects built on them, IMHO.

 

Sent from Mail for Windows 10

 

From: [hidden email]
Sent: Thursday, October 12, 2017 2:05 PM
To: [hidden email]
Subject: Re: [Pharo-users] "Building-With versus Building-on"

 

It's a mentality issue, modern programming languages provide the material necessary to create innovative environments but their communities just simply does not care. A language designer may introduce a feature in a language that is super useful. Still people may not use it. 

 

And let's face it even with Pharo nothing beats a personalized environment, of course personalisation is a lot of work. Hence why people avoid it.  

 

Essentially boiling down to cooking your own food instead of getting it from a shop. When you begin to learn how to cook , its kinda sucks, but the more you cook the better it tastes. Of course it takes time to get there and hence why so few people cook. 

 

Eclispe , which I will disagree with your that is not the worst IDE, started as a smalltalk IDE and then it got Eclipsed. I am sure those people had a "build on" environment , still it got messy. We can blame porting to Java, but can we really blame Java for the mess that is called "Eclipse".... ehhhh.... nope. 

 

I once saw a youtube video about a musician using windows sounds (the standard sounds we all know of) to make  a very nice music piece. He did all that using multiple instances of windows media player. Just pause reading think about this for a minute. That's the real essence of creativity

 

Use something very limited and come up with something amazing. The software industry is not about creativity for the most part. On the other hand I that work with 3d its amazing how fast super cool new technologies pop around like mushrooms. Every year we have massive improvements in libraries and tools. But the coding for 3d graphics is all about creativity , artists are not very forgiving for ugly GUI, limited features and innovation stagnation. Artists want to be inspired by the tools they use. But then that's the creativity realm. Creativity pays the bills in this case, lack of it , game is not fun, rendering or animation is not fun, you can lose millions. 

 

Of course in the creativity realm , there is too much innovation and unless you keep up you are kicked out the door, yesterday. Which brings down to the problem of complexity and how you deal with it. And I don't mean about bad complexity , aka web dev, I am talking about good complexity. Features you cannot ignore because other will use before you and you are left behind etc. 

 

 

On Thu, Oct 12, 2017 at 7:13 PM Peter Fisk <[hidden email]> wrote:

Thanks for posting this.

 

It is one of the best descriptions of the state of the software industry that I have seen.

 

 

On Thu, Oct 12, 2017 at 11:50 AM, Andrew Glynn <[hidden email]> wrote:

https://medium.com/@dasein42/building-with-versus-building-on-c51aa3034c71
 
This is an article not specifically about Pharo, rather on the state of the industry
in general and how it got that way, but positing Pharo as a way to learn
building-on rather than building-with, where in the latter case on
every project you start at essentially the same place. 
 

As a result it does put in front of people a fair amount of info on Pharo, and challenges them to try it.

 
cheers
Andrew Glynn

 

 



vajava.png (108K) Download Attachment
vacpp.png (161K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Pillar

Gour
In reply to this post by kilon.alios
On Fri, 13 Oct 2017 10:43:27 +0000
Dimitris Chloupis <[hidden email]>
wrote:

> Why exporting to latex, html and markdown is not enough for you ?

Well, I usuallyconsider latex/html as more suitable as output formats, while
standard markdown is semantically too poor for input format, but I'll test how
Pillar's outputs are suitable as Pandoc's inputs.


Sincerely,
Gour

--
It is far better to discharge one's prescribed duties, even though
faultily, than another's duties perfectly. Destruction in the course
of performing one's own duty is better than engaging in another's
duties, for to follow another's path is dangerous.



Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

aglynn42
In reply to this post by kilon.alios
I agree with you that difficulty is half the fun, assuming you're a developer - developers solve problems, so if there weren't any we'd be a bit out of luck. For myself I've somehow never, in a 26+ year career, worked on maintaining code. I've only ever written new code. in fact I usually wind up with the things nobody, me included, has a clue of how to do, tending to make them even more difficult. On a project last year the 'technical unknowns' could be boiled down from the 5 page document I was given to one word, 'everything', including what the customer (the government, unsurprisingly), actually meant by any of the terms used in the requirements, since even common networking terms like VPN mean something different to government employees, apparently, than to anyone else in the world.

It's rewriting the same or incredibly similar rote code because we start from the same basic point on every project that gets on my nerves; writing new and often difficult code, or learning new and often difficult languages, even learning unfamiliar domain specific terminology, are the reasons I'm still a developer. Difficulty though ought to come with a bit of power. JavaScript can be extremely difficult, but when it's difficult and the result is that a page widget appears in the right place, it doesn't feel like much of an accomplishment. Electron apps can be difficult, though the difficulty isn't in writing them, but in building them and getting them to actually run, especially if you're supporting Mac as well as Windows. Unless I'm writing a VM (which I haven't done very much of at all) the difficulties with CLANG, SLANG, along with about a dozen other tools, just to build a simple application, doesn't feel like much of an accomplishment either. At least not to me, I guess it does to some people though. I have noticed a squeaky wheel effect: technologies that 'just work' get quickly forgotten, because there aren't 3 million people on slashdot or wherever asking questions about how to get them to work. JINI (now Apache River) is a good example (especially in Java, where not much 'just works'), when the new cars that automagically connect your cell phone and tablet to their own 4G were designed, they had to write JINI clients for C and whatever other languages they use, because that's what does all the automagic. But not many people even remember it exists.

One thing I do disagree with you on is that people prefer Windows. It seems to me that Windows is more popular due to price, and maybe due to the relative ease of controlling access centrally, more than anything, and even given the lower prices on (at least as far as obvious specs go) equivalent machines, I can't think of anyone I know off the top of my head who would use Windows if they could afford a Mac, and everyone I know who can, does use one.  I had to write a Mac app for Charles Schwab that would run on any home Mac (down to G4 based Macs with a half gig of RAM that could run at best OS X 10.5) with equivalent features to a Windows app that required 16GB RAM to load and 24GB to run decently, because the majority of the professional stock traders who use Windows all day at work have Macs at home (of course they can largely afford them).  

If I'm not developing or testing I admittedly most often use a Macbook myself. I do use Windows on my tablet, since it can run a full version of Win 10 x64 (not the useless RT version) and therefore nearly any Windows program. I won the tablet at HP at the xmas party though, and with a quad-core Atom CPU and 8GB RAM it's not really an average tablet. Even then, I only use it if stuck somewhere for a while with nothing to do. So I have to admit, if I'm not developing I don't enjoy difficulty much. Nor do most of the end users I know. 

I do know a few masochists who prefer Linux to Mac, most of whom don't run a UI. The few who do use MATE, which while being both ugly and lacking any notable capabilities, never mind applications, doesn't use much memory.  Exactly why a third of a GB of RAM is relevant today I'm not sure, when both Atom and Sublime Text use more memory than Ubuntu, Kubuntu or OS X for that matter, but they seem to feel it's radically important. Sublime Text makes me think of Hegel's definition of The Sublime: "the night where all cows are black" ☺.

I'll use Linux if my Thinkpad is handier. It runs OEL with KDE, so it's not difficult (unless you want anything by Adobe, lol), and it's pretty quick. Though ironically the Macbook is still quicker, though it has half the RAM and an i7 that's 2 generations older.

I visited a friend at the IBM lab I used to work at a few months ago, and since they know me pretty well at security, I had no problem getting a visitor badge. Walking through the area where they write among other things, DB2 UDB, InfoSphere, WebSphere and associated products, and all of ibm.com I glanced in the cubicles as I went to my friend's desk, and the majority of the developers were using Macbooks. The only people with Thinkpads were managers. So maybe developers like difficulty, but not quite as much with things that are supposed to be already developed. It could just be easier to give them Macbooks than to try to get security to let them have local admin rights on Windows ...

Best quote I've seen on Windows, particularly given the source: 

"With luck, this will start Windows, and a dialogue box will appear and tell you the default drive onto which IADS will be installed. If Windows doesn't start up, you could always try launching Windows manually." 

- IADS Manual, U.S. Army.  

Since IADS requires Windows 7 at minimum, exactly how you 'launch it manually' is beyond me, but then again I'm not in the military, and they seem to be able to write software in ADA (software that runs, even). Although the Army writes IADS, it's used by virtually every government department, not only in the U.S. but in Canada as well - it's AFAIK the only open source, free, true WYSIWYG SGML editor, and given FrameMaker is $999 a license, free becomes relevant when you have a lot of employees. It has to have the worst name of any software in the world, excepting maybe Eclipse VIATRA.

cheers
Andrew Glynn

-----Original Message-----

Date: Fri, 13 Oct 2017 07:00:46 +0000
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <[hidden email]>
From: Dimitris Chloupis <[hidden email]>

That is a familiar path, but still an obstacle for people to get over in trying Pharo - i.e. its a barrier of entry.  I've previously referred to this article by JoelOnSoftware, but to pull out a key part... "Think of these barriers as an obstacle course that people have to run before you can count them as your customers. If you start out with a field of 1000 runners, about half of them will trip on the tires; half of the survivors won’t be strong enough to jump the wall; half of those survivors will fall off the rope ladder into the mud, and so on, until only 1 or 2 people actually overcome all the hurdles. With 8 or 9 barriers, everybody will have one non-negotiable deal killer.  This calculus means that eliminating barriers to switching is the most important thing you have to do if you want to take over an existing market, because eliminating just one barrier will likely double your sales. Eliminate two barriers, and you’ll double your sales again."



 
****WARNING LONG POST AHEAD**** 

There numerous reason why this kind of thinking is fundamental flawed, if not completely wrong

1) How you get people to run in this race ?
2) What makes you think that people participating in the race doing to get first or even finish ?
3) How you are certain that those barriers are not the very reason people participate ?

The fundamental problem is that if you base your assumption that people are motivated on avoidance of pain, this is a very popular argument by the way, you going to be severely disapointed. From the very first fact that there is a 90% chance that right now that you use almost 100% of your time one of the worst software to be ever created. 

Microsoft Windows. 

Of course you can throw claims to me that peope use Windows because that is what's popular and widely available, but then so is MacOS is by far the easiest to use OS out there. When you pit Windows vs Macos a such taboo subject , fuel to so many flame wars, there is one thing that both sides agree on and that is that MacOS is far easier to use , perdiod. The rest of the debate which OS is the best is up in the air and frankly not the point of my argument. 

The fact is , we love pain, we love barriers, we love doors that slam into our face. We love challange. But only if we find it interesting. 

Of course Windows is not the only example  (C/C++ , Java , Web dev, computer games and the list is just endless)of the machocistic nature of human beings. I dont need to look far, my own story about how I started coding is more than enough . I am going to ramble about my initiation to the realm of coding , so feel free to ignore the rest of my post but what the hell here we go. 

From an early age , no idea when, I was exposed to the idea of the computer. Never used one before or saw on in person other than what I saw in the TV I asked my father to get me one and he agreed on the ground that I wont use it just to play games but to learn how to code. My father had no idea what coding is, had no idea what technology is, to this day he hates technology and he refuses to learn even how to close a window. None , friend , relative or random stranger I knew used a computer.

So I got this weird thing called computer and turned it on, of course motivated to play games like any other kind in my age, I was 9 years old at the time, december 1988. But I had a sense of honor even from that age so I had to keep my promise. So I did and I was fascinated by it, to the degree that I was coding as much I was playing games. Problem is that it was mainly masochistic venture. I had one book and one book alone, none that had any clue how to show how to turn this thing on and of course no internet, no schools, no magazines I could afford to buy or even know where to buy them . So in 3 years, I made nothing special, only tiny fragments of code and I was still struggling with basic concept like looping.

Yes, looping.

 But I already was doing things that a greek kid did not suppose to do and I did not even fit the geek stereotype at the time (not that the term existed at the time, I still does not exist in my language), I had tons of friends, I was anything but shy , I was the craziest nosiest kid suffering from the annoying syndrom of hyperactivity and with very lmited attention span. 

I was the absolute worst candidate to learn how to code, yet I did . Sort of. Then my father decided to send me, after me begging on my knees, on a prrivate school, that just opened near our neighborhood for learning. At the time time I only still had the same computer, Amstrad CPC 6128 and knew the very basics of Locomotive Basic which was used also by the computer as a bash like language for its OS. 

I went 3 years, the first year I did ok, an average student even though I had by far the most experience than other kids we learned GWBASIC. The second year I did terrible, we learned DBASE and the third we learned CLIPPER and blow any other student completely away, I was the only to graduate with 99.8% and our teacher was super strict on the matter of grades. But I wanted more. 

So I went and learned C++ and assembly because why not and when I told my teacher that, he was looking me with his eye wide open, took me quite a lenghy discussion to convince him that this was true. 

The reason why the first year I did average was that it was too easy. I was already familiar with Basic , sure I was struggling with basic concepts when I started but   under the wing of the teacher (he was a great teacher, professional coder and highly skilled at helping you understand even the most difficult concepts) and full access to multiple books in few months became a walk in the park. The second year was a disaster, partly because our teacher decided to hire a relative of his to teach us DBASE and the guy was a moron wasting his time with telling jokes. The truth is that I did not like and still dont like database coding. Clipper I fall in love with it at the time because still a database orientated language but our teacher tought us, his relative got sacked as soon as he learned that he sucked, that happened one year after because none of the kids had the courage to go tell him and it was probably a parent the told him and did so well I was even offered to make a database for a considerable amount of money. Said no. Again not interested. 

My story is nothing special, I heard it in slightly diffirent versions by countless others in a similar situation however my point is  not to brag, because lets face it I was just merely learning languages and not doing any serious coding , my point is that the drive behind it was the pain. Was the obstacles. Was the challange. 

Pharo for me is also the same story. At the time I was coding in Python, super easy, got the job done, had no intention learning another language because why bother when they all look the same and they would have been much less powerful than Python. I was super happy with Python and still is one of my favorite language as you all know. Then I saw people on forums rambling about this weird language called Lisp , I was interested, google a tutorial , saw the parentheses , said "hell no!" and carried on coding in python. Then even more people claiming that it was so amazing, that it can cure cancer and make you super sexy. I always wanted to be super sexy so I said, ok lets give this a serious try. So I bought a book called "Land of Lisp" very fun to read, terrible teaching material, messy and all over the place. Community was terrible too (Common Lisp), at least some people, rude, snobs, evangelistic and plain stupid. A minority of people but still enough to ruin your day.Then I was introduced to emacs, another super painful experience, thoroughly enjoyed and one day I mentioned how cool it would be if one could combine the simplicity of Lisp with emacs but via a GUI IDE and without elisp which was hog slow. People immediately recommended Squeak, I though they were messing with me because none would pick such a ridiculous name for a language. Looked to me like a toy language for kids and then it hit my face like a train. 

Pain, pain and more pain. 

But it was well worth, I was completely blown away from the elegance of Smalltalk.

The learning curve of Smalltalk and Lisp are plain insane. Made learningh DOS Assembly a walk in the park in comparison. 

But frankly thats half of the fun. 

Many obstacles, many challanges. 

And there lies my point that an obstacle is a good thing when it becomes an interesting challange. You have to have at least a degree of masochism to learn how to code in any language. Of course the question is what makes an interesting challange and welcome to the abyss that is called "human brain". None knows and we are not anywhere close in finding out. 

What we know is that documentation is super important , whether you are a masochist or not, you need it to progress. Problems is that documentation is hard to create and maintain, again masochism required. So we should not just worry about making it easier for people to reach documentation we should make it easier for people to maintain it. Because even masochism has its limits. Those limits are as far it is a pleasureable pain. 

So congratulations to anyone reading this long post , you already proven my point.

Thus, let embrace the pain of Pharo and the pain of smalltalk and instead of trying to make it easy, boring and usual. Lets turn it to a challange, lets turn it to a painful yet pleasureable experience 

I think to that extend we in a very good path, I think Pharo is definetly a fun experience to use and learn. 

A huge plus also for Pharo is the community and how welcoming it is, we take for granted but my experience with Python was not the best either. I joined the IRC channel, other than having to endure the stupidity of "say lol 3 times and you are banned" , too many wars over languages and how superior Python is than anything else. Guido is god and blah blah blah... No thanks. 

People here are open minded, still "religious" about Smaltalk but they actually want to help , not to teach, actually help. 

I think we are a bit too obsessed on how to make Pharo popular, Smalltalkers suffer from this insecurity of the "failure" of the "best language of the world" not only to become popular but also to convince coders that "is not a a relic of the past".  

But we are fine, documentation is doing grear, Pharo is improving rapidly , the community is welcoming as ever. All we need is embrace our successes and our failures, reject the hype, consider the crticism and accept it or reject it and generally carry on doing what we all love. 

Improving Pharo. 

;)
Reply | Threaded
Open this post in threaded view
|

Re: Pillar (was Re: Behold Pharo: The Modern Smalltalk)

Hannes Hirzel
In reply to this post by kilon.alios
Interoperability with pandoc is desirable

Some people want MSWord documents and they provide input in the form
of MSWord documents.
Or LibreOffice ODT.

pandoc handles that well for a subset of MSWord options.

pandoc allows you as well to write a custom output format -- in this
case Pillar.

E.g. conversion from MSWord docx to Pillar is possible.

It would need somebody to look into the issue of doing some Lua scripting.
pandoc has Lua embedded for output generation.


--Hannes


P.S. I will have some time later for Pillar issues (not Lua), but the
document model and generation of slides. Still open issue on my list
is rendering Pillar on Morphic, in particular slide.


On 10/13/17, Dimitris Chloupis <[hidden email]> wrote:

> Why exporting to latex, html and markdown is not enough for you ?
>
> On Fri, Oct 13, 2017 at 1:05 PM Gour <[hidden email]> wrote:
>
>> On Wed, 11 Oct 2017 17:18:54 +0000
>> Dimitris Chloupis <[hidden email]>
>> wrote:
>>
>> > Well there is a move towards Pillar for class and method commands so
>> > who knows maybe we will have that soon enough ;)
>>
>> Let me say that I'm very happy seeing that Pillar is moving forward (e.g.
>> addition of support for footnotes) as well as plan for the future (*.epub
>> support) since I'm considering whether it could serve as single-source
>> markup
>> for all of one's writings?
>>
>> After migrating from Python-powered static-site-generator (to Hugo) and
>> rst
>> markup I was considering to use AsciiDoc(tor) markup for all my content,
>> but,
>> so far, due to using Emacsm settled to use org-mode instead. Haven't
>> tried
>> with
>> slides (yet), but there is Pandoc support for it.
>>
>> Therefore, I'd rather see Pillar support in Pandoc which would buy us
>> even
>> more
>> import/export capabilities for free instead of focusing on single formats
>> like
>> *.odt, *.epub etc.
>>
>> Pillar with 1st class support in Pandoc would, imho, improve status of
>> Pharo
>> itself making it along with Pillar exceelent tool for development as well
>> as
>> for all writing needs - articles, books, documentation,
>> slide-presentations.
>>
>> But it would be nice to make it more transparent where/how can one submit
>> feature request for Pillar?
>>
>> Fogbugs issue trakcer is certainly not the ideal place these days...
>>
>>
>> Sincerely,
>> Gour
>>
>> --
>> Everyone is forced to act helplessly according to the qualities
>> he has acquired from the modes of material nature; therefore no
>> one can refrain from doing something, not even for a moment.
>>
>>
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Vitor Medina Cruz
In reply to this post by kilon.alios
I completely agree with Ben.

As for Dimitris, I have some points:

There numerous reason why this kind of thinking is fundamental flawed, if not completely wrong

1) How you get people to run in this race ?

2) What makes you think that people participating in the race doing to get first or even finish ?

3) How you are certain that those barriers are not the very reason people participate ?

The fundamental problem is that if you base your assumption that people are motivated on avoidance of pain, this is a very popular argument by the way, you going to be severely disapointed. From the very first fact that there is a 90% chance that right now that you use almost 100% of your time one of the worst software to be ever created.

Microsoft Windows.

Of course you can throw claims to me that peope use Windows because that is what’s popular and widely available, but then so is MacOS is by far the easiest to use OS out there. When you pit Windows vs Macos a such taboo subject , fuel to so many flame wars, there is one thing that both sides agree on and that is that MacOS is far easier to use , perdiod. The rest of the debate which OS is the best is up in the air and frankly not the point of my argument.

I think you are missing one point here: people get used to Windows, using windows with all it’s quirks and nonsenses became strong reinforced habits for most people, and that is something REALLY hard change.

The fact is , we love pain, we love barriers, we love doors that slam into our face. We love challange. But only if we find it interesting.

See, I think that’s not the point, the point is that people are very resistant to any change in their habits, so much that’s usually better to short-circuit into their habits to make a change instead of trying to force a hard change on them. That is why I think Ben point of view is not flawed at all, on the contrary, removing barriers is a way to make Pharo seems more like what people are habituated, short-circuiting peoples habits into Pharo usage. Withing time, people better understanding of Pharo may trigger small, but incremental, changes to it’s habits to get the “A-ha!!!” moment where live code and all wonders of Pharo make sense.

I frankly read very loosely the rest of you answer ( :) :P ), but I get you are not interested in making Pharo popular rather than get really interested, open minded people on borad so to make it even more amazing, but I also disagree here (in part  :) ). There are lot’s of people who could do better for the community if the entrance were easier, more popularity could means more opportunity in job field and, in a more philosophical matter, a way to make the whole current programming field better. Of course, with more popularity comes disadvantages as well, some of which you already said, which can be addressed, but if this is price to pay I personally think it is worth it.

On Fri, Oct 13, 2017 at 4:00 AM, Dimitris Chloupis <[hidden email]> wrote:

That is a familiar path, but still an obstacle for people to get over in trying Pharo - i.e. its a barrier of entry.  I've previously referred to this article by JoelOnSoftware, but to pull out a key part... "Think of these barriers as an obstacle course that people have to run before you can count them as your customers. If you start out with a field of 1000 runners, about half of them will trip on the tires; half of the survivors won’t be strong enough to jump the wall; half of those survivors will fall off the rope ladder into the mud, and so on, until only 1 or 2 people actually overcome all the hurdles. With 8 or 9 barriers, everybody will have one non-negotiable deal killer.  This calculus means that eliminating barriers to switching is the most important thing you have to do if you want to take over an existing market, because eliminating just one barrier will likely double your sales. Eliminate two barriers, and you’ll double your sales again."


 
****WARNING LONG POST AHEAD**** 

There numerous reason why this kind of thinking is fundamental flawed, if not completely wrong

1) How you get people to run in this race ?
2) What makes you think that people participating in the race doing to get first or even finish ?
3) How you are certain that those barriers are not the very reason people participate ?

The fundamental problem is that if you base your assumption that people are motivated on avoidance of pain, this is a very popular argument by the way, you going to be severely disapointed. From the very first fact that there is a 90% chance that right now that you use almost 100% of your time one of the worst software to be ever created. 

Microsoft Windows. 

Of course you can throw claims to me that peope use Windows because that is what's popular and widely available, but then so is MacOS is by far the easiest to use OS out there. When you pit Windows vs Macos a such taboo subject , fuel to so many flame wars, there is one thing that both sides agree on and that is that MacOS is far easier to use , perdiod. The rest of the debate which OS is the best is up in the air and frankly not the point of my argument. 

The fact is , we love pain, we love barriers, we love doors that slam into our face. We love challange. But only if we find it interesting. 

Of course Windows is not the only example  (C/C++ , Java , Web dev, computer games and the list is just endless)of the machocistic nature of human beings. I dont need to look far, my own story about how I started coding is more than enough . I am going to ramble about my initiation to the realm of coding , so feel free to ignore the rest of my post but what the hell here we go. 

From an early age , no idea when, I was exposed to the idea of the computer. Never used one before or saw on in person other than what I saw in the TV I asked my father to get me one and he agreed on the ground that I wont use it just to play games but to learn how to code. My father had no idea what coding is, had no idea what technology is, to this day he hates technology and he refuses to learn even how to close a window. None , friend , relative or random stranger I knew used a computer.

So I got this weird thing called computer and turned it on, of course motivated to play games like any other kind in my age, I was 9 years old at the time, december 1988. But I had a sense of honor even from that age so I had to keep my promise. So I did and I was fascinated by it, to the degree that I was coding as much I was playing games. Problem is that it was mainly masochistic venture. I had one book and one book alone, none that had any clue how to show how to turn this thing on and of course no internet, no schools, no magazines I could afford to buy or even know where to buy them . So in 3 years, I made nothing special, only tiny fragments of code and I was still struggling with basic concept like looping.

Yes, looping.

 But I already was doing things that a greek kid did not suppose to do and I did not even fit the geek stereotype at the time (not that the term existed at the time, I still does not exist in my language), I had tons of friends, I was anything but shy , I was the craziest nosiest kid suffering from the annoying syndrom of hyperactivity and with very lmited attention span. 

I was the absolute worst candidate to learn how to code, yet I did . Sort of. Then my father decided to send me, after me begging on my knees, on a prrivate school, that just opened near our neighborhood for learning. At the time time I only still had the same computer, Amstrad CPC 6128 and knew the very basics of Locomotive Basic which was used also by the computer as a bash like language for its OS. 

I went 3 years, the first year I did ok, an average student even though I had by far the most experience than other kids we learned GWBASIC. The second year I did terrible, we learned DBASE and the third we learned CLIPPER and blow any other student completely away, I was the only to graduate with 99.8% and our teacher was super strict on the matter of grades. But I wanted more. 

So I went and learned C++ and assembly because why not and when I told my teacher that, he was looking me with his eye wide open, took me quite a lenghy discussion to convince him that this was true. 

The reason why the first year I did average was that it was too easy. I was already familiar with Basic , sure I was struggling with basic concepts when I started but   under the wing of the teacher (he was a great teacher, professional coder and highly skilled at helping you understand even the most difficult concepts) and full access to multiple books in few months became a walk in the park. The second year was a disaster, partly because our teacher decided to hire a relative of his to teach us DBASE and the guy was a moron wasting his time with telling jokes. The truth is that I did not like and still dont like database coding. Clipper I fall in love with it at the time because still a database orientated language but our teacher tought us, his relative got sacked as soon as he learned that he sucked, that happened one year after because none of the kids had the courage to go tell him and it was probably a parent the told him and did so well I was even offered to make a database for a considerable amount of money. Said no. Again not interested. 

My story is nothing special, I heard it in slightly diffirent versions by countless others in a similar situation however my point is  not to brag, because lets face it I was just merely learning languages and not doing any serious coding , my point is that the drive behind it was the pain. Was the obstacles. Was the challange. 

Pharo for me is also the same story. At the time I was coding in Python, super easy, got the job done, had no intention learning another language because why bother when they all look the same and they would have been much less powerful than Python. I was super happy with Python and still is one of my favorite language as you all know. Then I saw people on forums rambling about this weird language called Lisp , I was interested, google a tutorial , saw the parentheses , said "hell no!" and carried on coding in python. Then even more people claiming that it was so amazing, that it can cure cancer and make you super sexy. I always wanted to be super sexy so I said, ok lets give this a serious try. So I bought a book called "Land of Lisp" very fun to read, terrible teaching material, messy and all over the place. Community was terrible too (Common Lisp), at least some people, rude, snobs, evangelistic and plain stupid. A minority of people but still enough to ruin your day.Then I was introduced to emacs, another super painful experience, thoroughly enjoyed and one day I mentioned how cool it would be if one could combine the simplicity of Lisp with emacs but via a GUI IDE and without elisp which was hog slow. People immediately recommended Squeak, I though they were messing with me because none would pick such a ridiculous name for a language. Looked to me like a toy language for kids and then it hit my face like a train. 

Pain, pain and more pain. 

But it was well worth, I was completely blown away from the elegance of Smalltalk.

The learning curve of Smalltalk and Lisp are plain insane. Made learningh DOS Assembly a walk in the park in comparison. 

But frankly thats half of the fun. 

Many obstacles, many challanges. 

And there lies my point that an obstacle is a good thing when it becomes an interesting challange. You have to have at least a degree of masochism to learn how to code in any language. Of course the question is what makes an interesting challange and welcome to the abyss that is called "human brain". None knows and we are not anywhere close in finding out. 

What we know is that documentation is super important , whether you are a masochist or not, you need it to progress. Problems is that documentation is hard to create and maintain, again masochism required. So we should not just worry about making it easier for people to reach documentation we should make it easier for people to maintain it. Because even masochism has its limits. Those limits are as far it is a pleasureable pain. 

So congratulations to anyone reading this long post , you already proven my point.

Thus, let embrace the pain of Pharo and the pain of smalltalk and instead of trying to make it easy, boring and usual. Lets turn it to a challange, lets turn it to a painful yet pleasureable experience 

I think to that extend we in a very good path, I think Pharo is definetly a fun experience to use and learn. 

A huge plus also for Pharo is the community and how welcoming it is, we take for granted but my experience with Python was not the best either. I joined the IRC channel, other than having to endure the stupidity of "say lol 3 times and you are banned" , too many wars over languages and how superior Python is than anything else. Guido is god and blah blah blah... No thanks. 

People here are open minded, still "religious" about Smaltalk but they actually want to help , not to teach, actually help. 

I think we are a bit too obsessed on how to make Pharo popular, Smalltalkers suffer from this insecurity of the "failure" of the "best language of the world" not only to become popular but also to convince coders that "is not a a relic of the past".  

But we are fine, documentation is doing grear, Pharo is improving rapidly , the community is welcoming as ever. All we need is embrace our successes and our failures, reject the hype, consider the crticism and accept it or reject it and generally carry on doing what we all love. 

Improving Pharo. 

;)

Reply | Threaded
Open this post in threaded view
|

Re: Pillar (was Re: Behold Pharo: The Modern Smalltalk)

Offray Vladimir Luna Cárdenas-2
In reply to this post by Hannes Hirzel
Hi,

I have created a document in Grafoscopio. The source file is a single
Grafoscopio notebook in STON [1] (~600kb), the output is a single
Pandoc's Markdown file[2] (~500kb), and you can produce the output as a
PDF file like in [3] (~13Mb). Pandoc has a lot of maturity and a
community with a lot of momentum, dedicated mainly to light
documentation. If we have support for Pandoc's Markdown on Pharo, we can
leverage on that knowledge and tools without reinventing the wheel. Of
course using AST and a lot of infrastructure behind Pillar can be used,
without falling in love with its syntax.

[1] http://mutabit.com/repos.fossil/mapeda/doc/tip/mapeda.ston
[2] http://mutabit.com/repos.fossil/mapeda/doc/tip/mapeda.markdown
[3] http://mutabit.com/repos.fossil/mapeda/uv/mapeda.pdf

Cheers,

Offray

On 13/10/17 08:21, H. Hirzel wrote:

> Interoperability with pandoc is desirable
>
> Some people want MSWord documents and they provide input in the form
> of MSWord documents.
> Or LibreOffice ODT.
>
> pandoc handles that well for a subset of MSWord options.
>
> pandoc allows you as well to write a custom output format -- in this
> case Pillar.
>
> E.g. conversion from MSWord docx to Pillar is possible.
>
> It would need somebody to look into the issue of doing some Lua scripting.
> pandoc has Lua embedded for output generation.
>
>
> --Hannes
>
>
> P.S. I will have some time later for Pillar issues (not Lua), but the
> document model and generation of slides. Still open issue on my list
> is rendering Pillar on Morphic, in particular slide.
>
>
> On 10/13/17, Dimitris Chloupis <[hidden email]> wrote:
>> Why exporting to latex, html and markdown is not enough for you ?
>>
>> On Fri, Oct 13, 2017 at 1:05 PM Gour <[hidden email]> wrote:
>>
>>> On Wed, 11 Oct 2017 17:18:54 +0000
>>> Dimitris Chloupis <[hidden email]>
>>> wrote:
>>>
>>>> Well there is a move towards Pillar for class and method commands so
>>>> who knows maybe we will have that soon enough ;)
>>> Let me say that I'm very happy seeing that Pillar is moving forward (e.g.
>>> addition of support for footnotes) as well as plan for the future (*.epub
>>> support) since I'm considering whether it could serve as single-source
>>> markup
>>> for all of one's writings?
>>>
>>> After migrating from Python-powered static-site-generator (to Hugo) and
>>> rst
>>> markup I was considering to use AsciiDoc(tor) markup for all my content,
>>> but,
>>> so far, due to using Emacsm settled to use org-mode instead. Haven't
>>> tried
>>> with
>>> slides (yet), but there is Pandoc support for it.
>>>
>>> Therefore, I'd rather see Pillar support in Pandoc which would buy us
>>> even
>>> more
>>> import/export capabilities for free instead of focusing on single formats
>>> like
>>> *.odt, *.epub etc.
>>>
>>> Pillar with 1st class support in Pandoc would, imho, improve status of
>>> Pharo
>>> itself making it along with Pillar exceelent tool for development as well
>>> as
>>> for all writing needs - articles, books, documentation,
>>> slide-presentations.
>>>
>>> But it would be nice to make it more transparent where/how can one submit
>>> feature request for Pillar?
>>>
>>> Fogbugs issue trakcer is certainly not the ideal place these days...
>>>
>>>
>>> Sincerely,
>>> Gour
>>>
>>> --
>>> Everyone is forced to act helplessly according to the qualities
>>> he has acquired from the modes of material nature; therefore no
>>> one can refrain from doing something, not even for a moment.
>>>
>>>
>>>
>>>
>



Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

aglynn42
In reply to this post by Offray Vladimir Luna Cárdenas-2
I can't remember ever using API docs in any language, dynamic or not. They give you the method signatures, but if you have, say, methodX(int, int, String), how are you supposed to guess what ints and what String the method actually needs, unless the methods are nothing but getters and setters (which I've never understood the point of) ? (I know, most give (int somename, int someothername, String whatever), but how often do are method names well thought through enough to imply definitively what the method needs?.  

It's my biggest issue with Algol-style syntax - the method caller is supposed to know how it works, rather than whoever actually wrote it. It's probably at least one of the reasons for the amount of OSS in Java, and more recently in JavaScript (though the latter is more no-style than Algol-style). I nearly always download the source to OSS libs although I rarely ever bother building it, so I know what a method does with the params, and I can be sure what params to give it.

One of my favourite language fails can be reproduced by doing this: 

Declare a field private final in Java, initializing it either in the declaration or the constructor, and provide only a getter. Use the getter from another class and change the value of the local variable. Then use the getter again, but assign the value to a new local variable, and check the value.  

Guess what? The value is whatever you changed it to in your other local variable, although the API docs claim javac won't compile it. I tested this with Java 8, I haven't bothered to see if it was always like that or if they took the rule out of javac because it interfered with some syntactic parmesan, such as lambdas. I should copy my test code into VisualAge for Java and see if in fact it compiles with JDK 1.4.2, or if javac was changed in between 4 and 8, since the addition of various flavours of syntactic parmesan mostly started with Java 5.

Not that it's all that important in one sense. If 'private' and 'final' were supposed to be guides for other developers to be careful if they're thinking about changing it, fine, anyone who doesn't isn't all that good a developer. But given the number of 'not very good' developers I've had the misfortune to work with in Java, it's more problematic than it should be. It also makes the pattern of a private field with a public setter even more useless, since the setter isn't needed to change the value. I always get dinged by whatever lint companies use for not bothering with that pattern, though, and pointing out that declaring the fields public accomplishes exactly the same thing never helps my case, because whatever lint they use, it has to be right, there's no way a non-lint developer might be right.

Andrew Glynn

-----Original Message-----

Date: Wed, 11 Oct 2017 10:01:20 -0500
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
Reply-to: Any question about pharo is welcome <[hidden email]>
From: Offray Vladimir Luna Cárdenas <[hidden email]>

Yes. I know them. I mean API docs as static files. I don't really sold on them compared with a live system and I don't think static API docs are critical for Pharo success.

Cheers,

Offray


On 11/10/17 09:52, Dimitris Chloupis wrote:
Ah and my static website was built with Pillar and Bootstrap, using bootstrap templates was easy because Pillar supports mustache that makes html manipulation much easier

http://www.kilon-alios.com

Pillar of course is not made for generating websites but it’s an awesome Pharo library that allows for great degree of freedom so I thought , why not ?
On Wed, 11 Oct 2017 at 17:48, Dimitris Chloupis <[hidden email]> wrote:
Docs are available in static online html format , at least the book I was working on

Pharo By Example

You can find those links here

https://github.com/SquareBracketAssociates/UpdatedPharoByExample

Our documentation system , Pillar , outputs pdf , html and markdown files.

If the book in question is built like PBE with CI of Inria where most Pharo related official projects are built then it should have at least pdf and html with online access so you can easily link to.

Don’t quote me on this but I think the html output of pillar generate links even for paragraphs you can do an even more process linking to the documentation.
On Wed, 11 Oct 2017 at 17:40, Offray Vladimir Luna Cárdenas <[hidden email]> wrote:

The more I use Pharo, the less I use web documentation. For me seems pretty suboptimal compared to live environment with code browser and GT-Spotter. Regarding the comment on Medium, it also took me little to find #raisedTo:, so the millage can vary. What I was missing was proper books for particular domains, but Pharo books are covering that. I don't know if a Q&A site could improve search-ability for newbies (certainly you can find little stuff in Stack Overflow).

My bet is about trying to create more "end user" tools (Grafoscopio is kind of this), besides tools for developers. There is a broad community of people who can be active contributors and members of the community, welcome Pharo and live coding a lot and don't complain that much about stuff that is not already pretty similar to what they already know (being that only English MOOC or online static html docs).

Cheers,

Offray


On 11/10/17 07:34, Dimitris Chloupis wrote:
for me it is a yes and no situation, yes its very coold to have your entire system in your fingertips but Pharo has serious issues with code organisation and I find the lack of namespaces quite inconvenient. You have to be careful how to name your classes which does not sound to me very OOP friendly. 

Also the IDE does not handle spaggetification very well, sure you can find implementors , senders etc but if the execution chain is complex , welcome to spaggeti hell. But that is a problem with most other IDEs if not all as well. Problem is in this case that we have the very good rule of using sort methods which multiplies this problem and makes navigation even harder. Code becomes much easier to read per method and messages but much harder to understand in a bird eye view.

Some of that pain has been aleviated with the introduction of GTSpotter which I have praised quite a lot and I will continue to do so. But yeah there are more needed to be done in the department to make Pharo code navigation a more comfortable task. 

On Wed, Oct 11, 2017 at 2:57 PM Vitor Medina Cruz <[hidden email]> wrote:
I dunno, maybe I’m weird, but I find the System Browser a fantastic way to explore the class library. If you find a class or method that isn’t well documented, write a comment and send a change request. Stef told me this ages ago. I might add, if you find a bug you should write a test that exercises the bug and submit it on fogbugz (the bug tracking system).

I will reference of response of mine to a similar opinion made by Richard: https://medium.com/@vitormcruz/i-disagree-it-is-much-harder-to-find-anything-in-the-environment-c6bdd44f6eea

My 2 cents.




On Tue, Oct 10, 2017 at 11:59 PM, john pfersich <[hidden email]> wrote:

> 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 dunno, maybe I’m weird, but I find the System Browser a fantastic way to explore the class library. If you find a class or method that isn’t well documented, write a comment and send a change request. Stef told me this ages ago. I might add, if you find a bug you should write a test that exercises the bug and submit it on fogbugz (the bug tracking system).

> 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 &lt;
>>
>>> horrido.hobbies@
>>
>>> &gt; 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
>








Reply | Threaded
Open this post in threaded view
|

Re: Pillar (was Re: Behold Pharo: The Modern Smalltalk)

Stephane Ducasse-3
In reply to this post by Gour
epub already works. Now it should be improved.

Doing an pandoc exporter should not be that difficult. If you do it I
will integrate it.

On Fri, Oct 13, 2017 at 12:03 PM, Gour <[hidden email]> wrote:

> On Wed, 11 Oct 2017 17:18:54 +0000
> Dimitris Chloupis <[hidden email]>
> wrote:
>
>> Well there is a move towards Pillar for class and method commands so
>> who knows maybe we will have that soon enough ;)
>
> Let me say that I'm very happy seeing that Pillar is moving forward (e.g.
> addition of support for footnotes) as well as plan for the future (*.epub
> support) since I'm considering whether it could serve as single-source markup
> for all of one's writings?
>
> After migrating from Python-powered static-site-generator (to Hugo) and rst
> markup I was considering to use AsciiDoc(tor) markup for all my content, but,
> so far, due to using Emacsm settled to use org-mode instead. Haven't tried with
> slides (yet), but there is Pandoc support for it.
>
> Therefore, I'd rather see Pillar support in Pandoc which would buy us even more
> import/export capabilities for free instead of focusing on single formats like
> *.odt, *.epub etc.
>
> Pillar with 1st class support in Pandoc would, imho, improve status of Pharo
> itself making it along with Pillar exceelent tool for development as well as
> for all writing needs - articles, books, documentation, slide-presentations.
>
> But it would be nice to make it more transparent where/how can one submit
> feature request for Pillar?
>
> Fogbugs issue trakcer is certainly not the ideal place these days...
>
>
> Sincerely,
> Gour
>
> --
> Everyone is forced to act helplessly according to the qualities
> he has acquired from the modes of material nature; therefore no
> one can refrain from doing something, not even for a moment.
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Nicolai Hess-3-2
In reply to this post by aglynn42


Am 13.10.2017 5:50 PM schrieb "Andrew Glynn" <[hidden email]>:
I can't remember ever using API docs in any language, dynamic or not. They give you the method signatures, but if you have, say, methodX(int, int, String), how are you supposed to guess what ints and what String the method actually needs,

Isn't this exactly what an apidoc is for? Additional documentation to describe the methods and   arguments purpose. 

Maybe you have just seen poorly documented libraries?


One of my favourite language fails can be reproduced by doing this: 

Declare a field private final in Java, initializing it either in the declaration or the constructor, and provide only a getter. Use the getter from another class and change the value of the local variable. Then use the getter again, but assign the value to a new local variable, and check the value.  


Maybe you should re-read about javas  final keyword.
It is not to meant making something immutable ,
you can just not reassign a new value.

Java final != c++ const


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

aglynn42
I understand why it occurs, both the private and the final keyword
affect the reference rather than the object. However, to quote someone
else "That the value of a private field can be changed without a public
setter implies that encapsulation is weak at best, and shouldn't be
counted on to protect key values, even in combination with the final
keyword." Even that comment, though, brings in the notion of a 'value'
that's not an object.

My point initially was not about the code, but about the Java API doc
that also claims attempting to change the value will result in a compile
error. Although keywords affect references, the documentation states
that it affects 'the value', which is at best ambiguous. There's
inevitably a conflation of passing by value and passing by reference in
Java by former C/C++ programmers, since it looks like PBV to a C/C++
programmer while always in fact being PBR. When copying syntax
inverting the meaning of the syntax is counterproductive.

There are also numerous issues around type erasure (mainly that it works for
collections, even simple collections such as vectors, but not for
arrays) and the resulting need for Java to allow invalid type casts in
certain cases even though they can result in uncaught runtime
exceptions. Since the fact that they are invalid is explicit in the API
doc, that they are allowed because there's no other way to do it is
problematic.

Using lambdas or the streaming API within Java EE is another
undocumented problem, or set of problems ( it was good fortune for me
personally - when some software using the streaming API in an EE
container consistently failed and the developer had no idea why, the
company gave me the project I implemented it in Pharo, ☺ ).  Oracle did
at one point have a note on the Java EE 7 download page to the effect
that Java EE 7 shouldn't be used with Java SE 8, but that was
'disappeared' when Java SE 7 was no longer supported and Java EE 7 was
still the latest version. Since Java EE 8 is not even on the horizon,
while SE 9 is due 'any minute now', I have to wonder if EE is simply
dead. The requests from IBM, SAP and others to take over EE imply they
at least suspect the same.

I'd rather have no API documentation than documentation of the sort
represented by the Java API doc. Not that I think it's all
intentional, though perhaps the primitives and scalars that are in fact
objects and collections may have been to muffle wailing from C/C++
programmers that the lack of primitives and scalars would kill
performance. I suspect it's more often a result of unsuccessfully
mode-switching, though, between the rules of the language you're
implementing and those of the language you're implementing in, but that
only makes the case for languages implemented in themselves stronger.

Andrew


-----Original Message-----

Date: Fri, 13 Oct 2017 18:39:59 +0200
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <pharo-
From: Nicolai Hess <[hidden email]>


Am 13.10.2017 5:50 PM schrieb "Andrew Glynn" <[hidden email]>:
I can't remember ever using API docs in any language, dynamic or not. 
They give you the method signatures, but if you have, say, methodX(int,
int, String), how are you supposed to guess what ints and what String
the method actually needs,


Isn't this exactly what an apidoc is for? Additional documentation to describe the methods and   arguments purpose. 

Maybe you have just seen poorly documented libraries?


One of my favourite language fails can be reproduced by doing this: 

Declare a field private final in Java, initializing it either in the declaration or the constructor, and provide only a getter. Use the getter from another class and change the value of the local variable. Then use the getter again, but assign the value to a new local variable, and check the value.  



Maybe you should re-read about javas  final keyword.
It is not to meant making something immutable ,
you can just not reassign a new value.

Java final != c++ const



Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
In reply to this post by Nicolai Hess-3-2
Well oh Well, Python is stupid.... Very, very stupid

To my suprise live coding in Python its actually easier to what I expected and almost the same, from user perspective to that of pharo.Minus the IDE conveiniece of course.  But a pain in the hat to find the proper way to do it. 

I was reloading modules, was thining of implementing become to python , which basically means replacing references to old instance object with references to new objects , then I thought that it would be more efficient to just reference the new methods to the instances and after a TON of testing I realized this is dead simple and for some reason python hides it very well. All the above were completely unecessary. 

Insance methods are referencing functions in the class object. Apparently functions in a class are taken as class methods and functions with self as first argument are considered instance methods. Which means I just copy paste the code of the method to the debugger, and assign it back to the existing live class and all instances are updated automagically. No need for become, no need to update instances manually no need to even reload the module. Similarly you can delete methods and add methods on the fly always live. Renaming a method is basically deleting and assigning . Renaming the class is the same. As is for class and instance variables. So anything can change on the fly. Names are there for your pleasure, in the end all that matters are the references.Its objects all the way down. 

The equivelant of a python instance method defiition and live updae , the python way, on Pharo would be 

MyClass instanceMethodName:= myMessage firstArg:self arg2: foo1 arg3: foo2....
|locals|
code stuff

and you python "call it" or message it 

MyClass insanceMethodName arg2:foo1 arg3: foo2 , no need to use self when calling it. Self is automatically passed because from the definition python knows this is suppose to be an insance method. 

or you could put a block after the assigment , because the name of the message is assigned by the assignment anyway,  for class method you ommit the first argument of self. Calling is the same. This replaces a method or adds it if does not exist. All instances of that live class are immediately poitining to the new method. So the class is basically a collection of references.
 
So all I have to do now is to wrap the copy paste and assignment in a single shortcut or button and I am ready to fly to live coding land. Days wasted chasing my tail but at least I learned a lot about python objects which are basically dictionaries objects (for variables) plus function objects (for class and instance methods) wrap inside an object, or rather referenced, called a class.   

Storing the live state , similar to fuel, is supported by the pickle library.  

Why on earth python made it so hard something so simple to understand ? no idea .I dont even need to make a live coding enviroment library as I assumed, its already there, hiding under the cover too scared to come out.    

Now I know why none or almost none does live coding in Python. 
Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

Nicolai Hess-3-2
In reply to this post by aglynn42


2017-10-13 22:04 GMT+02:00 Andrew Glynn <[hidden email]>:
I understand why it occurs, both the private and the final keyword
affect the reference rather than the object. However, to quote someone
else "That the value of a private field can be changed without a public
setter implies that encapsulation is weak at best, and shouldn't be
counted on to protect key values, even in combination with the final
keyword." Even that comment, though, brings in the notion of a 'value'
that's not an object.

and who did you quote ?

 

My point initially was not about the code, but about the Java API doc
that also claims attempting to change the value will result in a compile
error. Although keywords affect references, the documentation states
that it affects 'the value', which is at best ambiguous.

I can not see what is wrong here.
You are problably confused by
- the value of a *variable*
- and the value an *object* represents (its object state)
the first can not be changed for a final variables
the last can only be preserved, if the object is immutable.

 
There are also numerous issues around type erasure

... this seems a bit off topic


I'd rather have no API documentation than documentation of the sort
represented by the Java API doc.

I  think a java api doc like documentation would help.
For newcomers, that not yet know ( or know how to find) the in-image help.
And even so we can easily browse our code with comments and class comments,
an API-doc could provide the help from a different view (group by collaboration rather
then by class hierarchy or packages), give an "overall" view or provide additional code examples.

 
Not that I think it's all
intentional, though perhaps the primitives and scalars that are in fact
objects

How are java primitives "in fact" objects ? They are "in fact" primitives. This is different from
smalltakl where some *objects* like Smallinteger are implemented as primitives (or immediates)
but still objects on the (smalltalk) code level.
 
and collections may have been to muffle wailing from C/C++
programmers that the lack of primitives and scalars would kill
performance. I suspect it's more often a result of unsuccessfully
mode-switching, though, between the rules of the language you're
implementing and those of the language you're implementing in, but that
only makes the case for languages implemented in themselves stronger.

Andrew


-----Original Message-----

Date: Fri, 13 Oct 2017 18:39:59 +0200
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <pharo-
From: Nicolai Hess <[hidden email]>


Am 13.10.2017 5:50 PM schrieb "Andrew Glynn" <[hidden email]>:
I can't remember ever using API docs in any language, dynamic or not. 
They give you the method signatures, but if you have, say, methodX(int,
int, String), how are you supposed to guess what ints and what String
the method actually needs,


Isn't this exactly what an apidoc is for? Additional documentation to describe the methods and   arguments purpose. 

Maybe you have just seen poorly documented libraries?


One of my favourite language fails can be reproduced by doing this: 

Declare a field private final in Java, initializing it either in the declaration or the constructor, and provide only a getter. Use the getter from another class and change the value of the local variable. Then use the getter again, but assign the value to a new local variable, and check the value.  



Maybe you should re-read about javas  final keyword.
It is not to meant making something immutable ,
you can just not reassign a new value.

Java final != c++ const




Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

aglynn42
In reply to this post by kilon.alios
The first language I played with, I was nearly 5, was a live environment, Forth. I used it on an old PDP my mother had bought that was being surplused at the company she worked at. I used Forth until I was in my early teens, it was far superior to the BASIC that most other kids I knew who knew any programming used. It wasn't Smalltalk, but in many of the areas it was used (production automation is one major area), the language that most often replaced it was Smalltalk.

The biggest difference, for me, as I wrote in the article the other day, is the ability to build-on rather than build-with, which in turn is based on the environment being written in itself. Ruby looks very much like Smalltalk, but it works like Java; Python works more like Smalltalk, and it's a much better live environment than Java or Ruby, because more of it is written in itself, but too much of Python is written in C, and that causes problems. If the code that interprets/compiles your code follows the same rules, the machine code it generates will usually also follow the same rules, and those rules/restrictions are, for the most part, designed to make code more reliable. 

As well, RVM has proven Smalltalk (specifically Squeak / Pharo, though admittedly an older version) can scale to 1024 cores nearly linearly.

Python has a decent developer base but it's almost all OSS and almost all on Linux. Very few applications in Python are in areas where reliability is absolutely necessary, or even all that important.  Like Smalltalk, it's a general purpose language in a niche, but the niches are very different. For years, decades really, any good version of Smalltalk cost an arm and a leg (some of them both of each), and as a result it tended to be used only where things really had to work.  

Pharo is a great OSS Smalltalk, IMHO by the best to date (Squeak was/is good, but the LaF was never professional enough for it to be taken as seriously as it deserves, it just looks too much like a toy although in reality it's very powerful). Having the capability to build-on a reliable, attractive and enjoyable base without signing over my great-grand-child's first born is fantastic, and a great achievement for those who accomplished it.

Kendrick is an example of what can be done if you build-on: it was built on Moose, which is built on Glamorous, which is built on Morphic, which itself is based on a couple of decades work olving the basic problems inherent to UI's and MVC-type UI's in particular. Kendrick itself was written in a very short time when you compare it with other epidemiology programs, if you only count the time spent on Kendrick itself. It's an inherently complex problem area, and it's a life or death problem area. That an application capable of working reliably enough to be trusted in that area was built in a short time, because it was built-on a couple of decades of OSS work, is a huge compliment to those who were involved.

Unfortunately for me, I wasn't, ☺. But at least I can take advantage of it existence now.

Andrew









-----Original Message-----

Date: Fri, 06 Oct 2017 21:18:28 +0000
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <[hidden email]>
From: Dimitris Chloupis <[hidden email]>
Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP. 

And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less. 

iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment. 

To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality. 

For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why. 

But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!

I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again. 

I really hope that we take this further though. 

On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
Behold Pharo: The Modern Smalltalk
<https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>

If you would like to suggest some edits, I'm all ears. Anything to improve
the impact of the article.

Thanks.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: Behold Pharo: The Modern Smalltalk

kilon.alios
I don’t care about Python vs Pharo debate. I love both I use both.

My ultimate goal is to unite the two under a single Uber powerful live coding environment part of my project Atlas. With direct mapping between Pharo and Python objects and no compromises. A workflow that will be seamless that you won’t know if you use Python or Pharo libraries as the Atlas environment will allow you to work with both languages in a symbiotic relationship.

That was a dream of mine that I did not dear to reveal now slowly and steadily becomes reality.

I am extending the live coding environment of python and later will tackle the subject of a python image format.

Already Atlas can use python libraries from Pharo but that’s about it , but after this revelation I can move to stage 2 of full synchronization between Python and Pharo. Even now Atlas allows you to use Pharo syntax to fully access Python libraries. But integration is skin deep and is what is going to improve the next years.

So it seems something good came out of this very long discussion. Atlas is going for a big update. This thread has been a huge inspiration for me. Super excited :)

On Sat, 14 Oct 2017 at 03:40, Andrew Glynn <[hidden email]> wrote:
The first language I played with, I was nearly 5, was a live environment, Forth. I used it on an old PDP my mother had bought that was being surplused at the company she worked at. I used Forth until I was in my early teens, it was far superior to the BASIC that most other kids I knew who knew any programming used. It wasn't Smalltalk, but in many of the areas it was used (production automation is one major area), the language that most often replaced it was Smalltalk.

The biggest difference, for me, as I wrote in the article the other day, is the ability to build-on rather than build-with, which in turn is based on the environment being written in itself. Ruby looks very much like Smalltalk, but it works like Java; Python works more like Smalltalk, and it's a much better live environment than Java or Ruby, because more of it is written in itself, but too much of Python is written in C, and that causes problems. If the code that interprets/compiles your code follows the same rules, the machine code it generates will usually also follow the same rules, and those rules/restrictions are, for the most part, designed to make code more reliable. 

As well, RVM has proven Smalltalk (specifically Squeak / Pharo, though admittedly an older version) can scale to 1024 cores nearly linearly.

Python has a decent developer base but it's almost all OSS and almost all on Linux. Very few applications in Python are in areas where reliability is absolutely necessary, or even all that important.  Like Smalltalk, it's a general purpose language in a niche, but the niches are very different. For years, decades really, any good version of Smalltalk cost an arm and a leg (some of them both of each), and as a result it tended to be used only where things really had to work.  

Pharo is a great OSS Smalltalk, IMHO by the best to date (Squeak was/is good, but the LaF was never professional enough for it to be taken as seriously as it deserves, it just looks too much like a toy although in reality it's very powerful). Having the capability to build-on a reliable, attractive and enjoyable base without signing over my great-grand-child's first born is fantastic, and a great achievement for those who accomplished it.

Kendrick is an example of what can be done if you build-on: it was built on Moose, which is built on Glamorous, which is built on Morphic, which itself is based on a couple of decades work olving the basic problems inherent to UI's and MVC-type UI's in particular. Kendrick itself was written in a very short time when you compare it with other epidemiology programs, if you only count the time spent on Kendrick itself. It's an inherently complex problem area, and it's a life or death problem area. That an application capable of working reliably enough to be trusted in that area was built in a short time, because it was built-on a couple of decades of OSS work, is a huge compliment to those who were involved.

Unfortunately for me, I wasn't, ☺. But at least I can take advantage of it existence now.

Andrew









-----Original Message-----

Date: Fri, 06 Oct 2017 21:18:28 +0000
Subject: Re: [Pharo-users] Behold Pharo: The Modern Smalltalk
To: Any question about pharo is welcome <[hidden email]>
Reply-to: Any question about pharo is welcome <[hidden email]>
From: Dimitris Chloupis <[hidden email]>
Wise not to mention Ruby and Python and Pick the worst of the worst in OOP. Because frankly the competition for Pharo against those two behemoths can be quite brutal in the flexibility and power of OOP. 

And no , these language can do live coding with ease. I know because I currently code live coding style with Python for an app I am making. Sure it wont provide you with a live system out of the box, but put in 10 lines of code and you already ready to go with hardcore live coding. At least Python , Ruby being practically a rip off of Smalltalk language may need even less. 

iPython which by the way is by far the most popular Python tool is the real deal, a full blow live coding enviroment. 

To my suprise its not even hard to do live coding with C/C++ including using image format. To my shock live coding is actually supported by both the OS and the hardware. Hardware has its own exception system , OS has an image flie format called "memory mapped files" used for DLLs and a lot of essential functionality. 

For some weird reason however its well hidden and not that much utilised by coders. They really love long compile times, dont ask me why. 

But yeah C++ even though it has come a long way with its template system, its still the king of ugly. That sytax, oh the horrors of that syntax..... yiaks !!!

I am so enternal greatful that Pharo introduced me to live coding and opened my eyes to universe of fun and productivity. I cannot imagine coding an other way ever again. 

I really hope that we take this further though. 

On Wed, Oct 4, 2017 at 1:31 PM horrido <[hidden email]> wrote:
Behold Pharo: The Modern Smalltalk
<https://medium.com/smalltalk-talk/behold-pharo-the-modern-smalltalk-38e132c46053>

If you would like to suggest some edits, I'm all ears. Anything to improve
the impact of the article.

Thanks.



--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

jtuchel
In reply to this post by kilon.alios


Am 12.10.17 um 20:04 schrieb Dimitris Chloupis:
>
> Eclispe , which I will disagree with your that is not the worst IDE,
> started as a smalltalk IDE and then it got Eclipsed. I am sure those
> people had a "build on" environment , still it got messy. We can blame
> porting to Java, but can we really blame Java for the mess that is
> called "Eclipse".... ehhhh.... nope.
>
Eclipse was never implemented in Smalltalk. Its predecessor, VisualAge
for Java (and parts of the other VisualAge family members) was. Eclipse
was started as a replacement for VisualAge for Java because Java
develoers didn't like VisualAge for its emulation of an image based
environement. It was a very nice IDE for Java (the best I've known), but
it wasn't a nice home for developers who think in files.
These days Eclipse, IMO, does emulate an image as good as possible, but
nobody cares anymore, because it hides the fact and lets you think in
files ;-)

Joachim

Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

kilon.alios
I stand corrected

On Sat, 14 Oct 2017 at 08:11, [hidden email] <[hidden email]> wrote:


Am 12.10.17 um 20:04 schrieb Dimitris Chloupis:
>
> Eclispe , which I will disagree with your that is not the worst IDE,
> started as a smalltalk IDE and then it got Eclipsed. I am sure those
> people had a "build on" environment , still it got messy. We can blame
> porting to Java, but can we really blame Java for the mess that is
> called "Eclipse".... ehhhh.... nope.
>
Eclipse was never implemented in Smalltalk. Its predecessor, VisualAge
for Java (and parts of the other VisualAge family members) was. Eclipse
was started as a replacement for VisualAge for Java because Java
develoers didn't like VisualAge for its emulation of an image based
environement. It was a very nice IDE for Java (the best I've known), but
it wasn't a nice home for developers who think in files.
These days Eclipse, IMO, does emulate an image as good as possible, but
nobody cares anymore, because it hides the fact and lets you think in
files ;-)

Joachim

Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

aglynn42
In reply to this post by jtuchel
The problem is that it takes 1233 pages of config, and that's the summary page of my config, and it uses 15GB RAM, on my laptop, lol.

On Sat, Oct 14, 2017 at 1:10 AM, [hidden email] <[hidden email]> wrote:


Am 12.10.17 um 20:04 schrieb Dimitris Chloupis:

Eclispe , which I will disagree with your that is not the worst IDE, started as a smalltalk IDE and then it got Eclipsed. I am sure those people had a "build on" environment , still it got messy. We can blame porting to Java, but can we really blame Java for the mess that is called "Eclipse".... ehhhh.... nope.

Eclipse was never implemented in Smalltalk. Its predecessor, VisualAge for Java (and parts of the other VisualAge family members) was. Eclipse was started as a replacement for VisualAge for Java because Java develoers didn't like VisualAge for its emulation of an image based environement. It was a very nice IDE for Java (the best I've known), but it wasn't a nice home for developers who think in files.
These days Eclipse, IMO, does emulate an image as good as possible, but nobody cares anymore, because it hides the fact and lets you think in files ;-)

Joachim




--
Andrew Glynn
512-818-3291
Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

Hannes Hirzel
In reply to this post by aglynn42
On 10/12/17, Andrew Glynn <[hidden email]> wrote:

> https://medium.com/@dasein42/building-with-versus-building-on-c51aa3034
> c71
> This is an article not specifically about Pharo, rather on the state of
> the industry
> in general and how it got that way, but positing Pharo as a way to
> learn
> building-on rather than building-with, where in the latter case on
> every project you start at essentially the same place.
> As a result it does put in front of people a fair amount of info on
> Pharo, and challenges them to try it.
>
> cheersAndrew Glynn


Thank you for this comprehensive report.

Do you have a reference for more info about the epidemiology project
which was completed in only a months time?  [1]

-- Hannes



[1] <citation>
After Google spent millions failing to solve the epedemiology of the
Ebola outbreak, an application built with it, or rather on it, by one
developer in an extremely short timespan (under a month), successfully
predicted the path and allowed it to be stopped by vaccinating those
in the most likely path. Google themselves took notice, and their Dart
language, while using syntax similar to the JavaScript many of their
developers are familiar with, uses the object model from the OSS
Smalltalk. The problem is not simply a matter of how much engineers
enjoy their work, but it can be a life or death matter, as it was in
the case of the Toyota microcode.
</citation>

Reply | Threaded
Open this post in threaded view
|

Re: "Building-With versus Building-on"

SergeStinckwich


On Sat, Oct 14, 2017 at 11:50 AM, H. Hirzel <[hidden email]> wrote:
On 10/12/17, Andrew Glynn <[hidden email]> wrote:
> https://medium.com/@dasein42/building-with-versus-building-on-c51aa3034
> c71
> This is an article not specifically about Pharo, rather on the state of
> the industry
> in general and how it got that way, but positing Pharo as a way to
> learn
> building-on rather than building-with, where in the latter case on
> every project you start at essentially the same place.
> As a result it does put in front of people a fair amount of info on
> Pharo, and challenges them to try it.
>
> cheersAndrew Glynn


Thank you for this comprehensive report.

Do you have a reference for more info about the epidemiology project
which was completed in only a months time?  [1]

-- Hannes



[1] <citation>
After Google spent millions failing to solve the epedemiology of the
Ebola outbreak, an application built with it, or rather on it, by one
developer in an extremely short timespan (under a month), successfully
predicted the path and allowed it to be stopped by vaccinating those
in the most likely path. Google themselves took notice, and their Dart
language, while using syntax similar to the JavaScript many of their
developers are familiar with, uses the object model from the OSS
Smalltalk. The problem is not simply a matter of how much engineers
enjoy their work, but it can be a life or death matter, as it was in
the case of the Toyota microcode.
</citation>

Yes I'm also interested by this.
Never heard this before :-)

--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC/UY1)
"Programs must be written for people to read, and only incidentally for machines to execute."
http://www.doesnotunderstand.org/
1 ... 3456789