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.

