Live data from Hacker News

Pharo 9

pharo.org

201–210 of 232 posts

Re: Pharo 9

#201

The page seems to be going out of it's way to not mention the word "Smalltalk". Does anyone have an idea why that is? Does Smalltalk have such a bad reputation nowadays or has someone trademarked the term?

If you look at the home page for Racket, you won't see the word "Scheme" anywhere.

Same thing, basically: neither language wants to be beholden to what's come before, nor to their peers.

Re: Pharo 9

#202
post #4

Just a heads up the pharolauncher does not seem to be working for me, at least for pharo 9. Manual download of vm + image 64bit works but 32 bit does not. I have been making pharo raylib bindings and plan to make a video soon about why Smalltalk is an interesting choice for game development, it's a very 'live-coding' feel, i.e. you run your game while the editor is still live, you have free reign to at any time modif…

(incidentally: it's "free rein" as in horses, not "free reign" as in monarchs)

One of the more sensible eggcorns out there, admittedly.

Re: Pharo 9

#203
post #177
post #140

Earlier quoted context omitted.

>"Apparently people don't have any issue hanging to an OS about the same age as COBOL." Why should they? It works for many cases and has mountains of apps, tooling, libraries, hardware support and whatnot. It takes decades for the new OS/ecosystem to mature.

Same conclusion can be applied to COBOL applications. https://www.microfocus.com/en-us/products/visual-cobol/overv...

Equating OS and its ecosystem to a single language is not very wise approach I think. In any ways you are obviously free to find fresh and shiny OS of your liking and use it.

Re: Pharo 9

#204
post #196
post #194

Earlier quoted context omitted.

> Pharo 5 in 2017 Seems to be tagged 2020 — 5.0-202002121043 Wed Feb 12 11:06:45 UTC 2020 gcc 5.4.0 [Production Spur 64-bit VM] The pharo.version file contains — 80

I'm sorry. You're right. I did a stupid mistake by confounding the vm version with Pharo version. I can't edit my post anymore, but please, anyone reading this, disregard the "Those benchmarks are quite old, from Pharo 5 in 2017" part.

The person who receives the contact email usually allows posts to be re-opened.

Re: Pharo 9

#205
post #88
post #70

Earlier quoted context omitted.

I think OO has fallen out of fashion because there's a perception it can more easily lead to confusing code. While one can write confusing code using FP, it's not as easy to do.

Yet all major GUI frameworks are OO, even component based ones if one would actually bother to read OO CS literature, before announcing them as some magic solution.

> ...if one would actually bother to read OO CS literature

It's true. I haven't read much OO CS literature AFAIK. Do you have a some recommendations?

Re: Pharo 9

#206
post #70
post #41

Earlier quoted context omitted.

Personally I do not give a flying hoot about fashion. The only thing that matters to me is how one particular tool helps me to make what I want. I've never "bet" on any tech. To me those are just tools. Nothing to get excited about. Not trying to rate any particular language here.

I think OO has fallen out of fashion because there's a perception it can more easily lead to confusing code. While one can write confusing code using FP, it's not as easy to do.

> While one can write confusing code using FP, it's not as easy to do.

Yes, it is.

It is in some situations easier to write non-confusing code in FP (though in other situations its easier in OO.)

Also, OO hasn’t really “fallen out of fashion”, its still, AFAIK, the dominant paradigm. It’s just not as hyperdominant as it was from the mid-90s through the -00s.

Re: Pharo 9

#207
post #88

Earlier quoted context omitted.

Yet all major GUI frameworks are OO, even component based ones if one would actually bother to read OO CS literature, before announcing them as some magic solution.

> ...if one would actually bother to read OO CS literature It's true. I haven't read much OO CS literature AFAIK. Do you have a some recommendations?

"Component Software: Beyond Object-Oriented Programming"

https://www.amazon.com/Component-Software-Object-Oriented-Pr...

The first edition uses Component Pascal instead,

https://www.amazon.com/Component-Software-Beyond-Object-Orie...

Then even if it hasn't taken the world by storm,

"Designing Object Oriented C++ Applications Using The Booch Method"

https://www.amazon.com/Designing-Object-Oriented-Application...

Assuming you also feel like reading about UML design stuff

"Object-Oriented Analysis and Design with Applications"

https://www.amazon.com/Object-Oriented-Analysis-Design-Appli...

Re: Pharo 9

#208
post #203
post #177

Earlier quoted context omitted.

Same conclusion can be applied to COBOL applications. https://www.microfocus.com/en-us/products/visual-cobol/overv...

Equating OS and its ecosystem to a single language is not very wise approach I think. In any ways you are obviously free to find fresh and shiny OS of your liking and use it.

It surely is, UNIX and C are a symbiotic relationship, born out of each other, one in 1969, the other in 1972.

I surely have, hence why I have gone back to Windows, where the focus is C++ and .NET, macOS where the focus is Objective-C and Swift (UNIX is there for historical reasons only), Android where the focus are Java/Kotlin and C++ (with Linux kernel being an implementation detail).

Re: Pharo 9

#209

Earlier quoted context omitted.

Unlike most OOP languages, it's true, and not just marketing, for Smalltalk to make the claim that everything is in an object.

I was not talking about everything being an object. I was talking about that claim being the key to being nice and comfortable. Many sibling comments, IMHO, miss the point of the parent and focus on the claim about python and js. Python and js could perhaps have been completely object based. It still wouldn't make them comfortable for many.

While Python wasn't born pure object based, it is definetly object based in its current version.

    Python 3.9.5 (default, May 27 2021, 19:45:35) 
    [GCC 9.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.    
    >>> x = 1
    >>> type(x)
    
    >>> dir(x)
    ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod
    __', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribut
    e__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__
    invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__
    ', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__',
     '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__'
    , '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__',
     '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate',
     'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
    >>> 
    >>> y = [2]
    >>> type(y)
    
    >>> dir(y)
    ['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__
    doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd
    __', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '_
    _ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '
    __setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', '
    index', 'insert', 'pop', 'remove', 'reverse', 'sort']     
    >>> 
    >>> def sum(a, b): return a + b
    ... 
    >>> sum
    
    >>> dir(sum)
    ['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__
    dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals
    __', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__modul
    e__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setat
    tr__', '__sizeof__', '__str__', '__subclasshook__']

Apparently everyone keeps forgetting that after the new class type declarations were introduced and the primitive types made subclasses of them, everything in Python is an object as well.

Re: Pharo 9

#210

Can it build GUIs? What about 2d/ 3d graphics? Does it interface with Java things? Databases?

Smalltalk was born as a graphics based workstation OS, naturally it can do all of that.
Post reply on HN