I fail to see confusion as a bad thing though. For me confusion is part of the learning process. Being successful at something is about developing the skills for it and that takes time and practice.�

I am no beginner or pro coder but frankly I am glad that assignment is := and comparison is =. Cant stress enough how many times I made the stupid mistake in python (the language I have most coding experience with) doing a if a=1 instead of if a==1 and its a bug that is painful to spot . Maybe I am smalltalker by birth :D but for my brain comparison is =. And though I had many arguments with my brain about it, he does not seem to want to change its mind about it.

Frankly I dont think seeing that = in different color would make much of difference at least for my mistakes. �But definitely would not hurt either.�

About command completion cant stress enough how crucial is for people like me with very bad memory. I keep forgetting names of people that have met recently, method names and class names have no chance of being remembered , when I have to deal with hundreds and thousands of them. I would love if my brain had some kind of autocompletion but it looks like my brain still runs on Windoom.�

Again with messages sends and multiple arguments , I love the mandatory keyword argument about Smalltalk again for someone like myself with real bad memory is just a ton of help. I just dont want to go back to unnamed arguments. �Again code completion helps here.�

Anyway I know this is a single opinion but I am still a beginner smalltalker though not a beginner coder. Because there is like a ton of people that out there try to identify what went so bad with Smalltalk and never become truly popular , my opinion is that it has nothing to do with the language. The language is brilliantly simple and straight forward, I wish I could say the same about the libraries. Its the libraries I struggle the most when I play with pharo.�

At time I am afraid to look at the next method because I feel it will be the portal to spaghetti hell. I cant think a bigger nightmare for a newcomer especially when there is lack of documentation. For me thats the true dark side of Pharo. But again just an opinion.�



On Fri, Apr 4, 2014 at 8:26 PM, J.F. Rick <self@je77.com> wrote:
On Fri, Apr 4, 2014 at 6:41 PM, Ben Coman <btc@openinworld.com> wrote:
For assignment, I would say bold both := and the variable being assigned to.

I like that a lot, especially since it draws the two critical elements of variable and assignment together. On a minor note, both := and = are currently the same color: black. That only furthers the ":= is a message" misconception. It might be worthwhile also giving := its own color, given its uniqueness.
Underlining sounds interesting, but there are a few choices:
a. nested underlining - self someMessage: (self otherMessage: arg 1 and: arg2) and: arg3
b. non-nested underlining - only underline #otherMessage:and: and not #someMessage:and:
c. dynamically underline only message where cursor is located.

I think you could do nested underlining in the same way that nested blocks and parentheses work. someMessage: and the second and: are underlined in black. otherMessage: and the first and: are underlined in green. That way nesting is clear. This would also be useful for code with nested conditionals, probably the most common occurrence of nested multi-part messages. I also like (c) as a minimally intrusive change that could help novices when they write code. It has the disadvantage that novices couldn't look at a piece of foreign code and get where the multi-part messages were.�

Cheers,

Jeff

--
Jochen "Jeff" Rick, Ph.D.
http://www.je77.com/
Skype ID: jochenrick