^ThumbsUpEmoji new display On Sun, Jan 15, 2023 at 11:30 PM Tomaž Turk <tomazz.t...@gmail.com> wrote:
> Hi Mayuresh, > > I think that the choice of what programming language one needs to learn or > use depends today from the goals that you have - and these goals are not > only tied to specifiic business projects that you (might) pursue but also > career and self-enrichment missions. Years ago we had programmers who did > their entire career by knowing and using only one language, however this is > nowadays almost impossible, in general. > > As others already nicely put, Pharo and Smalltalk are, also in my own > expeirence, the most beautiful and productive programming languages and > environments. What would be the type of use cases which would be exemplary > for Pharo? Well, I find Pharo to be a general programming language in its > true meaning. You can grasp the diversity of what can be done by just > looking at this list > https://github.com/pharo-open-documentation/awesome-pharo. You can go > close to the machine with uFFI and be very "declarative" with Glorp and > similar packages. You'd like to do the data mining? No problem, except that > everybody talks about Python and R. > > As MIS professor, I'm interested in new technologies, old technolgies in > new settings, always looking for the best ways to do research about and to > teach modern concepts, also challenging myself with real, "production" > cases from the field. Once I learnt the Smalltalk way, the challenges for > me with Pharo were mostly the following: > - For a specific project, you sooner or later bump into a missing > functionality in some package or other. Here, it's true that you can > relatively easy see the inner structures of these packages and add the > functionality that you need. The challenge here is grasping the > architecture model and development patterns that the original contrubutors > and the community already "engraved" into the package, trying to understand > it and to follow the same patterns - i.e. to participate in a constructive > manner. My case: PharoWin32 and PharoCOM > <https://github.com/tesonep/pharo-com>, I had to add the functionality > that I needed to work on PharoADO <https://github.com/eftomi/PharoADO>. > - There is a constant lag of documentation publishing activities which > cannot follow the actual development; typical examples that I stumbled > across are Pharo Spec2 book (but it can be "replaced" by excellent Spec > Handbook > <https://github.com/pharo-spec/Spec/blob/Pharo11/spec2.md#SpStyleClass>), > the second one the deeper settings of Seaside framework that I needed for > production environment. > > For these challenges, you can always count on really helpful community, > however it is time consuming and eats away the positive side of > productivity gains that are brought by the language itself. > > So, if you need some occupation, not necessarily one from which you would > demand financial returns as you put, I suggest that you choose a couple of > small projects just to try it out and see what happens. Pharo is a heavy > addition to one's self-enrichment in the sense of not learning the tools > but learning the concepts and "the big picture". Nice examples are the book > Learning > Object-Oriented Programming, Design and TDD <http://books.pharo.org/> and > Pharo > MOOC <https://mooc.pharo.org/>. If you pursue into more serious projects > (research or productionwise), the community would be grateful. > > Best wishes, > Tomaz > >