5 ms·
> [ ] Syntax is what makes programming difficult I'd love to see language design and language development treated as different disciplines. Just like develope
by everdev 7y ago
> [ ] Syntax is what makes programming difficult
I'd love to see language design and language development treated as different disciplines.
Just like developers were the first web designers, developers have been the first language designers.
Ideally a language designer would only be tasked with how to express complex ideas in a simple, composable syntax.
Language developers would be tasked with everything else: basically making those ideas work as efficiently and consistently as possible.
Not to say a language designer and developer can't be the same person, but I think there might be some benefit to having a linguist (with some understanding of development) and a developer (with some understanding of linguistics) team up on a new language.
- hderms 7y agoI agree as the biggest test of new language features that involve syntax changes is not the superficial situations it makes easier, but how that feature works with other features that currently exist.
- NOGDP 7y agoThe amount of compiler and language theory needed to design a language that is also practical to use and implement is far greater than what a UI designer needs to know about web technology. If there was a language designer that wasn't also very knowledgeable about the implementation and use side of things, they would probably be pretty useless outside of syntactic sugar type stuff.
- afiori 7y agoOn the other hand experts in their own field have a better chance at having a complete idea if what is needed. For example, from a theoretical computer science perspective of programming languages handling backwards incompatible change is not a hot topic. Or also compiling ergonomics (as a slight counterexample to my own point, stack, the build system for Haskell has a shebang mode where you can take a Haskell source file and transform it into an executable by prefixing some magic comments)
- MattRix 7y agoSyntax is really not what makes most programming difficult at all. We have languages with really good syntax now, at least for the fairly low level most programming languages operate in (storing and retrieving variables, calling functions, etc). The only way I could see what you're proposing making sense is if you got the linguist to design a much higher level language that operated on more concrete concepts. Some kind of domain specific language.
- nudq 7y ago> a linguist (with some understanding of development) Your wish has been granted: Larry Wall, Perl 6.
- rbonvall 7y agoAnd, for that matter, Perls 0, 1, 2, 3, 4, and 5. https://perldoc.perl.org/perlhist.html#INTRODUCTION https://perldoc.perl.org/perlhist.html#INTRODUCTION
- lizmat 7y agoPlease note that Perl 6 has been renamed to Raku (https://raku.org https://raku.org using the #rakulang tag on social media).
- exdsq 7y agoI agree with this point of view. I’m a part-time MSc student in CS and have enrolled in a few courses in both linguistics and philosophy (how to convey ideas through language, non-CS) with the goal of designing a language for my thesis. At a theoretical level they seem connected but I’m mostly just interested in how they relate at the design and implementation level!
- darkkindness 7y agoThis might interest you (and anyone reading this thread): AnyDSL is a language framework that separates the concerns for both viewpoints (designing for expressivity, designing for abstracting 'complex ideas') but also that of the machine expert (designing for efficiency). I'm not affiliated with AnyDSL, I'm just parroting the blurb on its main site[0]: > When developing a DSL, people from different areas come together: > - the application developer who just wants to use the DSL, > - the DSL designer who develops domain-specific abstractions, and > - the machine expert who knows the target machine very well and how to massage the code in order to achieve good performance. > AnyDSL allows a separation of these concerns using > - higher-order functions, > - partial evaluation and, > - triggered code generation. [0] https://anydsl.github.io/ https://anydsl.github.io/
- iLemming 7y ago> Ideally a language designer would only be tasked with how to express complex ideas in a simple, composable syntax. It feels like you're talking about Clojure.
- zmmmmm 7y agoWhat you ask for is what has been going on in the JVM space for 20 years or more. At a lower level, LLVM is similar too.