Slashdot Mirror


Will Pervasive Multithreading Make a Comeback?

exigentsky writes "Having looked at BeOS technology, it is clear that, like NeXTSTEP, it was ahead of its time. Most remarkable to me is the incredible responsiveness of the whole OS. On relatively slow hardware, BeOS could run eight movies simultaneously while still being responsive in all of its GUI controls, and launching programs almost instantaneously. Today, more than ten years after BeOS's introduction, its legendary responsiveness is still unmatched. There is simply no other major OS that has pervasive multithreading from the lowest level up (requiring no programmer tricks). Is it likely, or at least possible, that future versions of Windows or OS X could become pervasively multithreaded without creating an entirely new OS?"

117 of 657 comments (clear)

  1. It makes sense with multi-core cpus by Thaidog · · Score: 5, Informative

    OSes like BeOS and Zeta are ahead of their time. With 8 core cpus coming out soon it just makes since with this technology... no programming tricks are needed.

    --

    ||| I still can't believe Parkay's not butter.

    1. Re:It makes sense with multi-core cpus by Anonymous Coward · · Score: 4, Interesting

      too true. The linux kernel beats the beos kernel in threading benchmarks, but the entire Be OS GUI stack (kernel, display, windowing, controls) were designed with multithreading in mind. X/KDE/GTK et al are relics based on 1986 era computing.

    2. Re:It makes sense with multi-core cpus by tolan-b · · Score: 4, Informative

      Haiku is coming along very nicely though, and it's open source.

    3. Re:It makes sense with multi-core cpus by LiquidCoooled · · Score: 4, Funny

      Haiku from BeOS
      Multitasking all programs without delay
      Open source victory

      --
      liqbase :: faster than paper
    4. Re:It makes sense with multi-core cpus by Your.Master · · Score: 4, Funny

      Five, Seven, and Five That's how a Haiku should go Not like you did it

    5. Re:It makes sense with multi-core cpus by LiquidCoooled · · Score: 2, Insightful

      ffs, nitpicking git :P
      v2:

      Haiku from BeOS
      Multitasking all programs no delay
      Open source for the win

      (5-7-5 syllables)

      --
      liqbase :: faster than paper
    6. Re:It makes sense with multi-core cpus by TheRealMindChild · · Score: 4, Funny

      Good job I am a software developer and not an English teacher isn't it?

      I don't think so.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    7. Re:It makes sense with multi-core cpus by man_of_mr_e · · Score: 2, Insightful

      The important thing to keep in mind is that BeOS was not a mature OS. In many ways, they had done just enough to get it going. My guess is that once they had the resources, it would have fattened up to the size of OSX or Windows easily, and all that performance you saw when it was young and new would go out the window.

      BeOS had a lot of problems as well, for instance the OS was written in C++, which meant that when you wrote drivers, they had to be in C++. The software loaded fast, because it wasn't very mature. It was like loading notepad or kedit. Simple and easy, but once big apps were running on it, they wouldn't be quite so snappy as they loaded in the dozens or maybe even hundreds of components.

    8. Re:It makes sense with multi-core cpus by Anonymous Coward · · Score: 5, Funny

      Seven syllables
      Not seven? so use gzip
      compress the fucker


      ;)

    9. Re:It makes sense with multi-core cpus by Corwn+of+Amber · · Score: 2, Interesting

      Hmm ... It depends what code would be easier to rewrite. I think that a new GUI to replace X would be a good idea, then yet-another Qt version, so KDE would work with next to no modification. Is it possible to rewrite a multi-threaded X? What would be needed to be replaced? I really don't know : do apps depend on the memory management of X and the fact that it only has one process? Or is it possible to write a fully multi-threaded X-compatible server? So there would just be that one package to rewrite... KDE/Qt has that nice signal/slot thing, it must be easy to write that in a way that makes use of multi-cores.

      --
      Making laws based on opinions that stem up from false informations leads to witch hunts.
    10. Re:It makes sense with multi-core cpus by jbrader · · Score: 4, Funny

      You were allowed you to graduate...

      Hahahahah! I found an error in your grammar rant, now you look even stupider than the guy you were trying to talk shit about. How does that feel you pedantic ass?

      --
      You are so boring that when I see you my feet go to sleep.
    11. Re:It makes sense with multi-core cpus by GeffDE · · Score: 2, Funny

      Otherwise it would have to be pronounced "Oh, sex."

      And that's not something many /.ers say a lot...

      --
      It has been a nervous year, with people beginning to feel like Christian Scientists with appendicitis.
    12. Re:It makes sense with multi-core cpus by dlockamy · · Score: 3, Informative

      huh? what BeOS are you talking about?

      libroot was in C, the api was all c++, but there was still a nearly posix subsystem in place via libroot.

    13. Re:It makes sense with multi-core cpus by djdavetrouble · · Score: 2, Funny

      ow you choose to read "BeOS" is a major syllable count factor. (oddly enough while I say "gee-oss" and "bee-oss", I say "oh ess eks".)

      I always thought "Be-OS" sounded more gangsta, kinda like bee-yotch or bee-atch or however you spell something that is a slang word.
      didn't stop everyone in IT from trying to make fun of me for installing it. I had a friend that developed on the platform, doing some kiosk
      type work, which it was well suited for. I had it running the cool particle graphics program, attraction, which also attracted people.

      --
      music lover since 1969
    14. Re:It makes sense with multi-core cpus by fractoid · · Score: 3, Funny

      Haiku samurai
      Shows us all how it is done
      Educational.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    15. Re:It makes sense with multi-core cpus by billcopc · · Score: 5, Insightful

      I don't understand this logic that a "full featured" operating system has to be slow. What the hell are you OS designers doing that's eating up all the juice ? Just because Windows XP preloads a gazillion binaries doesn't mean it's a good idea.

      An operating system's job is to mediate access to hardware and software resources. The fact that every modern OS is madly bloated is just proof that the world's OS developers are ADHD suburban twits getting lazy and gratuitous with fluffy GUI features, when really they should be focusing on two core things: device drivers and the almighty scheduler.

      Just think about it: Windows Vista is, on average, 10% slower than XP for generic tasks and gaming. Why the hell is that ? Someone fucked with the kernel and stuck things in it that don't belong there, like that ever-annoying popup security model.

      It's like any other optimization job: you tighten the hell out of the most frequently-called code snippets like the scheduler and memory manager. If your scheduler is so contorted and polluted that it can't even fit in the L1 Cache anymore, you should be beaten with your keyboard!

      The BeOS guys probably had a plan, along with some good brains and coding skill, and they stuck to that plan. If a feature isn't in the plan, it doesn't get coded; the system stays lean and fast, and you let the application developers handle all the shiny stuff. That's how it used to be, and still is in some circles... but not Windows nor Linux. That's where we went wrong.

      --
      -Billco, Fnarg.com
    16. Re:It makes sense with multi-core cpus by Jeremi · · Score: 2, Informative
      BeOS had a lot of problems as well, for instance the OS was written in C++, which meant that when you wrote drivers, they had to be in C++.


      This is incorrect -- kernel code under BeOS was written in C. It was possible to use C++ in BeOS kernel mode code if you knew what you were doing and what to avoid (e.g. exceptions) but it wasn't recommended.


      If you wanted to write a decent userland app in BeOS, OTOH, C++ was your only real choice.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    17. Re:It makes sense with multi-core cpus by Carewolf · · Score: 3, Informative

      KDE/Qt has that nice signal/slot thing, it must be easy to write that in a way that makes use of multi-cores.

      It is! In Qt4; it has transparent thread-safety across signals and slots, making it very easy to write multithreaded Qt4 applications. KDE is a little behind, but KDE4 is still going to be more multithreaded than KDE3.
    18. Re:It makes sense with multi-core cpus by moosesocks · · Score: 2, Funny

      Haikus are easy.
      But sometimes they don't make sense.
      Refrigerator

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    19. Re:It makes sense with multi-core cpus by man_of_mr_e · · Score: 4, Informative

      There are many factors that define the performance of an OS. One of them is the number of features it provides, and another is the timetable in which said features are delivered. Yet another is legacy compatibility.

      BeOS was new. It didn't have to be compatible with anything. But give it 10 years, and 2 Gazillion hacks to let old software continue to work. Give it hundreds or thousands of features, many of which are probably no longer even used by many people, but still have to be there because some small subset needs them. Give it features built upon other features and security patches upon other patches.

      Commercial software vendors seldom have the ability to ship software when it's ready, they have to meet timelines. Look at OS X, each new release cycle takes longer and longer because as the OS matures, it takes more and more time to wade through the existing code to change it. It gets slower because more conditionals have to be added to check for compatibility or security issues, or because it needs to do more than it used to.

      Linux (the kernel), on the other hand, seems to get better and better, faster and faster, with each new release. There is a reason for that, though. No commercial pressure to release, they can set an arbitrary release date and simply ship whatever features are ready, and do so relatively frequently because they don't have to worry about a large and complete OS release, just the kernel.

      Distro vendors, on the other hand, seem to be taking longer and longer between releases (not counting Debian, which has always been glacial), because as the body of software grows, it takes more and more work to maintain it. Distro quality depends largely upon how long they spend stabilizing releases.

    20. Re:It makes sense with multi-core cpus by dintech · · Score: 2, Funny

      Otherwise it would have to be pronounced "Oh, sex."

      And that's not something many /.ers say a lot...

      Are you sure? "Oh, sex, where art thou?"

    21. Re:It makes sense with multi-core cpus by jandrese · · Score: 2, Insightful

      IMHO, the primary reason BeOS died is that they never got a real web browser working on it, at least not until it was too late. The web was exploding right around that time and the lack of a web browser was the kiss of death. Worse, it was a pain in the rear to compile Open Source apps on BeOS, the library support was incomplete and apparently there was some weirdness with the socket layer (which you need when you write an internet application). There were efforts to port open source projects to BeOS, but they were always slow with the internet applications.

      Most of my experience comes from a roommate I had in college who used it. He liked showing off how he could play 4 mp3s simultaneously (the OS I was using, FreeBSD, had difficulty playing any MP3s at the time), but other than that he was always lacking for application support. I wanted to try it out once, but the hardware support was too picky for my meager budget--I would have had to buy a bunch of new hardware just to get stuff that was supported, which I couldn't afford.

      --

      I read the internet for the articles.
    22. Re:It makes sense with multi-core cpus by spun · · Score: 2, Funny

      Otherwise it would have to be pronounced "Oh, sex."

      And that's not something many /.ers say a lot... Yes it is. As in: "Oh, sex. I had that once," or "Oh, sex. I know what that is, I read about it in a book!"
      --
      - None can love freedom heartily, but good men; the rest love not freedom, but license. -- John Milton
    23. Re:It makes sense with multi-core cpus by PitaBred · · Score: 2, Interesting

      I assume those 8 movies are all small so they all fit in memory and don't let the hard drive become the bottleneck, and low-resolution so they don't engage the tilt bits? Vista may be a bit faster than XP, but that doesn't make it a useful operating system for people who want to go where they want to today, rather than go to whichever sandbox Microsoft has approved today.

      That being said, I've had multiple HD resolution videos running on my Linux laptop and desktop, flawlessly, on multiple Beryl cube sides. Vista isn't faster than Linux in any meaningful measure, and is slower in many instances because of it's insistence on DRM and encryption over INTERNAL BUSES.

    24. Re:It makes sense with multi-core cpus by antiMStroll · · Score: 3, Insightful
      ".. it was more due to the fact that BeOS had very little capabilities that were tying up its resources. "

      Oh bullshit. Perfect timing as well. Not five minutes ago my work desktop locked up for 45-60 seconds opening a simple HTML e-mail in Outlook and XP. As has been depressingly common with Windows for ages, having difficulties finding a remote source it simply ignored user inputs to concentrate on a network task presumably requiring well under 1% of the hardware's capabilities. Every Outlook window became unresponsive, as did server-hosted toolbars, etc.. These are architectural design decisions, not 'features' cutting off the use, unless 32-bit colour is now an extreme Windows desktop feature.

    25. Re:It makes sense with multi-core cpus by fm6 · · Score: 2, Interesting

      Nonsense. A single-threaded program doesn't magically become multi-threaded just because you're running it on a multi-core system. The programmer still needs to do "tricks" (or, hopefully, use a solid concurrency library) in order to create threads. A multithreaded program will run faster if there's more than once core, but even then it tops out if there are more cores than threads.

      Oh yeah, and if there are lots of wait states in your program so that most of your threads are idle most of the time, it doesn't matter how many cores you have.

    26. Re:It makes sense with multi-core cpus by ultranova · · Score: 2, Informative

      The linux kernel beats the beos kernel in threading benchmarks, but the entire Be OS GUI stack (kernel, display, windowing, controls) were designed with multithreading in mind. X/KDE/GTK et al are relics based on 1986 era computing.

      As I've understood it, X is simply a protocol, and the X server itself could be single- or multithreaded. That the current ones aren't (?) is simply an implementation deficiency.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  2. That's nothing... by Anonymous Coward · · Score: 4, Funny

    Back in the OS/2 days, we could format 72 floppies simultaneous with no slowdown to our 14.4 connections!

  3. Microsoft's plan is to keep adding cores... by Joce640k · · Score: 5, Funny

    Microsoft's plan is for us to keep adding CPU cores in the hope that at least one of them won't be deadlocked at any given moment in time.

    --
    No sig today...
    1. Re:Microsoft's plan is to keep adding cores... by Anonymous Coward · · Score: 2, Insightful
      Microsoft's plan is for us to keep adding CPU cores in the hope that at least one of them won't be deadlocked at any given moment in time.

      Nice try with the /. friendly, but ultimately meaningless and ignorant, tirade. CPU cores don't get deadlocked, threads in a cyclic wait pattern get deadlocked. It doesn't matter which core they run on. You could have a million cores, but if two threads are deadlocked, you're still screwed as far as the program goes. And the article was about BeOS, not microsoft!

    2. Re:Microsoft's plan is to keep adding cores... by Urusai · · Score: 2, Informative

      Part of the problem is that Windows was originally a cooperative multitasking environment (like MacOS). When they added real threading (in Windows 95, I think), each application was still single threaded, which meant having the GUI and underlying processing on the same thread, making responsiveness sucky. They never bothered making the OS interface (Explorer) multithreaded, which is why on XP you can still crash Explorer and thus your entire desktop (although Explorer restarts after a few seconds).

      My experiences with Linux show it suffers big time from process hogs, especially IO process hogs, such as when you copy large directories, even with the low-latency desktop kernel options enabled, so don't think it's just a Windows problem.

    3. Re:Microsoft's plan is to keep adding cores... by drsmithy · · Score: 2, Informative

      They never bothered making the OS interface (Explorer) multithreaded, which is why on XP you can still crash Explorer and thus your entire desktop (although Explorer restarts after a few seconds).

      Explorer has been multithreaded, well, basically forever. Certainly since at _least_ Windows 2000 and I'd happily wager since Windows 95 and NT4. P>The reason your Desktop disappears if Explorer crashes is because it's Explorer that is responsible for drawing the Desktop (and the Taskbar/Start Menu).

  4. Multithreaded won't be optional any more. by cmowire · · Score: 5, Insightful

    Given that most machines are already starting to come default with 2 cores, and you can fit 8 cores (2 CPUs) in a nice desktop package, it's pretty clear that it's going to be a requirement.

    It's not entirely the operating system's fault. The biggest advance of BeOS wasn't necessarily just that the kernel was designed to multithread nicely, Be also did their best to force you to write multithreaded code when you wrote a Be application.

    I suspect that the first thing that's going to become clearly a performance bottleneck is the applications. And that's not going to be fun, because there's a lot of applications out there and you can't just magically recompile them with threads turned on and see much difference. You need to synchronize the data structures for multiple threads touching them at the same time and split things up so that you can actually keep a decent number of cores busy. This is not trivial when you are talking about an app that somebody wrote single threaded in the mid 90s without any notion that threads might be useful later.

    1. Re:Multithreaded won't be optional any more. by larien · · Score: 3, Insightful
      Multithreaded CPUs are become more and more common, yes, look at Sun's Niagra with 8 cores & 4 threads per core (looks like 32 CPUs from the OS...). In the consumer desktop space, Intel/AMD both have 4-core CPUs either in the market or coming soon.

      As for applications - if you're running 5 applications, multi-cores will help without recompiling assuming the kernel's scheduler is reasonably sane and kernel writers are getting smarter at writing different schedulers. If you are running one single-threaded app, multiple cores aren't going to help you much at all. Of course, the other advantage of multi-threading apps (even on a single core) is that if the app is blocking on one thing (I/O is most common for blocking), the other threads can carry on doing work.

    2. Re:Multithreaded won't be optional any more. by kripkenstein · · Score: 2, Informative

      Multithreaded won't be optional any more.[...] Given that most machines are already starting to come default with 2 cores, and you can fit 8 cores (2 CPUs) in a nice desktop package, it's pretty clear that it's going to be a requirement.
      Sure, the trend towards more cores does imply that an inherently multithreaded OS makes more sense. But on the other hand, the main advantage heard about such pervasive multithreading is 'better responsiveness', and I am not sure that modern OSes are 'unresponsive' - current Linux desktops seem very responsive even when running multiple apps (except Firefox, btw, which locks up often for a second or two on intensive websites. Annoying, but still the best browser out there.)

      So, I am not convinced a rewrite of an OS just to add pervasive multithreading is a good idea. Anyhow, for those interested in that concept, there is Haiku, which is the FOSS OS inspired by BeOS. Looks like they are making nice progress (but nothing you'd want as your main productivity OS just yet).
    3. Re:Multithreaded won't be optional any more. by ShieldW0lf · · Score: 3, Interesting

      Sure, but most desktops don't run more than one or two apps at a time. So, 2-4 cores is all that you get "for free" without new apps. Sure, if I'm building a web server application, it'll scale much more gracefully, but it already scales rather gracefully.

      Are you serious? The idea is to have all your programs running all the time, and interact with them whenever you want with instantaneous response. Not to mention that most apps people run nowadays either are servers (P2P, LAN Shares, etc), clients that sit around listening to servers (IM) or querying them with frequent regularity (Email Client). And the progression is towards having personal servers that you can connect to using either a local or remote client.

      The next generation of computing is going to come from the vast multitude of developers who are accustomed to writing client-server applications applying what they know to computers that behave like a server cluster. They are better equipped to approach the problems and rewards of this architectural progression than the guy who has been working in the traditional application space. Now, that's a generalization that's full of exceptions, but it'll be still be proven true on the wider scale.

      --
      -1 Uncomfortable Truth
    4. Re:Multithreaded won't be optional any more. by TheRaven64 · · Score: 2, Interesting
      How many applications do you run that peg a single core at 100%? I use three:
      • GCC.
      • Final Cut Express.
      iTunes used to be on that list when ripping CDs, but since my last upgrade the CD drive has become the bottleneck. GCC doesn't need to be multithreaded, because I can always add a -j option to my make command and run one instance of it on each code (and a floating spare one or two for when one CPU is waiting for I/O). Final Cut can consume pretty much as much CPU power as it's possible to throw at it, but anything involving video is an embarrassingly parallel problem (decompose along the time access or into macroblocks as you wish).

      There is no reason to add support for SMP machines to any program that only uses a fraction of a single core's power. If you're doing something in the background then it might be worth spawning off a worker thread to keep the UI responsive, but most other things are better handled with co-routines, which are much easier to reason about (hence the fact that pretty much every GUI toolkit uses some form of them).

      When you are not performing embarrassingly parallel computations, threads aren't such a good idea, since you end up with a lot of synchronisation issues that can be avoided by moving to an asynchronous model such as that used by Erlang.

      --
      I am TheRaven on Soylent News
    5. Re:Multithreaded won't be optional any more. by wwahammy · · Score: 3, Insightful

      Look at Windows. You realistically have somewhere in the area of 5-10 programs running simultaneously. Most of those programs take very little CPU and memory but in certain cases you will notice it. For example, the entire audio stack is service, so is UPnP, wired networking, wireless network discovery, indexing, etc.. Those things run most of the time and don't take a huge amount of resources but they do some which can lead to situations where they'll decrease system responsiveness. This isn't a standard Slashdot criticism of Windows, just an acknowledgement of the fact that usually LOTS of things are running when it seems like none are.

      As an aside, I would think that a true micro-kernel based OS would work the best using multi-core. Putting every possible function in a different process would seem to be a better use of a multi-core architecture than to have larger kernels.

    6. Re:Multithreaded won't be optional any more. by nomadic · · Score: 3, Informative

      current Linux desktops seem very responsive even when running multiple apps

      I'm guessing you never used BeOS; by comparison Linux looks weak in terms of responsiveness.

    7. Re:Multithreaded won't be optional any more. by misleb · · Score: 3, Insightful

      Are you serious? The idea is to have all your programs running all the time, and interact with them whenever you want with instantaneous response. Not to mention that most apps people run nowadays either are servers (P2P, LAN Shares, etc), clients that sit around listening to servers (IM) or querying them with frequent regularity (Email Client). And the progression is towards having personal servers that you can connect to using either a local or remote client.


      Are YOU serious? Not one of those applications/services you mention requires much CPU. A single CPU with a good scheduler can easily handle all of that with good responsiveness and little or no loss in overall performance. Well, in the case of Windows XP, it woudl also help to have a sane virtual memory system. A lot of the responsiveness problems you see on Win XP machines (Vista may have addressed this) is because Windows likes to swap apps out to disk when you minimize them. It has very little to do with available CPU power.

      -matthew

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  5. I hope so by datapharmer · · Score: 4, Interesting

    I still hate that BeOS went belly up. It was a great operating system but was crushed before it ever got very far. The hardware support was also amazing: it would run winmodems and other windows only hardware. I've never tried writing an operating system, but I hope some of the features from BeOS make it into linux/OSX. One interesting thing to note is Be was originally a mac alternative and was only later moved to x86.

    Another cool operating system to check out is MenuetOS... it is written entirely in Assembly! Very fast boot times and the GUI and eevrything fits easily on a floppy!

    --
    Get a web developer
    1. Re:I hope so by Bryan+Ischo · · Score: 3, Interesting

      Well, just for another perspective to balance this out, I found BeOS' hardware support to be pretty poor and the operating system pretty much left you high-and-dry if your hardware wasn't perfectly supported. To whit, I tried to get a modem to work with BeOS back in the day (1999 or so) and if I recall correctly (it's been a long time), I was getting very generic error dialogs ("Error 0xFFFFFFFF occurred") with no other useful diagnostics whatsoever. I vaguely remember playing with some settings and getting rid of the messages but the modem never worked. The operating system would "think" it was working (no error messages, the OS would show that I had connected to the ISP), but it would never transmit any data. There were literally ZERO tools to help me diagnost this, and the OS refused to give me ANY information at all on what was going on.

      I distinctly remember thinking that it was very, very much like Windows in this regard. Linux was awesome because the operating system could give you a wealth of information about what it was doing, so that if you put time into it, you could diagnose and fix pretty much any problem. The tools were there for you. With BeOS and Windows, where the tools and logging would be, was simply a big empty void. There was nothing you could do if your hardware was not perfectly supported. You could not figure out what was wrong. The operating system had no facilities to support any kind of diagnosis of the problem.

      I never expected BeOS to support every piece of hardware out there. But then again, I *did* expect it to, since it was such a new and unsupported OS, provide tools to the user to let them solve problems. But BeOS didn't, and for this reason, I think that it was not a very good OS. Sure it had nice pretty demos, but I'm guessing that Be the company focused all of their efforts on the code paths necessary to enable the pretty demos, and left all of the other critically useful (and underrated) aspects of the operating system unimplemented.

      Perhaps with enough time, they could have addressed that. But BeOS, as it was, was only a cute toy, in my opinion.

    2. Re:I hope so by Bryan+Ischo · · Score: 2, Informative

      Yes, I used it. I paid $100 or more for it if I remember correctly. I was very excited about it, thinking it would be really cool. It definitely had nice demos. I don't know why it didn't open a debugger when I got errors trying to use the modem. I really don't. Who knows, maybe it did, and I've forgotten - it was 8 years ago. But in any regard, whereas I expected to be able to find documentation on how to configure the modem, how to manually force IRQs and DMA addresses and stuff, I found nothing. If it wasn't covered by one of the few GUI controls for that particular device, I couldn't do it. I gave up.

      Maybe there were workarounds that I didn't know about. I am not sure. All I know is I was never able to figure it out, and I went back to Linux in a hurry. It's possible that the problem was with me and that BeOS was an absolutely perfect, completely polished and bug-free product. People seem to be suggesting that's so. But my vote is "not worth it", and apparently the market agreed with me ...

  6. Re:Question... by cmowire · · Score: 5, Funny

    BeOS was like JFK.

    The both got gunned down before we could possibly see any downsides to them.

    There were a few architectural decisions in BeOS that I felt would have resulted in great amounts of pain and suffering 10 years later.

  7. Threading isn't any easier when it is pervasive by mwadams · · Score: 5, Interesting

    It isn't really the pervasive multithreading that does the job on responsiveness for BeOS, and nor does having the "two threads per window" thing (which I think is what the poster is referring to in terms of "pervasive multithreading) avoid "programmer's tricks" - in fact, you have to be just as careful as if you were developing with Windows, and span up a background thread. One issue for BeOS developers was the amount of hard thinking you had to do to perform simple tasks in a pervasively multi-threaded environment, when you're still having to deal with all the pitfalls of lock-based programming.

    However, taking only a few cycles to spin up or kill a thread (rather than the 10,000 plus it takes Windows), or perform a context switch, is a significant help. (There used to be an interesting article benchmarking those things on the Be website, but I can't find it any more).

    MS have also added some more interesting stuff to the scheduler in Vista, which helps with uninterrupted sound or movie playback, so at least some of that stuff is possible without a complete redesign.

    1. Re:Threading isn't any easier when it is pervasive by PCM2 · · Score: 2, Informative

      MS have also added some more interesting stuff to the scheduler in Vista, which helps with uninterrupted sound or movie playback, so at least some of that stuff is possible without a complete redesign.

      Really? Man, tell that to my box running Vista Media Center. Media Center has a helpful (cough) habit of capturing the mouse cursor to the screen running the Media Center app. Hit the Windows key to break out of it and your video playback is interrupted for as much as 20 seconds while Windows struggles to switch screens and render the Start menu. What's more, despite the fact that Vista has been re-engineered to support multiple sound output devices, it is not possible to assign one particular device to Media Center. In other words, you cannot force Media Center to always use your SPDIF output for sound and then use the computer speakers for other apps. You MUST specify SPDIF as the default sound device for the entire OS if you want Media Center to output sound in that way. It's clear that, for as powerful and multi-thread capable as modern hardware may be, Vista Media Center was written with the assumption that your PC will become a single-purpose appliance. It's kinda pathetic.

      --
      Breakfast served all day!
  8. BeOS rocked! by Anonymous Coward · · Score: 4, Interesting

    A few years ago, on a Dual Celeron 366Mhz with 256MB of RAM, I went out of my way to attempt to crash it. I opened about 120 OpenGL demos with only minor decrease in performance. After inherriting that mainboard, processors and RAM from my uncle and then increasing it to 512MB, the same test ground both FreeBSD and Linux to a halt.

  9. Better than xubuntu by fishthegeek · · Score: 3, Informative

    for older (p2 & p3) laptops. I have the opportunity several times a year to receive old laptops to use to teach my students with. Whenever I need to I use Beos Max on the machines and it is just amazing to watch how effecient and responsive Beos really is.

    Check out Beos Max

    Beos is still a lot of fun on older hardware.

    --
    load "$",8,1
  10. Re:No Maybe Yes by Anonymous Coward · · Score: 3, Interesting

    Well, it's not really an OS issue. Sure the OS has to provide some underpinnings so that the programmers can take advantage of it. But I think most of it is already mature enough for applications to use it. Why don't they use what is already there? I mean everybody whines about how unresponsive X is. Until X is rewritten to be multi-threaded, you won't see the UI responsiveness that you see in BeOS. On your typical Linux box, X is the real bottleneck. There is no point in rewriting QT or any UI toolkit until X is fixed. You won't be able to replicate the multiple videos trick unless X is fixed first and then the applications are modified to use multi-threading to its fullest.

  11. I don't get it by nanosquid · · Score: 4, Insightful

    The ability to play eight movies simultaneously is a bad way of determining OS thread performance. Most modern operating systems have efficient, low-overhead threads. How well they play multiple videos depends much more on the display pipeline, the codec, and how the players adapt to load. To say anything about system performance, you'd need to know frame rate, resolution, codec, postprocessing options, etc.

    Overall, I really don't see anything in BeOS that you don't get as well or better in a modern Linux system. BeOS has some efficiency gains from having been developed from the ground up with little need for backwards compatibility, but that's probably also why it wasn't successful in the market. And threading and scheduling in particular are highly efficient and mature in Linux.

    (Not that OS X is basically a hacked NeXTStep; the NeXTStep kernel is Mach, the same kernel that is the basis of the GNU Hurd.)

    1. Re:I don't get it by nanosquid · · Score: 2, Informative

      Let me know when a modern linux system can asynchronously notify a process that a file/directory has been modified.

      You mean--like every one? Beagle uses it, and so does Nautilus. It's been there for a number of years.

    2. Re:I don't get it by nanosquid · · Score: 3, Interesting

      It's ok. Too bad there is no recursive directory support in inotify. Software has to add a watch for every subdirectory of a tree it wants to monitor.

      So what? Why do you want to put more functionality into the kernel than necessary? You can write user-mode code around inotify for recursive watches--Beagle does just that. If enough people wanted it, it could be wrapped up as a library.

    3. Re:I don't get it by moosesocks · · Score: 2, Insightful

      No, it's not at a good rubric for a Computer Scientist to compare the schedulers of two different operating systems.

      However, from the user's perspective, it's a very big deal. Having used BeOS a few years ago on what was very modest hardware (even at the time), I can easily say that it felt like it was the fastest and most responsive operating system that I've ever used.

      Even Linux on modern hardware doesn't come close to the snappiness of BeOS. You also can't beat the fact that it could boot from BIOS to the desktop in under 10 seconds (again, on a *very* modest PC).

      Be should have been the future of Operating Systems, and it's an absolute shame that the code is lying to rot under Palm's guidance. Windows, Linux, and MacOS simply can't touch the simple elegance and efficiency that BeOS mastered almost 10 years ago, which is an absolute shame. (Remember that BeOS was released alongside Mac OS 9 and Windows 98)

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    4. Re:I don't get it by The+One+and+Only · · Score: 2

      Hacked? Mac OS X is Nextstep, except Nextstep 4.0 was called Mac OS X 10.0 for marketing purposes. All that was changed was the UI and graphics engine. And it was ported to a different processor. And another API was added. And a VM was added for Mac OS 9. Other than that it was exactly the same OS--but really, I'm sure you can find two Linuxes that are more different from each other than Nextstep and Mac OS X are.

      --
      In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
    5. Re:I don't get it by renoX · · Score: 2, Interesting

      >>Well, you didn't look close enough to the demo: he launched 5 application simultaneously and had them running in a snap and whatever he did, the OS stayed responsive and very fast.
      >So what? I can launch 20 applications simultaneously in Linux and have them running in a snap;

      Well, I'm using Linux everyday at work, and I tell you: it doesn't feel responsive.
      I played with BeOS (quite some time ago now) and it felt smooth, quick, reactive (on a PC ten time less powerful).

      > that just isn't a big deal. Whether the OS stays responsive and fast depends on the apps.

      Sure, if you ported FF to BeOS, it would suck as much on BeOS as it sucks on the other OS, that's true, but it's also true that using BeOS and its application felt responsive because they designed the applications which came with the OS, the toolkits, the programming guides this way, whereas using Linux or Windows don't feel responsive, and IMHO *this is* a big deal.

      >If you launch Firefox, [..] simultaneously on BeOS, I guarantee you it would also bring it to its knees.

      The thing is, you can bring an OS to 'its knees' while still making it 'responsive', and the video showed it quite well.. I remember another video where they overloaded the computer so that video rendering was stuttering, but the interface was still smooth, that's a priority issue and BeOS was nicely tuned for desktop load.

      >But everybody uses Firefox because, in the end, it's still fast enough.

      Well, I started using Opera because I don't think that FF is responsive enough. I don't understand why FF has a bigger marketshare than Opera: I think that Opera is better than FF.
      Currently I'm using 50% FF and 50% Opera because I cannot stand Opera's weird tab management scheme (which cannot fully emulate FF tab management), but as soon as they fix this, I'll gladly drop FF until it becomes responsive (I'm not holding my breath)..

  12. Haiku by Keruo · · Score: 4, Funny

    Is not haiku(beos) open source?
    Take the features and port to linux.
    New scheduler rules them all.
    Speed improvements would increase the desktop performance.
    As they would increase performance with services.

    --
    There are no atheists when recovering from tape backup.
  13. Uh, IRIX anyone? by pathological+liar · · Score: 2, Funny

    Aside from having "legendary responsiveness", from a single CPU box to SMP monstrosities, you could even guarantee disk/cpu/whatever throughput.

    A lot of the old unixes had "legendary responsiveness"; you are not a unique and beautiful snowflake.

    BeOS fanboys are funny.

    1. Re:Uh, IRIX anyone? by Lost+Engineer · · Score: 3, Insightful

      Yeah, but yesterday's supercomputers are todays commodity machines. The last IRIX "super"-computer I used had 16 processors with a uniform memory architecture. We're quickly approaching that level on commodity hardware. My el-cheapo box has 2 processors with a uniform cache-coherent memory architecture.

      What I'm getting at here is that perhaps we could look to the past for some ideas about multi-threading, and IRIX is not a bad choice at all, particularly since it was Unix-derived, like the Linux we use now, whereas BeOS is not.

  14. Tried (for Windows) and killed by gnetwerker · · Score: 4, Interesting

    Recall that this was the effet of Intel's NSP (the ill-named "Native Signal Processing"), a real-time multui-thread scheduler inserted at the device-driver level of Windows. Combined with something called VDI (Video Direct Interface), which allowed applications to bypass the Microsoft GDI graphics layer in certain ways, this allowed multiple video, graphics, and audio streams, mixed and synchronized, on circa-1993 computers, something largely not even possible today. While NSP was intended primarily for media streams, its technology was broadly applicable to more responsive and vivid interfaces. The result was Microsoft's threat to cut off Intel from future Windows development and specifically to withhold 64-bit support from Itanium, to more publically support AMD (which they did, for a while), and to threaten any OEMs using the code with withdrawal of Microsoft software support. Much of this was detailed in the Microsoft anti-trust trial and the accompanying discovery documents. Under this pressure, Intel abandoned the software, transferring VDI to Microsoft (it formed the core of what was later called DirectX), and outright killing NSP. Andy Grove admitted to Fortune magazine "We caved." (http://cyber.law.harvard.edu/msdoj/transcript/sum maries2.html) This is not to suggest that this was the best or only way to do this, or that others haven't done it and done it well. But despite the best efforts of Linus and friends, Windows remains the dominant desktop OS, and Windows continues to be built on a base of 1970s-era operating system principles. Microsoft has, and continues to, build substantial barriers to anyone trying to substantially modify the behaviour of Windows at the HAL/device layer. Whether VMWare and equivalent virtualization technologies are finally a camel's nose under the tent edge remains to be seen. But as long as Windows remains the dominant desktop OS, you can expect the desktop to lag 10-15 years (at best) behind the state of the art in OS, GUI, and real-time developments.

    1. Re:Tried (for Windows) and killed by CajunArson · · Score: 4, Insightful

      Windows continues to be built on a base of 1970s-era operating system principles.


      Thank Gawd Linux isn't using any relic of an OS that started in the 1970's as its base! No, no, all 100% 21st clean legacy-free implementation there.

      On a more serious note, I used Beos myself back in the day. It was definitely more responsive than Win98 was, but not everything was perfect either. The networking implementation absolutely sucked. Oh, it had lots of threads, its just that the threads were not all that beneficial to actual performance. The networking stack and some other forms of processing in the system that handle streams of many relatively similar tasks would probably parallelize better via a pipeline scheme where parallelism is achieved by having independent stages of the pipeline run in parallel (much as CPUs break up the task of executing instructions into a pipeline). The type of parallelism that works best can depend on the application, and the one-size fits all philosophy is not usually correct no matter what the solution is.

      --
      AntiFA: An abbreviation for Anti First Amendment.
  15. Yes by MarkPNeyer · · Score: 5, Interesting

    I'm a CS grad student at the University of North Carolina. I've never used BeOS, but I'm confident that responsiveness will increase, because the work I'm doing right now is attended to address this very issue.

    The thing that makes multi threaded programming so difficult is concurrency control - it's extremely easy for programmers to screw up lock-based methods, deadlocking the entire system. The are newer methods of concurrency control that have been proposed, and the most promising method (in my opinion) is 'Software Transactional Memory' which makes it almost trivial to convert correct sequential code to code that is thread-safe. Currently, there are several 'High Performance Computing Languages' in development, and to my knowledge, they all include transactional memory.

    The incredible difficulties involved in making chips faster are precipitating a shift to multicore machines. The widespread prevalence of these machines, coupled with newer concurrency control techniques will undoubtedly lead to an increase of responsiveness.

    --

    My blog
    1. Re:Yes by rivimey · · Score: 2, Interesting

      The best way, in my opinion, for people to create an application that uses concurrency is to design it that way. I know that sounds trite, but it's true. A simple example. If you start with a very large number of parallel processes, and wish to create a sequential version of them, the solution is so simple we delegate it to OS run-time in the form of the scheduler. If you have a single sequential process, and wish to create a large number of parallel process, the problem is so difficult that, in the general case, you can't (although some compilers manage some parts of the job, and some processors manage some parts). The formalism that has proved itself time and time again in getting parallel design right is Hoare's CSP, which promoted the idea of autonomous processes sending and receiving discrete messages to each other. The reasons for this include: - a process' memory (state) cannot be changed without its explicit say-so (because messages must be accepted, not just sent). - various properties ensure "WYSISYG", or compositional, programming - if you put two processes together that have been independedntly tested, you can be sure that their behaviour doesn't change just because you've put them together. This is not true of pthreads/winthreads (in general). - because there is a formalism (CSP) behind implementations such as JCSP (http://en.wikipedia.org/wiki/JCSP) there are clear program transformational rules, which helps in many ways to make programs safer. Do have a look... One last point. Once you have a somewhat threaded[1] system, UI responsiveness is, on modern systems, mostly a function of program size. Large programs (including the OS) find it very difficult to be responsive because the CPU is being asked to access items all over memory. The reason that is bad is that a memory access that misses CPU cache incurs an enormous penalty - maybe as much as 1000 CPU cycles - during which the processor is often twiddling its thumbs. Reducing code bloat is essential to improve this, not increasing the number of threads. [1] that is, tasks that take noticeable time are separated out.

      --
      Ruth Ivimey-Cook
      Software Engineer and Author
    2. Re:Yes by chiph · · Score: 2, Insightful

      Forgive me, but STM is a crutch.
      Yes, it will help the programmer masses not shoot themselves in the foot, but the overhead in STM is phenomenal, and you're relying on Moore's Law to save you.

      If you want a responsive system (running on thread-unfriendly OSs like Windows) there's no substitute for knowing what you're doing.

      We currently have some offshore developers who are peppering their code with Thread.Sleep() statements, with sleep values selected so that the code kinda-sorta works on their machines. They might as well as be doing Thread.Sleep(Rnd()) for all the good it's doing them.

      What's needed is some education in how to write multithreaded programs -- and most universities are not able to provide that education or experience in the time available for a bachelor's degree.

      I wish that Palm had open-sourced the BeOs source when they acquired the company. Or at least the parts that weren't encumbered by other people's IP. If it had been placed on Sourceforge, it would have been a good starting point for people to learn how to do it correctly, and gotten some eyeballs on it to fix some it's warts.

      Chip H.

  16. Proof MS set computer industry back by Tony · · Score: 3, Insightful

    I think both NeXTStep and BeOS are living (dead) proof that Microsoft set the computer industry back over a decade. It wasn't until MS-Windows 2k that MS-Windows was even close to NeXTStep in features, and the cost was a lack of simplicity. (The only downside to the NeXT: Netware networking sucked. But Netware networking sucked on everything but DOS, so I guess it's no surprise.)

    Same with BeOS. It had many features, including stability, ease-of-use, and responsiveness that MS-Windows can't seem to find today. Granted, neither can GNU/Linux or Mac OSX, but since they are hardly the predominant OS, I can't really fault them to the same extent.

    Anyway, it's an old rant. Never mind the ravings of an oldster who never got over the sopranoing Microsoft gave DR-DOS. Those like me are just bitter our careers turned from fun and interesting to tedious and dull because of Microsoft. Y'all go on and play with your shiny new toys. No, really, don't mind me. I'm just gonna sit up here on my porch and get rip-roaring drunk and talk about the old days, whether anybody's listening or not.

    --
    Microsoft is to software what Budweiser is to beer.
    1. Re:Proof MS set computer industry back by drsmithy · · Score: 2, Informative

      It wasn't until MS-Windows 2k that MS-Windows was even close to NeXTStep in features, and the cost was a lack of simplicity.

      Depends on what you're measuring. NT had (still has, comparing to OS X) better internals - SMP, fine-grained locking, etc, etc.

  17. Re:Question... by cmowire · · Score: 5, Insightful

    I believe that's covered by "There were a few architectural decisions in BeOS that I felt would have resulted in great amounts of pain and suffering 10 years later."

    Rewriting things from the ground up, without acceptable justification, has never been an effective strategy.

  18. Amiga beat them all by Anonymous Coward · · Score: 4, Informative

    Serious back in the mid 1980's I used to love putting PC and Mac owners to shame by showing them literally dozens of open, active graphics applications displaying animations, while formatting a floppy disk, and downloading a file online, and still having a normal responsive system with no hic-ups, all in a computer with on 128MB RAM.

    Amiga was a multi-tasking, multi-threaded OS, with multiple processors (graphics and I/O were separate co-processors operating on opposite clock cycles from the CPU, and the graphics co-processor could be dynamically loaded with special executable code).

    It was so far ahead of it's time that people today still don't believe it existed in the 80's when I tell them about it.

    But just because it was better than everything else did not assure it's success. A concept the BeOS fanbois might be familiar with.

    1. Re:Amiga beat them all by nogginthenog · · Score: 5, Insightful

      128MB? In the mid 80s? Maybe you mean 4Mb :-)

    2. Re:Amiga beat them all by GreggBz · · Score: 5, Informative

      Hey, I'm all for Amiga's but in the mid Eighties, if you had 128MB of ram and was downloading a file online, you must have been from the future.
      What the heck are you talking about?

      Just to be a little more correct here, I'm no hardware engineer but will try to be far more accurate.

      The Amiga had a great messaging system in it's OS, you could easily pass messages to other windows and programs in intuition. Further, you had all that ARexx stuff, and you could script programs to interact very easily with it. Basically, every program could listen on it's own ARexx socket for commands from other programs. Of course, there was the poor (read, no) memory protection which made things very unstable if you did not know what you were doing. Despite all this cool stuff, the OS was actually the weakest link. It was rushed. I remember reading specs on the original intended, but non-implemented file system, and it was about as robust as a single user file system could possibly get.

      You also had preemptive multitasking (not true co-operative) and a fantastic unified memory architecture with a very fast blitter. Another nice thing was
      that the kernel was contained on ROM so that it booted quicker then any other platform of it's day, and still faster then most this day. And all those chips played nice
      and were synced to an internal clock that ran on NTSC (or PAL) timings. This, of course, meant that interrupts worked seamlessly, and the chipset was handily compatible with video signals from television equipment. That last thing turned into an incredible boon for the entire film and television industry.

      The strength of the Amiga was it's bus and it's architecture. They absolutely nailed so many things in it's design, it really was a thing of beauty.

    3. Re:Amiga beat them all by Anonymous Coward · · Score: 3, Informative

      Corrected the memory size in another reply. The base system had 256KiloBytes of RAM. Sorry for the mix up, I'm so used to putting MB after memory sizes. ;-)

      As for downloading files online, back then "online" meant downloading from BBS systems. The closest thing to the internet back then for the average consumer was FidoNet.

      http://en.wikipedia.org/wiki/Fidonet

      And yes, the lack of an MMU, as well as a lack of FPU, in the CPUs used in the early models was a shame. But it did keep the price of the system within reach of the average Joe Computer Geek.

    4. Re:Amiga beat them all by man_of_mr_e · · Score: 3, Insightful

      Apart from the corrections already brought up, the Amiga was rife with limitations and problems of its own. It worked great in the narrow range that it was designed for, but had all kinds of other issues. For example, upgrading the video was a hack job that usually require patching the ROM libraries with ones that new about the new video hardware. It was tightly integrated, which meant doing anything outside what it was designed for was often difficult and expensive.

      And I was an amiga fanatic. And, while I held out hope that Commodore would get their act together and provide the features that were rumored and needed (DSP's, retargetable graphics, etc..) I always knew it would never happen. If only Dave Haynie had been allowed to do what he wanted, but then again that probably would have made it too expensive for people to buy.

    5. Re:Amiga beat them all by wall0159 · · Score: 3, Informative

      "128MB? In the mid 80s? Maybe you mean 4Mb :-)"

      Actually, I think the GP probably meant 128KB.

      My parents bought a 486SX33 in 1994, and that had 4MB, but in 1985....

    6. Re:Amiga beat them all by snuf23 · · Score: 2, Informative

      The Amiga performed much better with at least 1MB of RAM. The upgrade to 512KB on the original Amiga 1000 was almost mandatory as a lot of applications required it. On the Amiga 500 the expansion to 1MB was very popular as something simple such as adding a second disk drive could use up a little memory and make programs wanting the 512KB not run.

      --
      Sometimes my arms bend back.
    7. Re:Amiga beat them all by CarpetShark · · Score: 2, Informative

      Wrong. The very first Amiga was 256KB, the most popular varieties were 512k-16MB (averaging 1-2MB, probably).

    8. Re:Amiga beat them all by DusterBar · · Score: 3, Informative

      From today's perspective (and even 10 years ago) the Amiga has many limitations. But lets not forget that the Amiga started over 20 years ago! (Boy, I must be getting old...)

      Multi-threaded programming was a core feature of the Amiga. The UI, Filesystem, core input management, sound, etc. All were managed via threads. This is what allowed some of the very smooth behaviors that so many still talk about today. (Albeit with some rose colored glasses)

      Yes, multi-threaded programming is hard for those who learned with BASIC on C64/Apple-II and MS-DOS environments. But that does not mean it is (or was) fundamentally hard. It just takes a slightly different mindset and approach.

      There are many times I had wished other platforms had good multi-threading. After leaving Commodore-Amiga, I actually built/designed something known as MMOS on top of which Scala technology then moved to. Multi-tasking/multi-threading makes some of the harder problems just so much easier to solve. (Especially in event-based or near-real-time systems)

      I am generally amazed at how many people have difficulty with the multi-threading concept. I was amazed back then and even more so now. One time, I worked with a 3rd party ISV to help them with some software design of a game for the Amiga. They ended up really "getting" the treading concept, so much so that they had to write their own threading OS layer on top of DOS in order to port the game to MS-DOS. (A hockey game where each computer player AI ran in its own thread and the display thread did the coordination of behaviors - it was a great game for its time).

      BTW - The entire AmigaOS software team could fit in a single van (and did a number of times when going out to events). (Ok, a large van, but still a van). Our whole team was less than 1/30th the size of the Apple OS team in the late 80's and an unimaginable amount less than the Microsoft Windows team. As far as slow/late software upgrades - the AmigaOS 2.0/2.04 software upgrade was a long time in coming as the target kept moving and we had this "99.99% compatible" requirement, even for software that was doing silly things like assuming certain values in undocumented OS data structures. Even so, the upgrade was only 16 months late relative to the initial target date, of which 6 months was trying to convince the marketing department that they should actually sell the upgrade. (They thought that the Amiga was not worth doing upgrades - users should buy new ones)

      -- ex-Commodore-Amiga OS Systems Engineer (Exec/Expansion/680x0/Audio/Layers/Workbench/IEEE/ etc.)

    9. Re:Amiga beat them all by drinkypoo · · Score: 2, Informative

      Most Amiga 1000s I have seen had only 512kB, most 500s have had 1MB (the expansion had the realtime clock in it, too, sigh.) Most 2000s had 1MB, but lots had 2MB, after that all bets are off. A friend of mine had an A500 with 16MB (he hacked a Zorro II slot onto the side.)

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  19. Re:We had different programmers 10 years ago by bratboy · · Score: 4, Insightful

    Bah. Today's programmers aren't better or worse than they were ten years ago - they're just distributed differently. Programming video games on a console is an exercise in (frustration) poor tools, worse documentation, highly constrained memory / CPU / IO / bus, multiple threads utilitizing multiple specialized processors, microcode, assembly, etc. Ditto for cell phones. Not so for business applications.

    So yes, if you mean "developers of business applications aren't generally hardcore down to the metal programmers," then I'd agree with you. John Carmack and Michael Abrash would be bored out of their skulls working on UI issues for Quicken 2008. And, given their aesthetic sensibilities, they wouldn't necessarily be the best choices (just *try* to balance your checkbook).

    But if you mean that great programmers are no longer among us, then I'd say that you should change jobs, because it's more likely that they're simply not around *you*.

  20. Re:Question... by CRCulver · · Score: 2, Funny

    The source under a Free Software license is, I should think, a prerequisite to be in the running for "best OS of its time". That's why the Hurd was the best OS of the BeOS era.

  21. Re:Question... by Bryan+Ischo · · Score: 2, Interesting

    It was not. The five hours I spent trying to get a simple modem to work in BeOS, with no OS diagnostics to guide me, and very poor support from BeOS the company, was all the proof I needed that BeOS wasn't all it was hyped up to be. I can understand that Be did not have the resources to support every piece of hardware under ths sun, but I found it inexcusable that their support for diagnostics was so incredibly rudimentary. At the time, with Linux (this was 1999 or so), if I had a problem with some hardware I could either read the source (OK Be could never match this since it was proprietary and closed-source so that's not quite fair), or look at the copious amount of system logging that would generally point to the problem (stuff in dmesg, kernel logs, /var/log/messages, lots of tools and documentation to help me out). With BeOS, I was getting pop-up dialogs that just said stuff like "Error 0xFFFFFFFF occurred", with absolutely no useful information whatsoever. It was impossible for me to diagnose the problem no matter how hard I might try because the operating system just wasn't going to give me enough information to go on.

    Also BeOS the company didn't respond at all to my requests for help with this. They provided zero technical support to me. Emails went unanswered.

    Maybe BeOS had some nice architecture, but there is more to an OS than its handling of threads - much, much more, and I think that BeOS was not even close to ready for prime time. And the developers clearly had glossed over many aspects of an operating system (such as the aforementioned error diagnostics) to get to the pretty demos that the OS was capable of.

  22. Multithreaded Windows by Tablizer · · Score: 5, Funny


    [BSOD]

      . , . . , . . [BSOD]

      - . [BS0D]

    [BSOD]

      . . , . [BS0D]

      - . [BSOD]

  23. Time to load applications by LiquidCoooled · · Score: 2, Insightful

    The time to load apps is still routed in the size of the exe and the work needed doing to run it.

    Old systems didn't have bloat because characters were bytes and graphical entities were flat bitmaps.
    Nowadays we have jpeg encoded resources and double byte strings and all sorts of other magical crap.
    Programs were (mostly) written for one language and didn't need to adapt themselves to multiple systems.

    I bet if you tried to work inside the restrictions of olders systems programs would fly along now, startup times would be low, response times would be low.

    Just because we have faster systems does not mean we can add more bloat.

    --
    liqbase :: faster than paper
  24. Re:Yes...well, maybe eventually... by kimanaw · · Score: 3, Interesting
    Unfortunately, STM is very resource heavy and very slow. Yes, it abstracts away lots of issues, but that abstraction comes at a significant cost. In most instances, STM is slower than "classic" locking schemes until 10+ cores are available. (FYI: University of Rochester has a nice bibliography for STM info)

    If/when the CPU designers currently screaming "more threads, more threads!" at us coders get around to implementing efficient h/w transactional memory, painless fine grain parallelism may become a reality. Until then, STM may be fine for very large applications on systems with huge memories and lots of cores, but probably isn't an option for the average desktop.

    But STM does present some intriguing possibilities for distributed parallel environments (think STM + DSM).

    --
    007: "Who are you?"
    Pussy: "My name is Pussy Galore."
    007: "I must be dreaming..."
  25. Ummm... by Bluesman · · Score: 3, Insightful

    The big advantage with threads is that the TLB doesn't have to be flushed on a context switch, since they share the same address space. This has great performance advantages over processes, but you lose all of the advantages of protected virtual memory, hence the need for locks, mutexes, critical sections, etc. Threads are actually a step backward from a reliability/security standpoint.

    BeOS was a single-user system, if I recall, so that partially reduces the need for the security features that having multiple processes provide.

    But beyond that, modern OS's seem to offer a lot more flexibility. They have processes if you want separation of address space, shared memory if you need better performance for communication between threads, threading if you want a shared address space, and user-level threading libraries for the ultimate in performance if you're willing to spend the time to code it properly.

    Being able to watch eight movies at a time is a neat trick, but it's not particularly useful, especially when we'll soon have processors with a ridiculous amount of cores on them. With a large number of cores, the overhead of a process context switch is hardly more than that of a thread, since a CPU intensive process can run on its own core.

    I think the future of OS's is more likely to be in micro-kernel architectures that can move processes around efficiently to balance the processing load between many CPUs. Or a hybrid microkernel/monolithic architecture that could run the big kernel on one CPU for tasks that require responsiveness, and the rest of the kernel processes balanced between remaining CPU's for throughput.

    --
    If moderation could change anything, it would be illegal.
  26. Re:We had different programmers 10 years ago by dc29A · · Score: 4, Insightful

    Bah. Today's programmers aren't better or worse than they were ten years ago - they're just distributed differently. I am not so sure. I remember my first C++ class in college, we didn't touch C++ for at least half the semester (well almost). We learned the basics of OOP and the rest of time was spent on learning how compilers compile code. We also learned a lot of assembly. Hell, in mainframe assembly class we wrote an entire assembler. Bonus points were given to people who used their own assembler to generate the code of the assignment.

    While C++, assembly and C might no longer be "cool", it definitely teaches people how to write optimal code, how to debug efficiently, understand a wide variety of computing concepts.

    The same college today is too busy teaching C# and Java. While those languages are nice and all, not teaching low level C, C++ and assembly IMO leads to sloppy coders, people who don't understand the byte code generated, people who don't mind wasting system resources because hey ... the garbage collector will take care of it.

    I was nearly crucified when I suggested my boss to recode a piece of an application in C so it scales better than the current shitty VB COM version. He just looked through me and said: add another server! Lot of today's code is written by people who don't even understand how the code is getting executed.
  27. Re:No Maybe Yes by someone300 · · Score: 5, Informative

    X is being fixed, thankfully (finally). There are a lot of interesting projects, including but not limited to Xegl. Xegl, is the long term goal of the X server and pretty much reduces the X server to a tiny part of the system, basically mediating the input devices, rotation and display management and TCP/over-the-wire GL, if I understand correctly, by using the Embedded GL specifications.

  28. Re:No Maybe Yes by PacoTaco · · Score: 4, Funny

    This is a multithreaded comment, right?

  29. Re:Puh-lease by Gothmog+of+A · · Score: 3, Interesting

    What you say may have been true some years ago. Nowadays Linux is far more advanced technically than Windows with respect to multi-threading and even more multi-processor / multi-core support.

    E.g. gcc does thread-safe initialization of local static variables -- Visual C++ does not. Linux runs on up to 4096 processor machines -- Windows does not. Linux can be run tickless (to some extend) -- Windows can be not. Linux has support for the SUSv3 realtime API with support for nanosecond resolution timers -- Windows has nothing comparable. Linux will shortly have the new completely fair scheduler (CFS) were a user reported that the system is still quite usable with 32k busy threads running in parallel -- Windows would be not.

  30. Is High Performance Computing Really the Goal? by Proudrooster · · Score: 3, Insightful

    Ask yourself this question, "Is High Performance Computing Really the Goal?" or is herding the consumer to newer shinier hardware the goal? The amount of computing power found in a typical Pentium III computer sitting out and someones curb far exceeds the needs of most users.

    1. Re:Is High Performance Computing Really the Goal? by blankaBrew · · Score: 4, Insightful

      I'm so sick of hearing that most users don't need anything greater than say a P3. That is bogus. Users today do more things with their computers than was done during P3's day. Today, people retouch photos and import them into a library with thousands of photos, they render home movies taken from their camcorder, they run movies (quicktime, flash, etc.) at hi resolutions and at full screen, they rip CDs, they sometimes rip DVDs, video teleconferencing, and so much more. Heck, you need a decent system to render most popular websites today. Here's my generalization: Most slashdotters don't give "Joe Six-Pack" enough credit. He may not know how it works, but he uses more features than you think. The fact is that the software has gotten easier and more powerful, thus allowing people to use more and more features. To say that most users don't need anything more than 6 year old technology is insulting to software developers. It essentially is saying that these developers have been wasting their time for the past 6 years.

  31. Re:We had different programmers 10 years ago by kz45 · · Score: 3, Interesting

    "I was nearly crucified when I suggested my boss to recode a piece of an application in C so it scales better than the current shitty VB COM version. He just looked through me and said: add another server! Lot of today's code is written by people who don't even understand how the code is getting executed"

    Was it more cost effective to have a programmer recode it in C (which includes the required maintenance) or use the less optimal but easier to maintain VB COM? I'm all for using C over C#, Java, and VB, but sometimes you need to look at the situation from a business standpoint.

  32. Re:Puh-lease by brantondaveperson · · Score: 2, Informative
    Got to correct this particular piece of nonsense:

    gcc does thread-safe initialization of local static variables -- Visual C++ does not.
    VC++ does do threadsafe static initialization. And in any case, gcc runs on windows so it's not exactly a windows issue is it?
    Windows has better support for multithreaded apps, it has a far richer set of thread/process synchronisation objects (mutexs, critical sections, semaphores, alertable wait states, events) than unix does.

    Now, as far as 32k 'busy' running threads leaving the machine still responsive... let's just try that out..

    DWORD WINAPI Th(LPVOID){ while(true); }
    int main(int,char**) { DWORD id; for(int n = 0; n < 31999; n++) { CreateThread(0,0,Th,NULL,0,&id); } while(true); return 0; }

    And I can report that yes, you're quite right, Windows is pretty much killed stone dead running these two lines of code. I'd love to hear a report from how Linux does running the equivalent.

  33. Change programming language instead of OS by forgoil · · Score: 3, Insightful

    Programming languages like Haskell and Erlang has very little problems with using a massive amounts of CPUs/cores. Look them up and learn about them, and you'll see that they can, without any fuss, spread over many many threads without any special code at all.

    Well, that's it, read up and then maybe we can get some more interesting Slashdot postings about new computers:)

    And it is quite amazing that Sun hasn't picked up on this. Their little Java thingie doesn't scale that well after all:)

  34. Re:We had different programmers 10 years ago by Original+Replica · · Score: 4, Insightful

    I was nearly crucified when I suggested my boss to recode a piece of an application in C so it scales better than the current shitty VB COM version.

    His reaction likely had little to do with code and alot to do with business. To managment's ears you said "This part is done, but I want to take time and money and re-do it really shiny." Now if craftsmanship meant anything in terms of the sales of software, you may have been listened to. But since the hardware companies are all too quick to step up and offer a new gizmo that will have you computer running "blazing fast", the consumer thinks that the sluggish performance is a hardware problem. The end result of all of this is the management of software companies sees little to no reason to take any more time or money than necessary to make a program clean and efficient.

    --
    We are all just people.
  35. Re:Not gonna happen on Mac until... by Anonymous Coward · · Score: 2, Informative

    Apple are adding the NSOperation and NSOperationQueue in Leopard to help with creating multithreaded applications. There's no public documentation on these yet, but based on what has been told in public it seems that it's mainly a worker thread API.

  36. Re:Question... by iluvcapra · · Score: 5, Interesting

    This is good, I like this political stuff:

    MS-DOS 1.0 was Herbert Hoover, aloof to the problems of the common man but friend of the engineer in all of us. Also discovered Transformers.

    Mac OS 7-8-9, all Franklin Roosevelt, very competent, lead us through difficult times, but left a legacy of programs which have become quite a mixed bag.

    Windows 3.1, Dwight Eisenhower, amiable enough, competent, but leaving historians (and many contemporaries) very wanting.

    Windows 95 thru ME, Lyndon Johnson, one of the boys, very able at getting things done, but in the end a disaster, rightfully ceding his throne.

    Windows NT, Richard Nixon, the archetypal back-room politician, ruthless, and ultimately brought down by little faults, but many believe he was a great president and did much to modernize the Republican Party.

    Windows XP, Ronald Reagan, everybody who hates him never met him, he could charm anyone, the Great Communicator. Bought Iranian weapons for contras with drug money.

    Mac OS X, Bill Clinton, cheerful and smart, if not the most productive. Known for his speeches.

    --
    Don't blame me, I voted for Baltar.
  37. Re:Question... by PygmySurfer · · Score: 2, Informative

    I believe the mere fact he mentioned the HURD is sufficient proof that he was not being serious.

  38. Re:Question... by nomadic · · Score: 5, Insightful

    Vista, George W. Bush, elected because of his name, even though the prior iteration wasn't especially respected or well-liked. Introduced instability and performance issues, all in the name of "security". Many of the corporate interests who promoted him early on are having second thoughts.

  39. The Intel vs. Motorola Decision by Cassini2 · · Score: 2, Insightful

    IBM made a decision in 1980 to go with the Intel 8088 (8/16 bit) processor instead of the Motorola 68000 (16/32 bit) processor. At the time, the Motorola processor was designed to be the processor of the future. On the other hand, the 8088 was intended to be almost compatible with 8080A assembly code. This created the need for the 8088 segmented architecture, and segments suck.

    The use of segment registers set PC development back over a decade. Essentially, all the 80's was spent fighting segmentation wars. The IBM PC didn't get proper 32-bit computing until the widespread popularity of 386 PC hardware in about 1992, and the subsequent introduction of Windows 95. Windows XP was the first unified 32-bit Microsoft O/S in 2001. DOS mode was finally eliminated in Windows Vista in 2007!!! I think you had to live through segmentation and far pointers to understand how incredibly awful they were.

    Interestingly, the Apple Mac had a 68000 processor in 1984. If that caught on, then it would have saved the PC industry a decade of pain. Apple made the decision not to license the operating system for the Apple Mac. The result was Apple hardware was expensive, so few purchased it. The problem was so severe that Apple almost went bankrupt before Steve Jobs returned.

    IBM built Microsoft and Intel when they created the IBM PC. Apple rested on the laurels of a better architecture and almost went bankrupt. These two decisions defined at least 15 years of software history. It isn't until know where we see a few different pure 32-bit operating systems fighting it out on a common hardware platform. The Windows XP, Vista, OS/X, Linux battles will be interesting. The 32/64 bit battles will take place on PC hardware that is still almost completely assembly language compatible with the first widely used 8-bit Intel Microprocessor: the 8080A!

    1. Re:The Intel vs. Motorola Decision by drinkypoo · · Score: 2, Informative

      The Amiga had a 68000 processor in 1985. The classic hardware Amiga used could do things that PPC Mac users couldn't do and single core Intel/AMD systems couldn't do until not too long ago.

      The Amiga had a custom design that wouldn't scale. It needed new, custom hardware for each processor revision for the hardware to keep up with the processor. Eventually the Amiga got accelerated graphics cards and storage host adapters and the main system basically handled peripherals and sound.

      the Macs had a horrible lack of multitasking that the Amiga had, certain x86 operating systems at the time allowed multitasking, but were really bad at it.

      The Amiga was a microkernel-based system which worked efficiently because it had no memory protection. It was an explicitly single-user system (hacks came out eventually to provide multiuser functionality, permissions, etc etc, but without memory protection it's all just jerking off really) and while it is capable of performing modern tasks it has serious deficiencies. It was totally excellent for its purpose at the time, but it just isn't practical today (except perhaps for PDAs and such, where I'm surprised not to have seen it.)

      the more advanced Amiga hardware was far cheaper.

      It's too bad the company was sucked dry from within, and there was virtually no advertising.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  40. Microsoft decided against responsiveness by Cafe+Alpha · · Score: 2, Interesting

    As one commenter mentioned many programmers are bad at writing reliable multithreaded code.

    Microsoft realized this early on and put a bunch of barriers into windows (and more so into MFC) that are designed to prevent programmers from even writing multithreaded GUIs.

    Let me make this clear. If you call an MFC gui routine from a thread other than the main GUI thread it will return without executing. If you "send" or "post" a message to a control from the wrong thread using the MFC versions of send() and post(), it will return without doing anything. Microsoft used thread local memory to prevent programmers from being able to write multi-threaded GUIs.

    I've programmed work-arounds many times with user-messages and created programs that were as responsive as BEOS programs. Understand that the fact that most programs' guis lock up for a few seconds when opening files, etc. is the result of MS' decision to not trust programmers with multithreading the GUI.

    I've also worked on multiprocessor, high performance server apps, and I know how obscure multithreaded techniques are, and how small mistakes can make software unreliable. I don't entirely blame MS for preferring reliability to responsiveness, but they are in a position where they could educate rather than restrict, and they chose restricting.

  41. Re:We had different programmers 10 years ago by multipartmixed · · Score: 2, Interesting

    > When I was a university, I had classes in.. assembler, Pascal, Concurrent Euclid, Simula, Prolog and C

    Concurrent Euclid? Dude, where did you go to school? U of T? In the 80s?

    I had the distinct pleasure of having Jim Cordy as a prof when I was an undergrad in the 90s. In particular, studying compilers with the man was the single most ... eye-opening ... computer-related experience I have ever had. It was the first time I REALLY "got it" -- and understood EVERYTHING that was happening under the hood as a system of disjoint events, acting together in concert.

    Actually, thinking back to the days reminds me of a funny story I haven't thought about in about a decade. I was taking first year computer science. There was a fellow in my class, smart guy, good C coder.. couldn't see the forest for the trees. In fact, he still owes me a pair of Sony headphones he borrowed about a thousand years ago. Anyhow. He stood up in class one day and asked Cordy something like "What kind of an IDIOT would design a language like TURING?".. "Well, Mr xxx... that idiot would be me".

    Haha hahaha

    I kind of miss being in school.

    But I don't miss stats.

    I do miss forging usenet control messages.

    Too bad you can't do that any more. Kids are missing so much nowadays!

    --

    Do daemons dream of electric sleep()?
  42. Re:Yes...well, maybe eventually... by logicnazi · · Score: 3, Interesting

    I think you misunderstand the ways in which STM are relevant to this sort of issue. Sure you can do full blown STM with crazy commits and rollbacks that are large and complex but that isn't what causes the problems with most threading issues. Really the primary benefit of STM is just to give an understandable and intuitive means to manage simple things that programmers now do with locks, e.g., making sure the other thread doesn't update part of the object while your thread is making some small change to it.

    As far as performance the key here is compiler design. Sure in the fully general case STM may be fairly resource intensive but most cases aren't the general case. The hope is that compilers can be improved to natively support STM and recognize where simplifying assumptions can be made.

    In other words practical STM is a way to get the compiler to meet the programmer halfway. Compilers can't do auto-parrililization and won't be able to anytime in the foreseeable future but having programmers deal with very low level constructs like locks and semaphores is confusing and a waste of time. This is a nice comprimise to meet in the middle. At least as long as it is used correctly.

    --

    If you liked this thought maybe you would find my blog nice too:

  43. Re:Question... by amper · · Score: 3, Insightful

    I disagree with the premise that there wasn't acceptable justification for rewriting things from the ground up. Remember that the key players at Be were Jean-Louis Gasse (sorry for the lack of grave or accent or whatever the French thing is...) and Steve Sakoman. Their primary prior experience was at Apple. The biggest mistake that they made was in trying to create a better Mac OS than Mac OS. What they ended up doing was creating something that looked more like a better UNIX than UNIX, except that it lacked all the things that made UNIX great in the first place. To start with, the biggest thing they left out of BeOS was multi-user capability. That, IMO, more than anything else was what led to the downfall of Be.

    I lost a bit of change on Be stock. It still pisses me off, because Be had the nucleus of a great idea, but failed to follow through.

  44. Re:It's the I/O, stupid by Cafe+Alpha · · Score: 2, Interesting

    Utimately it's a version of #1. The Gui blocks if you make the mistake of doing work in the Gui thread!

    I've made work around classes to fix that so that it's only a few key strokes in C++ to chain (ie call) a routine that doesn't run in the current (GUI) thread, it runs in a work thread, and to chain back to a completion routine in the gui when its finished.

    It works like a charm, and programs can be completely responsive 100% of the time, like BEOS, I suppose. You can be loading a file, and still the menu works and you can move around the subwindows and edit them... And if a window is recalculating, it's still responsive during that - and it redraws the new data, when done.

    You have to specifically decide what the program can do and not do while it's calculating, and code that. So there is more work in keeping a program responsive. You have to code for responsiveness.

  45. Re:Question... by The+One+and+Only · · Score: 3, Insightful

    I think Windows 2000 would be Reagan for the reasons you pointed out. Windows XP would be George H. W. Bush for following in the footsteps of its predecessor while having a couple accomplishments of its own (Persian Gulf War). Vista would be George W. Bush--trying desperately to follow in the footsteps of its predecessors, security-obsessed, but overall a miserable failure with dire consequences for privacy and freedom.

    --
    In Repressive Burma, it's not just your connection that dies. slashdot.org/comments.pl?sid=314547&cid=20819199
  46. Re:Not gonna happen on Mac until... by maztuhblastah · · Score: 2, Informative

    I realize that I may be treading on shaky NDA ground, but I can say that Leopard makes some serious advances in this respect. I don't know if QuickTime and AppKit are fully multi-threaded yet -- but I can say that they seem to be a hell of a lot closer than in Tiger. Also, xnu has had a HUGE amount of work put into it in an effort to reduce locking situations, and it seems to have paid off -- a lot of stuff that would cause a UI hang in Tiger is no longer an issue in Leopard. It also seems that CoreVideo/CoreAnimation have been written with SMP situations in mind.

    That's about all I can say without the black helicopters descending on^NO CARRIER

  47. Predict the futrue? Look at the past. by DragonHawk · · Score: 2, Insightful

    The next generation of computing is going to come from the vast multitude of developers who are accustomed to writing client-server applications applying what they know to computers that behave like a server cluster.

    Wow. You seem awful sure of the future. Can I borrow your crystal ball? I'd like to look up next week's lottery numbers...

    Looking at history, the computer industry seems to show a remarkable propensity to not learn from experience, and instead keep making the same mistakes over and over again (with different names). What evidence do you have that suggests that is going to change?

    --

    dragonhawk@iname.microsoft.com
    I do not like Microsoft. Remove them from my email address.
  48. Re:We had different programmers 10 years ago by TheLink · · Score: 2, Insightful

    Given that you actually suggested rewriting in C instead of Python or something similar, I think your boss made the right call.

    To be blunt: writing VB business apps in C is usually a stupid idea. Business app requirements change often and usually for nontechnical reasons. C is a low level language. But for business apps you'd only need to manipulate stuff at the "Lego level", not the "molecular level". So why use it?

    It's near impossible for a normal company to hire programmers who can _rapidly_ write reasonably bug free C and maintain it AND _WILL_ do so.

    And it usually takes a lot longer to get a new C program to decent standards than say a Python/Perl/Ruby program.

    Getting a faster machine to run app = $$.
    Weeks of programmer coding, testing and debugging = $$$$
    Weeks of programmer NOT being able to do other stuff because busy rewriting old stuff = $$$$$$ - $$$$$$$$

    Assuming a reasonable programmer ability, if you used a higher level language, changes would usually be done faster and with a better chance of correctness.

    So my suggestion for most stuff nowadays is:
    1) Use a high level language. Usually the performance bottlenecks for a business app are not due to the language but the architecture and design, or just plain IO.
    2) Spend a lot of time designing it right with the future in mind - getting time and resources to rewrite in a business environment is rare - so if you do it right you maximize the lifespan of your software before cruft builds up to extremely annoying or even dangerous levels.
    3) Leave the low level stuff to the John Carmacks.

    So what if those high level languages are 20x slower than C? Unless totally braindead they are a _CONSTANT_FACTOR_ slower, so if they are fast enough NOW, then that's good enough. In 3-5 years time, even if the performance requirements may go up, new hardware is likely to run the programs at least 2-3X faster, and it's probably about time to replace the hardware as part of a preventative measure. If you are lucky and wise and your architecture can scale OUT instead of UP then that's a good situation to be in.

    --
  49. Huh. BeOS fast? by TheLink · · Score: 2, Funny

    Let me know how long it takes to start OpenOffice on BeOS.

    --
  50. Re:Not gonna happen on Mac until... by KAMiKAZOW · · Score: 2, Informative

    Apple spoke about multithreading in last year's WWDC "Mac OS X State of the Union" session. Apple provided a recording of that session (among two others) for free though iTunes. Since they're free, I uploaded a short clip. Once Veoh encoded that video, it will be available at http://www.veoh.com/videos/v801272G85gFFER.

  51. Re:Question... by Jesus_666 · · Score: 4, Funny

    Linux, Fidel Castro, the communist leader that has been in office for ages, just refuses to resign or die and points nukes at Windows from time to time.

    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  52. Way off-topic by kumanopuusan · · Score: 3, Interesting

    That's a pet peeve of mine. Ha-i-ku is three syllables.

    There's a sign hanging in the restroom here at work, and I just realized it was a haiku.

    Isogutomo
    kokoro shizukani
    te wo soete
    soto ni kobosuna
    -Matsutake no Tsuyu

    Even when hurried
    Quiet your heart
    Steady with your hand
    And don't spill any on the outside
    -Mushroom Dew

    Beautiful, isn't it? The English version just says, "We aim to please, so please aim."

    --
    Use of the words "good", "bad" or "evil" is almost invariably the result of oversimplification.
  53. Rose-tinted hindsight... by argent · · Score: 3, Interesting

    Back when BeOS was still cool, and Rhapsody was hot, and NT was still counting by numbers instead of names, I installed BeOS, Rhapsody DR1, and NT 4 on the same hardware... a Pentium with 16MB of RAM... not exactly state of the art but not ridiculous for the time either.

    BeOS showed no exceptional capabilities. Both Rhapsody and NT were easily able to run multiple concurrent applications without slowdown, and BeOS was at least as often bottlenecked on I/O.

    BeOS was certainly a competent OS design, but the "remarkable" performance was only remarkable when it was compared with the classic Mac OS and mainstream Windows 9x. With those as the "competition", the legend of BeOS has grown over the years, but any contemporary preemptive multitasking OS could do as well.

  54. Re:OMG Pervasive Multithreading like NT/2K/XP/Vist by Fjodor42 · · Score: 2, Insightful

    Hmmm, possibly just displaying lack of knowledge here, but doesn't pervasive sort of mean "included in every layer and possible application" (sort of synonymous with "ubiquitous")? Most unlikely, I don't mean to bash Windows here, actually the more of that they can cram in there the better for people using it (true for every OS), but "extending pervasiveness" seems to be somewhat of an oxymoron in my understanding.

    Am I completely wrong in this? /F

    --
    "The number you have dialed is imaginary. Please rotate your phone 90 degrees and try again."
  55. Re:Here's a better question by taradfong · · Score: 2, Funny

    You learn it the way any programmer learns it.

    1) Look for a job/project you want to do
    2) Lie and claim you can do it, and commit to doing it
    3) Learn the hard way how to do it. Because you committed to doing it, you can't quit when you get stuck and hate it.
    4) Do just a good enough job to impress the people that asked you to do it
    5) Do another project, this time doing it the right way (or at least better).
    6) Repeat until virtually no one knows much more than you on the topic.
    7) Profit!

    --
    Does it hurt to hear them lying? Was this the only world you had?
  56. Threads are not magic by sjames · · Score: 2, Insightful

    There is nothing magic about threads. Sometimes a multi-threaded process is the right approach, sometimes a multi-PROCESS application is better. Sometimes a process is intrinsically serial in nature and any gain from threading will be more than swamped by the overhead.

    While sometimes obscured by terminology, threading isn't a single entity. For example, if a process mmaps in blocks of memory with MAP_SHARED, then creates pipe pairs and forks, it IS a multi-threaded application in some sense, but isn't what many think of as threaded. For that matter, the mmap step can be skipped for some server applications and still be multi-threaded.

    A single process with a single thread in it MIGHT be somewhat multi-threaded if it does it's I/O through various asynchronous calls.

    At the same time, an application that explicitly calls thread creation functions might be effectively single threaded if resource (lock) contention is such that no more than one ever runs at the same time. Another case of being effectively single threaded is when an application is event driven and even though events are dispatched to worker threads, the thread typically completes it's handling before the next event comes in. This will often be true of interactive applications where the user won't likely keep issuing commands until they see the results of the previous command.

    OTOH, things like image processing in GIMP could stand to be multi-threaded where the work is tiled and dispatched to worker threads.

    Until recntly, multi-threading has only been beneficial to a small percentage of users anyway. Most people until recently have had single processor systems.

    BeOS's legendary media handling was more the result of carefully designed and tuned media subsystems than pervasive threading.

  57. Re:BeOS was awesome by drinkypoo · · Score: 3, Informative

    Quit pretending that it was ever a viable OS or that it is anything special nowadays. Yeah, yeah, it could run multiple videos at once. But then again we're talking multiple 160x120 videos because that was about as good as video got at that time.

    Speaking of tech demos, the "book" demo where you put four quicktime movies on the pages of a book and flipped the pages with the mouse, did you ever see that? On a 66MHz BeBox (dual 603e, hardly a speed demon) you could have four 320x240 (biotch!) videos playing on this book. Well, you could only see two at first. But then you flip the page around as you like with the mouse and you can see (part of) four videos playing at once. And the whole thing was quite smooth. The framerate would sometimes degrade but the page still moved smoothly and the rest of the OS was still responsive.

    That was the one that really impressed me. They obviously really cared about responsiveness in a way that no one else seems to.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"