Text files may appear to be an indispensable asset for collaborating on large projects, but nothing in the IT industry is ever so black-and-white. There are always alternative methodologies and solutions to address every kind of conceivable problem. In other words, there is always more than one way to skin the cat.

For example, I’m amused at the current FP craze where everybody thinks that the best or only way to do FP is with languages like JavaScript and Haskell. However, if you open your mind a little, you find that you can do “functional programming” with Smalltalk, as well. In fact, you can do FP with any language that has first-class functions and closures. It’s just that it won’t look exactly like the way you do it in traditional FP languages. Why should it?

Similarly for doing large-scale software engineering with statically-typed languages like Java or Scala. You can do that kind of engineering with dynamically-typed languages, as long as you understand that you need to use different methodologies (for example, TDD). You need to adopt a different mindset.

The proof is in real-world examples of large-scale applications such as you find in some of Smalltalk’s biggest customers (JPMorgan, Desjardins, UBS, Orient Overseas Container Lines, etc.). And let’s not forget the million-line JWARS application from the U.S. military.

There is always more than one way to skin the cat.

You tell the truth that Smalltalk is not the solution for all startups. Different startups may have different needs. There is no such thing as a universal programming solution (not in FP, nor in static typing, nor in large “expressive” languages like Scala).

In general, however, I believe most startups would benefit from using Smalltalk. Smalltalk is incredibly versatile. It’s even good for web programming!

“But what if I want to use react(-native) … ?”

Well, what if I want to use frameworks/libraries from the worlds of Erlang (OTP), JVM**, and Python (TensorFlow)? We can’t always get everything we want in the universe. We accept certain limitations.

Moreover, why the devil would I want to use React (Native) and subject myself to one of the worst programming languages ever create? Because I drank the Kool-Aid?

React is one of many, many JS frameworks that seem to have the lifespan of a fruit fly. It’s the current “hotness.” Angular was yesterday’s. Vue could be tomorrow’s. Who knows? Who cares?

Anything you can do with React, you can do just as well, if not better, in other technologies such as transpiled languages. Including Amber Smalltalk, I might add.

There is always more than one way to skin the cat.

(**) With the imminent release of Redline Smalltalk later this year, you will be able to use JVM frameworks/libraries, too. That would be a pretty big win for everybody!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store