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 2:11 PM 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 ... 4 5 6 7 8 9 10 11 12 ... 18  | » ]
James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 11:37 AM
Reply to this message Reply
Advertisement
> "hey alex, you talk a lot about not being the "machine's
> bitch" and all, but once your Ruby site needs to handle
> half a million transactions a day, ohhh youll be that
> computer's bitch again, just you wait."
>
> Piece of cake.

According to this Ruby doesn't scale well because it's threads are not implemented at a hardware level:

http://blogs.codehaus.org/people/tirsen/archives/001041_ruby_on_rails_and_fastcgi_scaling_using_processes_instead_of_threads.html

Not claiming this is absolutely accurate but is there any evidence you can provide that Ruby can scale under heavy loads?

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 11:41 AM
Reply to this message Reply
> According to this Ruby doesn't scale well because it's
> threads are not implemented at a hardware level:

Make that, 'threads are implemented in the interpreter'. Assuming this is accurate (a quick Google search suggests it is), it's a huge disadvantage vs. Java. Java's threads can be implemented in the VM, on the OS level or both without making the developer it's bitch, so to say.

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 11:46 AM
Reply to this message Reply
"Make that, 'threads are implemented in the interpreter'. Assuming this is accurate (a quick Google search suggests it is), it's a huge disadvantage vs. Java. Java's threads can be implemented in the VM, on the OS level or both without making the developer it's bitch, so to say."

We can scale horizontally, when vertically is not enough. It means scaling ala Google, Slashdot, etc: just add more processes and machines when you need them; let the database handle the rest.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 11:49 AM
Reply to this message Reply
> "Make that, 'threads are implemented in the interpreter'.
> Assuming this is accurate (a quick Google search suggests
> it is), it's a huge disadvantage vs. Java. Java's threads
> can be implemented in the VM, on the OS level or both
> without making the developer it's bitch, so to say."
>
> We can scale horizontally, when vertically is not enough.
> It means scaling ala Google, Slashdot, etc: just add more
> processes and machines when you need them; let the
> database handle the rest.

That kind of scaling a step backward IMO. It's definitely not an advantage. In Java you can do both.

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 11:55 AM
Reply to this message Reply
"That kind of scaling a step backward IMO. It's definitely not an advantage. In Java you can do both."

Ruby 2.0 is going to have native threads. I'm praying that SASADA will be able to create a Ruby Virtual Machine with native threads, so in the future we can have both as well. For your information, Ruby 2.0 has been progressing well -- SASADA already supports native threads on Windows and already supports quite a lot of Ruby code. I'm his unconditional fan. :-)

Alex Bunardzic

Posts: 546
Nickname: alexbunard
Registered: Oct, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 1:01 PM
Reply to this message Reply
> If the machine is making you it's bitch, I feel sorry for
> you.

Thanks for understanding:-)

> I think you need to remember that this is a machine.

How would that help? If a machine is torturing me, and if I at that moment remember that it's just a machine, how is that going to make it less painful?

> If you were an auto-mechanic, would you get mad if you
> u connected the gas tank to the water pump and the engine
> didn't 'know' what you really meant?

I would get mad if the design of that mechanical contraption was misleading. Like, if all of a sudden the machine reverses the gas and brake pedals, let me tell you, I would get really, seriously mad. Wouldn't you?

> I wonder if you
> really have the constitution for software development or
> any technical field. That you really care about this
> makes you more of a bitch, not less of one.

So, what you're saying is that only genuine masochists have the constitution for software development?

> The other thing I'm struggling with here is all you are
> talking about is creating synonymous methods. It's not
> like you can't do that in Java or any language really.
> It's not like Ruby is reading your mind. There are Java
> a classes with synonymous methods. Vector, for example.

Fine.

> Personally, I wholly prefer the one way to do it
> methodology. It makes other people's code a lot easier to
> read.

And it severely shrinks what's possible to do.

> Lastly, if this is the greatest problem you have in
> developing software, you are probably doing something
> wrong. Good software development has a lot more thinking
> than typing. This should be a mild inconvienience only.

When did I say it's a problem with typing? I raised this issue precisely because it's a misleading one for the thinking process. Using Java, I am forced to try to remember which collection specializes in expecting which method. Do I use 'size' or 'length' for a list? What about an array?

These things should not be confusing.

Those are just trivial examples, and I don't think we need to dwell on them. I'm just using them to illustrate the fundamental difference in the philosophy of the HLL vis a vis the VHLL.

Apparently, I'm not getting through...

