picolarc the borg language and the next smalltalk: the best ideas all at once - kjell godo

19

Click here to load reader

Upload: smalltalk-solutions

Post on 28-Jul-2015

159 views

Category:

Documents


2 download

DESCRIPTION

picoLARC is designed to be a collection of lisp dialects each of which mimics in style some other programming language like LambdaLisp ( Scheme + Smalltalk ) , PrologLisp , CLisp , C++Lisp , AssemblerLisp , SmalltalkLisp , MLLisp , HaskellLisp , F#Lisp , JavaLisp , C#Lisp , RubyLisp etc. A novel form of method dispatch optimizes leaf cases in LambdaLisp which could be used in Smalltalk also. It makes method lookup equivalent to Array lookup or no lookup at all in a large number of significant cases. An OOP macro system spans all the different dialects. Each dialect can be embedded into all the others except where that causes exceptions. picoLARC is to be implemented first out of Smalltalk and not C. If the Borg will exist then picoLARC will be their language. It is desiged to assimilate all other languages and perfect them by turning them into lisp dialects. Lisp is the best syntax( fullfilling all expressiveness and flexible power except the universal human need for mediocrity ). You can define parenthesis variously like indenting and CrLf if you like. It uses macro Characters. It has a tree based non text editor debugger in addition to Smalltalk like text based ones. Smalltalk has the best Class Hierarchy so each dialect builds on that in style and content. picoLARC takes the best of all languages and combines them into a perfected unified whole. Once picoLARC gets going nothing can stop it. It’s modular and clean and dirty at the same time. Give it a chance to get going. The best ideas all at once. It is a singularity and it ushers in the singularity. It only lacks momentum. A spark to get it going.

TRANSCRIPT

Page 1: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

BorgLisp : All The Best Ideas All At Once

Kjell E Godo

Page 2: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

BorgLisp Agenda

Overview Plan Goals Plan Approach Features LambdaLisp Characteristics AssemblerLisp Characteristics Mixing Lisp Dialects Long-Term Goals Next Steps Business Plan

Page 3: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Overview : What is BorgLisp?

BorgLisp assimilates all other languages as Lisp dialects with mixing and OOP macros

So if a good idea happens in any other lan-guage it can be easily included in BorgLisp

BorgLisp is Social Programming online BorgLisp is proprietary first and soon open

source so no hostile capture can happen BorgLisp is a super set of Smalltalk at first BorgLisp is initially a game programming

website that teaches coding ( Scratch )

Page 4: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

BorgLisp Prehistory

BorgLisp comes from a hatred of all things unSmalltalk but Smalltalk not good enough

BorgLisp was inspired by Cola which mixes Lisp and Smalltalk and VistaSmalltalk

BorgLisp crystallized recently but started in 2005 in the book Lisp In Small Pieces

BorgLisp initially is on Dolphin Smalltalk BorgLisp uses about 100 Classes or less Each Lisp expression gets 1 Compiler and

1 Evaluator Class into the Parse tree

Page 5: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Near-Term Goals

Kid First Then Rest : Social Programming website teaches programming. Real time extreme programming online offered later

Initial website hosts game programming where the game is to make new games

Social Programming is like extreme pro-gramming but online and in real time

In Social Programming each code owning coder has an audience which can make suggestions in real time online

Page 6: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Long-Term Goals

BorgLisp online realtime agile distributed programming with Futures/Options for voting and Forums that can be attachedto any Object

BorgLisp is the fastest most expressive most powerful so you never have to leave it

BorgLisp can spawn other BorgLisps of various shapes and sizes which can solve any programming problem

Page 7: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Main Approach Make the best language by assimilating all

other languages ( as Lisp dialects )

Use Smalltalk like Class Hierarchies ( the most reflective best Hierarchies )

Use Lisp syntax and OOP implementedmacros ( macro::: aProgrammer a b c )

Page 8: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Approach Detail

Every language assimilated as a Lisp LambdaLisp SmalltalkLambdaLisp

SmalltalkLisp PrologLisp HaskellLisp C-Lisp AssemblerLisp MSIL-Lisp etc all mixable

LambdaLisp uses Smalltalk for primitives Everything is an Object ( multiple compilers,

browsers, debuggers, name spaces, hierarchies, compilation targets )

