For most of my life, I viewed Macs with great disdain. They had little software, and I just didn’t see them as particularly useful as a developer. My first experiences with computers were all with Unix machines — and I loved them. The ability to program them with built-in tools as well as their stability meant they were all around great machines. But as a home user, I didn’t have the luxury of a Unix Sparc machine. Like most home users, I was forced to use Windows and grew accustomed to the issues they always have — registry problems, boot problems, driver problems, on and on the list goes. After a while, I got tired of the endless problems with my Windows machine and, when Linux became a viable option, I switched my home computer to RedHat. I got the stability I wanted, and substantially fewer problems than my Windows computers presented. But, there has always been one big problem with Linux – it doesn’t always have the software you want. For example, you can’t run Photoshop on Linux. When I started doing iOS development at work a couple years ago, I had to use a Mac, and I fell in love immediately. The stability of Linux as well as most of the same command line utilities, shell scripting, and the addition of an excellent graphical interface made for an amazing user experience. Even better, most of the software I want to use is available on my Mac – the Adobe Creative Cloud, Android development tools, Java environment, and Unity. In addition, most of my favorite command line tools are there including C, C++, Python, Shell, and countless others. It truly is the best of both worlds AND it’s remarkably stable. That doesn’t even mention how lightweight a MacBook Pro is, it’s amazing battery life, or any of the other reasons I use a Mac. I don’t look back at the Windows world. While I often need to use Windows for development (Visual Studio projects, for example), I do so while sadly longing for my Mac.
As I start my blog, I thought the first thing I would write about is some of my favorite technologies. As a tech guy, I have experimented with a variety of technologies throughout the years. Some have been wins (Java, Unity, Docker, REST), and some have not (Delphi, IIS, SOAP). What are some of the technologies that really stand out to me? First, I love Java. The fact that I can write web applications as well as desktop applications that will run anywhere is amazing. I used to write C/C++ code, and while the promise of write once run anywhere is there, your mileage will vary. Java actually delivers flawlessly. The fact that Google chose Java for Android was just icing on the cake. Second on my list is Unity. For 3D game development, nothing is better than Unity. Not only can you create awesome 3D games, but you can do so with a modern, easy-to-use language (C#). In addition, Unity can export games to just about every platform imaginable including various consoles! Third would be the Adobe Creative Cloud. I must admit I am a relative newcomer to the Creative Cloud, but their tools are amazing. I doubt there is any creative endeavor in the digital world that their products won’t work to create. Not only is the breadth of their products amazing, each individual product is an industry leader – Photoshop, Illustrator, and InDesign are best-in-class products. There are lots of other technologies available, but these three represent some of the best tools I believe the IT world has to offer.