# Why not adopt "Python Style" indentation for Ruby?

**URL:** <https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458>\
**Category:** Ruby\
**Created:** [May 18, 2007, 9:26am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458 "2007-05-18T09:26:28Z")\
**Posts on this page:** 20\
**Page:** 6

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 11:53am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/101 "2008-10-07T11:53:56Z")

</div>

I code in ruby and c++.

I love {} in c++.

I love “do”, “end” in ruby.

That’s just because I am deeply grateful for what both these languages  
let me achieve, each in it’s own field.

Gaspard

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 11:17am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/102 "2008-10-07T11:17:32Z")

</div>

Hi,

At Tue, 7 Oct 2008 04:57:45 +0900,  
Brian C. wrote in [ruby-talk:317027]:

> I find Ruby’s syntax as-is works remarkably well. The only problem it  
> causes me is with do-end mismatches where the parser just runs off the  
> end of the file, with no indication of where the missing do or end might  
> be. I have on many occasions resorted to chopping a copy of my source  
> file to find the problem (that is, lopping out a class or a method at a  
> time until the problem goes away)

Python style indentation also can’t help you alone. How can it  
know which did you intend?

if x == “ok”:  
print “ok”  
print “foo”

if x == “ok”:  
print “ok”  
print “foo”

> Personally, the solution I would love to have is a parser/pretty-printer  
> tool which can read a Ruby source file and spit it back out with  
> “standardised” indentation. It would then be obvious where the problem  
> lies. You’d get the benefit of python-style indentation, without  
> actually having to use python-style indentation 🙂

Recent 1.9 warns when it see a mismatch.

$ ./ruby -ve ‘begin  
end’  
ruby 1.9.0 (2008-10-07 revision 19704) [i686-linux]  
./ruby: warning: mismatched indentations: line 1:‘begin’ and line  
2:‘end’

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 12:03pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/103 "2008-10-07T12:03:56Z")

</div>

Hi –

On Tue, 7 Oct 2008, Frasier M. wrote:

> It’s a good way. It’s just that there’re more typings. If you says  
> "matching end is no harder than }, then } could be an considered as an  
> option I assume.

That doesn’t follow.

> > > My first thought to use brace “{…}” to replace “END” since it’s a  
> > > popular convention.
> > 
> > But then it looks like C/Java.
> 
> Liking other languages may not be bad. Ruby’s syntax on my first  
> impression is that it’s similar to python, thinking about the “class” or  
> “def”. Ruby has evolved by learning merits from other languages.

Yes, to a large extent. But Ruby also _is_ a language. It’s not an  
experiment in how to stick different ideas from other languages  
together.

Have you written to any C mailing lists, suggesting that C adopt  
features from Ruby?

> its syntax, some effort may need to be considered on the improvement.  
> If it’s determined there’s absolutely no room to improve, then that’s  
> fine.

It’s been discussed a million times over many years, if that’s what  
you mean. If Matz were going to remove the “end” keyword, I think he  
would have done it by now.

> If no improvement will be made in near future, I can live with “END”,  
> though in my mind I may still have the thought of it and wondering if it  
> could be made better.
> 
> Don’t get my wrong. I hope ruby getting better and can attract more  
> programmers. With this mind, I pointed what I felt, which is shared by  
> other new comers.

Please don’t put this in terms of Ruby attracting programmers. Ruby  
does about as good a job as any language I’ve ever heard of, when it  
comes to having programmers like it. Not everyone does, of course, but  
Matz has accomplished something truly great and amazing in exactly  
that sense. “end” is not a test of whether or not Ruby is an  
attractive language, and curly braces are not Ruby’s ticket to  
popularity.

In general, the best thing by far is to spend some time with the  
language, and let it speak to you.

David

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 3:35pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/104 "2008-10-07T15:35:22Z")

</div>

I have to mention in the first line of each post. I agree the idea of  
closing a code block with something like “END”, but suggest to use  
something else to replace it such as “{ }”.

