Spoiled is an understatement. I wrote a lot of programs in debug (DOS). And 
it was nice! Turbo Pascal was what really spoiled me. :) I miss the in-line asm 
days.

Dex

> On May 3, 2020, at 9:46 PM, George Neuner <[email protected]> wrote:
> 
> 
>> On 5/2/2020 4:58 AM, Dexter Lagan wrote:
>>   For the sake of discussion, here’s a long rant:
>> 
>>   I might have a very uninformed opinion here, but wouldn’t having 
>> significant white space and no scope-defining character amount to multiple 
>> spaces and line feeds being part of the syntax? The next best thing being, 
>> allowing semicolons in place of line feeds. I’m no language designer, so let 
>> me try to give you my perspective as an average programmer:
>> 
>>   I find editing Python and Haskell a pain, because of white spaces. I can’t 
>> count the times I got that dreaded ‘invalid indentation’ error, because I’m 
>> editing code with a different editor on a different system. I also had to 
>> reformat entire programs after somebody saved using the incorrect tab 
>> setting, and I avoid Python because of this. Yet I haven’t heard this 
>> complaint from Python programmers, so I always believed I was just too dumb.
> 
> Python is as much a cult as a programming language.
> 
> 
>>   I haven’t seen a better solution than s-expr to make expressions and scope 
>> ultra-visible and easy to manipulate. Yet s-expressions still bring their 
>> own requirements for comfortable editing: most people still require a 
>> specialized editor or a plugin for lisps. I fact, is there any language that 
>> doesn’t require some sort of plugin or specialized editor to be attractive 
>> to new programmers? Thinking of it, isn’t the IDE almost as important as the 
>> syntax or the language these days?
> 
> For most languages, IDEs are mainly needed for debugging.  For just editing, 
> the majority of languages really don't need syntax or structure awareness.  
> Syntax coloring is nice, but programmers got along fine without it for ~50 
> years.
> 
> Most languages in use now have syntax based (however loosely) on C and mostly 
> are not WS sensitive.  The compiler doesn't care about how the code is 
> formatted:  there is a statement terminator (or separator [there is a 
> difference]) character that serves to keep the compiler synchronized with the 
> source.
> 
> In Pascal, you can write an entire program on a single edit line. In C and 
> C++, the preprocessor is line sensitive, so it isn't possible to write a 
> whole program in one line - but the mainline code is WS indifferent, and you 
> can write entire functions, or even multiple functions, in one line.
> 
> But no one does that except in those competitions trying to pack a whole 
> program into 255 characters or less.
> 
> For most languages it is visual debugging: tracing and breaking execution, 
> probing runtime values, while seeing the source ... *that* is where an IDE 
> comes into its own.
> 
> 
> S-expr languages are different in this respect because they are expression 
> based rather than statement based.  Expressions can be nested arbitrarily, 
> and it is more difficult to visually identify things without some editor 
> assistance like coloration, parenthesis matching, and syntax directed 
> indentation.
> 
> S-expr languages have long used - though not required - indentation as a 
> guide to visualize program structure.  When you program with Racket (or 
> Scheme or Lisp) for a while, you cease to see the parentheses and really 
> mostly see only the indentation structure.
> 
> For debugging: tracing and breaking S-expr code is more complicated to 
> *display* and interact with reasonably - the UI matters greatly to programmer 
> efficiency.  But the actual debugger internally is not really much different 
> from a debugger for a statement language - it's mostly how the programmer 
> interacts with it that needs to change.
> 
> 
>> Some JavaScript programmers can’t work without VSCode, scope-sensitive 
>> autocomplete, a linter and god knows how many other plugins. PHP programmers 
>> also feel naked without a fancy IDE and a host of plugins. I keep hearing 
>> people complain about x or y language because it doesn’t have a good editor, 
>> IDE or plugin for VSCode. Globally, people use more and more tools to 
>> program in the same languages.
> 
> Programmers today are spoiled.  My first program was written on a teletype 
> connected by modem to a PDP-10 at some nearby college.  It took half an hour 
> to get a 10 line program working.
> 
> 
>>   That’s what turned me into a sort of ‘digital minimalist’. I take comfort 
>> in not being dependant on anything other than a compiler/interpreter and a 
>> simple editor I can whip out of any system in seconds. I think there’s value 
>> in reducing our dependencies, including on tools, editors, IDEs and plugins. 
>> That being said, I love DrRacket and its facilities, also because it’s 
>> self-contained and bundled with Racket. One less thing to install.
>> 
>>   These are the considerations I’d take in account when thinking of a new 
>> syntax. Still, like I said before, I’m excited by the fact that the Racket 
>> team is looking for a solution to this problem, and I’ll be the first to 
>> applaud a way to keep the next Racket expressive and powerful, while making 
>> it more attractive to people used to more familiar syntax. Parentheses are, 
>> and always will be a barrier to entry for potential Racket adopters, and 
>> this is no small matter. I think Julia is a good example of the right 
>> balance between simple, attractive syntax and power. Are there downsides to 
>> their approach?
> 
> Julia is interesting, but I confess, I don't know it as well as I probably 
> should.  It claims to have reflective macros, so that would make it a data 
> point in favor of a non-S-expr syntax.
> 
> But one thing I'm not a fan of is cluttering source with compiler directives. 
> Julia uses directives rather liberally to control threading, and I find that 
> distracting.  YMMV.
> 
> 
> George

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6ACE69A2-040A-464C-9AE4-55E547E98FF4%40gmail.com.

Reply via email to