Modern pushrod designs aren't "sloppy" - when you don't need to rev as high to generate adequate power, you don't need the added valve stability that an overhead cam arrangement provides. Not to mention that a single camshaft actuating pushrods is more space and weight efficient than a set of overhead cams.
But then, that's just my opinion as someone who races a modern, fuel injected, naturally aspirated, RWD vehicle. A vehicle which has a pushrod V8.
This is exactly the sort of condescending attitude that pisses me off about the CS program I'm currently concluding. Why should software engineering be considered "petty" in relation to, say, the study of formal languages and automata?
The vast majority of students in my program honestly don't give a flying fuck about the academic opinion that CS shouldn't behave like a vocational school - the intent is to go into software development, and CS is the only offering that touches on it. Yes, we're all capable of learning various things on our own (including the theoretical aspects of CS, as instructors in these fields are typically so incredibly incompetent that students are required to teach themselves, anyway), but that's not a justification for providing an education that is largely irrelevant.
If I really wanted to study theory and computational mathematics... I would have studied computational mathematics.
Were it not for the perceived value of a CS degree, I suspect a substantial number of students wouldn't even bother, and probably flock to Coursera, etc.
Well, it sounds like you signed up for fine arts when you actually wanted to be a carpenter.
And you're forgetting companies like Google, Amazon, etc. who expect candidates to know CS theory pretty thoroughly. What kind of school would be proud of grads who couldn't get into one of these top companies? Software engineering is also easier to pick up on the job than in school, and vice versa for the theory.
It's condescending to describe CS theory as "largely irrelevant", but this also sounds like a case of sour grapes. There are plenty of tech curriculums that are light on CS theory--try looking for "Informatics", "IT", "Information systems" and so on.
> The vast majority of students in my program honestly don't give a flying fuck about the academic opinion that CS shouldn't behave like a vocational school
The vast majority of students in your program are unqualified to have an opinion. There's no point in having a university teach you version control systems if you're just going to end up learning it anyway. It's basically impossible to make students good software engineers (which has nothing to do with version control systems or other trivial things like that) in an academic setting. That's only something which comes with experience.
I do think it was a mistake for the parent to refer to it as "petty". Maybe some of it is petty, but a lot of it are valuable skills that you learn on the job.
But that is the key phrase, "on the job". I know I personally didn't go to school to fit all these check boxes. It seems like a poor choice to me that you and your classmates would (1) enter into a CS program without much interest in CS, then (2) blame the field of study for not being interesting to you. I for one am glad I got a CS degree (for the CS degree's sake) and thankful for what I was exposed to in those years. These other check boxes? Sure they are valuable. That's what my first job was for.
> Were it not for the perceived value of a CS degree, I suspect a substantial number of students wouldn't even bother, and probably flock to Coursera, etc.
Yes, well maybe they should get on with it then.
The beauty of CS is that the theory is directly applicable to the practice of software engineering. And because of this close connection between code and theory, you can develop significant coding skills just from doing the problem sets. As per the usual academic refrain, you get out of it what you put in.
If you think they should just be teaching you industry skills then you're wasting your time and money because college will never be as instructive as taking an internship in an actual company shipping code. Not only that, but you're paying for the privilege instead of being paid. Even if they rolled over and decided to go this route, academia does not have the knowledge or experience of what it takes to be successful in industry, must less impart that knowledge to you.
If you're going to go to college, take advantage of the academic strengths: the deep knowledge, the curiosity that goes beyond the immediate problem, the great minds you have at your daily disposal.
On the other hand, if your CS program sucks then it sucks and I'm sorry.
> I don't think individualism would be a major factor.
There are many countries which satisfy your former criteria yet lack this; none of them have the same innovation economy that the United States possesses.
I can concede this. I don't really know the answer. But individualism alone doesn't seem to be enough.
Their are plenty of artist and individualist in Germany which has a very large art culture. Would Germany be considered one of the more innovative countries in the world?
Stripe might be more dev friendly. But PayPal is years ahead. They are available in most countries and you can practically do anything with PayPal Adaptive Payments. They are also doing a the Square like credit card processing plus many many other things.
I know Stripe is good. But It will be interesting to see when they can match PayPal's features.
1. The vast majority of the games industry borrows heavily from titles which have come before, so Zynga isn't unique in this regard, nor should it be singled out.
2. The establishment of addiction-creating feedback loops is practically a games industry science. Again, this is hardly unique to Zynga.
3. Subjective statements about quality aside, I think it's safe to say that Minecraft has highly addictive qualities, and therefore Notch can't really be put on a pedestal here in the context of your second assertion.
Your points stick for a subset of games, but I don't think bringing Minecraft into the mix makes sense.
Other "addicting" games that Zynga can be compared to are things that have been in the casual space for years, or a decade-plus. Things like Bejeweled and the casual flash-game portals that (used to be) everywhere.
Zynga is in the business of shallow gaming experiences that focus on extracting money from users. I think when most people think of good game companies, they are thinking of companies that make games with depth that don't require a refill (via money) to keep having "fun" or progressing.
1. Many games have identifiable influences from other games, but what Zynga does is far beyond "borrowing heavily". Read the legal doc I linked to above. They are completely unique in terms of how far they take copying.
2. We call this fallacy "Tu quoque". Yes, other games also have feedback loops. People have been criticizing Everquest and WoW for ages. Zynga has all of the same negatives, but in higher proportion to the total game (ie, there's very little "game" and very much "addictive loop".)
3. Yes, plenty of other games have addictive qualities. But those are typically minor components that go along with excellent gameplay. When notch (and now jeb) make changes to Minecraft, they're not about trying to strengthen addictive feedback loops; they're about trying to put in new cool stuff.
Yes, this is a subjective take. No, this doesn't make it any less valid.
First, find actual data to back the assertion that low capital gains taxes back innovation.
I think you'll find that it is in fact seed capital and small business loans that back innovation, and that these facilities are generally provided by government not the private sector.
I think you'll find that what low capital gains taxes do is allow hedge fund managers to get a lower tax rate by reclassifying their income.
Yeah, see, here's the thing: for many projects of noteworthy complexity, it'll be easier to gain an understanding of how to make use of it through a clear set of docs than it will be by slogging through source code.
Good documentation provides context and use cases. Good comments in source code provide clarity as to what the code is doing. They are in no way equivalent.
One of the benefits of encapsulation in software is that it enables individuals to program against a documented interface without spending (although in many cases I'd say wasting) time to understand the intricacies of implementation. You lose that benefit if you're forced to dip into code to understand how to use that code.
You do have a point, though - as an open source dev, it's your time to spend as you see fit. But a quality open-source project is more than the sum of its code.
> You do have a point, though - as an open source dev, it's your time to spend as you see fit
I agree with both of you - I don't see software as "complete" unless it has documentation, it's part of the package to me. I happen to like writing it, but I hate some other aspects of programming - doesn't mean I skip those sections.
However, I have put things online without documentation before, because the software wasn't complete but maybe someone else would complete it, or find it useful, or learn something from it. Maybe they won't - but I lose nothing by putting it online, and the world stands to gain.
OOP isn't intrinsically bad -- the problem is that developers have tried to graft an OOP model on software architectures that have never actually needed to be OOP. Also the disgusting abuse of inheritance. There's a conflation of "OOP" with "modular" for large software systems when it's perfectly possible to write modular code in a structured imperative language or a functional language that might actually provide more elegant solutions to the problem at hand.
I've coded some data processing systems in Lisp which were elegant and modularly structured, and I'd avoid OOP in that domain. Currently doing game development, though, and for top-level game logic that is largely about manipulating the state of entities in a world, OOP shines. Different tools for different jobs.
C++ is pretty awful, though, and many of the systems built in it that I've seen are pretty awful.
WebSocket protocol is pretty easily implemented in pure Python; my co-founder and I did this just recently to support some of our game client functionality.
But then, that's just my opinion as someone who races a modern, fuel injected, naturally aspirated, RWD vehicle. A vehicle which has a pushrod V8.