> Have you written to any C mailing lists, suggesting that C adopt  
> features from Ruby?  
> If you felt insulted when some people ask if ruby could make improvement  
> in future on its syntax, I feel sorry for that and think people could be  
> better off to have an opener mind. Event if I didn’t write to any C  
> mailing list asking C to improve its syntax, but there are much chances  
> that some other people had written to Java mailing list ask java to  
> adopt some nice feature from ruby or other languages. That might be the  
> reason in jdk1.5 there were some syntax improvement like the adoption of  
> Generics. In future release, Python might have considered to remove  
> “self” as suggested by someone who wrote to python mailing list. It’s a  
> common scenario that suggestions were brought up to ask the possibility  
> of syntax improvement,just like the first article in this thread posted  
> by someone else.

> It’s been discussed a million times over many years, if that’s what  
> you mean.  
> If the “END” will not be considered to be replaced, then I suggest ruby  
> forum people be better off to add a FAQ page so that to prevent other  
> people from asking the same question again and again, since probably I  
> am not the only person who are concerned with the “END”.

> “end” is not a test of whether or not Ruby is an attractive language,  
> It’s a not test, but I, or other may have noticed cases (could be more  
> potentially) some ruby users’ concerns about “END”, while relatively  
> fewer people complaining about the curly braces.

I will take other’s advice and use more and get myself familiar with  
it.Thank you for your time.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 12:10pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/105 "2008-10-07T12:10:23Z")

</div>

Hi –

On Tue, 7 Oct 2008, Gaspard B. wrote:

> I code in ruby and c++.
> 
> I love {} in c++.
> 
> I love “do”, “end” in ruby.
> 
> That’s just because I am deeply grateful for what both these languages let me  
> achieve, each in it’s own field.

Absolutely. Very few of these “features” really have any absolute  
quality of being good or bad, outside of their context.

David

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 3:54pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/106 "2008-10-07T15:54:34Z")

</div>

Hi –

On Tue, 7 Oct 2008, Frasier M. wrote:

> If the “END” will not be considered to be replaced, then I suggest ruby  
> forum people be better off to add a FAQ page so that to prevent other  
> people from asking the same question again and again, since probably I  
> am not the only person who are concerned with the “END”.

You can’t have a FAQ entry for every aspect of Ruby syntax that  
probably won’t be changed 🙂

> > “end” is not a test of whether or not Ruby is an attractive language,  
> > It’s a not test, but I, or other may have noticed cases (could be more  
> > potentially) some ruby users’ concerns about “END”, while relatively  
> > fewer people complaining about the curly braces.

I think that’s because the curly braces are not used, and ‘end’ is.  
People don’t complain about things they don’t like that aren’t in the  
language 🙂

David

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 6:25pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/107 "2008-10-07T18:25:08Z")

</div>

Robert K. wrote:

> What about you? How open is your mind?  
> “Open”, as my understanding, is allowing others to say something and not  
> forbid them. I won’t feel bad, impatient,or angry if other people brings  
> up suggestions which I don’t agree, and won’t use sarcastic tones to  
> reply newbie’s messages.

> Well, but well thought out suggestions with a realistic perspective of  
> realization need good understanding of the matter. And with changes in  
> programming language syntax matters are always quite complicated - if  
> only for the thousands or millions of lines of code that might be  
> affected.

That’s true. Agree. It’s just that Mats mentioned during development of  
new releases he expressed the intention of improve the ruby syntax.

> You can easily search the archives of this list and find out. Note:  
> you could have done it /before/ jumping right into the next language  
> change discussion.

I DID the search /before/ this discussion. I didn’t find other  
discussion about the replacement of “END”. Sorry. This thread is one of  
the closest. (You can try searching the “END” in the forum.) If you know  
easier way, please let me and other newbies know so that they don’t jump  
in next time.

Thank you for your time.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 5:31pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/108 "2008-10-07T17:31:18Z")

</div>

2008/10/7 Frasier M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> I am kind of new to ruby and like it after looking python first.  
> […]  
> I have to mention in the first line of each post. I agree the idea of  
> closing a code block with something like “END”, but suggest to use  
> something else to replace it such as “{ }”.

How about first learning and using the language instead of suggesting  
changes right away?

> > Have you written to any C mailing lists, suggesting that C adopt  
> > features from Ruby?  
> > If you felt insulted when some people ask if ruby could make improvement  
> > in future on its syntax, I feel sorry for that and think people could be  
> > better off to have an opener mind.

What about you? How open is your mind?

