On Tue, 2010-05-04 at 14:01 -0400, William Jon McCann wrote: > Hey, > > So one thing we talked about on IRC last week was the idea of driving > the design of the OS from two different and complementary angles: user > experience and developer experience. > > We have a pretty strong and unfolding story for the evolution of the > user experience but I don't yet see discussion and planning for the > improvement of the developer experience. I imagine this could involve > things like OS platform and subsystem design, toolkit API and SDK > design, development tools, deployment and management, feedback, etc. > > Anyone want to take part in some discussions and/or brainstorm > sessions on this? We might be able to arrange a call in number if we > want to try it live. Though, first, maybe we should try to research > and document things we like and dislike about existing systems. > > Does this sound interesting to anyone? Something I like to think about is "who is the developer", and "what is the developer trying to develop?" I posted some ideas on this here: http://lists.fedoraproject.org/pipermail/devel/2010-February/130362.html and I'll take the liberty of reposting that content here: <quote> "best linux distribution for developer" seems too vague to me to be achievable. I think there are different categories of developer. Here's an attempt at a concrete and realistic (though fictitious) persona: - Gillian is one of 6 employees at "stelthix.com", a startup based in Cambridge MA. She is a graduate of MIT. - The startup is in in "stealth" mode, building a web-based service that will be the next Google, or at least, they hope, acquired by Google (they're not yet saying what the service does). - They hope to launch the site in 3 months time; they are working every waking hour building the site and the backend, talking to investors, signing up service providers etc - All of the employees do at least some "development", even if it's just editing HTML templates, and tweaking of Python scripts. - Their web site is implemented in Django, and they're heavily using Python throughout the backend, though they have some optimized C code which one of the other developers wrote for a compute-intensive task. - They have an internal Trac instance which they're using as a private wiki, an issue tracker, and for SVN. The SVN instance stores all of their code (for both the web site, the scraping/data mining tool that feeds the data, their custom scripts that leverage Google's APIs etc). - They're happy to use FLOSS, but their code is going to be proprietary (alas). They have written an API which customers of the site can use for some purposes, but those customers will never see the implementation. - They are renting time on Amazon EC2 for the compute-heavy parts of the backend, and the beta instance of the site is hosted on Linux. - They have a buildbot that is running the full test suite after every check-in; this is running on a Linux box somewhere. - Most of the team use Mac laptops running OS X (alas), but the deployment environment is Linux, and some of the team have Linux boxes which they use for development as well. - They try to stick to the standard Python libraries plus Django because it's fiddly tracking additional dependencies in their (mixture of Mac + Linux) world. I think this is a realistic story [1], and is more concrete than "best linux distribution for developers". It leads to these questions: why will Gillian choose to use Fedora on her laptop? Why will Gillian choose to use Fedora on the backend servers? Why will Gillian recommend Fedora to the new hire after the company gets more VC funding? I'm somewhat biased towards Python here; you could rewrite this somewhat and change Python and Django to Ruby and Rails, and it's probably important to do both cases well; we want a great Rails story as well as a great Python story - "Ray was in the same class as Gillian, and now works at wearemorepragmaticthanyou.com", perhaps. Another developer persona might be: - Fred is a sysadmin and postdoc at example.ac.uk - he manages a variety of servers and workstations on the campus as a job, whilst working towards finishing his thesis - in his spare time he is working directly on a re-implementation of an encumbered piece of software - He cares deeply about software freedom, and needs a decent build of the tools he needs (gcc, GNU make, gdb, perl). - He worries about software patents, and has tried to avoid MP3 for some years, but doesn't always succeed. I hope this is useful and realistic, and not too much of a caricature. I believe we currently do a good job of appealing to Fred (though we could always do better), but less so at appealing to Gillian or Ray. This hits the "web 2.0 startup" cases and the "enthusiastic FLOSS volunteer" case; there'd probably need to be a persona for a Java developer within a large company too, and probably stuff I've not thought of. </quote> That post was aimed at a high-level discussion of Fedora's goals, but from the perspective of making Fedora a great fit for each of the personae, we'd want: - good editors for Python, Ruby, HTML (and templates), JavaScript, Java, C - good integration with EC2 - good integration with databases (including this new-fangled NoSQL stuff) - well-tuned language runtimes (Python and Ruby) - lots of good debugging hooks. I did some work on this for Fedora 13 for Python; maybe we should do the same for Ruby. - a Django spin? a RoR spin? EC2 images of these? - etc Hope this is helpful Dave [1] though the last time I worked at a company of that size was some years ago; caveat lector -- desktop mailing list desktop@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/desktop