"Read it. Other than the solid date he predicts, it's pretty plausable."
No it's not. If it was possible to do in a million lines of code, it would have been done by now. Windows XP had something like 40 million lines of code. While we can agree it was probably coded relatively inefficiently, there is no way that any OS even comes close to the complexity of the brain.
While I think Kurzweil is definitely reaching here, this is a ridiculous comparison to say the least. What does the number of lines of code have to do with anything? The brain does not have to route millions of bits around it's circuits, draw graphics at 60 FPS and read and write data from and out of external circuits and do all this (seemingly) concurrently. Whether efficiently coded or not, it's tasked to do something completely different than the brain. Having said that, there is no reason to think that it would take anywhere near that many lines of code to implement a cortical algorithm. Granted, it will most likely require high speed or highly parallel hardware with massively associative memory capabilities, but the algorithm itself may turn out to be fairly concise. Just as E=mc2 goes a long way toward describing the fundamentals of the physical universe, it may turn out that the secret to creating a sentient machine is a matter of hitting upon the correct algorithm. There is a fair amount of research that indicates that while different regions of the neocortex vary somewhat in their neuronal architecture, the neocortex is largely homogeneous and may very well operate based on a single cortical algorithm. The amazing plasticity of the brain (the ability of, say, the visual cortext to be taken over and utilized for auditory processing in blind subjects) provides strong evidence that the overarching principles of operation in the human brain may not be incomprehensible after all. While the brain may seem extremely complex due to the billions of neurons and quadrillions of connections, it may actually be no more "complex" than a desktop computer with it's millions of specialized circuitry and timing dependencies.
Hmmm, let me see. Higher prices at the gas pump, or risk a possible extinction event...decisions, decisions.
Wow. Humans like to boast about their dominion and intellectual superiority over other creatures in world, while even dogs know better than to shit where they eat.
That's right. BP spent $0.00 on R&D for containment and cleanup contingencies prior to the disaster. In any other business, having no DR plan would get a CEO fired.
I got the distinct impression that Ol' Tony didn't give a damn about us "little people" and his biggest issue with the oil spill was that it was keeping him from "getting his life back".
How about spending a tiny bit of the $5.5B in profits each quarter on R&D for oil spill containment and cleanup? I guess that would have been too much to ask.
Spokesman for BP assures everyone that the fact that the fish has three heads, 5 legs and squirts a strangely mutagenic substance at it's prey has nothing to do with the oil or the disbursants being injected into the water near the site.
but their response to the spill has been about as good as anyone could have done.
My apologies if you or someone you care about works for BP, but Bull-f*ckin-Sh:t! (excuse my tone, but I'm just a little teed off about it!). You (and Joe Barton) can kiss my oil-splotched arse. I now have to live with that crap washing up on my property and watch as what used to be vibrant with life become a cesspool.
Here we are, 80 days out from the disaster and things are worse than ever.
You're right of course, this should have never happened. BP should have never drilled, and never been ALLOWED to drill that deep without an absolutely foolproof plan to stop the leak if it occurred, AND a plan to quickly clean up any oil that might have leaked, no matter how much. How about a plan for when the BOP failed? It's not like they are 100% foolproof - studies have shown that they fail about 40% of the time! (http://money.cnn.com/2010/06/30/news/companies/blowout_preventer_bop/index.htm)
It's pretty obvious these plans did not exist (no, the cut-and-pasted Alaska plan doesn't count).
You mean to tell me that BP, with it's $5.5B per quarter profits, couldn't spend a dime on research for containment and cleanup? That's right, they didn't spend a dime on it - zero, zilch, nada. Their budget for this type of research was $0!
Ok, so we know BP wasn't prepared to deal with this. That's history now, so let's focus on what happened after the disaster.
The oil spill was 50 miles out into the Gulf. It took nearly a month for the oil to reach the shores of Louisiana. What did BP do during that period of time to try and keep the oil from approaching the shore? Lay out booms along the shoreline? Is that the best they could come up with? Why did they make no effort to contain it around the site of the disaster? Couldn't they afford to spend a small percentage of their $22B a year profits on rounding up all the skimmer vessels they could and keep the damage to a minimum? Did they have to pump millions of gallons of extremely toxic disbursants into the Gulf to try and distribute the oil into the water as tiny particles, when all that did was give the illusion (i.e. PR move) that it wasn't as bad as it was? All that did was make cleanup more difficult, distribute the oil throughout the water column, and ensure that not only the surface water would be affected, but everything from the seafloor to the surface is rendered lifeless.
I'm sorry for the long rant (actually, no, I'm not), but I don't think you know a damn thing about what has happened to my home (or maybe you do, but your loyalties lie with BP rather than what used to be one of the most beautiful places on earth - IMHO).
How's the kool-aid dude?
Yes, I've been using VS2010 since April. I played around with the beta for a while before that. I've also got VS2008, VS2003 and VS 6.0 installed. I still have the CDs for nearly all releases going back to the first Visual C++ 1.0. In fact I still have the diskettes for Microsoft Quick-C around here somewhere. I still use MS tools and have, continuously, since the late '70s (TRS-80 Level II Basic)
Don't start rewriting reality and claiming they're even close in terms of quality.
MS vs Apple vs Open source is a fools debate that boils down to personal preference, but you are certainly one of the first I've heard to tout "quality" as one of Microsoft software's virtues.
I find the open source gcc tool set quite reliable and of very high quality. The MSVC++ compiler produces high quality code as well.
As for all the new bells and whistles in VS2010 (F#,.NET 4.0, improved support for LINQ, WPF, WF and WCF), I'm taking a "wait and see" approach since these are proprietary technologies (yes, I'm aware of Mono). These may or may not catch on in the industry. If they do, I'll learn them, if not I don't have the time to waste.
The cost of something, however, is not binary - it's a continuous variable.
Um, not the last time I bought something. When I went to McDonalds today and got a quarter-pounder meal (large) it was $6.19 - exactly - no sliding scale, no continuous variable. I didn't see the price flickering between $6.18 and $6.20. No, the cost of something is a fixed amount, period. Sorry, but I wouldn't debate this with you if you were right.
By your definition, free has no meaning because its all relative. I'm sorry, but for me, free (as in beer) means zero cost, nada, zip, zilch.
Should your computer throw a divide by zero when the divisor is 0.00000001 because its "close enough" to zero. Absolutely not. Zero means zero and free means free.
But it's certainly not the case that free == totally cool and $.01 == totally uncool.
Did I say it was? No. What I said was:
free will always be cooler than not free
And I think anyone who's had to work for a living can agree to that.
you shouldn't spend money for something if you don't need to, but come on - this really is essentially free
Is it really? What about after the 2 year period and you cough up the $200. What then? You've got a license to a 2-year old product that's already obsolete, but of course MS will be happy to sell you a license for the new version for a small upgrade fee of a few more hundred dollars. And what choice do you have now? Since your product is already developed using MS tools, you are pretty well locked in, or face a major rewrite to port it to another tool chain.
Besides, if it's "essentially free", why don't they just go ahead and make it totally free? Is it really worth it to MS to lose potential developers over $100/yr per seat? Apparently MS thinks so and I say good!
I'm glad so many developers drink the MS kool-aid. I get all the.NET work I can handle, but I prefer the Java/C++ work because I prefer the languages as well as the toolsets to MS, and in most cases the pay is much better (see http://duartes.org/gustavo/blog/post/programming-language-jobs-and-trends).
MS got greedy and forgot the reason for their success was developers. They could have given away their developer tools all along.
No they couldn't; Borland would have started an anti-trust suit against them the moment they tried.
As it is, even today the Microsoft compilers are free (as part of the Windows SDK, formerly Platform SDK), but the IDE itself still isn't.
You're forgetting that MS was there first.
If MS would have given away their development tools, or at least priced them reasonably, they wouldn't have left the door open to a competitor such as Borland and certainly wouldn't have gotten their lunch eaten by them. I recall purchasing Turbo-Pascal in the mid 80s for $49, while Microsoft Pascal was $400. I begrudgingly had to purchase a copy of MS Fortran-80 to the tune of around $350 and later I had to shell out $800 for a copy of Cobol-80. Being a small-time freelance developer at the time, these expenditures really hurt. So when Borland began coming out with their compilers it the sub-$50 price range, naturally they were able to dominate the marketplace quickly (aside from the fact that their tools were vastly superior to their MS counterparts).
I'm not sure I follow you on this.
I use Visual Studio as well as several open-source tools on a daily basis. I don't find it any more time consuming to download and install the open-source tools than to do the same for MS products. In fact, I get to skip the step of figuring out which license I need to purchase and then making the purchase.
Of course, much of the decision as to which way to go depends on the requirements of the particular project, but it is a fallacy to make the general assumption that using an open-source product will consume more time than a proprietary product.
If you do not have $200 after two years your company have probably failed.
I think you've missed the point.
Let me explain.
It doesn't matter how much money I have after two years. The fact is, I'd have $200 more if I'd used open-source.
Not only that (and these are the main issues) assuming the app I wrote with it was successful and assuming I was going to continue to support it;
I'd have to dish out several hundred to several thousand dollars every couple of years to continue using it because, I've locked myself into a proprietary solution when, in most cases, I could have avoided this altogether by using an open-source tool.
I couldn't just keep using the old version that I got for $200 very long because MS has a way of incorporating planned obsolescence into their newer versions of their OS and middleware platforms. At best, your product will become "stale" and out-of-date looking and at worse, it will stop working at all.
But hey, don't let me sway you - your are free (pun intended) to choose your own tools. Just remember what happens when you dance with the the devil.
Really? So.NET assemblies don't run on Mono? That's news to me
As long as you stick to a subset of.NET 3.5 (no WPF, no WF and a bits of WCF), this is true, but MS is has already rolled out.NET 4.0 so you're always playing catch-up if you follow that strategy. Visual Studio 2010 will allow you to target a specific.NET framework, but true to MS strategy, the Express edition doesn't give you that option - you're forced to target 4.0.
I've not seen the same thing (and I watch job postings daily and have for years). I'm seeing less.Net jobs than I used to, while I'm seeing more jobs looking for a wide variety of open source skills. While most mention a desire for certain language skills (i.e. PHP, Java, Python, C/C++), they are more focused on skills in specific middleware products (i.e. DBMS, AppServer, etc), a large percentage of which are open source.
OK, Almost free. At the end of two years, you have to pay them $200.
Some people (especially startups with no money) would not consider $200 "almost free".
In fact, there's no such thing as almost free, it's like being pregnant. It either is or it isn't, and free will always be cooler than not free.
MS got greedy and forgot the reason for their success was developers. They could have given away their developer tools all along. They were making enough money on Windows & Office, but they weren't satisfied with that and kept reaming developers for their tools, which had to be upgraded every couple of years to the tune of a few hundred dollars. They could get away with this way back when before quality open-source was available, but no more. Open source development tools have arguably (and being/., an argument will likely follow) caught up to the quality and level of functionality of their tools, or at least close enough that the delta is not worth the price.
The fact of the matter is that JITs do not, in practice, make the JVM as fast as C/C++. The tests that have actually been performed show that it can reach that level in artificial microbenchmarks, but in real-world applications it rarely gets close, and it requires much more memory in the process.
Actually I agree with you to some degree here. In most benchmarks that I've seen, Java does, at best, approach C++ but rarely surpasses it. But benchmarks are not real-world examples. In the real world developers are rarely given the opportunity to spend much time refining and optimizing their code (be it C++ or Java) and so once most programs are written and successfully pass unit/integration testing, they are thrown into production and not touched again except when additional functionality is desired (the "if it ain't broke don't fix it" mentality). This leads to a codebase that is naturally suboptimal.
With C++, the native executable code is fixed and will continue to execute exactly the same instructions indefinitely until the code is recompiled.
The same is not true of Java bytecode. With each interation of improvements in the JVM (especially the improvements in JIT in the last couple of years), the same bytecode will continue to improve in performance without the developers even having to touch it. With continued advances in garbage collection and JIT optimization, one can expect at some point, the bytecode (with the JIT's ability to optimize at runtime and make adjustments based on current conditions) that JVMs will surpass C++ performance for most real world examples. I know from my own anecdotal experience, whenever I've migrated a C++ application to Java, the results have been an order of magnitude higher performing and far more stable. Granted, many times this is due to my taking advantage of the built-in APIs in Java (such as collections), whereas the old C++ code might use simple sequential searches through arrays. But I guess that's my point. In general, expertly written C++ code will probably outperform Java for some time to come, but from my experience, a lot of C++ code is written by "less than expert" C++ programmers who do not write optimal code and no matter how good the C++ compiler's optimization capability is, it doesn't have the ability to rewrite a poorly conceived algorithm. While the same could be said for Java, the comprehensive APIs available are a lot more "in your face" when learning Java so they tend to be used more (at least that's been my experience, YMMV).
First, J2ME isn't open-source (or at least it wasn't at the time Android was initially developed - it may be now) so Google would have had to license it.
Second, while the Delvik JVM will run java bytecode that has been (automatically) converted to.dex file format, it is very different from a standard JVM implementation and specifically designed to run on devices with very little memory (and no page file) and slow (relatively) CPU, with battery conservation another major constraint. The Delvik JVM is register based rather than stack based and pays much more attention to memory usage than is required in a desktop/server JVM. Its designed to run in as little as 64M Ram with a CPU as slow 500Mhz. Of course, the internals of the Delvik JVM are largely transparent to the Java developer but it helps to understand, as a developer, that the devices the software will run on are equivalent to a desktop computer of about 7 years ago.
Yeah, yeah. I know. And I'm absolutely not interested. The world of enterprise is a world of stale old tenchnologies, it's a world of hopeless legacy. Java gave it a brief time of excitement, but now it'll fall back on being soul-crushing boredom. Only now with Java instead of COBOL.
Wow, now you've really exposed your naivety and cluelessness. The world of enterprise is what drives all the significant developments. Small, nimble companies that are successful are inevitability consumed by "enterprisey" companies the moment they show potential for profit. Most are started with the dream of being successful enough to be bought out by a larger company. The technologies they possess are added to the portfolio of the consuming company so your argument doesn't hold water. You seem to want to trash enterprise class companies, while you shill for one of the biggest - MS. Have you ever worked in enterprise development? I don't find things like Advanced Metering Infrastructure (a project I'm currently working on) soul-crushing at all. It's quite cutting edge working with the latest in cell-phone technologies and energy delivery, monitoring and load management. Not to mention that the enterprise world has allowed me to put three kids through college and kept me employed when the small and nimble companies have been popping up and dying at incredible rates, taking with them the souls of the developers who really put their hearts and dreams on the line. No thanks. Been there, done that. To survive long term in software development one must stay current and be willing to change to what is in demand and the higher paying jobs are not C# nor java (nor python or anything else you might find on a freelance site). The higher paying jobs are the ones looking for broader skills in enterprise, web or mobile technologies - whether you know C# or Java or whatever is secondary and to really succeed, you need to know them all.
You're splitting hairs now. This is equivalent to saying Mono is not.Net, but in reality, they are slight variations of the same theme. True, the Delvik JVM is not officially the Java JVM, but it runs equivalent bytecode that has been directly translated to the dex format. The libraries are not the same as the Sun/Oracle reference libraries, but it is based on the Apache Harmony project which was an open source implementation of the Java libraries.
Where? Java is pretty stable only in enterprise because of large volume of legacy code. All other usage areas are disappearing.
Where? Everywhere. I don't know what enterprises you work in, but I've been in enterprise development for 35 years and I've never seen such a sea change in such a short time toward any particular platform. Java is in nearly every major enterprise application available on the market nowadays - EAI, ETL, CIS, HRM, ERM - you name it - the big vendors are either switching to or already using Java. Outside the enteprise, there's a burgeoning new development ecosystem building steam around Android - of which the development environment is core java with a customized (Delvek) JVM.
langpop is rubbish. If you want to get real picture - try searching Monster.com or freelance sites. C# now dominates Java in nearly everything.
Right. We should rely on your word rather than actual statistics.
5-7 years without any updates
What? Java 1.6.0 was released in 2006. We're now up to release 20. By my count that's better than one major release per quarter.
LINQ is open
On this point I stand corrected. You're correct that LINQ is now an open standard. Kudos to MS for getting this one right.
Right now it has about as much of pre-existing software as Java.
Sorry, not even close and most of what is available is closed source. Having to convince management to pony up money for third party.Net libraries all the time is tiring, which is why, if given the choice, I develop in java where I can get better quality and better tested libraries for no charge.
Scala is overcomplicated
Guess it depends on your cerebral capacity. BTW, you might be interested to know that apparently Scala 2.8 will support LINQ.
"Read it. Other than the solid date he predicts, it's pretty plausable."
No it's not. If it was possible to do in a million lines of code, it would have been done by now. Windows XP had something like 40 million lines of code. While we can agree it was probably coded relatively inefficiently, there is no way that any OS even comes close to the complexity of the brain.
While I think Kurzweil is definitely reaching here, this is a ridiculous comparison to say the least. What does the number of lines of code have to do with anything? The brain does not have to route millions of bits around it's circuits, draw graphics at 60 FPS and read and write data from and out of external circuits and do all this (seemingly) concurrently. Whether efficiently coded or not, it's tasked to do something completely different than the brain.
Having said that, there is no reason to think that it would take anywhere near that many lines of code to implement a cortical algorithm. Granted, it will most likely require high speed or highly parallel hardware with massively associative memory capabilities, but the algorithm itself may turn out to be fairly concise. Just as E=mc2 goes a long way toward describing the fundamentals of the physical universe, it may turn out that the secret to creating a sentient machine is a matter of hitting upon the correct algorithm. There is a fair amount of research that indicates that while different regions of the neocortex vary somewhat in their neuronal architecture, the neocortex is largely homogeneous and may very well operate based on a single cortical algorithm. The amazing plasticity of the brain (the ability of, say, the visual cortext to be taken over and utilized for auditory processing in blind subjects) provides strong evidence that the overarching principles of operation in the human brain may not be incomprehensible after all. While the brain may seem extremely complex due to the billions of neurons and quadrillions of connections, it may actually be no more "complex" than a desktop computer with it's millions of specialized circuitry and timing dependencies.
Yes, you read that right. MSNBC just compared computer chip fabrication to pot cultivation."
Pot cultivation is far more technologically advanced, not to mention the fact that burning pot smells much better than a frying CPU.
Hmmm, let me see.
Higher prices at the gas pump, or risk a possible extinction event...decisions, decisions.
Wow. Humans like to boast about their dominion and intellectual superiority over other creatures in world, while even dogs know better than to shit where they eat.
lol... you're right.
I guess the oil fumes are getting to me!
Except that the disbursants being pumped into the water cause the oil to break up into tiny particles and sink to the bottom.
That's right. BP spent $0.00 on R&D for containment and cleanup contingencies prior to the disaster. In any other business, having no DR plan would get a CEO fired.
I got the distinct impression that Ol' Tony didn't give a damn about us "little people" and his biggest issue with the oil spill was that it was keeping him from "getting his life back".
what did this guy do or fail to do?
How about spending a tiny bit of the $5.5B in profits each quarter on R&D for oil spill containment and cleanup? I guess that would have been too much to ask.
Spokesman for BP assures everyone that the fact that the fish has three heads, 5 legs and squirts a strangely mutagenic substance at it's prey has nothing to do with the oil or the disbursants being injected into the water near the site.
but their response to the spill has been about as good as anyone could have done.
My apologies if you or someone you care about works for BP, but Bull-f*ckin-Sh:t! (excuse my tone, but I'm just a little teed off about it!). You (and Joe Barton) can kiss my oil-splotched arse. I now have to live with that crap washing up on my property and watch as what used to be vibrant with life become a cesspool.
Here we are, 80 days out from the disaster and things are worse than ever.
You're right of course, this should have never happened. BP should have never drilled, and never been ALLOWED to drill that deep without an absolutely foolproof plan to stop the leak if it occurred, AND a plan to quickly clean up any oil that might have leaked, no matter how much. How about a plan for when the BOP failed? It's not like they are 100% foolproof - studies have shown that they fail about 40% of the time! (http://money.cnn.com/2010/06/30/news/companies/blowout_preventer_bop/index.htm)
It's pretty obvious these plans did not exist (no, the cut-and-pasted Alaska plan doesn't count).
You mean to tell me that BP, with it's $5.5B per quarter profits, couldn't spend a dime on research for containment and cleanup? That's right, they didn't spend a dime on it - zero, zilch, nada. Their budget for this type of research was $0!
Ok, so we know BP wasn't prepared to deal with this. That's history now, so let's focus on what happened after the disaster.
The oil spill was 50 miles out into the Gulf. It took nearly a month for the oil to reach the shores of Louisiana.
What did BP do during that period of time to try and keep the oil from approaching the shore? Lay out booms along the shoreline? Is that the best they could come up with? Why did they make no effort to contain it around the site of the disaster? Couldn't they afford to spend a small percentage of their $22B a year profits on rounding up all the skimmer vessels they could and keep the damage to a minimum? Did they have to pump millions of gallons of extremely toxic disbursants into the Gulf to try and distribute the oil into the water as tiny particles, when all that did was give the illusion (i.e. PR move) that it wasn't as bad as it was? All that did was make cleanup more difficult, distribute the oil throughout the water column, and ensure that not only the surface water would be affected, but everything from the seafloor to the surface is rendered lifeless.
I'm sorry for the long rant (actually, no, I'm not), but I don't think you know a damn thing about what has happened to my home (or maybe you do, but your loyalties lie with BP rather than what used to be one of the most beautiful places on earth - IMHO).
Bush is much better suited to deal with oil problems than national security. (he owns multiple oil companies)
Right. Oil companies are great at dealing with spills aren't they? I think Moe, Curly and Shemp could've done better than BP has.
Yes, I've been using VS2010 since April. I played around with the beta for a while before that. I've also got VS2008, VS2003 and VS 6.0 installed. I still have the CDs for nearly all releases going back to the first Visual C++ 1.0. In fact I still have the diskettes for Microsoft Quick-C around here somewhere. I still use MS tools and have, continuously, since the late '70s (TRS-80 Level II Basic)
Don't start rewriting reality and claiming they're even close in terms of quality.
MS vs Apple vs Open source is a fools debate that boils down to personal preference, but you are certainly one of the first I've heard to tout "quality" as one of Microsoft software's virtues. .NET 4.0, improved support for LINQ, WPF, WF and WCF), I'm taking a "wait and see" approach since these are proprietary technologies (yes, I'm aware of Mono). These may or may not catch on in the industry. If they do, I'll learn them, if not I don't have the time to waste.
I find the open source gcc tool set quite reliable and of very high quality. The MSVC++ compiler produces high quality code as well.
As for all the new bells and whistles in VS2010 (F#,
The cost of something, however, is not binary - it's a continuous variable.
Um, not the last time I bought something. When I went to McDonalds today and got a quarter-pounder meal (large) it was $6.19 - exactly - no sliding scale, no continuous variable. I didn't see the price flickering between $6.18 and $6.20. No, the cost of something is a fixed amount, period.
Sorry, but I wouldn't debate this with you if you were right.
By your definition, free has no meaning because its all relative. I'm sorry, but for me, free (as in beer) means zero cost, nada, zip, zilch.
Should your computer throw a divide by zero when the divisor is 0.00000001 because its "close enough" to zero. Absolutely not. Zero means zero and free means free.
But it's certainly not the case that free == totally cool and $.01 == totally uncool.
Did I say it was? No. What I said was:
free will always be cooler than not free
And I think anyone who's had to work for a living can agree to that.
you shouldn't spend money for something if you don't need to, but come on - this really is essentially free
Is it really? What about after the 2 year period and you cough up the $200. What then? You've got a license to a 2-year old product that's already obsolete, but of course MS will be happy to sell you a license for the new version for a small upgrade fee of a few more hundred dollars. And what choice do you have now? Since your product is already developed using MS tools, you are pretty well locked in, or face a major rewrite to port it to another tool chain.
.NET work I can handle, but I prefer the Java/C++ work because I prefer the languages as well as the toolsets to MS, and in most cases the pay is much better (see http://duartes.org/gustavo/blog/post/programming-language-jobs-and-trends).
Besides, if it's "essentially free", why don't they just go ahead and make it totally free? Is it really worth it to MS to lose potential developers over $100/yr per seat? Apparently MS thinks so and I say good!
I'm glad so many developers drink the MS kool-aid. I get all the
No they couldn't; Borland would have started an anti-trust suit against them the moment they tried.
As it is, even today the Microsoft compilers are free (as part of the Windows SDK, formerly Platform SDK), but the IDE itself still isn't.
You're forgetting that MS was there first.
If MS would have given away their development tools, or at least priced them reasonably, they wouldn't have left the door open to a competitor such as Borland and certainly wouldn't have gotten their lunch eaten by them.
I recall purchasing Turbo-Pascal in the mid 80s for $49, while Microsoft Pascal was $400.
I begrudgingly had to purchase a copy of MS Fortran-80 to the tune of around $350 and later I had to shell out $800 for a copy of Cobol-80.
Being a small-time freelance developer at the time, these expenditures really hurt. So when Borland began coming out with their compilers it the sub-$50 price range, naturally they were able to dominate the marketplace quickly (aside from the fact that their tools were vastly superior to their MS counterparts).
This article assumes of course, that one does not become subject to a bear attack.
I'm not sure I follow you on this.
I use Visual Studio as well as several open-source tools on a daily basis. I don't find it any more time consuming to download and install the open-source tools than to do the same for MS products. In fact, I get to skip the step of figuring out which license I need to purchase and then making the purchase.
Of course, much of the decision as to which way to go depends on the requirements of the particular project, but it is a fallacy to make the general assumption that using an open-source product will consume more time than a proprietary product.
If you do not have $200 after two years your company have probably failed.
I think you've missed the point.
Let me explain.
It doesn't matter how much money I have after two years. The fact is, I'd have $200 more if I'd used open-source.
Not only that (and these are the main issues) assuming the app I wrote with it was successful and assuming I was going to continue to support it;
I'd have to dish out several hundred to several thousand dollars every couple of years to continue using it because, I've locked myself into a proprietary solution when, in most cases, I could have avoided this altogether by using an open-source tool.
I couldn't just keep using the old version that I got for $200 very long because MS has a way of incorporating planned obsolescence into their newer versions of their OS and middleware platforms. At best, your product will become "stale" and out-of-date looking and at worse, it will stop working at all.
But hey, don't let me sway you - your are free (pun intended) to choose your own tools. Just remember what happens when you dance with the the devil.
Really? So .NET assemblies don't run on Mono? That's news to me
As long as you stick to a subset of .NET 3.5 (no WPF, no WF and a bits of WCF), this is true, but MS is has already rolled out .NET 4.0 so you're always playing catch-up if you follow that strategy. Visual Studio 2010 will allow you to target a specific .NET framework, but true to MS strategy, the Express edition doesn't give you that option - you're forced to target 4.0.
Almost EVERYTHING is now .net
I've not seen the same thing (and I watch job postings daily and have for years). I'm seeing less .Net jobs than I used to, while I'm seeing more jobs looking for a wide variety of open source skills. While most mention a desire for certain language skills (i.e. PHP, Java, Python, C/C++), they are more focused on skills in specific middleware products (i.e. DBMS, AppServer, etc), a large percentage of which are open source.
OK, Almost free. At the end of two years, you have to pay them $200.
Some people (especially startups with no money) would not consider $200 "almost free". In fact, there's no such thing as almost free, it's like being pregnant. It either is or it isn't, and free will always be cooler than not free.
/., an argument will likely follow) caught up to the quality and level of functionality of their tools, or at least close enough that the delta is not worth the price.
MS got greedy and forgot the reason for their success was developers. They could have given away their developer tools all along. They were making enough money on Windows & Office, but they weren't satisfied with that and kept reaming developers for their tools, which had to be upgraded every couple of years to the tune of a few hundred dollars. They could get away with this way back when before quality open-source was available, but no more. Open source development tools have arguably (and being
The fact of the matter is that JITs do not, in practice, make the JVM as fast as C/C++. The tests that have actually been performed show that it can reach that level in artificial microbenchmarks, but in real-world applications it rarely gets close, and it requires much more memory in the process.
Actually I agree with you to some degree here. In most benchmarks that I've seen, Java does, at best, approach C++ but rarely surpasses it. But benchmarks are not real-world examples. In the real world developers are rarely given the opportunity to spend much time refining and optimizing their code (be it C++ or Java) and so once most programs are written and successfully pass unit/integration testing, they are thrown into production and not touched again except when additional functionality is desired (the "if it ain't broke don't fix it" mentality). This leads to a codebase that is naturally suboptimal.
With C++, the native executable code is fixed and will continue to execute exactly the same instructions indefinitely until the code is recompiled.
The same is not true of Java bytecode. With each interation of improvements in the JVM (especially the improvements in JIT in the last couple of years), the same bytecode will continue to improve in performance without the developers even having to touch it. With continued advances in garbage collection and JIT optimization, one can expect at some point, the bytecode (with the JIT's ability to optimize at runtime and make adjustments based on current conditions) that JVMs will surpass C++ performance for most real world examples.
I know from my own anecdotal experience, whenever I've migrated a C++ application to Java, the results have been an order of magnitude higher performing and far more stable. Granted, many times this is due to my taking advantage of the built-in APIs in Java (such as collections), whereas the old C++ code might use simple sequential searches through arrays. But I guess that's my point. In general, expertly written C++ code will probably outperform Java for some time to come, but from my experience, a lot of C++ code is written by "less than expert" C++ programmers who do not write optimal code and no matter how good the C++ compiler's optimization capability is, it doesn't have the ability to rewrite a poorly conceived algorithm. While the same could be said for Java, the comprehensive APIs available are a lot more "in your face" when learning Java so they tend to be used more (at least that's been my experience, YMMV).
First, J2ME isn't open-source (or at least it wasn't at the time Android was initially developed - it may be now) so Google would have had to license it. Second, while the Delvik JVM will run java bytecode that has been (automatically) converted to .dex file format, it is very different from a standard JVM implementation and specifically designed to run on devices with very little memory (and no page file) and slow (relatively) CPU, with battery conservation another major constraint. The Delvik JVM is register based rather than stack based and pays much more attention to memory usage than is required in a desktop/server JVM. Its designed to run in as little as 64M Ram with a CPU as slow 500Mhz.
Of course, the internals of the Delvik JVM are largely transparent to the Java developer but it helps to understand, as a developer, that the devices the software will run on are equivalent to a desktop computer of about 7 years ago.
However, Java was chosen there not because it's good, but because it's the only choice for real cross-platform development of reasonably fast code.
And because of the availability of thousands of skill Java developers.
Yeah, yeah. I know. And I'm absolutely not interested. The world of enterprise is a world of stale old tenchnologies, it's a world of hopeless legacy. Java gave it a brief time of excitement, but now it'll fall back on being soul-crushing boredom. Only now with Java instead of COBOL.
Wow, now you've really exposed your naivety and cluelessness. The world of enterprise is what drives all the significant developments. Small, nimble companies that are successful are inevitability consumed by "enterprisey" companies the moment they show potential for profit. Most are started with the dream of being successful enough to be bought out by a larger company. The technologies they possess are added to the portfolio of the consuming company so your argument doesn't hold water.
You seem to want to trash enterprise class companies, while you shill for one of the biggest - MS.
Have you ever worked in enterprise development? I don't find things like Advanced Metering Infrastructure (a project I'm currently working on) soul-crushing at all. It's quite cutting edge working with the latest in cell-phone technologies and energy delivery, monitoring and load management. Not to mention that the enterprise world has allowed me to put three kids through college and kept me employed when the small and nimble companies have been popping up and dying at incredible rates, taking with them the souls of the developers who really put their hearts and dreams on the line. No thanks. Been there, done that. To survive long term in software development one must stay current and be willing to change to what is in demand and the higher paying jobs are not C# nor java (nor python or anything else you might find on a freelance site). The higher paying jobs are the ones looking for broader skills in enterprise, web or mobile technologies - whether you know C# or Java or whatever is secondary and to really succeed, you need to know them all.
Which is not Java(tm)
You're splitting hairs now. This is equivalent to saying Mono is not .Net, but in reality, they are slight variations of the same theme. True, the Delvik JVM is not officially the Java JVM, but it runs equivalent bytecode that has been directly translated to the dex format. The libraries are not the same as the Sun/Oracle reference libraries, but it is based on the Apache Harmony project which was an open source implementation of the Java libraries.
Where? Java is pretty stable only in enterprise because of large volume of legacy code. All other usage areas are disappearing.
Where? Everywhere. I don't know what enterprises you work in, but I've been in enterprise development for 35 years and I've never seen such a sea change in such a short time toward any particular platform. Java is in nearly every major enterprise application available on the market nowadays - EAI, ETL, CIS, HRM, ERM - you name it - the big vendors are either switching to or already using Java. Outside the enteprise, there's a burgeoning new development ecosystem building steam around Android - of which the development environment is core java with a customized (Delvek) JVM.
langpop is rubbish. If you want to get real picture - try searching Monster.com or freelance sites. C# now dominates Java in nearly everything.
Right. We should rely on your word rather than actual statistics.
5-7 years without any updates
What? Java 1.6.0 was released in 2006. We're now up to release 20. By my count that's better than one major release per quarter.
LINQ is open
On this point I stand corrected. You're correct that LINQ is now an open standard. Kudos to MS for getting this one right.
Right now it has about as much of pre-existing software as Java.
Sorry, not even close and most of what is available is closed source. Having to convince management to pony up money for third party .Net libraries all the time is tiring, which is why, if given the choice, I develop in java where I can get better quality and better tested libraries for no charge.
Scala is overcomplicated
Guess it depends on your cerebral capacity. BTW, you might be interested to know that apparently Scala 2.8 will support LINQ.