Why choose Smalltalk over Python for startups
Python is a relatively nice, simple programming language. I don’t have any quarrel with it. In fact, I love it in combination with web2py for web development. Web2py is a full-stack framework that comes with everything you need right out of the box. Batteries are included! There’s no need to futz around with configuration and setup like you do in Django.
Web2py makes it so quick and easy to write web apps that I use it for ALL my websites. And deploying web2py apps on servers is a breeze.
However, for general-purpose programming, I prefer Smalltalk. (For enterprise-level web development, I’d use Smalltalk in conjunction with the Seaside framework.) Smalltalk is simply such a wonderful language, as I discuss in my seminal article, “How learning Smalltalk can make you a better developer.”
So why is Smalltalk better for startups?
If you want the shortest “time to market,” Smalltalk may well be your best choice.
Smalltalk is much easier to use than Python
Python is an easy language to learn. That’s why it’s so popular. But guess what? Smalltalk is even easier! In fact, Smalltalk is one of the simplest programming languages in the world. It virtually has no syntax. Everything is done by message passing, including control structures like if statements and loops. Smalltalk’s syntax can be nicely summarized on the back of a postcard! Try that with Python.
Some people may find Smalltalk’s message-passing syntax a bit unsettling, but some people also find Python’s indentation-sensitive syntax just as unsettling, if not more so. At least, Smalltalk syntax will never get you into trouble (the way a misaligned piece of Python code might).
Moreover, while Python is easy to learn, it also carries with it a great deal of baggage from years and years of real-world usage (for example, see this StackOverflow question). By comparison, Smalltalk has very few “warts” or usability issues. After more than four decades, Smalltalk has managed to remain as clean and pure as the driven snow! Even while the language has undergone significant improvement (the Pharo project has been actively developing the language since 2008).
“Live coding” is the secret sauce
One of the key reasons for Smalltalk’s phenomenal productivity is its “live coding and debugging” IDE. This environment allows you to inspect data and make code changes during execution and observe the results immediately. You can even code your entire program in the debugger, the ultimate in incremental development!
Image-based persistence is also a huge boon to developers. In the course of your development work, you can save the entire execution state of your program and later resume exactly from where you left off!
This powerful environment is unmatched by anything that IDEs such as Visual Studio and Eclipse have to offer. Other IDEs have made awkward attempts to implement this feature, but they just don’t work as smoothly and elegantly as in Smalltalk.
Where Python shines…
is in its tremendous ecosystem of libraries and tools. Smalltalk’s ecosystem can’t compare to it…yet. This advantage can be very significant to a startup if it can heavily leverage Python’s libraries. In practice, there isn’t a great deal that Smalltalk can’t do because of its smaller selection of third-party repositories, for example:
- Smalltalk has a NumPy-like library called PolyMath that makes Smalltalk good for numerical computing and Big Data.
- Smalltalk has a fantastic tool for data visualization called Roassal.
- Smalltalk can be used for machine learning: BioSmalltalk.
- Smalltalk can be used for natural language processing: NLP Smalltalk and Phonetix.
- Smalltalk has accomplished a lot in the area of virtual reality: Open Cobalt.
- Smalltalk has a great ERP story: “A year goes by…”
- Smalltalk is used around the world, including Europe, the Americas, Australia, and surprisingly Asia, for example: Hong Kong-based Orient Overseas Container Lines and Japan’s ALLSTOCKER.
- Smalltalk is even used by the government and military! In the 2000s, the U.S. joint military wrote a million-line battle simulation program called JWARS.
- Smalltalk is being used to fight Ebola: Kendrick.
- Smalltalk is great for robotics and Internet of Things: Pharo Pi.
- I’ve used Smalltalk to write mobile apps.
Smalltalk is very, very versatile!
Startups should not rely on Python as the only competitive weapon in their arsenal. Smalltalk offers unique advantages, too, such as shorter time to market, greater productivity, enhanced development process through live coding and debugging, and much lower cognitive friction.