﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Useless Java</title><description>Clayton,
  
You are not a regular reader, it appears.
  
The last time I touched Java was in 1996.
  
  
My main objection was to: "Java is mainly used in Web applications that are mostly fairly trivial"
  
  
You might consider actually reading the post, rather then responding out of habit
</description><link>http://ayende.com/3468/useless-java#comment33</link><guid>http://ayende.com/3468/useless-java#comment33</guid><pubDate>Sat, 02 Aug 2008 21:53:54 GMT</pubDate></item><item><title>Clayton Nash commented on Useless Java</title><description>Christ, it's really annoying to read through these comments - you typify exactly the person the Professor is complaining about. Not once did he say that Java is irrelevant - simply that it's only 5% of what any reasonably competent computer professional should know. I'm sure your Java skill's are l33t and you're amazing bit if that's all you know you're dead in the water pretty shortly. This whole thread comes across as shrill bitching that someone didn't tell you you're a genius.
</description><link>http://ayende.com/3468/useless-java#comment32</link><guid>http://ayende.com/3468/useless-java#comment32</guid><pubDate>Sat, 02 Aug 2008 21:49:43 GMT</pubDate></item><item><title>Akash commented on Useless Java</title><description>Java Technology is even used in the Mission to Mars. critical part of Mars Rover is written in Java.  refer the link below where James Gosling discusses about the role of Java in the Mission to Mars - 
  
http://www.sun.com/aboutsun/media/features/mars.html 
</description><link>http://ayende.com/3468/useless-java#comment31</link><guid>http://ayende.com/3468/useless-java#comment31</guid><pubDate>Fri, 01 Aug 2008 19:23:28 GMT</pubDate></item><item><title>Gabor Ratky commented on Useless Java</title><description>I found this interesting article: http://www.cotsjournalonline.com/home/article.php?id=100261
  
  
my google session came through things like safety critical java, where the GC is simplified and runs on a normal priority thread with a 'deadine monotonic assigned priority', whatever that means.
  
  
and I also found the certification approved by the FAA for avionics software: http://en.wikipedia.org/wiki/DO-178B
  
  
I did not exactly find the requirements on the runtime but 'does not allocate after start-up' makes definitely sense too.
  
  
Interesting topic what we touched on indeed.
  
  
Gabor
</description><link>http://ayende.com/3468/useless-java#comment30</link><guid>http://ayende.com/3468/useless-java#comment30</guid><pubDate>Fri, 01 Aug 2008 16:17:24 GMT</pubDate></item><item><title>Wes commented on Useless Java</title><description>This is funny because I work in the travel industry and we have been replacing applications and systems that were written in C, C++, COBOL, etc. with mostly Java applications.
</description><link>http://ayende.com/3468/useless-java#comment29</link><guid>http://ayende.com/3468/useless-java#comment29</guid><pubDate>Fri, 01 Aug 2008 07:19:09 GMT</pubDate></item><item><title>Casey commented on Useless Java</title><description>Having seen "mission critical" applications, I can assure the nutty professor that many are indeed written in Java and C#
  
  
I suspect he is, like most professors, coming from an extremely isolated and limited viewpoint where he has little real contact with the industry as a whole, and only sees a very small area under his interest.
  
  
The assumption that "mission critical" for example means military type applications and code is foolish ... medical systems are mission critical (patients records being lost or wrongly updated), social care systems are mission critical (vulnerable people not being monitored or taken into care), traffic systems are mission critical (badly coordinated traffic flow systems leads to accidents and potential deaths).
  
  
I am more concerned that he thinks people will find compilers with bugs, and will find hardware critical code. I suspect that is largely due to using languages that are much lower level and more experiemental ... if a lot of these were switched to a higher level mature language like Java or C# ... perhaps his scenarios would matter less.
  
  
  
