Sat, Jul 12, 2014, 1:56am A Big Year for Programming
Programming
S
o 2014 has turned into an unexpectedly big year for programming for me. As an Apple developer, it's obviously been affected by Swift's arrival, but I was already in the middle of a lot of new projects, making for a crowded learning schedule. I've sort of grouped them into different areas: scientific, functional, parallel and Mac/iOS-related.

And I'm dabbling with going back to blogging. If you find this interesting and are reading, thanks! I'll try to keep things interesting.

In the scientific group, I've been becoming quite fond of coding in Julia, and even attended the first-ever JuliaCon. The conference was very inspiring and humbling, but mostly got me excited about starting new projects in computational math and physics. I have been doing a fair amount of SciPy, and Julia is a very similar language in a lot of ways, and even works great working back-and-forth with Python. Happily, you can use the IPython notebook environment for both languages, something I didn't know about until the conference.

Oh, and I almost forgot, I ended up buying a copy of Mathematica 10, so that I can have a handy symbolic system to attack programs that I wouldn't want to have to program from the ground up. It's been a while since I've done any serious Mathematica, but it feels about the same as it's always been, and it can be very useful, if expensive. (It's worth mentioning that Wolfram still uses an ancient sales model that feels terribly out of date in 2014. One computer per user, limit of 4 cores. Kinda insulting. They don't earn any good will from me as a company so far.)

On the functional side, I had started learning Haskell last year, purchasing the fun book by Lipovača. I was following along with the Coursera course on Scala, not to learn Scala per se, but to following along and do the homework in Haskell. Then Apple drops Swift on our laps, which is not a functional language, I realize, but does allow a great deal of functional-ness to be expressed. In fact, I've been able to do almost all the Scala homework in Swift without incident. (Caveat: One cannot currently nest a recursive function within another function like you can in Scala, but I'm hoping this gets fixed.) So now I'm doing the funny dance of following a course on Scala and doing all the homework in both Haskell and Swift. Good for the brain.

Parallel programming, however, is what gets me really excited lately. It started with some CUDA, but then I quickly moved to OpenCL, even giving a talk on the subject at a CocoaConf in Chicago last March. I'll be giving another in Denver at 360iDev in late August, and then at another CocoaConf in Seattle the following month. And again Apple has disrupted by otherwise straight-forward study by releasing their Metal shading language, which is what I'm knee-deep in currently, trying to figure out what's going on. I'm *not* a GPGPU / parallel computing expert by any means. I'm just willing to work at it until I can become productive. Mostly I find this stuff fun, in some odd masochistic way.

Ok, enough typing for my 1st blog post in quite some time.

  • Carolyn (Mon, July 14th, 2014, 6:31pm UTC)
    Welcome back Jeff!

  • Jeff (Mon, July 14th, 2014, 6:49pm UTC)
    Thanks, Carolyn! (And I realize this blog site needs a CSS overhaul when I get some time for that.)

  • tomek (Thu, August 28th, 2014, 10:12am UTC)
    Jeff,
    Did you tried already Mac without NIB programming in Swift?

  • Jeff (Thu, August 28th, 2014, 4:35pm UTC)
    Hi Tomek, most of the swift I've done so far have been non-nib command-line programs.

  • tomek (Fri, September 19th, 2014, 1:36pm UTC)
    Jeff,
    I managed recently to write full-featured Cocoa Application in Swift without any NIB. It was not easy, among other things because Apple changed some Swift syntax details — the language is still in beta…

  • Jeff (Fri, September 19th, 2014, 5:29pm UTC)
    Very nice, Tomek! The language is quite a moving target these days.

Leave a comment