Alex Bunardzic

Posts: 546
Nickname: alexbunard
Registered: Oct, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 1:08 PM
Reply to this message Reply
> hey alex, you talk a lot about not being the "machine's
> bitch" and all, but once your Ruby site needs to handle
> half a million transactions a day, ohhh youll be that
> computer's bitch again, just you wait.

That's a very good point, Mike. It's actually a topic for another thread, but let me just say here that I'm still sitting on the fence when it comes to enterprise. Is Ruby a good choice for enterprise? I don't know. Probably not.

All I know is that I'm using it for real life solutions. And in most cases, these are way, way smaller than any enterprise level stuff. In my experience, maybe one in every fifty projects warrants enterprise level approach. Maybe even less than that.

Most business problems I've ever dealt with in the past 15 years are completely below the enterprise level radar. As such, they are perfectly solvable using Ruby. Since I am not a big-ass vendor, nor do I plan to ever become one, I'm not really that keen on tackling enterprise level problems. I'll leave that to IBM, Oracle, SAP, et al.

Alex Bunardzic

Posts: 546
Nickname: alexbunard
Registered: Oct, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 1:14 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?

mike bayer

Posts: 22
Nickname: zzzeek
Registered: Jan, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 2:32 PM
Reply to this message Reply
>
> We can scale horizontally, when vertically is not enough.
> It means scaling ala Google, Slashdot, etc: just add more
> processes and machines when you need them; let the
> database handle the rest.

When I made my comment about scaling, I wasnt referring just to Ruby's immature thread support or its other intrinsic weaknesses, such as its poor unicode support or just the raw speed of its interpreter as compared to Python, but also that the mentality of the developer, which in this discussion and others makes a lot of references to "its not how computers think, its how people think !" is by itself enough of a factor to produce a large community of applications that simply by design will not perform well, regardless of underlying engine. You see this same thing happening in a myriad of PHP tools that, despite PHP's incredible speed, still perform like crap; its because of developers who have no interest in computer science, no interest in learning how to develop reasonable software architectures, and no interest in the underlying internals of the constructs they are using that even a fast engine like PHP can be brought to its knees. It is this mentality that I always seem to observe in the Ruby community; its a non-curious and informal mindset that is obsessed with moving new widgets and features "out the door" with blazing speed, but little attention to the architecture of those features. Rails is the leader in this category; tons of new blinky lights every day, zero large scale benchmarks, real-world stress testing, or consideration of how an enterprise might fare with this application.

If we want to say, as someone mentioned, "well Ruby/Rails is not for big enterprise apps ! its just for all the little things I do all day", that would be consistent with my impression of it....and this fact should be more openly admitted. For me, I'd much rather write my smaller apps using tools that I know can stay with me all the way out to the bigtime as well...otherwise, why should I have to master two or more ways of doing the same thing ? Why not master one way that is friendly towards both small and large environments? I think Java has come very close to this. I think Python has a great potential as well since a decently written Python application can perform extremely well alongside a corresponding Java application, if not better (witness Google), and certainly far better than a Rails app could.

One additional note, the plethora of web frameworks in Python has granted us one fantastic thing that a tool with Rails' hype-machine would utterly obliterate: room for new approaches and architectures. The Ruby community has plenty of room for tons of new eager developers looking to write blogs and other small applications with Rails; but for people looking to build communities around architectural notions divergent from Rails, pretty much none.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 2:43 PM
Reply to this message Reply
> I would get mad if the design of that mechanical
> contraption was misleading. Like, if all of a sudden the
> machine reverses the gas and brake pedals, let me tell
> you, I would get really, seriously mad. Wouldn't you?

As a developer, you are in the role of a technician not a user. And nothing is switching on you. The method on List is always size() and the property on arrays is always length.

> So, what you're saying is that only genuine masochists
> have the constitution for software development?

No I'm saying that software development is full possibilities for subtle errors. This is one of the most insigngificant. What would you do if asked to write in assembly? Curl up in the corner and weep?

> > Personally, I wholly prefer the one way to do it
> > methodology. It makes other people's code a lot easier > > to read.

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.

> And it severely shrinks what's possible to do.

> When did I say it's a problem with typing? I raised this
> issue precisely because it's a misleading one for the
> thinking process.

You think this is a crucial part of the thinking process? Are you kidding?

> 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 seafood resturaunt? "Buoys? Oh no, I'm so confused!" How long do you sit there confused about this? If it's more than a couple seconds, are you stoned?

