"Windows is closed as ever"
Are these kids hacking on the Linux kernel or something? Of course not. They will be using some app/language running on the OS. They don't need access to the OS source to do that. Seems to me Windows is a perfectly open enough OS to act as a platform for tinkering and learning about computers.
I even mentioned libc. There is more to an operating system than a kernel.
In fact, this was an important part of my early computer education: when I was 12 (1994) I bought a copy of Slackware Linux because it had a free compiler (even Turbo Pascal was expensive for a 12 year-old).
At the beginning I just typed some small C snippets that I could find in books in the library. Then I started reading shell scripts and found out that a lot of the system is controlled through shell scripts and started writing my own. Then I started reading through the source code of libraries to find out how things were implemented.
At some point I got a Minix book (I was probably 16) at a discount at a book store. I started comparing the theory I read there and tried to find out how e.g. the Linux VMM differed from Minix.
Don't underestimate how important it is for a kid to have access to such information. Only a small subset dive deeply into the system, but they will be the hackers of the future. But you have to awaken the interest by making easy to dive in.
They will be using some app/language running on the OS. They don't need access to the OS source to do that.
I think you underestimate how important access to the OS (in the widest sense) has been to the success of everyone from Google, Dropbox, and Facebook to the newest of startups.
I do think the trend of iOS, Android and similar Windows environments is troubling. But if they ship Windows 10 on the RPi with something like QBasic and Visual Studio it's probably just as good a learning tool as Linux. Or even a better one considering the rest of the application ecosystem.
But then I don't think the Pi is really about teaching kids to code either.
The Pi Foundation has done a good job of persuading everyone otherwise, but I'm left with a nagging suspicion that a computer designed for kids from the ground up would look very different. It's just too damn complicated for most kids. The nerds get it, but expecting the average ten year old to learn Linux shell scripting or the fine points of Apache installation seems unrealistic to me.
Win 10 on the Pi is about two things. The first is about edging Linux out of the education market. Teachers will indeed prefer Win 10 to Linux, for reasons that others have mentioned - especially if it comes with a basic dev toolchain. Even if that toolchain is very easy to use.
The second is - I guess - selling Office 365 subscriptions on super-cheap hardware, and creating a whole new sub-PC market for Windows and Office.
If I'm right, it's a clever move. It will give Windows and Office access to many new markets worldwide.
Where MS hardware failed on price, the Pi version wins on price. It could be a very strong combination.
http://www.raspberrypi.org/about/ says that they designed it to enable kids to access a cheap platform on which it would be easy to code and that they considered the multimedia capabilities a good hook.
Price was clearly a major factor in making the RPi accessible to all [UK] kids. Their inspiration was in part the BBC Micro series - which were certainly not inexpensive.
RPi is cheaper than a second-hand Nintendo DS.
In short, as I understood it, the RPi was about removing the cost barrier to kids having their own system on which to code and hack both hardware and software.
I ran Linux for years and still use it today for my Pi only but I think the INITIAL learning curve to use a system is less steep with Windows than Linux, particularly if you are presented with a CLI Linux login. If you are presented with a GUI then it may be different for a 6 year old but I wouldn't say that the Linux vs Windows discussion really takes into account how easy it is to get into programming on the platforms.
(I know you can install gcc and get writing C/C++ really quickly but you can do the same with Visual Studio without understanding a package management system).
This is like complaining about how hard it is to get OS X up and running when installing on a Dell, but I see where you're coming from and realize this wasn't you whole point.
Anywho.. I would say it's easier to take skills learned from using Linux and apply them to the Windows OS than the other way around.
Admittedly, I did learn many skills with the command line but this DIDN'T translate to me being a wizard with the DOS prompt on Windows 98 back then - I didn't use the DOS prompt. Task manager didn't show a hierarchy of processes like pstree does now, and pstree didn't come (or even exist?) with RedHat 5.0 or 6.0. This was RedHat, not RHEL.
I got OSX up and running on my Acer Aspire :-)
You're right though, that was difficult.
I think the skills for the different OSes are only mainly applicable to their OS, despite how we think and how easily you and I can use the different platforms.
Using a keyboard and a mouse translates, but nothing else does really. Getting my wife to use OSX is frustrating for her, my brother gets angry using OSX too, my brother is lost under Linux, my mum gets lost under Windows (she's fine with iOS mostly now) and my dad is fine with Windows 7 and before but hates Windows 8. My wife gets lost under Android after using iOS for years.
Don't even think about programming for any of them on any of the platforms!
Jesus, Linux Circa 2000 is very very very different from linux 2015...
Seriously though, I use Linux every other day and my last job involved maintaining racks and racks of Linux servers. I also use a few Raspberry Pi s at home, and I appreciate that things change. The ditching of the normal windowing paradigm is the biggest recent change that made me use Linux less as a desktop OS. I didn't say that things don't change - where did you read that?
But it still stands that giving my mum a Raspberry Pi and an SD card, and she'll be none the wiser about runlevels, CLI, or the main point of the discussion, programming. She'll instead spend more time learning how to use Linux, surely?
Or are you saying that my mum will suddenly be able to start development or something?
Or are you just offended that I had some experiences in the past or something?
When you load this, the only thing that appears on the screen in a Cmd prompt, or powershell. If you think linux is hard to admin from the commend line, windows for people that do not know powershell is next to impossible
The average is not the only group that matters. If you have to spray the entire planet with RPis just to make sure you get one into the hands of the right ten year old, it would be worth it for the things they would be inspired to invent as they grew older.
Of course not. The target market is actually people like me, now in our late 30s/early 40s, who have a powerful nostalgia for the original "Model B".
But I think they missed the point of the Model B, a smart 10-year-old could grok the entire machine. You knew the memory map by heart, what went where, what happened in what order, and so on. The RPi has more in common with a PlayStation than it does with the Beeb. It would be like starting kids on calculus before they'd learnt addition. What we need is to re-start production of the real thing...
I think it's important we had a generation of instant-on machines that greeted a user with a command prompt and a programming environment. Even if you wanted to just play a game, you still found yourself LOADing, DIRing, SYSing, and maybe performing a soft-reset after a LOAD that triggered a system routine that now pointed somewhere else. There are things you'd learn after hours of playing and messing with games because, eventually, typing all this weird stuff at a command prompt made you wonder "how" or "what if". The metal and its registers and special calls were right there and you couldn't brick your machine in any way a cold boot couldn't fix, so next thing you know, your friend shows you if he POKEs this and then SYSes that, he could change the background color of the load screen. Cool. So now you need to one-up him so you spend a weekend messing around with NO TOOLS -- just a CLI -- and figure out if you POKE these other four places after LOADING and then SYS then you get unlimited lives. Of course the game crashing after a minute. And so it goes. But breaking things was encouraged because you'd instantly cold-boot and try again.
I think we owe a huge debt to instant-on machines with a command prompt and some environment (BASIC or a hex monitor or, today, bash with root on Linux and maybe Python or whatever). Any project that tries to put environments like that into kids hands again gets my vote. Windows... less so.
I think you mean commodore, or atari. Windows gaming came a long long time afterwards. It is more advanced in some ways but it does not beget OS programmers, like an open source OS does. If OS programmers die out, we're in very deep trouble.
It's not like OS programming is going away, but it has always been mostly a university thing.
And you could say we already are in big trouble. Since the ecosystem for multimedia weren't (and isn't) very good on Linux a lot of qualified user software exist on other platforms. Industrial, scientific, medical, music, film etc.
The same could be said for understanding why "the ecosystem for multimedia weren't (and isn't) very good on Linux" and various rounds of the DRM wars.
Microsoft shouldn't be blamed forever for deficits in free software and that's not an argument I'm trying to advance, but it would also be a mistake to overlook their historical influence on when and where certain barriers to tinkering emerged or persisted.
I think that's part of why this triggers a disgust response for some commenters.
Even when Apple practically gave the Linux distributions an opportunity with the neglect of the Mac Pro. Here you had people who didn't like Windows, disgruntled with Apple, liked unix, wanted a powerful operating system and was overpaying for hardware.
OpenGL isn't that much harder on Linux than on Windows, so where the push for great OpenGL developer tools on Linux? Google and Mozilla gets a lot of credit for supporting open source, so why are there no decent bindings from their respective new languages to their respective 2d libraries (Go/Skia, Rust/Mozilla2d)?
There's kind of a macho attitude in open source that things should be hard. If you can't or don't want to fix it yourself it your own fault. It's great for the people that are happy with that and are invested in it, not so much for the rest of us.
I believe Valve is working on that.
Not as tiny as the PC industry was at the same moment in history.
>Since the mid nineties people have learned graphics programming and reverse engineering primarily on Windows.
Because Windows won the desktop. Graphics programming and reverse engineering would have been learned on whatever OS was in that role.
You know, when you obviously have no idea what you are talking about, the wise decision is just not to answer. Both the Commodore and Atari scenes were way bigger than the PC's in the mid 80s till the early 90s. Ask any demoparty goer if you don't believe me.
Oh, and maybe you should read the site guidelines, second paragraph under "In Comments".
> The cracking scene, demoscene and games industry was almost exclusively built on Windows.
Which is blatantly false. Where do you think Team 17 come from ? A number of their members were recruited on the Amiga demo scene, and that was well before PC gaming was a thing.
And huh, the game industry existed way before PC Gaming. In 1985 the Amiga and the Atari could display animations on screens with 16 to 32 colors in relatively high resolutions, while PCs were stuck in monochrome (just like the first Apple). And oh yeah we had games. Tons of them. Are you trying to rewrite History ?
> Oh, and maybe you should read the site guidelines, second paragraph under "In Comments".
Nowhere did I call you names. I was merely saying you have no idea what you are talking about, it's OK, it happens to everyone. You know, I have been on HN for a while.
And yes I've also been on HN for a while, longer than you if that is your first username.
And that's where your problem lies, since the pre-90s era is far more important historically than the post-90s era (when the idea of a "demoscene" started to die entirely and game development shifted full-force toward massive companies - trends which have only recently begun to reverse beyond very tiny niches).
Audacity, Bitwig, QTractor and Ardour have made great strides - and that's merely stuff I know about. Userland software is quite beside the point I was making.
Closed-source single OS dominance without an open source alternative would mean much worse trouble than the trouble we are already in. To avoid this, you need OS programmers, many of whom never get to University.
That Microsoft is coercing people to use Windows is the favorite conspiracy among Linux evangelists. The reality is that Linux isn't and never was very approachable. You might not be able to dive into the source code of Windows, but at least your not stuck trying to understand yet another build system. At least there are decent learning material so you don't need read the source code or scavenge through mailings list trying to find something other than "why do you want to do that". Or a countless other examples like it.
I like Linux, I do. But you can't have your cake and it too. It's not as good as Windows if you want to have access to all areas of computing. Which is what you want when you teach computers to a wide verity of people.
Maybe you should be more concerned that most ARM devices doesn't have working graphics acceleration for Linux desktop systems.
Uhh, no they weren't. They were the focus of home computing during that time period. IBM-compatibles running DOS (or, previously, CP/M) were still the purview of businesses needing personal computers.
The reason why BASIC-oriented systems like those of Commodore and Atari are "nostalgic" is because they were ubiquitous in households during their heyday, and contributed heavily to the same memes and tropes of video game design that are being recycled to this day in big-budget games running on Windows 10 64-bat Supreme Home Edition Republic-of-Gamers PC-Master-Race monstrosities with Core i9 processors and NVodia GeFarce 96000000GTXXX 16TB 525600-CLUTA-core EXTREME-GRASS-RENDERING GPUs and all the other baloney that's dominated the thoughts of gamers nowadays.
> Since the mid nineties people have learned graphics programming and reverse engineering primarily on Windows.
By your logic, the concept of the automobile was invented by Toyota when they came out with the Prius.
There's a lot more to the history of video game development, demoscene, etc. than just the 90's; you're leaving out literally half of those subcultures' very nuanced histories chronologically-speaking - and, in fact, opting to leave out probably the most important half.
LOL on which planet did you live? The cracking and demoscene started way before MS DOS, with the C64, the Atari ST and the Amiga. Windows was super late to the game.
There was certainly a significant Windows (and DOS) demoscene, but to say it was exclusively built on Windows is about as far as the truth as one can get. Emphasis on Windows really only picked up in the late 90's; throughout the 70's, 80's, and early 90's, most of the demoscene, game development, etc. revolved around non-Windows platforms (particularly BASIC-running toasters in the 70's-80's, followed by Amigas and Macintoshes throughout the 80's and early 90's).
Windows 95 was the start of Windows becoming more popular for game development and multimedia production, but it took quite some time for Windows to displace the rest of the market (through Microsoft's monopolistic tactics, but that's another story). Until that point, there was DOS, but it was one of many contenders with relatively-equal footing only as far back as the late 80's at the earliest, before which DOS was more the purview of businesses buying IBM PCs alongside their IBM mainframes (in other words, about the most uncool computers one could possibly own). The reason DOS eventually caught on was very much because of how "open" (comparatively-speaking) it was compared to, say, Mac OS; the same subculture of BASIC programmers from the Commodore 64 days could make an easy transition to a similarly-minimalist environment requiring a lot of user intervention and therefore customization opportunity, much like how the world of GNU/Linux had been all the way up to the mainstream adoption of Android (and still is, though it's no longer an absolute necessity to be able to tinker with one's system like it was in the first half of the 2000's).
This isn't to mention that Windows didn't fully penetrate the educational market until well into the 2000's; most schools had a large quantity of Apple hardware still in use, thus influencing educational development. This was much stronger when the idea of a "demoscene" was still really relevant.
Now, the cracking world might have been different (I know DOS was a strong contender in the BBS subculture), but the latter two are very much not a product of Windows; far from it.
None of the home computers systems was open source.
We had computer magazines, and books to type stuff from.
This is what is important, to have information how a given system works.
I only jumped into GNU/Linux as a cheap way to have UNIX at home.
I think that today's youth will embrace technology at the level it appeals to them. If educators embrace Windows because that is what they know, it is better that there is some exposure than none. The kids that are inspired are going to take it further than most instructors will ever understand.
We then got Python up and drew a turn with Turtle, which she then extended to a rectangle.
We'll see what she learns and what I can teach her. But whatever she learns will be directly applicable to many other available environments. My Mac and her Mom's will have a terminal. At some point she can take this up to a Linode and play on the net. If her computer club uses Raspberry Pi, Linux will be there.
Maybe she could learn a lot with Windows 10 on a Pi. And much of it would be principled, and some of the basic emotional and mental disciplines needed to work with computers. But a great deal of it would be a particular interface, and one that is generally available only with costs or arrangements that exceed those of getting to a *nix interface.
Now why is it a good idea for her to invest in a sunk cost like that when she can invest in one with much greater and freer applicability?
Yet you decided to buy her a Chromebook, which is the most locked down laptop out there with heavy DRM with everything locked to Google's services and only Google code being allowed to run natively. Even Windows is much more open in comparison and doesn't wipe the hard disk when you try to install an alternate OS. Nor do you have to "root" it.
I also told him that he has to type some magic incantations to get them installed: "sudo apt-get install froogle" and he kind of loves it (and then forgets it right away... or do I know)...
But really for a $179 (that's how I got it) device I don't mind. He actually "blew" it once, by pressing SPACE at the booting screen and reseting the whole device (unlocked chromebooks are like that, there is a way to disable that, but haven't done it yet). I told him that minecraft is now gone because of that, but we can install it again, though his maps are not saved. He's not doing it anymore, and surely he'll be more careful than me in the future (he opened the chromebook without asking me)
In a thread about the value of open platforms, how is questioning the decision to buy a chromebook not useful or relevant?
I think you're also missing the parent commenter's point: that even on ChromeOS (via Crouton), his daughter's newly-learned skills will be much more universally-applicable, since she's working directly with free development tools available universally and on virtually all modern platforms (plus Windows) instead of working with toolchains specific to only one not-really-all-that-modern platform.
The "windows way" involves a UI specific to one OS, the *nix way can usually be applied to any UNIX like OS, of which there are far more of than Windows.
Not only that but once you learn to program on UNIX all you have to learn is an intuitive GUI to move your skills to windows.
1. The Unix era, back in the 70s, back when it was all university stuff. Free software was unheard of but the code was always widely distributed. 2. The Mac era, in the 80s, where there were a ton of different computers and they were all so primitive and simple you could easily hack on them yourself or with effort make your own kernels. DRM was too expensive to fathom so it was still modestly open. 3. The Windows era, starting with DOS but lasting through XP, where users grew up on a completely black box experience where you bought an emachine at Best Buy and browsed cat pictures online. No developer tools or command line presence at all after a while, so in my high school years (2005 - 2009) an extreme few of my peers even knew what programming was (I'm talking less than 5%).
The phone era is even worse than the Windows era because the form factor does not lend itself to productivity and the ecosystems are locked down (though I think a lot about Android and AOSP makes it much easier to break out of the theme park and see the wider world than in the Windows era).
I'm not saying making everyone use a command line OS or having to install Archlinux themselves would make them more enlightened, but I can convincingly say we probably lost a huge amount of potential developers in these last twenty years to the tivoization and tonka toy Windows experience where the barrier from going from software consumer to software creator was so insanely high.
On Windows, you have to first realize you can develop software. Huge barrier there. Once you know that, you are immediately in the giant cancerous mess of .net and Windows developer tools from MS, which is not something a, say, ten year old is going to be much interested in.
On Linux or any free software OS, you always have Python right on your system. You open up this terminal thing, type in python, read the website a bit, or maybe do Codecademy, and you can drop right out of the browser into the developer tool right at the ready. Maybe you want to get a bit more sophisticated and start using Gedit or Kate or Geary or Ninja as a Python IDE, in which case you just one click install this stuff to your desktop after reading about it on a Python forum.
My point is the process of "getting into" development or just giving a damn about computers is a hell of a lot more fun and reasonable on free software OSes or just one that distributes the developer tools out of the box, in the same way the 80s kids who now represent a huge chunk of the developer workforce came to be.
It's not necessarily that I could look at the source of the kernel (I didn't), it's far more the philosophy of the OS as a whole meaning that I could tinker with whatever I wanted, pull apart components and see how it broke, dive as deep as I wanted into any area of the system.
A Linux system is far more openly composed even when you're not at the source level, Windows is comparatively a black box. A value of Linux is teaching people how computer systems are put together and function, it is unequivocally better at this than Windows.
I don't hate Windows either, but I do think that Linux aligns itself far better with the RPi's mission statement.
Not most of them and not to begin with, but "educating themselves" means having a platform where their curiosity can run amok, and some kids with RPis absolutely will find the Eudyptula Challenge or some other source of inspiration and make it to tinkering with the kernel.
RPi is absolutely the perfect platform for this. Break your OS? Just throw in another SD card. Somehow damage the hardware? Whatever, it's only $35.
I'm not the only person on here who taught himself Z80 assembly language in school because it let me dig deeper into our TI calculators; if we'd been using RPis for programming assignments I would have been all over that. I think it's a little surprising that it even needs to be said on a site called "Hacker News", but let's not underestimate what curious kids with a bunch of free time will accomplish.
It's especially interesting when you're building an embedded system (typically with a RPi). Start with the minimal Arch Linux install, think about what you need and add just that.
There is a lot to learn about how operating system work when you configure Linux without having to recompile your kernel (something that nobody do any longer anyway).
Maybe, but Linux just seems more convenient. I mean, can you install gcc, golang, nodejs, python, ruby, ghc, lua (...) on windows with a single command? And all the other tools you might want to use, like editors, databases?
And you will never know if they want to do kernel-level coding if they don't have access to the kernel.
Yes! Just install chocolaty and type
cinst git
cinst mingw
cinst vim
(and so on)
Prior to Windows 10 it is a third party tool and not officially supported by windows. However starting with Windows 10 windows will ship with a version of this command called OneGet and it will be be officially part of windows.A simple example is this ConEmuConfig package, which will install ConEmu if it's not already installed due to the dependency chain: https://chocolatey.org/packages/EthanBrown.ConEmuConfig
Many Chocolatey packages I use have dependency chains, and I know some developers that build metapackages so installing one Chocolatey package installs and configures all the software on a new dev box or server.
Either way, while it is inferior to apt-get in many ways, it does fill the original posters brief in that it will let you install python,node,gcc,ghc,postgres etc. with a simple CLI command
Windows actually has pretty phenomenal support for kernel driver development (https://msdn.microsoft.com/en-us/library/windows/hardware/ff...).
I don't see a comeback for linux. http://www.google.com/trends/explore#q=linux
http://www.google.com/trends/explore#q=linux%2C OS X&cmpt=q&tz=
Anyway, Ubuntu works fine on most laptops. We can safely say it works across more hardware than OS X. We can also buy an Ubuntu certified laptop/desktop and have excellent support.
I wish Windows fan boys would stop pretending as if they never run into issues using Windows. I have to fix my dads computer once a week with windows. Windows 8.1 refused to wake from sleep on a brand new laptop that it came installed on and the wifi kept cutting in and out.
I find my self having a more pleasant experience more and more on Linux and less and less on Windows.
The most frustrating thing is the mystery about what causes it, since I haven't been able to find errors that explain it in the system logs.
Gaben is closing that gap for us.
Also, Minecraft runs fine on Linux. If GP poster had trouble, it's probably down to a video driver issue (which aren't unique to Linux, but are arguably more painful), or a new-environment-learning-curve thing.
The big studios might not care too much (though even this isn't really universal, since there are plenty of big studios that do target Linux/SteamOS), but there's a lot of activity from indie developers, many of whom are targeting SteamOS before they even target OS X (though there still aren't any SteamOS exclusives that I know of).
I've seen and helped people that hit these brick walls everywhere, whether it's installing the OS itself, a compiler, accessing a thumb drive, or whatever other task they want to accomplish.
These are things that may be incredibly trivial for us that's comfortable in this environment, but a brick wall for others.
I consider myself a technical person and while I think it's fun to use Linux, it's certainly not productive.
Should read: "...I'm certainly not productive."
Just because you struggled with the Linux paradigm, it doesn't mean that it's an unproductive platform.
You and your nephew must be doing something very wrong.
Then I get a dozen calls in the next six months about how completely broken something in 7 or 8 is, but they never consider switching back.
I don't know how to fix that. They get it in their heads that Windows is right and everything else is wrong and the first sign of contention drives them to panic right back to the MS camp, where every day is contention with the viruses and spyware.
Just an example, I had setup a small store with Ubuntu terminals. Six months later they wanted me to switch it all to Windows 8. For those six months the only service calls I got were software updates and general inqueries like "how do I download X?" or "how do I get flash?". Linking a one click Ubuntu install for Flash is insanely easy.
But now its been over six months again since the Windows 8 switch back, and I'm in about once a month to remove systemic viruses and spyware from all the computers because they all get horribly infected and I make them change their passwords every time. They even had the store owners credit card info stolen once, but they would never fathom using anything else again.
And they switched back because Office 2013 in Wine (because they could not stand LibreOffice) didn't interopt between each part properly - IE, trying to open an Access database as a form fill in Word never worked, and they didn't want me to just give them network disabled XP VMs to run Office in using all their old license keys because when they tried that the employees kept trying to use IE6 in the VM and complained it had no Internet connectivity.
It's depressing to read stories like these. I to do not know how to neutralize the peer pressure that seems to make people want to be constantly abused by their malware-infested Windows machines just because their friends are...
One thing may help: interesting metaphors.
When my mom once asked about viruses, I made her picture her computer as an SR-71 cruising at Mach 3.6, high above anti-aircraft fire directed towards Windows machines. Sticky images like this may help, but they may need occasional reinforcement.
Every once and then she also forwards me a chain letter warning about the dangers of such-and-such e-mail scam that tricks people into download malware. I tell her to relax because the malware most likely will not be able run on her computer, much less compromise it.
If you go the unofficial way you can use chocolatey (https://chocolatey.org/). I am very happy with it ( so does it my 9 years old son)
> And you will never know if they want to do kernel-level coding if they don't have access to the kernel.
That depends on the personal curiosity of each person. In my case I have never have that itch and I have been using Linux since 97 when you had to partition your disk by hand.
Not all distributions have apt-get.
sbopkg -i "node google-go-lang ghc ..."
Granted, you have to install sbopkg, but it's still not that hard. And most of those tools (GCC, Ruby, etc., even Emacs!) already ship with Slackware anyway, so it's arguably easier than most GNU/Linux distros.It's hard enough to get a school to teach kids anything beyond using Office. I'd be happy to make things as easy as possible on the teacher who are willing to go the extra mile to teach with a Pi, without making them go another 10 miles learning a new OS to do it.
It leaves a huge gap in the childs education on computing that is one the major reasons so many people today do not even know Windows is not the only OS out there. And of course if they learn on Windows they are going to stay on Windows a huge majority of the time and it just breeds another generation of .net developers who would have a panic attack if a line didn't end in a semicolon.
Is this really necessary for most kids? My view might be skewed because I grew up in the 80s, but everything I learned back then were things like Basic, COBOL, Fortran and Pascal. One of my high school classes did some assembly language on the Apple II, but I'm not sure most of the people in my class wanted to get down to the nuts and bolts.
If a kid is really into the nuts and bolts, they'll likely discover Linux organically. I learned most of my computing skills outside of class by doing my own research. And back then, there was no such thing as Google, just magazines at the newsstand and books in bookstores and the library.
I would say the majority of kids would probably be content enough learning how to make a web app, which can be easily done on Windows without needing knowledge of the stack that makes a computer a computer.
I just switched back to Windows from OSX, and the only reason why I have Visual Studio on my machine is so that I can compile some of my node libraries. I hardly think using Windows will breed a generation of .net developers at all.
Think about what you had back then, though. At best, you had Mac OS (which was as abstracted away from actual computer internals as Windows is today). All the other options - whether it was Commodores or Ataris or DOS-based IBM-compatibles - involved working very close to the hardware. You were manually dealing with interrupts and memory access and other very-low-level components.
Basically, the reason why you didn't have to delve very far into the underlying system was because there wasn't an underlying system in the first place for you to delve into. COBOL and Pascal were pretty high-level, but BASIC and Fortran are along the same lines as C (especially back then): very low-level, very directly-wired-to-hardware, very thin abstractions over raw assembly. You were already delving into way more than students today would ever be able to delve into on a Windows-NT-based operating system (where you don't even have DOS internals to muck around with, unlike on Windows 3.x and 9x - which is what I personally grew up on).
Yeah, students might be able to get by on a bit of HTML and Javascript and maybe Ruby or Python, but I would be lying if I claimed that such an education would be as in-depth and worthwhile as what your or I experienced pre-2000.
The best my high schools had were the Apple II family and PDP mini computers -- my first high school course in BASIC (I already knew Basic from my home computers) -- we were marking up Hollerith cards with Sharpies. You don't know painful debugging until you have to manually scour a deck of optical cards looking for an errant black mark.
We did not deal with interrupts, memory access or low level components. What we learned was more about logic -- not much different than what I do today.
The closest I ever got to memory access in BASIC were the occasional peeks and pokes, and even then, you didn't need them to write a useful program. Being able to build something even as rudimentary as a CMS today on (insert language of choice here) is more broadly useful than anything I came out of high school with.
Also, remember that nothing was really cross platform back then. Most languages were procedural, and free databases (relational or not) -- forget about it. I was on Mac at the tail end of high school, and if you wanted a tool like Lightspeed C or Lightspeed Pascal - those were way out of the budget of a high school student.
"What you were doing was effectively operating system programming" is a _major_ stretch.
The sorts of programming you were doing was barely higher-level than the sorts of programming involved with an OSDev-style "Hello, world!" kernel[0]. My remark is not a stretch at all. At most you had a few thin conveniences (like having some graphics-related features already available to you, since Woz had prioritized that when he designed the Apple II's BASIC interpreter); beyond that, it was direct access to everything from RAM to tapes (unless you were running Apple DOS, but that was not at all required for BASIC programming on an Apple II, and the Apple II didn't ship with it).
BASIC for all intents and purposes, was considered a high level language when I learned it.
From what I remember, BASIC kinda had a similar reputation as PHP does today (probably unfair) in that it wasn't generally taken very seriously as a programming language. You didn't use BASIC to make real programs on an Apple ][. For that, you'd do it in assembly or machine language. That bias is still stuck in my head even after 3 decades.
I know fair few .net developers, and they've all had linux years, and tried various languages.
I think they should widen out.
BTW it seems interest in Windows is also halving every ~10 years (though not as fast as 'linux'):
Citation needed.
It's that last bit that seems to suggest a "who cares what the OS is, kids don't care" idea. In my view, though, it really doesn't. Kids aren't known to have a higher order of executive function. They'll generally just use whatever the trusted adults in their lives use.
Those trusted adults should be exposing kids to all the options, so that the kids are better prepared to make decisions when their executive function skills catch up.
Only kidding. I went to PC World the other day and attempted to use one of the Windows PCs and quickly became angry with Windows 8.1. Seems I have been using Macs for too long (and I used to use Windows daily, now I do but in a VM and it pains me).
It doesn't matter what system it is, teachers are best at teaching what they already know.
There are plenty of teachers throughout the United States who are effective at teaching creationism to their students. I think we can all agree that doing so is not healthy for those students.
All of them, if they want any hope of having a programming or system administration job (i.e. the non-executive IT jobs that pay pretty darn well) in the foreseeable future. Linux is what powers the vast majority of web servers nowadays, regardless of whether they're being run by plucky startups or long-tenured industry incumbents. Windows in the server world has effectively been relegated to legacy systems and a smattering of government websites (some of which in and of themselves also count as "legacy systems"), and that market is continuously shrinking as businesses modernize in methodology and technology.
That nearly put me off writing code!
Thanks to the BBC B and floppy disks!
The majority of users are actually running XBMC on the Pi, and they don't care if it's linux or windows. But the early adopters do care, and they are all Linux people.
Of course there are, but I was taking issue with Windows being unsuitable for a classroom - is it realistic to claim that teachers are getting children to modify and compile the Linux kernel in the classroom? No, that's silly.
Why not? Do you hod the opinion that kernel code is something impossible to mess with? If so, why?
Yep, which is also why they purchased Minecraft. It was more like purchasing the community of Minecraft users, which has a lot of children as well.
I really wished there were a Micronix or something - combining the best of both worlds (Microsoft's extensive resources and reach coupled with GNU/Linux freedom and open-source development) - and that probably is what Microsoft is slowly aiming towards. I guess we'll find out in a decade.
Microsoft has a strong presence in the gaming industry and a history of producing games going back several decades. Notch was looking to cash out of Mojang, and the kids playing Minecraft also have Wii's and 360's and Playstations...or at least the ones in and around my house. They have iPhones and iPads too and game on them as well.
I did like the fact that he posted a picture of kids using Ubuntu on his FB page though.
And Linux is "miles ahead of Windows for research because of its command-line interfaces"? Really? Since when are 25-year-old command-line shells research products? Not to mention stuff like http://mywiki.wooledge.org/BashPitfalls
As for package management, when it works it works, but sometimes I wish it could burn in hell. I can't tell you how many times I've run into problems getting packages to work because their dependencies were either (1) no longer available ("sorry! our servers changed, your version of Linux is outdated"), (2) only available in source code form (but good luck compiling it!), or (3) not available for my version ("sorry, this version is too new for your OS"), among other things. Distributing your dependencies along with your application might not be sound engineering practice, but it sure as hell can make things actually work out of the box so you can focus on what you actually want to do.
"Since when are 25-year-old command-line shells research products?" The shell is a researcher's best friend as they have always been (and will be for the foreseeable future) the direct interface between data and the user. I honestly can't think of a faster and easier way to parse a nasty 10GB log file from a simulation than bash. The fact that its old and still in use is a testament to its usefulness.
Though to be fair, REPLs for languages like MATLAB or Julia are likely far more useful from a scientific standpoint than a typical shell (which is more useful for system administration).
It is a very different experience when the shell (e.g. Transcript in Smalltalk) is capable of interacting with the whole OS.
For example in Cedar, which Oberon copied, any public function/procedure exported by dynamic libraries can be used in the shell via modulename.function.
Depending on their signature they act on REPL text input, the active selected graphical element or some other OS element.
While this can kind of be emulated on an UNIX shell, it breaks down that there isn't an OS wide standard API to bring everything together.
Example? I could show you thousands of issues on windows where a window has stolen focus and it wasn't prevented[0]
In the meantime, it seems to me you've already conceded that Linux can't get it right, so I'm glad we agree there.
The GUI works and it is in fact just as good as Win8 (which I dualboot). When using virtual desktops, it's far better, and makes me more productive.
The package management is amazing. Chocolatey sucks in comparison.
What I fail to see, is what these basic computer functions have to do with research.
Visual Studio has a lot to do with research, and it is a fantastic tool in its own right. The GDB debugger is a piece of ancient garbage in comparison to VS debugger.
You could have focused on the real issues instead of your uninformed outdated FUD.
I use chocolatey, but it's not anywhere near the level of apt-get. That's more Windows and Windows developers' fault than chocolatey's though. They've done a great job given what they have to work with.
Windows makes simple things easy, but complex things nearly intractable.
I think this is much more a ecosystem thing than a systems thing. Which do count of course.
For my purposes Linux is dead simple to use, well documented (most of the time), and does exactly what I need it to do which is to stay the hell out of the way while I burn cycles on real work.
Basically, Windows for scientific software is as bad as Linux was for 3D FPS gaming fifteen years ago. Just ask anyone who has tried compiling anything scientific under Cygwin.
And don't get me started on MS's own compilers. They STILL don't support C99, a sixteen year old standard for one of the most important programming languages!
I think the reason why the top 500 HPC clusters are using linux is the price of the operating system and not the functionality.
And yes, lots of data aquisition stuff is Windows only, particularly the stuff that gets sold along instruments. But then, in that category, the trend seems to be requiring a (preferrably air-gapped) PC running XP. I've even seen stuff running only on Win98 still in use, and I've seen software for rheometers that is STILL distributed on 3.5" floppies. And don't get me started on the "needs-crypto-usb-dongle-to-function" stuff - someone should really tell them that the $300k instrument is a sufficient protection against software piracy.
I kind of gave on Linux a couple of years ago when at the same time when Apple had totally neglected the Mac Pro all you could find from the Linux community was how cool the latest 3D effects on the desktop where and chromium was much better than Firefox. Trying instead finding something like say a 2D library more modern than Cairo and there's a deafening silence.
Yes, I'm exaggerating a bit and there is some good developments. Like CERN making waves in electronics by hacking on KiCad. Though I'm sure they would be happier if they could replace Wx with something more modern, which I'm not sure the current alternatives are.
Also, when you start getting into scientific software, very few projects explicitly state "Runs best on Linux" even though that may be the case. If you are looking for examples though, I will give some: PETSc/Elemental/Trilinos/etc Clawpack/PyClaw/OpenFOAM/etc Gromacs/NAMD/HOOMD/Quantum Espresso/etc Julia/Nimrod/etc Paraview/VisIt/VMD/etc OpenMPI/MPICH/MVAPICH/etc ImageJ/Fiji/etc GNU Radio/RTL-SDR/etc
There's tons of it out there!
1. Access to hardware performance counters and energy counters
2. Easily loadable custom drivers
3. File system that is not slow as hell ("Getting the modification time of a file ... seems to be about 100 times slower on Windows than it is on Linux"[1])
4. Practical mechanism to allocate large pages
5. Futex
In the ecosystem:
1. Package manager
2. C99 compiler
3. POSIX environment (a lot of scientific libraries and tools depend on it)
Networking is another. Windows at least used to have a bunch of different crippleware SKUs with differing networking abilities
Filesystems, Linux supports tons of them out of the box.
Thers no G dmm X Clinet FFS
I am Migrating our mostly Mac shop from standalone to networked using OSX and to be honest using windows server 2012 woudl have been far cheaper in time and hardware costs
There isn't even a method for converting from stand alone users to a network one! - looks like those that say that Apple is abandoning osx users for ios have some validity
Yeah, it's shorter than MS and Linux support windows but I wouldn't describe it as "constantly buying upgrades" either.
I think the only place where Windows is still pricey is the enterprise, but Apple has made it a point to give away their OS completely free to everyone. Apple got out of the server game mostly because Linux has and will take over in the long run (especially with platforms like docker which should make it easier to deploy apps).
By that metric, Windows is also free if you buy a Surface.
>their market share has been gobbled up by Apple in the last decade or so
Today I learned that going from 5% to 7% marketshare is gobbling up a rival that has 90%+ marketshare.
There's a difference between Microsoft's model (using a hardware product to better market a software product) and Apple's model (using a software product to better market a hardware product). Microsoft is a software company first and foremost, while Apple is a hardware company first and foremost.
That's the root cause of the reason why your particular comparison isn't exactly valid: that OS X is not at all designed to work on hardware that wasn't built by Apple (and, indeed, getting OS X to work on non-Apple hardware requires a modified OS X and installer on top of matching the hardware of a Mac almost perfectly).
I work as a Windows device driver developer, and sometimes I need to reverse engineer some of the internals, and the source code from WRK is easily available on the internet : (http://gate.upm.ro/os/LABs/Windows_OS_Internals_Curriculum_R...). These are sources from 2005-2006 timeframe, but they are tremendously helpful when debugging. If you compare the disassembled version of an exported function from the Win 8.1 ntoskrnl, in most cases it's almost identical to the sources in those links. Of course, there are a few parts of the system which suffered changes, but nonetheless, it can still be very useful.
I would also recommend it for studying operating systems, but obviously, along side something else. Let's say after starting with XV6, or Pintos, Minix, then moving on to NetBSD, Linux, only after that having a look under the hood of Windows, to see a slightly different approach.
There is also the 'Windows Internals' book, but I never found it too useful. Describing concepts without any source code, and without a view to the implementation is not very helpful for me.
But I completely agree with you, personally, I would never use Windows if I wanted to play with it, I only use linux and bsd at home.
Perhaps not if you plan of contributing code to any open source OS. Practices like this can leave projects exposed to intellectual property violations.
This is why reverse engineering usually requires more people, each who isn't privy to the previous persons source material.
I see somebody mirrored it already.
Unfortunately the average kid is likely not going to discover such things on the Internet, and even those who pirate tend to be more interested in far less educational content... I think it's somewhat sad that, despite the various file-sharing/peer-to-peer systems that have appeared making it easier than ever to share lots of content, and build something akin to a massive distributed library, the majority just use them for entertainment.
Really, we shouldn't encourage kids to waste their time on operating systems whose developers are hacker-hostile.
It hasn't been as common for a while, but I remember using a litestep ui in the win2k era... actually like the Windows 7 desktop/menu/toolbar interface a lot.
Beyond the UI on top of the underlying OS... I'd say that most software development is business processes, which can be handled in pretty much any operating system and higher level language on modern hardware/software that costs a lot less than the time used to develop said software. Yes, performance matters. Yes, there is a need for open platforms. However, good enough gets the job done most of the time.
I mention this as someone who really doesn't want to deal with the underlying hardware any more than I need to. I have no interest in writing or debugging drivers or system libraries. I do like writing useful, and sometimes not so useful things on top of other tools. If I can do that in node.js, c#, go or other languages that makes me happy. It also makes me frustrated when I need to do something in Windows that's far easier in Linux.
That's a bit harsh. The point of OS is to provide a computational platform for higher level computational stuff like arts and science. It would be a dark world if everyone just tinkered with OS kernels (while it sure is nice some people do).
(Ask an irrelevant question, get an irrelevant answer.)
Oh my. Aaaaand, mirrored. There's also this, which seems about the same level of should-this-actually-be-publicly-available: https://github.com/njdragonfly/WinNT4
(I was more surprised that this source dump doesn't seem to line up with the "Windows 2000" source leak that can be found if you look hard enough. Very peculiar.)
What's the story behind this? Did Microsoft willingly open source parts of its Windows kernel?
If you read that code and then contribute to an open source project (or even your own) and Microsoft finds out and tags you as foe, you'll be in a very bad position.
It is another reason to not promote the RPi, and recommend other single board computers instead like those found here - https://www.fsf.org/resources/hw/single-board-computers
Sigh. I think I preferred it when Ballmer was in charge and Microsoft seemed clueless :-/
It's funny you say that because I used to joke that Ballmer did more to aid the adoption of Linux than Shuttleworth had.
While having software that's open source on the Pi would be awesome, what would be even more awesome is tonnes of apps on Github that are easier to write for the Raspberry pi to allow it to do more than it can currently such as Media Streamers & Servers of all sorts with tonnes of forks.
For what its worth, this is giant leaps forward for Microsoft and vastly uncharacteristic of what they're used to. It shows that they're hell bent on driving their platform through developers. The typical R-pi purchaser is a dev after all.
Linux developers should also consider that the "hackable system" feature is only one of many features that people consider when choosing an OS. It might be good to add a few more carrots to Linux rather than beating people with sticks for not using free.
The whole point of the RPi is to hack, if it's just a way to get a cheap, regular computer then a good part of the appeal is gone.
Linux is used in far more circumstances than Windows and is just as capable as windows when it comes to 99% of tasks.
Buy Linux on an Ubuntu certified pc and you will have zero issues.
In reality most consumers don't use more than a web browser.
To take an example: building a Mame box. On Windows it's a major PITA because replacing the windows shell to start directly Mame is a big hack, because you need to configure Mame in command line / editing text file which is a pain on Windows, because you can't just ssh to edit config files from a regular laptop, etc. On Linux it's much easier, and you end up with a clean configuration that does just what you need.
But you know what? People still use Windows on their Mame cabs because it's their confort zone.
But that's hardly a carrot when it comes to learning CS/Programming. Whether you were to learn on Windows or *NIX it takes a lot of non-intuitive steps too get going.
When I started to learn python I used notepad on Windows and ran it on the command line, I soon switched to Linux and wrote my scripts in gedit and ran the programs on the command line.
The learning curve was about the same. It seems to me that a lot of the skills you learn on Linux when it comes to programming can be applied to windows (you just have to learn their GUI), but methods learned in windows generally can't be applied to other OSs.
I also wanted to run a Python 3 script I'd written on a different computer. Python 3 wouldn't install through apt-get, so I downloaded and installed it myself. Various dependencies wouldn't install using pip, instead giving error messages mixed in the regular output from the install process. I don't remember the actual errors now, I gave up and ran it on a Windows desktop instead.
Sometimes Linux gets in the way of what you want to do. Sure, keep at it and you've learned something, but sometimes you want to get stuff done and don't really care about how hard drive mounting works.
I'm still a big fan of Linux and open source, but I think Windows is a fine option for Raspberry Pi 2.
So I want to share out my external ext4 filesystem from Windows 10. There are no options. I'm done.
Sure, an ext4 tool exists for Windows on x86 but it will not work on ARM. Probably won't work on Windows 10 in general anyway.
Even if I could get Windows to mount the drive I still have the hurdle of NFS (or sshfs or other options) to overcome. Windows Server 2012 ships with old school NFSv3 support but regular desktop Windows does not. That means finding and downloading a 3rd party tool.
In the past I've solved the problem by using openssh under cygwin but let me tell you: getting openssh server setup and configured in Windows, starting on boot is much harder and more complicated than getting Python 3 running on Raspbian (the latest version of which actually has Python 3 in the repos).
There's another thing I want to point out: The Python 3 problem you experienced has already been solved but I don't see the ext4 (or any other common Linux filesystem) being supported by Windows any tine soon. It won't be solved because Microsoft has no interest in interoperability and the closed nature of Windows means it is difficult for 3rd parties to solve for the rest of us.
What distro were you using? Most ship with NTFS support last I checked (though perhaps there's a higher concentration of distros without NTFS support for the RPi).
Similarly: why even use NTFS in the first place if you're doing a network share? Samba can serve files from an ext4-formatted volume to a Windows client just fine. Unless you were planning on being able to remove the drive and plug it into a Windows machine directly, there's no need to use NTFS at all.
> Every step needed to be researched through a mixture of blog posts, Wikis and other online resources.
This is true of a lot of things, no matter which operating system one uses.
Remember that Samba is designed for enterprise environments. Setting up a fileshare in such an environment with Windows is typically just as complicated (but involving a lot of graphical wizards instead of configuration file editing), since there's a lot more involved than just right-clicking the drive letter and telling Windows to broadcast it on the network.
You're right that the process for sharing files over a network with Windows hosts ought to be made more accessible for home users. Linux doesn't really have a "Homegroup" equivalent, which is unfortunate.
That's exactly what I was planning. Also, the drive already had data on it that was supposed to be shared.
I did not intend to start a Linux-Windows flame war, I merely pointed out that for the majority of people buying a Raspberry Pi 2 for the purpose of using it for other things that learning Linux, Windows will be an acceptable choice and in a lot of circumstances probably get out of their way more than Linux. On the other hand, I don't know how you would use the GPIO pins in Windows, but that's easy in Linux. It depends on what you're doing and what you're used to.
I wouldn't trust my parents to configure any of my machines securely (Windows, OSX or Linux). In fact, I advised my mum to use an iPad as it stops her fretting all the time. Sadly, she still struggles with using iOS since they removed all text and replaced it with obscure 1px line hieroglyphs that are apparently meant to communicate an idea (obviously, a box with a tiny arrow coming out of it means share, right??)
Let's hope that they make the SD card reader on this new Pi respect the RW/RO switch on SD cards!
I assume you mean install drivers or possibly configure an internet connection?
This can be a head ache on windows just as much as Linux... and believe it or not there are ubuntu certified PCs that literally work out of the box.
I'd argue learning to "tinker" through a whole bunch of GUIs specific to one OS isn't a good starting point for anyone.
If you plan on using complicated UIs and powershell then the learning curve is already really steep, so Windows doesn't really offer any advantage here.
Knowing Windows != Knowing computer science
That highly depends on what you're doing though. The Raspberry Pi in general isn't a user-friendly piece of hardware, the OS is only a piece of that. The fact that at least past iterations of the Pi aren't extremely fast means that it also had to run fairly unfriendly stripped-down setups so you could squeeze power out of it (IE. Even if you could run Windows on the Raspberry Pi 1, it wouldn't have been very pretty. The advantage of Linux was that it could run with a lighter setup.). With the new processor in the Raspberry Pi 2 I'd expect you could run much a much nicer setup on the Pi, comparable to the Windows setup. I'm interested to see how well Windows 10 actually runs on it though, I'm not convinced it's really fast enough to handle a full Windows stack, so it's possible we might see some type of stripped-down Windows setup for it. In which case, it will probably be less user-friendly.
Seriously. This whole "Linux is not user friendly" myth has been a myth for almost a decade now. I've seen 70-year-olds with zero understanding of technology whatsoever use GNU/Linux (openSUSE, specifically) without problem. Let that sink in for a second.
Think of it differently--some kids may wish to learn about other things, or just build something. Not all kids will want to dive deep into the OS.
In 35 years as a software/hardware engineer I have never had to go into OS source code for either embedded or worstation applications. I have written real-time operating systems from sctatch for embedded applications running inside customized processors I built inside FPGA's but that's about it.
Yes, I am suggesting that the lack of access to source does not limit growth or learning in any way. They can always run Linux on any platform and go as deep as they with. That's the other point. When the platform costs $35 you can certainly have more than one and play with different OS's and applications.
Offering free software is only a crime when Microsoft does it. I find it laughable that these people typically support new tech, they back all sorts of non-open source projects and questionable schemes like growth-hacking when it suits them, but when it comes to Microsoft they just love to hate. (EDIT: I personally don't give a hoot, so downvote away Micro$oft haters ;)
I don't think Windows is going to close any real bits of the Raspberry Pi 2, at least any more than it already is.
I'm actually more excited about "open" hardware like AMD AM1 or Intel NUCs for this reason.
Well, no. Almost none will have used Windows without the GUI.
I think that is extremely unlikely to happen.
Most importantly Raspberry Pi is a friendly device which managed to really manage the market(press/public) perception just right despite the delays and early failures.
Same goes for Windows 10, definitely not open but friendly and the price is right in this case.
However, Windows seems very much contrary to the goal of the Raspberry Pi: providing a device for children to tinker with and educate themselves. Although .NET is slowly opening up, Windows is closed as ever. So, it does not actually let you check out how stuff works: looking up that function in the Python standard library, seeing how it calls libc, and then diving into libc to see how it is actually implemented.
It's in Microsoft interest to keep kids in their ecosystem, which has been pretty much unproblematic in the nineties and before the smart phone revolution. As the RPi becomes more popular in education, it would be bad for them when kids see that there is something else that not only works well, but also allows them to do more.
My fear is that teachers will now choose for Windows on the RPi, since that is what they know. And we are back to where we started: a fundamentally unhackable system.
Now, if Microsoft would open up the core of Windows. I would be impressed. Now? Not so.