Earlier quoted context omitted.
Take a look at the Pharo intro on youtube, you'll see what I mean: https://www.youtube.com/watch?v=WLoXXFxU8lw The images on the current website look very similar, so I don't it's changed much in this regard. This has been my typical experience with Smalltalk languages, with the exception of GNU Smalltalk whose specific goal is to integrate with POSIX instead of creating a walled garden.
Do you want to perhaps point to a specific time in that video, and compare it to a non-Smalltalk environment in a way that makes this purported isolation apparent, because I don't see what you mean. I don't recognize whatever operating system the demo was done on, so if the Pharo system is not using native widgets I would not know, you'll have to explicitly state if this is the case.
Pharo, the Modern Smalltalk
81–90 of 178 posts
Re: Pharo, the Modern Smalltalk
#82Earlier quoted context omitted.
I've always found the 'image' environment to be far more interesting than the language of Smalltalk itself. If you do find just code snippets, you're missing out on what I, at least, see as the most significant feature of the whole thing. The way it goes about defining the code is clunky, but the overall structure of 'images' and the workflow involved with them is fascinating. I could easily see something similar bei…
That image environment sounds scary to me. I used to do a lot of hardware development, and what I love most about software is that you can always restart from the clean plate (by restarting the program) and/or undo your previous work (with version control). From what I understand, none of this applies to Smalltalk. You always modify code on the fly, so you may end up with properties which exists, but no current code…
That's what I loved best about Smalltalk. You could just hard quit out of the image, then go back to the Change Log and replay all but the last few changes. If you save off an image every day or so, you're always back in minutes, no matter how dangerously you've been coding.
There are a variety of utilities which let you load code quickly. Most often, deployment was done using one of these loading onto a clean or a stripped image. You can certainly control changes to your environment. In fact, I'd say you can often control them more easily than in other environments.
you have no idea why -- is it a genuine bug or did it happen few minutes ago, when the function was still incomplete?
The Change Log makes it very easy to figure that out. All of your ad-hoc "command-line" (do-it) state changes to the image are recorded there as well.
Re: Pharo, the Modern Smalltalk
#83Earlier quoted context omitted.
This may not be immediately apparent, but I discovered that Smalltalk did not fit into the 'programming language' concepts in my head. I think of a typical bytecode VM language as [source code] -> [interpreter] -> [running program] Instead Smalltalk is more like [running program] + [auto persistence] + [editing tools] So you don't modify large gobs of source code files, you modify the running program from within - ak…
> [running program] + [auto persistence] + [editing tools] How do you use TDD when coding like this?
There were some utilities that let you run the tests at the push of a button.
Re: Pharo, the Modern Smalltalk
#84Earlier quoted context omitted.
> You could still not copy and paste it. Why would you copy and paste code before you'd done anything more than glance at a language home page? Perhaps the better comparison is with some other languge IDE: https://www.jetbrains.com/go/
Yeah maybe if Pharo was just a Smalltalk IDE, but apparently it is a distinct language.
I haven't been able to find a clear statement of language differences between Pharo and other Smalltalks. The closest thing I've come across is this statement of intent:
"We want to stress the fact that Pharo will certainly derive from ANSI and other Smalltalks. We will not change for the sake of change. What we want to say is that if there is something that can be improved but does not conform the ANSI Smalltalk, we will do it anyway."
Perhaps a Pharo expert can clarify?
Re: Pharo, the Modern Smalltalk
#85Earlier quoted context omitted.
Lisp and Scheme don't actually integrate with UNIX. Their UNIX versions are handicapped versions of themselves. Languages with rich runtimes and developer tooling are always shoehorned into POSIX model to "feel UNIX".
I get what you mean about that for Lisp (although, if I'm not mistaken, early LISPs were more like SBCL than Allegro or Symbolics in turns of user environment), but what Scheme version ever offered such a rich environment as the Lisp or Smalltalk examples mentioned above?
Re: Pharo, the Modern Smalltalk
#86Re: Pharo, the Modern Smalltalk
#87Earlier quoted context omitted.
I've always found the 'image' environment to be far more interesting than the language of Smalltalk itself. If you do find just code snippets, you're missing out on what I, at least, see as the most significant feature of the whole thing. The way it goes about defining the code is clunky, but the overall structure of 'images' and the workflow involved with them is fascinating. I could easily see something similar bei…
That image environment sounds scary to me. I used to do a lot of hardware development, and what I love most about software is that you can always restart from the clean plate (by restarting the program) and/or undo your previous work (with version control). From what I understand, none of this applies to Smalltalk. You always modify code on the fly, so you may end up with properties which exists, but no current code…
Somewhat related, you can use unit tests of as-yet unimplemented functionality as a jumping-off point for live-coding your way towards the right implementation, with the debugger acting as a combined code editor and REPL (since the formal parameter names in the code will have real, evaluatable values behind them - as supplied by the test case).
Were I a major Test Driven Development adherent, I might claim that this is the non-cargo-cult way of doing TDD.
Re: Pharo, the Modern Smalltalk
#88Is there a snippet of example code to look at? I browsed the pharo.org website, but couldn't find an example to give me a taste. I even tried googling "pharo example" and with a brief look at the results didn't find an example. Today, there are hundreds of programming languages competing for attention. It is in your interest to put an example front and center of why one should spend time looking into yet another prog…
Re: Pharo, the Modern Smalltalk
#89Is there a snippet of example code to look at? I browsed the pharo.org website, but couldn't find an example to give me a taste. I even tried googling "pharo example" and with a brief look at the results didn't find an example. Today, there are hundreds of programming languages competing for attention. It is in your interest to put an example front and center of why one should spend time looking into yet another prog…
Smalltalk is not "yet another programming language"; Smalltalk is the language all those other OO programming languages copied. You should look into it because it is the source of the object oriented paradigm and it'll make you a better OO programmer in all of those other languages.
As such, C++, Java and C#, which constitute a significant chunk of OO programming, are probably better thought of as descended from Simula (and C).
There's a clearer lineage to the likes of Ruby and Objective-C, and to a lesser extent Javascript and Python.
I would definitely concur regarding looking into it, it definitely makes you think about things in a different way.
Whether or not it makes one a better programmer, I can't say. I only programmed professionally in it for a relatively brief time and it was a hugely frustrating experience. I was glad to get out of it.
In the sense that it made me understand that a programming environment has a big influence on how well a codebase can scale then, yes, I learnt loads. But that was because it really wasn't very good at scaling without an awful lot of TLC. I moved onto a Java application which was bliss by comparison (ironically, given its reputation for classpath hell etc).
This was some years ago mind so the state of the art of Smalltalk has, I'm sure, moved on.
Re: Pharo, the Modern Smalltalk
#90Earlier quoted context omitted.
This may not be immediately apparent, but I discovered that Smalltalk did not fit into the 'programming language' concepts in my head. I think of a typical bytecode VM language as [source code] -> [interpreter] -> [running program] Instead Smalltalk is more like [running program] + [auto persistence] + [editing tools] So you don't modify large gobs of source code files, you modify the running program from within - ak…
> [running program] + [auto persistence] + [editing tools] How do you use TDD when coding like this?
You first extend the environment with tests, then add the code to make them green. All without ever having to restart the "program".