
Ballerina – concurrent, typed language with textual and graphical syntax - levosmetalo
https://ballerinalang.org/
======
redy
This actually does look great.

There's real value here. In a world being overrun with services what's
desperately needed is an orchestration language. Such a language is severely
focused on consuming services/messages, converting data, and then uploading
data/messages. This is the next Unix shell; a tool whose only purpose would be
to stitch together services, pipe data, schedule execution, and display
results. An integration dsl.

But it's not clear ballerina that can really do that. Would love to see a more
real world example that demonstrates it really solves the
integration/scripting problem.

~~~
sanjiva
Ballerina is designed exactly for that; to be the Unix shell of the Internet
basically. Deep understanding of JSON, XML, MIME, SQL etc., networked
execution naturally, parallelism naturally, resiliency, etc..

Only time will tell whether we get the mix right.

~~~
hliyan
The built in JSON type is a real killer feature for me:
[https://github.com/ballerinalang/ballerina/blob/master/docs/...](https://github.com/ballerinalang/ballerina/blob/master/docs/specification/typesandvar.md)

Dealing with JSON objects in Java has been a pain which often caused me to
pick Node.js. I always wanted another typed language that supports JSON
literals...

------
ivanbakel
There's looking to be a lot of value in visual languages - this isn't the
first one to hit the FP in the last few weeks. We're probably beginning to
appreciate the limits of text-based programming, and hopefully enough work
goes into something different to create a tool with real productivity using
visual code. The only trouble I can see is that there isn't a lot of speed at
the moment in dragging and dropping to create graphs.

~~~
krylon
I currently have the "pleasure" of building a SharePoint workflow, which is
done by clicking together building blocks in a graphical builder (running as
part of Visual Studio).

Maybe I am generalizing to hastily, but I absolutely despise the experience.
In theory it sounds like a nice concept, in practice it tends to make trivial
tasks exceedingly complicated[1]. And what would be a screen of code is
several screens full of a block diagram. It is possible to zoom out, but text
gets unreadable fairly quickly.

[1] To be fair, I think that is probably more of SharePoint problem, whose
complexity would be hilarious if I did not have to deal with it.

~~~
onetokeoverthe
You'd probably appreciate the movie Zero Theorem. The hero, a coder, is doing
the same procedure...it's by the Monty Python people.

~~~
krylon
Thank you!

Terry Gilliam has made some _great_ movies (although I found Tideland too
intense to watch). This one is now on the top of my to-watch list.

------
throwaway7645
It seems to be fairly mature for something I've just heard of. It's crazy how
many languages we have now. It's mostly a good thing, but I always wonder how
nice it would be to have these immensely talented designers focusing on
libraries for existing languages...etc. What is ballerina's performance? I
assume it is alright being on the JVM?

~~~
hemapani
It is compiled and output is bytecode. Currently bytecode interpreter is in
Java. In the future, it can run on other languages (go?) or using something
like LLVM with we write an interpreter for the bytecode. However, to do that
we need to port the connectors, which is some work.

------
cjhanks
"Ballerina, TCL with a quazi-Golang syntax"

~~~
mroll
I'm curious to know why you think there is a tcl connection? Not saying there
isn't, just don't see it myself

------
deependra
check the latest
[https://github.com/ballerinalang/ballerina/releases](https://github.com/ballerinalang/ballerina/releases)

------
jancsika
Does this language do animations to elucidate the flow of data?

~~~
sanjiva
Not yet .. but we have a design for tracing the execution flow of every run at
near zero cost and then playing back the execution trace. That's not saving
all intermediate state but if you save the input (usually an HTTP request; so
its saved in the logs) then you can easily debug production issues with it.

If you meant debugging type stuff yes there's debugging already, including
from the Idea plugin.

~~~
jancsika
Could one eventually build a TCP in Ballerina where the animated diagram _is_
the program?

~~~
sanjiva
I missed replying to this .. yes one could easily.

Making that perform at the same level as a TCP driver written in C could be a
bit challenging .. but not impossible.

In fact, expressing network interaction protocols is one motivation for the
sequence diagram approach, but the expectation was higher level stuff like
OpenID or SAML type interactions.

------
fiatjaf
This looks great, the visual representation may be a killer feature, but the
website could use a little more color.

Also, it seems to be written in Java (run in the JVM?), so I will not touch
it, but I hope others will.

~~~
sanjiva
JVM is not exposed _at all_. We plan to include OpenJDK in final distros so it
runs totally self container.

Absolutely no Java semantics or concepts are leaked to the language.

------
moocowtruck
is this webpage really slow and hard to scroll for anyone else?

~~~
aardshark
Yes, it's awful for me on Chrome 58. While I do need to update my browser, I
tried on a couple of others and it seems much smoother on Firefox:

Chrome 58 OSX: extremely janky, but I do have lots of tabs open.

Chrome 61 Canary OSX: a little janky, but mostly ok. It's the only open tab.

Firefox 54 OSX: smooth scrolling. It's the only open tab.