> Event if I didn’t write to any C  
> mailing list asking C to improve its syntax, but there are much chances  
> that some other people had written to Java mailing list ask java to  
> adopt some nice feature from ruby or other languages. That might be the  
> reason in jdk1.5 there were some syntax improvement like the adoption of  
> Generics. In future release, Python might have considered to remove  
> “self” as suggested by someone who wrote to python mailing list. It’s a  
> common scenario that suggestions were brought up to ask the possibility  
> of syntax improvement,just like the first article in this thread posted  
> by someone else.

Well, but well thought out suggestions with a realistic perspective of  
realization need good understanding of the matter. And with changes in  
programming language syntax matters are always quite complicated - if  
only for the thousands or millions of lines of code that might be  
affected.

> > It’s been discussed a million times over many years, if that’s what  
> > you mean.  
> > If the “END” will not be considered to be replaced, then I suggest ruby  
> > forum people be better off to add a FAQ page so that to prevent other  
> > people from asking the same question again and again, since probably I  
> > am not the only person who are concerned with the “END”.

You can easily search the archives of this list and find out. Note:  
you could have done it /before/ jumping right into the next language  
change discussion.

> I will take other’s advice and use more and get myself familiar with  
> it.Thank you for your time.

That’s a good course of action.

Regards

robert

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 8:13pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/109 "2008-10-07T20:13:05Z")

</div>

It seems that DSLs in Ruby get some of their power from the optional  
nature of parenthesis. I wonder if making ‘end’ more optional too  
would make DSLs yet more powerful and expressive. It might be an  
interesting experiment to see what Ruby would look like if ‘end’ were  
optional in places where indentation made it unambiguous. In that  
way, it would be consistent with parenthesis being optional.

BTW, the term “domain-specific language” seems inaccurate. Many of  
these languages are really double-entendre languages. Their power of  
expression seems to come from having two equally good and correct  
interpretations - one domain specific and one in Ruby. The double  
entendre doesn’t just eliminate clutter, it also eliminates the  
mental gymnastics required to translate from one language to another.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 6:32pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/110 "2008-10-07T18:32:38Z")

</div>

"Or consider to use use:

> “/\* \*/”, “|…|”, “\<…\>”, “[…]” , “(…)”, “((…))”, , “//…//”, "  
> :…: ", " ‘…’ “, " `...` " for blocks.”

I can’t stand with the idea of using other chars than braces {} for a  
block,  
I think it’s particular to ruby to write:  
names.each { |name| puts name }  
I think do…end is a little long for a small block like this.

"My first thought to use brace “{…}” to replace “END” since it’s a

> popular convention."

Well, if you take the braces, you will have to put one just after the  
condition(if, else, …)  
and “{” is often useless I think. If you indent your code, where will  
you  
write the “{” ? after the “if” on the same line ? on a new line ?  
That’s why I like the “end”, one end for everything, and only one place  
if  
you indent.

And the syntax “do(sth) if condition” is fast and logical to write.But I  
think we should not use this for long lines for readability reasons.

Regards,  
Benoit

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 9:27pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/111 "2008-10-07T21:27:30Z")

</div>

Nobuyoshi N. wrote:

> Recent 1.9 warns when it see a mismatch.
> 
> $ ./ruby -ve ‘begin  
> end’  
> ruby 1.9.0 (2008-10-07 revision 19704) [i686-linux]  
> ./ruby: warning: mismatched indentations: line 1:‘begin’ and line  
> 2:‘end’

Ooh, that’s nice. Now I have a reason to install 1.9 alongside a  
production ruby (although I’ll be very careful to keep the two separate)

Thanks,

Brian.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 7, 2008, 9:37pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/112 "2008-10-07T21:37:26Z")

</div>

Yukihiro M. wrote:

> But I sometime want “end”-less single line structure (in normal  
> order), e.g.
> 
> if foo then bar # pseudo syntax; you may require delimiters
> 
> not
> 
> bar if foo
> 
> especially when I write very small code chunk. Not knowing what  
> syntax it should be.

As an observation, I always found ruby’s “then” to be a rather  
superfluous non-keyword; that is,

if a == b then  
…  
end

if a == b  
… same  
end

if a == b then …; end

if a == b; … same; end

So a possible (but highly incompatible) approach would be for “then” to  
introduce a single-line block, e.g.

