Native-looking programs in Smalltalk with WxSqueak

From time to time I like to check on the evolution of dynamic languages, just to see what I am missing as a Java/C++ programmer. It is always an interesting travel, and each time I feel that the future will be really far away from the C-like languages that we currently use.

Last week, I spent a few hours taking a look at the progress of Smalltalk. In the Smalltalk camp there are several contenders for the best system, and it is not at all clear what the most productive system is. I have already tried VisualWorks, which is a cool environment. Although it is easy to use, there is the problem that it is closed source. This makes it practical to use VisualWorks only on commercial software, instead of writing open source software.

Even when doing commercial work, most companies will not invest money in an IDE for a language that they don’t know — which makes the barriers to use of a commercial Smalltalk is even bigger. Of course, there are several companies using Smalltalk, but there is always a specific reason for this — if you can’t find that reason you are out of luck.

Squeak

For this reason, I think an open source solution is the best bet for SmallTalk to succeed. And the best open source implementation of Smalltalk is of course Squeak. The only thing that I had against Squeak is the fact that they still insist in using a particular GUI that is completely different from any other UI in use nowadays. In fact, Squeak notion of UI is basically a copy of what a GUI might have looked like in 1980, when SmallTalk was being developed.

In particular, the idea of Squeak practically forcing users to rethink the way they use the mouse is absurd. In Morph, the Squeak GUI, every mouse action depends on a three-button mouse. To add some confusion, buttons are named by colors (instead or right-or-left button), so you need to remember what color is left or right. Many operations also require the middle button (represented by still another color), and if your don’t have a mouse with three buttons you probably need to simulate that one with control/shift combinations.

Imagine if I created a software that remapped the keyboard, and decided that each key would not produce the results that you are used to, but instead the combination of letters that I decided. Of course, you would dislike this program (to say the least). But this is exactly what Squeak requires from the user, who needs to relearn how the mouse works.

Squeak and WxWidgets

 

WxSqueak

Hopefully, Squeak, being written in Smalltalk, is not totally bound to the decisions made by its creators. One thing that can be done is to use a separate UI, and disregard totally the mess of Morph. This was the route taken by the guys that ported WxWidgets to Squeak — resulting WxSqueak. WxSqueak is an extension to Squeak that implements the WxWidgets UI library. WxWidgets is a full featured GUI library that is supported on most platforms, such as Windows, Linux, and Mac OS. 

With WxSqueak you can create SmallTalk programs that use the WxWidgets GUI, and therefore have a native look and feel. Thus, you can create a Windows program in Squeak, with native windows, toolbars, and menus. There is no need to program in another GUI such as morph, and make your users learn a new GUI paradigm just to execute your program.

WxWidgets is still in its early stages, but I found it very feature complete. Since it uses WxWidgets, which is a mature library, there is a large number of graphical controls that can be used from your program.

In the next weeks, I will be providing an example of a program written with Squeak and WxSqueak. I be also writing about some of the features of SmallTalk and Squeak that make it so useful for programmers in general. Keep reading, and I will add more details in future posts.

Suggested Reading

Smalltalk Best Practice Patterns, by Kent Beck

Smalltalk 80: The Language (Addison-Wesley Series in Computer Science), by A. Goldberg and D. Robson

Similar Posts:

Similar Posts

