by Cesare Rocchi

Unhappy software developers

Are software developers unhappy? Yes, slightly. Why? Here’s a study. They interviewed 2000+ developers. Unfortunately the sample is heavily biased towards male software engineers. It’s an interesting read, although the most frequent cause for unhappiness is “being stuck in problem solving”, which is a bit generic.

Continue reading →

Object-oriented programming and third party dependencies

One of the strengths of object-oriented programming is code reuse. Along the lines of: Organize your code in objects and pack your objects into modules. When needed import your module and inherit data and behaviour from the classes in the module. In the 90’s it sounded like the panacea to all the problems of software developers. To some extent it still is. In the meantime open source became huge, thanks mostly to GitHub, and we now have millions of libraries/modules/packages ready to be imported and reused in our projects.

Continue reading →

Which hacks do you ship today?

There’s a 20 year old temporary hack in the Linux kernel. If you don’t use an Amiga you are fine. How many hacks do you have in your code base? It’s funny how we are flexible in stretching the meaning of “temporary”. And yet we have to ship, because shipping is a feature. We are forced, wittingly or not, to choose which hacks (and sometimes bugs) to include in our apps.

Continue reading →

Programming languages and clay

My bias first: I build (and ship) products. Anything that slows me down along the path of building is a hurdle to me. This list includes: my computer is broken my DSL doesn’t work I am sick the compiler I am using is excessively picky the mental model behind the programming language I am using forces me to think too long Also some context. I grew up working with Lisp.

Continue reading →

You have to write code to delete code

I recently had again masons at my place. I took off the wainscot in our living room and the wall behind it was in a horrible condition. So I had a chance to see a mason making a new, smooth, coat on top of the old wall. The secret for a straight coat? Place a bunch of straight aluminum bars in key spots of the wall as reference points. Make sure they are tall as the wall itself and perpendicular to both the floor and the ceiling.

Continue reading →

A new Cement

As I have written before, I am fascinated by the similarity between software developers and masons. Let’s suppose you are the head of a chemical lab and you are creating a new cement. You think you have a good prototype and you are looking for some feedback. Who do you talk to? Architects or masons? I’d talk to masons, people that will have to deal with my product on a day to day basis.

Continue reading →

Blank canvases for kids

HyperCard didn’t try to teach you coding. It really didn’t try to do anything. It just gave you a blank canvas that you could do anything you wanted on. This had two advantages: You had to work hard to learn, and you also had to use your imagination and creativity to find solutions and build the things you wanted. Swift Playgrounds: Should we teach coding, or creativity? source When I learned programming I did it the same way, starting from a blank canvas.

Continue reading →

Lisp could have been huge

Lisp is the first programming language I learned. That’s why I liked programming since the beginning. Unlike some of my friends, my learning path looked downhill, at least at the beginning. In Lisp you are “free”. Its syntax is easy to grasp. You can write your own interpreter if you like. Functions as first class citizens are now a given in many programming language. In Lisp they were there since the beginning.

Continue reading →

Osteopathy and C++

I bet you’ll never find such an “alternative” title for a blog post :) My backbone has issues. I periodically schedule visits with an osteopath. He’s a doctor, that manipulates bones to unlock mobility of parts of the body and “reset” posture issues. During sessions we chat. He knows I make software. He once asked “do people still use C++?”. Honestly, really honestly, I didn’t want to chat about it but I rolled with it.

Continue reading →

Product Programmer

A few days ago I stumbled upon this Taxonomy of Programmers. It’s not exhaustive list but I fit pretty good into the Product Programmer category, especially on this: They want to think about the product I feel pretty uncomfortable if my task is “build this cog, here are the specs”. I kinda need to know how my work fits in, how that cog contributes to the machine.

Continue reading →

Mixed feelings on Swift

While writing the chapters in iOS 8 by Tutorials I have banged my head against the wall often, pretty much every beta release. I was really excited when Swift was announced. Excitement naturally fades, by design I’d say. It fades even more quickly when the real thing is far from your expectations. Today, I’d use Swift in an app if: it’s a new app it’s a small app it’s a product of mine Right, I’d not venture in Swift land for client work.

Continue reading →

Pages(1)