OOP macros across all Lisp dialects Modular Resizeable Retargetable

Page 9: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Language Lisp Dialects

LambdaLisp SmalltalkLambdaLisp SmalltalkLisp PrologLisp HaskellLisp OcamlLisp StandardMLLispCommonLisp ErLangLisp C++Lisp PascalLisp DelphiLisp RubyLisp GoLisp PearlLisp YaccLisp SedLisp AwkLispJavaLisp C#Lisp C-Lisp AssemblerLisp MSIL-Lisp

Etc etc etc

Page 10: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Language Lisp Dialects

Page 11: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Strengths and Advantages

BorgLisp does real time extreme program-ming with programmers in different loca-tions which provides a larger pool of pro-grammers to potential users

BorgLisp assimilates all other languages making them smart by an ability to mix

BorgLisp always assimilates the best ideas all at once to make a language system 10 times better than any good enough lan-guage like Java or C#

Page 12: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

LambdaLisp Characteristics

LambdaLisp is Scheme plus Smalltalk SmalltalkLambdaLisp is Methods only Functions discouraged or outlawed Message: ( at:put: anArray 1 anObject ) Call: ( in:at:put: anArray 1 anObject ) Message: ( at:put- array 1 obj1 obj2 obj3 ) Call: ( in:at:put-- array 1 obj1 obj2 obj3 ) Special forms let letStar lambda define etc All of Smalltalk usable from LambdaLisp Most message selectors are variables ( # )

Page 13: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

LambdaLisp Message Sending

GenericFunction Message dispatch ( GF ) Smalltalk uses Dictionary of < Symbol

Method > pairs in Classes LambdaLisp: ( reclineOn: chair deck ) Smalltalk: ( chair reclineOn: deck ) LambdaLisp uses Dictionary of < Class

Method > pairs in GF All Method subClasses included in GF Unique leaf Method special case no lookup Object Method special case Array lookup

Page 14: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

LambdaLisp Experience

LambdaLisp tail call optimization was hard Had to make special debugging windows

for compile time activation stack and source code selections to see where I'm at

Probably spent way too much time on tail call optimization ( let … ) ( letStar … ) ( lambda … ) interactions but it's done

The rest of it should go easy Not sure how social programming should

work. How to scale it. Need TCP/IP help.

Page 15: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

AssemblerLisp Characteristics

Looks like lisp encoding of machine lan-guage with all addressing modes implemen-ted and tested for the Intel ADD instruction

( add ( intoFrom: EAX ( at ( - BPX stackVar1 ) ) ) )

The OOP macro system can generate AssemblerLisp for dialects like C-Lisp

Now we need to implement all the other Intel instructions according to a pattern

Page 16: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Dialects That Could Be Added

Since all languages are in BorgLisp that in-cludes hardware design languages

Domain specific dialects that deal with ge-netics and etcetera will also be in there

When BorgLisp is more written in itself then new domain specific dialects should be easy to implement

If BorgLisp gets momentum it can ask other language implementers for BorgLisp dia-lects of their languages

Page 17: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Mixing The Dialects

( … ( prolog … ( assembler … ) … etc … ) ( haskell … ( java … ( c … ) ) … ( c# … ) ) The initial language designation is popped

off the front to select the dialect compilers Then compilers work as usual on ( … ) Each expression Compiler Class is associ-

ated with one main Evaluator Class Each Compiler creates one Evaluator The design is very scalable to new dialects PrologLisp is mostly coded but not tested

Page 18: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

BorgLisp Next Steps of Action

BorgLisp needs an angel investor to get it going as a social programming app

Once it gets going it should attract all lan-guages to itself upgrading them all to smart

After 5 years the business model goes open source with BorgLisp written in itself

BorgLisp will assimilate and obsolete all other languages within 5 years if funded

The best ideas finally win over the good enough ideas and tired old traditions

Page 19: picoLARC the Borg Language and the Next Smalltalk:  The Best Ideas All At Once - Kjell Godo

Business Plan

BorgLisp is online with a rental business model. So that's all programmers * $3/m = $3M/m. ( 3% : $90K/m = $1M/yr = 5people + $500K cloud rentals )( back of envelope )

Social programming. Social game making BorgLisp can never go obsolete because it

always assimilates all other languages BorgLisp eventually goes open source so

there is no danger of a hostile capture to potential users