TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Smalltalk simplicity and consistency vs. other languages (2022) [video]

121 pointsby harryvederciover 1 year ago

13 comments

Rochusover 1 year ago
Interesting talk. Smalltalk (like Lisp) has indeed a very simple (i.e. minimal) syntax. But that doesn&#x27;t necessarily mean that it is also simple to write and read code, or to implement an efficient compiler. E.g. blocks - as great as they are - make inlining very difficult; it eventually took 30 years to implement a VM with decent performance (see <a href="http:&#x2F;&#x2F;software.rochus-keller.ch&#x2F;are-we-fast-yet_crystal_lua_node_som_pharo_i386_results_2020-12-29.pdf" rel="nofollow">http:&#x2F;&#x2F;software.rochus-keller.ch&#x2F;are-we-fast-yet_crystal_lua...</a> for the results of <a href="https:&#x2F;&#x2F;github.com&#x2F;rochus-keller&#x2F;Som&#x2F;">https:&#x2F;&#x2F;github.com&#x2F;rochus-keller&#x2F;Som&#x2F;</a> and <a href="https:&#x2F;&#x2F;github.com&#x2F;rochus-keller&#x2F;Smalltalk&#x2F;">https:&#x2F;&#x2F;github.com&#x2F;rochus-keller&#x2F;Smalltalk&#x2F;</a> compared to Cog&#x2F;OpenSmalltalk). Another language explicitly designed for simplicity is e.g. Oberon, which is statically typed and easier to implement with decent performance.<p>In my experience, at the end of the day, it&#x27;s more the familiarity with a language that makes it seem &quot;simple&quot;. And there is a trade-off between &quot;simplicity&quot; of the language and &quot;simplicity&quot; of the solution; if the language is too minimal, the solution quickly becomes confusing instead, and vice versa.
评论 #38997391 未加载
评论 #38992892 未加载
评论 #38993821 未加载
diegof79over 1 year ago
Seeing an article about Smalltalk with Hernan presenting so up in HN is nice.<p>I worked with Hernan a while ago. We worked in a financial system with very cool things: an OO database, a workflow system that can work locally or remotely transparently, a good model for units and dates, tons of custom tools in the IDE (something that is only possible with Smalltalk IDEs) that allowed us to automate unit test generation, versioning, and database migrations. The last time I saw that level of productivity in any IDE was then.<p>However, Smalltalk is not perfect, and when I see these presentations, I cannot stop thinking that a more balanced discussion is needed.<p>The presentation shows how Smalltalk blocks are uniform with the if&#x2F;then&#x2F;while syntax. But that&#x27;s only part of the history. To support blocks that way, the compiler optimizes those cases and inlines the block unless you do something else. So, while assigning the block to a variable looks the same, it&#x27;s not executed similarly. That&#x27;s the beauty of hiding the implementation details. But, sometimes, those details bite you. Most St programmers avoid creating custom &quot;ifThen:else&quot; messages because, in most VMs, that will break.<p>In other words, like any design decision, the simplicity of the &quot;object message&quot; syntax has trade-offs, too. The performance trade-off is fixed by having exceptional cases hidden from most programmers. The other trade-off is the need to always dispatch to a receiver. Compared to Lisp or other functional languages, the need for a receiver dramatically impacts how you design and structure your program. Many things that you can resolve with a polymorphic function need to spread across classes in St. And that introduces the problem of sharing the implementation: class hierarchies, traits, or composition. Resolving those problems with a simple function is refreshing and falls under the statement at the beginning of the talk: the programming language affects how you think about the problem. When I look at the code I wrote back then in Smalltalk or Java, I cannot stop thinking about how the restriction of using classes and methods adds unnecessary complexity.
评论 #38994934 未加载
评论 #38997079 未加载
ww520over 1 year ago
Story time. When I was a young developer in a database company, my cubicle was next to a section where a team sat. The team consisted 30 to 40 people working on a secret project. Whenever I asked them what they were working on, they said it’s a secret next gen technology. They spoke in secret code and big terms. The only thing I knew was they were using Smalltalk as the language as they weren’t shy in speaking beamingly about it. They work on these powerful workstations with large monitors, a luxury at the time, as the Smalltalk dev studio required them. I thought these were god developers, working with advanced technologies in a covet skunk project.<p>The project went on for couple years. Nobody knew what they were doing, not their goals, their product plan, their features, nor their designs. The only thing we knew was they were using Smalltalk.<p>The high-up forced them to give a demo eventually. The talk was good, on Smalltalk, on OO, and on the landscape of the technologies. When the demo started, it showed a half finished login dialog box but nothing else. They said something about unable to package the code and do a release. Understandably software releases were a big bang process back then. But what about prior releases? Nothing. They didn’t have any finished builds. The talk continued.<p>The project got canceled couple months later.
评论 #38993584 未加载
评论 #38994420 未加载
评论 #38997171 未加载
评论 #38993635 未加载
harryvederciover 1 year ago
Worth watching even if you skip to the last couple of minutes, where he tests a Game of Life scenario in a way that is not comparable to anything I&#x27;ve seen done with any other programming language.<p>This power that Smalltalk systems have where the code runs in a GUI that is also the editor&#x2F;debugger&#x2F;etc has deeply fascinated me recently.<p>At the same time it makes me kind of sad, because it feels like we&#x27;re all stuck writing code with a hand tied to our back. Almost makes me think that there&#x27;s a happy alternative coding universe where the Smalltalk way is the default way, and a couple of weirdos are using separate IDEs&#x2F;editors and restart their program on every change, or think they&#x27;re smart if they&#x27;re running something as primitive as a REPL.<p>The reason why I&#x27;m not just diving in and never looking back is that it seems like such a big investment, and that I&#x27;m so comfy with my (very) extended Neovim setup. And I&#x27;d like to be able to create applications that run without shipping the entire Smalltalk VM. And I&#x27;d like to actually understand a tool that I&#x27;d have to dive into that deeply, and I think I&#x27;ll never have the time to truly understand all of the VM, the classes, etc.<p>Maybe instead, I should just create my own language that contains its own code editor. Seems like almost the same time investment, but maybe more satisfying?<p>Sigh...<p>Anyway, here is some other related interesting material:<p>- Bret Victor - Inventing on Principle (Always funny to hear the crowd go nuts when he does the live game editing time thingy.)<p>- Pretty much any Alan Kay video.<p>- Dan Ingalls his &quot;Lively Kernel&quot;, which seems to me like it&#x27;s pretty much the same as a Smalltalk system, but where you code in JavaScript, and it runs in the browser.
评论 #38993590 未加载
评论 #38993583 未加载
评论 #38993399 未加载
评论 #38995318 未加载
评论 #38993886 未加载
评论 #39003709 未加载
daitangioover 1 year ago
I was excited in Smalltalk around 1999, during my Master Thesis. The sad story is Java Hotspot had more technology than ParcplaceDigitalk(Cincom) and kept growing. I love Smalltalk but Java won, even when it was closed sources. Try Squeak (or Cuius): it is beautiful,but sadly it has little traction.
评论 #38995726 未加载
评论 #38994330 未加载
IOT_Apprenticeover 1 year ago
I wonder if someone has considered building a modern variant of Smalltalk on top of elixir&#x2F;erlang.<p>You’d get virtualization, multi threading, scalability, etc.<p>And consider git, DevOps, CI&#x2F;CD and off we go?
评论 #38998915 未加载
SomeoneFromCAover 1 year ago
GNU Smalltalk is nice for writing small scripts, has TCL-like feel to it, while being a &quot;real&quot; programming language.
评论 #38998394 未加载
评论 #38994658 未加载
sebastianconcptover 1 year ago
I remember clear as water to this day the feeling when I was a teenager doing C&#x2F;C++ that it was with Smalltalk the first time I experienced the power of creating software that doesn&#x27;t give you bad surprises for unknown reasons.
ngcc_hkover 1 year ago
Given Objective C is modelled after this I think, would that be a better choice today (ignore Swift as that is not dynamic?)?
slimover 1 year ago
can I have more of this ? I mean smalltalk dev writing code while explaining
评论 #38995507 未加载
评论 #38995614 未加载
luksamerover 1 year ago
Smart Lock on
bmitcover 1 year ago
Does anyone have any advice on how to become an auteur software engineer? I&#x27;ve tried visual programming, functional programming, and several others, and they are just so much more enjoyable and powerful (in a specific sense akin to productive) than mainstream languages like Python, C++, etc. But I&#x27;m relatively exhausted by having platforms dictated to me by the middle of the bell curve and, frankly, people not experienced. Even as something as simple.and pragmatic as F# or Elixir seems to make people step back from you, as if you&#x27;re cursed, much less something like Smalltalk. At this point in my career, I have given up and am just going to use Python and C++ like everyone wants you to. It&#x27;s been a big enough hurdle yo probe that Incan write in Python and C++ despite having used a plethora of languages.<p>So, how do you use these powerful platforms banished to personal projects? How does one get into a position such that you can dictate the platforms used? Is there anyone who has done this?<p>It&#x27;s an unfortunate case of people having the interesting applications having a very tunnel visioned view of what could be with software.
评论 #38994778 未加载
评论 #38994835 未加载
评论 #39003733 未加载
评论 #38997882 未加载
评论 #38994413 未加载
评论 #38994923 未加载
评论 #38994927 未加载
luksamerover 1 year ago
Jdhbf