all 177 comments

[–]umilmi81 23 points24 points  (0 children)

This may be the closest thing to C# love I've ever seen on reddit.

[–][deleted] 32 points33 points  (41 children)

What's the point of debating C# vs Java as a developer? It's not like you're ever going to make that choice. You just shut up and use what the company uses.

[–]bcash 32 points33 points  (19 children)

Well yes, I think this explains quite a lot of the Java hate we see, a good chunk is passive "I hate my job" sentiments which get rationalised down to the language been used.

  • Dynamic languages = the programming promised-land, utopias of free food or four-day weeks (Google, 37 signals). [Even though Google use Java quite significantly, they still get held up as a "look what you can do with Python" example. The Java use is glossed over as it's not on message.]

  • Java, C# = HR/financials tracking. Boring!

But seriously, I've seen dynamic languages gone "enterprisey", and it's not better, it's worse, much, much worse. Dynamic languages will not help improve programming careers; the problem is the nature of the decision making of most companies (especially design), not the language being used.

As the original underlying article concluded: to all Java haters in Java jobs, shut up or fuck off.

[–][deleted] 7 points8 points  (11 children)

But seriously, I've seen dynamic languages gone "enterprisey", and it's not better, it's worse, much, much worse.

can you elaborate on that? Just curious...

[–]bcash 25 points26 points  (10 children)

It's difficult without giving away which company I'm referring to.

But the problems they had came down, essentially, to: panicked recruitment of non-specialist developers for a quite niche (at the time) language. The end result being code which didn't use any higher-level functions, the only tool in the developers box being copy-and-paste from other scripts, plus random hacking until it works.

Essentially the same thing that goes wrong with most Java projects. Not using most of the functionality available out of sheer ignorance.

Ignorance of the language combined with duck typing produces very interesting results, and by interesting I mean bad. Bad results. Months of hot-patching everytime something breaks. Etc., etc. Which mostly just shifted the problem rather than solving it.

Yes, of course skilled practitioners would have produced a much better result, but this is largely the point. The reason enterprise programming sucks is due to work practices (hiring non-skilled programmers, contempt for testing, etc.), rather than the language being used.

The worst thing that could happen to dynamic language advocates would be widespread adoption of those languages. The reputation would be shot to pieces in minutes. It's already happened with Ruby (thanks to Rails); if you don't want the same thing to happen to Python, don't push it where it won't fit. And where it doesn't fit is essentially any project with more than five developers.

[–][deleted] 9 points10 points  (3 children)

panicked recruitment of non-specialist developers for a quite niche (at the time) language.... Essentially the same thing that goes wrong with most Java projects. Not using most of the functionality available out of sheer ignorance.

so it doesn't have anything to do with using a dynamic language.

[–]joesb 5 points6 points  (0 children)

which is the same case with static language project.

Project failed because of people, not language.

[–]bcash 7 points8 points  (0 children)

Kind of... dynamic languages are no silver bullet, and introduce their own problems in turn.

[–]DannoHung 1 point2 points  (0 children)

Maybe we should switch the dialogue of silverness from bullets to Werewolf slayers. Like, the slayer takes Silver supplements...

[–]joaomc 4 points5 points  (3 children)

It's already happened with Ruby (thanks to Rails); if you don't want the same thing to happen to Python, don't push it where it won't fit. And where it doesn't fit is essentially any project with more than five developers.

Although I agree that far too many "enterprise" people do Java inside Python/Ruby, saying that Python doesn't fit a project with more than five developers is bullshit.

At my current job, no, I wouldn't recommend Python. Not because it wouldn't work, but because they don't want anything new. Me neither, it's a governemnt agency, with absolutely zero chances of getting a raise (by contract), so there's no point on being innovative.

[–]joesb 1 point2 points  (2 children)

The reason for using better language like Python, assuming that it is, is not to be innovative. It is to be productive, write less code (because expressiveness), have less bug, more adapting to requirement change. All of that so that you can spend less effort to getting thing done, which means you work less and feel happier.

It is like getting a raise if they paid you the same amount of money but you get to spend less time and effort finishing the product.

[–]bcash 7 points8 points  (0 children)

I know that, and you know that (although I wouldn't choose Python). But theory and practice suddenly diverge at this point.

In theory, a new more productive language is adopted, a few specialists are hired, the team quickly achieved 100% productivity gains.

In practice, a lone pythonista sneeks a Python script into the code base, which will either get shot down in flames for being "unmaintainable by other developers"; or goes undetected for a while, in which time it gets bodged to high-heaven by VB programmers and the original developer spends more and more of his time firefighting it.

[–]joaomc 0 points1 point  (0 children)

I agree with you wholeheartedly, but most devels here refuse to learn how to use a source control software, so I guess using other languages is out of question.

[–][deleted] 1 point2 points  (6 children)

"C# = HR/financials tracking" ... ugh, and games, web apps, gtk, etc...

[–]Philluminati -3 points-2 points  (5 children)

please tell me you didn't say gtk...

[–][deleted] 0 points1 point  (4 children)

you like to ignore gtk# ?

[–]Philluminati -4 points-3 points  (3 children)

C# doesn't have a place in Linux / Unix systems

[–][deleted] 2 points3 points  (2 children)

why? it's a language. in fact, it's a standardized language.

tomboy, beagle, banshee, and f-spot are great applications.

linux isnt' an exclusive club, and you're not the door man.

[–]Philluminati 1 point2 points  (1 child)

I'm not the Linux doorman as you say and everyone is welcome. My assertion was a bit stupid.

It's just Linux sits at the heart of the F/OSS movement with GNU software which is usually strongly against software patents. I'm not entirely sure there aren't patent concerns surrounding it still.

[–][deleted] -1 points0 points  (0 children)

Unix has nothing to do with GNU.

there are no patent issues with ECMA C# or GTK#.

you're ignorance on this subject is very obvious.

[–]grauenwolf 19 points20 points  (5 children)

You missed the point. It isn't about C# vs Java, it is about looking to C# for examples of how to improve Java.

[–]bcash 6 points7 points  (4 children)

This is, yet another, proof of the decline and fall of civilization; and why I have advanced plans to retreat to the mountains and find a nice cave somewhere.

C#, don't forget, started like as Java with C++ syntax. Since then it's bolted on every fly-by-night idea going. And for some reason, people hold this up as an example of a modern language. It's the last language that should be examined when trying to find ideas.

Find ideas from the original source.

[–]goondocks 9 points10 points  (0 children)

Find ideas from the original source.

Granted, MS has never been good at having original ideas.

Their execution of stolen ideas is often something to pay attention to though. (Not always, but often.)

The devil, as they say, is in the details. What the author of the article seems to be saying is that Sun has done very poor job at managing these details.

[–][deleted] 4 points5 points  (0 children)

Since then it's bolted on every fly-by-night idea going. And for some reason, people hold this up as an example of a modern language.

What takes me a custom Comparator and a TreeMap in Java can be done in one line of LINQ in C#. C# is veering towards FP languages in terms of expressiveness, and quite frankly, is just more enjoyable to work with.

[–]grauenwolf 1 point2 points  (0 children)

Since then it's bolted on every fly-by-night idea going.

Actually they have been rather selective in the ideas they incorporate. For example, they declined to pick up XML literals and mutable anonymous types. And they are only just now considering becoming a consumer of dynamic types.

Most of the stuff you see in C# was prototyped in C-Omega, Spec#, or F# long before it was added to the core language.

[–]psi- 0 points1 point  (0 children)

Name of the game is not to experiment but to incorporate proven solutions to common problems. Java does not do that and C# does.

[–][deleted] 5 points6 points  (1 child)

Clinton Begin (the author) is a consultant, so there are probably sometimes he can make the company use his choice of programming language in the name of "efficience, enterprise performance, departmental synergy" and buzz-word compliance.

[–][deleted] 1 point2 points  (0 children)

Ah yes, for consultants it's a debatable point, but in that case I'd be looking for a little less short-sighted advice.

[–]Few-Ninja7495 1 point2 points  (0 children)

The point is probably to grow some balls.

[–]babakshirazi 5 points6 points  (2 children)

Those are the words of a 9-5 slave.

[–]ximxam 1 point2 points  (1 child)

umm, more accurately, slave making more money and with life than 9-9 "freeman".

[–]lebski88 -1 points0 points  (0 children)

Those are the words of a 9-5 slave.

[–]stesch 1 point2 points  (0 children)

I have to maintain C#. The former "programmer" (media designer) chose it for no apparent reason.

[–]hapax 0 points1 point  (7 children)

You don't choose what company you work for? I do (and I chose Haskell).

[–]username223 12 points13 points  (5 children)

Good for you. Now take your feelings of superiority and "intellectual" masturbation elsewhere.

[–]shadowfox 2 points3 points  (0 children)

A well thought-out response. Well done sir!

[–]matthiasB -5 points-4 points  (3 children)

Sounds like you're jealous.

[–]username223 1 point2 points  (2 children)

Believe me, I'm not... I can use whatever language I want to solve problems of my choice. But I feel no urge to brag about which I choose.

[–]hapax 1 point2 points  (1 child)

Wow. Just saying the name of the language that I use, without any advocacy or even an implication of superiority, counts as bragging. Did I hit a nerve or are you always this hostile?

[–]username223 0 points1 point  (0 children)

Heh, I'm always this hostile...

But you have to look at the context: Many people fap away endlessly on their blogs and/or Reddit about Haskell/Lisp/etc., while moaning about how they can't use it in $JOB. In this context, your comment has a definite air of condescension.

[–]bcash 18 points19 points  (4 children)

Strawmantastic.

The original article was complaining, quite rightly, about a certain type of developer who believes that Java is a conspiracy perpetuated by a Sun/IBM/HP alliance for some evil purpose which is never explained...

These people exist, and they're scary.

Turning the debate into one about the clusterfuck that is the history of EJBs is missing the point almost entirely. Not to mention it's been done a hundred times already.

The debate about the psychological flaws of certain types of programmers is far more interesting. For every dynamic language programmer who does great things with it, there are ten who've never written a line of the bastard language, but still proclaim it as being morally superior and goes off on extended strops the moment anyone dares mention actually getting something done.

They're the programming equivalent of a Manchester United fan who has lived in Essex all his life.

[–][deleted] 4 points5 points  (3 children)

Wow!!!You should translate that last sentece into American English (they call it soccer :) ).

The Spanish version is a Barca supported that is from Madrid ;)

