
Creolabs: Language, IDE and UI framework for building native apps - theraven
http://creolabs.com/#download
======
Cyph0n
Why not embed a Lua interpreter? Or maybe a Wren [1] interpreter for something
different? I don't understand why they developed a language and VM from
scratch. And I thought I over-engineered my projects. The time spent
developing and maintaining that could be directed to something more directly
related to your product.

[1]: [http://munificent.github.io/wren/](http://munificent.github.io/wren/)

~~~
oblio
Well...

Wren: "Wren is small. The VM implementation is under 4,000 semicolons." MIT
Licensed.

Creo: "Gravity has no dependencies and the VM implementation is under 4000
lines of C99 code." Closed source, but: "We <3 Open Source and we'll soon
release Gravity as source code into our GitHub account." They'd be allowed to
take Wren closed source and then modify it.

Of course, this is pure speculation, the VMs could be completely different for
all I know.

~~~
redindian75
Looks like it was written from scratch [1] -

Quote: "I generally don’t like to reinvent the wheel so I tried to look at the
currently available open source languages in search for a valid candidate.
Some languages had a very nice virtual machine implementation but on top of a
crappy syntax, some other languages had a good syntax but without an efficient
virtual machine… some others were so huge and intricate that I refused to be
involved in such a mess.

Requirements were clear… a thin and very efficient virtual machine with no
more that 5000/6000 lines of code. I wasn’t able to find anything that could
completely satisfy our needs so this time I decided to reinvent the wheel and
project Gravity started."

[1] [http://marcobambini.com/writing-a-programming-language-
and-a...](http://marcobambini.com/writing-a-programming-language-and-a-
virtual-machine-in-c/)

------
mariusmg
"JSON based executable file format"

My brain had a core dump when i've read that...

~~~
jrcii
If there's one thing JSON excels at, it's encoding executable instructions.

~~~
mike_hearn
Example of their executable format:

    
    
      {
        "$vminit" : {
            "type" : "function",
            "identifier" : "$vminit",
            "nparam" : 0,
            "nlocal" : 0,
            "ntemp" : 0,
            "nup" : 0,
            "args" : false,
            "bytecode" : "14000000300000011400000230000003",
    

I am unconvinced of the merits of this approach.

------
plainOldText
One of the problems with how we develop software today is the long path from
idea to a working prototype. There are many layers in between, each with its
own set of abstractions and assumptions. Factor in the number of different
platforms you need to develop for, and you've got yourself a very complex
world you need to navigate.

Writing software in 2016 is to some extent similar to operating a 18th century
ship through the dangerous waters. We have a good enough machine to take us
places, but we still need to visit the engine room, to keep things running.
It's getting better nonetheless, but you still need a specialized crew to
steer a big ship in the right direction. I would much rather prefer a yacht,
where I could just press a button and enjoy a more experimental, higher level
experience, in which my job would be to map ideas to real world working
systems.

With that given said, this definitely looks interesting. I'll surely give it a
try.

------
orliesaurus
I am going to use this to teach the basis of mobile programming to my wife and
some friend s- I promised them that the day I had access to a simple IDE for
developing apps I would spend a weekend telling them about the concepts of
development. I already managed to teach my wife about the thinking behind UI
and wireframing design thanks to Sketch.

Can't wait for this upcoming weekend to get them started, food & code is
awaiting!

~~~
NetOpWibby
Awesome.

------
segphault
I downloaded the beta and tried it out. The concept is interesting, but the
execution is still uneven (understandably so, considering that this is a
beta). The way that the mobile app UI is rendered on the desktop is pretty
bad, especially the lack of antialiasing on the fonts.

It has that uncanny valley feel that you'd expect when somebody reimplements a
UI toolkit and tries to mimic the look and feel. I'd really like to know if it
looks better and more native on a device.

There are also bits and pieces that don't seem to work as expected. Like, I'm
having trouble getting the built in HTTP client to actually successfully
complete a request.

The design tool is slick though, so I'm looking forward to seeing where they
take it. It could be pretty compelling for rapid prototyping.

------
redindian75
They have more video demos here:
[http://blog.creolabs.com](http://blog.creolabs.com)

Congrats on shipping the beta! It looks like a well thought out
prototype/simple app creator. Can u give any idea on pricing?

------
mhuusko5
I feel like the "run any iOS code on Mac" part of this is being overlooked.
Doesn't that mean you guys (@creolabs) re-implemented UIKit on top of AppKit,
a la Chameleon? If so... that's HUGE in and of itself.

~~~
creolabs
Right, we re-implemented UIKit on top of AppKit.

~~~
mhuusko5
May I ask how many people you had dedicated to this task/how long it took?
It's an incredible feat..

------
palakchokshi
This reminds me a lot of Visual Studio during the ASP.NET webforms era. The
tool looks really cool and as a non-iOS dev this would really help me get a
prototype up quickly. Kudos to the team for a great product.

------
redindian75
Older thread about Creo's tryst with YC Application [1] - shows a lot of
struggle and the fruits of their labor in todays beta release. Great Job guys!

from the article[2]

\- new multiplatform programming language with a blazing fast virtual machine

\- rewritten UIKit compatible mobile operating system

[1]
[https://news.ycombinator.com/item?id=9149690](https://news.ycombinator.com/item?id=9149690)

[2] [http://marcobambini.com/my-y-combinator-
experience/](http://marcobambini.com/my-y-combinator-experience/)

------
mamcx
Is possible to drive the code with swift instead of the custom language?

~~~
creolabs
It is in our future plans. Users will be able to use Swift as primary language
and then export the whole project to Xcode.

------
gerry_shaw
Reminds of an early version of Visual Basic. Not saying that in a bad way
either. For the original release VB enabled a huge number of GUI applications
to be built quickly.

------
codecamper
It would be so good to be able to use just one language (swift, scala, or java
preferably) to write portable but the native UI.

however, what happens when I have written my app & this company goes belly up.
It isn't open source so I guess then I'd be sol.

for now I use j2objc & it is working pretty well. My only big wish would be
for some way to write persistence logic just once too.

~~~
efdee
Take a look at React Native. Develop using Javascript, but render native
components - not webbased stuff like Cordova.

------
Kwastie
I like the idea of building apps in a drag-and-drop ui-builders for
prototyping. But I can't imaging using this for real products other than maybe
a static app. How do you even connect to an existing backend? The 'demo' video
suggests connecting directly to a database... So much for security.

------
samfisher83
I hope these guys realize that Creo is very popular CAD tool. Maybe they
should rename their product.

~~~
hanniabu
Different fields though, shouldn't have too much of an affect as long as
somebody isn't Googling 'Creo' by itself.

------
minionslave
This seems pretty cool. It gave me a Android App inventor vibe. My question is
how much flexibility do get. Because drag and drop UI/App builders constrain
you into a design philosophy that's hard to change.

All this to say, I wasn't convinced.

~~~
creolabs
Creo is not just a drag and drop UI/App builder. You can easily create UI with
drag and drop but you are always allowed to write more complex interaction or
code using a programming language.

------
jernfrost
Looks promising. I am a Swift fan so I guess I am not going to change, but I
love that people are creating other options that can appeal to more people. It
looks like these guys have a number of good ideas.

------
systemz
No Linux or Windows support?

------
jlebrech
Can you make WebApps?

