This is a good read. I’m happy to see Smalltalk mentioned a few times!
I just wanted to mention my app for checking your Virgin Mobile Beyond Talk minutes. The app is called Minutes Checker Virgin Mobile and it is available via the Google Play app store. Tell all your friends that use Virgin Mobile USA. Thanks!
Lately, in my free time I’ve been working on learning how to build Android apps. This is mainly for my entertainment and so I can learn the Android SDK better. I want to be able to build real apps that I can monetize either through ads or purchase. To get there, I decided I should build some simple apps first. My first app is called Notes Worthy. It is a simple notepad-like app that lets you save a list of text notes. There are hundreds of these types of notepad apps in the Google Play Store but my version is very stable, pretty small, does just what I want and no more. It is very fast to add a note and not filled with useless features that complicate it. Feel free to try it. You can download it from my personal site or on the Google Play Store.
I wrote a big build script in Rake. Rake is make for Ruby. The syntax is basically just Ruby. Coding in Ruby is pretty easy.
If I had to choose one, it would depend a lot on the environment I was in. If everyone was already used to using Ant then I’d probably go with Ant. Likewise for Rake. If neither was used and we were starting from scratch, I’d pick Rake for sure.
I’ve been using Ruby now for over half a year so I feel like I have a big enough time sample to be able to roll up my impressions of Ruby from a Smalltalker’s perspective.
Ruby the language was easy to learn. I knew Smalltalk, Java, C# and various other languages. The syntax is like Java. The concepts are like Smalltalk. It wasn’t much of a transition at all.
The IDEs are bad. Working in a text editor is skinny but the different between skinny and naked isn’t much. I also use Eclipse with the Aptana plugin loaded and that makes Eclipse only slightly better for Ruby development. Senders, references, implementers are all missing. File search feels like a step back to the C# style of development. Ugh.
Documentation is good but… I miss using the code as documentation like you do in Smalltalk. I don’t want to go look at the Rubydoc website to see how to read a file. Instead, like I would in Smalltalk, I want to look at the implementation of File.new() and then find senders of it to get examples. All in the same code. Still, the documentation is pretty good.
Scripting is easy with Ruby. It should be but that doesn’t always mean much. In Ruby’s case, it really is easy to write scripts without a big IDE in your way.
There are too many ways to do the same thing. One of the things I hate most about Ruby is that there are several ways to do everything. This makes it easy to write code the way you want. It also makes your code messy as different developers write different sections of the code using completely different syntax styles. Yuk.
Libraries in Ruby are similar to Smalltalk or Java. Rake (like make). UnitTest (like SUnit or JUnit).
Debugging in Ruby is terrible. I haven’t found a interactive debugger. Debugging via print statements is like working 20 years ago – it works but not nearly as well as using a good interactive debugger.
An outliner is a type of tool that makes it easy to organize information in a hierarchy (like an outline). I have been coding, using and trying new programs that act as outlines for years.
Long ago, I created a “workspace organizer” inside VisualAge Smalltalk. It was a classic 2 pane outliner (left pane showed the hierarchy, right pane showed the text contents of the selected node).
When I started working on jobs and projects that didn’t use VisualAge Smalltalk, I found Treepad Lite. It is a simple, free outliner that works very nice. But somewhere along the way it began having problems pasting. If I copy something and paste it and hold down the ctrl-v key it will paste and then ring an error bell a few times and then paste again. Sometimes it seems I cannot paste at all.
My friend uses a program called Vault. It is not free but it seems OK. I tried it and found that I liked some features and didn’t like others.
I found NoteCase not long ago and started using it. It does have a few problems .. some annoying and some scary (loss of work) but for the most part it is working for me. I don’t love it and just found out that it is no longer under development – so the 2 bugs I just reported will NOT get fixed.
I looked at KeyNote but it too is no longer under development.
I just tried it for a few seconds. It doesn’t let you embed links in articles and it saves the file as some RTF type format so your data is basically locked inside. I did like treepad line for this feature.. it instead would save data in ascii text so you don’t lose anything.
Is not an outliner.. and I want something to keep notes in a hierarchy of lists because my brain seems to like that.
JreePad is a free java implemented version of treepad. It is missing features.
Maple looks nice but doesn’t seem to have file attachments or links. It is not free.
Mempad is like JreePad.. small and simple but without many features.
SEONote is free but it feels a bit slow and has too many features. It also saves files as some RTF type format.
Feels a bit slow and has too many features again. It does have a free version.
So, here I am.. still looking for the right outliner software. I guess I’m going to stick with NoteCase until I find something better. I’m willing to pay for it (<$30) but it has to:
- save the file in a readable format – not RTF. this way the file would be readable from a text editor and searchable with other tools.
- support linking to file and urls
- would be nice if you could embed images (and it would save them in the file as ascii .. like uuencoded or something)
- paste MUST work every time
- would be nice if it would produce backups on every save (keep most recent N)
- formatting for fonts – size, color, bold, italic, etc
- formatting for lists
- formatting for indent/outdent
- small footprint
- can run from a thumb drive
- optional spell check
Does anyone have any other outliner suggestions that I should try?
Maybe I’ll just write my own..
I wrote a post about how I’m using Squeak and Seaside earlier today and already I’ve had a couple comments from people in the Smalltalk community.
I am working in Smalltalk again (for the last year and a half now) so it is easy to forget what it was like to use other tools and languages. Recently some of my old coworkers were laid off from their jobs and I was in contact with them about learning a different language (say C# or Java). They were interested in making their resume more appealing to local employers. These discussions reminded me how much I love Smalltalk.
With Smalltalk, the tools are great, the language doesn’t get in the way or fight you, simple things are very simple and hard things are appropriately hard, source code control systems are awesome. You work with a feeling that anything is possible – even the impossible.
Happy Holidays Smalltalkers!
Google is running an AdWords ad for “Smalltalk Job“. It is for a Java job but I thought it was interesting that they are targeting Smalltalkers with the ad. The job posting doesn’t even mention Smalltalk.