Microsoft's two existing open-source projects have used a type of open-source license from IBM called the CPL, or common public license, which some companies tend to favor because it clearly delineates some critical ground rules for an open-source technology's use. Analysts say that choice of license shows that Microsoft takes issue not as much with the broader open-source concept as with the GPL, a different type of open-source license used for Linux and other programs.
I would argue that the GPL has "clearly delinated ground rules", and I'm not sure what extra value is added by the CPL. The FSF licence list gives some hints that the CPL imposes extra requirements:
The Common Public License is incompatible with the GPL because it has various specific requirements that are not in the GPL.
For example, it requires certain patent licenses be given that the GPL does not require. (We don't think those patent license requirements are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)
Does anybody have any examples of why a corporation would prefer the CPL to the GPL?
In my undergraduate computer science course, I managed to learn assembler twice and bytecode once:
Assembler for a simple simulated processor (1988)
This was the first module in one of the two first-year courses. Pascal was the first module in the other first-year course.
68000 assembler (1989)
"Eventually, all languages are reduced to assembler. And sometimes you will use it for speed."
EM, an intermediate language - the bytecode (1989)
Part of a compiler course. I haven't worked on compilers, but it was incredibly useful when Java came along.
I'd recommend this to anyone studying computer science, or anyone designing the course programme.
I think the most important knowledge you can gain from university is the theoretical foundations behind programming - namely, the principles and design of algorithms and data structures. Your don't necessarily need theoretical computer science (finite state devices, pushdown automata, Turing machines - they're fun, but you could just read Neal Stephenson), but I have many MIS-degreed colleagues who come unstuck when a new technology arrives because they never learned the fundamentals.
My university (Canterbury, New Zealand) did not have a specific MIS department. Instead, the Accountancy department had some MIS-type courses (business focus, some simple programming in DBase, which was a waste of time), and the Computer Science department had some other MIS-type courses (systems analysis and design). So my degree includes system-oriented CS, business-oriented CS, business-MIS-theory, and theoretical CS. I recommend the subjects in that order.
From the article:
I would argue that the GPL has "clearly delinated ground rules", and I'm not sure what extra value is added by the CPL. The FSF licence list gives some hints that the CPL imposes extra requirements:
Does anybody have any examples of why a corporation would prefer the CPL to the GPL?
In my undergraduate computer science course, I managed to learn assembler twice and bytecode once: Assembler for a simple simulated processor (1988) This was the first module in one of the two first-year courses. Pascal was the first module in the other first-year course. 68000 assembler (1989) "Eventually, all languages are reduced to assembler. And sometimes you will use it for speed." EM, an intermediate language - the bytecode (1989) Part of a compiler course. I haven't worked on compilers, but it was incredibly useful when Java came along. I'd recommend this to anyone studying computer science, or anyone designing the course programme.
I think the most important knowledge you can gain from university is the theoretical foundations behind programming - namely, the principles and design of algorithms and data structures. Your don't necessarily need theoretical computer science (finite state devices, pushdown automata, Turing machines - they're fun, but you could just read Neal Stephenson), but I have many MIS-degreed colleagues who come unstuck when a new technology arrives because they never learned the fundamentals.
My university (Canterbury, New Zealand) did not have a specific MIS department. Instead, the Accountancy department had some MIS-type courses (business focus, some simple programming in DBase, which was a waste of time), and the Computer Science department had some other MIS-type courses (systems analysis and design). So my degree includes system-oriented CS, business-oriented CS, business-MIS-theory, and theoretical CS. I recommend the subjects in that order.