Smalltalk: An Entrepreneur’s Secret Weapon
If you’re an entrepreneur, and especially if you’re a digital entrepreneur, one of your greatest concerns is getting to market as quickly and as easily as you can. Your business is highly dependent on computers, whether that’s in the area of web applications or mobile development or machine learning or virtual reality or robotics or whatever.
At the heart of software development is the programming language. Some languages make your job easier; others make your job much harder. We will look at one particular language that makes your job as a software developer much easier and much more productive than with any other language in existence.
But first, let’s look at a few programming languages that are frequently adopted by startups…
- Python — widely regarded as easy to learn and extremely versatile because of its numerous third-party libraries
- JavaScript — practically the only language you can use for writing web browser software
- Java — the chief Android programming language and the enterprise standard
- C# — most commonly used for Windows/.NET programming
- Ruby — best known for its Rails web framework
- PHP — the most widely used language for dynamic websites
Python has many peculiarities in its design, especially with respect to object-oriented programming. Its multithreading capability is crippled by the GIL (global interpreter lock). Its lambdas are oddly restricted to single expressions. Its half-open intervals are unintuitive. Its off-side rule syntax is offensive to many programmers.
JavaScript has even more peculiarities, especially with respect to weak typing and its myriad nonsensical type coercions. JavaScript code can fail silently. The language is riddled with traps and pitfalls, which is why so many transpiled languages exist as JavaScript alternatives.
Java is extremely verbose. It’s more awkward to use than Python. C# is Java on steroids.
Ruby and PHP have seen better days. Both are in decline.
To be clear, all of these languages can be effective for startups. However, there is one language that offers very special benefits, especially for entrepreneurs on a tight deadline. It’s called Smalltalk.
The first major benefit is Smalltalk’s simplicity and ease of use. Smalltalk is much, much easier than even Python. The syntax is ridiculously simple. It can be learned in its entirety within 15 minutes!
The second major benefit is Smalltalk’s live coding capability, which practically eliminates the traditional edit-compile-test-debug cycle that has hampered programmers for over half a century. This helps to make Smalltalk the most productive programming language in the world. On average, Smalltalk is twice as productive as JavaScript, C++, Go, Java, PHP, Python, and C#. In many instances, Smalltalk can be up to 5 times more productive!
The third major benefit is Smalltalk’s purity, clarity, and consistency in its object-oriented model. Smalltalk is the easiest object-oriented language for this reason, far surpassing C++, C#, Java, Python, and Ruby.
Smalltalk’s object-oriented nature makes it supremely maintainable and scalable without the headaches imposed by other object-oriented languages.
The fourth major benefit is Smalltalk’s system image. The image is a snapshot of an application’s total execution environment. It allows you to save the execution state of your program and to resume execution later on at your convenience. This is terribly handy.
Smalltalk’s image also makes software deployment a breeze. You never have to worry about installing and configuring the numerous software components (like libraries and frameworks) that constitute your application in production.
The end result is that a startup can minimize the “time to market” for its product. It can deliver the product months, or even years, ahead of its competitors.
The good news is that Smalltalk is every bit as versatile as languages like Python and Java. For back-end web development, you have Smalltalk web frameworks like Seaside and Teapot. For front-end development, you have transpiled languages like Amber and PharoJS.
For data science, you have tools like PolyMath, Roassal, and Moose. For machine learning, you can use TensorFlow and Keras.
Smalltalk is also good for things like IoT (PharoThings) and robotics (PhaROS) and virtual reality (check out this virtual reality startup).
It can even be used for scripting game engines!
Speaking of games, here’s one for mobile devices called HexSolve written entirely in Smalltalk.
I can’t think of anything that Smalltalk hasn’t done compared to Python, JavaScript, and Java.
Conclusion
Smalltalk is a wonderful secret weapon because it flies under the radar of most entrepreneurs. While startups get distracted by the high profile languages, the smart ones can leverage the tremendous benefits of Smalltalk to get well ahead of competitors.
If you’re interested in checking out this magical language, visit the Resources page at my Smalltalk tech blog.