... and, I once interviewed a guy that wrote some of the code to provide a military air force with targetting and mission data for their aircraft ... the system used a big database to generate XML files, that were then copied to portable hard drives that were then plugged into the aircraft directly. The onboard system that dropped the bomb may well have been in Ada or C++ ... the dodgy code that told it where to drop the bombs most certainly wasn't.
  
  
</description><link>http://ayende.com/3468/useless-java#comment28</link><guid>http://ayende.com/3468/useless-java#comment28</guid><pubDate>Fri, 01 Aug 2008 06:26:22 GMT</pubDate></item><item><title>steven commented on Useless Java</title><description>the professor is an old fool clinging to old ways.
  
just ignore him like you ignore any other old fool ranting on about the 40's to a cashier
</description><link>http://ayende.com/3468/useless-java#comment27</link><guid>http://ayende.com/3468/useless-java#comment27</guid><pubDate>Thu, 31 Jul 2008 23:46:15 GMT</pubDate></item><item><title>Ayende Rahien commented on Useless Java</title><description>Gabor,
  
AFAIK, such apps are forbidden from _allocating_ memory after startup.
  
</description><link>http://ayende.com/3468/useless-java#comment26</link><guid>http://ayende.com/3468/useless-java#comment26</guid><pubDate>Thu, 31 Jul 2008 16:28:06 GMT</pubDate></item><item><title>foobar commented on Useless Java</title><description>Oren and all the other enraged fellas, relax.
  
  
The article is a classic piece of sensational journalism that needs to grab your attention in the first two or three paragraphs lest you start yawning with boredom. The professor elucidated his position on Java with respect to teaching computer programming at universities. He may have a sane and sound point.
  
  
-- Frans Bouma
  
&gt; Btw, I more and more hear that .NET loses momentum to Java 
  
&gt; in the enterprise world, (i.o.w.: java is coming back).
  
  
Hmm, Frans, I take your words at face value, i.e. you hear, it may not be your position. Next time, you hear such blasphemy pronounced, refer your interlocutor to the TIOBE Index. Have him/her compare the grahps of Java and C# tracking the languages for the last six years.
  
  
As the nefarious professor intimates, Java developers seem to be doomed. :-)
  
  
Java
  
http://www.tiobe.com/index.php/paperinfo/tpci/Java.html
  
  
C#
  
http://www.tiobe.com/index.php/paperinfo/tpci/C_.html
  
  
</description><link>http://ayende.com/3468/useless-java#comment25</link><guid>http://ayende.com/3468/useless-java#comment25</guid><pubDate>Thu, 31 Jul 2008 14:47:58 GMT</pubDate></item><item><title>Gabor Ratky commented on Useless Java</title><description>Let's not forget that by US law, life-saving, critical applications CANNOT be developed in any language that has undeterministic memory management (a.k.a GC). Won't look it up but that's a pretty well-known fact that you won't be seeing respirators and MRIs written in managed languages. ;)
</description><link>http://ayende.com/3468/useless-java#comment24</link><guid>http://ayende.com/3468/useless-java#comment24</guid><pubDate>Thu, 31 Jul 2008 14:18:04 GMT</pubDate></item><item><title>Mendelt Siebenga commented on Useless Java</title><description>He's seriously missing the boat here. Consistently mixing up complex applications and reliable applications.
  
  
And he has probably never understood the difference between accidental and intentional complexity. Reducing the first (by using a managed language like java) can enable you to increase the last. Every program is complex when you use C... :-)
  
  
The "professor" is clearly still living in the '70's
</description><link>http://ayende.com/3468/useless-java#comment23</link><guid>http://ayende.com/3468/useless-java#comment23</guid><pubDate>Thu, 31 Jul 2008 07:23:40 GMT</pubDate></item><item><title>firefly commented on Useless Java</title><description>Mil Spec sometimes doesn't mean much at all. Lot of those craps are actually seriously old technology, some of it still buggy. Some people just assume that it's conform to some Mil-spec it must be good. In reality a lot of time they are getting the lowest bidder to do the job and they are just as horrible as any other system out there. It's all depend on who is working on it. A spec itself is pretty worthless...
  
  
Regarding the interview question it's all basic troubleshooting technique. Reduce the problem to a smaller test case, process of elimination.
</description><link>http://ayende.com/3468/useless-java#comment22</link><guid>http://ayende.com/3468/useless-java#comment22</guid><pubDate>Thu, 31 Jul 2008 04:56:20 GMT</pubDate></item><item><title>Al commented on Useless Java</title><description>Hi have work on Military Aerospace applications using Ada, Fortran (yes, it's stilla round :-/ ) and C, as well as VB6 and .NET for prototyping interfaces and I know that some of the other projects used Java interfaces for interaction with these systems (console, not aircraft) and now am in the public sector coding purely in C# and to be honest, I don't think that one is better than the other and agree wholeheartedly that this professor is nothing more than a pretentious pr!ck that is very sure of his own importance.
  
