Wednesday, February 27, 2013

OOP - a critical approach

Some years ago I had email exchange with Huw Collingbourne about programming and Smalltalk and  Smallscript/S# in particular. At this time I helped my friend David Simmons a little bit with some early Smallscript releases.

Huw runs the and he had a tutorial on Smalltalk with Squeak and one about Dolphin Smalltalk.

Huw also published an interview with David as the creator of Smallscript. Smallscript (as some of you may know) is still closed and not released into the wild for various reasons. It is still one of the most fascinating software technologies and dynamic scripting environment/language I was able to get my hands on.
But I dont want to write about Smallscript here.

Huw Collingbourne is instructor on programming languages, he wrote books about Ruby and is director of technology at SapphireSteel Software (known for their Ruby IDE).

I found an interesting post about Smalltalk and other programming languages in the context of object oriented programming from Dec 2012 written by Huw:

Read it. It should make you think and again remind you that the IT world made no real progress with recent languages and software technologies regarding objects.

Day by day I see so many people write code or writing about OO code (in blogs, papers, ...).
Not all really understood about OOP and its key concepts.

People learn languages like Groovy, CoffeScript or Scala today, the next day they learn Dart or the next language. Sometimes only the syntax changed. But they never looked at OOP, they never looked at its origins in Smalltalk or Lisp because these technologies are "too old" and not mainstream. But they should - it will help fighting complexity and help when the code grows.

Only a few of them ever took the time to look at Smalltalk. And a few of the few people really continued to look and understand that Smalltalk is not really a language. It is a dynamic object system with the language just built in. Even a class is an object and therefore has a class. It can dynamically changed, created or removed and garbage collected like any other object. If you need new control structures just add them as new methods. It's turtles all the way down and the power is in the simplicity: Objects and Messages.

Worked with several languages and environments I learned to know about both worlds. On one side the text file based, often static compiled world (mostly combined with a horrible grammar) that constraints writing good OOP and on the other side a dynamic live environment where you can lively interact with all the objects around either by using code or direct manipulation.

Smalltalk is still the mother of OO languages - you can not get any closer to OOP than within its environment. And it is also opens the door to metaprogramming - something I will write about later here.

I can only recommend it - grab a free copy and learn about it. You will not regret it even if you continue to work with more mainstream technologies.

Tuesday, February 26, 2013

Network Time Protocol in Pharo

Want to sync server times? You can check your local clock agains other servers using the NTP protocol. Sven provides some sample code in his Neo repository. Since the network time protocol (RFC2030) is based on the UDP protocol you now also have a nice example on how to use UDP datagrams.

Sunday, February 24, 2013

BioSmalltalk screenshots and integrated help

BioSmalltalk provides some screenshots of their Pharo based application. Way cool: it uses my HelpSystem which (as the site states) they could integrate in less than an hour work. Nice! But nonetheless I now provide an online version

Pharo Online Help with Markdown support

The Pharo Online Help now has support for the markdown format. I also made a tutorial available on how to use it. Code is on SqueakSource3, but will soon move to SmalltalkHub.

You can try in a clean Pharo 2.0 image, load it using the configuration browser.

Tuesday, February 19, 2013

Smalltalk Jobs

There is a new site for worldwide Smalltalk Jobs:

PBE 2 as PDF

Want to read "Pharo by Example 2" book as a PDF. Here you go. Update: Now the book PDF is built by the CI Server and you can find the chapters here.