Live data from Hacker News

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

news.ycombinator.com

171–180 of 247 posts

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

#172
Not quite, but I've hacked on various programming language related projects:

* Helped write a C++ bindings library for Ruby. I was finally getting sick and tired of doing everything in C++, and paying the cost in undefined behavior and compile times, but hadn't given C# a proper try yet. Bugs in the C API for exception handling eventually convinced me to abandon the project IIRC, but we had something functional.

* Company-internal modifications to a C++ bindings library for Squirrel, Sqrat. Bugfixes for UB, adaptations for custom smart pointers, logging, replacing exception-throwing logic in later versions... was at a company using it professionally and was encountering bugs, compatibility issues (we couldn't compile with exceptions enabled for all platforms), and poor debugging support (which I 'fixed' by adding a lot of dumping options for callstacks and the like.)

* Wrote a flash bytecode rewriter utilizing RABCDAsm. This wrapped all method calls - and statements within methods - in additional logic to track the current callstack. Our flash embedding solution didn't let us debug flash very well, but these modifications let us get real callstacks for unhandled exceptions and other errors. As a bonus, I was able to reuse much of the logic for a simple tracing profiler of sorts.

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

#173
yup!

I'm creating a small virtual machine based around the idea of associative memory (read: tuplespaces). I'm going to use it to write a ton of declarative code for smaller devices and for some of my own projects.

the opcodes are still in a state of flux, but a partial implementation exists in Python, with the intent of porting everything to C and getting a spec up. you have operations like 'match', 'exists', 'assert', 'retract', mathematical operations...

...oh, and no callstack. ;)

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

#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. Also, we didn't have much RAM to play with, and were able to do some nice memory-saving tricks underneath.

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

#175

Long ago I found a copy of "System Design from Provably Correct Constructs" at the Seattle public library. I didn't realize it at the time but I now know that it is basically a presentation of Dr. Margaret Hamilton's Higher-Order Software ideas. In essence it's a thin AST that is only modified by operations that preserve certain kinds of correctness (i.e. type safety), with a tiny core of essential combinators that a…

commenting for future reference.

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

#176

Long ago I found a copy of "System Design from Provably Correct Constructs" at the Seattle public library. I didn't realize it at the time but I now know that it is basically a presentation of Dr. Margaret Hamilton's Higher-Order Software ideas. In essence it's a thin AST that is only modified by operations that preserve certain kinds of correctness (i.e. type safety), with a tiny core of essential combinators that a…

It's called Universal Systems Language. One of the founders of software engineering also was a pioneer in high-assurance toolkits. A NASA engineer's review showed the tool to have serious usability and performance issues. However, she and her team should get credit for solving the hard problems with a tool that at least worked for some people. It's also written in itself.

http://htius.com

Edit: The book you mention is on Amazon for $6 now. Ill buy a copy for historical inspiration if its contents go into detail with examples of applying her method to at least toy problems.

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

#177
post #88

Yes, CoffeeScript, in 2009. Despite being a modest, fun experiment in stripping JavaScript down to a minimal skin, and without any corporate backing, it wound up catching on a little bit. Thanks to the hard work of Geoffrey Booth and Simon Lydell, among others, there's a new "V2" version that includes many ES6 and 7 features that's almost ready to go: http://coffeescript.org/v2/ CoffeeScript was designed extremely co…

Just wanted to say thank you for CoffeeScript. Despite its somewhat ambiguous syntax it really was a better version of JavaScript, and it would be fair to say it really mainstreamed the idea of JS as a target language. Many of the ideas in CS made it all the way to ES6. Many other ideas didn't make it to ES6 because CS fleshed out issues that quite possibly would have been missed otherwise. It was a huge net positive…

Ditto. CoffeeScript made JS almost Ruby-level fun for me. I've now switched mainly to TypeScript, which is also great (so many fewer runtime errors!). But I still miss thin arrow functions, array comprehensions, the existential operator ... What I really want these days is CoffeeScript on top of TypeScript.

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

#178
I created a programming language called NCD. It is a mostly imperative language but where each statement can make the program backtrack to that point. The original intended use case was for configuring the network on Linux but it is really practical for similar things like starting programs based on the presence of hardware.

The interpreter is written in C and is open source [1]. There is quite some old documentation here [2] (needs to be moved, this was from a google code wiki). An online demo with several example programs can be found in [3] but it does not have all the latest features of the language.

The interpreter is completely asynchronous (uses epoll etc; this is why the Javascript demo was so easy). It has many build-in modules that allow to do quite a lot of things (including sub-processes with pipe I/O, TCP client and server, receiving events from input devices, observing devices through udev events).

The language is actually built from a relatively small core which defines the syntax and basic semantics, and a larger set of modules which implement different statements. Many of what would in other languages be part of the language exists as a module in NCD, e.g. the var() statement and even If.

And here [4] is a real program written (mostly) in this language, that does something completely different from network configuration (allows controlling a Sphero robot using a joystick).

[1] https://github.com/ambrop72/badvpn/tree/master/ncd

[2] https://github.com/ambrop72/badvpn-googlecode-export/blob/wi...

[3] https://rawgit.com/ambrop72/badvpn-googlecode-export/wiki/em...

[4] https://github.com/ambrop72/spherojoy

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

#179
post #68
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.

Isn't it just possessing both conditionals and loops?

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.

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

#180
I have created a graphical data flow language for Android. The idea is that typing would be lame on a touch screen and I should do something about it... 3 years young according to github, hasn't really caught on "yet" O:)

For details, see http://flowgrid.org.

Play store link: https://play.google.com/store/apps/details?id=org.flowgrid

P.S. If you want to create your own language, consider using my expression parser: https://github.com/stefanhaustein/expressionparser

P.P.S. https://github.com/stefanhaustein/typo

Post reply on HN