5 ms·
I took my first college-level programming class in 1997, learning Smalltalk. 1. IBM VisualAge didn't run in Linux, so I had to buy a second hard drive and a co
by alrs 6y ago
I took my first college-level programming class in 1997, learning Smalltalk.
1. IBM VisualAge didn't run in Linux, so I had to buy a second hard drive and a copy of Windows 95.
2. I wanted to be working in a terminal, Smalltalk only let you work in an IDE. I couldn't figure it out. I couldn't believe that anyone would want to mouse-around to poke through the available classes and methods.
3. The text was the IBM manual. It was terrible.
4. I failed the class twice, so I changed majors.
I didn't come back to coding until ten years later.
I'm a contributor to Kubernetes, the Go Standard Library, and I'm a full-time Go developer. Things turned out OK.
Smalltalk, OO, and IDE-based development set my career back by ten years. Don't believe the hype.
- non-entity 6y ago> I couldn't believe that anyone would want to mouse-around to poke through the available classes and methods. So I dont know a ton about smalltalk outside of what I've read and poking aside in squeak for a few minutes, but is this how smalltalk apps were supposed to be distributed and run? Inside a sandboxes system like that?
- hboon 6y agoOn certain systems, there are tools that make them feel more native. Eg. on Dolphin Smalltalk which ran on Microsoft Windows, you can run a utility to stripped off the unnecessary parts (eg. the browser/editors and unused classes) of the image and it gets bundled into an .exe which includes a VM. A user wouldn't know it's running Smalltalk. It turned out to be an excellent tool to write Windows app during its time. The live environment worked extremely well in working with and figuring out ActiveX and COM objects.. Even better than VS Studio at that time.
- kryptiskt 6y agoNo need for past tense there, Dolphin Smalltalk is still being developed and is open source now, https://github.com/dolphinsmalltalk https://github.com/dolphinsmalltalk.
- hboon 6y agoHaha. True. It's history for me, but the great product lives on. The nick "blairmc-msft" is interesting though. He's at Microsoft, or was at some point?
- diegof79 6y agoI worked for 3 years using VisualAge and GemStone/S. As Allen says in the article, Squeak was a special case: based on Smalltalk-80 is oriented to have an environment to support the experimentation with e-toys (a platform for learning). Other Smalltalks were different. VisualAge supports native UIs, and you have tools to produce the final product. The usual process is to create a reduced image based on modules that you load from the version control system (Envy in the case of VisualAge). Then you package an EXE that uses your image.
- solarengineer 6y agoI am surprised that what alrs has said. At some point, one actually does poke around and understand what is going on to know how a system works. alrs states that they are contributing to K8s. That does require poking around to learn the plumbing of the system. You could very well write Smalltalk apps without poking around the underlying classes. The Visual Age for Smalltalk environment just made it very easy to do so. You can do this with any language IDE today where you attach the source code of libraries to the project workspace.
- alrs 6y agoI love poking around. I love poking around with vi, more, and grep. I cannot fathom how someone would want to poke around with a mouse while pointing, clicking, and peering into a little 2" x 2" dialog box.
- igouy 6y ago> … how someone would want to poke around with a mouse… Back in the day, not having a TKL keyboard could become a pain. Back in the day, poking around could be an effective way to learn not just what batteries were included but whether, with a tweak and nudge, they might solve le problème du jour. Poking a running program not just a source code file.
- hboon 6y agoI have been using vim for about 2 decades so I can empathise with not having the familiar key bindings and speed of moving around. A good Smalltalk environment does let a developer navigate the image [1]. On many systems that means it allows you to poke at everything about that Smalltalk system, not just your own code, but 3rd party libraries, as well as the Smalltalk system itself, including what we normally consider the text editor or IDE. It's true that you lose access to vim [2], but you trade that it for the image as well as wonderful code browsing capability in the sense of looking up a type definition, senders and implementors of a message, stepping into any code, live debugging and editing during debugging, etc. So Smalltalk is a tradeoff. If one can give up vi and work with the paradigm, it is really really great. [3] [1] The Smalltalk image is a wonderful and beautiful concept. There is one glaring downside to it for most Smalltalk systems. It creates a divide between the image and the rest of the world. [2] Since you can redefine how any code in the image work, it's possible to define a few shortcuts so you get a very limited set vim functionality, but it's not feasible to reproduce the vi environment (even if we want to invest the effort) because the paradigms are different. [3] One can say that's generally true for everything. "Once you can accept X, you get Y", but the argument is that Smalltalk is really great once a developer does that.
- armitron 6y agoI can't see Go as anything more than tripe aimed at commoditized development. Yay at being a cog in a giant machine. Smalltalk and the ideas it was based on revolutionized personal computing. There is raw, unbridled genius in it and that should be widely recognized.
- alrs 6y agoWho's to disagree with your aesthetic judgement? You're not wrong to like it, if you like it. I found it sufficiently obtuse that I walked away from my life's dream. The nostalgia circuit touts it as an amazing educational environment, in my experience it was not.
- solarengineer 6y agoI was self-taught in Java, C and Foxpro, and then joined a company of Smalltalkers who had to transition to Java. They used Visual Age for Smalltalk and Visual Age for Java. For various reasons, for a few months at work, I had a really low end computer that couldn't run Visual Age for Java. (I couldn't afford a computer that could run Visual Age for Java/Smalltalk). However, I got to learn from some of the best Smalltalkers in the world. Thanks to the wonderful foundation they gave me in OOPs, I have since then been able grasp domains very well. In a different set of circumstances, I got to learn how agile and Test Driven Development work very well even in larger teams. I've worked on teams with 250 odd people from three different companies and two different timezones and cultures. Due to my current work, I get to see how horrible a person's experience can be with agile and with Test Driven Development. Today, I had an illuminating 90 minutes session on Complex Numbers. This was my second class online. After 30-odd years of being furious at Mathematics, I have now come to embrace it. I have concluded that the right mentorship and learning materials and experience can go a long way in helping make a topic exciting and interesting. Your hurt is evident. From what you have shared, it seems to be the absence of good tutorials that were a roadblock, and not Smalltalk or Visual Age for Smalltalk itself.
- Rochus 6y ago> Smalltalk and the ideas it was based on revolutionized personal computing. There is raw, unbridled genius in it and that should be widely recognized. This is not historically correct. What we understand today by "personal computer" was described by Butler Lampson in his famous paper in 1972 and was first realized in the famous Alto Computer. The first desktop GUI and the first WYSIWYG applications for the Alto were implemented in BCPL (not Smalltalk). The first version of Smalltalk, which most closely corresponds to our todays understanding of Smalltalk, did not appear until 1976, and two other important features were not even introduced until 1980. So if you are looking for geniuses, you will need to increase your search range a little.
- WoodenChair 6y agoYou didn't like Smalltalk. It didn't work for the way your brain works, so much so that you failed a class twice. I'm not quite sure how this adds to the discussion. Clearly IDEs and having to "mouse-around through the available classes and methods" works for many people since this is how documentation in Xcode/Android Studio/Visual Studio works. If the documentation for one Smalltalk implementation was bad, that doesn't mean that others were bad. I don't quite see your point other than that Smalltalk (and one specific implementation of it at that) didn't work for you, a sample size of 1.
- alrs 6y agoAbsolutely. It's great hearing tales of people who used and loved Smalltalk. I'm pushing back against anyone repeating the received wisdom "zomg genius! it was too good to live in this fallen world" without having ever used it. I don't pretend to be a sample size greater than one, but I think it's worth noting that, in this batch of comments, if you only count the people who used Smalltalk, and not the people who saw an old Alan Kay interview on Youtube, you're likely to be somewhere south of n=20.
- pjmlp 6y agoNot only did I saw plenty of interviews of Alan Kay, I learned OOP with Turbo Pascal 5.5, improved my OOP skills with Turbo Vision 6.0 in TP 6 and Borland C++. Later moved into Turbo Pascal for Windows and Turbo C++ for Windows, using Object Windows Library, followed by early versions of C++ Builder and Delphi, using Visual Component Library. Used Smalltalk/V during university, was introduced to the alternative OOP programming models of SELF, SWI Prolog, Native Oberon (including Oberon-2 / Component Pascal) and plenty of other stuff, including being a Java early adopter and pushing C++ with IDE tooling on places still stuck in C. So yeah, Smalltalk was a genius environment and everyone has a different learning process. For example I try to stay away from UNIX cli as much as I can, yet I learned UNIX via Xenix in 1993 and used almost every major UNIX variant since then.
- eitland 6y ago> if you only count the people who used Smalltalk, and not the people who saw an old Alan Kay interview on Youtube, you're likely to be somewhere south of n=20. To support your view: A competitor "stole" a large maintenance project from us. I suggested to someone at my company that they would have trouble recruiting as I assumed we were the biggest smalltalk community in Norway. Their answer was that we were probably the only real smalltalk community. They might be wrong, but I haven't seen anything to suggest that yet. And that competitor kept calling all of my colleagues that had - at any point - worked anywere near smalltalk :-) Even we do the vast majority of our development in other languages.
- entha_saava 6y agoThanks for the comment. When people talk about smalltalk or lisp, downsides are rarely mentioned.
- TurboHaskal 6y agoDefinitely true for Smalltalk but not for Lisp in my experience. The latter has its fair share of haters even on HN.
- rauhl 6y agoHad you programmed at all prior to college? I took my first college-level programming class a year earlier than you, using Smalltalk, and I hated the language. It just didn’t make any sense to me. But in high school I had programmed in C, and earlier than that in HyperTalk and earlier still in Basic. I was too immature at the time to see the similarities between HyperTalk and Smalltalk, and too hung up on what I thought of as C’s close-to-the-machine nature to appreciate Smalltalk’s high-level power. I think that my previous programming experience — which really wasn’t very extensive! — made it more difficult for me to understand what was good and desirable about Smalltalk. It really was Blub for me. But I don’t blame Smalltalk for that; I blame me. I was 18, immature, unable to imagine a world outside my head, and with strikingly little actual experience. I’d like to blame all that on my age, but of course there are folks who were better on these metrics at the same age. (I stuck with my major, though in large part because later classes were all in C, and maybe one was in Lisp and another in Java — it has been so long now that I cannot remember. Glad I did!)
- codr7 6y agoI get the feeling it has a lot to do with how much your teacher loves the language. I was introduced to Common Lisp at university, didn't get it at all. At least Prolog could do cool tricks. Took me several years of Graham yabbering about it to make the effort, and to my surprise it was all that and more. I realize now that my teacher didn't have enough experience to really understand what was great about Lisp. I have since learned Smalltalk as well, and admire many aspects of it; but with the wrong teacher it would have failed just as epically.
- pjmlp 6y agoThis is how learning OCaml and having access to Native Oberon and Smalltalk/V did to me. It opened my mind to an alternative universe of safe systems programing and computing models. This kind of stuff is a bit like explaining monads I guess, it only groks if one goes through the experience themselves and it always hard to convince others just with words.
- alrs 6y agoI had. I wrote some Applesoft BASIC as a kid, and was handy enough with LOGO that they brought in teachers from around the city to have me teach them at age 12. My first and only lisp. The other side of this story is that I always encourage people to keep their modern-day children away from BASIC, at it only makes learning any other language harder. My bad Smalltalk experience is hard to imagine today: Hey kid, here's a language that can only be written in one IDE on one operating system. Don't worry that the IDE doesn't run on your Linux computer, because the programs that you write won't run on your computer, either. The artifacts you generate won't be files, they'll be images. We're not going to actually cover that part, so when you're ready to turn this in you'll need to copy-and-paste the working code into your email client. You'll know it's ready when you press "F5" and nothing bad happens.
- agumonkey 6y agoabout 2. even though I enjoy text, I can also accept that smalltalk placed itself into the interactive graphical realm first and thus would put you into a visual clickodrome of programming constructs.