top | item 26720821

(no title)

thesecretsquad | 4 years ago

Coming from a C#/Java background, discovering Smalltalk was an eye-opening experience regarding supposed "legacy" programming languages. I would argue it's a more expressive language with simpler syntax (I dare say the simplest) and has had language features for decades that Java and C# have only recently added. That's how I learned newer isn't always better.

This bit of the article struck a chord with me: "The issue is institutional knowledge — when the people who wrote an application 20 years ago leave, the remaining people often don’t know the application with anything close to the same intimacy."

Code readability, testing practices, and the types of patterns employed (or really the types of anti-patterns avoided) are more important than the language used if you expect anyone to be able to maintain a system over time. These are like embedding artifacts of institutional knowledge in your code to guide future maintainers. The choice of language alone doesn't carry any institutional knowledge.

discuss

order

valenterry|4 years ago

> Code readability, testing practices, and the types of patterns employed (or really the types of anti-patterns avoided) are more important than the language used

This is very true, but also a bit of a fallacy - in particular for unexperienced developers.

Saying it in the way you did can create the impression that the choice of the language is not important as long as the mentioned properties are taken care of. But it does not mention that these things are not independent of each other. The choice of language has a huge impact on readability, testing and patterns (all else being equal).

I would phrase it the other way around: because code readability, testing practices, etc. are so relevant, it is important to choose a language that makes these things as easy and productive as possible.

simiones|4 years ago

I think much more than language syntax and features, it was impressive until ~5-10 years ago just how advanced IDEs for Smalltalk and Lisps were compared to any other language. There has been a massive catch up in recent years, though I think many dynamic languages are still behind on their IDE support compared to these ancient technologies.

pjmlp|4 years ago

Edit and continue still aren't as good as those IDEs are capable of.

Then there is the whole stack REPL development experience, which probably Powershell + .NET + COM/UWP on Windows is the closest we get today.

pjmlp|4 years ago

For a little while UNIX seemed a couple of interesting ideas when compared against MS-DOS/Windows 3.x and Amiga OS, then I discovered Xerox PARC research, and the world of Lisp Machines, Mesa XDE, Mesa/Cedar, Smalltalk.

Or if you want a closer example, RAD development tools for the desktop versus what SPA still aren't able to offer on the Web.

tored|4 years ago

> are more important than the language used

Yes, many organizations have made the mistake to switch language in hope of solving their problem with a messy code base when it was their own bad practices that where at fault all along and then consequently just repeating bad practices in another language.

It is not the language that is the limitation, it is the programmer.