The Artima Developer Community
Sponsored Link

Weblogs Forum
The departure of the hyper-enthusiasts

262 replies on 18 pages. Most recent reply: Dec 20, 2006 11:11 AM by Carlos Neves

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 262 replies on 18 pages [ « | 1 ... 5 6 7 8 9 10 11 12 13 ... 18  | » ]
Chris Nelson

Posts: 63
Nickname: ccnelson
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 12:24 PM
Reply to this message Reply
Advertisement
> <p>Clearly Ruby is making important contributions to the
> programming world. I think we're seeing the effects sooner
> in Python than elsewhere, but I suspect it will have an
> effect on Java as well, eventually, if only in the
> web-framework aspects. Java-on-rails might actually tempt
> me into creating a web app using Java again.
>

Bruce, while there will probably be no such thing as direct port of Rails to Java, Trails is framework that aims to bring over some of the excellent ideas in Rails to Java web app development. I hope you will have a chance to check it out.

http://trails.dev.java.net

Kay Schluehr

Posts: 302
Nickname: schluehk
Registered: Jan, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 1:13 PM
Reply to this message Reply
> > I'm definitely trying to understand Ruby by putting in
> > minimal effort and leveraging what I already know. My
> > normal approach to learning a language, as you've
> > observed, takes a huge amount of time and effort.
>
>
> Bruce,
>
> It's too bad you're willing to make a lot of assertions
> about Ruby without, apparently, understanding much of the
> language. I'd almost go as far as to say that it's a bit
> unethical for a person of your stature to behave this
> way.
>
> I'd highly recommend this tutorial to anyone, even to all
> those professional programmers with years of Java and
> Python programming under their belt.
> (http://pine.fm/LearnToProgram/ --soon to be a book from
> those pragmatic guys:
> http://www.pragmaticprogrammer.com/titles/fr_ltp/) You
> will only learn well if you put yourself into the mindset
> of an amateur (consider zen and the empty cup metaphor),
> rather than bashing all the new concepts with your weighty
> 'knowledge' and 'experience'.

What I still don't get is this strategy of immunisation against critiscism by mystification. When I read that Ruby used length and size synonymous I didn't had the impression that this reflects the naturalness of english language ( isn't Matz Japanese? Wouldn't it be better if he taught average american children kanji to enlarge their cultural background? ) but the unification of conventions that are all around in the PL area. It's a kind of conservative closure by introducing a little redundancy just if a language permitted using both "and" and "&&" to assign a boolean operator. A great leap for mankind? A step aside from rude Dijkstra towards the incredible wisdom of Yoda? Maybe, but it's also a little ridiculous to make a new age religion from this. We are not alike and that's for sure.

Kay

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 1:31 PM
Reply to this message Reply
"Maybe, but it's also a little ridiculous to make a new age religion from this. We are not alike and that's for sure."

We at least have different needs. :-)

How many programmers do you need to change a light-bulb?

Gregor Zeitlinger

