Re: Java versus Python

  • From: "black ares" <matematicianu2003@xxxxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Mon, 20 Jun 2011 23:30:28 +0300

yes but you will know that there is a problem before give the program in real use.


----- Original Message ----- From: "Littlefield, Tyler" <tyler@xxxxxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Monday, June 20, 2011 10:16 PM
Subject: Re: Java versus Python


No, it would do exactly what I said it -would- do, which is complain about brace issues lower since it doesn't know where the if statement was going to end. It would complain, as you said when it seen the next method.
On 6/20/2011 1:00 PM, Sina Bahram wrote:
In the example you just gave, it would tell you that you have a missing right brace, if that's the last code block in the file; otherwise, on the immediately proceeding line, presumably another function, per your own example, it would complain about the method
declaration.

In other words, in the example you gave yourself, it would do exactly what you said the compiler would not do.

Take care,
Sina

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Littlefield, Tyler
Sent: Monday, June 20, 2011 12:42 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java versus Python

First, my name is tyler.
Second. I'm saying that sometimes a compiler does not stop you if you
forget a brace. For example:
if (bla)
{
...


...
}
where the last } is the closing brace of a function.
On 6/20/2011 10:28 AM, black ares wrote:
show us tiller an example in java
where the compiler don't stops you when you miss a brace.

----- Original Message ----- From: "Littlefield, Tyler"
<tyler@xxxxxxxxxxxxx>
To:<programmingblind@xxxxxxxxxxxxx>
Sent: Monday, June 20, 2011 6:10 PM
Subject: Re: Java versus Python


A compiler may not always stop when you forget a closing brace, just
as python may not always stop until later when it realizes your
indentation is scrued up. sort of depends on what's going on. You'll
usually get an error about it, and the error will be lower in the
file, which makes both equally as hard to track down.
On 6/20/2011 7:36 AM, Homme, James wrote:
Hi,
I'm probably going over this way too much. If you have something
that talks to you or that you can feel when the indent level
changes, you have something that helps you guard against issues like
this. Whether you pay attention to that information might be another
thing. This reminds me of filtering out Google adds on the web.

I totally understand your point, though, about the language forcing
a stop in the compile or run process when it sees a missing close
brace. It does seem like a problem that could bite you when you rely
on the parser to think that it understands where you intend to end a
code block, rather than forcing you to explicitly tell it in some
piece of text where you mean it to end.

 From a screen reader point of view, I honestly like the brace
option or>  the end keyword option better than relying on changing
indentation>  level, but I also feel that for me, at least, at my
current learning>  level, I'm willing to take the risk of missing an
indent level if>  Python finally becomes the tool that gets me over
the fear of learning>  object orientation. That won't end up making
me feel that Python is the>  best language, though. It may well end
up helping me pick up a language>  more practical here at work, like
Java. Both would make me very happy.

Jim
-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of David Tseng
Sent: Monday, June 20, 2011 9:19 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java versus Python

From what I gather, Sina's making a point of failure argument against
python.  Consider any two if blocks in python and java. The python
block contains statements subject to indentation for symantic
purposes.  In java, there's simply one point at which the programmer
needs to close the block.

Obviously, many trumps one if you consider where the writer of the two
blocks has a possibility of doing the wrong thing. In practice, this
does seem to be true from my experience especially when many people
especially blind people touch the same file.

On 6/20/11, Homme, James<james.homme@xxxxxxxxxxxx>   wrote:
Hi Sina,
I'm probably totally missing a point because of my inexperience
with various
languages here. Should I be trying to make a connection between the
point
about indention (I like the head banging analogy) and the parser and
variable typing stuff?

Regarding variable parsing, I understand that, for example, the
Java parser
can more easily get upset with me if I forget to specify the type of
something than the Python parser would. I also understand that the
Python
parser needs to check to see if I put some sort of quotes around
something
to tell if it's a string or some kind of number, and that it needs
to check
the number to see if I use a decimal point to figure out whether or
not it's
a float or an integer. I also understand that Python knows that a
colon
character signals that the next line should be indented, and that
certain
keywords start a code block, such as class, def, if, for, and
others. I also
understand that the Java parser wants me to put a left brace at the
beginning of a class or method, and a right brace at the end of a
class or
method.

What am I misunderstanding here?

Thanks.