> Those are just trivial examples, and I don't think we need
> to dwell on them. I'm just using them to illustrate the
> fundamental difference in the philosophy of the HLL vis a
> vis the VHLL.
>
> Apparently, I'm not getting through...

No, you are getting through. You are just wrong. Thinking that people disagree with you because they don't understand you is not only a logical flaw, it's a sign of unclear thinking.

Brian Ford

Posts: 153
Nickname: brixen
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 2:48 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'. This tutorial will take you less than a few hours and is a small amount of work with a high payoff: namely, having some knowledge of the topic on which you speak.

And to second an idea that Alex is trying to get across: in this age we should be very suspicious of languages that require huge investments of time and effort. Technology evolves to do the heavy lifting for us. We wouldn't build the pyramids today with 50,000 workers. We'd use one of those neat cranes that adorns the skyline of any modern city. It's just silly to discount a good stab in that direction without really knowing what you're talking about.

Please do follow the tutorial and post about your 'experience' with that.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 2:54 PM
Reply to this message Reply
> >
> > We can scale horizontally, when vertically is not
> enough.
> > It means scaling ala Google, Slashdot, etc: just add
> more
> > processes and machines when you need them; let the
> > database handle the rest.
>
> When I made my comment about scaling, I wasnt referring
> just to Ruby's immature thread support or its other
> intrinsic weaknesses, such as its poor unicode support or
> just the raw speed of its interpreter as compared to
> Python, but also that the mentality of the developer,
> which in this discussion and others makes a lot of
> references to "its not how computers think, its how people
> think !" is by itself enough of a factor to produce a
> large community of applications that simply by design will
> not perform well, regardless of underlying engine. You
> see this same thing happening in a myriad of PHP tools
> that, despite PHP's incredible speed, still perform like
> crap; its because of developers who have no interest in
> computer science, no interest in learning how to develop
> reasonable software architectures, and no interest in the
> underlying internals of the constructs they are using that
> even a fast engine like PHP can be brought to its knees.
> It is this mentality that I always seem to observe in the
> e Ruby community; its a non-curious and informal mindset
> that is obsessed with moving new widgets and features "out
> the door" with blazing speed, but little attention to the
> architecture of those features. Rails is the leader in
> this category; tons of new blinky lights every day, zero
> large scale benchmarks, real-world stress testing, or
> consideration of how an enterprise might fare with this
> application.

I totally agree with you. What's more is that this isn't the first time I've seen this. Remember 4GL? Those great apps that took a week to write but a couple years later any trivial change cost far more than the original development. I started my career maintaining PB apps. That's what I think of when people talk about how easy it is and how little you need to think. Languages like that are really fast for the 85% of the app but the 15% that the creators never considered takes at least 500% longer.

James Watson

Posts: 2024
Nickname: watson
Registered: Sep, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:00 PM
Reply to this message Reply
> And to second an idea that Alex is trying to get across:
> in this age we should be very suspicious of languages that
> require huge investments of time and effort. Technology
> evolves to do the heavy lifting for us. We wouldn't build
> the pyramids today with 50,000 workers.

And what I think when I read that is that a good Java developer doesn't use huge investments of time and effort. What I feel is that a lot of 'developers' aren't comfortable with a language that doesn't lay everything at their feet and need something that leads them to the solution.

"Oooh Tab!"

"Where's my Tab?"

Alex Bunardzic

Posts: 546
Nickname: alexbunard
Registered: Oct, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:02 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.

> 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).

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

> 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?

> 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.

Joao Pedrosa

Posts: 114
Nickname: dewd
Registered: Dec, 2005

Re: The departure of the hyper-enthusiasts Posted: Dec 21, 2005 3:07 PM
Reply to this message Reply
"Don’t throw out the baby with the bath water."

Meaning that Ruby and its tools aren't perfect yet, so let's keep improving it. That's what we have been doing with Ruby since its inception. That's what people have been doing with Java since its inception. Also, Python has been getting lots of improvements since its initial releases.

Now, if you want me to support static typing or the Python's way just because you know better, because that's what the people that you value prefer, sorry, but that won't work. I can't create anything that matters to me with your tools. I don't want your 10 colors pallet. I want all the colors of the world that I can get. I don't support the "use the best tool for the job" maxim. Just because you know how to handle some tools (static typed language, IDE, XML), doesn't mean that you can create a project in a cost-effective way.

For what it's worth, many people use Java like a glue language, which was first meant as the role of the scripting languages. Something isn't right in this scenario. :-)

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


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us