The Artima Developer Community
Sponsored Link

Java Community News
Should We Strive to Only Have One Language in Our Development Efforts?

60 replies on 5 pages. Most recent reply: Aug 30, 2007 8:18 AM by nes

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 60 replies on 5 pages [ « | 1 2 3 4 5 | » ]
James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:24 AM
Reply to this message Reply
Advertisement
> > Also, calling anyone who doesn't believe in the
> absolute
> > superiority of C++ names makes your claims of bigotry
> hard
> > to swallow.
>
> I have never said anything of sorts.
>
> > http://steve.yegge.googlepages.com/tour-de-babel
>
> Quote from the article: "C++ is dumb, and you can't write
> smart systems in a dumb language."
> The statement says way more about the author then about
> C++.

You are doing it again. You haven't said anything about the arguments that he made. You dismiss him entirely because he doesn't agree with you.

> > The comment about free() is in the second one.
> > http://www.jwz.org/doc/java.html
>
> This link is broken. So, I guess, we can't learn how
> free() makes C++ bad.

Works for me. There's also a link to it int the first article.

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:28 AM
Reply to this message Reply
> But C++ does not have garbage collection, so my

What I meant was availability of garbage collection for C++, so my statement should have been "C++ had garbage collection available ..." (italicized word added). But that's nitpicking. Indeed, speaking of C++ strictly as a as a language, it does not have GC. But neither does Java language. It is the Java platform, JVM, that comes with GC.

The initial statement I was referring to was speaking of "memory management" inferiority of Java compared to C/C++. And the point I was trying to make was that memory management is larger issue than Java-like GC, which tends to be perceived as a "silver bullet" by many people because it was touted as such by large marketing machines. Specificaly, in my opinion, Java finalization is inferior solution than C++ - like RAII.

I am sorry for the "mirror" comment. It was sarcastic and out of line. I said it because I read your initial comment as denying the availability of GC for C++.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:31 AM
Reply to this message Reply
> Quote from the article: "C++ is dumb, and you can't write
> smart systems in a dumb language."
> The statement says way more about the author then about
> C++.

Did you read the rest of the paragraph? The meaning is quite different from what it appears when you quote it out of context.

The point I am trying to make is that throughout this thread, you've made nothing but ad hominem arguments about anyone doesn't agree with you about C++.

Nemanja Trifunovic

Posts: 172
Nickname: ntrif
Registered: Jun, 2004

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:33 AM
Reply to this message Reply
> > > The comment about free() is in the second one.
> > > http://www.jwz.org/doc/java.html
> >
> > This link is broken. So, I guess, we can't learn how
> > free() makes C++ bad.
>
> Works for me. There's also a link to it int the first
> article.

Does not work for me either, and I tried it with IE and FF. Maybe it is smart enough to recognize the C++ programmers and filter them out? :)

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:38 AM
Reply to this message Reply
> > But C++ does not have garbage collection, so my
>
> What I meant was availability of garbage collection for
> C++, so my statement should have been "C++ had garbage
> collection available ..." (italicized word added).
> But that's nitpicking. Indeed, speaking of C++ strictly as
> a as a language, it does not have GC. But neither does
> Java language. It is the Java platform, JVM,
> that comes with GC.

Garbage Collection is inherently part of Java. There are many references to garbage collection in the language specification.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:44 AM
Reply to this message Reply
> > > > The comment about free() is in the second one.
> > > > http://www.jwz.org/doc/java.html
> > >
> > > This link is broken. So, I guess, we can't learn how
> > > free() makes C++ bad.
> >
> > Works for me. There's also a link to it int the first
> > article.
>
> Does not work for me either, and I tried it with IE and
> FF. Maybe it is smart enough to recognize the C++
> programmers and filter them out? :)

The title of the article is: "java sucks."

The comment about free is in a section called "First the good stuff:"

"Java doesn't have free().

I have to admit right off that, after that, all else is gravy. That one point makes me able to forgive just about anything else, no matter how egregious. Given this one point, everything else in this document fades nearly to insignificance.

But..."

Of course, I never posted these to prove why C++ is bad or anything. I posted them as examples of people who think Java is better than C++ and are not Java loving bigots or Sun marketing shills.

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:47 AM
Reply to this message Reply
> You are doing it again. You haven't said anything about
> the arguments that he made. You dismiss him entirely
> because he doesn't agree with you.

