MS: Use the Source, Luke!
McSpew writes: "The WSJ (via MSNBC) has an article about Microsoft's upcoming push to get universities to use .NET code in programming courses. Their code-sharing initiative is all about winning hearts-and-minds at the university level, where Linux and open-source rule the day. The article does a good job of explaining the issues and why MS may yet fail in spite of their push. I wish the article had discussed the reverse-engineering issues of needing 'virgins' who have never seen the product being reverse-engineered and how MS's newly broad distribution of its code makes finding virgins much more difficult."
At the recent SIGCSE conference of the ACM MS was there pushing the .NET handing out full copies of it and XP Pro as well as books on C# and things like that. I must admit I saw the add-on to .NET, the Live Wire product I think it's called, as a decent tool to teach non-cs majors an intro to programming course. Then I got home and talked about the product with some colleages and to my disgust one was using it to develop actual software.
It's one thing if a school jumps on board with this, but for the love of pudding, please mention there are other things out there, and what is sometimes just a teaching tool isn't always something for use in industry.
Wheeeee
That's a shame - at my school we are knocking down a wall to expand our sun cluster and we require all programs submitted by students to compile on the suns as that is where we check the homework. All faculty have a sparc in their office and all students are issues prox cards to access the room with the suns.
The room we dream of is some sort of lab where the kids would be allowed to play around with OSes and play with hacking tools - something not allowed to touch our unniversity network, so we'd like to go disjoint.
Wheeeee
First, in what course exactly would an instructor want to say "Well, here's a whole bunch of code from a commercial (or any) project. Study it." I agree it's good to have an example around for some things, but if MS thinks the Universities are going to create a course like "The .NET Code", they're dreaming.
Second, if I did want a large code example, I'd want a good example. I'd want to be able to point to almost any part of the code and say "That's the right way to do it." I've never seen any MS code, but I'm going to idly speculate that you couldn't do that with it. Probably MS isn't shooting for the .NET code being used as a cautionary tale.
It seems somewhat plausible that Microsoft is concerned about the general lack of programming experience on their products that college students get. I know at all of the universities I ever went to, (three) and all the ones anyone I can recall asking about it went to, (more than three) the dominant programming infrastructure was Unix. As far as I can tell, this has only become more prevalent in recent years, with almost every CS student I know running a linux box at home to save the effort of having to sit in a lab to code homework assignments.
.NET stuff in order to RE it for purposes of Linux interoperability, though. Maybe that's another reason MS is pushing to have it's code displayed so broadly. So noone can legitimately RE it.
It is a shame that it will be harder to find people who have no experience with the
-il cylic
Defend Freedom
They're setting up to kill Open Source in the future... not by winning hearts and minds, but by "contaminating" all those students...
MS Lawyer: "What? Product X functions like MS Y.NET? Obviously you had access to our copyrighted source code!"
Open Source Group: "WTF are you talking about?"
MS Lawyer: "Programmer Joe Collegekid over there, he saw our source in his college class. He obviously used it. Stop producing your software, or you'll lose everything you own! Oh, and give it to use, because we own all the copyrights on it!"
Fascism starts when the efficiency of the government becomes more important than the rights of the people.
I think at most schools (at least mine :) it was almost purely Java/C++ based on W2K boxes. Open Source was encouraged at the student level, but not mentioned much in the classrooms (then again, neither was MS)
From the GNU site: "...The GNU General Public License is often called the GNU GPL for short..."
So if you call it GPL it is the general public license.In fact, source access to the Java2 platform under the SCSL has onerous "contamination provisions" and I think using it in a computer science course is irresponsible because it may contaminate students for the rest of their professional lives.
What we really need is better open source, non-proprietary implementations of either language that colleges can use. These then give students access to tools they can use after they graduate wherever they work, and they can work with the full source code without selling their souls. And, besides, colleges shouldn't focus so much on just one language anyway.
While Sun and Microsoft fight it out for the minds of computer science majors, another company has pretty much won the battle when it comes to engineering: MathWorks's Matlab has become the de-facto standard for computing in engineering and some areas of science and applied math. You can't exchange code with many others in the field unless you buy their software. Many research results are built on it and only reproducible using it. Oh, sure, it's cheap as long as you are a student or professor, but once you graduate, expect to pay many thousands of dollars even for a basic license, and many students graduating from top engineering and research labs are largely incapable of programming in anything else. The Matlab success story is a monopolist's dream.
MSNBC has had some articles that have been extremely critical of Microsoft in the past, especially noting Windows bug and during the DOJ trial.
Say what you will about them, but I've always found MSNBC to be QUITE impartial when it comes to reporting on Microsoft. And believe me... whenever I read Microsoft stories on MSNBC, I always have my eyes wide open for signs of bias. Haven't found it yet though- I must say they've done a damn good job in the articles I've seen.
OtakuBooty.com: Smart, funny, sexy nerds.
In the lab where I work at MIT, we were given 2 high-end Dell boxes with NT on them. We purchased 5 IBM machines, Win98 installed whether we wanted it or not. Only one of these machines now has an MS OS still installed; Linux has nearly wiped out the competition here.
There's a Solaris cluster in the basement of our building, and an MS NT lab; four out of every five times I walk down that corridor, the NT lab is empty. The Solaris cluster is never empty.
This is a sad, but true phenomenon. And the root cause of it is not anything that Microsoft did-- it's the takeoff of Java. This is particularly ironic, because many of the Unix machines being tossed were made by Sun.
The strange thing about the Windows migration is that it's not necessary, unnecessarily expensive, and probably counterproductive. Installing Windows partititions in labs provides little benefit to students, whether they're programming in Java or C/C++. What it does allow for is a whole lot more gaming. It costs a lot more to pay for those Windows licenses (or, at least, Windows development tools), and in the end you graduate a class of students who never get comfortable with a shell, with C, or with many Open Source projects (which are a great way to develop programming chops).
None of thost last things need be required as part of a CS education, but they make a major difference in your skill level by the time you get out of school. Being steeped in Linux/BSD, C and X-Windows added a lot to my education.
Its a difference between people who just want to know how to use something vs the people that want to understand it. A shame they don't realize that if they understand how it works, they won't have any trouble using it, or anything like it, ever again.
flavor of the day propritary platform
I don't know about anyone else here, but I don't think Microsoft is exactly a flash-in-the-pan, flavor-of-the-day, fad kind of beast. Judging by their actions and perseverance over the past decades, they appear to be as strong as ever, and as strong as anyone could expect to be. Seeing as people going to college are probably planning to apply for a job in the industry corresponding to their major, they should learn the operating system used by the majority of companies. And by majority, I really mean majority, don't get confused and put yourself in that category, before remembering which side of the 95% barrier you are on.
Lack of eloquence does not denote lack of intelligence, though they often coincide.
But not only is both the department and university deeply rooted in Unix (especially for Comp classes), we're already incorporating Open Source directly in the curriculum. In a software engineering course I'm in right now, we're using Sourceforge to develop DrJava, a GPL'd Java development environment that is particularly useful for teaching beginners. We're seeing that open source and extreme programming (complete unit tests, rapid releases, etc) are a very effective approach towards building software-- and Microsoft isn't about to woo us away from that with money. I expect that any use of .NET here (if there is any) will be
strictly complimentary to our existing approaches.
You're looking for the highest-paid jobs? UNIX-based programming jobs are generally better paid than Windows ones. As a matter of fact, the higher pay of UNIX admins and coders is a major impediment to *using* UNIX in a lot of places. I have an OS prof that's done a lot of consulting who's a Solaris junkie, and he specifically said that he'd *avoid* Solaris if he could when consulting because it's so much cheaper to build a system that you can just hire a MCSE to maintain, and pay them shit wages. He estimated that you'd have to pay at least 30% more to get a UNIX-equivalent person.
I agree with this. I work with three graduates of MIT and they are some of the most talented software engineers I've ever met. At first, I was shocked to learn that the *ONLY* language ever taught to MIT CS students is Scheme (a dialect of LISP for those who don't know what it is). Oh, and thats taught in the _intro_ Computer Science class. Once they know the
"basics" they are expected to learn all the other necessary languages they'll need by themselves (C, C++, Java etc.).
At Harvard, where I got my CS degree, we learned C++ (an imperative language) and LISP (a functional language). Everything else was theory.
MIT just gets straight to the point and only teaches the functional language, because that is *pure* CS. After thinking about it, I realized that this was the way to go. You can teach someone how to use some piece of technology which may be obsolete soon, or you can teach them how to think.
For people who are really majoring in Computer Science, it shouldn't be about "programming languages" but Computer Science - that is computability, algorithms, data structures, operating systems, electronics, E&M physics, math,
foundations of networks, graphics, compilers, databases, cryptography etc. Any decent CS major will pick up the rest himself.
Damn, I should have gone to MIT...
This is an interesting clause:
That if you sue anyone over patents that you think may apply to the Software or anyone's use of the Software, your license to the Software ends automatically.
What does that mean, exactly? So if I create a modified version, patent the modification, Microsoft infringes my patent, I sue Microsoft, then I lose my right to use the software in the first place, therefore... What? Any lawyers out there can interpret this?
...and what happens when they hand these NDAs to 16 and 17 year old freshmen? See Apple Story for context.
Somewhere, something incredible is waiting to be known. -- Carl Sagan
Here at Michigan State University, the powers that be have decided to scrap teaching the intro to programming classes on Sun machines and instead sign up to be Microsoft technology testers or something such as that. The result is that people who have never programmed before are now starting their lives on Visual Studio. We even used to have a linux lab where the Operating Systems lab was held, Now it is all Windows. Sort of a shame since a lot of the labs were "look here in the source and see how linux implements this".
A number of professors that I know are very upset over this, but as with all things there is a VERY large cash incentive from Microsoft if they do this, and they did.
At NTU in the UK, from where I graduated last July, students were forced to use Windows, including Microsoft compilers.
There were rumours of an old VAX cluster - they turned out to be true. There was a cluster - it was offline and gathering dust.
There was one "student" Linux box, which anyone who expressed an interest could get access to - it was taken offline halfway through my first year, due to "lack of interest", despite what I heard from many disgruntled ex-users.
In the UK at least, be certain to check the type of network a CS faculty runs in advance if it matters to you; I found out too late that presuming big hunks of *nix goodness are going to be available is simply not safe.