Recently there has been a lot of talk about adding Generics to the popular programming language Go. Not only do I think this is a good idea, I actually think it’s a complete no-brainer! Go has been maturing at a rapid rate over the last few years and the Go team have recently started asking for user experiences to influence Go’s future. In my humble opinion, they only need to focus on one thing. Can you guess what it is?
Over the course of the past few months I’ve been using Go to implement a proof of concept program in my spare time. This was done in part to learn Go and to also see if such a program would work. The program itself is very simplistic and not the focus of this article but my experience of using Go is worth writing a few words. Go is shaping up to be a popular language for doing serious large scale work and a language created by Google is not to be sniffed at. With all that said, I honestly think Go’s design is a disservice to intelligent programmers.
This is an issue i’ve wanted to get of my chest for a long time. It’s been latently brewing inside me for a considerable amount of time and it’s starting to come to a head. The issue is with PHP and the total abuse of arrays. Whether this issue is an artifact of the language’s historical baggage or because PHP just attracts a lot of inexperienced developers is up for debate. My problem here is that arrays are nearly always used where objects should be!
In modern terms Piracy is the act of obtaining something while not paying for it. This is usually content that can be distributed digitally such as software and with the birth of the internet this allows anyone at any time to obtain those goods. But wait, isn’t that a good thing? Anyone, anywhere in the entire world being able to get a copy of your software? Of course this needs to be limited to paying consumers but what if the pirates provide a better service than the commercial entity that owns the content? If the distribution network and infrastructure is there why the hell not use it to distribute your digital goods?
A few months ago Jeff Atwood blogged again about the need for programmers to be good typists. In fact he has espoused sheer disdain over the years for all programmers if they were anything less than certified touch-typists. In November 2008 he wrote
We are typists first, and programmers second. It’s very difficult for me to take another programmer seriously when I see them using the hunt and peck typing techniques.
How do I love thee? Let me count the ways. I love thee to the depth and breadth and height My soul can reach, when feeling out of sight For the ends of Being and ideal Grace. I love thee to the level of every day’s Most quiet need, by sun and candle-light. I love thee freely, as men strive for Right; I love thee purely, as they turn from Praise. I love thee with a passion put to use In my old griefs, and with my childhood’s faith. I love thee with a love I seemed to lose With my lost saints, I love thee with the breath, Smiles, tears, of all my life! and, if God choose, I shall but love thee better after death.
Elizabeth Barrett Browning
What is it about programming? What is that thing that keeps me coming back for more? Why do i spend countless lonely hours tapping away at my keyboard into the small hours of the morning?
Recently a friend of mine ask me to design and create a small website for their fledgling business. Although slightly weary of creating such websites, he was a good friend so i agreed to do it free of charge. The business was something i am not familiar with and while nothing to do with technology i approached the project with enthusiasm and proceeded to gather information from him as i would any other client.
Now, this is what puts me off creating such websites: the information gathering stage. At first i asked him what do you want the site to do for you? He didn’t really know. So i asked him what content should it contain? He wasn’t sure. Not too surprising though i guess because he wasn’t technically minded and never owned a website before, so i suggested i should come up with something to start with then use that as a base to build on and amend as needed.