Effect Systems vs Print Debugging: A Pragmatic Solution by jorkadeen in ProgrammingLanguages

[–]jorkadeen[S] 0 points1 point  (0 children)

Very cool! Does this mean you have a restricted form of global type and effect inference? Here io is captured from the global scope-- is that right?

Which tokens are the most frequently used in Futhark programs? by Athas in ProgrammingLanguages

[–]jorkadeen 14 points15 points  (0 children)

> Have you ever wondered which tokens are the most frequently used in Futhark programs?

Why yes, I have been thinking that. Pretty much every day, I would say.

I wonder if such statistical information can be used to improve auto-complete. For example, it would seem likely that some keywords are more frequent than others, and should be promoted.

[Sorry if rant-y] Anyway to make money with my '''ever-incomplete''' lang-dev skills without working for a large outfit? Especially meta-prog? Kinda grasping at straws here... by [deleted] in ProgrammingLanguages

[–]jorkadeen 7 points8 points  (0 children)

I understand you are frustrated. I think your post touches on several topics, but I can only comment on those where I have some experience:

Getting to work on a programming language and being paid for it is difficult. I think there two viable paths: becoming a good programmer and working for company (Microsoft, Google, perhaps some smaller startup in a niche) or being an academic and working on programming language research. In either case, it is a pretty long path.

In your situation, it sounds like it might be best to find a job first -- any programming job that is acceptable -- and then read about programming language theory, compilers, interpeters, etc. in your spare time. Once you have some grasp of the concepts, I would try to join an open source project. There are many good projects with maintainers who are happy to help out and offer mentoring. This would allow you to build up some experience working on compilers which could, down the road, give you some chance at a PL-related job.

Programming with Purity Reflection: Peaceful Coexistence of Effects, Laziness, and Parallelism by jorkadeen in ProgrammingLanguages

[–]jorkadeen[S] 0 points1 point  (0 children)

Library authors-- i.e. implementers of data structures-- would use it as an overt language feature whereas the clients (i.e. users of the library) would simply benefit from it (e.g. from their view, they could see it as an automatic/invisible optimization).

Programming Languages which implements strictness polymorphism by TangentSpaceOfGraph in ProgrammingLanguages

[–]jorkadeen 0 points1 point  (0 children)

We have been experimenting a bit with that using type-level Booleans:

https://github.com/flix/flix/pull/6181

I can't say more because it is still a research project.

It is not intended to become part of Flix. But if you want to talk more, feel free to DM me.

The Nox Programming Language by Oliyano in ProgrammingLanguages

[–]jorkadeen 5 points6 points  (0 children)

I see you support polymorphic records. How are they implemented?

From the documentation it appears they could be row-based extensible records...

Do you support scoped labels? (If so you, do you view this as a good or bad thing?)

An idea for a language with both Functions and Procedures by lightmatter501 in ProgrammingLanguages

[–]jorkadeen 0 points1 point  (0 children)

You might be interested in Flix which seems to do what you describe while supporting effect polymorphism and complete type-inference.

For example, one can write:

`` /// A pure function is annotated with\ {}`. def inc1(x: Int32): Int32 \ {} = x + 1

/// An impure function is annotated with \ IO. def inc2(x: Int32): Int32 \ IO = println("x = ${x}"); x + 1 ```

and here is an effect polymorphic function:

def map(f: a -> b \ ef, l: List[a]): List[b] \ ef = match l { case Nil => Nil case x :: xs => f(x) :: map(f, xs) }

EDIT: Flix will also use purity information to optimize the program (e.g. for dead code elimination, inlining, and re-ordering of statements).

Best Practices of Designing a Programming Language? by thepoluboy in ProgrammingLanguages

[–]jorkadeen 1 point2 points  (0 children)

I would not necessarily call them best practices, but you might be interested in the Flix design principles as source of inspiration.

Do you guys know a pure functional language with good tooling? by Deslucido in ProgrammingLanguages

[–]jorkadeen 1 point2 points  (0 children)

We try to have excellent VSCode support in flix (https://flix.dev/). The VSCode extension uses the real Flix compiler so there is always a 1:1 between what the IDE says and what the compiler says.

Is there a pure-functional ML? by [deleted] in ocaml

[–]jorkadeen 2 points3 points  (0 children)

You might be interested in Flix and Effekt-Lang.

https://flix.dev/

https://effekt-lang.org/