5 ms·
When I was even more of a newbie programmer than I am now, I stumbled across Pharo and the Seaside framework. Both of them have excellent tutorials which taught
by muraiki 12y ago
When I was even more of a newbie programmer than I am now, I stumbled across Pharo and the Seaside framework. Both of them have excellent tutorials which taught me a lot about MVC, OO, and proper application design. I went on to build a prototype in Seaside and found it to be a very enjoyable experience.
For instance, if I messed up something in my code and had an error, the debugger pops up. In this debugger I can not only browse the stack trace and manipulate those objects, I can actually fix what is broken and resume execution of the program from that point.
In Seaside's dev mode I can toggle viewing all the components that make up the currently displayed page (a page isn't a textual template, but is constructed from objects). I could manipulate those objects in the browser and see the effects of those changes immediately. This was useful both in exploring solutions to problems and in debugging code.
Having experienced such tools, it's hard not to miss them when programming in another language. I used to use Light Table with Clojure and Javascript to kind of recreate the effect, but what the author writes is true: abandoning your familiar textual tools lets you do some really awesome things. It completely changes your development and debugging workflow.
I'd love to be able to program in Smalltalk professionally, but I really couldn't find that kind of gig (especially entry level) in my area. But even if you can't see an immediate business use case, just spend a weekend going through the Pharo and Seaside tutorials. If learning lisp is important "not because you'll use it but because it will forever change you" (to paraphrase) then learning Smalltalk is important in the same way. Just be aware that when you have to go back to another environment, you might be a bit sad. :)
- kyllo 12y agoFor instance, if I messed up something in my code and had an error, the debugger pops up. In this debugger I can not only browse the stack trace and manipulate those objects, I can actually fix what is broken and resume execution of the program from that point The developer tools in Chrome and Firefox remind me of the Smalltalk IDEs. I don't know if it's intentional or accidental, but the similarities suggest to me that some of the ideas from Smalltalk have been carried over to web development.
- sebastianconcpt 12y agoDon't feel limited by your area. Remote development is starting to catch on and you usually can use whatever tack that makes you a great deliverer. So if you like Seaside, don't be shy an offer to use that power in doing something valuable to someone.
- current_call 12y agoIf learning lisp is important "not because you'll use it but because it will forever change you" (to paraphrase) then learning Smalltalk is important in the same way. Learning Common Lisp is like learning Smalltalk in another way, Common Lisp shares some of Smalltalk's features. For instance, if I messed up something in my code and had an error, the debugger pops up. In this debugger I can not only browse the stack trace and manipulate those objects, I can actually fix what is broken and resume execution of the program from that point. This is also true for Common Lisp. When I hit a bug, I can edit the broken code, reload it, and resume execution from where the program stopped. I can load edited code and freeze the program to inspect objects at any time. It's enjoyable to edit some opengl code and see changes in real time. I used to use Light Table with Clojure and Javascript to kind of recreate the effect, but what the author writes is true: abandoning your familiar textual tools lets you do some really awesome things. It completely changes your development and debugging workflow. If anyone was wondering why some people don't like Clojure being described as a modern Lisp or the future of Lisp, this is one reason.