What he says is in-part true, however he's throwing it completly out of context.
  
Ada is used in (primarily) military applications because it is a Mil-Spec language! It was design for just that. You would have no hope of writting a business application using Ada!
  
Java and .NET were not built for military applications, so why even try to adapt them to it if there are tools designed for just that?
  
I'm sure he'd be much less assured of the "simplicity" of Java or .NET if his bank balance was nulled after a C programmer forgot to clean up some stray memory pointers!
  
I've run in to many hard-core C programmers who belittled anyone who did not speak ASM and I have had the pleasure of putting them in their place after showing them we could develop something as reliable (if not more so) in less time, using less resources.
  
  
A good story about someone who thought just like this can be found on the daily WTF http://thedailywtf.com/Articles/That-Wouldve-Been-an-Option-Too.aspx
  
  
Just my two cents.
</description><link>http://ayende.com/3468/useless-java#comment21</link><guid>http://ayende.com/3468/useless-java#comment21</guid><pubDate>Thu, 31 Jul 2008 01:53:51 GMT</pubDate></item><item><title>Ayende Rahien commented on Useless Java</title><description>Joshka,
  
I have found several compiler bugs, and I wasn't particularily trying
</description><link>http://ayende.com/3468/useless-java#comment20</link><guid>http://ayende.com/3468/useless-java#comment20</guid><pubDate>Thu, 31 Jul 2008 00:46:11 GMT</pubDate></item><item><title>Joshka commented on Useless Java</title><description>Advice on how to correctly answer both of those interview questions comes straight from the book Pragmatic Programmer: "'Select' isn't broken" is an allusion to the fact that "it is rare to find a bug in the OS or the compiler, or even a third-party product or library. The bug is most likely in the application."
</description><link>http://ayende.com/3468/useless-java#comment19</link><guid>http://ayende.com/3468/useless-java#comment19</guid><pubDate>Wed, 30 Jul 2008 23:49:26 GMT</pubDate></item><item><title>Bruno Fiorentino commented on Useless Java</title><description>  
Some people think they are heroes by having some professional experience with C and/or assemply. They "don´t like" JAVA(or C#), but sometimes they can´t describe what the JIT compiler does -- or understand general managed enviroment behavior. It´s ignorance. JAVA is not guity for unawareness of computer architecture.
  
  
</description><link>http://ayende.com/3468/useless-java#comment18</link><guid>http://ayende.com/3468/useless-java#comment18</guid><pubDate>Wed, 30 Jul 2008 20:22:08 GMT</pubDate></item><item><title>Jeff Tucker commented on Useless Java</title><description>I read the same article yesterday.  Here's my take on it and it's remarkably similar to yours:
  
  
http://agilology.blogspot.com/2008/07/teaching-java-in-school-is-just-as.html
  
  
</description><link>http://ayende.com/3468/useless-java#comment17</link><guid>http://ayende.com/3468/useless-java#comment17</guid><pubDate>Wed, 30 Jul 2008 20:19:51 GMT</pubDate></item><item><title>Peter Seale commented on Useless Java</title><description>I'm just here to let you know that the programming.reddit.com thread for the linked "Anti-Java" article is at 400+ comments now:
  
  
http://www.reddit.com/r/programming/comments/6tzd1/the_antijava_professor_and_the_jobless_programmers/
  
  
if you're reading the comments here, you may find the reddit comments similarly enlightening.
</description><link>http://ayende.com/3468/useless-java#comment16</link><guid>http://ayende.com/3468/useless-java#comment16</guid><pubDate>Wed, 30 Jul 2008 19:17:25 GMT</pubDate></item><item><title>George Spofford commented on Useless Java</title><description>Page 1: The reason: students’ reliance on Java’s libraries of pre-written code means they aren’t developing the deep programming skills necessary to make them invaluable.
  
  
Page 3: Realize that “copying” code has value “It’s interesting when you think that the message that we give to students is: ‘You must do this all on your own, you mustn’t borrow anything from anyone else.’ And then we put them in a real industry situation and the message suddenly turns to, ‘Reuse code as much as you can.’ Real life programmers get good at using chunks of other people’s code."
  
  
My personal path was to understand hardware and machine code first, then high-level language. Worked well for me, but I'll never be able to truly evaluate trying a different path.
  
</description><link>http://ayende.com/3468/useless-java#comment15</link><guid>http://ayende.com/3468/useless-java#comment15</guid><pubDate>Wed, 30 Jul 2008 18:55:31 GMT</pubDate></item><item><title>Mike Moore commented on Useless Java</title><description>He does not think that Java is only suitable for simple web programming. Read the article and his paper again.
</description><link>http://ayende.com/3468/useless-java#comment14</link><guid>http://ayende.com/3468/useless-java#comment14</guid><pubDate>Wed, 30 Jul 2008 18:44:33 GMT</pubDate></item><item><title>Ayende Rahien commented on Useless Java</title><description>Mike,
  
It is not all that is suitable for, which is what he think it is
</description><link>http://ayende.com/3468/useless-java#comment13</link><guid>http://ayende.com/3468/useless-java#comment13</guid><pubDate>Wed, 30 Jul 2008 17:47:02 GMT</pubDate></item><item><title>Mike Moore commented on Useless Java</title><description>But Java _is_ suitable for simple web programming. (Its also suitable for over-engineering business applications.) It can be used for mission-critical applications, if only used by _skilled_ developers. This isn't about a particular computer language, its about what _isn't_ being taught in college.
</description><link>http://ayende.com/3468/useless-java#comment12</link><guid>http://ayende.com/3468/useless-java#comment12</guid><pubDate>Wed, 30 Jul 2008 17:21:15 GMT</pubDate></item><item><title>Frans Bouma commented on Useless Java</title><description>That you could bring up the energy to read the entire article! I read the first paragraph and some of the idiot's remarks and had enough. 
  
  
Mike: I even disagree with that point. At universities, a language is used as a TOOL to teach the material, like OS design, system engineering etc. if a student only stares at the code written and not at what is taught, that student won't get it, regardless if the material is taught using another language. 
  
  
Btw, I more and more hear that .NET loses momentum to Java in the enterprise world, (i.o.w.: java is coming back). 
</description><link>http://ayende.com/3468/useless-java#comment11</link><guid>http://ayende.com/3468/useless-java#comment11</guid><pubDate>Wed, 30 Jul 2008 17:20:11 GMT</pubDate></item><item><title>Ayende Rahien commented on Useless Java</title><description>You are missing the point. The point is that calling Java a language suitable for "simple web programming" is a gross ignorance on his part.
  
</description><link>http://ayende.com/3468/useless-java#comment10</link><guid>http://ayende.com/3468/useless-java#comment10</guid><pubDate>Wed, 30 Jul 2008 16:57:23 GMT</pubDate></item><item><title>Mike Moore commented on Useless Java</title><description>Wow, I really don't understand why so many are so upset by this. Go read the original paper, I'll wait.
  
  
http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html
  
  
The point is not that you can't use Java (or C#) to build critical systems, but that you won't _learn_ how if you _only_ learn Java (or C#). You have to learn how the computer works first. This has almost nothing to do with computer language choice!
</description><link>http://ayende.com/3468/useless-java#comment9</link><guid>http://ayende.com/3468/useless-java#comment9</guid><pubDate>Wed, 30 Jul 2008 16:47:13 GMT</pubDate></item><item><title>dotmad commented on Useless Java</title><description>I recently wrote a post regarding something similiar written by Jeff Atwood few days ago:
  
http://il.dotmad.net/archive/2008/07/29/there-are-some-things-a-good-developer-is-not-required-to-know.aspx
</description><link>http://ayende.com/3468/useless-java#comment8</link><guid>http://ayende.com/3468/useless-java#comment8</guid><pubDate>Wed, 30 Jul 2008 16:02:06 GMT</pubDate></item><item><title>Mihailo commented on Useless Java</title><description>Real programmers use only 2 keys: 1 and 0.
  
  
I guess it would be peace of cake for him to build fully functional trivial web application (internet banking?) in assembler. Yeah, throw in a browser as well, just for fun. He would probably do it before deadline and under budget.
</description><link>http://ayende.com/3468/useless-java#comment7</link><guid>http://ayende.com/3468/useless-java#comment7</guid><pubDate>Wed, 30 Jul 2008 15:55:35 GMT</pubDate></item><item><title>pmlarocque commented on Useless Java</title><description>haha, totally agree with you.
  
  
Biggest problem with guy like him, and my university by the way, is that they are totally disconnected from the business side of our profession. My university was teaching software enginering in a manner to apply it to the scientific side of the profession. But when you start seeking for a job maybe 2% to 5% of the offers are in scientific fields (in my area is even lower then that). The rest is all about application for management where higher level language provide productivty which is an important factor to consider.
  
  
Anyways for me a strong understanding of C/C++ and low level concept is crucial, but I really see the route from High Level language to low level language as a better way to learn. For now they tend to make you learn the other way around.
  
  
</description><link>http://ayende.com/3468/useless-java#comment6</link><guid>http://ayende.com/3468/useless-java#comment6</guid><pubDate>Wed, 30 Jul 2008 15:50:32 GMT</pubDate></item><item><title>Bunter commented on Useless Java</title><description>For these kind of professors "mission critical" almost always means hard real-time systems involving risks to human lives. Money is more abstract  and secondary thing for them. I used to have AI professor at university who always divided software universe into these kind of systems and "standard business data processing software" he had utterly disrespected for lacking any kind of scientific background. Because that's what these kind of professors are - scientists and not engineers. Engineers they hire always work on the border of doing computer engineering and computer science. They don't find any pleasure of daily software development as it is too much craftsmanship and more of the art than working based on proved mathematical models.
</description><link>http://ayende.com/3468/useless-java#comment5</link><guid>http://ayende.com/3468/useless-java#comment5</guid><pubDate>Wed, 30 Jul 2008 15:46:40 GMT</pubDate></item><item><title>Ryan Lanciaux commented on Useless Java</title><description>I was annoyed by that too. I partially agreed with him that it seems some colleges are dumbing down the curriculum but that's about where my agreement ended. 
  
  
His argument would seem more compelling if he didn't make profit from promoting Ada -- http://www.adacore.com/home/company/exec_team/. My opinion is that it's important to know the concepts he mentions (and not just knowing how to use libraries) but outside of school/learning use whatever language is best suited for the task at hand.
</description><link>http://ayende.com/3468/useless-java#comment4</link><guid>http://ayende.com/3468/useless-java#comment4</guid><pubDate>Wed, 30 Jul 2008 15:35:12 GMT</pubDate></item></channel></rss>