Jim

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Sina
Bahram
Sent: Monday, June 20, 2011 7:52 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java versus Python

There are two issues, just so we don't' conflate them.

One is the issue of the grammar in question, and the second is the
parser
for this grammar.

So, the grammar for java uses left/right brace for block level
scoping, and
the grammar for python uses indention level.

Short humorous aside, everyone says indentation instead of
indention, but
isn't indentation what you actually do to someone's head
in a fight, not to your code? Sorry, I love grammars, regardless of
context,
*smile*, pun intended.

Ok, so if one were to simply say that missing a space is like
forgetting a
brace, then, everything else being equal, it would be a
similar error; however, it isn't exactly the same thing. Spacing for
indention purposes happens on a line by line basis, as opposed
to the one time operation that is putting, or not putting, an
opening/closing brace.

Also, forgetting a closing brace leaves a block of code open, and
forgetting
a space instead closes a block.

Ok, so now if we have some code, if I forget a closing brace,
that's not
fun, but it's at least pretty easy to detect because
chances are that I'll open a method declaration or do something
else that
doesn't happen inside of a block.

If I forget a space, i simply close the block, so a bug can stay there
forever, because all that's happened is that I've simply
closed it one line too soon, or maybe a few lines too soon ... so
that code
still runs, but maybe just not on the conditional I
want, or maybe it overrides a value.

In other words, I'm putting forth that forgetting a closing brace is
actually more destructive than forgetting a space, but because
of this, the parser quickly ends up finding something that is an
illegal
syntax error or just something at the semantic level that
doesn't make sense, and so there's a much higher chance of you
finding out
about it before you ever come to run your program even
once.

That, I hope, addresses the issue of grammars.

Now, moving onto parsers.

The parser for Python, I feel, and this is subjective, doesn't give
as good
feedback to the programmer as the java one does. The
reason for this really isn't the python guys' fault, at least not
always,
and that's because of a lack of typing. Because of this,
sometimes error messages are perceived as vague and not useful.

In java, alternatively, the compiler knows exactly what its
expecting, what
would even make the code syntactically correct, and so
not only can it give you feedback along the lines of an argument
being of a
wrong type, but tell you what it was thinking should go
there instead.

Anyways, just some thoughts.


Take care,
Sina







-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Homme,
James
Sent: Monday, June 20, 2011 7:25 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java versus Python

Hi,
What would Java have done in a case like this? According to me,
this would
be a logic error whether or not it had anything to do
with indentation. I would think that it would be very easy to miss
a right
brace at the end of a code block. This would especially
be true since Java allows you to have a single statement without
using a
right brace. It could be that I am missing something here
in my thinking.

Jim

-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Ken Perry
Sent: Saturday, June 18, 2011 12:22 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Java versus Python

This is true while I won't get into the what language is better
since I
write in too many in my job to even want to have an opinion people
need to
realize that miss placed spaces are nothing like context problems
in other
languages.  If you miss place a block of spaced lines you don't
just cause
an error in the code.  In fact the code might run along happily
with no
errors but the code won't do what you want.  This is one of the
down falls
of python.  There was actually a bug in the Icon and Braille+ that
has been
out for years that we only just recently found because of this very
fact.
One of the sighted guys that works on the project even missed it
because the
block of 10 lines of code just looked like it was supposed to be
out there
on its own.

Ken



-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of John J.
Boyer
Sent: Friday, June 17, 2011 11:38 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java versus Python

The mandatory indentation in Python means that a single misplaced
whitespace
can entirely destroy a program. This is not very robust. C programmers
usually make sure their code is nicely indented by using a utility
like the
Gnu indent. I'm still looking for something similar for Java. Manual
indentation is too error-prone.

John

On Fri, Jun 17, 2011 at 08:32:55PM -0600, Littlefield, Tyler wrote:
Java uses it's indentation much like braces are used. It's not where
things have to be in specific columns, but indentation sort of solves
a couple problems.
1) It means that all blocks of code are denoted by a deeper
indentation level than the block that branched it.
2) It also means that people usually stick to a nice style. I've seen
a lot of different code, for example:
while (bla)
do_something();
while (bla) {
do_something
}
while (bla)
{
do_something();
}

