There's a lot of focus on testing in Ballerina: https://ballerina.io/learn/testing-ballerina-code/writing-te...
HN user
sanjiva
Ballerina is a standalone open source project and does not tie anyone to any WSO2 ecosystem.
Please compare processing JSON in Java vs. Ballerina, typing network data in Java vs. Ballerina, writing HTTP/GraphQL/WebSocket/gRPC etc. services etc. in Java vs. Ballerina, calling network services in Java vs. Ballerina and then you'll see the difference between whatever your favorite Java framework (or rather combination of them) vs. Ballerina.
(I'm the founder & CEO of WSO2 and one of the lead language designers.)
Yes it can go both ways.
edX has been my go-to recommendation for people in my side of the world (I live in Sri Lanka) to get quality education at no cost. This is the end of that - they might have some protections but its no longer going to be focused on quality content delivered in a highly learnable manner.
About 20 years ago, when I was living in Yorktown Heights NY (in Westchester county - a pretty high end county just north of NYC), we had to call 911 once because my then wife slipped on the ice and fell when she returned from work late night.
I called and said what had happened and within a short time we had police, ambulance and a fire person show up (I guess they were all bored).
IMO that's part of the problem in US policing: The assumption is that the people are bad (in my case that I had hit my wife I guess - I was interviewed by the cops before she was taken to hospital for a checkup). I called 911 for a medical emergency, not a criminal issue so why do cops have to come and treat me like a criminal. If you think that something is wrong then you find a way to find something wrong.
I wrote a blog about US policing a few years ago because I feared for my son's safety: https://medium.com/@sanjiva.weerawarana/police-in-us-need-to....
Ballerina has had a major revamp since the 2019 release and we recently released the first of a series of betas before making it GA. Some of the key features of the language include: - data orientation - flexible typing (including service typing) with major improvements in the type system - text and graphical syntax symmetry - cloud native features with support for easy production and consumption of services - convenient concurrency model similar to coroutines and a lot of concurrency safety introduced with readonly and isolated types
Release blog: https://blog.ballerina.io/posts/announcing-ballerina-swan-la...
Short tutorial on how to write a service in Ballerina: https://www.youtube.com/watch?v=NxyIKoHl3Dw&ab_channel=Balle...
In-depth slide deck: https://ballerina.io/learn/language-concepts/Ballerina_Langu...
Video presentation of these slides: https://ballerina.io/learn/language-concepts/
And this is a temporary reality - once the system starts operating at full steam again the costs will come down.
Moving production is much more complex and requires long term policies and strategies- something most countries (other than China) seem unable to muster.
Its going to be harder to trust any app now. Who knows who's behind it?
No, the racist bit is the implicit assumption that people in this part of the world can only do services and not creative technology development.
We can do both, just like anyone else in any country.
It doesn't. The primary reason is that VSCode cannot be hosted.
We will soon publish a playground widget which will let you run the same code in the browser so you can see source and the diagram as you wish (or not!).
Ada was named after Ada Lovelace too. Many may not know that it was a woman's name (and of course few program in Ada; we certainly hope for a better outcome than that!).
I'm sorry but I cannot accept the argument that because its a feminine word its not an appropriate name for the language. Gender balance has been a problem for this industry and making it so all names are male so people won't feel bad to say they like it is ridiculous. I worked hard in WSO2 to create an open workplace for women and 30% engineers are women - so it is possible to make it better if you try hard. Isolating tech to male-only names is not the solution.
As James noted, I updated the blog I wrote (even though the words were not meant the way you presented them) to remove that offending bit. And indeed your points about incorporating "do not sexualize the name" are great and we'll put them into our terms of conduct.
The XML design is going to get a significant refresh. The draft proposal is here: https://github.com/ballerina-platform/ballerina-spec/blob/ma....
The XML programming model is rather different from DOM and others for a lot of reasons. I hope reading this proposal will help.
I'm the founder of WSO2. I'm from Sri Lanka. We have 100s of coders from Sri Lanka (not dozens). I'm the creator of Ballerina. I'm now its product manager.
Ballerina is in its first GA release. Please elaborate on what features you see as "almost complete"?
And regards to your comment about WSO2's inability to produce market-ready products, we have 500+ customers from all over the world for our products. What do we need to become "market-ready"?
Yeah sorry .. the styling on examples https://v1-0.ballerina.io/learn/by-example/ might be a bit much.
We'll work on it.
We had a playground widget but had to take it down because we were a bit swamped last few weeks and couldn't get it updated for this release.
A Go-like full screen online playground is coming.
I'm the founder of WSO2 which developed Ballerina. Also the person who started the project and lead it.
WSO2 is an enterprise software product company with 500+ customers in 70+ countries and 600 employees globally.
We promoted Ballerina like that because we are proud of the work we do and wanted to show it off to people. You may not like the work we produce but trying to say its to get "consultancy work in India" is rather racist.
Ballerina does NOT force you to write "visually". You can write normal code and NEVER look at a picture.
However, after you're done, if to see the flow of your entire program (not just one function) as a sequence diagram then you can get that done.
The language syntax is "normal" syntax and has all the power o a modern language. Try it and see- feedback welcome.
Disclaimer: I'm the one who started the project and leading it as the product manager now.
Oh and I didn't answer the question of who's behind it - this is being lead by WSO2, of which I'm the chief architect.
I'm the lead designer of Ballerina.
Its a real language :-). Please check the spec out here: https://ballerina.io/res/Ballerina-Language-Specification-WD....
Feedback welcome!
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.
I'm leading the Ballerina language design. The team has about 15 engineers working on the runtime (and related tools) and about another 15 folks working on the browser-based composer and the IDE plugins.
Ballerina's design point is to be a language with semantically equivalent text and graphic syntaxes. Its not a "visual language" really .. its a language with alternative syntaxes, one text and one graphic.
That approach eliminates the "hit-the-wall" phenomenon of visual languages. And as other commenters have said, a lot of the graphical view is useful to understand overall structure and less to write lots of code. However, parallel code is much better visualized graphically as sequence diagrams are dead simple to grok.
In terms of speed of the current Composer .. still WIP. Help is welcome :).
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.
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.
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.