Dear NetBSD,
It is almost five years since we first met and I still remember how much I liked you at that time. Despite your 1.5 release had slow disk performance when compared to the other BSDs, I found in you an operating system that just felt right. You focused on clean and well designed code among many other goals; sincerely, I didn't come to you looking for portability because I never had anything else than i386 machines. All these feelings turned into love after installing and experimenting with you: the system was minimal, well documented and made sense. As you know, I soon left FreeBSD and migrated my machines to you.
pkgsrc, one of your children projects, was also nice when compared to FreeBSD's ports. The buildlink concept was very interesting and in general it looked less clumsy than FreeBSD's ports: few build-time options resulting in consistent binary packages, no interactive installs, etc. It lacked many packages but that was a plus for me: I'd easily get involved into your development. I set myself the goal of porting GNOME 2.x to you and achieved it some years ago.
At that time I had never contributed to any big free software project in the past, so you can imagine how excited I was some months later when one of your developers invited me to join you. That boosted my pkgsrc contributions and I started looking at contributing more stuff to the base system. If I can tell you a secret, I had always wanted to write a simple operating system on my own but given the size of this task I preferred to join the development of an existing free one and help as much as possible. To some extent I achieved it and learned a lot along the way.
As I said above, I love(d) you, but keep in mind that love and hate are not opposite feelings.
As another developer recently reminded me, one of my first changes to the system after becoming a developer was the addition of the "beep on halt" feature to the i386 platform. I quickly wrote that feature and was eager to add it to the system, so I presented it to tech-kern. My excitement went away quickly. That tiny change generated a lengthy discussion where everybody exposed his preferred way to achieve that feature and bashed all other possibilities. Eventually, it was all bikeshed. However, as I was new I tried to please everybody and in the end committed the feature.
If that had happened only once, you'd say I had had a bad day with you. But it turns out that this same situation was and is still too common in your mailing lists. Indeed, there are a lot of competent people in them but consensus can never be reached.
The problem is that this situation scares off many new potential contributors. They come excited to you with new patches and functionality that could be valuable to the OS but you turn them down because you have no clear long-term goal, because the changes are not perfect and you insist on perfectly designed stuff on the first proposal or because there is no consensus. Oh, and that is without counting all those cases where you do not provide a single reply to proposals. Eventually the contributor gets tired of the discussion (or lack thereof) and runs away.
I want to make clear that some developer groups within you are still kind to deal with such as the pkgsrc team or the www maintainers.
And no, your "portability" goal is not interesting any more (and as I said above, it never was to me) to the general public. Your brother Linux runs on as many systems as you if not more; it was just amazing to see it working on a Linksys router just some days ago, while you cannot get close to it. NetBSD, you need to review your goals, make them clear and, if needed, generate some hype about them. Yes, even if you don't like it, hype will attract many new users. Some of them — possibly a tiny bit — will be potential new developers. And you need as much of them as you can to evolve or otherwise you'll be stalled in the past because you won't be able to keep up with new hardware.
While I've had a very good time hacking your code and working in pkgsrc, it's not fun to me any more. It is frustrating to spend lots and lots of hours of my free time to later see that it was in vain. Furthermore, I'm extremely tired of having an unusable desktop system because of broken stuff — I know, not completely your fault — and the need to be constantly maintaining it. I need and want to be productive in other projects but you do not let me to.
You know, contributing as a volunteer to free software projects is about having fun. I'm not having fun any more so I'll most likely be deinstalling you from my desktop machine and permanently shutting down my home server, both of which are running 4.0_BETA. This is not still a sure thing but, if things continue as usual, I sure will. And soon.
This is not a good bye though. I still believe in your hidden goals: good design, standards compliance, etc. — these should replace the "portability" buzzword — so I'll install you on a spare machine and/or under a virtual machine to be able to do eventual hacking and maybe GNOME maintenance. Oh, and of course I'll keep using pkgsrc under other systems.
Yours sincerely,
jmmv
I can't say I totally blame you, but it is sad news indeed...
ReplyDeleteI tend to agree. Seeing how there's no clear direction leading to conflicts and the rudeness with which "developers" tend to voice their opinion has annoyed me personally in the previous few days, too. Not for the first time, but it makes me wonder again if this is all worth it.
ReplyDeleteCan't blame you...
- Hubert
"Not for the first time"... that's exactly the problem. This happens way too often, and eventually you get tired. In fact, I've been wanting to write something like this for several months already. (There are exceptions though, and some of them are being demonstrated this weekend in the #netbsd-code Freenode IRC channel; take a look!).
ReplyDeletePlus, as some have stated, the developers that voice their opinion most are the tiny bit that has not contributed at all in the recent years... heck, "let the fresh blood do cool stuff"!
I unfortunately share a lot of Julio's concerns. I've recently given up on using NetBSD as a desktop (Mac OS X simply does a much better job) and daily NetBSD-current builds (fixing non-compiling code or set lists issues gets boring after some years). My server at home (running NetBSD 3.0_STABLE) got hung yesterday after the automount daemon crashed and the necessary ungraceful reboot took very long because NetBSD still hasn't got a journaling filesystem.
ReplyDeleteInstalling a Linux distribution becomes very tempting these days.
I share many of the sentiments, especially concerning the lack of direction. It has been a while since I have used NetBSD on the desktop. And I don't actively recommend it to others anymore. I have just one box (that is primarily chewing e-mail) running NetBSD, the rest is done in a virtual machine.
ReplyDeleteIt is sad, and difficult to find a replacement that I like well enough. I am currently running Linux on my desktop machines, but I'll look what FreeBSD and Solaris can mean to me as a replacement.
I'll still stick around contributing where I can (probably mostly WWW rotation work). But I can't really bring up the time (and motivation) to work on larger stuff anymore (like the guide).
-ddk
Although I still dislike Linux very much (for multiple reasons), I have to confess that I'm very impressed with Ubuntu. Just installed it a couple of days ago and everything works.
ReplyDeleteYes, it is still GNOME; yes, this desktop still lacks features. But all those that already exist work as expected and the overall desktop experience is quite good.
Of course, I cannot blame NetBSD for this completely. If GNOME cannot run equally well under it is because its developers use Linux for their daily tasks and generally do not care about portability, hance causing lots of random trouble when trying to build it under other platforms. And fixing them all is an extremely tough job.
But not only that... there are also some tools that are specific to the system, so being almost impossible to port them. Yet they come very handy to make the system behave as a single entity. Implementing similar tools for NetBSD/pkgsrc could require a lot of manpower.
jmmv, are you saying that want to leave netbsd development for linux development, or you're just giving up netbsd development for easier desktop use?
ReplyDeletePersonally, I gave up NetBSD for desktop use almost 4 years ago.
ReplyDeleteI agree with these sentiments. I'm working on projects that could be viewed as controversial. They may end up in my private tree.
I will continue to do things with NetBSD, but it's more and more likely to be as a hobby unless there is some turnaround.
-=cyber.
Let's go to DragonFly :)
ReplyDeleteI had forgotten that it was you that did the beep on halt thing. That thread was just embarassing. I haven't kept up as well as I would have liked with most of the lists (I'm not a NetBSD developer, but I like to know whats going on) but if that kind of thing is common, I really can't blame you. :( I would really like to see NetBSD become more inclusive and less bikesheddy (word of the day) because I don't care at all for Linux either.
ReplyDeleteHere's hoping things improve, I at least appreciate your efforts. :)
@Ernesto: DragonFly BSD has already
ReplyDeleteenough skilled kernel developers,
MirOS BSD could need 'em much more.
Well, I'm only a NetBSD user, but I can only agree with you. In fact, I never used NetBSD as desktop, because I allways believed that NetBSD's direction is on servers.
ReplyDeleteBut I don't understand one thing..
Instead of writing letters to blog, you should also write to TNF and core. And write not solitary, but together. I see at least three developers in comments, with Julio it's four. Four is a power (I really believe there are more). Think about this.
@anonymous (September 26, 2006 12:28 AM)
ReplyDeletetalk is cheap. what do you think will change if every NetBSD developer just started writing letters instead of doing actual work? i also am sick of politics but talking ad infinitum about it won't change a damn thing.
Hello Julio
ReplyDeleteUnfortunately this portability buzzword is even not som much a success from a user point of view. Ok if you know C and you are good at kernel hacking, it may be easier to port NetBSD to a new platform than porting Linux and the glibc. NetBSD boasts iteself to work on 54 platforms but I really wonder when someone last booted NetBSD on PS/2 or atari or algor :)
See http://mail-index.netbsd.org/port-algor/2006/09/
Cross compiling definitevely works well, but I experienced many other shortcomings. On sparc64 mounting a USB hard drive would crash the kernel. There were no X and no mozilla at that time ( last year ) On alpha I had also no X server, mounting a ext2 partition would fail. Finally on Interix which is one of the platform supported by pkgsrc, bootstrapping does not even work. On i386 the base system works very nice, but I experimented crashes on many multi threaded applications ( like gftp or various gnome components ) needed for a desktop use.
So If I have to use NetBSD it will be probably only the base system and use it as a gateway/firewall. For this NetBSD is clearly very good.
Regards and I hope you keep having fun free coding,
Manu
Hi manu,
ReplyDeleteuse modload /usr/lkm/ext2fs.o or how the LKM is called :-)
The X server must be compiled natively unfortunately.
-- Pavel Cahyna