1,666 karma · joined March 26, 2009
It doesn't have much of an intro, so I thought people here would appreciate the backstory provided in the Herald article.
C/C++ are generally still the "fastest" languages in terms of final application performance. And, I am pretty sure that all of the DirectX/OpenGL APIs are still tied pretty tightly in with C/C++ libraries.
They need to write their software to behave compatibly with certain system restraints, and thus don't have quite the freedom afforded to web app developers and their fairly lax-by-comparison set of browser requirements.
Granted, the similarities only go so far - being a mechanic is far more diagnostic and enhancing of the underlying system than being a programmer is (and hence, as you said, probably closer to the medical profession). However, a mechanic's ability to diagnose issues based on the subtlest of clues seems fairly close, at least in my experience, to a skilled programmer's ability to track down a quirky bug - both are based almost entirely on their exhaustive knowledge of the underlying system. The medical field's underlying system is biologic rather than mechanical in nature - hence most of the diagnostics have to be based on generic tests that are variably reliable (at least now, prior to surely-forthcoming genomic advances in medicine), rather than solely intuition and experience.
I would add that there are more similarities between a master mechanic and a skilled applications/systems programmer than people usually recognize.
Both professions require similar amounts of schooling (Two years at a tech/vocational school versus four at a university, but I would argue that there are only about two years worth of CS classes that are really necessary for programming success), and both deal with large, similarly complex systems that need to be known equally well for success.
I would even go so far as to argue that the same "type" of mind gravitates to both professions - differing socioeconomic pressures just nudge people in different directions.
In order to get the awesome Madden-esque camera views that you describe (at least for outdoor sports), stadiums would need either overhead camera supports or massively zoomed in angles from the ends of the stadiums, and it would be nearly impossible to guarantee a consistent angle between venues.
Also, nobody in their right mind would leave their computer plugged in while working on its internals.
I was simply using YouTube as an example of something that, absent of Google deciding to run it at a significant loss for 5 years (far from certain), will have to change its operating methods to something less pleasant to the consumer.
There is no way the vast amount of free, professionally made, high-quality content we have available online now continues without some sort of tradeoff in either cost, increased ad exposure, or reduction in quality. The transition period the internet is in right now has to end sometime, and I'm pretty sure it will come down squarely on the side of the content providers/producers.
I don't think the online advertising model is a failure - I just think there is a lot more room for increased ad volume with it. As traditional media outlets decline, we are going to see more and more of that room exploited on our screens.
As far as AdBlock, no company wants to pay for eyes that they are never going to get on their ads. There was (and is) plenty of resistance to TiVo from the networks because they know that companies do not want to pay for commercials that consumers using TiVo can and will skip.
AdBlock basically works by blocking inline ads loaded from offsite - eventually someone is going to figure out how to get around it.
And as far as "too intrusive", that will only last as long as people let it. It'll be the "slowly boiling water" technique, adding more and more intrusive ads slowly enough that there won't be an immediate backlash.
Any company wishing to create content will have to figure out how to monetize it somehow, or else they'll have no reason or ability to create/provide the content in the first place, and right now, the current ad model just isn't enough for the level of profitability that traditional media are accustomed to. If YouTube, one of the most popular sites on the planet, can't come up with enough ad revenue to be profitable, the current status quo just isn't enough. Either they will need to scale back their site, or add a massively increased volume of ads.
The unfortunate byproduct of this is that my code ends up looking very confusing, even to me, and I have to do some major cleanup on it before I let anyone else look at it.
Most of CS also revolves around making things easier (correctly, of course) for yourself.
If there's a method that will get things done with less work, you are usually encouraged to take it, provided it gives the right output - nobody cares too much unless its completely slow or bloated.
That was the biggest reason for me over going into engineering - CS actually rewards you for thinking outside the box, and it thinking like that really helps most of the time.
I would gladly move to something lightweight like the OP asked for. Most of the features in Eclipse aren't useful to people working on relatively small projects, and the features that are useful (code completion, refactoring, nice library integrations) could probably be deployed with much less overhead.
It's simply more convenient for people to pirate material that they can use hassle-free - no software compatibility hassles, bizarre hardware restrictions or archaic region coding.
As soon as someone decides to make their catalog of movies available, DRM-free, they'll reap the profits from the average consumer who just wants something simple.
I've yet to run across an OS that does a seamless upgrade from a preexisting installation.
In an ideal world, I'd love to see a pared down version of Java's syntax matched with a better-optimized version of GCJ - the readability of Java combined with the speed of native bytecode would be a godsend.
They are useful skills, and, I think the reason that the section seems "old-school" comes from the proliferation of Java in early CS courses.
Java has most of the algorithms and structures implemented already, and there's no point in anyone redoing it once they find those implementations, so the skills fall out of use.
To any Linux developer/admin who hasn't used it - if you want to push your terminal wizardry to the next level, make a concerted effort to learn Screen. Once you get the basic commands down (and these Ubuntu modifications should help the learning curve) it really does save a lot of time.
I doubt that sysadmins will ever be considered "the masses".
New Linux users, even those who are competent within Windows, are just too intimidated by a CLI.
That said, the simplified config for Screen is pretty nice, especially for those of us who regard mouse use as a cache-miss.