Depends what you are doing and what machine you are running. On Macs and Linux machines Java is slightly more prevalent, on Windows not so much. For example there are excellent Java applications (not applets) such as Visual Paradigm (a UML/system modelling tool) that are best-of-breed IMHO (nb: I hate the Windows native Enterprise Architect). So yeah, there are plenty of Java Applications out there (I've built some of them and they've been fine for users).
FYI: The Oracle/OpenJDK JRE is around 14 MB. There is no real excuse for not keeping it up to date, especially when Java Update prompts you to update when there are remote-exploits on your platform. All you have to do for Java is click "Ok" once and let the damn thing update - how hard could that be?
I don't have the figures at hand (and sorry, haven't looked 'em up for this quick post) but I understand that the US pays a rather large amount for the healthcare it does get - despite it being privatized. The US healthcare system is pretty good (if you have insurance) but there are huge compliance costs to cover the litigious nature of the industry, plus unnecessary tests just to stave off later legal challenges.
If the heath system was nationalized at the US Federal level it would never become cheap (but the cost could be driven down by sensible policy and administration), and would only be as efficient as the ethic of the people implementing it, but the cost would probably drop once the medical and pharma establishment had their hand off the tiller. Despite the grumbling all over the World, most national Western healthcare systems work adequately on fewer dollars (and private insurance is also available for those that can afford and want the best). Just don't let private industry continue to run the show - as it effectively does now (and don't believe their hype that things would be worse or more expensive, they wouldn't be, although they'd be sure to crow about any isolated incidents given their vested interests).
My absolute pleasure - I simply could not let such incorrect statements stand unchallenged - and thanks for taking the time to comment on my post. Sometimes, as I'm sure you have experienced yourself, you're never sure whether people read and appreciate them or not.
ODBC driver for Linux is so they can sell more instances of SQL-Server on Windows Server. No sin there, but no altruism either.
Similarly, hypervisor contributions so you can run Linux instances on Windows Server. No sin there, but no altruism either.
> Also they aren't mandating that there be an inability to turn off the SecureBoot UEFI feature on ARM devices certified for Windows 8, this means that manufacturers can create compliant devices capable of booting Linux, therefore they MUST mandate that SecureBoot be always on and non-optional otherwise it will contradict the *fact* that they are trying to kill Linux!
Hmm, so they are heroes by their inaction over SecureBoot UEFI?
No wonder you posted as an Anonymous Coward. I'd be shamed by poor analysis with such posts too.
Ballmer understood Linux and Free Software - if he didn't then he was negligent as CEO, and I actually give him more credit than others. Ballmer also understood that with the right tech support networks (eg. pre-installation) that Linux was a huge competitive threat to Windows. It is only recently that Microsoft has backed off on such comments, they weren't isolated comments made in 2001, they were made consistently and has part of an orchestrated campaign over many years (please, check out the notorious "Halloween Documents" for some perspective on Microsoft's modus operandi - you may never of heard of them, but anyone who is anything but a n00b is well aware of these and Microsoft's other dirty tricks).
Microsoft Flight is a total joke for the sim crowd. Only someone quite inexperienced when it comes to simulators would think Flight was anything other than lame (eg. any of X-Plane, or DCS:A-10C, or DCS:Ka-50, or the recently released DCS:World, or even Microsoft Flight Sim X are all generally held to be better simulators than Flight - by those in the know).
Visual Studio is the best IDE, if you only develop for Windows (most people do more than Windows, eg the web, iOS etc) if you have never used anything better (and there are better IDEs out there, depending on your needs). Again, this smacks of someone who actually hasn't got much experience with other IDEs.
nb. Nokia is no longer the World's largest phone manufacturer. Recently Samsung overtook them in shipped more units, and furthermore, Apple is the leader in terms of market direction (they lead, others follow). Microsoft is loosing money badly in the mobile space - if it wasn't for their established monopolies they would have exited mobile long ago, but they are desparate to be relevant. Now Microsoft are a generation behind, trying to get into mobiles when Apple has already captured the mindshare of that market and is now moving to the tablet space (where Microsoft is a non-contender at the moment).
XBox360 is winner? they do have higher total sales than PS3, but given their huge lead time it turns out that PS3 has had the better rate of growth in terms of sales (and a better experience, in terms of reliability and game choice).
So, it is good that Microsoft makes you happy. It doesn't make its shareholders happy, and it is rapidly losing relevance compared with its position even five years ago. But by all means, please try and see the good in their products (even though anyone else who has used their competitors products will never go back to the poor-quality Microsoft equivalents).
Although, even with those options we wanted to do single-frame stepping forward and backward, so we wrote a JNI interface (although these days you'd use JNA instead) to FFMpeg and used that. Worked a treat.
Well, very appropriate considering Microsoft's position on Linux and Free Software was that they were a "cancer" (their words, not mine). So maybe giving them a ribbing at this news isn't unjustified.
Nimbus with Swing looks awesome. My customers tell me so (without prompting). Do your customers tell you this?
True cross platform with Mono >> horsehit. The language is cross-platform, the libraries are not - and it is the libraries that matter! The Mono libraries aren't used by the Windows folks and the Microsoft libraries can't be used on any other platform (if they exist, WPF does for Mono and apparently never will according to the project pages). Conclusion, your statement is incorrect - Mono is not cross-platform in the way that Java is.
You wouldn't write JNI (unless you were out of touch and didn't know any better) - although I happen to have written JNI interfaces many times (eg. controlling radars and large roadsigns from Java) and it wasn't as hard as people make out (I suppose if you were a nugget it might seem hard). You would either use JNA (vastly easier, and no native code required) or use a 100% pure Java library (which can be done for everything except device driver integration - are you doing device driver integration).
Ruby is excellent at what it was designed for (isn't everything?). It is a pretty piss-poor general purpose language (device control in Java is palatable; in Ruby? square peg, round hole).
Actually, I was saying the opposite - microbenchmarks are bad, only trust programs that are similar to those you want to run yourself. In this case I would say the JVM and CLR are pretty close (although I'd be surprised if the JVM wasn't just a little better, even now JDK 7u4 has some significant improvements). I was trying to point out that the x8 times faster figure for the C# version was wrong because it compared Dalvik (not the JVM) and was probably about some micro-benchmark. I also wonder whether the tests were on the exact same hardware (Android devices are fairly limited compared to PCs, and are optimised for different problems).
Actually that is the same going from any language to any other language, I translated some scientific code written in FORTRAN (mostly F77, but I'm sure you know the old saying, "You can write bad FORTRAN in any language" [including FORTRAN]) to ANSI C. There were plenty of constructs even in primitive FORTRAN that were alien in C. Lots of things weren't the same, and since it was for scientific work I needed the operations to be the same bit-for-bit (iterative multi-dimensional fitting, so any rounding errors multiply quickly, the real 'butterfly effect'). So I don't see this as a problem peculiar to Java. Hence, I see your comment as a reflection of your experience, but your are limiting your scope - all cross-language translations have this problem [even natural languages], so blaming seems a little lame/biased from a wider perspective.
I'm afraid I still stand by my statement. Dynamically-typed languages have a flexibility that is excellent for small programs that is a hinderance for large programs, and especially large teams (many commercial developers are not as experienced or dedicated as your or I, yet they still need to be productive - this makes the "language du hour" with its wonderful new-fangled features less useful rather than more useful - which is why they don't get adopted in the Real World [and why language boffins can't grok that throwing keywords and quirky features at a language is actually a bad thing to do]). Yes, the factors you name are significant - I would also add the fact that in a strict statically typed language the ability of the compiler and linker to catch a lot of your mistakes *before you even run the program* is such an advantage for large programs (where your mental capacity is saturated with the complexities of the problem space, and trying not to focus on the minor nuances of the programming language at hand). Catching errors as you run the program is a crappy way to develop (and unfortunately, few people get religion on unit testing to the point of good coverage). I know, when I was using Perl a lot I found it convenient to bash scripts out (which was deceptive) but subtle errors wouldn't be found for hours of runtime (I was using Perl to manage the astrophysical image processing routines I'd written in C++ for huge data sets). Such errors would often be trivally caught or warned about by a strict language/compiler/linker combo.
With regard to the performance of Java vs C++ (and in 2008 no less) I often point people to a research paper written by INRIA (the French scientific outfit - the supercoming division in this case): http://blogs.oracle.com/jag/entry/current_state_of_java_for
This paper shows the Java's performance is better than C++ (and I won't even start on the very significant development productivity enhancements of Java over C++, not to mention the vastly better portability [test on Windows, run on your multi-thousand CPU Linux cluster]). That was in 2008, the JVM, and especially the libraries, have gotten much faster since then. More importantly, with Java you will finish your program sooner, and with fewer lines of code, than in C++ (save months of development means the software costs less to build, you are earlier to market, and sooner to start using it - all of which should not be sneezed at).
I understand the apeal of dynamic languages for quick hacks, but I maintain that if you were to invest in tools and experience (the more time you have on a single language the more productive you are, in an exponential way) in a single language then I think Java is probably the best choice for most developers.
Dynamic languages may have been slow in the past (personally I hate them, you can't write huge codebases in a dynamic language and get a team to understand it), but *Java* was always pretty damn fast: http://blogs.oracle.com/jag/entry/current_state_of_java_for (and that was 4 years ago, the JVM is very much faster since 1.6.0u10).
Well, if you don't like Eclipse there is always NetBeans or IntelliJ Idea or a bunch of other tools that actually suit your personal style. Visual Studio is not a bad IDE (although too buggy for my tastes), but it certainly is not the best out there.
No. It is faster than the "Dalvik" version. The Java Virtual Machine is very very fast these days. Here's some history for you, when.NET was first release Microsogft expilicitly prohibited benchmarking it against Java because the JVM was much faster. These days the current JVMs cream the performance of the JVMs at the time.NET was released. Now, I'm sure that.NET has gotten much faster, but it turns out the Sun engineers (and now Oracle and the Open Source community [which also includes other big corps contributing to OpenJDK]) know a thing or two about compiler optimization. I would be very surprised it the JVM and.NET weren't comparable on speed terms for the execution of a large program (micro-benchmarks and contrived tests are always misleading), although I'd still put my money on the OpenJDK JVM to have a little edge (especially on any platform that wasn't Windows, like the tens of thousands of Linux boxen Google uses to power all its stuff).
Bro, it is all a "compiler sham". Turns out whether you are prepared to sacrifice true cross-platform for a few extra keywords and features (which make fsck-all difference when your projects are *huge*).
The C# language and runtime specification is open. Full marks to Microsoft there. The *libraries* are not. Turns out, that is the important bit. Shame most C# proponents never grok this. Meanwhile the JDK license explicitly allows compatible implementations of the language, runtime *and* the all-important libraries. The term "Java" is trademarked, and an implementation can't use it without passing the Testing Compatibility Kit (which ensures the "write-once, run-everywhere" promise is kept).
Conclusion: Java is actually far more open and Free (as in liberty) than C#/.NET, just ask the OpenJDK guys, or the IBM JDK guys, or kaffe, or GNU GCJ/Classpath. Just don't try and pull a Microsoft and create an implementation that breaks Java compatibility (which Google could also seen to be doing, if you squint hard enough).
Nope. Consoles have almost no memory in addition to their crap (relative to a high-end PC) graphics. For example, I'm currently working on a jet combat simulation for the PC-hardware (Mac, Linux, Windows). The hard thing about doing this is trying to squeeze a big world into the limited confines of 4-8 GB of RAM (which requires a lot of work to manage scenery in and out of RAM for the view distances you can see from 50,000 feet). Nobody even attempts such things with consoles - players fight on postage stamps sized maps on all console games (which is why console games are so limited in scope).
Kia Ora, actually we *do* have a surveillance state in New Zealand, you just have to be paying attention to notice it. Things like all our ISPs were required to have "Lawful Intercept" equipment installed by the end of 2009. This allows foreign intelligence to see our web traffic in real time.
Our very own GCSB have been automatically sifting through phone conversations for a long time, looking for suspicious stuff. I know, a person known to me (with contacts in that world) mentioned how his ex-wife and I would discuss political issues like the Invasion of Iraq over the telephone - which was picked up by the phone monitoring system (and I'm not activist, just a regular, relatively pro-Western, Joe).
Then we are part of Echelon with not one, but two sites on our soil (Waihopai and Tangimoana). While this was originally intended for tracking Soviet communications in the Cold War those days are long over. An assertion has been made that the intercepts are now used by the US for economic espionage, sometimes against NZ businesses (since the US sees all the intercepts and filters what the NZ agencies get to see - so they can withhold any juicy bits they choose).
This is the routine surveillance. If you are a suspicious character then you can be targeted for further investigation, provided a judge approves (unlikely they would withhold a request).
Now I'm not saying this surveillance is good, bad, or otherwise. I'm just saying that it is there - even though most kiwis don't know it (it is not like it is advertised as the surveillance gets progressively wider and more comprehensive). Plus, in NZ we don't have anything like a constitution to limit the power of the Crown (actually not the Crown itself, but the local government agencies) over the citizenry. You may scoff at the US but at least they have their protections spelled out, even if they are now ignored (but you would have recourse, at least in theory).
Ain't life in Godzone grand - one of the secretest and low-key police states of them all. Almost all developed and developing nations are acquiring the mechanisms and technology the average person would only associate with repressive regimes like North Korea or the former East Germany. Time to wake up!
That is not what a software architect does. The role you have described is that of "Business Analyst" (BA). A good BA is worth their weight in gold. Unfortunately, there are few really good BAs out there - most BAs are wannabe techs that dabbled in development but didn't really like it.
The architect's role is to read what the BA has produced and determine what set of software tools and existing business systems should be used to implement the solution. They also set the rules for the other software developers to follow. The architects were pretty much all software developers but have so much experience that it is of greater benefit they share their experience but guiding the development rather than developing themselves. The best architects still code when they can to get hands-on-time with newer technologies to evaluate it - the worse ones simply pick up ideas from magazines and conferences without actually testing how much of a pain the new tech is to really use (and all tech has pain points, it is just whether it is significant for your business and how bad that pain is). The architects don't usually write requirements, they write "solution architectures" describing how the system will interact with other systems and people (something that is important to get write early on).
I've done work (including international work) as a trained technical writer (in the Information Mapping methodology). I have to say that I much prefer LibreOffice to Word. The reason for this is that LibreOffice is fairly simple and doesn't get in your way (Clippy may not be visible anymore, but the 'help' that actually hinders is still there behind the scenes in Office - so you end up wrestling with it).
I couldn't read the article (got the Permission Denied error), but find that Word beats LibreOffice on the default style templates supplied. The coloring of tables is excellent in Word, while the LibreOffice styles are not as easy on the eye. LibreOffice completely kicks Word when it comes to PDF export. Exporting PDFs from Word is a nightmare, not only do the PDFs come out borked but it actually can foobar the original Word document too (since it can re-format the document as it attempts to figure out how to render the PDF) - that is so brain-dead.
The other thing I've noticed is that LibreOffice is much more responsive to user input. For some reason Word 2011 on the Mac is dog slow, uses a lot of CPU in the background even when you are idle (not typing) and crashes. This is most unlike other Mac programs. I used to think Office on Windows sucked because of Windows, with my Mac experience I have come to the realization that it is Microsoft Office that is the dog, and I simply cannot recommend it for use (and can't understand those that would, unless they don't know any better, or don't write professionally so never see the pain points).
Oh yeah, if you are more serious then paying for Adobe Acrobat is a good idea. Beats LibreOffice on functionality and result (although not on price), and is superior to MS Office (although not on price). For really scientific/technical stuff LaTeX is king, and even has easy to use interfaces like LyX (http://www.lyx.org/) to ease use for beginners.
> And that's how you end up with crap applications.
Bullshit. I thought this 'native look n feel' myth had been thoroughly debunked by now by developers in the know. There are plenty of applications with a native look-n-feel that are crap. There are plenty of applications (more, in fact, as time goes by) that don't have native look-n-feel that are thoroughly excellent. Self-consistency and meeting expectations for application type matters far more niceness of integration that just using native widgets.
> Irrelevant. No one has an iPhone with under 32MB of RAM. The existence of devices under 32MB has no baring on the
Totally relevant when the decision was made. And if I accept your argument, then there was no real reason not to allow someone to port Java to the iPad (and later iPhone) except for Apple's corporate politics. Instead Apple have decided to take a totalitarian route (which, incidentally seems to be abused to stop competition more than any supposed benefits of the iron fist). I'm a Apple user and I love their gear but hate their attitude.
> Java applications on OS X often can't even get text boxes right - the shortcut keys for navigating in a text field are different to every other application that the user uses on the platform - and things like menu layouts are also unconventional.
This I agree with. However, don't throw the baby out with the bathwater, Apple did have the leeway over their own VM to fix it - after all, they insisted on maintaining their own VM than letting Sun (and now the community with OpenJDK) sort it out. What I'm trying to point out was that it is Apple's policies that are preventing Java from working on iOS (and Java could be made to be great on that platform - the problem is not the technology, it is the evil gatekeeper).
With regard to Mono. That's a non-argument since the.NET libraries are not intended to be cross-platform. What I'm trying to say is that Apple is against cross-platform, and cross-platform is good. Disagree?
> The egocentricity seems to be more on your part, deciding that Apple needs to pay to have the runtime for your favourite language ported to their platform.
Apple don't have to pay for anything - that is just the apologies of a fanboi. All they would have to do is get out of the way and let the community sort it out (OpenJDK manages to get a lot of places without Microsoft or Linus funding anything). iOS is not really that much different to OS X after all. Do you really think that if Apple got out of the way that the community would have the inability to make a good Java version for iOS?
Depends what you are doing and what machine you are running. On Macs and Linux machines Java is slightly more prevalent, on Windows not so much. For example there are excellent Java applications (not applets) such as Visual Paradigm (a UML/system modelling tool) that are best-of-breed IMHO (nb: I hate the Windows native Enterprise Architect). So yeah, there are plenty of Java Applications out there (I've built some of them and they've been fine for users).
FYI: The Oracle/OpenJDK JRE is around 14 MB. There is no real excuse for not keeping it up to date, especially when Java Update prompts you to update when there are remote-exploits on your platform. All you have to do for Java is click "Ok" once and let the damn thing update - how hard could that be?
CPUs used to be like that too.
I don't have the figures at hand (and sorry, haven't looked 'em up for this quick post) but I understand that the US pays a rather large amount for the healthcare it does get - despite it being privatized. The US healthcare system is pretty good (if you have insurance) but there are huge compliance costs to cover the litigious nature of the industry, plus unnecessary tests just to stave off later legal challenges.
If the heath system was nationalized at the US Federal level it would never become cheap (but the cost could be driven down by sensible policy and administration), and would only be as efficient as the ethic of the people implementing it, but the cost would probably drop once the medical and pharma establishment had their hand off the tiller. Despite the grumbling all over the World, most national Western healthcare systems work adequately on fewer dollars (and private insurance is also available for those that can afford and want the best). Just don't let private industry continue to run the show - as it effectively does now (and don't believe their hype that things would be worse or more expensive, they wouldn't be, although they'd be sure to crow about any isolated incidents given their vested interests).
Fantastic post. Sorry, already blew my mod points today. Please keep such good posts coming.
My absolute pleasure - I simply could not let such incorrect statements stand unchallenged - and thanks for taking the time to comment on my post. Sometimes, as I'm sure you have experienced yourself, you're never sure whether people read and appreciate them or not.
ODBC driver for Linux is so they can sell more instances of SQL-Server on Windows Server. No sin there, but no altruism either.
Similarly, hypervisor contributions so you can run Linux instances on Windows Server. No sin there, but no altruism either.
> Also they aren't mandating that there be an inability to turn off the SecureBoot UEFI feature on ARM devices certified for Windows 8, this means that manufacturers can create compliant devices capable of booting Linux, therefore they MUST mandate that SecureBoot be always on and non-optional otherwise it will contradict the *fact* that they are trying to kill Linux!
Hmm, so they are heroes by their inaction over SecureBoot UEFI?
No wonder you posted as an Anonymous Coward. I'd be shamed by poor analysis with such posts too.
Ballmer understood Linux and Free Software - if he didn't then he was negligent as CEO, and I actually give him more credit than others. Ballmer also understood that with the right tech support networks (eg. pre-installation) that Linux was a huge competitive threat to Windows. It is only recently that Microsoft has backed off on such comments, they weren't isolated comments made in 2001, they were made consistently and has part of an orchestrated campaign over many years (please, check out the notorious "Halloween Documents" for some perspective on Microsoft's modus operandi - you may never of heard of them, but anyone who is anything but a n00b is well aware of these and Microsoft's other dirty tricks).
Microsoft Flight is a total joke for the sim crowd. Only someone quite inexperienced when it comes to simulators would think Flight was anything other than lame (eg. any of X-Plane, or DCS:A-10C, or DCS:Ka-50, or the recently released DCS:World, or even Microsoft Flight Sim X are all generally held to be better simulators than Flight - by those in the know).
Visual Studio is the best IDE, if you only develop for Windows (most people do more than Windows, eg the web, iOS etc) if you have never used anything better (and there are better IDEs out there, depending on your needs). Again, this smacks of someone who actually hasn't got much experience with other IDEs.
nb. Nokia is no longer the World's largest phone manufacturer. Recently Samsung overtook them in shipped more units, and furthermore, Apple is the leader in terms of market direction (they lead, others follow). Microsoft is loosing money badly in the mobile space - if it wasn't for their established monopolies they would have exited mobile long ago, but they are desparate to be relevant. Now Microsoft are a generation behind, trying to get into mobiles when Apple has already captured the mindshare of that market and is now moving to the tablet space (where Microsoft is a non-contender at the moment).
XBox360 is winner? they do have higher total sales than PS3, but given their huge lead time it turns out that PS3 has had the better rate of growth in terms of sales (and a better experience, in terms of reliability and game choice).
So, it is good that Microsoft makes you happy. It doesn't make its shareholders happy, and it is rapidly losing relevance compared with its position even five years ago. But by all means, please try and see the good in their products (even though anyone else who has used their competitors products will never go back to the poor-quality Microsoft equivalents).
Here are some other Java video options:
Cortardo - http://en.wikipedia.org/wiki/Cortado_(software)
FMJ (a play on JMF)http://fmj-sf.net/
VLC Java Bindings - http://code.google.com/p/vlcj/
Although, even with those options we wanted to do single-frame stepping forward and backward, so we wrote a JNI interface (although these days you'd use JNA instead) to FFMpeg and used that. Worked a treat.
OpenJDK is Free Software, under the GPLv2 with Classpath Exception - sez so here: http://openjdk.java.net/legal/gplv2+ce.html
Well, very appropriate considering Microsoft's position on Linux and Free Software was that they were a "cancer" (their words, not mine). So maybe giving them a ribbing at this news isn't unjustified.
Sigh. You again, with your erroneous statements.
Nimbus with Swing looks awesome. My customers tell me so (without prompting). Do your customers tell you this?
True cross platform with Mono >> horsehit. The language is cross-platform, the libraries are not - and it is the libraries that matter! The Mono libraries aren't used by the Windows folks and the Microsoft libraries can't be used on any other platform (if they exist, WPF does for Mono and apparently never will according to the project pages). Conclusion, your statement is incorrect - Mono is not cross-platform in the way that Java is.
You wouldn't write JNI (unless you were out of touch and didn't know any better) - although I happen to have written JNI interfaces many times (eg. controlling radars and large roadsigns from Java) and it wasn't as hard as people make out (I suppose if you were a nugget it might seem hard). You would either use JNA (vastly easier, and no native code required) or use a 100% pure Java library (which can be done for everything except device driver integration - are you doing device driver integration).
Ruby is excellent at what it was designed for (isn't everything?). It is a pretty piss-poor general purpose language (device control in Java is palatable; in Ruby? square peg, round hole).
Actually, I was saying the opposite - microbenchmarks are bad, only trust programs that are similar to those you want to run yourself. In this case I would say the JVM and CLR are pretty close (although I'd be surprised if the JVM wasn't just a little better, even now JDK 7u4 has some significant improvements). I was trying to point out that the x8 times faster figure for the C# version was wrong because it compared Dalvik (not the JVM) and was probably about some micro-benchmark. I also wonder whether the tests were on the exact same hardware (Android devices are fairly limited compared to PCs, and are optimised for different problems).
Actually that is the same going from any language to any other language, I translated some scientific code written in FORTRAN (mostly F77, but I'm sure you know the old saying, "You can write bad FORTRAN in any language" [including FORTRAN]) to ANSI C. There were plenty of constructs even in primitive FORTRAN that were alien in C. Lots of things weren't the same, and since it was for scientific work I needed the operations to be the same bit-for-bit (iterative multi-dimensional fitting, so any rounding errors multiply quickly, the real 'butterfly effect'). So I don't see this as a problem peculiar to Java. Hence, I see your comment as a reflection of your experience, but your are limiting your scope - all cross-language translations have this problem [even natural languages], so blaming seems a little lame/biased from a wider perspective.
I'm afraid I still stand by my statement. Dynamically-typed languages have a flexibility that is excellent for small programs that is a hinderance for large programs, and especially large teams (many commercial developers are not as experienced or dedicated as your or I, yet they still need to be productive - this makes the "language du hour" with its wonderful new-fangled features less useful rather than more useful - which is why they don't get adopted in the Real World [and why language boffins can't grok that throwing keywords and quirky features at a language is actually a bad thing to do]). Yes, the factors you name are significant - I would also add the fact that in a strict statically typed language the ability of the compiler and linker to catch a lot of your mistakes *before you even run the program* is such an advantage for large programs (where your mental capacity is saturated with the complexities of the problem space, and trying not to focus on the minor nuances of the programming language at hand). Catching errors as you run the program is a crappy way to develop (and unfortunately, few people get religion on unit testing to the point of good coverage). I know, when I was using Perl a lot I found it convenient to bash scripts out (which was deceptive) but subtle errors wouldn't be found for hours of runtime (I was using Perl to manage the astrophysical image processing routines I'd written in C++ for huge data sets). Such errors would often be trivally caught or warned about by a strict language/compiler/linker combo.
With regard to the performance of Java vs C++ (and in 2008 no less) I often point people to a research paper written by INRIA (the French scientific outfit - the supercoming division in this case): http://blogs.oracle.com/jag/entry/current_state_of_java_for
This paper shows the Java's performance is better than C++ (and I won't even start on the very significant development productivity enhancements of Java over C++, not to mention the vastly better portability [test on Windows, run on your multi-thousand CPU Linux cluster]). That was in 2008, the JVM, and especially the libraries, have gotten much faster since then. More importantly, with Java you will finish your program sooner, and with fewer lines of code, than in C++ (save months of development means the software costs less to build, you are earlier to market, and sooner to start using it - all of which should not be sneezed at).
I understand the apeal of dynamic languages for quick hacks, but I maintain that if you were to invest in tools and experience (the more time you have on a single language the more productive you are, in an exponential way) in a single language then I think Java is probably the best choice for most developers.
Dynamic languages may have been slow in the past (personally I hate them, you can't write huge codebases in a dynamic language and get a team to understand it), but *Java* was always pretty damn fast: http://blogs.oracle.com/jag/entry/current_state_of_java_for (and that was 4 years ago, the JVM is very much faster since 1.6.0u10).
Well, if you don't like Eclipse there is always NetBeans or IntelliJ Idea or a bunch of other tools that actually suit your personal style. Visual Studio is not a bad IDE (although too buggy for my tastes), but it certainly is not the best out there.
No. It is faster than the "Dalvik" version. The Java Virtual Machine is very very fast these days. Here's some history for you, when .NET was first release Microsogft expilicitly prohibited benchmarking it against Java because the JVM was much faster. These days the current JVMs cream the performance of the JVMs at the time .NET was released. Now, I'm sure that .NET has gotten much faster, but it turns out the Sun engineers (and now Oracle and the Open Source community [which also includes other big corps contributing to OpenJDK]) know a thing or two about compiler optimization. I would be very surprised it the JVM and .NET weren't comparable on speed terms for the execution of a large program (micro-benchmarks and contrived tests are always misleading), although I'd still put my money on the OpenJDK JVM to have a little edge (especially on any platform that wasn't Windows, like the tens of thousands of Linux boxen Google uses to power all its stuff).
Bro, it is all a "compiler sham". Turns out whether you are prepared to sacrifice true cross-platform for a few extra keywords and features (which make fsck-all difference when your projects are *huge*).
The C# language and runtime specification is open. Full marks to Microsoft there. The *libraries* are not. Turns out, that is the important bit. Shame most C# proponents never grok this. Meanwhile the JDK license explicitly allows compatible implementations of the language, runtime *and* the all-important libraries. The term "Java" is trademarked, and an implementation can't use it without passing the Testing Compatibility Kit (which ensures the "write-once, run-everywhere" promise is kept).
Conclusion: Java is actually far more open and Free (as in liberty) than C#/.NET, just ask the OpenJDK guys, or the IBM JDK guys, or kaffe, or GNU GCJ/Classpath. Just don't try and pull a Microsoft and create an implementation that breaks Java compatibility (which Google could also seen to be doing, if you squint hard enough).
Nope. Consoles have almost no memory in addition to their crap (relative to a high-end PC) graphics. For example, I'm currently working on a jet combat simulation for the PC-hardware (Mac, Linux, Windows). The hard thing about doing this is trying to squeeze a big world into the limited confines of 4-8 GB of RAM (which requires a lot of work to manage scenery in and out of RAM for the view distances you can see from 50,000 feet). Nobody even attempts such things with consoles - players fight on postage stamps sized maps on all console games (which is why console games are so limited in scope).
Kia Ora, actually we *do* have a surveillance state in New Zealand, you just have to be paying attention to notice it. Things like all our ISPs were required to have "Lawful Intercept" equipment installed by the end of 2009. This allows foreign intelligence to see our web traffic in real time.
Our very own GCSB have been automatically sifting through phone conversations for a long time, looking for suspicious stuff. I know, a person known to me (with contacts in that world) mentioned how his ex-wife and I would discuss political issues like the Invasion of Iraq over the telephone - which was picked up by the phone monitoring system (and I'm not activist, just a regular, relatively pro-Western, Joe).
Then we are part of Echelon with not one, but two sites on our soil (Waihopai and Tangimoana). While this was originally intended for tracking Soviet communications in the Cold War those days are long over. An assertion has been made that the intercepts are now used by the US for economic espionage, sometimes against NZ businesses (since the US sees all the intercepts and filters what the NZ agencies get to see - so they can withhold any juicy bits they choose).
This is the routine surveillance. If you are a suspicious character then you can be targeted for further investigation, provided a judge approves (unlikely they would withhold a request).
Now I'm not saying this surveillance is good, bad, or otherwise. I'm just saying that it is there - even though most kiwis don't know it (it is not like it is advertised as the surveillance gets progressively wider and more comprehensive). Plus, in NZ we don't have anything like a constitution to limit the power of the Crown (actually not the Crown itself, but the local government agencies) over the citizenry. You may scoff at the US but at least they have their protections spelled out, even if they are now ignored (but you would have recourse, at least in theory).
Ain't life in Godzone grand - one of the secretest and low-key police states of them all. Almost all developed and developing nations are acquiring the mechanisms and technology the average person would only associate with repressive regimes like North Korea or the former East Germany. Time to wake up!
That is not what a software architect does. The role you have described is that of "Business Analyst" (BA). A good BA is worth their weight in gold. Unfortunately, there are few really good BAs out there - most BAs are wannabe techs that dabbled in development but didn't really like it.
The architect's role is to read what the BA has produced and determine what set of software tools and existing business systems should be used to implement the solution. They also set the rules for the other software developers to follow. The architects were pretty much all software developers but have so much experience that it is of greater benefit they share their experience but guiding the development rather than developing themselves. The best architects still code when they can to get hands-on-time with newer technologies to evaluate it - the worse ones simply pick up ideas from magazines and conferences without actually testing how much of a pain the new tech is to really use (and all tech has pain points, it is just whether it is significant for your business and how bad that pain is). The architects don't usually write requirements, they write "solution architectures" describing how the system will interact with other systems and people (something that is important to get write early on).
I've done work (including international work) as a trained technical writer (in the Information Mapping methodology). I have to say that I much prefer LibreOffice to Word. The reason for this is that LibreOffice is fairly simple and doesn't get in your way (Clippy may not be visible anymore, but the 'help' that actually hinders is still there behind the scenes in Office - so you end up wrestling with it).
I couldn't read the article (got the Permission Denied error), but find that Word beats LibreOffice on the default style templates supplied. The coloring of tables is excellent in Word, while the LibreOffice styles are not as easy on the eye. LibreOffice completely kicks Word when it comes to PDF export. Exporting PDFs from Word is a nightmare, not only do the PDFs come out borked but it actually can foobar the original Word document too (since it can re-format the document as it attempts to figure out how to render the PDF) - that is so brain-dead.
The other thing I've noticed is that LibreOffice is much more responsive to user input. For some reason Word 2011 on the Mac is dog slow, uses a lot of CPU in the background even when you are idle (not typing) and crashes. This is most unlike other Mac programs. I used to think Office on Windows sucked because of Windows, with my Mac experience I have come to the realization that it is Microsoft Office that is the dog, and I simply cannot recommend it for use (and can't understand those that would, unless they don't know any better, or don't write professionally so never see the pain points).
Oh yeah, if you are more serious then paying for Adobe Acrobat is a good idea. Beats LibreOffice on functionality and result (although not on price), and is superior to MS Office (although not on price). For really scientific/technical stuff LaTeX is king, and even has easy to use interfaces like LyX (http://www.lyx.org/) to ease use for beginners.
> And that's how you end up with crap applications.
Bullshit. I thought this 'native look n feel' myth had been thoroughly debunked by now by developers in the know. There are plenty of applications with a native look-n-feel that are crap. There are plenty of applications (more, in fact, as time goes by) that don't have native look-n-feel that are thoroughly excellent. Self-consistency and meeting expectations for application type matters far more niceness of integration that just using native widgets.
> Irrelevant. No one has an iPhone with under 32MB of RAM. The existence of devices under 32MB has no baring on the
Totally relevant when the decision was made. And if I accept your argument, then there was no real reason not to allow someone to port Java to the iPad (and later iPhone) except for Apple's corporate politics. Instead Apple have decided to take a totalitarian route (which, incidentally seems to be abused to stop competition more than any supposed benefits of the iron fist). I'm a Apple user and I love their gear but hate their attitude.
> Java applications on OS X often can't even get text boxes right - the shortcut keys for navigating in a text field are different to every other application that the user uses on the platform - and things like menu layouts are also unconventional.
This I agree with. However, don't throw the baby out with the bathwater, Apple did have the leeway over their own VM to fix it - after all, they insisted on maintaining their own VM than letting Sun (and now the community with OpenJDK) sort it out. What I'm trying to point out was that it is Apple's policies that are preventing Java from working on iOS (and Java could be made to be great on that platform - the problem is not the technology, it is the evil gatekeeper).
With regard to Mono. That's a non-argument since the .NET libraries are not intended to be cross-platform. What I'm trying to say is that Apple is against cross-platform, and cross-platform is good. Disagree?
> The egocentricity seems to be more on your part, deciding that Apple needs to pay to have the runtime for your favourite language ported to their platform.
Apple don't have to pay for anything - that is just the apologies of a fanboi. All they would have to do is get out of the way and let the community sort it out (OpenJDK manages to get a lot of places without Microsoft or Linus funding anything). iOS is not really that much different to OS X after all. Do you really think that if Apple got out of the way that the community would have the inability to make a good Java version for iOS?