Live data from Hacker News

Ask HN: Have you created a programming language and why?

news.ycombinator.com

211–220 of 247 posts

Re: Ask HN: Have you created a programming language and why?

#211
I designed a logic-functional language called Cosmos (https://github.com/mcsoto/cosmos) based on what I thought would be a good/minimalist/innovative/easy-to-use language design that I'd like to program in. It's lacking in implementation, as it'd ideally have at least a VM in C (and a game framework, I like those).

Re: Ask HN: Have you created a programming language and why?

#212
post #33

Earlier quoted context omitted.

http://inform7.com/

Inform was a huge inspiration for me! But there are some things I didn't like and so try to improve: - It comes with a manual. You shouldn't need a manual for something simple. - Too much prose, I like more structural things. If inform is a book, my Screenplay is technical documentation. Inform is great for what it does, but I guess I needed something slightly different.

Don't forget: computers have no true intelligence, and thus require humans to put things into some form of structure in order for the computer to understand it. The type of structure you can get away with using for simple tasks can often look beautiful, but beyond a certain point, you need to impose distinction and isolation so you can compartmentalize separation of concerns and so forth. This structure is the foundation of programming language design.

The major issue with all of this is that program code is built through a process of iteration: one brick on top of another. But once you hit the wall I just described, you have to face the scientifically organized structure of programming in order for the language itself to not be a mess (see PHP) or the programs written in it to be spaghetti (see BASIC and particularly GOTO).

I say this not to be a downer, just as strong encouragement to take this into account and try your best to factor this into your design. If you can make something that lets people scale really high before hitting that wall (if at all!), that would be awesome.

Re: Ask HN: Have you created a programming language and why?

#213
post #76
post #60

Earlier quoted context omitted.

As a Computer Scientist, I actually find the distinction Turing and non-Turing to be rather obscure. Perhaps I am in the ignorant minority on this.

A Turing-complete programming language just means that you can compute anything that can be computed using that language. In other words, it can be used to write arbitrary computations. You don't need much to achieve this; off the top of my head, I think that being able to read and write to storage, basic addition, conditionals and loops are enough. (Formally, it means that your language can be used to simulate a sin…

You can actually have a turing complete instruction set with only one instruction. I am not sure as to the practicality but here is a wikipedia link to read. https://en.wikipedia.org/wiki/One_instruction_set_computer

Re: Ask HN: Have you created a programming language and why?

#214
post #208

I'm currently making a programming language that tries not to be a programming language. To give some background: I'm working on a program to allow anyone to create video games. But to add custom functionality, my users need to use some kind of programming/scripting language. Since these are non-technical people, it must be as easy and simple as possible. Therefore I'm now making a language (called Screenplay) where…

The problem is that there is still a syntax that's required to know. Look at AppleScript. It uses keywords that sound like easy English but knowing how to use AppleScript still takes a lot of reading. After reading the article about RUST, I have been thinking about how a compiler could take source code and write it back with fixes/suggestions right into the source so if you make a silly mistake, the compiler can just…

You might like https://github.com/killercup/rustfix

Re: Ask HN: Have you created a programming language and why?

#215
I made Bard, a functional-first Lisp. It started out years ago as a version of s-expression Dylan and then, after I got an early compiler and VM for it working, began to accumulate changes as I went through successive phases of incorporating new ideas followed by redesigning to make it simpler.

The why of it is simple: I designed it to make me happy in my work.

I've made a couple of products with it, but I don't think anyone else has ever used it for anything.

It's between versions at the moment, experiencing yet another assimilate-then-simplify phase.

Re: Ask HN: Have you created a programming language and why?

#216
post #21

I created a non-Turing complete programming language for editing animations, implemented as a GIMP Script-Fu script (Scheme, basically). Here's the documentation: http://tshatrov.github.io/animstack Why? Because in GIMP it's annoying to edit animations with many layers, so I wanted to write a script that would do what I want. But rather than hardcoding a specific action, I wrote it in an extensible way, and the rest…

Non-Turing complete languages are useful, but it has been my impression that it is difficult to be powerful enough to be useful without being (accidentally!) Turing complete.

Actually non-Turing languages are very useful and can be quite powerful.

Consider for example TensorFlow and/or Theano. Before they added the loop and conditional Ops, they were non-Turing Complete. And you could do amazing things with it as it were.

In fact, I took a lesson from that when working on Gorgonia (https://github.com/chewxy/gorgonia) - I don't ever want it to be a Turing Complete language.

Re: Ask HN: Have you created a programming language and why?

#217
post #182
post #174

I made NewtonScript, starting in 1992. ( https://en.wikipedia.org/wiki/NewtonScript ) The other viable choice was to have application developers write everything for the Newton in C or C++. By giving them a much higher-level framework (Scheme/Self-like language + UI views/interaction + indexed object store) we were able to get more functionality into the product/ecosystem faster and more reliably. At least I think so…

Is there anything in Newton script you miss in current languages, or wish that would be more widely adopted?

Well, JavaScript was pretty darn close to NewtonScript, except for the bizarre way arrays work and the weird semi-implicit prototype inheritance. Since JavaScript has taken over the world, I wish that stuff was cleaner. :)

And speaking of prototype inheritance, I still think that makes a lot of sense in some domains (like UI programming) but hasn't gotten much traction.

Beyond that, having an integrated object store (as opposed to a filesystem) is an idea from the 90's that really should get more mainstream attention.

Re: Ask HN: Have you created a programming language and why?

#218
post #163

Earlier quoted context omitted.

> I think I once read that only an exponentially small fraction of binary strings are valid BLC programs This is true for the encoded lambda calculus prefix; but not for the entire BLC program in which you can embed arbitrary binary data. > In theory this means you could create shorter programs Not really; BLC is universal, so program sizes are optimal up to a constant. In other words, for any language L, there's a c…

Cool, I was wondering that. So you confirm that I can embed arbitrary binary data in a BLC program with only a constant overhead?

With two caveats: the binary data must come after the encoded lambda expression, and in case of self-delimiting programs, that lambda expression must somehow know where the binary data ends.

Re: Ask HN: Have you created a programming language and why?

#219

I’ve been working on a statically typed concatenative programming language, Kitten[1], off and on for a few years now. I plan to do an early release this year. I started working on the language to bring an elegant compositional style to low-level high-performance programming, in the form of a simple language that admits powerful tooling for program editing and visualisation. I also wanted to address usability concern…

Oh, it's good to see you. I'd like to say that I'm "following" (mostly limited to looking at the kittenlang.org every couple of months, but still) your project and I'm quite interested in it.

After learning about concatenative languages a couple of years ago I started learning Forth and later Factor. I wanted to give Joy a try, but IIRC I couldn't make it run and, after that, I stumbled upon Cat. But Cat was written for .NET and unmaintained (I just checked and it looks like even cat-language.com is dead now...). Still, I thought the idea was very interesting, at that point I was kind of tired of Forth strictly untyped nature. And then finally I found Kitten, which I thought was very promising, however very incomplete at the time. This is how I ended with Kitten being on my list[1] of languages to keep an eye on.

I hope it goes well and you'll release as planned, I can't wait to start playing with it! :)

[1] Here: https://klibert.pl/articles/programming_langs.html#org3087a1...

Re: Ask HN: Have you created a programming language and why?

#220
post #198

Earlier quoted context omitted.

Not necessarily. Purely functional languages, like Lisp, do not have loops. Instead they have recursion. Any iterative algorithm (I.e. one with loops) can provably be converted to a recursive algorithm with out iteration.

While another commenter has mentioned that this is technically not correct with Lisp, it holds for the lambda calculus. You don't need loops to be TC if you have recursion. And for that you don't even need named functions-- note the URL of this site!

However, lambda calculus doesn't have code made of data, QUOTE or any of that. Lambda calculus isn't Lisp; it captures the gist of some of the evaluation semantics of Lisp only.
Post reply on HN