osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Request for opinions: A cross language development tool


*

Hey!

I would like to know your opinions about a project a friend and I have 
been developing for about a year now, which we really think could 
empower Python. Today Python is mostly used on servers. Many people who 
want to develop an app will choose Python to write the backend and 
develop frontends in Java, Swift, Javascript, etc. We think Python is 
great, and we don't see why we shouldn't be able to write a native iOS, 
Android or web app entirely in Python. After all, these languages share 
the same concepts, more or less (classes, functions, exceptions, etc) 
and what really separates them is syntax. We're proposing a new 
approach: developers will code in their favorite language, such as 
Python (woot woot!), and be able to import Java, Swift and Javascript 
code from Python, and use that code as if it were written in Python. 
Python code will run on just about any platform, including the web.


**

So how does this magic work? We developed a new compiler platform called 
Bridge. At the heart of Bridge is the Bridge Extensible Code 
Representation (BECR). Code in any language is parsed into an AST and is 
then translated to the BECR. The BECR supports common programming 
concepts (if, for, while, etc) and it can also be extended to support 
new concepts in order to ease the translation from the source language. 
Therefore, the translation from the source language?s AST to the BECR is 
easy as it**merely translates syntax. Then, Bridge translates the BECR 
to LLVM IR and from there the code can be compiled to x86, arm, asm.js 
or any other LLVM backend*. *After code has been translated to BECR, it 
doesn?t matter what the source language was, and the syntax barriers 
that stopped languages from working together disappear. This means that 
once more languages will be translated to the BECR, they will be able to 
work seamlessly together.

**

Today, we have a basic demo showing an Android app written in Python 
displaying native Android buttons and labels inside a native scroll 
view. In this demo, Python code can import Java classes and inherit from 
them.


Soon Bridge will be released as an open source project. We?d love to 
hear your opinions about this project. We?re really excited and we can?t 
wait to see Python being used in more and more places!


**

Thanks, Tal**

*