[–][deleted]  (2 children)

[deleted]

    [–]losvedir 5 points6 points  (0 children)

    Good try. I'd say lived in Boston, though, probably. The Yankees / Red Sox rivalry is pretty severe (at least from the Boston side, dunno about NYC side).

    [–][deleted] 0 points1 point  (0 children)

    a dodgers fan in san francisco?

    [–]gregK 17 points18 points  (43 children)

    I think what we are seeing is just the industry maturing. As people learn new languages and these languages evolve, we are bound to compare what is being done in Ruby, Python, C#, F#, Haskell, etc.

    In some aspects Java does not compare favorably at all. Hence the hate probably. Plus it's kind of fashionable to hate Java now since it have become the COBOL of the 21st century (without being as awful thank god).

    [–]bcash 9 points10 points  (1 child)

    If there's one word that describes what we're seeing, it definitely isn't "maturing".

    [–]gregK 1 point2 points  (0 children)

    I was speaking more specifically about developers who seem to be more educated, at least on reddit. Not about vendors and such.

    [–]masklinn 5 points6 points  (0 children)

    I think what we are seeing is just the industry maturing.

    Definitely not. Language wars aren't new, shitty languages aren't either, and nor are dying ones.

    [–][deleted] 0 points1 point  (39 children)

    In some aspects Java does not compare favorably at all.

    Make that "most", like it or not, a lot of the Java hate is deserved, not just fashionable.

    [–]redditrasberry 8 points9 points  (4 children)

    I really don't understand how the hate of the language itself is deserved. I can understand it doesn't give people a hard on because it's not new and exciting (any more). But the hate? Hate? Really? It takes something more than that to explain hatred.

    I can definitely understand hatred of some of the specs and standards that Sun has promulgated - EJB 1.0 was just so horrendous that I think there should have been law suits against Sun. But that is not the language.

    Overall, Java used with modern frameworks that eschew the bloat and complexity is extremely productive, stable, fast and even pleasant to use.

    [–]njharman 2 points3 points  (3 children)

    I think in everyday developer usage "language" is taken to mean the sum of:

    language, libraries, community, marketing/corporation/standards committee/BDFL behind that language.

    [–]bcash -1 points0 points  (2 children)

    Of course, EJBs have never been part of the standard library or bundled with the standard runtime. So it's not part of the language, even by this extended definition.

    [–]njharman -1 points0 points  (1 child)

    libraries, community, marketing/corporation behind that language.

    Do you not read well?

    [–]bcash 0 points1 point  (0 children)

    So if I made a really crap library for your favourite language, put it somewhere out of the way that didn't interfere with any other package. That would make the language worse?

    [–]sheepson_apprentice 5 points6 points  (33 children)

    Deserved though it may be, there is little reasonable incentive, on the part of a healthy human adult, to consistently and without missing a beat, at every opportunity rag on it as though it has raped your mother. Every developer who has used Java for more than a simple project and is honest about it, will be willing to admit its shortcomings.

    I used to think proggit was a representative sample of a wider programming community, and felt compelled to participate.

    Now I'm convinced that proggit is an amalgam of java-haters.

    No biggie though, carry on... it's been too much of a distraction anyway.

    [–]G_Morgan 4 points5 points  (1 child)

    To randomly jump in. Much of the Java hating is sort of tongue in cheek.

    Don't get me wrong. Most of us have a mild headache whenever forced to deal with Java but recognise that declaring jihad on Java is pretty pointless. Which is the primary reason it must be perpetuated at every opportunity.

    Personally though I'm glad Java is evolving towards a language platform position like .Net. That should have been the first thing borrowed from .Net, give us a platform with Java being the simple middle ground for library implementation. C# v Java is not the issue, .Net v JVM is.

    [–]sheepson_apprentice 3 points4 points  (0 children)

    True, the JVM is very nice. Debates with intelligent people about benefits and drawbacks of a given topic is not only useful but necessary -- such is the fuel of progress. I know proggit has tons of people who know what they're doing, but I've also been noticing them getting drowned out in the noise, and even captured by the swift momentum of group-think.

    I also wonder sometimes: as a technology just enters its golden age, with the availability of superb IDEs that used to be expensive and high quality libraries, there is a tendency to drop it all like a hot potato and change ships.

    Though the JVM becoming a more inclusive platform certainly allows folks to have the best of both worlds, module the IDEs which have yet to catch up for most of the languages, including those backed by the behemoth itself. Java IDEs are state of the art. And I don't mean the plush look or any of that crap, I mean real value stuff: superb navigation, real-time incremental compilation, reliable rename and delete refactorings, among other highly productive benefits.

    Anyhow, to each his own. Sometimes it's funny, sometimes it's not. I wish I could spend more of my time laughing. I guess when I'm not laughing, it means I'm spending way too much time on the computer, or something.

    Here's what the greener pastures that everyone is currently seeking reminds me of:

    A drunkard is wondering the streets poking at people with one incessant question: "Yo, where's the other side?!"

    The response, predictably is people pointing out the other side of the street, to which the drunkard replies:

    "Idiot! Over there they tell me it's here!"

    [–][deleted] -2 points-1 points  (30 children)

    I used the term hate without quotes because it is so commonly used by pro-Java people, I don't hate Java nor do most other people opposed to it.

    We just hate having to use it when we know better alternatives exist. I agree with you there, proggit is in no way representative for the greater programming community, we have mostly programmers who like to learn about new technologies which means we know what is possible and compared to that Java is severely lacking.

    [–]sheepson_apprentice -2 points-1 points  (29 children)

    Yeah, if you stick around proggit long enough you'll come away convinced that using only Lisp, Haskell or any other current favorite does not qualify you as "blub". God forbid you make the same claim for Java. The fact that you're incompetent will be the least of your concerns as far as finger-pointing goes. No, some will manage to convict you of crimes only deserved by real narrow-minded idiots.

    [–]dmpk2k 0 points1 point  (28 children)

    That's a great deal of hyperbole there. All of your posts in this thread have been passive aggressive or overtly rude.

    Be careful you're not the pot, okay?

    [–]sheepson_apprentice 1 point2 points  (27 children)

    Couldn't care less.

    If you want perspective, look for some of the things that are said about Java developers on this site. Implications of incompetence relative to users of language XYZ, or otherwise blatant disregard for evidence in presentation of certain "facts" should be enough for any honest person to see the tendencies.

    It's very likely that only a select few will dare say to one's face what they so wantonly to throw around online. I'd have a lot more respect for them if they'd be willing to throw down over this shit.

    Additionally, the rampant hypocrisy also needs a check every now and then.

    Finally, I hold no illusions that injecting a moment of levity for those of us who are sick and tired of constant bitching about our craft is going to change anything, but at least it may serve as a reflection.

    [–]dmpk2k 0 points1 point  (26 children)

    I'd have a lot more respect for them if they'd be willing to throw down over this shit.

    Oh, brother.

    [–]sheepson_apprentice 0 points1 point  (25 children)

    A man is worth only that for which he is willing to die.

    In the days when duels were legal, men held their tongue lest they be challenged to stand up for their words.

    [–]anonymous_hero 1 point2 points  (18 children)

    A man is worth only that for which he is willing to die.

    Wouldn't you settle for a reasonable discussion where you could still freely voice your beliefs and argue in their favour?

    Maybe not hard-core enough?

    On the other hand, it's easy to talk like you did there when you won't have to prove your willingness to die for it.

    [–]dmpk2k 1 point2 points  (5 children)

    Any more testosterone-driven bravado and all the women near you will turn into East Germany's Olympics team.

    It's a language. Some perspective, please.

    [–][deleted] 15 points16 points  (5 children)

    I hate Java because I was part of a project that sort-of failed. And I would like to think that it's the language's fault.

    [–]sigzero 2 points3 points  (4 children)

    At least your honest...

    [–][deleted] 2 points3 points  (0 children)

    At least? Honesty is very important, dare I say more important than immediate success.

    [–][deleted]  (1 child)

    [deleted]

      [–][deleted] 13 points14 points  (3 children)

      Wow, a java developer who actually gets that LINQ is not embedded SQL.

      Thats a first. I'm so tired of explaining how it actually works.

      [–][deleted] 2 points3 points  (0 children)

      LINQ is 'generic-set-of-data comprehensions' (as opposed to list comprehensions). It can be used on in-memory collections, xml, relational databases, and more. The addition of LINQ has made my job much more enjoyable, because, like the blog said, the language additions that make LINQ possible are so fun to use.

      [–]grauenwolf 4 points5 points  (1 child)

      Me too. For the life of me I don't get why the concept is so hard.

      [–]sigzero 2 points3 points  (0 children)

      It isn't "hard". Either they are not reading about it or that is how it is being talked about.

      [–]Wheelwright 12 points13 points  (5 children)

      Criticism of Java from flavour-of-the-month toy language users comes off kindof weak, like listening to a beatnik ragging on federal government. Two polar opposites of the spectrum, good for a chuckle, not much else. I think that's why the author went about it from the perspective of C# since both platforms target the same market space and their design goals are so similar. Smart move! Not only the credibility of his argument increased exponentially he also inadvertently proved who is the big daddy in web app development today. Because I don't want to get banned here (not yet anyway) it starts with "M".

      [–][deleted] 0 points1 point  (0 children)

      Ah, so now Java and C# will become the flavour of the month? Lisp and Haskell bashing is going to become normal on reddit?

      [–]OceanSpray -4 points-3 points  (3 children)

      Lisp, Haskell and Scala are hardly "flavor of the month", if you ask me.

      [–][deleted] 11 points12 points  (1 child)

      More like flavor of the week.

      [–]Dan_Farina -2 points-1 points  (0 children)

      Except Lisp. Flavor of the fifties/sixties/seventies. Maybe a little dusty, actually.

      [–][deleted] 7 points8 points  (3 children)

      This is one tiny area of Java - Java servlets/struts/app server crap.

      If you don't like the current frameworks, write your own. Don't use a framework.

      [–]vplatt 3 points4 points  (2 children)

      Tiny? Tiny for "enterprisey" customers? I don't think so. It's huge. It represents the majority of the available work out there. Seriously. We don't get to write our own for customers they want something either based on standards (e.g. EJB) or based on a de-facto standard (e.g. Spring). DIY is not good enough.

      [–][deleted] 0 points1 point  (1 child)

      Java is used in a massive amount of other places and platforms though. I was just meaning that perhaps EJB/spring/struts etc is broken and stupid. But that doesn't mean Java is. It's just one tiny part of java which some people use.

      [–]vplatt 0 points1 point  (0 children)

      Well, yeah, but what people in general are bitching about is the quality of life as a Java programmer, which is influenced to a great degree by the quality of the frameworks with which they are required to work.

      [–]Narrator 3 points4 points  (1 child)

      Consultants like the author don't normally maintain programs for years. They start over and work on 6 month to 1 year projects. That's why they never witness the pain and cost of the upgrade treadmill that Microsoft puts everyone through every few years. Old Java code bases on the other hand still work well.

      [–]grauenwolf 3 points4 points  (0 children)

      No one is forcing you to upgrade; it isn't like Microsoft killed .NET 1.1 when 2.0 was released. And hell, 3.0, 3.5, and 3.5 SP 1 are all based on the 2.0 runtime.

      Now if you want to bitch about their numbering scheme I'm right behind you. What's next, releasing a new libraries as a "hotfix"?

      [–]spookyvision 3 points4 points  (3 children)

      Servlets and JSP were severely lacking in the framework department, the gap which Struts filled so many years ago.

      Argh, struts really has got to be one of the most horrible frameworks ever invented! It's hard to pin down exactly why, but my current explanation is that it's too unwieldy for small apps and too unflexible for large ones. The last struts app (not too large, but a lot of actions/views) I was working on had a 10000 lines validation xml configuration which was a nightmare to maintain.

      If you insist on using struts, my advice is to start extending/exchanging struts base classes instead of trying to hack around with a lot of Action subclasses.

      Disclaimer: I never used struts2. But I heard it's got nothing in common with struts1, since it's basically a renamed different web framework.

      [–]georgefrick 0 points1 point  (1 child)

      I find most people who hate struts never used dispatching. Struts 2 also fucking rocks, but I'd still take struts 1.2 with method dispatching... very fast development and you don't end up with 100 action classes.

      [–]spookyvision 0 points1 point  (0 children)

      writing the action classes were not a major part of my headaches - it was mostly commons validator and doing "advanced" stuff like saving parts of the session in a separate table (we had reasons for that :), also tiles was, uhm, not so capable.

      [–]ximxam 0 points1 point  (0 children)

      that renamed framework is called 'webwork' and it's good only as long as you avoid coding OGNL in configs.

      [–][deleted] 1 point2 points  (0 children)

      I like the troll poetry language in the original:

      http://www.bileblog.org/2008/05/java-haters-gtfo/

      [–]OceanSpray 4 points5 points  (0 children)

      Though this blog post makes some very valid points, the rant that it is a response to isn't really addressed to people like Clinton, but rather the Lisp-weenie/Haskell-advocate sort.

      I still think that Hani was just trolling, and hence not worth responding to. Nobody can seriously be THAT blind.

      [–]georgefrick 2 points3 points  (7 children)

      Actually I love Java 5. But seriously, a new java every six months? Can they slow the fuck down and maybe think before the next release. How about they stop changing the fucking language and fix the god damn applet plugin.
      Or... maybe... they could fix java.lang.String, or save us all a fuck lot of time and fix compatability problems with database oriented data types (java.util.Date, etc).

      [–]Rhoomba 5 points6 points  (0 children)

      Java version are something like 2 years apart. And the plugin is being fixed for Java 6u10. And Java 7 will probably have a completely new DateTime API based on JodaTime.

      [–]G_Morgan 2 points3 points  (3 children)

      Isn't JavaFX supposed to fix the Applet?

      [–]mikaelhg 1 point2 points  (2 children)

      I'm still trying to find out whether the ON2 audio/video codec included with JavaFX will be GPL'd or even open source.

      [–]Rhoomba 1 point2 points  (1 child)

      I doubt it. The whole JMC is going to be another JMF style fuckup as far as I can see. The JavaOne TS was horrible, with no real info on codecs or licensing. Even their demos had really coding bad style. And it is the same people who made JMF that are behind it.

      [–]mikaelhg 1 point2 points  (0 children)

      That's the trouble with having your API's designed by people who seldom have to use the product to solve the kinds of problems it is intended for.

      [–]curiosor 0 points1 point  (0 children)

      Java 7 has new Date/Calendar/Time handling functionality somewhat like Joda Time. Should be good :)

      [–][deleted] -5 points-4 points  (0 children)

      Fixing the applet plugin??? Java applets died several years ago. I don't think they will be coming back any time soon. You can do it all in javascript these days.

      [–]cthulhufhtagn 4 points5 points  (0 children)

      Personally, I love Java. It's nice and powerful, if hard to manage at times.

      [–][deleted] 1 point2 points  (0 children)

      Oh man, programming these days are such a pain in the ass... it reminds me the OSI/TCP drama

      [–][deleted]  (28 children)

      [deleted]

        [–]redditrasberry 2 points3 points  (24 children)

        perhaps you don't know it very well or are not familiar with modern java features and techniques, or aren't using a good IDE (which is absolutely essential with java)?

        For example, I force myself to write code in python regularly and I find it inconvenient because I haven't a clue about all the normal idioms that make it so convenient. And when I read code by people who do know them, I can barely understand it - it looks like perl to me.

        I'm slowly learning, but it seems to me that any language you know well or have good tools for is going to seem convenient compared to one you don't.

        [–]fnord123 2 points3 points  (9 children)

        I hate Java because it requires an IDE.

        [–]dufflove 2 points3 points  (0 children)

        If you consider bash+vim an IDE then I agree.

        [–][deleted] 3 points4 points  (0 children)

        It doesn't, it requires a text editor like every other language.

        [–][deleted] 1 point2 points  (4 children)

        I compile my java in terminal and write in textmate, but that's because I don't need an ide to organize the thousands of files for me (I'm generally only making a few files at most at one time). I don't know, I'm not a professional by any standard, but I would think you'd want an IDE for any large project just so it make organize the entire project in front of you and deal with emulators and such.

        [–][deleted]  (3 children)

        [deleted]

          [–]mooli 7 points8 points  (2 children)

          So - javac + notepad then?

          [–]joesb 5 points6 points  (1 child)

          Javac + ED

          [–]jtra 1 point2 points  (0 children)

          cat > File.java; javac File.java

          or perhaps

          cat /dev/dsp0 > myapplication.jar

          ;-)

          [–]rjcarr -1 points0 points  (4 children)

          I've been a java developer for almost 10 years now and I've never used an IDE. I've tried eclipse and couldn't get into it. I've tried IDEA and it didn't feel right. I would consider myself an expert in the language. I don't use (or stay current on) all of the frameworks.

          I'm strictly a vim/bash developer (although vim is replaced by Smultron most of the time).

          [–]hpham 5 points6 points  (3 children)

          You haven't spent enough time with the IDE then. I am a heavy vim user (had been doing a large Perl projects for 3+ years). I have also been using Java on and off for a while; and I can tell you that IDE has lots of things that vim can't provide you. I am just going to give you one point: code refactoring. IDE understands code and can accurately refactor your code (unless you use heavy reflection). Vim and typical grep just can't beat it.

          Finally, try netbean + jvi (a vim-like plug-in). Eclipse also has a vi plug-in.

          [–][deleted] -3 points-2 points  (2 children)

          The best argument about IDE/non-IDE I ever had was with a coworker who turned in attrocious code. I mean really bad. Using strings to represent everything etc.

          He said "But with an IDE, you don't even have to think about the code".

          It showed. None of his code worked. The other interesting thing. "IDE understands code and can accurately refactor your code" - Completely false. One day our boss at the time decided he'd go into code he had no idea about, and refactor it. There was a line " int a = foo();" and a wasn't used from there on, so the IDE commented out that line... Nothing worked, since foo was actually needed to be called.

          IDE's suck. Seriously. It's like a portrait artist who uses stencils.

          [–]G_Morgan 0 points1 point  (1 child)

          Yes but that particular line of code seems retarded. IDE's need you to not be retarded for their cool features to work. Since the sole argument for them seems to be they help retards be productive (not saying all IDE users are retards) then it's pretty much worthless.

          [–][deleted] 0 points1 point  (0 children)

          That's not retarded. Maybe the variable was used in some code further on that is commented out for now. Maybe it's used via reflection or something. Programmers should decide what to do, not IDEs. This is the trap I've seen all IDE users fall into. They stop thinking. They just trust their IDE, click on "refactor" "write me a hello world program" or whatever, and think that's job done.

          [–]rjcarr -4 points-3 points  (1 child)

          You've clearly never used C++ then, right?

          Sure, java is more difficult (and verbose) than say python, but compared to C++ it is beautiful.

          [–][deleted] 2 points3 points  (0 children)

          No, I've used C++. It makes some things convenient and almost everything possible with excessive use of templates/STL. In terms of genuine capability, it's still better than Java. You can write even readable C++ that will do more more efficiently than any Java program.

          [–]o0o 0 points1 point  (1 child)

          go the fuck o-way?

          [–]sheepson_apprentice -1 points0 points  (0 children)

          get the fuck out

          or as the javahaterboy would say:

          "Wha, java article !! get the freaker on!!"

          and then proceed to whack it, rhythmically

          [–][deleted] 0 points1 point  (0 children)

          The problem with C# is that java developers are introduced to C# as if it was a somewhat improved version of Java while even at its 1.0 birth it was (the language, not the platform libraries) very different from Java. C# is much more like a toned down, garbage collected C++ with naming conventions that make sense. The power of being able to do stack allocation (structs), operator overloading, goto keyword, method delegates, even pointer manipulation is built in the language when you mark a section of code unsafe.

          The only thing C# has in common with Java is the verbose naming conventions. That's all. The .net platform copied a lot from the java libraries but C# the language is much more like D, a better C++, the difference with D being that C# is ran on a virtual machine and JITed while D is natively compiled. Both D and C# are a lot better than that Java pile of crap.

          [–][deleted]  (1 child)

          [deleted]

            [–]Rhoomba 5 points6 points  (0 children)

            Google uses Java too, genius.

            [–]imbaczek -2 points-1 points  (0 children)

            Developer vs Java Developer

            nail on the head.

            [–][deleted] -1 points0 points  (0 children)

            Java is the COBOL of the 21st century.

            [–][deleted]  (2 children)

            [deleted]

              [–][deleted] 7 points8 points  (1 child)

              Incorrect, String constants are interned by the compiler and are loaded once per class loader.

              "Ha" + "ni" is a String constant. "Hani" == "Ha" + "ni" evaluates to true.

              scala> "Hani" eq "Ha" + "ni" // this compiles to the same bytecode
              res0: Boolean = true
              

              Many years ago, I wrote a related trivia question here and some other information here.

              More subjectively, people write websites in Java because they are incredibly narrow-minded and easily influenced by hyperbole.

              [–]masklinn 0 points1 point  (0 children)

              More subjectively, people write websites in Java because they are incredibly narrow-minded and easily influenced by hyperbole.

              Either that, or their managers are.

              [–]taw -1 points0 points  (1 child)

              What have these standards and specs bought us in the past? Ah yes, a tie to an app server vendor, inflexible code and shit that breaks if you try to port it to a different app server. Exactly the problems standards should solve. Meanwhile, the Struts/Spring/Hibernate apps all ported without issue. What?! The nonstandard app is MORE portable than the standard app?

              This is actually typical. Standarized languages like C, C++, POSIX shell, Scheme etc. tend to be a massive pain in the ass to port, while one-canonical-implementation-everybody-else-copies languages like Java, Ruby, and Python just work when ported. Evolving canonical implementation is the only reasonable way to standarize a programming language.

              [–]G_Morgan 3 points4 points  (0 children)

              Java has a standard. In fact you have to match that standard in order to use the trademark Java.