Response to Waylon: student developers like features

Hi there, thanks for the reply.

Like I said in my post, whether we’re developers or CIO’s (now or in the future), we should know what the industry is doing. I have Slashdot on my rss feed, as should everyone else (well, if you want to know what’s happening outside / anti – Microsoft) (You can also do the whole MSDN blogs rss feed for internal MS news).  By the way, I sit on both sides of the scale, I’m both a developer and a managing director for a software company.

Also, I’d be concerned if any of us were in the position of investing big money into servers at our age/current position in life. What I think this means is that we, as students, should be sold on the features of the platform, rather than its stats. I understand that there are people making decisions on big cost servers, and they do need the information you’re talking about, but students?

Why? Because students are sceptical – why trust stats from someone trying to sell you that thing? I would not try to do this at Massey – there were many people who left feeling ‘bent the wrong way’ – and none the wiser for it. I think in this situation we could have left feeling positive and excited about the products being advertised.

What does this represent? A lost opportunity. I was talking to a senior lecturer at Massey today, and he said when he was at one of the big Uni’s in the states back in the early 90’s, everything was Microsoft, because the software was cheaper than the competition (IBM and Borland mainly). People were using Microsoft, and the resulting years had many competent windows developers due to it.

We can’t do that now, and as you’ve mentioned in your blog, there is Linux, Apache, MySQL, PHP, Java, python, etcetera etcetera out there, and ok, based on who’s giving the stats, are basically free, with huge communities around them. Microsoft can’t really compete with that forever, and universities are huge beurocracies (according to the lecturer), so asking for any money for resources takes months. Resources in this instance means anything needed for development, not necessarily MS stuff in particular. This means they take the path of least resistance, which is the non-MS route.

How do we change this? What Massey has mentioned to me is that they want a VS Studio stripped of a huge amount of ‘junk’. Now, this isn’t junk to the core VS Studio user, but to a first year student overwhelmed with the concepts of variables, methods/functions, OO and GUI’s, Visual Studio is just overkill. Massey is presently changing their first year language due to the Delphi book going out of print, now is the prime opportunity to get some people (me and whoever at MS is available) to go in and sell this concept.

Imagine, at the end of the year/semester, you have 1, 10, 100, 200 people versed in the basics of your language. Imagine the change in the marketplace when these people start to get out there. It gets big real quickly.

So, in summary, I see two key points from all of this, for two different groups of people:
1) If a person is already developing in something else, sell them the features of your product.
2) If a person isn’t yet developing on ANY platform, get them on it Real Quick.

Well, this turned out long, and isn’t all that well thought out. I hope my points make sense, and note they are my perspective when being a student developer, and are really targetted at current or future developers. I don’t intend to have any rude comments or anything, so don’t take anything I say personally. I just really want to get my thoughts out there, I believe they are in MS’s best interest, and I’m not ‘dissing out’ MS or their products, I really want things to get better for students, and this is how I think things can improve.

This has now become a blog entry 
Cheers,
Jo.

Java?

You may wonder, what’s up with all these posts about Java? The answer is simple: I have thousands of lines of code in Java, and I’m not about to sit down and take the time to rewrite them in C# (in my opinion perhaps the only interesting language of Visual Studio).

This probably doesn’t bode well for the student ambassador for Microsoft at Massey I guess, but here’s something I said to Sean and Paul when I met them in Wellington a while back:

Don’t sell to students.

We don’t want to know that C# is 67% better than Java. It doesn’t really matter to us. What follows from this is the second point I made:

Do tell us about your cool ‘feature x’

This understanding was discovered after a recent presentation made to students at Massey in Palmy North – we left full of stats, but not really knowledgeable about the cool new features that we should take note of.

It is these features that make us want to switch to Microsoft solutions.

You all probably know that I’m a programmer – I don’t really care about the management and business aspects of things as much as I care about the beauty of the code (this coming from a managing director of his own business). I make no attempts to hide my desire to find the best tool for the job, as do many of my friends who left the presentation that day. Sadly, many of us left the presentation disappointed – we were effectively being sold to, and being sold to means percentages, misleading graphs, and ‘studies’. We are smart, we generally know what is happening in the world of IT, and we are students, we have the future ahead of us to use your products. We come to presentations open-minded, but we really don’t want to be told stats, and just as important:

Don’t speak negatively of your competition – we may just like / use them now, and mentally switch off (or worse, form a negative opinion of yourselves and your product) once the slagging begins.

Sorry for the long blog, I thought I would get something off my chest. I’m not inherently negative, I just want to save us wasting students, and consequently our, times. So, to return to the start: I use Java because thats what I have used, what I have all my code in, and what the people I work for want me to work in. I’m willing to change to a tool that makes my life easier / more enjoyable, but features, not stats, are going to convince me.

What is my feature x? Thats what we should all be asking whoever has the answers, and for those of us with the answers, that’s what we should be answering in the clearest way possible.

Cheers.

XPath

Started work on XPath integration into the mandarax project today. This is one of the three current projects I am working on, and to say the least, is interesting. Before a few days ago I didn’t even know what XPath was, let alone how to extend it to be able to retrieve data stored within an uncommon document model (i.e. the Mandarax KnowledgeBase class).

Results have started appearing. I can now request all facts (think declarative programming, knowledge bases, and in general, a Java version of Prolog) simply by giving the following XPath query:

/fact

Isn’t that cool? Ok, maybe not to you, but to the people at Massey who created the rest of Mandarax, this will be incredibly useful. Maybe another example would be in order. If I want a list (an Iterator to be specific) of all predicates in the head of a rule, I can give the XPath query:

/rule/head/predicate

I’m still working on a lot of things, so whilst this looks like good progress, I know I have a fair bit more work to do (considering this is a 3-4 week job).

Work

So, I’ve spent yesterday and today doing a slightly different thing – I wrote my first ever decent server application. It’s a little, 1000 line Java application which is designed to provide a server-side to my research. Currently, it handles:

  • Users requests for reminder alerts to be emailed or SMS’d.
  • Users subscriptions to be emailed or SMS’d when something they have subscribed to changes in a way in which they are interested.
  • Server side SQL. Previously, the client directly communicated with the database through JDBC. This is obviously not optimal. Now, the server can handle both database queries (‘SELECT’, returning a CachedResultSet) and INSERT/UPDATE statements.
  • LDAP user authentication. Once again, the client currently communicates directly with the LDAP server, so this is now replaced with the client communicating with the server, which then takes care of talking to LDAP.

The last two points meant I had to define my own protocol for the various options. This was rather ‘cute’, with my communication between the server and client being messages like ‘hello’, ‘ok’, ‘sql’, ‘ldap’, and ‘bye’.

A benefit to doing this is that it lessens the filesize of the client – we no longer need JDBC or LDAP libraries. For the MySQL and Novell eDirectory libraries, this cuts out about 540Kb of file size. It only gets bigger on larger database servers as well.

I’ve pretty much done my server work now, so I may go relax for a bit. Next week I start work out at Massey for three weeks, which should be a bit of money but I need to actually study the stuff I’m doing – mainly XPath, XSLT, XML, and a library called Jaxen.

Ciao.