Hacker News new | ask | show | jobs
by dr42 5093 days ago
Assuming you're a developer, why would you have clung to 3.1? NT was available then and was considerably better operating system for development.

I maintain an XP partition for when the corp I work for require mandatory training (ethics, insider trading, workplace safety etc) but there's no way I'd ever consider using it over Ubuntu for development. I suppose if you're coding in python then the underlying os makes little difference, the abstraction level is so high. Personally even in python missing the unix toolset is a primary reason to stick to unix-like operating systems. I couldn't imagine not having sed, awk, grep, vim, wc etc. I am aware of ports and even the Cygwin environment, but it's just a lot easier to skip the whole thing.

Speaking as someone who started his career on hp-ux and since then included probably every major unix distribution both proprietary and open source, having an intimate knowledge of unix has served me well. Windows has finally caught up and (despite still getting the path delimiter wrong) is now a robust and usable operating system. The two worlds have merged, unix added curses, then x, and now looks as pretty as anything else out there, meanwhile windows added multitasking (yield didn't count) and ever wider addressing, a native tcp/ip stack, support for larger drives and so on.

Unlike you I have no good memories of windows 3.11

4 comments

I wasn't a developer back then. I don't think I started programming until I hit Windows 98 (I was 12 in '98). I prefer developing under Ubuntu. It's a vastly superior environment for most kinds of programming work (a notable exception being game development). IMO Windows is better for web development and that's what I've been working on the most lately so I spend more time in XP for that. Windows 3.11 wasn't a good OS -- I just have happy memories of it because it was what I used when computing was mostly new and unexplored territory for me. That and my only prior experience was DOS.
3.1/3.11 was what was bundled with almost all store bought computers at that point. Most people weren't out there grabbing up NT 3.51 licenses to do dev work. There were quite a few OS/2 devs around. The hardware support for NT was just craptastic. NT 4.0 got a whole lot better.

The thing for many people was, Visual Basic was the entry point. Or Turbo Pascal in my case. But it was DOS based, so it didn't really matter to have a real 32bit OS under the hood.

I'm a bit curious why you'd never consider Ubuntu for development. At the end of the day, it's all the same if you're doing C/C++/Python/Ruby/Node/PHP. Then again, I've been a Linux fan since Redhat 5.2. (1997ish) I had to use IRIX at work (Graphics animation stuff for TV) and even though it was "unixy" I rarely had to fight the typical unix battles. Same for AIX at my next job... dealing with cell masters and all that crap was an IBM thing, not a unix thing.

I'm a bit curious why you'd never consider Ubuntu for development.

I intended my words to mean the exact opposite of that. Unix for development gets my vote every day.

Also, dev's don't use store bought computer operating systems, they install the best one for the job, which back then was NT. OS/2 was good but nobody else was running it, except Lotus Notes shops.

*edited for typos

> yield didn't count

Interestingly enough, I've been using yield in Python for what could be described as cooperative multitasking. Works very well with web workloads, btw.

python's yield and the windows api yield() do quite different things, but at some abstract level, in windows 3.1 the yield() function would let the UI service the main event loop, thus keeping your ui responsive to user activity. yield in python is abstractly similar but returns control along with a reference to the generator. Why I said these are abstractly similar is because in python the yield function saves away the stack frame and restores it upon the next iteration of the generator. In this respect it's similar to windows 3.1 yield because when the event loop comes back to your process, you have a minimal 'stack' consisting of the original hwnd, along with wParam, lParam, where the lParam was a ub4 that could be used for a pointer allowing a larger 'stack frame'.
I know they are completely different. I just thought it was curious that I have been using the same word with completely different meanings in completely different environments to similar results.
Doesn't Windows accept forward slashes in most situations?