Live data from Hacker News

Ballerina Programing Language

ballerina.io

41–50 of 56 posts

Re: Ballerina Programing Language

#41
post #39

Earlier quoted context omitted.

Love to get downvoted for something factually true that answers the explicit question above it

I did not downvote you, but how is static typing in any sense revolutionary? It is certainly not a new concept and you know it, but your answer does not elaborate any of this at all. It may be factual, but it is factually useless.

You see, people tend to get hooked up on features of the language they are using especially if they have very limited choice of languages they know. They will vehemently defend their point of view fortified by whole range of cognitive biases. Their combined effect like more alcohol to the drunk to make him feel strong and able to overcome bouncers.

I personally believe no person who can't program in both assembly and lisp should call themselves real/full programmers because they have not been exposed to full range of concepts. You have to, of course, start somewhere. But until you have experienced full variety of possible language features you are not really qualified to discuss any them with any authority.

See also Blub Paradox (http://www.paulgraham.com/avg.html) by the very author of this site.

Re: Ballerina Programing Language

#42
post #3

I have followed this language passively for ~1.5 years. I think it's revolutionary, and the big barrier for my adoption is the fact that I do not currently write services for the JVM. But the ability to define services as HTTP/Ingress endpoints, Docker containers, and Kubernetes/Openshift resources natively as part of the language is incredible. Add that to the fact that they have native support for things like tabul…

On quick glance, it looks like a language with lots of battery included. Plus rpc, thrift, maybe?

Re: Ballerina Programing Language

#43
This is what the future of programming languages should look like. Not necessarily syntactically, but with full-fledged systems out of the box. We're not getting further as a community by just building new source code to plug into our Docker/Kubernetes/Chef/Terraform/gRPC monstrosities. Something needs to tame that complexity. I love that things like sequence diagrams are first class. I've made barely any of these since college and I'd love to see us be able to truly get to working at that level day-to-day

Re: Ballerina Programing Language

#44
> Robustness Principle: Be conservative in what you send, be liberal in what you accept.

That's a debunked principle that causes unintended harm.

Programs should be conservative in accepting just their documented range of inputs, and loudly rejecting and diagnosing anything else.

Any behavior that looks "liberal" should actually be so by a specified design, within exact limits, operation outside of which is ideally flagged and rejected.

Re: Ballerina Programing Language

#45
post #39

Earlier quoted context omitted.

Love to get downvoted for something factually true that answers the explicit question above it

I did not downvote you, but how is static typing in any sense revolutionary? It is certainly not a new concept and you know it, but your answer does not elaborate any of this at all. It may be factual, but it is factually useless.

The question was "Challenge me, give one example that can't be done as easily with Clojure." The answer is "static typing". I never claimed it's revolutionary.

Re: Ballerina Programing Language

#46
post #41
post #39

Earlier quoted context omitted.

I did not downvote you, but how is static typing in any sense revolutionary? It is certainly not a new concept and you know it, but your answer does not elaborate any of this at all. It may be factual, but it is factually useless.

You see, people tend to get hooked up on features of the language they are using especially if they have very limited choice of languages they know. They will vehemently defend their point of view fortified by whole range of cognitive biases. Their combined effect like more alcohol to the drunk to make him feel strong and able to overcome bouncers. I personally believe no person who can't program in both assembly and…

I have plenty of experience in Clojure (even some of it still in production!), as well as "C family" languages, both statically and dynamically typed. I didn't answer the question out of ignorance. The thing that immediately jumped out at me that "can't be done as easily with Clojure" is static typing.

Re: Ballerina Programing Language

#47
post #40

Earlier quoted context omitted.

Static typing

Static typing is a property of the programming language, not something you "do". Do you mean your clients want static type something? Static typing is a preference of the developer or development organization on whether they want speed or they need a bit of help to understand what they have before their eyes. It lets the compiler call you out on some of your transgressions at the cost of quirky type system and possib…

I didn't make any value claims about static typing (though I do prefer it), I just answered the question of what "can't be done as easily with Clojure". You cannot easily statically type Clojure, and as a consequence cannot easily do any of the things that static typing enables in a language, regardless of how much you value those things.

Re: Ballerina Programing Language

#48

> Robustness Principle: Be conservative in what you send, be liberal in what you accept. That's a debunked principle that causes unintended harm. Programs should be conservative in accepting just their documented range of inputs, and loudly rejecting and diagnosing anything else. Any behavior that looks "liberal" should actually be so by a specified design, within exact limits, operation outside of which is ideally f…

Misunderstood principle. Liberal does NOT mean Malformed.

As you say, all behaviors should be fully specced, and inputs that violate that spec should rightly be rejected. It’s the spec itself that should be forgiving.

e.g. Don’t require fields for which sensible defaults can be assumed. Don’t be needlessly anal about case and white space variations. Maintain backwards-compatibility by continuing to accept older input formats alongside the latest and greatest. Accept ints where floats are expected. And so on.

HTTP is a good application. Whereas the eejits who invented HTML have a helluva lot to answer for.

Re: Ballerina Programing Language

#49

> Robustness Principle: Be conservative in what you send, be liberal in what you accept. That's a debunked principle that causes unintended harm. Programs should be conservative in accepting just their documented range of inputs, and loudly rejecting and diagnosing anything else. Any behavior that looks "liberal" should actually be so by a specified design, within exact limits, operation outside of which is ideally f…

True, especially since non defined and non documented behavior will be used and relied on over time by your customers.

Re: Ballerina Programing Language

#50
> Ballerina is an open source programming language and platform for cloud-era application programmers to easily write software that just works.

Meaningless tagline.

> Static typing is the network application programmer’s development headache and dynamic typing is the reliability engineer’s nightmare. Ballerina’s statically-typed, structural type system that is designed to be network data schema friendly allows application programmers to write code that adheres to the Robustness Principle: Be conservative in what you send, be liberal in what you accept.

Nowadays we recognize that this is not necessarily a good idea. Se the very long ietf@ietf.org thread titled "deprecating Postel's principle - considered harmful".

Post reply on HN