This post on Slashdot completely mischaracterizes a PDC panel discussion. The post seems to rely exclusively on this article from ComputerWorld which also has a questionable slant on the session. I was even taken in by this misinformation.
The CW Headline was:
Microsoft’s top developers prefer old-school coding methods
You can watch the session and decide for yourself here.
I watched the session and thoroughly enjoyed it. Here’s my rebuttal. Times for the quotes are in parenthesis.
I would agree with CW that the panel was “often humorous”. With the intro question “What problem is the most important that we face today”. Don Box said with a wide grin (3:20):
I spend every night wondering how I’m going to make developers fall in love with the database. There’s man-millennia worth of value in there that we keep wanting to put a prophylactic over so that we don’t get tainted by it.
This great Jim Gray quote related by Butler Lampson (7:50):
Transactions are like fairy dust. A Cobol programmer writes a piece of business logic. Its a sequential program, it does some relatively simple state transformation, and then you sprinkle transaction fairy dust on it, and automatically it becomes parallel, it becomes fault tolerant, and it becomes load balanced.
Jeffrey Snover had the audience in stitches unintentionally when he said (10:50):
Software tends to work when it works and fail when it fails.
Butler Lampson (26:16): “The net contribution of RPC to human welfare has been negative.”
Jeffrey Snover’s quote on managed code was much in favor (40:00):
Managed code is like antilock brakes. You used to have to be a good driver on ice or you would die. Now you don’t have to pump your brakes anymore.
Though when you read the slash/world articles it seems like he’s against it. Like most people he’d rather drive faster with less risk of dying. Or code faster with less risk of crashing. He’s not some old coot saying kids today have it too easy.
There were lengthy conversations on transactions, memory management, pointers, parallel programming, state, reliability, expression trees, etc.
When the text topic was introduced Don Box declared “Text f***g rocks!” in exaggerated glee (51:38).
The quote that CW latched onto was from Jeffrey Snover (53:20):
Graphical programming environments are usable when they are useless, but unusable when they would be useful… When there are five things on the screen, you can burp that out [in text]. But when there are 500 things, [graphical programming] is completely unusable. You zoom in and zoom out and you lose all context. I think it’s just smokin’ dope.
He’s not running down Microsoft tools here, he’s dishing on all Graphical Programming tools. Funny enough, WPF in Visual Studio has the least usable graphical environment, but the best text environment for creating graphics since the UI is defined in XAML, a type of xml like html and the IDE gives a lot of help when editing the XAML and the graphical representation updates as you edit the text. Working directly with the graphics is near impossible, but that’s ok since building graphics with text is quite workable. I don’t know any tool that can really help you with 500 graphical elements.
While this was a joke from Snover as noted by CW:
programming is getting so abstract, developers will soon have to use Microsoft’s in-air motion sensor game controller for the Xbox, dubbed Project Natal, to “write programs through interpretative dance.”
It was not an offhand joke or part of the conversation. It was in response to the question “What do you think we’ll be talking about in 5 – 10 years.” (57:20) In context it’s still funny, but makes a lot more sense.
I think the entire session went over the head of the reporter for CW.
Went to the .Net Meetup Tuesday night and had a great time. Plenty of interesting discussion and some laughs too. (All that and free pizza too). Highly recommended:
if (yourGeekiness >= myGeekiness)
Daniel Chait (my boss 🙂 led the meeting. The below info is mostly from Dan’s notes which he wrote on the overhead in real-time (I take credit for any errors or omissions). As you can see, if you didn’t attend, you missed a lot. These are mostly just the topics. Each one generated lively discussion:
PDC 2009 started today:
Microsoft “Micro Framework” open sourced:
(not including some stuff like Crypto etc)
Scott Hanselman had a podcast about it?
Azure going live in February (cloud services)
Cloud Computing : Compare Azure vs others
Vs Amazon EC2? Amazon gives you a virtual machine, whereas Microsoft gives you specific services (i.e. web, database, WCF services). Also cloud-based Pub/Sub model.
– For co’s & individuals
–Co less than 3 yrs. old, less than $1MM, private
– You get all Microsoft stuff basically for 3 yrs. free.
– Check out the “Program Guide” off the website for more details
– You get VS, SQL Server, and Blend, etc. to get started
– 3 year license for free
– Part of Office 2010 (was codename “Gemini”)
WPF Grid Controls?
– Using DevExpress (WinForms grid)
– Infragistics – not much new there. tech support pretty good. glaring bugs in new versions. difficult upgrading between different versions due to problems with style upgrades
– WPF Toolkit has a grid control: very basic, missing a lot of features (i.e. Filtering etc)
– XCeed well regarded. Been around the longest, full featured. Cons: tech support iffy. Licensing may be problematic – issues when you convert from demo to licensed version.
Data Direct products:
– XML converters
– Database connectors
– Difficult licenses
.NET Framework v4?
– Tasks, parallel stuff – http://en.wikipedia.org/wiki/Parallel_Extensions
– WorkFlow changing a lot in V4 as well
– Documentation is very minimal at this point
– Maybe some good PDC content coming out? i.e.
– Maybe some channel9 stuff to find?
– Hello Workflow 4
What do people actually use WF for?
– Sharepoint development. Basic stuff.
Architecture in .NET Question: Model Approach to Database Access?
– ORM Software: Developers make clean code which makes horrible queries
– Call Stored Procs from software: nice queries but ugly to call
– Experience: Easy to use, decent performance but on a simple app
– In ALL cases, need to analyze queries in detail, can’t just rely on the ORM to sort it out
– Microsoft Entity Framework 1.0 – not full featured enough
– New one coming out
– Linq2SQL used a GUID(?) which killed query caching
– NHibernate – “granddaddy of them”.
– Cons : “Has a case of the Java’s”. XML Configuration, FactoryFactoryFactory…, etc.
GRAND CLAIM: Try to avoid open source:
– IF something is just a small, weekend project on CodePlex, probably worth avoiding. But, like, …
– NMock, moq, RhinoMock
– Log4Net, nlog
– log better, easier to configure
– Fluent NHibernate
– The MONO project
– Need to treat it more like “code” than a “product” from a vendor. Actually understand the code don’t just consume it.
– Open source projects are driven by enthusiasm
– JQuery plugins for example
One user mono in production spoke up.
– Follows the Pareto Principle – for example doesn’t use code signing
– Implementing silverlight (i.e. Moonlight) which works on the iPhone
– Castle project – ActiveRecord implementation – says it’s at least as good as say RoR – just does property setting in code, built on top of NHibernate, scaffolding, etc.
The Munawar principle – 20% will be good, 80% will be garbage
FBK #2: Sturgeon’s Law – “90% of everything is crap”
NCover – code coverage tool
“Where’s my LINQ2 Mainframe?”
SubSonic – open source framework for stuff – http://www.subsonicproject.com/
– “A Super High-fidelity Batman Utility Belt that works up your Data Access (using Linq in 3.0), throws in some much-needed utility functions, and generally speeds along your dev cycle.”
[long discourse about non programmers. in short, they are inconvenient.]
AJAX / ASP.NET – still buying into it? As opposed to WPF / Silverlight / Flex?
– Corollary – as a novice, what should I be getting in to
– Corollary 2 – if I want to get out of ASP.NET and get into WPF and realtime .NET desktop apps, how do I do it?
– Endless debate about Silverlight vs Flex
– Silverlight can be applied-ish to WPF knowledge
– Flex VERY easy to learn
Silverlight vs WPF?
– Third party controls maybe a bit better in WPF at present
– If heavy desktop integration, use WPF, else Silverlight by default
– Silverlight Out of Browser – still in the sandbox but just looks like the browser is missing.
– Databinding in Silverlight not nearly as good as WPF. A bit better in 3.0 but still not great
[spontaneous demo of Castle ActiveRecord]
Good localization solution? Want to translate our site into multiple languages….
– Sharepoint can do some of this but not ALL languages
– New version of Sharepoint (2008?) does this
– Beware of language specifics (i.e. German has long words)
– Maybe any content management solutions that exist?
– How to handle caching?
– Generate static content or regenerate on the fly every time?
– See http://latino.msn.com/ for more