Live data from Hacker News

Jolie, the service-oriented programming language

jolie-lang.org

41–50 of 78 posts

Re: Jolie, the service-oriented programming language

#41

Woah, so this happened. Maintainer here. I'll do my best to reply to all questions/doubts that get posted about an hour from now, since there is some valid feedback and there are some good questions in here.

How's the performance? How many concurrent requests can it do? Is it reliable and production tested?

Re: Jolie, the service-oriented programming language

#42
post #6

Who actually wants this? People want good libraries for doing this with the languages they already use, not to have to make compromises just so they can have a microservice. Notice that the front page gives lots of examples of the servicey parts of the code, but absolutely no examples of what the business logic looks like. In fact, even in the documentation, the example code is minimal and trivial.

That's exactly my first thought. But: I'm currently working on a distributed Webassembly runtime. Jolie seems like a great way to describe your whole system. For each service the executed code would be a function exported by a Wasm module, written in the language of your choice.

Distrubted wasm runtime sounds interesting. Would you mind sharing a link to it? :)

Re: Jolie, the service-oriented programming language

#43

Earlier quoted context omitted.

That's exactly my first thought. But: I'm currently working on a distributed Webassembly runtime. Jolie seems like a great way to describe your whole system. For each service the executed code would be a function exported by a Wasm module, written in the language of your choice.

Distrubted wasm runtime sounds interesting. Would you mind sharing a link to it? :)

Not ready yet. I hope to open source it within the next few months. Will submit SHOW HN post then.

Re: Jolie, the service-oriented programming language

#44
post #6

Who actually wants this? People want good libraries for doing this with the languages they already use, not to have to make compromises just so they can have a microservice. Notice that the front page gives lots of examples of the servicey parts of the code, but absolutely no examples of what the business logic looks like. In fact, even in the documentation, the example code is minimal and trivial.

You may find this link helpful https://dzone.com/articles/introduction-to-jolie

Re: Jolie, the service-oriented programming language

#45

Earlier quoted context omitted.

I think the predominant question here is: why a language over, eg., a framework?

In a nutshell: because we want to minimise code model distance. Other languages make you program in terms of functions, objects, etc., and make yourself model services by using these concepts. In Jolie, you write code that maps directly to the concepts that matter. What are the important concepts? APIs, Access Points, and Services (duh..) are examples. Some more info at: - https://dzone.com/articles/introduction-to-j…

Could you expand on this? I'm not seeing why the "duh" is warranted.

> Jolie, you write code that maps directly to the concepts that matter. What are the important concepts? APIs, Access Points, and Services (duh..) are examples.

I come out of the Domain Driven Design school of thought, where the true key concepts are the domain-related ones. E.g., if you're doing ecommerce, things like Product and Order are much more important. They're also much more stable. Over time what gets exposed as an API will vary much more than whether or not we have a Product or an Order.

What you're calling important is what I think of as implementation details. Important in the sense that pipe fittings are important to a house: vital, but very much secondary to the purpose.

Re: Jolie, the service-oriented programming language

#46
post #6

Who actually wants this? People want good libraries for doing this with the languages they already use, not to have to make compromises just so they can have a microservice. Notice that the front page gives lots of examples of the servicey parts of the code, but absolutely no examples of what the business logic looks like. In fact, even in the documentation, the example code is minimal and trivial.

Agreed.

It's a lot easier for full blown languages to offer servicey-like interfaces like Jolie than the other way around.

And as a matter of fact, most modern programming languages offer interfaces/traits/stubs/etc... that do just that.

A great example of a successful approach to this is Retrofit: https://square.github.io/retrofit/

Re: Jolie, the service-oriented programming language

#47
post #6

Who actually wants this? People want good libraries for doing this with the languages they already use, not to have to make compromises just so they can have a microservice. Notice that the front page gives lots of examples of the servicey parts of the code, but absolutely no examples of what the business logic looks like. In fact, even in the documentation, the example code is minimal and trivial.

I don’t know about specifically this, but I’m excited for languages that are built from the ground up for distributed computing. Distributed computing is already hard, but I feel like out general toolsets make it harder than it needs to be.

Re: Jolie, the service-oriented programming language

#48
post #6

Who actually wants this? People want good libraries for doing this with the languages they already use, not to have to make compromises just so they can have a microservice. Notice that the front page gives lots of examples of the servicey parts of the code, but absolutely no examples of what the business logic looks like. In fact, even in the documentation, the example code is minimal and trivial.

I want it. At least the idea of it. I want something that looks like a programing language ( the mainstream ones ) that describes and specifies the flow of some functionality, not a YAML or a godforsaken XML file but also not XYZ framework that has all the implementation details. Maybe Jolie isn't what I want and has more baggage than I'm currently aware, but it somehow looks like something I need.

Could you achieve that with a language that has a sufficiently decent meta-programming option, like a macro system? It sounds like what you want is a compile time validated state machine.

Re: Jolie, the service-oriented programming language

#49
Reflow [1] is a similar attempt at a slightly different domain: bioinformatics and ETL pipelines. Reflow exposes a data model and programming model that reclaims programmability in these systems, and, by leaning on these abstractions, gives the runtime much more leeway to do interesting things. It unties the hands of the implementer.

[1] https://github.com/grailbio/reflow

Re: Jolie, the service-oriented programming language

#50
post #45

Earlier quoted context omitted.

In a nutshell: because we want to minimise code model distance. Other languages make you program in terms of functions, objects, etc., and make yourself model services by using these concepts. In Jolie, you write code that maps directly to the concepts that matter. What are the important concepts? APIs, Access Points, and Services (duh..) are examples. Some more info at: - https://dzone.com/articles/introduction-to-j…

Could you expand on this? I'm not seeing why the "duh" is warranted. > Jolie, you write code that maps directly to the concepts that matter. What are the important concepts? APIs, Access Points, and Services (duh..) are examples. I come out of the Domain Driven Design school of thought, where the true key concepts are the domain-related ones. E.g., if you're doing ecommerce, things like Product and Order are much mor…

I was indeed talking about implementation models, in particular models of service-oriented systems. These are usually formulated in terms of services, DTOs, APIs, business logic, etc., hence the value brought by Jolie in giving a direct syntactic representation. The model of an implementation can change often, so it's important to have code that resembles it closely (for readability, editing, etc.).

You're talking about the domain model, which I agree is more abstract and stable. It comes before making the implementation model. In the case of microservices, some concepts overlap and/or are very similar between domain and implementation, but some mapping is required. We started exploring a bit how to relate MDE languages to Jolie in https://arxiv.org/abs/2104.02458 and it looks pretty promising in the sense that they seem easily linkable.

In short: once you get to the implementation model and if this is service-oriented, Jolie gives you a concise and executable syntax to write it. (And there is ongoing work on how some elements of domain models can be mapped automatically to Jolie concepts.)

Post reply on HN