Darryl Pierce wrote in post #1117038:
How does additional indentation rather than using braces make for less
typing or more compact code? It would seem to me to be the opposite,
using spaces to define a code block makes for longer source files. I’m
talking about the code that I write, as opposed to the code that’s
generated by some code processor.
Well, have you used haml before? It is the same thing; instead of
writing all the HTML tags, you used some convention, and the convention
is based on indentation besides other things. I think the proponents of
indentation (and the removal of “end” keyword) want a different way to
input the code, but the end result is the same. Just like haml code
will be transformed to HTML code, the proponents want to be able to
write
if condition
exec1
exec2
exec3
and it will be transformed to
if condition
exec1
exec2
end
exec3
Of course, the original syntax is still there, and a person can choose
which method to input the code, probably with different file suffix if
the end keyword is to be made optional. I proposed this in 2002 and I
created for myself a simple translator.
We can
also think about Groovy and Java, and to different extent, Dart and
JavaScript.
Can you explain this part to me, please?
Groovy and Java are fundamentally the same, because all Groovy code will
be compiled to JVM. But in Groovy a lot of things are optional, such
as declaration of variables, so the code is more concise. Similarly,
all Dart code will be translated to JavaScript code. You can just
Google Groovy and Dart to get more information.
Best regards,
Bill
What I dislike about indent is that you need to satisfy the parser in
order to make the program run.
It’s like an additional control element, like ‘;’.
I do not think a language should care about indentation.
With that having said, I concur with the initial statement - “end” does
not give me, as a programmer, meaningful information. I only have to use
it to satisfy the ruby parser - in python, you can omit that, but you
(a) must then indent properly (which is, again, to satisfy the parser)
and (b) you have to use the strange ‘:’, which is annoying.
What I would love to have, however, would be a per-file option that
would allow me to omit end for a given .rb file. Just like shebang or
encoding lines could be used.
I could then write specific classes in a single .rb file (one class per
file) and they would be more readable too.
It’s interesting the terminators in ruby which are end, }, ||, && are
all
basic syntax sugar for semi colon ;
The colon in python reveals that it’s actually a syntax tree where the
colon probably saves the interpreter a single pass.
Both Ruby and Python have different philosophies. Pythonists enjoy the
concept of “one way” style which probably makes it easier to study other
programmers code simply because it looks the same as yours where
Rubyists
enjoy the various programming styles which lack such restriction i.e. it
can look like anything which opens up many contexts which can be useful.
OP if you like the concept of restriction within ruby you are correct it
wouldn’t be difficult to make simply because it won’t stop you from
doing
so but it may be difficult in getting your idea adopted simply because,
as
I mentioned, ruby programmers enjoy having a programmable programming
language over just a general purpose one.
FWIW I helped a friend once with a simple hack to allow them to write
python with 2 spaces. Also nothing more than a small quick one-line hack
to
make it work.