Skip to content

[PROP] REP XXXX Adding other Red dialects

Gregg Irwin edited this page Jul 25, 2018 · 1 revision
REP: XXXX
Title: Adding other Red dialects
Author(s): Donald Tsang
Status: Draft
Date Created: ?????
Date Last Actioned:

Dialects of different programming paradigms

  • Red/Script that acts like Python-Django, Ruby-Rails, PHP and Perl
    • A programming dialect that has the syntax structure of Python or Ruby
      • If one wants to write Ruby/Python/whatever, s/he better use Ruby/Python. This would provide no benefit for Red, and most people working on or waiting for Red do so precisely because they appreciate Red is not like Python or Ruby.
      • Since it is said that Red is the first "Full Stack Language", it would be good to at least give incentives to students who learnt Ruby/Python in school to learn Red once they finish their curriculum.
    • Having a Web-App library/framework that is similar to Rails/Django
      • In the sense of capable-enough solution, it will only take a "moderately finished" Red and some time before it will start happening (more accessible to general [coder] population)
      • But it will of course look different and I'd bet it will be more simple (less noise in the templates/code/routing etc.)
    • There has been an example of such a language, but it did not take off properly
  • Red/Lisp that acts like Clojure/Haskell/Erlang/Scala
    • Please specify how exactly you think Clojure/Haskell/Erlang/Scala "act" i.e. what they or their approaches have in common and how would you extract it into dialect ?
    • also, Red is lispy-enough already (dialects/PARSE/different evaluation modes for arguments)
    • Is it possible to contain all lisp-like functions from these languages?
  • Mobile Programming Languages that goes or compete with Haxe
  • The Research Process
    • Firstly, seek input from relevant communities, and see what them a part of the category,
    • Secondly, from the same community, see and what makes each language special or superior.
    • Thirdly, understand the characteristics of speciality and commonality of the language.
    • Fourthly, see what are the conditions that will make them switch programming languages.

https://en.wikipedia.org/wiki/Cross-platform#Cross-platform_programming_toolkits_and_environments

Dialects of different internet languages

  • Having Red/Web that works with or replaces HTML, CSS, XSLT, XML etc. (see W3C Recommendations)
    • Dialects for HTML ands CSS should be relatively simple . But are they necessary in (especially pre 1.0) core ? (in the future, I hope)
    • As soon as first web frameworks start to appear, we can be sure someone will write them (because HTML & CSS suck)
  • Having Red/Database that works with or replaces JS, SQL, NoSQL-DB and other languages (see ISO standards)
    • Red already is a nice dialect for Replacing JS (if someday JS gets added as compilation target).
    • Dialect for SQL generation seems TRIVIAL (write it as learning experience; doesn't IMO belong in core, rather into some SQL DB interfacing lib).
    • But what exactly is "NoSQL dialect" supposed to do (http://nosql-database.org/)
      • But a dialect is basically a notation, a way to describe something (other code can assign it some meaning, or transform it into another form). NoSQL is cover-term for a bunch old solutions for persisting data. [Hyper]Graph databases, key/value stores, document databases and [native] object store databases, there IMO cannot be "one dialect to talk to them them all". Start by bindings and dialects for querying concrete NoSQL stores, and where regularities will arise, you can abstract over them later.
    • Either Red is comprehensive enough to replace other languages, or is compatible enough to use with other languages.
      • No dialects needed. Red, Red/System. If it is necesary to interface leggacy code, there are (or will be) C ABI compatibility, Java/.Net/Cocoa bridges, sockets & protocols, what more is needed ?
        • I assume Red/System ⇒ Red (+ Red/Script) ⇒ Red/Web (+ Red/Database ?)
    • Library Integration (mostly JS)
      • What about SQL and DB Libraries?
    • https://en.wikipedia.org/wiki/Solution_stack
    • https://en.wikipedia.org/wiki/List_of_Apache–MySQL–PHP_packages
    • http://sixrevisions.com/web-technology/web-languages-decoded/

Unification

Dialects for Easter Eggs (relatively small bits for giggles, only release for milestones)

References

First Grade Second Grade Third Grade
Low-end C, C++ Rust, D
Functional Scala Clojure, Haskell, Erlang F#, OCaml, Prolog
Scripting PHP, Ruby, Python, Perl
Web Javascript, CSS Coffeescript, XSLT SQL, XML, TeX
Lispers EmacsLisp, CommonLisp, Scheme
OO? C#, ObjC, Java VB, Go, Swift, Arduino, Lua
Database? MatLab, Groovy Fortran, Delphi
Shell? Shell Powershell
Others? ASP, Dart, Tcl, Puppet, ColdFusion, Processing, Actionscript, Truescript
* ASM languages:
    * https://en.wikibooks.org/wiki/X86_Assembly/x86_Assemblers
    * https://en.wikipedia.org/wiki/Comparison_of_assemblers
    * https://en.wikipedia.org/wiki/Microassembler/
    * http://c2.com/cgi/wiki?LearningAssemblyLanguage/
    * http://www.freebyte.com/programming/assembler/
    * http://www.cs.cornell.edu/talc/
    * http://asm.sourceforge.net/
    * http://www.int80h.org/
    * http://www.nasm.us/
    * http://www.plantation-productions.com/Webster/
Clone this wiki locally