What is this mythic API that works everwhere, including XBox, Windows Phone 7 etc, and how much is it per-seat?
> That's still a large potential source of revenue you're cutting out purely for the sake of immature partisan fanboyism.
Personally I don't care what is used so long as it is portable, so I actually agree with your argument. OpenGL is just further along the portability scale than DirectX without costing anything while still working with as many programming languages as possible and it is easier to suggest that DirectX-ers should try OpenGL than to suggest they try some unnamed niche library.
> The point is why limit yourself to just OpenGL or just DirectX in the first place when you can, for a trivial amount of extra work, write code that is vastly more future proof in that you could trivially implement support for some as yet unimagined API even, and enjoy the best of all worlds?
You can add arbitrary layers of abstraction. Sometimes you can't afford the luxury of extra layers. Hell, I am just finishing a project where the internal synchronization within the Java Date class to get a TimeZone is too expensive for an Internet-scale application. In such case small changes in performance mean big dollars when scaled up. Graphics apps are similar. You want some abstraction but not too much.
ps. Who is worrying about targeting Windows Phone 7? Don't put your life savings on that horse.
Am relaxed cheers, just trying to avoid confusion with clarification in case some of the readers are less well informed than yourself. Thanks for your posts.
There is nothing wrong with DirectX and it's perfectly fine - just that some folks (not necessarily yourself) don't always know some of the advantages of OpenGL (although it is true it has some disadvantages, as I mentioned with input and sound support etc).
There are *lots* of OpenGL debuggers too, both commercial and free (eg. Bugle, glDevil, gDEBugger, GLIntercept etc). Plus, the GLSL shading language does late compilation from source scripts. These are usually more readible than the equivalent DirectX shader statements (at least, when I have read both).
> 4) DirectX's new features are driven by a small focused team who ensure that mainstream video cards fully support the features in a reasonable timeframe. OpenGL's new features are the results of a committee that's consistently 3-5 years behind the state-of-the-art, and implemented by OS and video card driver programmers who (and let's be frank) don't do a very good job.
That used to be the case. It is not so anymore with the change to the Khronos group in control. I'm afraid much of your reply uses out of date information.
> 5) Your point falls a little flat, since it's really not very difficult to port a game from DirectX to OpenGL if needed. Again, it's been done dozens of times before, and it only (at most) a few months worth of work. You bring this up yourself in your last sentence, which I didn't quote.
Again, extra cost == fail. If OpenGL didn't work well on Windows then there would be no competition. The truth is that OpenGL works on Windows *as well as* all the up-and-coming platforms. Where DirectX used to have significant advantages was the non-3D parts of an application: DirectInput, DirectSound etc. These are starting to be deprecated in favour of OpenAL etc. so those advantages are disappearing.
I can only lead a horse to water. You can resist the future which is more heterogenous in hardware. However, if you choose your development tools carefully you can be well insulated from this - and save on development costs in the process.
I'm just fed arguing with the "3D means DirectX games on Windows only" crowd. with Apple's ascent it is time for them to eat crow since their point-of-view was as sensible as the web-development "target IE6 only and forget about W3C compat" crowd (which was a battle we had to fight in the enterprise space as many "ohh, shiny" operations people have short-term horizons). This snideness is vindication and not intended to insult the sensitive, so please don't take it personally.
> 2) It's really not that hard to port a DirectX game to PS3 (I won't say OpenGL, since most PS3 games don't use OpenGL.) Dozens of games have already done that, including DirectX-supporting companies like Valve.
Huh? The official graphics API for the PS3 at the lowest level is OpenGL. Of course ports can be done. It simply takes more time (eg. money) if you start with DirectX instead of OpenGL... and you should be thinking about the long-term *money* if you are a half-decent architect.
> 3) In the gaming world, you only care about the game working for its sale period, which is maybe two years at best. Trying to sell game developers on long-term technology are a waste of time.
Nope, you need to look at the whole equation. The tools and experience of the developers really counts. A single game sales might be two years tops but the tech a studio chooses (investing time and developer experience in) has to last a lot longer than that somce they don't like to change their technology often. Changing tech costs significant money and time. This is why the DirectX-only shops will have a period of inefficiency while they retooling for iPad etc). Fortunately many shops use professional frameworks which hide most of the underlying DirectX-ness or OpenGL-ness from the developer, which allows them to target multiple platforms.
All I'm saying is OpenGL is a good tech to investigate that has *lots* of strategic benefits compared to its closest competitor (for those still mezmerized by the now-waning DirectX hype).
The last OpenGL SuperBible touched on OpenGL ES (the stuff Android phones, iPod/iPad/iPhone etc). OpenGL ES is a subset of the full OpenGL functionality so this book is a good start to both. You can also get an Addison-Wesley book on OpenGL ES as well but the SuperBible is still worth it for the techniques it teaches (how to best use the API and but stuff together for various effects).
I hope all you DirectX programmers take note. Those who wrote for DirectX might have been able to make money on the PC+XBox but the software doesn't move to the PS3, iPhone/iPad, Android, Linux (while still running on Windows too) like OpenGL does. You all fell for Microsoft's deliberate plan to keep you on that platform (where is the Slashdot "it's a trap" tag when you need it, lol). You never know exactly what the future will bring but you do know that devices and operating systems will change. This makes OpenGL the best strategic (long-term) choice for 3D development and the OpenGL SuperBible is a great book to get you there (along with the other OpenGL classics: the 'Red Book', 'Blue Book' and 'Orange Book' - google for these or go to the OpenGL site: http://www.opengl.org./
Case studies:
The author of X-Plane talks about OpenGL made him $3.5 million in a month since he could port his product to iPhone very easily. He'll make even more money from iPad sales too (my nephew just bought X-Plane for the iPad): http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
Il-2 Sturmovik had both a DirectX and (faster) OpenGL implementation. Coupled with the fact that it is largely written in Java and it was able to be ported to the PS3 as the product Wings-of-Prey greatly increasing sales.
If you must learn a 3D library, then learn OpenGL.It has the features of DirectX 11 (geometry shaders etc) but will run on Windows XP.
128-bit addressing is ridiculous and completely unnecessary. There aren't even 2^128 atoms in the universe. 64-bit is more than enough, especially considering the highest consumer motherboards only have 48 address lines anyway. So we have a way to go before we run out of memory even on 64-bit.
The Germans have a government that works for the people and a social policy program that is not constantly subverted by special interests (eg. corporations). How likely is it that each US State would relinquish power (put down those automatic weapons citizens!) to bring such a thing to fruition? zero? I'm not sure the US psyche would accept the solutions that work for the Germans/Europeans.
I agree with your economic sentiments - the service industries are an adjunct to manufacturing, not a replacement. Some degree of protectionism is required, just as some degree of market regulation makes sense (otherwise Goliath always wins and gets bigger, which has suited the US in the past but not anymore).
It seems to me you are implying Java is bad though. Certainly heavyweight Java is crap. No doubt about it. It is possible to do good Java designs in a way that is strategically safe (copes well with a changing environment and preserves your investment). Few technologies can do this. So I see Java as a good technology often misused, and without that many alternatives that can go from embedded system to massive heterogenous clusters of SAO systems.
Off-topic: I like your xmlsucks site. XML definitely has its uses, but it is a good technology that is *very often* applied inappropriately, and with heavyweight approaches (no human should be editing schema by hand IMHO, just as you shouldn't do assembler anymore except in specialized cases, they should be generated). Sometimes though XML is a good way to represent some stuff - provided it is the *simplest* solution. Good design chooses both simplicity and clarity.
> that's just one kind of enterprise architecture, truthfully as of late JEE server (and jobs dealing with it) is in decline as lighter weight simpler solutions are being adopted. I and my friends used to make good money as J2EE based solution developer but that petered out five years ago.
I was talking about the enterprise desktop actually (please re-read my post). Where I am there is a ton of Java work and it is getting better, sorry to hear your own neck of the woods isn't doing so well.
Java is the only thing that can scale to mammoth development projects on heterogenous hardware (I'm currently on such a project) - but I was actually talking about Java applications for the enterprise desktop (bespoke stuff that most people are unaware of since they can't download it from SourceForge or buy it at a store, but it is actually everywhere).
> And the really big-ass enterprise architectures don't have java on the back end, even though that option can be had for IBM-like, HP nonstop, and Unisys mainframes it's not the norm.
I all BS on this. Governments, Big Banks, etc have heterogenous hardware with all sorts of Operating Systems and take decades to built their infrastructure. Quite often Java is run here - at least in my experience.
The 'lightweight' stuff usually is a different architecture for Java (eg. the Spring Framework), not the awful Enterprise Beans stuff. It is still Java though. More lightweight stuff than Java is only used for small things and.NET is simply not a contender in the large heterogenous space.
Whoa, there partner! Wipe the froth from your mouth, please.
Java is not responsible for the financial meltdown, it is simply a good platform for developing high-performance stuff on a wide range of hardware (eg. like brokerages). Greed (from corporates and ordinary investors alike) and a corrupt political institutions (lobbying is institutionalized corruption, which prevents proper regulatory action) are the cause of the US/global financial woes.
Oracle is suing Google for the sake of ensuring compatibility of the Java platform (and I as a Java developer *do not* want fragmentation). This is the same reason Microsoft tried to fragment Java with their non-portable libraries and were sued and rightly lost (it is in the license terms for the licensed use of the trademark "Java"). Now Oracle may well be evil, but in the case of Java it is important to protect it and prevent incompatible implementations to prevent balkanization, so I have no problem with them attempting to enforce that. It makes a bit difference to me as a Java developer.
Apple *insisted* on making their own JVM. This was bought on to them by themselves.
However, the *effort* to build the JVM is a smokescreen from Jobs. He thinks Apple has enough momentum he can force developers to develop exclusively for Apple products and is making developers choose. Unfortunately, I think he has made a mistake. I'm a Java developer on a lovely 17" MacBook Pro (switched from Ubuntu) but won't buy another Mac (except maybe to put on Ubuntu - which I actually prefer to OS X) and won't develop for Apple since I can't use Java to do it. I'll continue to target all the other platforms (Windows, Linux, Android!!!!). Bad move by Steve IMHO.
Sun was playing nicely. The terms of creating a JVM that uses the trademark "Java" is that the code had to be able to run on all platforms. Microsoft tried to embrace, extend, extinguish on Java and Sun took them to court. Microsoft lost because they violated the license terms. This was not Sun trying to shaft Microsoft for the sake of it (although no doubt they got a great deal of pleasure by it) but actually Sun were protecting their customers (who had been promised "run anywhere") and the Java brand. It was a necessary evil by Sun.
Shame you young folk never get told the truth of the matter (you are now!) and that the facts are getting obscured over time.
Huh? "Software developers" aren't important as a market to sell to, yes. Software developers are completely critical when it comes to making applications for your platform. Microsoft knows this and that's why their "developers! developers! developers!" mantra has got them so far (as dorky as it might be).
I'm mostly doing Java development these days. I have a MacBook Pro that I use when consulting. While the Java situation on Mac is currently ok (recent JDKs being released) Steve Jobs is forcing me to choose between Objective-C (pretty backward compared to Java for stuff like concurrency etc) for their niche or use Java (works everywhere except the XBox and iPhone/iPad/ and soon Mac OS X). So, I'll continue to work with Java since that makes strategic sense to me and will target Linux, Windows, Android, and embedded and not worry about making my programs work with the Mac. Who do you think will be the long-term loser of this? Steve Jobs is a bonehead with this move.
A lot of Mac apps I've bought are also written in Java (since they also need to be sold for Windows). This news is gonna piss off a lot of the third-party developers that work on Macs. They might port their app to an IDevice but pretty much they'll keep the Java version since they can sell to the vast Windows market (not many UML diagramming tools will get sold to the iPad I expect). Way to go to push yourself back into your little desktop niche Apple!
Yes, I know that thanks. If you re-read the parent post (grandparent of yours) you'll see that it states:
> Does pure Java provide a usable interface to every peripheral connected to a computer? For example, does pure Java allow an application to read a human interface device that is not a keyboard or a mouse? I spent some time with Google, and the answer is apparently no: a native driver [hardcode.de] has to be installed.
My response was that these devices can be controlled using Java and in the case of JNA you write only Java code. I didn't mention "Pure Java". Hope that clears things up for you.
No, Objective C's weakness in multithreading (which really requires garbage collection otherwise the very large and complex programs I work on are impossible to avoid leaks in) means I've only evaluated it long enough to dismiss it as similar to old technologies I used to use.
Objective-C is a barrier to more stuff being written on iDevices. Apple thinks it helps the. It does not. That is one of the reasons why Android will likely overtake Apple (and one reason Apple is dropping Java in an attempt to stop this). Apple is trying to replay 1990 exclusion tactics but the veterans of the IT world has learnt since then (it's still the first time around for n00bish folk, so they can't see the parallels).
The Millions of Java developers (see tiobe.com for programming lanuage popularity) are almost immediately productive on Android but require and Apple, sign-up to Developer Connection, XCode, and Objective-C to write for the iDevices. All these barrier result in a giant "meh" when they can tap the growing Android market with far less hassle. I know which horse makes more sense to back in the long term - therefore I only occaisonally dabble with Objective-C, since I can do more with Java and the only devices I can't deploy my programs to are the XBoxes and iPhones. I've put my Java programs on other embedded devices and operating systems (all sorts of Windows, IRIX, Solaris, Linux and embedded Linux) so Objective-C is a poor strategic investment for me (and for many others) despite its small tactical advantage of targeting the iDevices while they still have majority market share (which is guaranteed to change over time).
Macs are good for general development (I'm writing this on a 17" MacBook Pro and she's a beaut) but Objective-C is antiquated. I'd much rather target Java, so hence I write for Android.
Java is not used much by consumers. Java is used hugely in the enterprise space on the desktop and in the server-room. Unfortunately this is not visible to many people because:
a) their computing horizon is so short it means being able to run Twitter or Grand Theft Auto, or
b) companies don't talk about their competitive advantages (and the PR folks certainly don't understand the tech anyways).
You can use the JNI interface or even better, use JNA. You then introduce platform-specific stuff into you application - but you can isolate that easily in the same way you isolate your database calls with DAOs etc.
So yes, you can call any operating system API using only Java code and the JNA library (I've done it). Sorry to hear that the uber-smart Googlers didn't know about this library, you would have thought they would have googled for it after all:)
If you are in New Zealand I suggest checking out a Google license (Fronde is the local agent I think). It would seem they're quite a bit cheaper than the MS offerings and new features come out quite frequently.
Disclaimer: I'm a contractor who's passed through Fronde recently (not an employee), and have my ear to the ground and just wanted to share that you might be able to get a better deal with Google than Office365 in NZ (real disclaimer: personally I prefer OpenOffice and Ubuntu, but I realise not everyone wants this).
What is this mythic API that works everwhere, including XBox, Windows Phone 7 etc, and how much is it per-seat?
> That's still a large potential source of revenue you're cutting out purely for the sake of immature partisan fanboyism.
Personally I don't care what is used so long as it is portable, so I actually agree with your argument. OpenGL is just further along the portability scale than DirectX without costing anything while still working with as many programming languages as possible and it is easier to suggest that DirectX-ers should try OpenGL than to suggest they try some unnamed niche library.
> The point is why limit yourself to just OpenGL or just DirectX in the first place when you can, for a trivial amount of extra work, write code that is vastly more future proof in that you could trivially implement support for some as yet unimagined API even, and enjoy the best of all worlds?
You can add arbitrary layers of abstraction. Sometimes you can't afford the luxury of extra layers. Hell, I am just finishing a project where the internal synchronization within the Java Date class to get a TimeZone is too expensive for an Internet-scale application. In such case small changes in performance mean big dollars when scaled up. Graphics apps are similar. You want some abstraction but not too much.
ps. Who is worrying about targeting Windows Phone 7? Don't put your life savings on that horse.
Am relaxed cheers, just trying to avoid confusion with clarification in case some of the readers are less well informed than yourself. Thanks for your posts.
There is nothing wrong with DirectX and it's perfectly fine - just that some folks (not necessarily yourself) don't always know some of the advantages of OpenGL (although it is true it has some disadvantages, as I mentioned with input and sound support etc).
There are *lots* of OpenGL debuggers too, both commercial and free (eg. Bugle, glDevil, gDEBugger, GLIntercept etc). Plus, the GLSL shading language does late compilation from source scripts. These are usually more readible than the equivalent DirectX shader statements (at least, when I have read both).
Cheers.
> 4) DirectX's new features are driven by a small focused team who ensure that mainstream video cards fully support the features in a reasonable timeframe. OpenGL's new features are the results of a committee that's consistently 3-5 years behind the state-of-the-art, and implemented by OS and video card driver programmers who (and let's be frank) don't do a very good job.
That used to be the case. It is not so anymore with the change to the Khronos group in control. I'm afraid much of your reply uses out of date information.
> 5) Your point falls a little flat, since it's really not very difficult to port a game from DirectX to OpenGL if needed. Again, it's been done dozens of times before, and it only (at most) a few months worth of work. You bring this up yourself in your last sentence, which I didn't quote.
Again, extra cost == fail. If OpenGL didn't work well on Windows then there would be no competition. The truth is that OpenGL works on Windows *as well as* all the up-and-coming platforms. Where DirectX used to have significant advantages was the non-3D parts of an application: DirectInput, DirectSound etc. These are starting to be deprecated in favour of OpenAL etc. so those advantages are disappearing.
I can only lead a horse to water. You can resist the future which is more heterogenous in hardware. However, if you choose your development tools carefully you can be well insulated from this - and save on development costs in the process.
The Bible has been translated into geek. It's called the LOLcat Bible http://www.lolcatbible.com/index.php?title=Main_Page
Enjoy!
> 1) Don't be so snide.
... and you should be thinking about the long-term *money* if you are a half-decent architect.
I'm just fed arguing with the "3D means DirectX games on Windows only" crowd. with Apple's ascent it is time for them to eat crow since their point-of-view was as sensible as the web-development "target IE6 only and forget about W3C compat" crowd (which was a battle we had to fight in the enterprise space as many "ohh, shiny" operations people have short-term horizons). This snideness is vindication and not intended to insult the sensitive, so please don't take it personally.
> 2) It's really not that hard to port a DirectX game to PS3 (I won't say OpenGL, since most PS3 games don't use OpenGL.) Dozens of games have already done that, including DirectX-supporting companies like Valve.
Huh? The official graphics API for the PS3 at the lowest level is OpenGL. Of course ports can be done. It simply takes more time (eg. money) if you start with DirectX instead of OpenGL
> 3) In the gaming world, you only care about the game working for its sale period, which is maybe two years at best. Trying to sell game developers on long-term technology are a waste of time.
Nope, you need to look at the whole equation. The tools and experience of the developers really counts. A single game sales might be two years tops but the tech a studio chooses (investing time and developer experience in) has to last a lot longer than that somce they don't like to change their technology often. Changing tech costs significant money and time. This is why the DirectX-only shops will have a period of inefficiency while they retooling for iPad etc). Fortunately many shops use professional frameworks which hide most of the underlying DirectX-ness or OpenGL-ness from the developer, which allows them to target multiple platforms.
All I'm saying is OpenGL is a good tech to investigate that has *lots* of strategic benefits compared to its closest competitor (for those still mezmerized by the now-waning DirectX hype).
The last OpenGL SuperBible touched on OpenGL ES (the stuff Android phones, iPod/iPad/iPhone etc). OpenGL ES is a subset of the full OpenGL functionality so this book is a good start to both. You can also get an Addison-Wesley book on OpenGL ES as well but the SuperBible is still worth it for the techniques it teaches (how to best use the API and but stuff together for various effects).
I hope all you DirectX programmers take note. Those who wrote for DirectX might have been able to make money on the PC+XBox but the software doesn't move to the PS3, iPhone/iPad, Android, Linux (while still running on Windows too) like OpenGL does. You all fell for Microsoft's deliberate plan to keep you on that platform (where is the Slashdot "it's a trap" tag when you need it, lol). You never know exactly what the future will bring but you do know that devices and operating systems will change. This makes OpenGL the best strategic (long-term) choice for 3D development and the OpenGL SuperBible is a great book to get you there (along with the other OpenGL classics: the 'Red Book', 'Blue Book' and 'Orange Book' - google for these or go to the OpenGL site: http://www.opengl.org./
Case studies:
The author of X-Plane talks about OpenGL made him $3.5 million in a month since he could port his product to iPhone very easily. He'll make even more money from iPad sales too (my nephew just bought X-Plane for the iPad):
http://techhaze.com/2010/03/interview-with-x-plane-creator-austin-meyer/
Il-2 Sturmovik had both a DirectX and (faster) OpenGL implementation. Coupled with the fact that it is largely written in Java and it was able to be ported to the PS3 as the product Wings-of-Prey greatly increasing sales.
If you must learn a 3D library, then learn OpenGL.It has the features of DirectX 11 (geometry shaders etc) but will run on Windows XP.
128-bit addressing is ridiculous and completely unnecessary. There aren't even 2^128 atoms in the universe. 64-bit is more than enough, especially considering the highest consumer motherboards only have 48 address lines anyway. So we have a way to go before we run out of memory even on 64-bit.
The Germans have a government that works for the people and a social policy program that is not constantly subverted by special interests (eg. corporations). How likely is it that each US State would relinquish power (put down those automatic weapons citizens!) to bring such a thing to fruition? zero? I'm not sure the US psyche would accept the solutions that work for the Germans/Europeans.
Impressively low Slashdot ID though :) Nice to 'meet' you.
I agree with your economic sentiments - the service industries are an adjunct to manufacturing, not a replacement. Some degree of protectionism is required, just as some degree of market regulation makes sense (otherwise Goliath always wins and gets bigger, which has suited the US in the past but not anymore).
It seems to me you are implying Java is bad though. Certainly heavyweight Java is crap. No doubt about it. It is possible to do good Java designs in a way that is strategically safe (copes well with a changing environment and preserves your investment). Few technologies can do this. So I see Java as a good technology often misused, and without that many alternatives that can go from embedded system to massive heterogenous clusters of SAO systems.
Off-topic: I like your xmlsucks site. XML definitely has its uses, but it is a good technology that is *very often* applied inappropriately, and with heavyweight approaches (no human should be editing schema by hand IMHO, just as you shouldn't do assembler anymore except in specialized cases, they should be generated). Sometimes though XML is a good way to represent some stuff - provided it is the *simplest* solution. Good design chooses both simplicity and clarity.
> that's just one kind of enterprise architecture, truthfully as of late JEE server (and jobs dealing with it) is in decline as lighter weight simpler solutions are being adopted. I and my friends used to make good money as J2EE based solution developer but that petered out five years ago.
.NET is simply not a contender in the large heterogenous space.
I was talking about the enterprise desktop actually (please re-read my post). Where I am there is a ton of Java work and it is getting better, sorry to hear your own neck of the woods isn't doing so well.
Java is the only thing that can scale to mammoth development projects on heterogenous hardware (I'm currently on such a project) - but I was actually talking about Java applications for the enterprise desktop (bespoke stuff that most people are unaware of since they can't download it from SourceForge or buy it at a store, but it is actually everywhere).
> And the really big-ass enterprise architectures don't have java on the back end, even though that option can be had for IBM-like, HP nonstop, and Unisys mainframes it's not the norm.
I all BS on this. Governments, Big Banks, etc have heterogenous hardware with all sorts of Operating Systems and take decades to built their infrastructure. Quite often Java is run here - at least in my experience.
The 'lightweight' stuff usually is a different architecture for Java (eg. the Spring Framework), not the awful Enterprise Beans stuff. It is still Java though. More lightweight stuff than Java is only used for small things and
Whoa, there partner! Wipe the froth from your mouth, please.
Java is not responsible for the financial meltdown, it is simply a good platform for developing high-performance stuff on a wide range of hardware (eg. like brokerages). Greed (from corporates and ordinary investors alike) and a corrupt political institutions (lobbying is institutionalized corruption, which prevents proper regulatory action) are the cause of the US/global financial woes.
Oracle is suing Google for the sake of ensuring compatibility of the Java platform (and I as a Java developer *do not* want fragmentation). This is the same reason Microsoft tried to fragment Java with their non-portable libraries and were sued and rightly lost (it is in the license terms for the licensed use of the trademark "Java"). Now Oracle may well be evil, but in the case of Java it is important to protect it and prevent incompatible implementations to prevent balkanization, so I have no problem with them attempting to enforce that. It makes a bit difference to me as a Java developer.
Apple *insisted* on making their own JVM. This was bought on to them by themselves.
However, the *effort* to build the JVM is a smokescreen from Jobs. He thinks Apple has enough momentum he can force developers to develop exclusively for Apple products and is making developers choose. Unfortunately, I think he has made a mistake. I'm a Java developer on a lovely 17" MacBook Pro (switched from Ubuntu) but won't buy another Mac (except maybe to put on Ubuntu - which I actually prefer to OS X) and won't develop for Apple since I can't use Java to do it. I'll continue to target all the other platforms (Windows, Linux, Android!!!!). Bad move by Steve IMHO.
Sun was playing nicely. The terms of creating a JVM that uses the trademark "Java" is that the code had to be able to run on all platforms. Microsoft tried to embrace, extend, extinguish on Java and Sun took them to court. Microsoft lost because they violated the license terms. This was not Sun trying to shaft Microsoft for the sake of it (although no doubt they got a great deal of pleasure by it) but actually Sun were protecting their customers (who had been promised "run anywhere") and the Java brand. It was a necessary evil by Sun.
Shame you young folk never get told the truth of the matter (you are now!) and that the facts are getting obscured over time.
You have obviously never worked with an Enterprise desktop. Java is everywhere in the Enterprise. Now go back to your StarCraft.
Huh? "Software developers" aren't important as a market to sell to, yes. Software developers are completely critical when it comes to making applications for your platform. Microsoft knows this and that's why their "developers! developers! developers!" mantra has got them so far (as dorky as it might be).
I'm mostly doing Java development these days. I have a MacBook Pro that I use when consulting. While the Java situation on Mac is currently ok (recent JDKs being released) Steve Jobs is forcing me to choose between Objective-C (pretty backward compared to Java for stuff like concurrency etc) for their niche or use Java (works everywhere except the XBox and iPhone/iPad/ and soon Mac OS X). So, I'll continue to work with Java since that makes strategic sense to me and will target Linux, Windows, Android, and embedded and not worry about making my programs work with the Mac. Who do you think will be the long-term loser of this? Steve Jobs is a bonehead with this move.
A lot of Mac apps I've bought are also written in Java (since they also need to be sold for Windows). This news is gonna piss off a lot of the third-party developers that work on Macs. They might port their app to an IDevice but pretty much they'll keep the Java version since they can sell to the vast Windows market (not many UML diagramming tools will get sold to the iPad I expect). Way to go to push yourself back into your little desktop niche Apple!
Yes, I know that thanks. If you re-read the parent post (grandparent of yours) you'll see that it states:
> Does pure Java provide a usable interface to every peripheral connected to a computer? For example, does pure Java allow an application to read a human interface device that is not a keyboard or a mouse? I spent some time with Google, and the answer is apparently no: a native driver [hardcode.de] has to be installed.
My response was that these devices can be controlled using Java and in the case of JNA you write only Java code. I didn't mention "Pure Java". Hope that clears things up for you.
No, Objective C's weakness in multithreading (which really requires garbage collection otherwise the very large and complex programs I work on are impossible to avoid leaks in) means I've only evaluated it long enough to dismiss it as similar to old technologies I used to use.
Objective-C is a barrier to more stuff being written on iDevices. Apple thinks it helps the. It does not. That is one of the reasons why Android will likely overtake Apple (and one reason Apple is dropping Java in an attempt to stop this). Apple is trying to replay 1990 exclusion tactics but the veterans of the IT world has learnt since then (it's still the first time around for n00bish folk, so they can't see the parallels).
The Millions of Java developers (see tiobe.com for programming lanuage popularity) are almost immediately productive on Android but require and Apple, sign-up to Developer Connection, XCode, and Objective-C to write for the iDevices. All these barrier result in a giant "meh" when they can tap the growing Android market with far less hassle. I know which horse makes more sense to back in the long term - therefore I only occaisonally dabble with Objective-C, since I can do more with Java and the only devices I can't deploy my programs to are the XBoxes and iPhones. I've put my Java programs on other embedded devices and operating systems (all sorts of Windows, IRIX, Solaris, Linux and embedded Linux) so Objective-C is a poor strategic investment for me (and for many others) despite its small tactical advantage of targeting the iDevices while they still have majority market share (which is guaranteed to change over time).
Macs are good for general development (I'm writing this on a 17" MacBook Pro and she's a beaut) but Objective-C is antiquated. I'd much rather target Java, so hence I write for Android.
I can assure you that there won't be a general stampede to Objective-C in the enterprise. It simply feels so backward compared to Java.
Java is not used much by consumers. Java is used hugely in the enterprise space on the desktop and in the server-room. Unfortunately this is not visible to many people because:
a) their computing horizon is so short it means being able to run Twitter or Grand Theft Auto, or
b) companies don't talk about their competitive advantages (and the PR folks certainly don't understand the tech anyways).
You can use the JNI interface or even better, use JNA. You then introduce platform-specific stuff into you application - but you can isolate that easily in the same way you isolate your database calls with DAOs etc.
:)
So yes, you can call any operating system API using only Java code and the JNA library (I've done it). Sorry to hear that the uber-smart Googlers didn't know about this library, you would have thought they would have googled for it after all
C'mon, the world doesn't work that fast. The US has been intending to close the China copyright loop-hole for ages (also via WTO etc).
If you are in New Zealand I suggest checking out a Google license (Fronde is the local agent I think). It would seem they're quite a bit cheaper than the MS offerings and new features come out quite frequently.
Disclaimer: I'm a contractor who's passed through Fronde recently (not an employee), and have my ear to the ground and just wanted to share that you might be able to get a better deal with Google than Office365 in NZ (real disclaimer: personally I prefer OpenOffice and Ubuntu, but I realise not everyone wants this).