The Artima Developer Community
Sponsored Link

Weblogs Forum
Why? Language Archaeology ... and Metaprogramming

89 replies on 6 pages. Most recent reply: Sep 14, 2009 4:31 PM by Andy Dent

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 89 replies on 6 pages [ « | 1 2 3 4 5 6 | » ]
James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 8:31 AM
Reply to this message Reply
Advertisement
> As for programming languages, defining success by anything
> else than popularity is quite odd, to say the least.

What he said was that "not all successful things are good things". He didn't say that success was not related to popularity. I think actually, he implied that success and popularity are the same thing in the context of programming languages.

I don't have anything to say about C++ but I agree with the general argument that popular != good. Honestly, I doubt you really disagree. Otherwise, you'd have to believe that McDonald's has the best food, COBOL is the best programming language, Windows is the best operating system, IE is the best web browser, JUnit is the best Java unit testing framework, etc. I didn't check that all of these are the most popular in their relative niches but you get the idea.

Nemanja Trifunovic

Posts: 172
Nickname: ntrif
Registered: Jun, 2004

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 8:38 AM
Reply to this message Reply
An interesting article indeed.

However, it is funny that the ability to create objects on the stack is viewed as an unfortunate result of compatibility with C. Reminds me of 1990s when good C++ code was expected to look as SmallTalk :)

Today it is generally considered a good idea to create all objects on the stack, or at least wrap them into objects that are created on the stack.

Cedric Beust

Posts: 140
Nickname: cbeust
Registered: Feb, 2004

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 8:45 AM
Reply to this message Reply
> I don't have anything to say about C++ but I agree with
> the general argument that popular != good. Honestly,
> I doubt you really disagree.

True, popular is not always synonym of good, but I was trying to bring the debate back on objective grounds.

