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?
Thanks, Jon
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
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?
Thanks, Jon
Is this development of other software, or development of Fedora? There are numerous packages and setups that make sense if you're a Fedora developer, less so if you're an upstream developer. Or does it not matter and we're talking about both?
Hey,
On Tue, May 4, 2010 at 5:04 PM, Jesse Keating jkeating@redhat.com wrote:
Is this development of other software, or development of Fedora? There are numerous packages and setups that make sense if you're a Fedora developer, less so if you're an upstream developer. Or does it not matter and we're talking about both?
How do you differentiate a Fedora developer and an upstream developer? I'm not sure being a Fedora developer is particularly interesting.
I guess I don't think most people are interested in writing an OS. But seems lots of people are interested in writing apps and dellvering them to users. So I was referring to that: app development. And here I'm not excluding web apps either. There is a strong case being made for html5 as a development platform.
Thanks, Jon
On Tue, 2010-05-04 at 17:09 -0400, William Jon McCann wrote:
Hey,
On Tue, May 4, 2010 at 5:04 PM, Jesse Keating jkeating@redhat.com wrote:
Is this development of other software, or development of Fedora? There are numerous packages and setups that make sense if you're a Fedora developer, less so if you're an upstream developer. Or does it not matter and we're talking about both?
How do you differentiate a Fedora developer and an upstream developer? I'm not sure being a Fedora developer is particularly interesting.
I guess I don't think most people are interested in writing an OS. But seems lots of people are interested in writing apps and dellvering them to users. So I was referring to that: app development. And here I'm not excluding web apps either. There is a strong case being made for html5 as a development platform.
Thanks, Jon
Fair enough. Being a Fedora developer involves pre-loading tools necessary to interact with the Fedora Infrastructure, and maybe even having a guided "get setup for Fedora development" document or wizard. Totally inappropriate for somebody who isn't going to be a Fedora packager.
William Jon McCann wrote:
Hey,
On Tue, May 4, 2010 at 5:04 PM, Jesse Keatingjkeating@redhat.com wrote:
Is this development of other software, or development of Fedora? There are numerous packages and setups that make sense if you're a Fedora developer, less so if you're an upstream developer. Or does it not matter and we're talking about both?
How do you differentiate a Fedora developer and an upstream developer? I'm not sure being a Fedora developer is particularly interesting.
I guess I don't think most people are interested in writing an OS. But seems lots of people are interested in writing apps and dellvering them to users. So I was referring to that: app development. And here I'm not excluding web apps either. There is a strong case being made for html5 as a development platform.
Thanks, Jon
My two bits on this particular subject: The best disrtibution for ANY development purpose would have the following criteria: 1) STRICT compliance to the LSB-CORE. [ after the core, it is no longer a GNU/Linux base, it is a distro base ] 2) ZERO alterations of packages from defaults. [ a best development distro would not change any included packages default configurations to meet a "distro" decision. ] 3) No picking one GUI as the default, ALL gui options needs to be included by default.. [ so that any new application can be tested against use with all of them ] 3a) best is to just go with a minimalist gui as default, G.N.O.M.E. and KDE both definitely not viable. they both have very different backends providing needed services for a desktop, so a distro that goes with either is stealing the choice of desktop for developers / end users.
A Development distro would, by design, have to foster the freedoms of Free Software / Open Source Software and let the end user have ALL the choices available for ALL application options.
Fedora, RHEL, Ubuntu, Kubuntu, Debian, Slakware, Madriva, PCLinuxOS, Gentoo .... all fail to meet this, they all pick a desktop as default. Every existing distro does. [ FWIW I personally prefer to use E16 as my gui, even E17 is unusably bloated in my opinion. G.N.O.M.E. failed to make the grade with "networking" errors on a stand alone workstation, back in 1998, adding in the menu bar that turned me off the Mac in 1982 just sealed it's fate as non-usable for me after that. ]
and, for development purposes, I usually go with an LFS build, with minimal packages over a base system with GUI support. only installing those absolutely required by the tool set I'm using on the system.
Jaqui
Hi Jaqui,
On Tue, 2010-05-04 at 19:56 -0700, J. Greenlees wrote:
- No picking one GUI as the default, ALL gui options needs to be
included by default.. [ so that any new application can be tested against use with all of them ] 3a) best is to just go with a minimalist gui as default, G.N.O.M.E. and KDE both definitely not viable. they both have very different backends providing needed services for a desktop, so a distro that goes with either is stealing the choice of desktop for developers / end users.
I don't understand your line of thinking here, Jaqui. How many (non-web) app developers use their app with every GUI toolkit available? How many (non-web) app developers use their app with more than one GUI toolkit available? I think 0 for the first one, and very, very few for the second.
I think there is a difference between the desktop environment a developer uses vs. the GUI toolkit(s) his applications target, and I think you might be confusing the two a little bit. For example, if I'm a developer for a mobile device (say for the Maemo platform), I'm not necessarily going to use Maemo to do my development work (and I'm not sure I could!)
All this aside, how about web application developers, who I'd argue are really far more common than OS or even rich client developers these days? They want a desktop that works and works well for their workflow. I don't think they care to choose from the 21 flavors available.
A Development distro would, by design, have to foster the freedoms of Free Software / Open Source Software and let the end user have ALL the choices available for ALL application options.
Having a choice available doesn't mean we get to shirk the responsibility of picking sane defaults. Overwhelming the user, even if they are a developer, with the equivalent of a 500-item questionnaire is not really very considerate :( There is no lack of choice in free/open source software. Part of the challenge of making it usable is filtering those choices to the sanest / most useful / most frequently-used / most widely-used.
Fedora, RHEL, Ubuntu, Kubuntu, Debian, Slakware, Madriva, PCLinuxOS, Gentoo .... all fail to meet this, they all pick a desktop as default. Every existing distro does.
You have to.
~m
Hi Miirin,
Máirín Duffy wrote:
Hi Jaqui,
On Tue, 2010-05-04 at 19:56 -0700, J. Greenlees wrote:
- No picking one GUI as the default, ALL gui options needs to be
included by default.. [ so that any new application can be tested against use with all of them ] 3a) best is to just go with a minimalist gui as default, G.N.O.M.E. and KDE both definitely not viable. they both have very different backends providing needed services for a desktop, so a distro that goes with either is stealing the choice of desktop for developers / end users.
I don't understand your line of thinking here, Jaqui. How many (non-web) app developers use their app with every GUI toolkit available?
how many rich client apps have you had to chase mass dependency chains down with, because the DISTRO defaults were not the same as Fedora's? what the developer thought was a required system lib, was a distro default required lib, and no other distro uses it at all. oops, defaults for distros just bit you in the butt.
How many
(non-web) app developers use their app with more than one GUI toolkit available?
and which toolkit BEST suits the needs of their app? oh, hold it, they NEED all installed to be able to pick best toolkit.
I think 0 for the first one, and very, very few for the
second.
why should ANY distro make it more difficult for a non web app developer to have their app work on all distros, or with any gui? by picking a default gui, you have stolen choices and made it harder to have a gui agnostic app.
EVERY choice made by distro development team, is a break point in cross distro development. and, AS LONG AS THERE IS DIFFICULTY IN CROSS DISTRO DEVELOPMENT, you won't get Adobe to port their apps to GNU/Linux, nor Autodesk, or Corel, or any other proprietary software company. without these apps, GNU/Linux will NEVER become the desktop for more than a few companies.
I think there is a difference between the desktop environment a developer uses vs. the GUI toolkit(s) his applications target, and I think you might be confusing the two a little bit. For example, if I'm a developer for a mobile device (say for the Maemo platform), I'm not necessarily going to use Maemo to do my development work (and I'm not sure I could!)
ahh, the embedded / mobile developer is a very different creature, they have to set a virtual environment up, or have the device themselves to do any testing. that means they really wouldn't want to have massivvly bloated desktop environment like GNOME and KDE4 as default, they have to bogg their system down with a virtual environment.
All this aside, how about web application developers, who I'd argue are really far more common than OS or even rich client developers these days? They want a desktop that works and works well for their workflow. I don't think they care to choose from the 21 flavors available.
odds are, because distros have stolen the choice of default gui from them, they don't even know there are 21 flavours available. they want code generating apps to generate the really badly coded websites we all just hate visting from the problems it causes fisiting the Dreamwaever/Frontpage/ ECLIPSE generated website.
A Development distro would, by design, have to foster the freedoms of Free Software / Open Source Software and let the end user have ALL the choices available for ALL application options.
Having a choice available doesn't mean we get to shirk the responsibility of picking sane defaults. Overwhelming the user, even if they are a developer, with the equivalent of a 500-item questionnaire is not really very considerate :( There is no lack of choice in free/open source software. Part of the challenge of making it usable is filtering those choices to the sanest / most useful / most frequently-used / most widely-used.
B.S. You do NOT have a responsibility to STEAL CHOICES from users. You have a responsibility to give users choices, to follow the intent of the FSF and GNU-GPL, the intent to promote freedom and choice. [ and on that one, The only thing that would have RMS not agree would be promotng GNU software over non GNU software, he would pick GNOME because it's a GNU project, KDE isn't. ]
Fedora, RHEL, Ubuntu, Kubuntu, Debian, Slakware, Madriva, PCLinuxOS, Gentoo .... all fail to meet this, they all pick a desktop as default. Every existing distro does.
You have to.
nope, you do not have to. you can and should let the END USER pick the one they want.
[...] B.S. You do NOT have a responsibility to STEAL CHOICES from users. You have a responsibility to give users choices, to follow the intent of the FSF and GNU-GPL, the intent to promote freedom and choice. [ and on that one, The only thing that would have RMS not agree would be promotng GNU software over non GNU software, he would pick GNOME because it's a GNU project, KDE isn't. ]
https://www.redhat.com/archives/fedora-devel-list/2008-January/msg00861.html
On Wed, 2010-05-05 at 12:40 -0700, J. Greenlees wrote:
How many
(non-web) app developers use their app with more than one GUI toolkit available?
and which toolkit BEST suits the needs of their app? oh, hold it, they NEED all installed to be able to pick best toolkit.
I tend to think that a developer trying to pick which toolkit to use is going to be able to whittle down the list of toolkits to a very small number based on researching their capabilities (reading documentation, forum posts, etc) rather than trying each single one out in some kind of serial process. The latter scenario is really unrealistic. As a developer I would *not* want to waste my time using every single toolkit to determine which one is best - I would get recommendations and read up on the toolkits first, and maybe pick between 2 or 3 at most if my research was unable to help me decide on a single one. Or I might pick a single one to start with based on research and have to switch later (early on in the app's development still) because I ran into an issue.
In any of these cases, I really still do not see the justification for having every single toolkit installed.
I think 0 for the first one, and very, very few for the
second.
why should ANY distro make it more difficult for a non web app developer to have their app work on all distros, or with any gui? by picking a default gui, you have stolen choices and made it harder to have a gui agnostic app.
I don't understand. Any toolkit you want that is package is available with a simple yum command. It takes maybe 30 seconds at most to install an additional toolkit. How is a non webapp developer (I will note again someone who is likely in the minority of devels) facing a more difficult life by having a single *desktop* (not toolkit, you seem to conflate toolkit and desktop environment) available to her by default, with the ability to add additional desktops and/or toolkits with a single command?
EVERY choice made by distro development team, is a break point in cross distro development. and, AS LONG AS THERE IS DIFFICULTY IN CROSS DISTRO DEVELOPMENT, you won't get Adobe to port their apps to GNU/Linux, nor Autodesk, or Corel, or any other proprietary software company. without these apps, GNU/Linux will NEVER become the desktop for more than a few companies.
Hey simmer down now, my vision is fine and I don't need the ALL CAPS. ;-)
I'm pretty confused by the above, can you explain it a bit more? How is anything being discussed here breaking cross-distro development? You don't need every toolkit under the sun installed by default for cross-distro development.
I think there is a difference between the desktop environment a developer uses vs. the GUI toolkit(s) his applications target, and I think you might be confusing the two a little bit. For example, if I'm a developer for a mobile device (say for the Maemo platform), I'm not necessarily going to use Maemo to do my development work (and I'm not sure I could!)
ahh, the embedded / mobile developer is a very different creature, they have to set a virtual environment up, or have the device themselves to do any testing. that means they really wouldn't want to have massivvly bloated desktop environment like GNOME and KDE4 as default, they have to bogg their system down with a virtual environment.
You're making an assumption about these types of developers that I don't think is necessarily true. I have a two+ year old ultra-slim Thinkpad that can handle full Linux virtual environments on top of a GNOME desktop just fine. Running a Linux virtual machine (or multiple Linux virtual machines) I am guessing is a bit lighter-weight than running a virtual machine for a mobile device?
You're also making the assumption and GNOME and KDE4 are 'massively bloated.' I'm not sure that's a fair statement to make.
Either case, these developers are also important.
All this aside, how about web application developers, who I'd argue are really far more common than OS or even rich client developers these days? They want a desktop that works and works well for their workflow. I don't think they care to choose from the 21 flavors available.
odds are, because distros have stolen the choice of default gui from them, they don't even know there are 21 flavours available. they want code generating apps to generate the really badly coded websites we all just hate visting from the problems it causes fisiting the Dreamwaever/Frontpage/ ECLIPSE generated website.
Nothing here has been stolen. Where are you getting the notion that something has been taken away? In Fedora, you can pick a spin for the desktop environment of *your choice* if you would like it installed exclusively and by default:
http://spins.fedoraproject.org/kde/ http://spins.fedoraproject.org/lxde/ http://spins.fedoraproject.org/xfce/
Or you may simply download the default spin and easily and quickly install whichever additional desktop environments you'd like.
I have no idea what you're referring to with the 'code-generating apps to generate the really badly coded websites we all just hate' - I have no idea what websites you might be referring to and what relevancy the statement has to this discussion.
A Development distro would, by design, have to foster the freedoms of Free Software / Open Source Software and let the end user have ALL the choices available for ALL application options.
Having a choice available doesn't mean we get to shirk the responsibility of picking sane defaults. Overwhelming the user, even if they are a developer, with the equivalent of a 500-item questionnaire is not really very considerate :( There is no lack of choice in free/open source software. Part of the challenge of making it usable is filtering those choices to the sanest / most useful / most frequently-used / most widely-used.
B.S. You do NOT have a responsibility to STEAL CHOICES from users. You have a responsibility to give users choices, to follow the intent of the FSF and GNU-GPL, the intent to promote freedom and choice. [ and on that one, The only thing that would have RMS not agree would be promotng GNU software over non GNU software, he would pick GNOME because it's a GNU project, KDE isn't. ]
Fedora, RHEL, Ubuntu, Kubuntu, Debian, Slakware, Madriva, PCLinuxOS, Gentoo .... all fail to meet this, they all pick a desktop as default. Every existing distro does.
'Steal choices'? Huh? A distro choosing a default desktop is not a violation of the GNU-GPL nor is it any form of theft. The FSF itself has their own distro, GNewSense, which uses a GNOME desktop by default. I am sure just as with any distro, if you don't like the default desktop, you can install additional ones and change your settings or simply run a different spin of the distro.
You have to.
nope, you do not have to. you can and should let the END USER pick the one they want.
Most end users don't care. They really don't (yes, even developers - especially web developers.) We are *lucky* if they have heard of Linux. To expect them to know what GNOME / KDE / LXDE / XFCE / fluxbox / whatever are is asking for way too much and we're going to lose them (or never be graced with them in the first place) if we scare them away with difficult questions like what desktop environment do you want? They don't care. They care about developing cool apps.
I understand this must be very difficult for you to understand; I know what it is like to be very heads down and deep into FLOSS and to assume folks understand things, but try talking to some of your non-Linux developer friends and ask around what they think about these issues. I think you'll start to understand where some of us are coming from then. If we only stare at our own navels, we'll never expand the reach of free and open source software and I think that's a goal we all share.
~m
On Wed, 2010-05-05 at 12:40 -0700, J. Greenlees wrote:
Máirín Duffy wrote:
Having a choice available doesn't mean we get to shirk the responsibility of picking sane defaults. Overwhelming the user, even if they are a developer, with the equivalent of a 500-item questionnaire is not really very considerate :( There is no lack of choice in free/open source software. Part of the challenge of making it usable is filtering those choices to the sanest / most useful / most frequently-used / most widely-used.
B.S. You do NOT have a responsibility to STEAL CHOICES from users. You have a responsibility to give users choices, to follow the intent of the FSF and GNU-GPL, the intent to promote freedom and choice.
Your sense of entitlement is pretty awesome.
Also, I think you don't understand the distinction between providing a choice, and providing choices. Fedora is one thing you can choose. Fedora is not compelled to provide lots of choices. Doing so not only makes the process of developing Fedora more difficult and the result of lower quality (cf. Mythical Man Month), it makes the user _less_ happy (cf. The Paradox Of Choice, and The Design Of Everyday Things).
- ajax
On Tue, May 04, 2010 at 05:09:03PM -0400, William Jon McCann wrote:
Hey,
On Tue, May 4, 2010 at 5:04 PM, Jesse Keating jkeating@redhat.com wrote:
Is this development of other software, or development of Fedora? There are numerous packages and setups that make sense if you're a Fedora developer, less so if you're an upstream developer. Or does it not matter and we're talking about both?
How do you differentiate a Fedora developer and an upstream developer? I'm not sure being a Fedora developer is particularly interesting.
I guess I don't think most people are interested in writing an OS. But seems lots of people are interested in writing apps and dellvering them to users. So I was referring to that: app development. And here I'm not excluding web apps either. There is a strong case being made for html5 as a development platform.
Hope this isn't a noise post. I don't have a lot of insight to offer to what developers might expect in an optimal environment, since the best I can do is piddle around with PyGTK. But I did want to say I think this is an interesting and important problem to work on.
I've been to and heard reports about what I think of, maybe unintentionally tritely, as downstream developer events, where Fedora is not in as wide a use as I think we'd like, including PyCon and RubyCon. These are folks who use open source frameworks and languages to do their work but are most concerned about an effective developer platform, not the OS itself. They might be designing, say, the next Facebook, and it would be great if Fedora was their choice for doing that. (Right now, their choice is probably a Mac based on what I've seen at these conferences.)
We actually have a few people in Fedora who are examples of this -- such as Luke Macken, who develops Moksha[1]. I think Luke currently uses vim, but it might be worthwhile to find out what sorts of features would appeal to a developer like him.
On Thu, 2010-05-06 at 10:13 -0400, Paul W. Frields wrote:
I've been to and heard reports about what I think of, maybe unintentionally tritely, as downstream developer events, where Fedora is not in as wide a use as I think we'd like, including PyCon and RubyCon. These are folks who use open source frameworks and languages to do their work but are most concerned about an effective developer platform, not the OS itself. They might be designing, say, the next Facebook, and it would be great if Fedora was their choice for doing that. (Right now, their choice is probably a Mac based on what I've seen at these conferences.)
Yeah, Fedora was definitely scarce at PyCon this year, and the only shadowman I saw was on the back of some random guys conference shirt. It seems that the majority of the Python community prefers doing their development on the Mac in virtualenvs, and most seem to deploy on CentOS & Ubuntu LTS.
Dave Malcolm gave a great lightning talk at PyCon this year and showed off the new Python gdb debugging features in F13, and impressed a lot of people. I think doing great work like this on our core development tools will help us gain mindshare in these language communities.
We actually have a few people in Fedora who are examples of this -- such as Luke Macken, who develops Moksha[1]. I think Luke currently uses vim, but it might be worthwhile to find out what sorts of features would appeal to a developer like him.
As far as development apps go, I could do my job at runlevel 3 with vim, git, and python.
I don't think that there will ever be a one-size-fits-all solution for developers. Everyone has got their own custom environment that they are comfortable in, however, I think we can still put effort into solidifying the story of each of these language development environments.
Take a look at what a developer has to go through to setup their environment after a fresh install. Ok, I want to install an IDE and a some library/framework. Fire up PackageKit, click Programming, and you get an INSANE LIST OF PACKAGES. I think we could really improve this situation by having a list of per-language/framework groups that can easily be installed (eg: Python development, Ruby on Rails development, etc). We kind of have this with `yum grouplist`, but it's far from ideal.
I also think most developers want their desktop to just get out of the way so they can focus on their application. Productivity is key, and thus having a great suite of productivity apps is a win. I personally use vim-vimoutliner, but we have a lot of other great tools like gtg, hamster-applet, gnote, that we should be encouraging developers to checkout.
Earlier, Dave mentioned "good integration with EC2", which sounds interesting. Not only making it easy to develop/run/debug your application locally, but making it easy to seamlessly deploy it to a cloud.
Didn't we used to have a Developer Spin? Even if that got revived, how can we provide a better development experience aside from just installing a bunch of packages?
luke
On Thu, Jun 10, 2010 at 03:23:19PM -0400, Luke Macken wrote:
On Thu, 2010-05-06 at 10:13 -0400, Paul W. Frields wrote:
We actually have a few people in Fedora who are examples of this -- such as Luke Macken, who develops Moksha[1]. I think Luke currently uses vim, but it might be worthwhile to find out what sorts of features would appeal to a developer like him.
As far as development apps go, I could do my job at runlevel 3 with vim, git, and python.
I don't think that there will ever be a one-size-fits-all solution for developers. Everyone has got their own custom environment that they are comfortable in, however, I think we can still put effort into solidifying the story of each of these language development environments.
Take a look at what a developer has to go through to setup their environment after a fresh install. Ok, I want to install an IDE and a some library/framework. Fire up PackageKit, click Programming, and you get an INSANE LIST OF PACKAGES. I think we could really improve this situation by having a list of per-language/framework groups that can easily be installed (eg: Python development, Ruby on Rails development, etc). We kind of have this with `yum grouplist`, but it's far from ideal.
IIRC the browser and PackageKit support a "click to install" feature. It's possible to use a metapackage to do this in an ad-hoc way, or possibly even kick off a "yum groupinstall" for that matter if we have the groups defined.
I also think most developers want their desktop to just get out of the way so they can focus on their application. Productivity is key, and thus having a great suite of productivity apps is a win. I personally use vim-vimoutliner, but we have a lot of other great tools like gtg, hamster-applet, gnote, that we should be encouraging developers to checkout.
Are you talking about documentation for this stuff? Like a Fedora Developers Guide? This existed a loooooooong time ago, but went unmaintained and died as soon as the distro had gone through a few changes (back around FC4 I want to say). Fedora changes so fast that having that content on the wiki seems like it would hold up better over time, or at least let lots of devs easily keep it up to date for their areas (Python, Ruby, C/C++, etc.).
Earlier, Dave mentioned "good integration with EC2", which sounds interesting. Not only making it easy to develop/run/debug your application locally, but making it easy to seamlessly deploy it to a cloud.
Didn't we used to have a Developer Spin? Even if that got revived, how can we provide a better development experience aside from just installing a bunch of packages?
What's standing between developers and getting into the actual work of development?
* Is it knowing where and how to get tools, and which tools and methods are recommended for their use? Or are we missing a preset environmental setup?
* If it's a knowledge problem, how can we give them a clear route to that knowledge from the moment they install?
* Does the way we show that route differ from how we would show it to non-developers? Or is this a common problem that can be solved for a handful of types of end users at once? (Get started surfing, get started developing...)
* If it's not a knowledge problem, there still might be easier ways we can expose groups of common or recommended tools and libraries for something like one-click access, or make that the nutshell version that comes before any explanations ("I just want to get started").
desktop@lists.fedoraproject.org