22 Comments

  1. Compiled versus inrerpteted isn’t really the issue here there’s no reason why a system can’t compile the source code down to machine code (so that it’ll run faster than an inrerpteted system) while still keeping the source code handy so that it can be tinkered with and recompiled on the fly. Plenty of systems do that, including various JavaScript implementations, as well as lots of implementations of other languages like Java and Smalltalk and so on.But you’re right, the standard way to distribute a program written in (for example) C++ is to compile it down to something that has no more connection with the source code. When you run the program on your machine, there’s no way for you to point your mouse at a widget in the running program and say show me the source code for this, because the executable file doesn’t even contain the source code. That’s the thing that I think is sad. As long as the code is under an Open Source license, and as long as there aren’t any technical reasons (like limited storage space) for not wanting to have the source handy, we might as well include the source with the executable, and offer a way for users to easily see how the source is connected to the things they see on the screen.

  2. I agree with you, maybe this idea is not taken seriously because of security issues, but I wish there was a simple way to do this using traditional languages such as C++ and Java.

  3. of course like your web-site but you have to check the spelling on quite a few of your posts. Many of them are rife with spelling problems and I to find it very troublesome to inform the truth then again I will surely come again again.

  4. One thing is the fact that one of the most common incentives for using your credit card is a cash-back or rebate offer. Generally, you’ll have access to 1-5 back upon various buying. Depending on the cards, you may get 1 back again on most acquisitions, and 5 back again on purchases made on convenience stores, gas stations, grocery stores in addition to ‘member merchants’.

  5. Mit einem Hintergrund in Germanistik und fundierter Branchenerfahrung bietet sie verständliche,
    gut recherchierte Inhalte zu Spielmechaniken, Trends und Strategien. Auch wenn mal etwas nicht
    passt, reden wir nicht alles schön, sondern sprechen es
    an, um unseren Lesern so einen echten Mehrwert bieten zu
    können. Auch Selbsthilfegruppen wie die Anonymen Spieler bieten wertvolle Unterstützung.
    Die Bonuslandschaft der besten Online Casinos in Deutschland ist heutzutage ständig im Wandel
    und Casinos bieten immer bessere Angebote.
    Unter den besten Online Echtgeld Casinos haben wir unsere Favoriten ausgewählt.
    Die besten Echtgeld Online Casinos findest du in unserer Top
    Liste. Die Gewinne werden von den Echtgeld Casinos nach unseren Erfahrungen durchweg reibungslos ausgezahlt, lediglich
    beim Tempo gibt’s Unterschiede. Oft ist das Echtgeld Casino Spiel „fast“
    risikolos machbar.
    Du kannst nicht nur rund um die Uhr im Online Casino Echtgeld setzen, sondern solltest das auch von jedem Ort tun können. Mehrere tausend Slots, Live-Spiele, Tischspiele und progressive Jackpots dürfen es
    gerne sein. Besonders Echtgeld Slots garantieren ein authentisches Casino-Erlebnis direkt von zu Hause aus oder unterwegs
    per Smartphone. Wer sich für Online Slots mit Echtgeld entscheidet, hat die Chance auf
    reale Gewinne und kann in vielen Fällen auch an progressiven Jackpots teilnehmen. Online Spielautomaten mit Echtgeld
    erfreuen sich großer Beliebtheit bei Spielern, die den Nervenkitzel des echten Gewinnens suchen.

    References:
    https://online-spielhallen.de/bitkingz-casino-aktionscode-dein-weg-zu-extra-vorteilen/

  6. Die Auswahl reicht von klassischen Früchteslots bis zu modernen Video-Slots mit aufwendigen Bonusrunden. Mit über
    2.500 verschiedenen Spielautomaten bietet Immerion Casino eine der größten Slot-Sammlungen im deutschsprachigen Raum.
    Jede Spielkategorie bietet einzigartige Unterhaltung und verschiedene Gewinnchancen.
    Zusätzlich zu Spielautomaten umfasst das Angebot des Immerion Casinos eine große Auswahl an Tischspielen wie
    Blackjack, Baccarat und Roulette in verschiedenen Varianten. Stammspieler
    schätzen am Immerion Casino besonders die Transparenz und Zuverlässigkeit des Anbieters.
    Darüber hinaus erhalten Sie einen Prozentsatz von jedem Einsatz, den diese in Slot-Spielen tätigen. Der
    Bonus umfasst 100 Freispiele, die für verschiedene Spiele und Anbieter verwendet werden können, die vom Casino ausgewählt werden, sowie 10 IMR.
    Um den wöchentlichen Cashback zu erhalten, muss der Spieler einem speziellen Link folgen, der im Telegram-Kanal des
    Casinos veröffentlicht wird. Jede Woche hat der Spieler die Möglichkeit,
    über einen Telegram-Link einen zusätzlichen Cashback von 10 % der täglichen Verluste zu
    erhalten.

    References:
    https://online-spielhallen.de/jet-casino-test-2025-login-boni-zahlungen-sicherheit/

  7. Wir empfehlen, verantwortungsbewusst zu spielen und sich der möglichen Konsequenzen bewusst zu sein. Die posido casino app
    ist für iOS und Android verfügbar. Die posido
    casino auszahlung ist so flexibel, dass du sicher das Passende findest.
    Viele Casinos bieten sowas nicht an, aber hier hast du die Möglichkeit,
    schnell und anonym zu spielen. Das sorgt für diese extra Portion Casino-Atmosphäre, die dir das Gefühl gibt, nicht allein zu spielen.
    Registrier dich und mach deine erste posido casino einzahlung,
    dann wird der Bonus automatisch auf dein Konto gutgeschrieben. Das
    Posido Live-Casino bietet eine breite Palette an Tischspielen, die von professionellen Dealern geleitet werden. Neue Spieler werden hier mit
    einem fetten Willkommensbonus begrüßt, und für die Stammspieler gibt’s regelmäßig coole Aktionen. Natürlich ist das Casino plattformübergreifend, sodass Sie alle Spiele auf iOS-
    und Android-Geräten spielen können. Eine Möglichkeit, Freispiele zu gewinnen, bietet
    sich aber auch noch dank der Bonuskrabbe. Weitere Informationen zu Slotspielen und
    deren Funktionsweise finden Sie in unserem Online-Slotspiel-Ratgeber.

  8. Der ursprüngliche Einzahlungsbetrag samt erhaltenem Bonus muss x35, Gewinne aus Bonus-Spins x40 umgesetzt werden, um eine Auszahlung
    vornehmen zu können. Wenn man mindestens 50€ einzahlt,
    erhält man neben dem 50% Bonus zusätzlich 50 Freispiele.
    Für Spieler, die von riesigen Gewinnen träumen, bietet das MrPacho Casino auch
    ein umfangreiches Sortiment an Jackpot-Spielen. Dieses Angebot bietet einen besonderen Charme, weil du nicht nur gegen den Dealer, sondern auch
    gegen andere Spieler antrittst. Die Grafiken überzeugen durch hohe Qualität und detailreiche Animationen, während spannende Features wie Freispiele und Multiplikatoren dein Spielvergnügen zusätzlich
    steigern. Ob du ein Fan klassischer Slots, Live Casino-Spiele, Jackpot-Spiele oder traditioneller Tischspiele bist,
    hier findest du garantiert dein neues Lieblingsspiel.
    Ganz gleich, ob du ein Gelegenheits- oder ein regelmäßiger Spieler bist –
    das MrPacho Casino bietet für jeden das passende Angebot.
    Der MrPacho Einzahlungsbonus wird dabei regelmäßig neu angeboten und stellt eine hervorragende Gelegenheit dar, dein Guthaben zu vergrößern. Der Einstieg in das Mr Pacho Casino wird durch den MrPacho Willkommensbonus besonders belohnt.

    Die Tischspiele sind in verschiedener Ausführung verfügbar, sodass sowohl Anfänger als auch erfahrene High-Roller auf ihre Kosten kommen. Klassiker wie Roulette, Blackjack und Poker runden das Angebot ab und bieten dir als Spieler die Möglichkeit, deine Fähigkeiten unter Beweis zu
    stellen.

    References:
    https://online-spielhallen.de/royal-casino-freispiele-dein-schlussel-zu-kostenlosem-spielspas-und-gewinnen/

  9. Pragmatic Play further enhances the gaming experience with innovative features such
    as Bonus Buy and Pragmatic Replay. Ricky Casino, for instance, is a top contender
    with its diverse range of over 2,000 games and a welcome bonus
    that can go up to AU$7,500 plus 550 free spins.
    Please be aware, that we do not offer any gambling products ourselves.

    Online casinos in Australia accept various payment methods, from Neosurf,
    MuchBetter, eZeeWallet, and Apple Pay to local solutions like PayID.

    You’re most likely to win on high RTP pokies,
    but luck still plays a role don’t expect to beat the house every time.For a real casino vibe,
    live dealer games are unbeatable. I realised that finding the best online
    casino real money is not about luck. I actually
    tested a lot more betting sites, which I could not include on my top 10 online casinos
    list because they did not meet my best Australian online casino list selection criteria.

    References:
    https://blackcoin.co/three-card-poker-3-or-6-card-bonus-strategy-and-rules/

  10. Each slot has its own theme, bonus rounds and RTP, so the player can choose between stable winnings or risky,
    but more profitable bets. Woo Casino offers hundreds of
    games for every taste. Wide selection of various games and payment
    methods
    “Woo Casino operates using an official Curaçao license, which assures players that the casino is audited by a regulatory body with high standards. While the Curaçao license is a secure one, agencies such as the UK Gambling Commission do have a reputation for being slightly stricter. However, this also has the upside that more players from around the world will be able enjoy Woo Casino. The operators use random number generators to make games fair, and 128-bit SSL encryption software to protect player data. Finally, Woo Casino offers the extremely convenient option of live chat customer support for any queries that may arise.” Woo casino delivers exceptional value
    through its combination of massive game variety, lightning-fast
    PayID payments, and generous bonuses tailored for Australian players.

    The casino is a strong all?round choice for Aussie players who want bonuses, crypto support, and quick withdrawals.
    Competitive bonuses with transparent terms, lightning-fast withdrawals, and responsive support
    create an environment where players feel valued and respected.
    The VIP program elevates loyal players through five tiers, each
    unlocking faster withdrawals, dedicated account managers, birthday bonuses, and personalized rewards.
    From seamless mobile access to provably fair games certified by independent auditors,
    every element solidifies this casino as a top choice for discerning Australian players.

    References:
    https://blackcoin.co/vip-casinos-in-canada-2022/

  11. It offers fast transfers, low fees, and can be linked
    to a prepaid card for extra convenience.

    MiFinity is an e-wallet payment service that supports
    deposits and withdrawals. It’s great if you’re a budget-conscious player, and it
    also provides anonymity. Paysafecard is a prepaid voucher system that allows you to deposit funds without
    requiring a bank account or card. It’s fast, secure, and usually
    free, making it ideal for both deposits and withdrawals.
    First up, I noticed a “Bonus Wagering” category in the game lobby.
    You’ll get a pop-up message to enable the notifications
    on your phone, and once you do, you’ll get 20 free spins
    with no deposit required. I placed a one deposit here of $500 via Visa, while other available payment methods are MasterCard,
    Neosurf, CashtoCode, MiFinity, and crypto. Another minor drawback is the
    game categorisation.
    We give top marks to online casino Australia sites with a wide range of popular online casino games from trusted
    software providers. We set out to find Australian casino
    sites that truly understand what you’re after – thousands
    of games, fast payouts, and low wagering bonuses.
    By this line of thinking, playing at online casinos as an individual isn’t illegal in Australia.
    We’ve examined the legality of safe online casinos in Australia from three angles – what the law says,
    how it applies to you, and how it can impact your gaming
    experience. If you want to make the most of your gaming experience at AU online casinos,
    the worst thing you can do is chase losses.

    References:
    https://blackcoin.co/mindil-beach-casino-online-comprehensive-review/

  12. Whether you’re a fan of spinning reels or prefer strategic table games,
    this casino has you covered. Beyond that, King Billy 3 offers some of the fastest payout times in the industry and a
    robust support team available 24/7 via live chat
    and email. The first impression is stunning—a dark, sophisticated layout
    combined with bright promotional banners that highlight the newest games and
    exciting offers. The platform has garnered attention for its distinct advantages,
    making it a popular choice among online casino enthusiasts.
    Subsequent deposits usually have varying percentages
    of match bonuses, such as 50% on the second deposit and 25% on the third and fourth deposits,
    each up to a certain amount, like $300 or $400.
    Online casino players can access a variety of games,
    including slots, table games, and live dealer options. King Billy Casino has
    been thoughtfully designed to offer Australian players a selection of bonuses that may be of interest to those seeking added value
    from their online gaming experience. The exceptional gaming
    experience at King Billy Casino is powered by partnerships with over 50 world-class software developers, ensuring Australian players enjoy the highest quality games with innovative features and stunning graphics.
    King Billy Win Casino is a premier online casino platform tailored to Australian players, offering an unparalleled gaming
    experience.
    Additionally, you’ll receive 100 free spins delivered in batches
    of 20 over five consecutive days, valid on popular pokies like
    Book of King Billy. Your introduction to King Billy begins with
    a bang – a 100% match that doubles your initial
    deposit up to A$500. Start your royal journey at King Billy
    Casino with an impressive A$2,500 welcome package spread
    across your first four deposits. Support is offered in multiple languages, ensuring accessibility for a diverse player base.
    King Billy Win Casino operates under a license issued by the Government of Curaçao,
    ensuring a regulated and transparent gaming environment. With such enticing offers, every
    visit to King Billy Win Casino feels like a celebration.

    References:
    https://blackcoin.co/galaxy-96-casino-a-comprehensive-review/

  13. King Johnnie Online Casino is quickly gaining a reputation as one of Australia’s premier
    destinations for online gaming. Don’t wait—download the app
    today and take your gaming to the next level! Whether you’re commuting, relaxing at home,
    or waiting in line, the King Johnnie app ensures the casino is always
    at your fingertips.Why Play on the King Johnnie Mobile App?
    We’re thrilled to announce that King Johnnie Online Casino has officially launched
    its mobile app! If you’re searching for a top-notch online
    casino that combines excitement, rewards, and convenience, look no further than King Johnnie Online Casino.
    However, playing a game without being fully aware of its mechanics and features can result in losses.

    Not a VIP player myself-my bets are pretty tame. However, recent feedback indicates that support can be unreliable.
    For anyone jumping between devices, it makes juggling gaming across phone, tablet, and laptop manageable.
    All bank and crypto options are listed on the Payments page.
    I blew it once (missed a bonus), so double check.

    References:
    https://blackcoin.co/win-up-to-1000-200-free-spins-at-winshark-casino/

  14. But that won’t take away from the fact that, indeed, you’ll need to clear 50x wagering requirements for both
    the deposit match and the free spins. While I usually consider 50x wagering requirements to be on the high side, Ricky Casino actually has an Ace up its sleeve that makes this bonus
    better. Owned by Dama N.V., it enjoys a flawless reputation and is widely considered to be a very reliable casino, and that’s a big
    enough reason for me to place it #2 on my top list.
    It’s just too scarce, and with self-exclusion as
    the only RSG tool, you don’t really have many options.

    This means that online casinos cannot operate legally in Australia.
    We are a whole team working together to bring you updated
    picks of the best Australian online casinos based on their
    safety, payout history, software partners, and more.
    No, online pokies in Australia aren’t rigged as long as you’re playing at a licensed casino.
    Ultimately, the best online pokies for real money are ones that
    match your style. Whether you’re trying real online pokies
    for the first time or are a seasoned punter, choosing the right
    game and platform matters more than chasing big wins.

    References:
    https://blackcoin.co/king-johnnie-casino-australia-in-depth-review/

  15. Our exclusive VIP programme offers benefits that increase based on your playing
    activity. The welcome package is designed to enhance the first
    deposit experience, while weekly promotions ensure regular incentives remain available.

    Mate Casino has become a popular choice for online gaming enthusiasts, thanks
    to its wide scope of features and services. Additionally, certain titles may contribute diversity towards fulfilling these requirements,
    and time limits often apply to bonus usage. These conditions typically include wager, which specify how many times the bonus
    amount must be wagered before any winnings can be withdrawn. All perks and advancements offered by Casino-Mate mobile are subject to
    specific rules and regulations to ensure fair play
    and transparency.
    There are plenty of promotions that every casino
    customer can enjoy starting from the welcome package.
    The administration does its best to help you in any way along your gambling trip.

    Casino-Mate is one of the brightest representatives of the Australian gambling industry.
    Some gamblers underline that the casino does not accept cryptocurrencies.

    So, gambling at Casino-Mate gives you a bunch of incredible options for your pastime!
    If you still need to make up your mind, check out what the platform offers to play.
    Undoubtedly, as with any gambling site, the library of
    Casino Mate games is right on the home page.

    References:
    https://blackcoin.co/6_vip-casino-review-2022-special-bonuses-for-canadians_rewrite_1/

  16. You’ll also find more than 67 gaming tables,
    a 12-table poker room, and the Pulse electronic gaming area
    to enjoy. Grand Villa Casino’s 1,300+ slots beat the libraries at some online casinos available in British Columbia.
    They have a few carnival games (like 3 card poker),
    but not the traditional table games. The casino itself has 1,100 slots, electronic blackjack and
    roulette. The poker room’s 19 tables are a mixture of real poker tables and carnival games like 1 card poker and Ultimate Texas Hold’em.

    Parq Casino offers 75 table games like blackjack, roulette,
    and baccarat, 600+ slot machines, and daily poker tournaments.

    This casino has over 1,300 slot machines on offer, along with 34 table games and eight electronic
    tables. Because they either are located in converted tracks, and/or don’t offer live
    table games, most of these casinos won’t resemble the
    traditional casino most of us are familiar with. Adelaide Casino has
    more than 100 gaming tables at last count and close to 1000 pokies,
    making it the premier gambling venue and only place to play games such as
    blackjack, roulette and baccarat in the state.
    The casino lets you play at over 25,000 square feet of gaming space featuring 250 gaming machines and 18 table and poker games.
    The casino part of the complex includes 880 slot
    machines, a shiny new 33 table poker room, and electronic versions of blackjack and roulette.

    References:
    https://blackcoin.co/richard-casino-review/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.