Indentation can be a bit hard to get used to, but I personally
like it
quite a lot.
On 6/17/2011 8:30 PM, John J. Boyer wrote:
The thing I dislike about Python is mandatory indentation. This
seems
to me a throwback to the old days of assembly language and Cobol,
where things had to be in certain columns. I like the free-form
syntax of Java and C.

John

On Fri, Jun 17, 2011 at 07:15:55PM -0700, David Tseng wrote:
I personally find arguments about programming languages much
analogous to those seen in politics.  Both sides have great points
but tend to drive one another towards opposite extremes.  Some
camps
are die hard dynamic language practitioners while others stick to
strongly typed code.

I will say that strongly typed languages have kind of won the
battle
historically.  Most of the industry writes in C-styled languages
like C/C++, java, etc.  Lisp, still beloved by many, kind of lost.
Python, as many have shown, works wonderfully and frees up
coders to
actually code, is still largely a wrapper on C. For those who want
absolute performance, it's considered still an extra level of
indirection that's not worth the productivity gain.

I love python and its free-form style and the amount of progress
you
can make using it. Python excels at the rinse and repeat (compile,
run, fix) style of coding.  The few seconds you need to compile a
C-styled language and run, you're already fixing the bug in python.
You're not babied into writing object-oriented code ala java, but
can independently mix in functional aspects if you wish.  You can
just as easily go OO if you want as well.



On 6/17/11, Alex Hall<mehgcap@xxxxxxxxx>    wrote:
Programming is certainly a matter of preference in most
situations.
I would probably give up if the only option were php, since I
really hate that language (no offense to anyone). Java is easy
enough, but I agree that it feels bulky at times. I like Python's
ease of use and readability, plus you can create executables with
it, something that is difficult in java. Some people don't like
that python is loosely typed, but I prefer saying:
name=raw_input("Enter your name: ") to, if memory serves:
name=new String();
in=new InputReader();
name=in.readLine();
or something along those lines.

On 6/17/11, Littlefield, Tyler<tyler@xxxxxxxxxxxxx>    wrote:
I've used both. I really like python because it comes on most
*nix
systems. I also like Python because of it's flexability and
versatility.
Java is nice enough, but it feels big bulky and clunky to me.
That
and they seem to have some serious naming convention issues.
Sometimes things are capitalized, sometimes they're not--.net
makes
more sense.
On 6/17/2011 6:49 PM, John J. Boyer wrote:
There has been a lot of discussion on the list lately about
Python. Why is that?Personally i much prefer Java. Its syntx
makes a lot more sense and it is just as powerful, if not
more. A
command-line build system like ant can take most of the
hassle out of
working with Java classes.
personally, I prefer this to Eclipse.

BrailleBlaster is written in Java. I am using openjdk-1.6,
Eclipse SWT and Apache Ant.

John

--

Take care,
Ty
my website:
http://tds-solutions.net
my blog:
http://tds-solutions.net/blog
skype: st8amnd127
My programs don't have bugs; they're randomly added features!

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind


--
Have a great day,
Alex (msg sent from GMail website)
mehgcap@xxxxxxxxx; http://www.facebook.com/mehgcap __________ View
the list's information and change your settings at
//www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind
--

Take care,
Ty
my website:
http://tds-solutions.net
my blog:
http://tds-solutions.net/blog
skype: st8amnd127
My programs don't have bugs; they're randomly added features!

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind
--
John J. Boyer; President, Chief Software Developer Abilitiessoft, Inc.
http://www.abilitiessoft.com
Madison, Wisconsin USA
Developing software for people with disabilities

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind


This e-mail and any attachments to it are confidential and are
intended
solely for use of the individual or entity to whom they are
addressed.  If you have received this e-mail in error, please
notify the
sender immediately and then delete it.  If you are not the
intended recipient, you must not keep, use, disclose, copy or
distribute
this e-mail without the author's prior permission.  The
views expressed in this e-mail message do not necessarily represent
the
views of Highmark Inc., its subsidiaries, or affiliates.
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind



--

Take care,
Ty
my website:
http://tds-solutions.net
my blog:
http://tds-solutions.net/blog
skype: st8amnd127
My programs don't have bugs; they're randomly added features!

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind





--

Take care,
Ty
my website:
http://tds-solutions.net
my blog:
http://tds-solutions.net/blog
skype: st8amnd127
My programs don't have bugs; they're randomly added features!

__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts: