Nikola Tesla was a brilliant inventor and visionary who died largely forgotten. His contributions to the world were enormous, but people still remember Edison and Franklin and da Vinci and Bell. For decades, attempts to honour Tesla with a New York museum at Wardenclyffe failed repeatedly. Only recently has this borne fruit. Here are some of Tesla’s contributions: invented the first alternating current (AC) motor developed AC generation and transmission technology created the Tesla coil, a high-voltage transformer which came to be the genesis for the cathode ray tube, radio transmitter, radar, and many other technologies invented X-ray technology invented dynamos and the induction motor invented the first working radio invented the fluorescent light bulb invented the remote control invented wireless transmission of electricity designed the first hydroelectric generating plant at Niagara Falls In 1887 and 1888, he was granted more than 30 patents for his inventions. When Tesla died in 1943, he died penniless and forgotten. Smalltalk was the brainchild of Alan Kay, a true visionary who led a brilliant team at Xerox PARC. Today, Smalltalk is greatly underestimated. Although Kay never thought of Smalltalk as the central focus of his vision, it remains a powerful force for the advancement of programming technology. More than four decades later, no programming language has yet to catch up to Smalltalk in terms of simplicity and elegance, minimal cognitive friction, object-oriented purity, elegant live coding and debugging, enormous programmer productivity, and professional respect. At Slant and StackOverflow, Smalltalk is revered: read . The Wisdom of the Crowd Capers Jones of Namcook Analytics has shown . Smalltalk’s tremendous advantage when it comes to programmer productivity Smalltalk’s IDE and runtime are amazingly powerful without the arcane complexity that you find in modern IDEs like Visual Studio, Eclipse, and Xcode. Here’s a demonstration: live coding Here are some great innovations: Smalltalk continues to evolve and improve in remarkable ways through the Pharo project. NativeBoost — having an inline assembler is definitely not a common feature in a dynamic language. NativeBoost has since evolved into Unified Foreign Function Interface (or UFFI). is a set of code visualisation tools containing many means to visualise and analyze code. Moose , which uses Pharo as the reference language, is a fantastic front-end web programming tool. Amber is another terrific front-end web programming tool. PharoJS are a wondrous feature in the Seaside web framework. Continuations — a way to serialize live objects, and for transporting your objects around. Fuel — allows one image to manipulate another one. Very good for debugging an image that has crashed and is unable to open/load. Oz lets you manage your Pharo images (launch, rename, copy and delete) and download image templates (i.e., zip archives) from many different sources to create new images from any template. Pharo Launcher is Pharo’s Github, but unlike Github it is fully open source and all Smalltalk. SmalltalkHub is a port of Scratch to Pharo — this is important because Scratch has been ported to HTML5 and this is an effort to keep Scratch Smalltalk-based. Phratch is an excellent platform for teaching kids how to code. Phratch — good support for Pharo in Emacs; you can replace the Pharo GUI with Emacs and enjoy the benefits of this most powerful editor. Shampoo Legacy Like Tesla, Smalltalk has a wonderful legacy. Its beautiful implementation of has directly influenced the design of nearly every object-oriented language we use today: Java, Python, C#, PHP, Ruby, Perl, Objective-C, Groovy, Scala, Dart, Erlang, CLOS. object-oriented programming Smalltalk introduced the world to the language . (No, it wasn’t the first but it was the best-known.) This is the same tech that underpins Java and .NET. virtual machine Smalltalk pioneered JIT (just-in-time) compilation. From Smalltalk came the first modern IDE (integrated development environment), which included a text editor, a system or class browser, an object or property inspector, and a debugger. Smalltalk was the first language tool to support live programming and advanced debugging techniques such as on-the-fly inspection and code changes during execution in an easily usable form. Since Smalltalk-80 (in 1980), it had first-class functions and closures which, oddly enough, make Smalltalk quite good for functional programming. Quite remarkable for a “pure” object-oriented language. (How long did it take Java, Python, C# and C++ to get this feature?) Smalltalk introduced the software architectural pattern MVC (Model-View-Controller). To a large extent, Smalltalk was responsible for giving us (or TDD) and extreme programming (or XP), which are both very influential in today’s standard agile practices. test-driven development Smalltalk made “duck typing” a household word. Duck typing is where “type checking” is deferred until runtime — when reflection capabilities are used to ensure correct behavior. We find duck typing in many languages today, including Java, Python, Go, Groovy, Objective-C, and PHP. Smalltalk pioneered the development of object databases of which is a great example. GemStone/S Smalltalk gave us the . first browser refactoring Smalltalk was instrumental in developing the (or GUI) and the “what you see is what you get” (WYSIWYG) user interface. graphical user interface People don’t realize this, but Smalltalk is every bit as extensible as Lisp! Read . Who needs Lisp macros? Lisp, Smalltalk, and the Power of Symmetry Apple’s success owes a lot to Smalltalk. It’s true! Objective-C has been the foundation of macOS and iOS, and Objective-C is essentially a cross between C and Smalltalk. MacOS evolved from NeXTStep which was built with Objective-C. to completely realign Apple’s strategy; the GUI was a direct outflow of Smalltalk work. Steve Jobs was inspired by Xerox PARC’s GUI and WIMP Whew! Nikola Tesla would’ve been proud! More than four decades later, Smalltalk enjoys far more commercial usage than any of the upstart languages we hear so much about (for example, Ceylon, Clojure, Crystal, D, Dart, Elixir, Elm, F#, Haskell, Haxe, Julia, Nim, Rust). Between them, they have many prominent Smalltalk users: still Cincom, Instantiations, and GemTalk are major Smalltalk vendors. JPMorgan Desjardins UBS Florida Power & Light Texas Instruments Telecom Argentina Orient Overseas Container Lines BMW Siemens AG Just to name a few. In my home country, Smalltalk is used by Communications Security Establishment (CSE), Canada’s national cryptologic agency. Pharo itself has prominent users, too, for example: ALLSTOCKER ATMs in Moscow streets LAMRC FINWorks YesPlan In the early 2000s, the U.S. joint military used Smalltalk to write a million-line battle simulation program called JWARS. It actually outperformed a similar simulation called STORM written in C++ by the U.S. Air Force. That by itself is an astonishing testament to the capabilities of the language. Here’s a commercial virtual reality application done in Smalltalk: . Magnificent! 3D Immersive Collaboration Smalltalk is good for and . machine learning data science Smalltalk is being used to fight Ebola! Smalltalk is used in . wide-scale data visualization for medicines in 16 countries Smalltalk was so good for business use that in the early 1990s, IBM chose Smalltalk as the centrepiece of their VisualAge enterprise initiative to replace COBOL. Unfortunately, Java came along in 1995 and put an end to that. And as we all know, today Java is the enterprise standard programming language. In fact, according to a 1995 IDC report, OO language market shares were: C++ — 71.3% Smalltalk — 15.1% Objective-C — 5.7% OO Pascal — 4.2% CLOS — 2.5% Eiffel — 1.1% all others — 0.2% Here’s a page from Computerworld, November 6, 1995, showing Smalltalk and C++ duking it out: Let’s look at a universities and research groups that use Smalltalk (Pharo): few University of Bern, Switzerland, http://scg.unibe.ch Uni. of Buenos Aires, Argentina Vrije Universiteit Brussels, Belgium Uni. de Bretagne Occidentale, France Uni. Catholic of Argentina, Argentina Federal University of Espírito Santo (UFES), Brazil Uni. of Chile at Santiago, Chile Czech Technical Uni., Czech CULS Prague, Czech DCyT — Universdad Nacional de Quilmes, Argentina http://www.unq.edu.ar Ecole des Mines de Douai, France http://ia.mines-douai.fr ENSTA Bretagne University of Hagen http://www.fernuni-hagen.de/ps/lehrveranstaltungen/k01814/ HackBo, Hackerspace en Bogotá, Colombia. http://hackbo.co Ivan Franko Nat. Uni. of Lviv, Ukraina Université de Montpellier, France IAE Savoie Mont-Blanc, France Uni. de Maroua, Cameroon Aalborg University, Denmark Northern Michigan Uni., USA Uni. Policnica de Catalunya, Spain Uni. of La Plata, Argentina Uni. of 20 Aout 55-Skikda, Algeria Uni. Technologica Nacional at Buenos Aires, Argentina Uni. Technologica Nacional at Cordoba, Argentina Uni. Nacional de San Martin, Argentina Tomsk State University, Russia http://www.csd.tsu.ru Université de Louvain la neuve, Belgium Université de Yaounde, Cameroon Universite di Cagliari, Italy (AR) Lafhis (AR) Institute of Veterinary Genetics IGEVET ASERG (CH) Software Composition Group (FR) CAR (FR) RMOD (IRD) Ummisco (CH) Reveal (CL) Pleiad (FR) OC CEA-List (FR) Laboratório e Observatório de Ontologias (BR) Uqbar (AR) (CZ) CCMI-FIT Lab-STICC UMR 6285 Lab-STICC (IT) Agile Group As you can see, Smalltalk is incredibly strong in industry academia! and So in the end, I am puzzled why Smalltalk gets so little press coverage, why Smalltalk is as forgotten as Nikola Tesla. These two deserve better fates.