Live data from Hacker News

Motivation – Keli Language

keli-language.gitbook.io

91–100 of 300 posts

Re: Motivation – Keli Language

#91
I'm very sympathetic to the problem. I'm working on Dark (https://darklang.com) which is a functional language, explicitly because we believe that functional languages are easier to learn, understand and provide great tooling for.

It seems to me there's a lot of focus on syntax, and I don't think they've gotten to a great place. For example:

  (this Int).square | Int = this.*(this)
In Rust, they do

  impl Int {
    fn square (self) -> Int {
      self * self
    }
  }
I can read the Keli version, but I'm note sure that `(this Int)`, `|`, and `.*` are great inventions. You need a good reason to deviate from commonly recognized syntax, and Keli doesn't feel like it's made things simpler with this.

In Dark, we use piping heavily to get the benefits of the dot-syntax. In particular, it can be type directed:

  8 |> Int::square |> Int::log 2
The autocomplete will only show you integer functions in this case.

For the problem of "which parameter" - our IDE shows parameter names when your cursor is in a position to type the next parameter, so you know what you're adding it is. We also show the parameter names when your cursor is in the completed argument so you know what parameter it is. (I couldn't see if Keli did this, it might not be possible in modern editors).

Re: Motivation – Keli Language

#92

Off serious topic: Naming it after you girlfriend is a risky move, like getting a tattoo of her. Better get married and stay that way or the next partner is gonna be like: "wtf", you still working on your tribute to your ex programming language!?

This isn't too bad. We live in Git society now.

After the breakup, fork, rename to the new girlfriend name, and put a notice on README.md:

"I broke up with Keli but don't worry, I am with Sandra now. Please follow the new language here"" rel="nofollow">https://sandralang.org">here"

Re: Motivation – Keli Language

#93
post #46
post #36

Earlier quoted context omitted.

>Compare that to JavaScript where you can literally just install vscode and node and you’re up and running. Not to mention that you could pop open a console in any browser and execute code. That's only because VSCode was developed in JavaScript, and JavaScript is used in Browsers anyway. This has nothing to do with Intellisense friendliness.

No, golang is just as easy to install and work with on vscode. Just install Go and the official Go plugin and you have an IDE experience complete with debugging, formatting, and intelligent autocomplete. It has nothing to do with vscode being written in JS.

You didn't mention plugins, it seemed like not having to do anything besides installing the language and VSCode should be required.

In that case there are many functional languages with good IDE support. E.g. F# through Ionide.

Re: Motivation – Keli Language

#94
post #10

Earlier quoted context omitted.

I get this might just boil down to preference but I absolutely hate named parameters. They’re biased towards new users of a language and quickly become painful to write once you’re familiar with the function call. Plus they don’t always improve writability outside of IDEs because you then have to memorise the parameter names and in some functions there’s several terms that could equally apply (if you’re using an IDE…

>I absolutely hate named parameters. They’re biased towards new users of a language and quickly become painful to write once you’re familiar with the function call. It is a fair complaint, but don't you think this is offset almost entirely by a good IDE?

Unlike positional arguments? ...

Re: Motivation – Keli Language

#95
post #92

Off serious topic: Naming it after you girlfriend is a risky move, like getting a tattoo of her. Better get married and stay that way or the next partner is gonna be like: "wtf", you still working on your tribute to your ex programming language!?

This isn't too bad. We live in Git society now. After the breakup, fork, rename to the new girlfriend name, and put a notice on README.md: "I broke up with Keli but don't worry, I am with Sandra now. Please follow the new language here "" rel="nofollow">https://sandralang.org">here "

Relationships are just like new technologies. Sick of all all the hassle you have to deal with regarding ? Use a new, shiny technology!

Five years later...

Sick of all the hassle you have to deal with regarding ...?

The lesson here is ultimately all technologies suck, but you have to find the variety of suck you're willing to live with.

Re: Motivation – Keli Language

#96
post #87

I think it's great that Keli is designed with IDE support in mind. However I believe that this is only half of the reason why FP still doesn't really break through in the corporate world. The other reason is that many FP users are too enthusiastic about creating abstractions. This is of course something that FP is exceptionally well suited for. An api that was written to simply process a list of Orders into a Report…

I don't see a reason why some FP languages (e.g. lisp, or elisp) aren't IDE friendly. It might well be because where there is unpopularity, there is less effort to integrate, promote and maintain. If everything is a function and functions have positional parameters and everything named can be in a symbol table, why can't IDEs support (at least the basics of) FP languages?

Read the OP link.

Re: Motivation – Keli Language

#98

Off serious topic: Naming it after you girlfriend is a risky move, like getting a tattoo of her. Better get married and stay that way or the next partner is gonna be like: "wtf", you still working on your tribute to your ex programming language!?

New girlfriend could change her name if she is really devoted

Re: Motivation – Keli Language

#99
Haskell Language Server (https://github.com/haskell/haskell-language-server) offers a pretty good IDE experience.

It also mitigates the parameter naming problem. With a type hole, the language server will infer the type. But in the case of two parameters having the same type, you have to consult the definition or doc.

Re: Motivation – Keli Language

#100
post #41

The author lists F# as not IDE friendly. I find this categorization inaccurate. F# works great with Visual Studio, and especially well with intellisense. F# was designed as industrial language from the beginning, and high quality tooling is a large part of that. It might just be me, though, maybe other people use the language in ways that don't work that well there.

I second this. F# is quite IDE friendly, and auto completion works great. Additionally much of the .NET tooling (with the exception of C# specific refactoring tools) are CIL / bytecode level and independent of CLR language. This is one of the reasons having a polyglot solution of C# and F# projects is possible and with (mostly) seamless interop - all the same bytecode in the end.
Post reply on HN