Wed - September 8, 2004ToolsIf there's one topic most likely to get
developers all frothy at the mouth it's a discussion about tools (no, not the
DIY kind - I mean software development tools; IDEs and the
like).
...I know that a lot of coders dislike the Microsoft development tools, but I've come to feel at home using them (after turning off all the annoying, intrusive gimmicks) and now anything else feels poorly thought-out and, in many cases, a poor imitation of the Microsoft IDE. ...Actually, that last comment is a bit inflammatory - the tools aren't poor quality (certainly that's not the case with both Eclipse and NetBeans, both of which I've evaluated recently) it's just that they don't cater to my exacting requirements, which, after all, have been refined over the years using Microsoft tools. Quick sideline: I'm not a Microsoft fanboy, I just feel that they've put a lot of thought into their development tools (which are easily the best products they put out there). ...Anyway, the long and short of it is that I've been seriously unimpressed with the Java IDEs, partially because the way they work is a bit alien to me (I cannot for the life of me get my head around projects in NetBeans and I've all but given up trying to get the refactoring plug-ins for Eclipse to stay plugged in). My other big gripe is that most of the IDEs are written in Java and, frankly, they're not the good advertisements for desktop Java applications that they should be (a notable exception here is Eclipse, which really shows off the SWT to good effect). I had a play with using Visual Studio to do my coding in but, although it supports Java syntax highlighting it doesn't build and I couldn't get Ant working with it (it's probably very easy but I just haven't had time).... The reasons for this are quite simple: I've reasonably familiar with Xcode having used it for Objective-C/Cocoa projects, it supports Java editing and building and, best of all, it isn't a Java application so it's nice and responsive... Posted at 12:38 PM Read More Thu - July 1, 2004The Great Dashboard Conspiracy of 2004Here is an excellent posting by John Gruber on
the whole Dashboard/Konfabulator kerfuffle (if you don't know what any of this
means, don't worry, it's really nothing very
important).
"Now think about this situation from the point of view of a big software company like Microsoft. They could come up with the same idea as a small ISV but take a year longer to get it to market (because of internal resource issues, testing, marketing, etc.) When they do finally bring the product to market it's likely to be better polished than the ISV offering, purely because the ISV has very limited resources and a need to get their product to market so it can make them some money - Microsoft doesn't have these same pressures (sure it has some of them, but not all of them and not of the same intensity that a small ISV will experience).... The simple fact is, however, that two companies had the same idea and both decided to develop it." Posted at 03:36 PM Read More Wed - June 30, 2004Apple RendezvousOkay, this is impressive: Apple has released its
implementation of IETF ZeroConf networking for not just Window, but
Linux/Solaris/FreeBSD and Java too.
Posted at 04:39 PM Read More Every developer's worst nightmare? ReduxSo I started work this morning the same as I
pretty much always do: make some coffee, log in, check my email, etc., etc. My
inbox, as usual, contained an assortment of junk (some always seems to bypass
the Mail.app scanner), the odd newsletter (from those heathens who haven't heard
of RSS) and the various detritus that comes from running a business (and
personal life) predominantly
online.
After sorting through the stuff I could deal with immediately (I'm a follower of David Allen's GTD, thanks to a post by Scoble) I started looking through the other mail. It was then that I noticed a message from someone at Near-Time - the company whose product, Flow, was the reason behind the original "worst nightmare" post. At first, being totally honest here, I was slightly annoyed at yet another email from these guys. You see I'd downloaded a copy of Flow on Monday, as Near-Time had just released it, but run into some problems with the registration. Someone at Near-Time had picked up on this (without me contacting them - impressive!) ...I wanted to send this email earlier but waited until we released the product." ..."First let me apologize for the issue you encountered during registration, we overlooked a test on zip code registration but I believe we have resolved it." ...How many people about to threaten legal action (or the legal Horseman of the Apocalypse: a Cease and Desist demand) comment on a technical issue? ..."Second I wanted to send a complimentary full use registration code for Flow to you. I hope you will find Flow to be a powerful application for your use. Please contact me when you have a moment to discuss your experience and thoughts on the application. You can send a Flow message to me with the ID provided or use email or iChat." ...Hell, even people who I've known for years trip up when they're IM'ing or emailing me (and let's not even get into texting, you'd just be amazed how many variants of my name there can be). Thirdly I was being given a $99.95 registration code purely because I'd 'blogged about this company and its product. ...The guy was taking the time to chat with me while at the WWDC - if I'd been at the WWDC I'd have blown off Kirsten Dunst trying to ask me out on a date (maybe not, but as it's unlikely to ever happen it makes for a good comparison) - and he was polite (something I ought to 'blog about someday, we Brits are meant to be the polite ones in the world but that just isn't true in my experience, just witness my comment above about being at the WWDC...) Anyway, the conversation went on with me thanking Scott and Near-Time for their generosity (and not trying to sue me or anything) and Scott thanking me for 'blogging about them and Flow. ...There are some damn nice people in the world and some of them work for damn nice companies.... I'll let someone else go into details about all that, I'm still all excited that someone actually reads my 'blog... Posted at 03:53 PM Read More Thu - April 22, 2004Every developer's worst nightmare?The concept you've come up with is so innovative
that you just know that no-one else has thought of it, nor are they likely to.
And then, while casually browsing the various 'blogs you read daily, you see not
one but two links to the same application, about to be released.... You follow
the links and find, to your horror, that not only is the name the same, the idea
is the same and - worst of all - they've got some even better ideas than you
had!
...After six months of design and research I've discovered that another company has beaten me to market with an almost identical product with (and this is just an almost unbelievable coincidence) exactly the same name. ...Sure I could simply change the name and carry on as before, after all, the chances of our applications being identical is pretty slim - but I'm trying to be a good development citizen in a reasonably small marketplace.... Despite what we, as developers, think, rarely are our ideas so innovative and radical to have not been thought of by someone else at some point. The good thing to have come out of all of this is that it's giving me a chance to see how another company does trying to sell an idea that I (also) had. ...They could come up with the same idea as a small ISV but take a year longer to get it to market (because of internal resource issues, testing, marketing, etc.) When they do finally bring the product to market it's likely to be better polished than the ISV offering, purely because the ISV has very limited resources and a need to get their product to market so it can make them some money - Microsoft doesn't have these same pressures (sure it has some of them, but not all of them and not of the same intensity that a small ISV will experience).... The fact that the Microsoft offering will start off looking better doesn't necessarily mean that Microsoft will automatically win out in the marketplace - don't forget that the ISV has a year lead in the marketplace. Posted at 05:34 PM Read More Tue - February 3, 2004MVCThis allows you to concentrate on making the best
design decisions in each areas without worrying too much about the impact that
the implementation of that decision will have on the rest of the
design.
When I design software I tend to split the job into three tasks: data modelling, user interface design and finally the "glue" to tie the two together. I've used this approach for a long time, but only recently (as in about two years ago) did I learn about MVC and start using that as my formal design method. ...Partly this was because I wasn't working as a software developer at the time (I was doing IT Management and didn't have much spare time) and partly because I only ever heard about it in conjunction with Java, which I was interested in but only because it was new and (so I thought at the time) highly innovative. ...Squeak has a highly original user interface called Morphic, which is probably the only true object-oriented UI in the public domain (it grew out of research at Sun, originally belonging to a system called Self, which could be called a descendant of Smalltalk). ...The MVC paradigm splits the design of software into three key areas: Model, the data structures and associated logic; View, the user interface; and, Controller, the code that ties together the Model and View. One of the nice things about MVC is that although the elements of the triad are related, you have the freedom to work on any two of them in isolation (the third element always needs the first two in order to tie everything together). In my case I tend to model the data structures first (most of my work involves databases), then design the user interface.... Working this way allows me to concentrate on one piece of the problem at a time, without being too concerned about the other bits until I need to be. This is the real beauty of MVC: it allows you to work however you work best - there is no formal approach to follow, just the distinction of the three elements. For instance, when I'm designing the Model I'll typically be working on the database schema design at the same time, both elements which I'll then use in the UI and View design*. This allows me to take a broad view of the problem and see how the solution fits together, but doesn't distract me from the minutiae of the design for each area. ...I've designed Workflow to be highly modular to allow the flexibility of online updates to core assemblies (it's a .NET project) and to provide a rich API to allow others to write plug-ins to extend the product. In laying out this design I found that following the MVC "way" allowed me to concentrate my attention on the problem at hand, without worrying how it'll all fit together. ...All-in-all I believe that MVC is one of the most valuable tools that anyone can use when designing (and implementing - MVC influences how you code the design as well as produce it) software. Posted at 12:22 PM Read More Thu - January 29, 2004Why is software design so hard?I've been busy finalising the specifications for
the first of the Symcar products, Workflow, and it occurred to me how much
effort I'd expended purely on the
design.
Pretty much everyone in the development game agrees that good, comprehensive design is the key to producing good software. ...Such tools do exist, but most of them have taken on lives of their own and migrated into the enterprise arena (think Rational Rose) and have left behind the mundane world of pure software design. The other tools, that do still exist to help with pure design, are general purpose diagramming tools like Visio or OmniGraffle (which I use). Take a look around and you'll see that this is the case pretty much industry-wide, there are general-purpose diagramming tools that help to diagram software design; then, there are the big, expensive tools that exist to help with the design and production of enterprise-level software. ...I'm a small business developer and can't afford Rational Rose or its ilk, but I am looking for something that helps me more than OmniGraffle*. ...* I'm not insinuating that OmniGraffle isn't a good tool, it's excellent - in many ways better than Visio (much faster, for instance). Posted at 02:04 PM Read More |