Posts: 108
Nickname: gregor
Registered: Aug, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:01 PM
Reply to this message Reply
> the beautiful little feature where you can ask an
> array for its size as well as for its length (beautiful
> because it doesn't terrorize you into having to remember
> the exact precise syntax
If you use a class/interface, this can be convenient, given you know there is size or length.
If the method is non-trivial however, the sheer amount of methods can hinder you when browsing the methods in an IDE.
In other words, in every API, there is a tradeoff between simplicity and utility methods.

For an implementor of a interface, more methods mean more work, unless you can extend an abstract base implementation.
When you extend a class that has synoymous methods, you could even introduce subtle bugs.
For example, if size was originally implemented as calling lengh and you overwrote size, the methods are not synonymous any more! size could be made final, but what if it was an interface that both has size and length?

Alex Bunardzic

Posts: 546
Nickname: alexbunard
Registered: Oct, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:25 PM
Reply to this message Reply
> If you use a class/interface, this can be convenient,
> given you know there is size or length.
> If the method is non-trivial however, the sheer amount of
> methods can hinder you when browsing the methods in an
> IDE.
> In other words, in every API, there is a tradeoff between
> simplicity and utility methods.

It is hard for me to envision ever needing to use an EDI when developing in Ruby. It's just a different kind of beast, and, unlike Java, I don't see how throwing crutches and training wheels at it could ever improve things for me.

Using Ruby is rather like going on a rough terrain mountain biking expedition. Either you know how to ride, or don't. If you don't, then training wheels are not really going to help on a rugged mountain trail. As a matter of fact, training wheels are only going to be an impediment. Know what I'm saying?

> For an implementor of a interface, more methods mean more
> work, unless you can extend an abstract base
> implementation.
> When you extend a class that has synoymous methods, you
> could even introduce subtle bugs.
> For example, if size was originally implemented as calling
> lengh and you overwrote size, the methods are not
> synonymous any more! size could be made final, but what if
> it was an interface that both has size and length?

Again, I have to implore people to stop thinking like machines and return to thinking like humans. How often is the above scenario going to realistically happen? We're talking two different things here: you're talking about what's possible, and I'm talking about what's probable.

Machines specialize in possibilities. Machines have all the time in the world, and can indulge in testing out all the possibilities in the universe. Machines are infinitely patient.

Humans have extremely limited time at their disposal (ars longa, vita brevis). And humans are extremely impatient. For us, the only thing that truly matters is what's most likely to happen in the given circumstances.

Ruby is a programming language that's focused on what's most likely to happen, given a particular context. The creator of Ruby knew that it will be extremely unlikely that anyone will ever have the need to extend an array. I personally never had a need to extend an array.

Did you? If yes, I'd be curious to learn what was your business rationale for doing it.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:30 PM
Reply to this message Reply
> > As a developer, you are in the role of a technician not
> a
> > user.
>
> See, I disagree with that, right off the bat. Seems like
> all the possibilities of having a meaningful dialog with
> you end right here.

I didn't ever think I could really have a meaningful dialog with you. I'm just mocking you. Your entire premise is foolish and so is your argument for it.

> > What would you do if asked to write in
> > assembly? Curl up in the corner and weep?
>
> No,I would tell the person who asked me to do that to go
> fly a kite, or take a hike (or, I'd tell them to go to
> hell, depending on the mood I'd be in on that particular
> day). I would never, ever, under any circumstances, stoop
> again to the level of writing anything in assembly. Same
> as I would never again use punched cards (believe it or
> not, I was using punched cards for my first information
> processing job back in 1987).

You mean 'punch cards' right? Why were you using punch cards in 1987? I was writing programs on a mac plus.

> Same as I would never use a kitchen knife as the only tool
> to build a bike shed.

Talk about faulty analogies.

> > No, no it doesn't. By defintion, in order for
> something
> > to be possible, it's only necessary that there be one
> way
> > to accomplish it. Having more ways t acomplish it
> doesn't
> > make it any more (or less) possible.
>
> Again, I feel like I'm talking to a machine. Is there a
> human being at the other line?

Is there a brain on your end? I tend to follow this paradigm, perhaps you've heard of it, called 'logic'. If you aren't familiar with logic (seems possible from your argumentation) you should definitely try to learn about it before debating.

> > You think this is a crucial part of the thinking
> process?
> > Are you kidding?
>
> As always.
>
> > > These things should not be confusing.
> >
> > They aren't. I can't fathom why you find them
> confusing.
> > Do you get confused when going to a public bathroom in
> a
> > a seafood resturaunt? "Buoys? Oh no, I'm so confused!"
> > How long do you sit there confused about this? If it's
> > s more than a couple seconds, are you stoned?
>
> Faulty analogy. Real world objects are not dimensionless,
> like the virtual ones are. Having physical dimensions,
> they are not confusing for the common-sense observer.

Nor is figuring out that you use size in one context and length in another. All language is dimensionless. My analogy was about a word, not a physical Object so your claims are, yet again, completely nonsensical.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:42 PM
Reply to this message Reply
> It's a kind of
> conservative closure by introducing a little redundancy
> just if a language permitted using both "and" and "&&" to
> assign a boolean operator.

This may not apply to your point but just in case, let's all be clear that & and && are not redundant boolean operators in Java. They have distinct meanings.

Marcelo Barbero

Posts: 5
Nickname: mbarbero
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 7:59 PM
Reply to this message Reply
> > Not being a "totally" English speaking human (that's to
> > say, I'm not a native English speaker), if I see two
> > functions: one called "size" and the other "length", I
> > would suspect that there may be a difference that I
> can't
> > see without reading the documentation. For instance,
> the
> > first time I saw that two functions mentioned, I
> thought
> > that "length" was like Python's "len", and "size" like
> C's
> > "sizeof".
> >
> > I think it's confusing.
>
> What you need to do is place the words in the context.
> Outside of the context, anything can be confusing.
>
> If, for example, you see the following two statements:
>
> 1. customers.size()
>
> 2. customers.length()
>
> would the above be confusing to you?

Yes, it would be, but maybe because I'm not an English native speaker. If I see two different words (or function names) I expect they do different jobs. I donĀ“t know if they are EXACTLY sinonymous or not because I am not a native speaker. Do you see my point of view?

But maybe this is my problem (or fault... are they exact sinonymous?) because of my lack of understanding on a foreign language (mine is Spanish).

Shalabh Chaturvedi

Posts: 5
Nickname: shalabh
Registered: Jun, 2004

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 9:58 PM
Reply to this message Reply
Ruby is good for Python

Because it offers more proof that dynamically typed, loosely coupled languages can more productive in creating robust solutions than statically typed, stricter languages with deeply nested class hierarchies. Java and C# essentially lead us through the same path for tackling problems. One may be a better version of the other (I like C# more) but the methodology is very similar. In fact the release of C# only validated the Java-style methodology by emulating it (albeit offering a more productive way to follow it).

Enter Python or Ruby, both different from the Java/C# style. Both producing 'enlightening' expreriences in ever growing list of seasoned, fairly well known static-style developers (Bruce Eckel, Bruce Tate, Martin Fowler...). As the knowledge spreads, it pokes holes in the strong Java/C# meme in peoples minds. Then people start to explore and experiment, and discover the Python (or Ruby) productivity gain. Some may prefer one, some the other. Ruby, in the end, validates the fact that Java/C# style methods may not be the best for everything, something the Python advocates have been saying for quite some time.

(copy from my posting at http://www.advogato.org/person/shalabh/diary.html?start=46)

Neal Norwitz

Posts: 2
Nickname: neal
Registered: Jan, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 2:21 AM
Reply to this message Reply
> The person I want to hear from is the core Python expert,
> someone who knows that language incredibly well ...

Ok Bruce(s). I'm not sure I qualify as your "core Python expert". I'm a core Python developer, though: http://sourceforge.net/project/memberlist.php?group_id=5470

I've taken you up (well kinda), here are my rambling thoughts. http://nnorwitz.blogspot.com/2005/12/confessions-of-language-bigot.html

Alexander Jerusalem

Posts: 36
Nickname: ajeru
Registered: Mar, 2003

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 2:50 AM
Reply to this message Reply
> Again, I have to implore people to stop thinking like
> machines and return to thinking like humans.

You keep repeating this but I don't think I know what it actually means. As developers we are tasked with solving real world problems by mapping them to formal representations that a machine can execute. Depending on the problem, there are different aspects of the way machines work that we have to take into account (of course it's very important to know which aspects are irrelevant in a particular context). The value of our work lies in our ability to translate between these two worlds, so we have to be able to "think like machines" and think like those humans who are domain experts in a particular field.

I would argue that the productivity of using formal languages is not increased by introducing more redundancy and that introducing redundancy doesn't necessarily make these languages more human. As you yourself argue, our ability to cope with large amounts of information is very limited, so I don't see how redundancy helps if it doesn't reduce information overload elsewhere.

Using both size and length for the same thing makes it easier to guess but I for one would not rely on such a guess. I would try to find out what the difference is before I use it, and that would cost me a lot of time if this kind of useless redundancy was a predominant principle in a programming language (which it is not in Ruby as far as I can tell).

It's important not to confuse this kind of redundancy with the redundancy introduced by utility methods. This is not the debate about minimal interfaces. Utility methods are there to cover the most frequent cases. That is, they do something many people would have to write anyway. But I don't have to write length whenever I use size or vice versa. This is not utility, this is just bloat. It suggests a difference where there is identity.

We could have a discussion about programming languages that adapt to human language if Ruby would collect statistics about natural language use and automatically infer methods (names and semantics) according to those statistics. A programming language that tries to translate natural language into machine language. People have been trying these things for decades, without much progress. It's still worth doing further research in this direction. But this is a wholly different matter than having a plain old programming language pretending to be more human by duplicating methods under different names.

The one thing that has increased productivity most in the past 20 years or so has been the introduction of automatic memory management into mainstream programming platforms. It makes us more productive by taking something away, not by adding further names for it. Equally, relational databases take away the need for us to devise and manually optimize access paths, do index maintainance, make sure actions are atomic when they need to be, etc. Rule based systems infer facts so we don't have to express them. Dynamic method dispatch infers methods to call so we don't have to. I'm not aware of a single case where the introduction of additional names for the exact same thing has reduced complexity.

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 3:08 AM
Reply to this message Reply
> Using both size and length for the same thing makes it
> easier to guess but I for one would not rely on such a
> guess. I would try to find out what the difference is
> before I use it, and that would cost me a lot of time if
> this kind of useless redundancy was a predominant
> principle in a programming language (which it is not in
> Ruby as far as I can tell).

Well said. I'd been trying to put a decent reply together to this spurious argument but you've said it all for me.

Lars Stitz

Posts: 2
Nickname: stitzl
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 3:10 AM
Reply to this message Reply
The "hyper-enthusiasts", as they are euphemistically called by the article, are no more (and no less) than a bunch of consultants who want to advertise their expertise in order to gain more consulting gigs. They are not that outspoken because they know more or are brighter than other developers, but because their blogs and websites like Artima or TheServerSide grant them the benefit of publicity promotion at no cost.

Now, as mainstream development has moved to Javaland for good, these consultants are not needed anymore. Everybody and their dog can write a good Java application that uses decent frameworks and OR mappers and thus performs well in most tasks. So, more enthusiastic propaganda for Java does not pay the bill for these folks anymore -- they have to discover a new niche market where their service is still needed. In this case, what could be better than a language that only few people know yet? Instantly, the consultant's services appear valuable again!

My advice: Don't follow the hype unless you have good reasons to do so. "A cobbler should stick to his last," as we say in Germany. Sure, PHP, Perl, Ruby, C# have all their place in software development. But they are not to replace Java -- for now. For this, their benefits over Java still are too small.

Cheers, Lars

Kondwani Mkandawire

Posts: 530
Nickname: spike
Registered: Aug, 2004

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 3:37 AM
Reply to this message Reply
> > What would you do if asked to write in
> > assembly? Curl up in the corner and weep?
>
> No,I would tell the person who asked me to do that to go
> fly a kite, or take a hike (or, I'd tell them to go to
> hell, depending on the mood I'd be in on that particular
> day). I would never, ever, under any circumstances, stoop
> again to the level of writing anything in assembly. Same
> as I would never again use punched cards (believe it or
> not, I was using punched cards for my first information
> processing job back in 1987).
>

A little research sometimes goes a long way.

How about performing time-critical operations on a crappy
old processor? OK. you might say, well why do so when
better hardware is now affordable?

How about accessing Hardware instructions (operations of
which some Highlevel languages have no equivalent)?

In this case would it be reasonable to fire you after
you've given your stated response and the request had
come from your boss?

Szymon Drejewicz

Posts: 1
Nickname: fffreedom
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 22, 2005 5:28 AM
Reply to this message Reply
Bruce, I think you are goodselling-books-maker rather than guru for coders. People are moving to Ruby because that language is very practical. In other words, book about Ruby by Bruce Eckel should be titled "Thinking" :-) and there is no need to add " in Ruby".

best wishes
--
Szymon Drejewicz

Flat View: This topic has 262 replies on 18 pages [ « | 5  6  7  8  9  10  11  12  13 | » ]
Topic: The departure of the hyper-enthusiasts Previous Topic   Next Topic Topic: Java Applets + Ajax = ?

Sponsored Links



Google
  Web Artima.com   

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