2 ms·
> Do we hate Smalltalk just because it's different, while admitting we don't understand why? I never said I hated Smalltalk. I love the language and have playe
by zapzupnz 8y ago
> Do we hate Smalltalk just because it's different, while admitting we don't understand why?
I never said I hated Smalltalk. I love the language and have played around with GNU Smalltalk a few times. Plus, I cut my programming teeth on Objective-C, so I have a firm appreciation for the language.
It's the fact that I have to enter a foreign environment that irks me. Way back in the day, when GUIs were innovative and new, and people were still working out the kicks, and input devices basically all did the same basic set of things in the same way, it mighn't have mattered.
Nowadays, operating systems have moved on, input methods have moved on, the way we do even some of the more basic things have changed. You've now got features integrated into the operating system that things like Squeak and Pharos can't access. You've got user interface metaphors that are consistent across the whole system except within Squeak and Pharos. You've got (poor) attempts to integrate with the host with commercial environments such as Cincom VisualWorks that, at the end of the day, really amount to nothing more than a rootless version of Pharos with a crappy theming engine.
I know many amongst HN's userbase won't be particularly phased by a different user interface, particularly Linux users where dealing with slightly different paradigms between applications is a fact of life. For me, a macOS user, the fact that:
- inertial scrolling doesn't work
- my Magic Trackpad 2's multitouch gestures don't do anything
- windows can't be managed using Mission Control (which is particularly a pain given that the major environments' IDEs don't respect system conventions around multi-document windows)
- many keyboard shortcuts aren't properly mapped or imitate Windows rather than macOS
- the environment doesn't let me type using macOS' Japanese keyboard, and none of the characters render properly by default without some tweaking
- the environments use their own fonts rather than system fonts, meaning my font collection is being ignored
- fonts are rendered non-natively, meaning they're all the wrong sizes and they're rendered differently than how I expect — particularly troublesome for CJK characters which are beautiful on macOS and hideous on everything else
- Pharos doesn't bother to render in high DPI, so it's all blurry — absolutely hideous on a 27" iMac
- system accessibility settings are not respected, so the fonts are all way too small for my eyes and VoiceOver can't read any of it
- since the environment doesn't respect the system, neither it nor anything you make in it can take advantage of any system features like system-wide Services, Automator, Applescript support, fetching data during Power Nap, system-wide Dark Mode in Mojave, and so on.
See all of those things? On far too many posts, in far too many comment sections, and far too many times on HN have I seen the Smalltalk evangelists act dismissively about all of that, as though users don't really notice. Maybe Windows and Linux users, where every app you come across is either in a different toolkit or doesn't necessarily respect your chosen desktop environment's metaphors to the fullest extent, are used to that idea.
Bearing in mind that 87% of statistics are made up, I'm going to say that a good chunk of macOS' users have gone to length of buying much-more-expensive-computers-than-the-competitors running an-operating-system-with-much-less-commercial-support specifically because macOS does so many things for them, so yes, the platform and user experience very much do matter. Those evangelists who say the platform doesn't matter are wrong.
I know I much prefer using Xcode over other IDEs not because I think Xcode is great (because it's meh), but because Xcode gets all of those system-level goodies for free by virtue of being a good, well-behaved macOS app. It runs the way I expect any other macOS app to run, I don't have to adapt my workflow around it, and those quality-of-life things make coding in it much more pleasurable to me than having to figure out a system I can (a) barely see, (b) barely type in, (c) barely navigate, and (d) barely use.
I may only be speaking for myself, but I'm a better coder when I don't have to fight the system.
Maybe someone just has to come up with a macOS-first Smalltalk environment, something that manages to respect the system. Make the Xcode of Smalltalk, minus the bugs, still keeping all the good stuff like live coding and what-have-you, but that make native macOS apps that do things the native way. Then maybe it could start making iOS apps. And so on.
Instead, it seems like rather than trying to make Smalltalk relevant to the world as it has become, the most ardent fans are trying to push the world back into the past — or in the case of macOS users, Linux's present.