Are we Smalltalkers missing the mobile trend?

This might be an interesting detail for all people involved in Smalltalk environments that run on Android and/or iOS. Among the top 10 search terms used in 2012 to find  my blog there were “smalltalk android” and “smalltalk ipad”. And in fact, almost every day I check my blog statistics, and these terms or variations thereof are on the list.

To me, this is a clear indication that people are looking for documentation and possibly ready-made installation packages for either Smalltalk IDEs or deployed applications that are written in Smalltalk. I must admit I have been playing with the idea of writing an application for Android in either Gnu ST or Pharo repeatedly, but never took the time because I couldn’t find much documentation for it. People do deploy Smalltalk appliations on iPhones and Android devices but I haven’t found much material on how they do it. It’s either blindingly obvious for people who are used to writing Android / iOS apps, or the people who managed to do it regard their knowledge as a trade secret. Both are okay with me. I like to have a certain advantage on things I know as well. So I am not going to bash this.  Continue reading

Bob Nemec on Seaside for iOS devices

Over on his blog “Digging in the dirt“, Bob shares some insight into his appraoch to adapt an existing Smalltalk/Seaside based portal to teh iPad. For a customer demo, he needed to show an iPad version of the application and so he used some javascript and CSS tricks to optimize the app. You can read a lot of details (and maybe steal some code ;-) ) in his post.

I also like his summary:

The demo went well. I’m always surprised how making something pretty makes people think it’s better. In this case I just added a new facade on a web site, and it was considered a big thing, yet it was only a few days work. It’s like my buddy in marketing says: ya gotta sell the sizzle, not the steak. There’s a lesson in there somewhere for Smalltalk.

Right. People are afraid of Smalltalk for a lot of reasons, but most of them are mostly FUD instead of real facts. But as soon as the result looks good, many doubts and fears simply vanish. Using Smalltalk as a fast-path to building web appilcations that handle complex business logic can be an extreme advantage over many mainstream teachnologies. With great design and given the fact that it runs on a server where noone ever touches the application after installation, most arguments against Smalltalk are obsolote…

My WWDC highlight: iOS5 will have Garbage Collection

[Update:] I may be wrong on this one: the WWDC Keynote slide I’m talking about mentions ‘Automatic Reference Counting’, which technically is not the same as Garbage Collection, but nevertheless takes away the burden and responsibility of manual memory management from the developer. So the hooray is still valid, even if the technical implementation may not be Garbage Collection. For more details make sure you read the comments to this post[/Update]
Apple’s Keynote on the WWDC yesterday was again a huge media event, and they showed a lot of interesting new stuff that’s neither rocket science nor revolutionary on its own, but the level of integration into their product portfolio and their perspective on things that should simply work is great.

My personal highlight of the keynote was a very little but probably very influential tiny detail: iOS5 will have Garbage Collection.

Up to now, if you programmed in Objective-C for the Mac, and used Garbage Collection, you couldn’t use the same body of code for the iPhone or the iPad, because iOS required you to manage your memory by hand. Not that it was too hard, but it was a difference. So you either had to maintain two versions of your code, or you had to ignore Garbage Collection for your Mac version.

Now the only major difference between a Mac and an iPad application is the GUI framework (there are, of course, still others as well). This is easy to overcome, because you simply redraw your app in the IB for the other platform, and still maintain a single body of backend code.
And I guess even this difference will go away pretty soon, now that Mac OS X Lion adapts many principles from iOS.

It seems we’re on our path to the unified operating system and development environment for all platforms, from Desktop to Tablet PC and SmartPhone or Car Entertainment units. The gap between a MacBook Air and an iPad isn’t very broad anymore. Imagine a Netbook with a MultiTouch Screen and you have the unit for all purposes. Add to that the fact that there’s no real difference in APIs between platforms, we can imagine a lot of cool scenarios for our software.

So this is probably the answer to the question I posted a few weeks ago.

Apple releases Xcode 4

Today Apple released XCode 4, their latest development environment for MacOS and iOS.

Having worked with XCode for a while and skimming through the list of improvements and new features in Xcode 4 it seems like this new version is another big step forward and makes development an even much nicer experience than before. I wish some of the Smalltalk IDEs around would gather some inspiration from Xcode.

