9 ms·
Ballerina: An open-source programming language for the cloud
- olgeni 5y agoFreeBSD port needed btw :)
- Taikonerd 5y agoI think the coolest part of Ballerina is that it includes visualization[0] as an officially supported part of the language. There are lots of random projects on Github to visualize Python or Java code, but I think having viz as an official part of the language (so every Ballerina developer is looking at the same diagram for a given piece of code) is much sexier. [0] https://ballerina.io/learn/why-ballerina/graphical/ https://ballerina.io/learn/why-ballerina/graphical/
- dang 5y agoSome past threads: Ballerina Programing Language - https://news.ycombinator.com/item?id=22401257 https://news.ycombinator.com/item?id=22401257 - Feb 2020 (50 comments) Ballerina Programming Language Revamped, at 1.0 - https://news.ycombinator.com/item?id=20961269 https://news.ycombinator.com/item?id=20961269 - Sept 2019 (1 comment) “Ballerina” Could Become the Programming Language of Integratio - https://news.ycombinator.com/item?id=20937058 https://news.ycombinator.com/item?id=20937058 - Sept 2019 (1 comment) Ballerina, a language with structural type system - https://news.ycombinator.com/item?id=20924552 https://news.ycombinator.com/item?id=20924552 - Sept 2019 (120 comments) Ballerina: An API-First Programming Language - https://news.ycombinator.com/item?id=17302812 https://news.ycombinator.com/item?id=17302812 - June 2018 (2 comments) Show HN: Ballerina – Cloud Native Programming Language - https://news.ycombinator.com/item?id=16965616 https://news.ycombinator.com/item?id=16965616 - May 2018 (14 comments) Ballerina – concurrent, typed language with textual and graphical syntax - https://news.ycombinator.com/item?id=14698132 https://news.ycombinator.com/item?id=14698132 - July 2017 (31 comments) (I assume there is only one ballerina here.)
- jaytaylor 5y agoAlso: _Ballerina Swan Lake Beta Released_ https://news.ycombinator.com/item?id=27604222 https://news.ycombinator.com/item?id=27604222 - June, 2021 (1 comment)
- Taikonerd 5y agoI've seen lots of articles about Ballerina on HN, but I've never seen the next step in a language's evolution: articles like "hey, look at this cool thing I built in Ballerina."
- pavlov 5y agoYeah, it's surprising they don't even have any case studies or anything where a 3rd party would be saying: "We used Ballerina to solve $enterprise_dev_problem and it was awesome, here's how it happened." They have a blog, a community section, and also a community blog. Every post seems to be about tech details: syntax, API updates... Might be a good idea to interview some users.
- geodel 5y agoFor anyone familiar with old style Apache/Java/Axis/Web Service stacks they know that feeling of bombastic claims, massive amount of Java classes and tons of 3rd party dependencies. This language has that vibe to it. TBH I am not sure in world of sophisticated, lightweight Rust or Go based network/cloud libraries, frameworks and services this kind of anachronism would work. One set of users I can think, who find it modern are those who do not know of any newer version of Java after maybe J2SE 1.4.2. And those who think EJB 2.1 are at cutting edge of enterprise programing.
- Kinrany 5y agoOne thing modern languages don't do is compiling to multiple targets intended to work together. For example, you could have a single function include frontend, backend and database logic. The source code would be compiled into three pieces of software: a web page, a web service and a database plugin.
- geodel 5y agoHuh, what does that mean? I can have Go text/html templates, normal business logic/ service and code to talk LDAP/RDBMS backend in single app / source file. I can not just compile but run this whole thing including web server as one single process.
- Kinrany 5y agoI'm talking about a single function being compiled into three separate processes. fn onclick(ui, db, worker) { ui! { spinner = true }; let value = db! { value = value + 1; value }; worker! { notify(value) }; ui! { spinner = false; value = true; }; }
- geodel 5y agoAnd now these 3 separate processes are deployable without any dependency other than OS?
- tut-urut-utut 5y agoI liked Ballerina at first, it brings numerous goodies that were previously available only in “enterprise” middleware to a simple programming language, with sane defaults. For example, for network calls it has seamlessly configurable retries, timeouts, circuit breakers. It allows easy mappings from one to another message format, convenient payload standard manipulations, different endpoint configuration at the source code level, easy parallelization and many more features. All of that comes handy when developing classic middleware services, and the code is cleaner and conciser that equivalent functionality written in Java, Go, Clojure, Node … GUI editor for source code and easy switch from graphical to code view is also nice. But, the language itself sucks. It's cumbersome, ugly, and unnecessary. All the Ballerina functionality should be in a Java (or JavaScript) library that would allow writing concise code in a language of choice. I wish someone, preferably WSO2, release such a library. Ballerina is already implemented in Java, so it would be possible to release it as a separate Java library. The only reason Ballerina exists is to lock customers to WSO2 ecosystem.
- sanjiva 5y agoBallerina 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.)
- tut-urut-utut 5y ago> Ballerina is a standalone open source project and does not tie anyone to any WSO2 ecosystem. Except that Ballerina is created by WSO2 (the company) and used almost exclusively by that company. It's hard to find any usage outside (some of the) existing WSO2 customers. And the language itself is completely proprietary, developed by WSO2 and lock in by itself. > 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. Here I give you a credit. The ergonomic is much nicer than what exists today in Java frameworks. What I don't agree is, that you need a language to have these features you listed. You could get 90% of them in Java (or Kotlin, or Clojure, or Scala, or Groovy, ...) if they were implemented as a standalone Java/JVM library, and not require Ballerina the language.
- eatonphil 5y agoI know everyone loves showing hello world but for a "cloud language" I though it would be a one liner builtin to make a rest api that returns hello world. They actually just print hello world to stdout.
- amazd 5y agohaha yeah this was pretty funny (and dumb), as in, how is this showing me any of the language's capabilities?
- eatonphil 5y agoRight. It would be totally fair if it were just a tutorial for a first-time programmer. But most languages aren't advertising at that audience on their home page.
- JaDogg 5y agoYes, they have put it second here - https://ballerina.io/learn/by-example/hello-world-service.html?is_ref_by_example=true https://ballerina.io/learn/by-example/hello-world-service.ht...
- _wldu 5y agoI've always thought of Go as C for the Cloud. Nothing else really comes close to it.