Greener grass

I ran across an interesting post this morning from Frans Bouma, of LLBLGen fame.  He is a long-time .NET developer who felt a bit complacent in the work he had been doing on .NET and ORM development. Frans decided to explore some of the recent cool technologies to see how green the grass was on the other side of the technology fence.

After I finished LLBLGen Pro v4.2 this summer, I fell into the usual ‘post-project’ dip, where everything feels ‘meh’ and uninteresting. Needless to say I was completely empty and after 12-13 years of doing nothing but .NET / C# / ORM development, I didn’t see myself continuing on this path.

I found myself in the very same place a few years ago.  Microsoft felt wrong, it felt boring. No, I didn’t know everything about .NET but I felt I had experienced everything there was about the part of the ecosystem that effected me.  I left .NET and haven’t returned but a piece of me does think back with some fond memories, like I left part of my life behind.

Frans did what so many do, pickup something that seems everyone is enjoying, in this case Go:

I already knew this of course when I went into this journey, so learning Go was, in hindsight, more of a ‘let’s do this, see where it leads me’ kind of thing than a real move to Go. After learning the language and working with the tools available I realized it wasn’t the world I wanted to be in. The main reason was that I develop and sell tools for a living, I’m not a contractor and Go’s commercial ecosystem is simply not really there. After my Go adventure I had learned a new language but nothing of what I needed to get past my problem.

Then try something else, Objective-C on OS X:

To learn a language and platform, it’s best to use it in a real project. Some time ago I had an idea for an app for musicians (I’m an amateur guitarist) on OS X. This was the perfect opportunity to learn a new language and platform, so I did the radical move to learn Objective-C with XCode, targeting OS X. I have to say, this was a true struggle. XCode was ‘OK’, but Objective-C was something I hated from the start.

In his case he discovered something in these other languages and frameworks that opened his eyes to something he could explore and use in .NET, where he ended up going back to:

My little journey brought me back to .NET without realizing it, to find back the love of writing code by finding motivation in an element that’s a core part of an OS I don’t use in my daily work. It opened the route out of the rabbit hole by showing a new path I could take without leaving my life’s work behind; on the contrary: it opened my eyes to completely new opportunities and ideas.

The reason this post interested me so much is because how familiar it sounds for me personally.  I seem to continually am bored lately with the technology I work with and I venture to try new things.  Trying new things, exploring unfamiliar territory is good.  It opens your eyes to something that may send you down an entirely new path.  It’s easy to stick with what you know, to not get out of your comfort zone but you miss out on many opportunities.

The post is a good read and I recommend you read it.

Getting Started Resources for Mac and iOS Developers

Are you just getting started with Mac or iOS development?  Maybe just trying to improve what you know?  Here is a great resource from Dave Mark.  Everything is covered including blogs, conferences, forums and official Apple documentation.

I went looking for a reasonably recently updated list of dev resources to link to from the article. Couldn’t find one I was happy with, then remembered that we included a pretty solid list at the end of the book Beginning iOS 6 Development. Since that list needed to be updated for the iOS 7 rev of the book, I thought, why not pop the list into a blog post. And here we are.

At its core, programming is about problem solving and figuring things out. It’s fun, and it’s rewarding. But, at times, you will run up against a puzzle that just seems insurmountable—a problem that appears to have no solution. In those situations, it’s good to have friends in high places. This post outlines some resources you can turn to when you’re in a bind.

So add Resources for Mac and iOS Developers… to you reference list and be sure to check out the post comments for some other great resources.

Dave also has a great list of developer tools as well, Dave’s List: Apple Dev Tools…


Palliative Symptoms Survey Hits the Apple App Store

I have been working diligently on a project for some time now and it’s finally available.  My company, Still River Software, received approval from Apple last week for Palliateive Symptoms Survey to help doctors and caregivers provide better and faster care to their patients.

Palliative Symptoms Survey is an application based on the Edmonton Symptom Assessment Survey (ESAS-r) which was developed to assist in the assessment of nine symptoms that are common in palliative care patients: pain, tiredness, drowsiness, nausea, lack of appetite, depression, anxiety, shortness of breath, and wellbeing There is also a blank scale for patient-specific symptoms.

The application is a native iPad application written in Objective-C with a back-end using Ruby on Rails.   Please read a little bit about the project on my company web site.

Is JetBrains appCode a Solution Looking for a Problem?


Sometimes when a company releases a new product I sit back and think if I would use it.  If not, I try to understand who the customer might be and the reasons they use it.  When I first saw the announcement for the new Objective-C IDE from JetBrains, appCode, I asked myself those questions.

As a user of Apple’s XCode IDE for writing Objective-C, I tried to imagine the reasons why I might use it and none came to mind.  I also tried to imagine who might use it and I couldn’t think of anyone.  OK, maybe there are folks out there who use XCode and hate it, they may use it but I think the market is far too small to consider putting efforts into writing an IDE to target those people.

InfoQ has an interview with Maxim Shafirov of JetBrains about the project and after reading the article, I am still scratching my head.  From the article, appCode features include:

Main features of the IDE are:

  • Smart editor with code completion
  • Opening and creating Xcode projects (including Xcode 4)
  • Integration with the standard Interface Builder
  • Running applications in iOS Simulator
  • Debugger with breakpoints, variables, watches and evaluate expression
  • Refactorings, e.g. ‘Change Signature’ and ‘Extract Method’
  • On the fly code analysis and quick-fix suggestions
  • Tight version control systems integration (Subversion, Git, Perforce and CVS)

    I don’t see a feature here in the short list which Apple’s IDE doesn’t include.

    A question I asked myself..why develop appCode in the first place?

    InfoQ: What drove the decision to develop appCode?

    Maxim: We at JetBrains admire what Apple has done to desktop apps and more generally to a consumer targeted software. They’re setting new interaction design quality standards. But this is not the case when it comes to developers software, in our opinion. So we see a great opportunity for JetBrains to bring its development tools expertise to this emerging market of developers, who know how a great software should look, who care about their productivity and code quality.

    Developers even need to have XCode 3 or 4 installed to use appCode:

    InfoQ: Do I still need XCode / the Apple development infrastructure to develop applications?

    Maxim: Yes. You need to have Xcode 3 or Xcode 4 installed. At the very least we need a platform SDK that comes with Xcode, the Interface Builder and device simulator.

    I have used JetBrains’ RubyMine IDE in the past and it is not free.  I don’t think other JetBrains’ product are free, so one can only assume appCode will not be free.  Why would I pay for something Apple gives me free, as a registered developer or $5 in the App Store?

    I had thought that maybe appCode would be developed to be cross-platform, like their other products, and run on OS X as well as Windows and Linux.  This would make it a really nice proposition for non-Mac owners but the dependency on XCode makes it unrealistic.

    In summary, appCode:

    • Is an Objective-C IDE just like XCode
    • Needs XCode to Run
    • Only runs on OS X
    • Is likely not to be free

    To be fair, I downloaded appCode and it looks nice, opens my XCode projects but I ran into issues trying to actually run the project.   It built but the simulator never loaded and ran.  I will probably wait for a future EAP build to try again.

    I realize appCode is only an EAP and not even beta at this point.  I’m sure things will improve and new features will be added but I’m not sure JetBrains has a winner here.  The XCode environment is the gold standard for Objective-C development and I don’t see so many problems with that would drive me to use an alternative IDE at this point.  I will keep an open mind but it seems JetBrains is trying to solve a problem that doesn’t exist.