if a == b then puts “hello”; puts “world” # end implied

if a == b  
puts “hello”  
puts “world”  
end

It could also be used, although less obviously, in other constructs:

while !a.empty? then puts a.shift

I’m not sure what ‘then’ followed immediately by newline should do.

Anyway, this is just an idle thought, as it would break lots of things.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 12:07am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/113 "2008-10-08T00:07:57Z")

</div>

On Tue, Oct 7, 2008 at 3:35 PM, Brian C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> It could also be used, although less obviously, in other constructs:
> 
> while !a.empty? then puts a.shift

“while then”? (kinda sounds funny to my ears 🙂

And, in this case, is it really better than:  
puts a.shift while !a.empty?

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 6:23am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/114 "2008-10-08T06:23:14Z")

</div>

Benoit D. wrote:

> I can’t stand with the idea of using other chars than braces {} \>for a block,  
> I think it’s particular to ruby to write:  
> names.each { |name| puts name }  
> Does it looks a little better if using square brace? since it LOOKs  
> more like a “block”:  
> names.each [|name| puts name]

> I think do…end is a little long for a small block like this.  
> Agree. do…end is suitable for multiple lines block.

And can curly brace be used replacing “END” while it is kept as it is to  
represent blocks? Any parsing difficulty?

> where will you write the “{” ? after the “if” on the same line \>? on a new line ?  
> For simplicity reason, I would say put the “{” on the same line of “if”.

Thanks for your reply.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 10:00am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/115 "2008-10-08T10:00:33Z")

</div>

unknown wrote:

> “while then”? (kinda sounds funny to my ears 🙂

It does. I was just trying to see what happens if you apply the idea  
consistently. I guess taken to extremes you’d also get

```
def f(x,y) then x+y

```

which I don’t particularly like, but then one-line method definitions  
are pretty unusual.

I still like that better than "f =-\> x,y {x+y}" from 1.9, which is horrid

I’d much rather have a new keyword: “f = fn(x,y) {x+y}”

> And, in this case, is it really better than:  
> puts a.shift while !a.empty?

No, not really.

It might be useful for ‘if’ though. I quite often write code with lots  
of backwards lines:

something if foo  
raise “Error” unless bar  
other if baz

and it would be good to write them the right way round. (Although  
“unless…then” doesn’t really read well either)

More importantly,

if (x = some\_big\_calculation) then x.something

can’t be written in backwards form currently.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 4:56pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/116 "2008-10-08T16:56:21Z")

</div>

I posted a message in this thread under the circumstances of:

1. I agreed that ruby had better to close the code block using a  
keyword. I didn’t repeat the topic “why not adopt python style”.
2. Some other ruby users (sound have much more ruby experience than me)  
has similar concerns about “END”. (The author of 1st article in this  
thread seems like a ruby core contributor.)
3. Mats expressed his intention since 2006 to experiment new syntax as  
alternative for “END”. (In 1.9, the “;;” was experimented but abandoned  
later.)

So basically I asked if other similar experiment would be made in  
future. And I wondered if curly braces “{}” could be considered as an  
alternative. For blocks, use “do…end” if multiple lines, use other  
chars like “names.each [|name| puts name]” for single line.

|Michael S. wrote:

> It helps in wider sense: while getting acquainted with a new OS,  
> or with a university lab people who were there before you.  
> Lurking and learning what is valued in this community and what  
> is frowned upon helps getting into being valued and not frowned.

> So being patient to suggestions one wouldn’t agree to is respecting  
> the other side, but being patient to first learn about something  
> and then ask why things are this way not the other (and only then  
> suggesting to fix or improve something) is even more so.

I may not be alone. As I said in 2) above, it seems some  
more-experienced ruby users had similar concerns.

> It probably could but what you suggest is taking one of the worst  
> design flaws in Python and planting it into Ruby. It is not an  
> improvement by any measure.

I appreciate the purpose of “END”. I was not suggesting to use python  
style from my first post in this thread. Just wondered if there could be  
better syntax as an alternative.

> BTW Ruby is a nice language in terms of softly understanding OOP  
> I am excited about ruby,too.