We all have our personal preferences (e.g. I'm a big fan of the Fan programming language) but since most of them are based on aesthetic and subjective criteria, mentioning them in this discussion serves little purpose.

I do feel strongly that
- C++ is a successful language
- C++' success is proof that design by committee can work, or at least for a certain amount of time

--
Cedric

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 9:04 AM
Reply to this message Reply
> True, popular is not always synonym of good, but I was
> trying to bring the debate back on objective grounds.
>
> We all have our personal preferences (e.g. I'm a big fan
> of the Fan programming language) but since most of them
> are based on aesthetic and subjective criteria, mentioning
> them in this discussion serves little purpose.

I don't disagree but the point made wasn't that the best programming language could be determined objectively, it was that you can't determine the 'best' programming language objectively, specifically though measuring its popularity.

> I do feel strongly that
> - C++ is a successful language
> - C++' success is proof that design by committee can work,
> or at least for a certain amount of time

I don't think anyone is saying that it doesn't work, but questioning whether it's likely to produce the best outcome. That's back in subjective territory but that doesn't mean it's not important.



Posts: 19
Nickname: pmd
Registered: Oct, 2004

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 12:14 PM
Reply to this message Reply
>> the inclusion of the new keyword is a mystery.
>
> I am fairly sure that the reason was a familiar one:
> backward compatibility with C++. ... I recall that much of
> the hype consisted of pointing out how you could take a
> program written in C++ and run it as Java with only minor
> changes to syntax.

If they really wanted backward compatibility with C++, why did they make the default access control modifier "public" for class members instead of "private" as in C++?

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 12:55 PM
Reply to this message Reply
If they really wanted backward compatibility with C++, why
> did they make the default access control modifier "public"
> for class members instead of "private" as in C++?

They didn't. The default access is package-protected, not public. I don't know if that goes against your point though.

Peter Booth

Posts: 62
Nickname: alohashirt
Registered: Aug, 2004

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 23, 2009 8:16 PM
Reply to this message Reply
I think that there is an element of not seeing the woods for the trees here.

Sure we can assert that we are making objective statements about the strengths and weaknesses of specific languages, but its disingenuous to suggest that these statements are the reasons for our feelings. Someone famously said that man is a rationalizing creature, but not a rational one.

I could suggest that I prefer Ruby to Python because of whitespace but that would be a crock. I prefer Ruby to Python because I know it better, I feel loyalty and affiliation because I'm in the Ruby club and not the Python club.

Its easy to be smart after the fact when discussing any language. But to anyone who lambasts a language creator I have to ask, "So WTF have you contributed to our field that is comparable in added value?" I recall what a superb improvement Fortran 77 was over Ratfor, and how hard the standardization committee worked on Fortran 8x, whilst simultaneously being criticized for being "not C++"

Sure C++ sucks, and Java sucks - but thats because everything sucks. The reason that we are discussing these languages and not Delphi, Ada, C#, tcl or Modula 2 is because they are great languages. Great in that they changed the world, had a major impact that defined generations of developers. In ten years time we will no doubt be lambasting Ruby and Scala and Nice and F#

So sure, puff your chest out and posture as you compare your good languages to the other bad language but remember that if this good language didnt exist we wouldn't have the experience to know whether feature X was good or bad.
Archeology is great, but give credit where its due to those who changed our world.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 3:33 AM
Reply to this message Reply
> > Not all successful things are good things. For example,
> > Betamax was better than VHS;
>
> Considering that BetaMax only allowed for 60 minutes of
> recording compared to VHS's 3 hours, that's quite a
> strange thing to say.

I never used Betamax or VHS. I was a small child back then, so this is a story I've heard of and read about on the internet. Many people say that Betamax was of much better quality than VHS.

>
> As for programming languages, defining success by anything
> else than popularity is quite odd, to say the least.

>
> You seem to have a thing for underdogs, but you have to
> realize that the criteria you use to assess technologies
> don't appear to be shared by a lot of people...
>
> --
> Cedric

I just wanted to point out that the best in quality does not always become the most successful.

Achilleas Margaritis

Posts: 674
Nickname: achilleas
Registered: Feb, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 3:48 AM
Reply to this message Reply
> I think that there is an element of not seeing the woods
> for the trees here.
>
> Sure we can assert that we are making objective statements
> about the strengths and weaknesses of specific languages,
> but its disingenuous to suggest that these statements are
> the reasons for our feelings. Someone famously said that
> man is a rationalizing creature, but not a rational one.
>
> I could suggest that I prefer Ruby to Python because of
> whitespace but that would be a crock. I prefer Ruby to
> Python because I know it better, I feel loyalty and
> affiliation because I'm in the Ruby club and not the
> Python club.
>
> Its easy to be smart after the fact when discussing any
> language. But to anyone who lambasts a language creator I
> have to ask, "So WTF have you contributed to our field
> that is comparable in added value?" I recall what a superb
> improvement Fortran 77 was over Ratfor, and how hard the
> standardization committee worked on Fortran 8x, whilst
> simultaneously being criticized for being "not C++"

You don't have to be a film maker in order to criticize a movie. And you don't have to be a language creator in order to criticize a programming language.

I would have created my own programming language if I had the time. But I don't. I work as a full-time programmer, and personal life matters to me.

Mankind has progressed so far that it is impossible for an individual to be a master in every domain. Nowadays people are specialized in their domain. I can't create a programming language, but a university professor can.

>
> Sure C++ sucks, and Java sucks - but thats because
> everything sucks.

I have to respectfully disagree. Ada does not suck, for example.

> The reason that we are discussing these
> languages and not Delphi, Ada, C#, tcl or Modula 2 is
> because they are great languages. Great in that they
> changed the world, had a major impact that defined
> generations of developers. In ten years time we will no
> doubt be lambasting Ruby and Scala and Nice and F#

The success of C++, for example, is not because it is better than Ada, but because of its promises.

>
> So sure, puff your chest out and posture as you compare
> your good languages to the other bad language but remember
> that if this good language didnt exist we wouldn't have
> the experience to know whether feature X was good or bad.

I disagree again. Object-oriented programming, garbage collection, functional programming are around for at least 30 years. Various programming language features are well known both in theory and in practice for at least 30 years.

> Archeology is great, but give credit where its due to
> those who changed our world.

I would give credit to anyone who creates a programming language that does not torture me for no reason other than the shortsightedness of its creator.

Alexander Novitsky

Posts: 2
Nickname: alecn
Registered: Oct, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 5:05 AM
Reply to this message Reply
> Whether or not it was entirely legitimate, Stroustrup's constraint was that a C program should compile with either trivial or (preferably) no changes under C++. This provided an easy evolution path for C programmers, but it was a big limitation and accounts for virtually every difficult feature that people complain about.

Doesn't this mean that C++ IS a badly designed language?

You know, there is another OO extension of C, ObjectiveC (MacOS X is written in it). ObjectiveC doesn't have this stupid "constrain of 100% C compatibility", and it's much, MUCH more elegant, clean and useful language.

My guess is that popularity of C++ is driven by the fact that M$ windows is written in it. And BTW I hate M$ in general and it's parody on OS, too.

Alexander Novitsky

Posts: 2
Nickname: alecn
Registered: Oct, 2005

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 5:07 AM
Reply to this message Reply
> I would give credit to anyone who creates a programming language that does not torture me for no reason other than the shortsightedness of its creator.

Give credit to Yukihiro Matsumoto.

Try Ruby: http://www.ruby-lang.org/

John Reynolds

Posts: 4
Nickname: johnrynlds
Registered: Jan, 2006

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 6:04 AM
Reply to this message Reply
Thanks for the blast from the past Bruce... It got me thinking about the Intel vs. Motorola assembly language "wars" of the 70's... We've always loved to argue ;-)

Jordan Zimmerman

Posts: 5
Nickname: randgalt
Registered: Dec, 2008

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 24, 2009 12:09 PM
Reply to this message Reply
> I think most of us would agree that C++ has become hard to
> use today, but given the success of C++ overall, I would
> argue that it qualifies as an exemplary success story for
> the concept of Design by Committee...

At the time, there were not a lot of alternatives to C++. If you wanted to write applications for the Mac or Windows what choice did you have?

I recall in 1999-2000 I started writing a server-based web application and considered C++. I knew at the time I wanted something better. Fortunately, J2EE came along at just the right time. I always felt _stuck_ with C++ - I imagine I'm not the only one.

david david

Posts: 16
Nickname: david21001
Registered: Mar, 2007

Re: Why? Language Archaeology ... and Metaprogramming Posted: Jun 26, 2009 11:37 AM
Reply to this message Reply
> C++ does not have flaws because of compatibility with C.
> C++ has flaws because it was not thought out well.

easy for you to say now 20 years late and based upon your knowledge of the state of current technology.

don't be ignorant and insult dr. stroustrup.

david david

Posts: 16
Nickname: david21001
Registered: Mar, 2007

Languages are not inherently good or bad... Posted: Jun 26, 2009 11:42 AM
Reply to this message Reply
but software engineers and "programmers" are...

let's be clear. The language "is-what-it-is" -- it's what the software engineer does with it -- that is "good or bad".

Flat View: This topic has 89 replies on 6 pages [ « | 1  2  3  4  5  6 | » ]
Topic: First Steps in Flex: 6 Screencasts Available Previous Topic   Next Topic Topic: A Generic Ostream Iterator

Sponsored Links



Google
  Web Artima.com   

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