Not at all. I dismiss him because he does not understand that his "mountain of poop" is not because of C++. It's because such things can be (and are) grown in any language. But his point is that "It's all C++'s fault. Don't argue. It is. We're using the dumbest language in the world.". He likes Lisp. I'm fine with that. I (like it (do not)), though ;-).

> Works for me. There's also a link to it int the first
> article.

I might be missing something. It gives me "the account expired".

Nemanja Trifunovic

Posts: 172
Nickname: ntrif
Registered: Jun, 2004

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:51 AM
Reply to this message Reply
> > > > > The comment about free() is in the second one.
> > > > > http://www.jwz.org/doc/java.html
> > > >
> > > > This link is broken. So, I guess, we can't learn
> how
> > > > free() makes C++ bad.
> > >
> > > Works for me. There's also a link to it int the
> first
> > > article.
> >
> > Does not work for me either, and I tried it with IE and
> > FF. Maybe it is smart enough to recognize the C++
> > programmers and filter them out? :)
>
> The title of the article is: "java sucks."
>

Sorry James, but all I get when I click to the link you posted is:

"This account has expired. Domain owner, please click here to renew your account, or contact support"

and then a list of sponsored links that I should not even quote in a respectable forum (none of them mention Java, but some mention Jessica Alba). Are you sure you don't have the original page cached in your browser?

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 8:58 AM
Reply to this message Reply
> Garbage Collection is inherently part of Java. There are
> many references to garbage collection in the language
> specification.

It is implemented in JVM, though. The bottom line is that we are comparing apples and oranges, so we should agree on terminology:

Java means Java platform: Java language, virtual machine and standard libraries.

C++ means: standardized C++ language with the standard library

So, based on the above definitions, one could say that C++ currently does not have GC. However, I intended to say that there are GC solutions available for C++. Additionally, IMO, memory management is broader topic than GC, and is some areas (e.g. RAII) C++ provides better solutions. So the author's argument that Java memory management is somehow superior to C++ memory management does not hold.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:03 AM
Reply to this message Reply
> > You are doing it again. You haven't said anything
> about
> > the arguments that he made. You dismiss him entirely
> > because he doesn't agree with you.
>
> Not at all. I dismiss him because he does not understand
> that his "mountain of poop" is not because of C++. It's
> because such things can be (and are) grown in any
> language.

Some languages are harder to keep things clean in than others. But I agree with your point in general. Actually so does the author of that blog. From the Java section:

" Bad developers, who constitute the majority of all developers worldwide, can write bad code in any language you throw at them."

And he also agrees with your hype argument:

"The problem with Java is that people are blinded by the marketing hype."

But continues to say:

"That's the problem with C++, with Perl, with any language that's popular"

But the point he makes that I, in general, agree with is:

"I know that no matter how good my intentions are, I will at some point be surrounded by people who don't know how to code, and they will do far less damage with Java than with C++."

Perhaps you are lucky to work with only really sharp developers but my experience is that most developers don't really know what they are doing and a good portion of the rest don't consider how their choices affect others. Working in C++ takes a lot of discipline if you want to avoid big problems. Java is simpler and in my experience, slows down poop-makers so that they can't produce much poop per hour.

Of course, Java cannot solve all the problems that C++ can so it's not a direct replacement. But for people that do not need the systems level facilities, Java is a much better choice in my opinion. But Java has a lot of flaws and lacks many important things should have been baked in from the beginning.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:06 AM
Reply to this message Reply
> Sorry James, but all I get when I click to the link you
> posted is:
>
> "This account has expired. Domain owner, please click here
> to renew your account, or contact support"
>
> and then a list of sponsored links that I should not even
> quote in a respectable forum (none of them mention Java,
> but some mention Jessica Alba). Are you sure you don't
> have the original page cached in your browser?

I don't know but I'd rather not find out if I'm going to get that stuff. I'm at work right now. But don't worry about it. There's very little about C++ in the page. It's mostly about the problems with Java. It's 10 years old at this point anyway.

Cameron Purdy

