HNHacker News
TopNewBestAskShowJobs

pouya-eghbali

10 karma · joined March 3, 2019

Building my tech lab at outergods.com
submissionscomments
pouya-eghbali··on Show HN: Please – An On-Demand Package Installer
Author here, ask any questions :)
pouya-eghbali··on Show HN: Clio Programming Language
Clio has a network-based approach to parallelism. It compiles to JS and uses Node to run the generated JS code, so just like Node, it is single threaded. Having a specification for remote calls gives us a few benefits, for example:

1. We can use async remote function calls to run several tasks simultaneously. Why block and wait for the results when we can request the next one? This way you can also use resources on other machines on the network. This solves the single threaded only issue.

2. We can use functions and some libraries of other languages

I also wanted to make these simple tasks easier for the developer. 20-30 years ago things didn't work like now, today we have new concepts: serverless, cloud, saas... now things are different and it's nice to have some helpers in the core. I actually started working on this project because of the difficulties I had with C/Python/JavaScript when I was making a cloud heavy app.

One more reason for this is that I want to encourage our users to write smaller independent and interconnected programs instead of making a giant monolithic app. This helps a lot with maintainability and portability.

pouya-eghbali··on Show HN: Clio Programming Language
There is a simple to-do list app here: https://github.com/clio-lang/clio-todo

It uses the microservices and web socket imports. To run it you'll need rethinkdb. Maybe I can host it for you if you want to see how it works? Also, if you want to see another specific example, I can make it. What would you suggest?

pouya-eghbali··on Show HN: Clio Programming Language
Any task that you can accomplish in a programming language is possible in other languages too, but sometimes it requires less or more effort in another language.

Clio is a micro-services based programming language. Functions you define in Clio are isolated, they capture the outside scope when you define them, this scope is frozen for them, that means they cannot change the outside scope and they will not receive any updates from it. This reduces side effects and allows us to fork the process and be sure all functions return the same results for the provided arguments.

It has a host utility that you can use to host these functions. This host utility forks the process containing these functions. It listens to the port you provide and hosts the functions as microservices. These hosted functions can be imported and used remotely in some other Clio code. The host utility also supports sending event emitters and events over the network and allows to have a reactive stream of data.

I'm writing a remote call protocol specification for Clio, with this protocol you can write your microservices in any other language and import them in your Clio code, or import them in any other language of your choice and use them just like regular functions. In languages supporting asynchronous function calls, you can map these remote functions to a set of data and do your computations simultaneously. Clio runs in the browser too and all these features can be used on the browser.

pouya-eghbali··on Show HN: Clio Programming Language
Clio is a pure functional lazy-evaluated programming language targeting decentralized and distributed systems. It is made to take advantage of multiple CPUs and CPU cores (parallelism) by default, to run on clusters and on the cloud easily.

Link to github project: https://github.com/clio-lang/clio

My goal is to get feedback and your opinions on this language, I thank you in advance for your interest and support!