> > Have you written to any C mailing lists, suggesting that C adopt  
> > features from Ruby?  
> > To be frankly, I can imagine if I haven’t heard of ruby, and if I can’t  
> > find others asking the same question, there are much chances I will send  
> > an email to python group suggesting them to remove the “self” out of  
> > python method argument list. Syntax improvement requests, in my  
> > imagination, is not that an insult to a language, if one consider it’s a  
> > suggestion with a good wish to make it better. Maybe I underestimated  
> > language lovers’ sensitivities.

> There’s also a problem of time available. As one proverb would  
> put it, “one can ask so many questions that thousand wizards  
> won’t keep up answering”.

I did the search both in Google and the forum, but didn’t find a lot of  
discussion about alternative syntax for “END”. Since as David A. Black  
said (thanks for his reply, by the way), if similar question has been  
discussed “a million times”, a FAQ page might help for both newbies and  
rubist to save everybody’s time. A topic discussed a millions times may  
suggest it’s controversial, or suggest if there’s room for improvement.  
Apologize for my ignorance if I missed anything.

Thank you for your time.

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 11:26am UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/117 "2008-10-08T11:26:26Z")

</div>

…me too…

On Tue, Oct 07, 2008 at 02:35:10AM +0900, Frasier M. wrote:

> I am kind of new to ruby and like it after looking python first.

It might take some time for that particular taste to fade away…  
keep on 🙂

> It’s designed for be friends of programmers. But I feel the  
> “END” may have a negative role to ruby’s purpose or attraction.

It’s very subjective, you might want to have a look at a dozen  
more languages (e.g. Modula-2 also uses END with no problem).

> On 18/05/07, Yukihiro M. wrote:
> 
> > - tab/space mixture
> > - templates, e.g. eRuby
> > - expression with code chunk, e.g lambdas and blocks
> 
> - clipboards, email, pastebins, and other places where the  
> code is not preserved literally

…and teamwork is more nasty since there’s one more choke point.

On Tue, Oct 07, 2008 at 11:47:35PM +0900, Robert K. wrote:

> How about first learning and using the language instead of  
> suggesting changes right away?

It helps in wider sense: while getting acquainted with a new OS,  
or with a university lab people who were there before you.  
Lurking and learning what is valued in this community and what  
is frowned upon helps getting into being valued and not frowned.  
Or, well, quitting without much ado – that’s better at times.

> > If you felt insulted when some people ask if ruby could make  
> > improvement in future on its syntax

It probably could but what you suggest is taking one of the worst  
design flaws in Python and planting it into Ruby. It is not an  
improvement by any measure.

> > I feel sorry for that and think people could be better off to  
> > have an opener mind.  
> > What about you? How open is your mind?

…e.g. regarding adopting new syntax and comparing it over  
a few weeks 🙂

> > I will take other’s advice and use more and get myself  
> > familiar with it.

Good luck, and don’t get frustrated 🙂 You’ll understand people  
who objected after more code behind… both written and read.

On Wed, Oct 08, 2008 at 01:23:10AM +0900, Frasier M. wrote:

> “Open”, as my understanding, is allowing others to say  
> something and not forbid them.

JFYI: some tend to mix up “openness”, “freedom” and “impunity”.  
These are all different things, e.g. I’m not particularly “open”  
to badmouthing or brutal wording.

> I won’t feel bad, impatient,or angry if other people brings up  
> suggestions which I don’t agree

Wonder if you’ve already tried that couple hundred times on  
the same old matter. 🙂 [for sufficient N of matters if you had]

> and won’t use sarcastic tones to reply newbie’s messages.

There’s also a problem of time available. As one proverb would  
put it, “one can ask so many questions that thousand wizards  
won’t keep up answering”.

So being patient to suggestions one wouldn’t agree to is respecting  
the other side, but being patient to first learn about something  
and then ask why things are this way not the other (and only then  
suggesting to fix or improve something) is even more so.

On Tue, Oct 07, 2008 at 10:25:42AM +0900, Martin DeMello wrote:

> > I never liked the indentation of Python probably as a result  
> > Actually, the more I write in scheme, the more I like its  
> > structure. It all just works.