Posts: 186
Nickname: cpurdy
Registered: Dec, 2004

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:11 AM
Reply to this message Reply
> > But C++ does not have garbage collection, so my

> What I meant was availability of garbage collection for
> C++, so my statement should have been "C++ had garbage
> collection available ..." (italicized word added).
> But that's nitpicking. Indeed, speaking of C++ strictly as
> a as a language, it does not have GC.

I would look at it differently, since I manage C++ projects that have to run on different compilers, with different RTLs and on different OS/hardware platforms: C++ does not yet have generally available garbage collection implementations for the platform combinations that we support. That probably will be true for another 4-5 years at least, although as soon as GC is standardized, I will be able to say that "C++ has garbage collection".

BTW - I am not actually a proponent of adding GC to C++, any more than I am a proponent of adding high level control flow to x86 ASM, or adding generics to Java. It's all lipstick on a pig, and I'm not into kissing any pigs. ;-)

> But neither does
> Java language. It is the Java platform, JVM,
> that comes with GC.

The Java language does explicitly specify garbage collection as being the means of memory management. The Java language includes the "new" keyword, and that is not a feature of a runtime library (e.g. alloc() in the CRT). Additionally, the Java language includes a certain set of runtime libraries, i.e. they are specified within the language spec itself; however, the memory management is not a function of the RTL in Java.

> Specificaly, in my opinion, Java finalization is inferior
> solution than C++ - like RAII.

To be honest and IMHO, Java finalization is almost never used, and is itself probably a design flaw. A registration of a "future" callback would have been much cleaner, and is more in line with how the "reference" package does it (java.lang.ref).

> I am sorry for the "mirror" comment. It was sarcastic and
> out of line.

No problem .. I'm a sarcastic SOB myself, and enjoy the humor. I don't like to think of myself as a bigot (who does?), but my opinions are probably as strongly held as anyone's ;-)

Peace,

Cameron Purdy | Oracle
http://www.oracle.com/technology/products/coherence/index.html

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:26 AM
Reply to this message Reply
> Perhaps you are lucky to work with only really sharp
> developers but my experience is that most developers don't
> really know what they are doing and a good portion of the
> rest don't consider how their choices affect others.

We talked about it at length in response to Alberto's "Pardon My French, But This Code Is C.R.A.P.":

http://www.artima.com/forums/flat.jsp?forum=106&thread=210434#274367

As I mentioned there, this is addressed in Stroustrup's inerviews "Trouble with Programming":

http://www.technologyreview.com/Infotech/17831/
http://www.technologyreview.com/Infotech/17868/

For example, here's a quote from the interview: "The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous. We wouldn't tolerate plumbers or accountants that poorly educated."

Nemanja Trifunovic

Posts: 172
Nickname: ntrif
Registered: Jun, 2004

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:30 AM
Reply to this message Reply
> BTW - I am not actually a proponent of adding GC to C++,
> any more than I am a proponent of adding high level
> control flow to x86 ASM, or adding generics to Java.

Now, the last part I can't understand. One of the main things that made me ditch Java (used it on one project only anyway), and later C# (used it a lot more) was the lack of type-safe containers. Now with generics it is at least possible to make a good container library and avoid all the casting. Why do you dislike it? Is it because of something specific to the Java implementation of generics?

Alex Fabijanic

Posts: 71
Nickname: aleksf
Registered: Aug, 2006

Re: Should We Strive to Only Have One Language in Our Development Efforts? Posted: Aug 3, 2007 9:48 AM
Reply to this message Reply
> all the casting. Why do you dislike it? Is it because of
> something specific to the Java implementation of generics?

I suspect he is against it because of this (from http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html ):

type erasure: generic type information is present only at compile time, after which it is erased by the compiler. The main advantage of this approach is that it provides total interoperability between generic code and legacy code that uses non-parameterized types (which are technically known as raw types). The main disadvantages are that parameter type information is not available at run time, and that automatically generated casts may fail when interoperating with ill-behaved legacy code.

Flat View: This topic has 60 replies on 5 pages [ « | 1  2  3  4  5 | » ]
Topic: Spring Web Flow 2.0 Milestone 1 Released Previous Topic   Next Topic Topic: Alberto Savoia on Testing the Untestable

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use