The nice thing about Xcode and Objective-C is that it feels very familiar to Smalltalk developers and ships with a lot of nicely crafted tools. Apple’s Interface Builder is one of my favorite GUI Builders together with VA Smalltalk‘s Composition Editor and Google’s WindowBuilder for Eclipse/Java. This combination doesn’t come by accident, all three tools share a common heritage, just like Xcode has adopted many things that Smalltalk IDEs offered 15 or 20 years ago and help boost programmer productivity.

It’s a funny thing to see how new generations of IDEs adopt more and more of the feel of Smalltalk environments. Some people call this the “feels like dynamic” trend, and Xcode 4 together with the latest additions to Objective-C (I am talking of Garbage Collection and Blocks) is a clear step towards feeling like Smalltalk.

There are now two ways of getting Xcode: registered Apple developers can download it for free, if you’re not registered, you can purchase XCode in the Mac App Store for 4.99 USD or 3.99 EUR.

Smalltalk on iOS – again an option?

It seems like the growing demand in Android gadgets and the noise of App developers have finally made Apple rethink their rules (Press Release):

In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.

So it seems like it will be allowed to put packaged Smalltalk applications onto the iPhone, iPad (and maybe soon Apple TV???).

We would never say that Steve lost a battle or had to give in to the Mob, would we ;-)

Did I mention that both Squeak and Pharo run on the iPhone? Maybe this change may even motivate some Smalltalk Vendors to work in that direction.  This is surely good news for Esteban and his Mars/Deimos project and for John’s iSqueak work… But not only for Smalltalkers, but also Rubyists, Flash developers and so on…

[UPDATE] Daring fireball has some more details on what exactly changed. The whole “Objective-C,C, C++ or JavaScript only!” nonsense seems to be gone. Downloading code is still forbidden (which was to be expected and is no obstacle for many Applications). There are also some comments about the now publicly available guidelines for app approval.

Squeak on the iPad: Cool!

Bert Freudenberg has put up a short video of his port of the Squeak VM (based on John McIntosh’s port for iPhone) and Etoys onto YouTube.

It looks really cool: Multi-Finger gestures on this nice pad computer to let little race cars drive around. I am not sure I’d like to use the screen keyboard for coding in Smalltalk, but as an Etoys-based learning machine, this is really cool.

Now if only Apple’s policy on interpreted languages was a bit more reliable and transparent, we could invest in Smalltalk-based apps for the iPhone/iPad…

Great summary on how to deploy a Pharo-based application

Torsten answers a question asked on the pharo-dev mailing list and gives a great and short overview of what you need to do if you want to deploy a Smalltalk Application developped in Pharo Smalltalk.

It fits nicely for Squeak as well and is really a dense intro to deploying Squeak/Pharo as a stand-alone or a (Seaside-based or other) server app.

Read it here.

Can we risk investing in iPhone development?

I’ve been asking myself this question quite a few times already.

We have a few little tools that could possibly be of use to a wider raneg of users, and there are a few ideas about what we could possibly build. But is it worth the investment? Most of the stuff we have is implemented either in Smalltalk or Java.

Sure, it should be possible to port most of that to objective-C in a few days, even more so since we do have objective-C knowledge and experience form Mac development. The nature of iPhone OS makes the GUI stuff pretty straight forward, so we should be able to do a port.

But is it worth it? There even is the possibility of installing Pharo or Squeak on the iPhone and there even are a few Smalltalk applications in the app store. So why not simply do it?

Bevause Apple might decide to simply ignore your application and not let it into their app store. There are some respected developers simply giving up on iPhone development because of that.

But there’s more to consider:

There are so many mobile platforms popping up these days, each of them having their own SDK and primary programming language. Which one would be the most widespread for our mobile app? How much would it cost to write and maintain the app for two platforms?

I guess this technical  question will go away over the next 2-4 years. There will be no mobile platforms any more as we know them today. The mobile devices will be pc’s running a normal operating system like windows and/or linux or maybe even a “real” mac os. They will have added features specific for small screens and touch input, but there will be no differences in APIs or available frameworks.

So for now, we’ll simply not invest in building a mobile app, even though it’s a fascinating idea…. I will look into Pharo on iPhone for sure, but only for fun ;-)

BTW: Since Nokia’s Maemo seems to be a Debian/Linux derivative, shouldn’t it be easy to run Pharo on it? I guess I need to google a bit…. ;-)

[UPDATE] Of course someone has already taken a look at running Pharo on the iPhone. So life is probably a bit better for a Smalltalker than one might think at first glance ;-) Still there’s the question of whether Apple would accept an app built in Pharo…