I'm a Python fag, though not a fanboy. I wanted to check Ruby out because of this one feature: no statements. Statements sound retarded to me, and I don't like them in Python. Since Ruby has a similar feature set to Python, I thought it would be worth checking out. However, I've been mildly disgusted by Ruby.
- Why the fuck are parenthesis optional? This is the same shit as Perl! It's insane and error-prone. Parenthesis are always almost usually probably expectedly optional, right? Only faggots can't take parenthesis.
- What's this 2-Lisp-like retardation?
abc = 1
def abc
2
end
abc #= 1
abc() #= 2
My goodness, fuck this shit! It's the single worst thing in Common Lisp, one that makes my stomach ache because of its COBOL-caliber braindamagedness, irregularity and incorrectness. This combined with the fact parenthesis are optional makes me want to kill Matsumoto. He irritates me more than Guido van Rossum.
- This accessor stupidity is retarded, a fugly hack, and probably slow as fuck. A method called "property=" won't fix this all-private stupidity, and it's also a possible origin of the 2-Lisp-like bullshit so you can define property().
- alias? private? Don't bloat it! Want an alias? Use a stupid reference. Want something private? Don't document it outside your code, or write "DON'T CALL THIS" in the documentation.
- Blocks are an ugly syntax for lambdas (though better than Python's, if only because statements are expressions).
- Now I'm really being a bitch, but I don't really like this "responds_to?", "send", etc. OO wankery. I'm not at all excited by OO; it's useful, but there's no need to invent funny names and metaphores for what has always been simple: functions. Everything, a function. That's how I like it. From the "Ruby From Other Languages page", "Message passing, not function calls": the guy who wrote that is stupid. Message passing is a snob OO wanker way to say function call. And no, I don't talk to my lists, though I may want to execute their join property which happens to be a function.
Can anybody explain why all this faggotry?
The other things I didn't care about (such as the definition of falsehood, though I suppose Python's would be more useful) or liked (such as better support for symbols or mutable strings).
>>3
You mean (Ruby - Perl) / Perl = Python / Perl, right?
Name:
Anonymous2007-08-18 18:57 ID:qt61k3Q7
I'm OP. From the Ruby FAQ, section 6: Syntax:
Ruby works hard to distinguish method calls from operators, and variable names from method names. Unfortunately, there’s no way it can get it right all the time. In this case, "a +b" is parsed as "a(+b)". Remove the space to the left of "+" or add a space to the right of "+", and it will be parsed as an addition.
Why can't I pass a hash literal to a method: p {}?
|| combines terms within an expression. However or is used to combine expressions in conditionals.
$:, $!, $_, etc.
FAILURE OF TITANIC PROPORTIONS. Not even PHP is this stupid.
Name:
Anonymous2007-08-18 19:09 ID:dtql+lDY
For me, Python actually filled the ecological niche formerly populated by Ruby about a year ago. You gave many of the reasons. Also, it looks ugly even when the code itself is well-written. And it is slow as fuck.
Name:
Anonymous2007-08-18 19:09 ID:92wb33wu
Ruby is mangled, slow and unsafe but dynamic and expressive.
Use Ruby over other languages if:
a) FUCK,
b) I
c) CAN'T THINK OF A REASON.
Name:
Anonymous2007-08-18 19:12 ID:92wb33wu
>>7 here. I'd still use it, just for lulz and to impress any potential weeaboos.
>> 8 lern 2 spell newfag
Name:
Anonymous2007-08-18 19:19 ID:92wb33wu
>>7 here.
I thought of a reason.
Use Ruby if the 'this' keyword in Python gets on your tits.
Name:
Anonymous2007-08-18 20:09 ID:2GADbf/O
Ruby took a bunch of shit from a bunch of different languages, put it in a blender, and set the blender on fire.
Name:
Anonymous2007-08-18 20:11 ID:q6hYUIPp
Who gives a damn about having a special namespace for functions? How often do you want to ((x) e) where x returns a function? And is there even a logical way to write something similar with Ruby's syntax?
Guido: Huhuhuhuhuh, wouldn't it be totally awesome if we made a talking tomato?
Capitan Object: But that would mess up the inheritance tree! Only humans can talk and it makes no sense for *every* tomato to be able to talk. A new class inheriting tomato + mixin/multiple inheritance/rebinding methods would be too much effort for one retarded talking tomato.
Guido: Luckily, I'm awesome:
Wow, thank god I'm not the only one that thinks Ruby is complete shit.
Python rules though; it's a lot faster than Ruby, doesn't have RETARDED AS FUCK Perl cancer syntax, no ZOMG EVERYTHING IS AN OBJECT WOOOOOOOOOOO FAP FAP FAP, etc
I like Python.
Name:
Anonymous2007-08-19 3:29 ID:1ZKUGd13
Only faggots can't take parenthesis.
ONE WORD, FORCED INDENTATION OF CODE, THERAD OVER
IF U THUNK U R ROFF USE LIASP
Name:
Anonymous2007-08-19 5:21 ID:GLAjNoBe
>>5 Ruby works hard to distinguish method calls from operators, and variable names from method names. Unfortunately, there’s no way it can get it right all the time. In this case, "a +b" is parsed as "a(+b)". Remove the space to the left of "+" or add a space to the right of "+", and it will be parsed as an addition.
ONE WORD, THE FORCED WHITESPACE OF CODE, THREAD OVER
Name:
Anonymous2007-08-19 6:36 ID:1FVgKxhE
>>5 Ruby works hard to distinguish method calls from operators, and variable names from method names. Unfortunately, there’s no way it can get it right all the time. In this case, "a +b" is parsed as "a(+b)". Remove the space to the left of "+" or add a space to the right of "+", and it will be parsed as an addition
Experimentation seems to show this.. doesn't happen anyway.
irb(main):003:0> a = 1
=> 1
irb(main):004:0> b = 3
=> 3
irb(main):005:0> a +b
=> 4
irb(main):006:0> def a(x)
irb(main):007:1> x**3
irb(main):008:1> end
=> nil
irb(main):009:0> a + b
=> 4
irb(main):010:0> a +b
=> 4
irb(main):011:0> a (+b)
=> 27
irb(main):012:0> a b
=> 27
irb(main):013:0>
>>9
I don't mind self; in fact, I think it makes things clearer. Ruby has it too, only that it looks Perlish. @. And sometimes you still have to use self, making it irregular and fugly.
>>11 Who gives a damn about having a special namespace for functions?
I do, because I want true, correct, complete first-class functions that behave exactly like any other value. I'm not as worried as ((x) y) (which I still do more often than you would believe) as I am about def f ...; f = 2. The later should work as expected. If it doesn't, functions aren't regular values, but some magic shit, and not only that, but you're in for an assload of Perlish disambiguation shit since parens are optional.
ONE WORD, THE OPTIONAL PARENS, THREAD OVER
Name:
Anonymous2007-08-19 17:46 ID:i/DgiYAE
I've concluded that both Python and Ruby suck, just in different ways.
It's too bad that most common languages suck even more. :/
Also: Matz seems to think that closures, objects and procs should be different. Righto.
Name:
Anonymous2007-08-19 18:15 ID:X/EDMqMf
>>21
I've concluded that every single language ever sucks, just in different ways.
I thought that too, but then I learned Lojban. It's made of FUCK and YEAH.
It's also the only spoken language so perfect it has an official YACC syntax definition.
Name:
Anonymous2007-08-19 19:04 ID:i7WTFykm
closures, objects and procs should be different.
Fale
>>22
All languages suck, that's true; I'm trying to find the one that sucks less for the things I want to do and the way I want to do them.
>>23 The principal sources of its basic vocabularly was the (at the time) six most widely-spoken languages: Arabic, Chinese, English, Hindi, Russian, and Spanish
Fail. Like (d)Esperanto. If you mix red, green and blue you get a shade of gray, which resembles nothing and is far from everything. Mixing just the three most widely spoken languages today - English, Mandarin and Spanish would already be messy. It only makes sense to mix closely related languages, such as English and Spanish alone, which would at least look similar to a good part of the world (also including the French, Italian, Portuguese, Brazilian and Romanian), and even so, a fabricated language is stupid. The world has a problem: too many languages. The fix is not about introducing yet a new one to learn. Nobody will.
Name:
Anonymous2007-08-20 6:30 ID:Ssb8ZxS8
>>24
Lojban wasn't made to be a universal language like Esperanto. In fact, Lojban is the Haskell of constructed languages.
And mixing six most widely-spoken languages was not about their stupid grammar but merely taking roots of words so computer could generate a vocabulary.
Name:
Anonymous2007-08-20 6:39 ID:uHBseZ3t
>>23
Yeah, but its library support and documentation is severely lacking.
>>24 All languages suck, that's true; I'm trying to find the one that sucks less for the things I want to do and the way I want to do them.
Good luck, I'm in the same boat. Right now, Python fits the bill pretty well. There are many things I don't like about Python, but it has gained some serious inertia, so there are a lot of pretty good libraries available for it. Purely language-wise, Haskell is my current favourite.
Name:
Anonymous2007-08-20 7:33 ID:jC1SLYPo
Without Rails, Ruby would be nothing.
It's the Web 2.0 fad of programming.
Name:
Anonymous2007-08-20 8:19 ID:uDY6H0jt
And mixing six most widely-spoken languages was not about their stupid grammar but merely taking roots of words
I wasn't talking about their stupid grammar, just roots of words. If you take roots from fucking six languages of such different families, you'll get nothing.
Name:
Anonymous2007-08-20 11:20 ID:FMSjucbY
don't like the language? don't fucking use it. like the language for certain tasks? use it. don't like it for others? use other languages for those tasks.
The default value of every operation code and assigned his own drum addresses every instruction he wrote could also team up with it as a big bonfire where.