It’s not about structure in the first place, functional languages  
differ in approach; syntax is an effect, not the cause. See also  
[http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

BTW Ruby is a nice language in terms of softly understanding OOP  
or FP to those who would do C or shell before. IMO much better  
than bare C++ or Java (got headaches), or probably LISP (was too  
young when put my nose in it for the first time)…

On Tue, Oct 07, 2008 at 07:01:31PM +0900, David A. Black wrote:

> Have you written to any C mailing lists, suggesting that C adopt  
> features from Ruby?

Fortuned, sir! 🙂

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 7:39pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/118 "2008-10-08T19:39:46Z")

</div>

Jeremy McAnally wrote:

> Then you’re introducing a big chunk of parser ambiguity. For example
> 
> ```
> if a == b then puts "hello"; puts "world" # end implied
> 
> ```
> 
> Do you mean if a==b puts “hello” _AND_ puts “world” or should you  
> output “hello” if it’s true and “world” no matter what.

I meant it would be equivalent to

if a == b; puts “hello”; puts “world”; end

(I thought I wrote that out in full)

> That would  
> put a big load on the parser to figure out the different between the  
> different line delimiters and how that impacts the code around it.

If the rules are clearly defined, parsers are easy to write. It’s  
certainly much clearer than many of the existing Ruby parsing rules 🙂

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 8, 2008, 5:42pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/119 "2008-10-08T17:42:33Z")

</div>

Then you’re introducing a big chunk of parser ambiguity. For example

```
if a == b then puts "hello"; puts "world" # end implied

```

Do you mean if a==b puts “hello” _AND_ puts “world” or should you  
output “hello” if it’s true and “world” no matter what. That would  
put a big load on the parser to figure out the different between the  
different line delimiters and how that impacts the code around it.

–Jeremy

On Tue, Oct 7, 2008 at 2:35 PM, Brian C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > especially when I write very small code chunk. Not knowing what  
> > … same
> 
> ## Anyway, this is just an idle thought, as it would break lots of things.
> 
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

–  
[http://jeremymcanally.com/](http://jeremymcanally.com/)  
[http://entp.com/](http://entp.com/)

> **[Omg GIFs | GIFDB.com](https://gifdb.com/omg)**
>
> Download Omg GIFs for Free on GifDB. More than 56 Omg Animated GIFs to download.

My books:

> **[Ruby in Practice](https://www.manning.com/books/ruby-in-practice)**
>
> Like Ruby itself, Ruby in Practice will make you more productive. The book shows you practical techniques and strategies for small projects and large-scale environments. A cookbook-style reference, it gives you concrete examples of systems...

[http://humblelittlerubybook.com/](http://humblelittlerubybook.com/) (FREE!)

---

<div class="post-metadata">

**Author:** ![chrisdwan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/7feea3/32.png) [@chrisdwan](https://www.ruby-forum.com/u/chrisdwan)\
**Post date:** [October 9, 2008, 12:34pm UTC](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458/120 "2008-10-09T12:34:17Z")

</div>

Hi –

On Thu, 9 Oct 2008, Ron F. wrote:

> The most important thing to have, when learning a new language, is the  
> flexibility to adapt, the rules, conventions and idioms of that language. The  
> thing that stands most in the way of learning a language is the stubborn  
> requirement that all languages operate in the same way. They don’t won’t and  
> for good reasons.

You might find this interesting:

> **[Coming From Ruby](https://www.infoq.com/articles/coming-from-ruby/)**
>
> Do you "come from" a particular programming language? If so, that's great — but don't forget to take each language on its own terms. David A. Black shares some thoughts about "coming from" a language, and the etiquette of language travel, in the...

Another related matter is the recurrent wish for Ruby to become so  
flexible, including in its syntax, that it will support any imaginable  
programming paradigm and allow redefinition of every operator, literal  
constructor, and keyword. That, too, has never made sense to me. For  
one thing, and by definition, the world needs only one  
pan-paradigmatic, syntax-agnostic language. Once there’s one, there’s  
no need for a second one. So then the question becomes: should Ruby  
take on that role? Or, to look at it another way: should the existence  
of the pan-paradigmatic language necessitate the death of an existing  
language? And if so, should the doomed language be Ruby?

Once you look at it that way, turning Ruby into language soup makes no  
sense at all.

Anyway, a slightly different train of thought, but your comments  
brought it to mind.

David

[Previous page](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458.md?page=5)

[Next page](https://www.ruby-forum.com/t/why-not-adopt-python-style-indentation-for-ruby/104458.md?page=7)
