Dr. James McCaffrey is a busy guy. To begin with, he works for Volt Information Sciences Inc., where he manages technical training for software engineers working at Microsoft headquarters. He's also a contributing editor to MSDN Magazine, writing the monthly "Test Run" column. In addition, Dr. McCaffrey is a speaker at the upcoming VSLive event in Las Vegas. His discussion had the coolest title, which I wanted to dig into a little further. He also has decades of development experience, so I thought it would be a good time to ask him a few questions about development, Visual Studio 11 and more. We had an email chat, and here's what he had to say.
Your "Chalk Talk" has the most intriguing title at VSLive ("Particle Swarm Optimization"). Can you tell us what that will cover?
JM: Particle Swarm Optimization is an artificial intelligence technique that models the behavior of groups such as a swarm of insects. PSO can be used to find the solution to a numerical optimization problem in situations where there is no effective traditional technique.
How can understanding this topic help a typical developer?
Particle Swarm Optimization is particularly useful when trying to harvest meaningful information from huge data sets such as log files. Also, many developers find PSO just interesting in its own right -- sort of geek entertainment (in a good way).
What are some products you've helped Microsoft develop?
I am very proud of the work I contributed to early versions of Internet Explorer. Even though the Internet was primitive at that time, we knew we were working on technology that would help change the world. I'm currently doing some work at Microsoft Research that has the potential to be just as important.
What do you like best about software development? Least?
The one aspect of software development I like the most is that it involves constant learning; new problems and new technologies for solving these problems emerge continuously. I can honestly say there aren't many things about software development I don't like. Even testing and debugging are enjoyable in a way.
Have you had a chance to play around with Visual Studio 11? If so, what are your initial thoughts on it?
I took a first look at VS11 just this week. I'm amazed at how many new things there are in the tool itself and the Framework 4.5. I'm particularly interested in seeing how VS11 enables developing applications in the Cloud through Windows Azure. My first impression is that VS11 will make developing Cloud apps much easier than it is now.
You taught programming for many years. What would you say was the hardest thing for your students to grasp?
It may sound trite or obvious, but when I was teaching, pointers seemed to be the make-or-break topic for freshman CompSci students. Students who really grasped pointers were able to master all the more advanced topics.
What do you feel is the greatest value of VSLive?
At VSLive, I love getting the chance to learn about all kinds of interesting new Microsoft technologies, and I enjoy the opportunity to chat with the speakers and attendees from all parts of the US (and other countries too). When I go back to work after VSLive, I feel re-energized and can often immediately apply some of the things I learned to my work.
Posted by Keith Ward on 02/25/20122 comments
Want a free Windows Phone? If you're a West Coast-based developer writing apps for that platform, you're in luck. Microsoft's Daniel Egan has a limited supply that he's giving away, according to his blog.
So, what do you do if you're a Midwesterner, Southerner or non-Leftie? Egan says it may take some more work to get your phone, but you may still be able to score one of the devices. If you just want the phone and aren't directly interested in building apps for it, you won't get one, Egan says.
This is more evidence of Microsoft's intense push to grow the app ecosystem around Windows Phone, which is likely to determine the phone's ultimate success. And it's smart; I'm a big fan of Windows Phone, and also want iPhone and Android to have some real competition (disclaimer: I do not own a Windows Phone, but I've used several).
But you can only get one, as they say, while supplies last.
Posted by Keith Ward on 02/22/20126 comments
Telerik recently released its "Platform Guidance for Microsoft.NET", and it's worth a read. It's a short-form, condensed guide to the six types of applications that most .NET developers build, and advice on which .NET technologies are the best fits for each type of app.
What I like about it is that it's an easy read (always appreciated for those of us with lots to do), and there's very little "...and here's how Telerik's award-winning products can help you" markitecture in it. In fact, there are only a few references to the company in the document itself, so it doesn't read like a product brochure. The advice is spot-on, and although somewhat basic, still worth your time.
A few nuggets of interest that I pulled out of it:
- The guide lists Silverlight as the top choice for building line-of-business apps, but adds a warning:
"Microsoft has slowed its investment in evolving the Silverlight platform. When evaluating Silverlight, extra care should be made to ensure the platform as it exists today meets the requirements of a project."
It's comforting to hear that Silverlight is still a recommended technology, even if it does come with a caveat.
- WPF is still the choice for rich, beefy, custom Windows apps. But it wasn't recommended for any of the other five scenarios.
- For mobile sites, Telerik recommends ASP.NET MVC and HTML5. In other words, HTML5 has you surrounded; assimilate or die.
Note that Windows 8, still in pre-beta when the document was published, didn't get any recommendations; Telerik said it will update the document in time to reflect that.
Posted by Keith Ward on 02/21/20121 comments
At Visual Studio Magazine, we're big proponents of unit testing as a means of writing better, more efficient code. Yes, that can come under the heading of "Duh!", as in "Duh, Ward, that ain't exactly breaking news, is it?"
True though that may be, it's my suspicion (based solely on anecdotal evidence, it must be pointed out) that many, many developers don't do it as a regular practice. I'd suspect the reasons are fear of the unknown, or the inertia we all experience when it comes to changing our routines.
But if you're not doing unit testing, you're seriously slowing down your productivity. That's according to some numbers that came across my desk (OK, monitor) in a press release from Typemock, which makes unit testing products. According to Typemock,
Over 50% of the largest European banks and over 35% of global leading financial institutions consider unit testing critical
Now, aside from the spin that will naturally be applied to those figures, they're still pretty significant. And it backs up what we've been saying for years now -- that unit testing saves time, which of course saves money. How much time? Well, the release estimates a 70-80 percent reduction in debugging time. Again, I'm not sure that most developers are seeing quite that level of time savings, but maybe some of you are. I'd love it if you unit testers would give me some feedback related to this: how much time do you save over your non-unit-testing days?
I wonder if the new emphasis on time-to-market that's been spurred by the explosion of mobile development is leading to a similar uptake in unit testing; I suspect it's having a large impact in that realm. Again, let me know.
If you're not using unit testing, I'd also be interested in hearing why.
Posted by Keith Ward on 02/07/20127 comments
"...there will be no MIX 2012." And with that, Tim O’Brien, Microsoft's general manager for developer & platform evangelism, let the air out of the balloon for many of the devs who look forward to MIX like no other conference.
O'Brien listed a number of reasons for killing off MIX after a very successful five-year run: that Web development shouldn't be seen as a separate undertaking from standard Windows development; that developers, reporters, analysts and tech bloggers were confused about which event to attend; and lastly, that Microsoft's army of software engineers have too many other duties to take time out and prepare for a conference.
I'm sure all the reasons have some degree of validity. But, frankly, even adding all of them up doesn't warrant cancelling a show, in my opinion. All the problems could be overcome.
As to the first reason: I don't know why breaking out Web development as a separate conference means Microsoft has somehow muddled the message. If you're an ASP.NET developer, this was probably your No. 1 show to attend, given its focus. This is a bad thing how, exactly? And does this mean Microsoft would not consider, for example, a show focused solely on mobile development with Windows 8/Metro? Couldn't one use exactly the same argument?
As to the confusion among the masses, I'm not sure Microsoft is giving its audience enough credit. I believe we're all big boys, and can figure out for ourselves which shows have the most value. Choice is good; and the more choice in conferences, the better. The ones I didn't think were for me, I didn't go to.
Finally, the time it takes away from engineering: It would be my guess (and it's *only* a guess) that this is the primary reason for the cancellation. There may have been lots squeaks from the engineering wheels, necessitating the grease. If that's the case, I'm a bit surprised Microsoft didn't order its engineers to cut back on other shows instead, and keep MIX in the, uh, mix. And, of course, those engineers still have to prepare for TechEd, BUILD (if it continues under that brand), and other shows. Why is it different for MIX?
But MIX has (whoops, had) value beyond just the technical knowledge it imparted: it was part of Microsoft's brand, got consistently strong press coverage, and helped raise the profile in an area of weakness for the company. In many ways, Microsoft is still seen to some degree as a legacy company that makes heavy software for desktops and servers. MIX was more of a cutting-edge conference in my mind, more forward-looking in its topic coverage. And it could easily have transformed into a Web/mobile dev show.
In the end, though, MIX is gone, just like PDC before it. The BUILD conference last year was a huge success; maybe that picks up the mantle. But I can't say I'm not a little disappointed, and saddened, to see the end of a great show.
Am I off base here? Will you miss MIX, or do you feel it was time for it to go? Let me know via email or in the comments below.
Posted by Keith Ward on 01/25/20120 comments
Well, if Windows 8 doesn't
take off on tablets, it won't be for lack of effort on Microsoft's part. Redmond is doing everything it can to entice developers to write software for the new OS, set to hit beta
next February.
I've already reported on the Marketplace Test Kit, which will let you know if your app conforms to the Windows Store before you ever submit it. Now, in another effort to one-up Apple and Google (but primarily Apple, I suspect), Microsoft is going right for the throat, offering devs a bigger slice of the income pie. In this blog, the company says that once your app hits $25,000 in revenues, you'll get 80 percent, rather than 70 percent, of the profits from then until eternity.
That could result in a windfall if your Windows 8 app is the next Angry Birds. Of course, it's well known that most apps aren't huge money-makers for shops; I wrote about that a few months ago for a sister site. Still, it's better than what you get from Apple or Google, which offer a flat 70/30 split, and it might convince some developers to at least give it a try.
Microsoft is also holding a "first apps" contest for Metro-style apps. The eight winners will have the first apps in the Windows Store when it goes live, and get some other nice prizes. There's only a month to submit your app, so get cracking if you have an idea.
In short, Microsoft is being really creative in its ways to lure developers to at least consider the benefits of Windows 8. And judging from what I saw at the BUILD conference in September, lots of you will be at least trying it out.
Posted by Keith Ward on 12/08/20110 comments
It's clear that brand loyalty still rules among developers. Appcelerator and IDC published the results of a
survey that shows a sharp upswing in interest for Windows Phone 7 app development, and ties that surge to the Microsoft/Nokia partnership.
The press release spells it out:
"Windows Phone 7 separated from the pack to become the clear number 3 mobile OS this quarter. The OS climbed 8 points to 38% of respondents saying they are “very interested” in the platform -- the highest ever for Microsoft."
"Highest ever for Microsoft" -- think the folks in Redmond are excited to see that? Those figures push Microsoft into the No. 3 mobile OS category in terms of developer interest, behind iPhone and Android. The loser here? BlackBerry, to no one's surprise, which continues to edge toward the cliff like the German tank in "Indiana Jones and the Last Crusade". If you're a RIM developer, it might be time to start examining your options.
In the meantime, the Nokia deal appears to be everything Microsoft had hoped for, and more. The survey reports that the spike in Windows Phone 7 interest is directly due to the Nokia marriage, with 48 percent calling it the primary motivating factor. Those are startling numbers. When the deal was announced, it appeared to be a risk for both companies at the time; and, in fact, it was. Nokia essentially gave up on Symbian at that moment, while Microsoft teamed up with a phone maker that was going nowhere fast, with no compelling offerings in the smartphone market.
It now looks, at least initially, that a move some saw as desparate may bear abundant fruit. For Microsoft-focused developers, the takeaway is that building apps for Windows Phone 7 is now a safer bet. You know how it works: more apps for a smartphone generally leads to a more popular phone, which leads to more apps, which leads to...
Posted by Keith Ward on 11/14/20110 comments
My December print column, called Frameworks, is about Microsoft's
Small Basic programming language, and how it makes it easy for kids as young as 10 to learn the basics of coding. I wanted to expand upon this a bit and point out that Microsoft has gone further, and put a lot of free resources online for teachers.
One site with a lot of promise is Teaching Kids Programming. It's 14 weeks' worth of software that teaches principles in bite-sized chunks. All the material is free, and there are videos which demonstrate using each of the chunks, which they call "recipes." There's some software to download, but the system requirements are minimal, and most homes and schools should have capable computers. The key is that the teachers (whomever they are -- parents, teachers, older brothers or sisters, etc.) don't need any programming background to teach the lessons; everything they'd need is provided. The site features step-by-step guides, including quiz and homework ideas.
One caveat is that the sites I've seen aren't updated very often, leading me to wonder if they're being orphaned, or if there's just nothing to update. The Small Basic blog, for example, was last updated more than three months ago, and a question on the Teaching Kids Programming site about the recipes not compiling was asked more than two months ago, with no response. Yo, Microsoft -- if folks aren't going to be helped when they have problems, they won't come back.
Still, the evolution of Small Basic and the teaching tools available are encouraging signs. We should be exposing children to software development at a young age, to spark their interest -- waiting until high school or college may be too late for many of them.
With Steve Jobs gone and Bill Gates out of the loop, it's time to start raising the next generation of developers who could change the world. Let's get going.
Posted by Keith Ward on 11/08/20113 comments
OK gang, this is a personal request. I've found in my time in the dev space, that you folks are some of the most engaged readers I've seen in my journalism career. So I'm reaching out to you today for help.
A good friend of mine is struggling to find a job in this economy. He's quite talented -- a good mind (math major way back when) and a quick study. He's also a very hard worker, and really personable. In fact, his situation is like so many others out there; downsizing continues, companies aren't hiring, and the current outlook is bleak. He's employed right now, but doesn't expect that to continue. And "employed" in this sense means he has a job, but it doesn't pay the bills.
Because of those things, he wants to learn development, and I'm fully convinced he'll be a great developer. The question now is how best to help him get there.
He has a wife and kids, and can't go to school full-time. He can study and learn on a part-time basis only. He has no programming background, although he does know a little HTML and is very comfortable with computers. He also doesn't have much money to spend on education and training. He's willing to do whatever it takes, however, to learn this field.
What would your recommendations for him be? Should he get certified and look for an entry-level job? Should he buy some books and just start coding, write a few programs, then offer himself to employers? Should he concentrate on a specific area like Web or mobile development? In other words, where do you start, if you're starting from scratch?
If you're an employer, what would your recommendations be to someone in my friend's place? What would make someone like him hire-able by your company? How much do you care about a certification vs. a degree? What should my friend have accomplished before he interviews with you? My friend knows he'd start at the bottom, and he's willing to.
Let's see if we can help my friend out. If we can, I bet that we'll help others out, too. Please send your requests to me directly, or post your thoughts and advice below.
My friend and I thank you.
Posted by Keith Ward on 10/24/20118 comments
I've posted a new video blog today, discussing how the world might be different if Steve Jobs hadn't existed. I find it fitting that I read about his death on my iPad. R.I.P., Mr. Jobs.
Posted by Keith Ward on 10/06/20113 comments
Today marks the launch of a new feature on the Web site: a video version of OnWard and UpWard. I'm doing this for a couple of reasons:
1) The Web's multimedia capabilities give the ability to present content in different ways, including video. If we restrict ourselves to just the written word, we're missing some of what it can offer.
2) I have a passion for video and filmmaking. This lets me combine several areas of interest, and bring you something new.
Note that this doesn't mean I won't be writing the regular blog now -- not at all. I'm just expanding my horizons beyond text-only communication.
Please let me know if you like this by commenting below, or emailing me directly. I'll be doing more in the future, and want you coming back -- let me know how I can make these better.
Posted by Keith Ward on 09/27/20110 comments
Anaheim, Calif. -- Here are some interesting tidbits that came out of this morning's Build keynote presentation that caught my attention.
- I was very impressed by Windows 8's limited resource usability. One demo had a three-year-old netbook loaded with both Windows 7 SP1 and Windows 8. According to Task Manager, Windows 7 used 404 MB RAM and 32 processes; Windows 8 used 281 MB RAM and 29 processes. Microsoft has learned that bigger isn't always better.
- The boot times for Windows 8 are staggering. The OS loaded in under 10 seconds on both a laptop and tablet. Wowzer.
- As with all demos, take these numbers with a grain of salt. They'll likely be highly optimized, to make people like me go "oooh" and "aaahhh". Which I did.
- I really liked Metro's ability to dock apps at the side of the UI. My iPhone and iPad can't do that type of multitasking. Would love it if they could.
- One company is holding a "Recruitment Party" tomorrow night at the show. Unemployment may be more than 9 percent nationally, but not for developers.
- Not much talk of Silverlight. At all. Hope there's more coming. It wasn't ignored completely, but not highlighted either. It looks like it'll be easy to port it to Windows 8 -- one demo showed a Silverlight app being converted to Windows 8 with the addition of something like 20 lines of code -- but from what I saw, they didn't announce much to move it forward as a technology. That may change over the week, though, so stay tuned.
- XAML will be easy to convert as well. According to the speaker during the demo, "It's mostly namespace changes" and different "using" statements. Really easy -- at least for the demoed apps. Again, see the previous point about optimized demos.
- Once again, I point out with no bitterness, journalists ARE NOT eligible for the free tablet giveaway. Oh, well, guess I'll have to struggle through with my iPad 2.
More Windows 8/Build coverage from VisualStudioMagazine.com:
Posted by Keith Ward on 09/13/20111 comments