Ask HN: Have you created a programming language and why?
101–110 of 247 posts
Re: Ask HN: Have you created a programming language and why?
#102I'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…
Re: Ask HN: Have you created a programming language and why?
#103(Been thinking about a language more Object Oriented than Smalltalk for a few years on and off, but not yet.)
Because time. :(
Re: Ask HN: Have you created a programming language and why?
#104(1) Strix, a rule-based language with SNOBOL4-style string pattern matching.
(2) ENeMaL, a rule-based expert network management language.
(3) Gossip, an object-oriented Prolog
(4) Emblem, a Lisp dialect.
I've been using Emblem to develop
(5) Full Metal Jacket, a visual dataflow language (http://web.onetel.com/~hibou/fmj/FMJ.html)
There will always be a demand for domain-specific languages. I'd think hard about developing general-purpose languages. There are plenty out there already, and you could contribute towards them instead.
If you want to develop a new language for release, it's a good idea to develop several others first for your own use to gain some practice and learn what's involved.
Why have I developed Emblem? I wanted something simpler than Common Lisp, but didn't want to rely on third party libraries. It has support for 2d and 3d graphics, statistics, symbolic AI and a few other things.
Why have I been developing Full Metal Jacket? I wanted something significantly better than Lisp, with directed graphs as the fundamental data structure, extreme type safety, and the ability to run efficiently on multiple CPUs.
It isn't ready for release yet, and I'm taking a break from it at the moment. I'll consider it a success when I start using it in preference to Emblem.
Re: Ask HN: Have you created a programming language and why?
#105When I was in college, I was addicted to Starcraft II. Luckily, I primarily played 4v4s so the brainpower necessary to win wasn't nearly as high as 1v1s (which left far less room to meme, so I didn't enjoy them nearly as much). However, while playing game after game in the evenings, I was always frustrated that I was using the inputs and outputs of my body so inefficiently. Starcraft tied up my eyes and my hands, but…
I think it's still the case, C-like languages have too much grammar going on to deal with without visuals, forth is grammar-free. Also, it's naturally shell-like; instead of your 'run the code', just say the function you need to execute; you can test and redefine each function as you go.
I attempted to build this on a ZX Spectrum in 1983, based on some voice recognition code from a magazine...needless to say I didn't get too far with that hardware. I should have another go.
[1] Sample:
"Program. L axis add speed vector three point
six klicks per second. Paraphrase acknowledge."
"Increase forward speed three and six tenths
kilometers per second."
"Chief Pilot?"
"Level."
"Execute." Deety glanced at the board. "Gay Deceiver,
H-above-G will soon stop decreasing, then increase
very slowly. In about fifty minutes it will maximize.
Program. When H-above-G is maximum, alert me."
"Roger Wilco."
"If-when one hundred klicks H-above-G, alert me."
"Roger Wilco."
"If-when air drag exceeds zero, alert me."
"Roger Wilco."
"Remain in piloting mode. Ignore voices including
program code words until you are called by your
full name. Acknowledge by reporting your full name."
"`Gay Deceiver,'" answered Gay Deceiver.Re: Ask HN: Have you created a programming language and why?
#106Re: Ask HN: Have you created a programming language and why?
#107I'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…
Re: Ask HN: Have you created a programming language and why?
#108I created it to eliminate:
1) Situations where different people in an organization have conversations about the same thing and reach different results, not being aware of the duplication
2) Situations where lots of people in an organization are forced to copy and repeat the same information over and over again
3) Churning and duplication of effort where various people and teams are learning about how and why an organization works and how their work fits into the big picture
4) All the noise and churn it takes for a team to ramp up on a story that it hasn't seen before
Re: Ask HN: Have you created a programming language and why?
#109Re: Ask HN: Have you created a programming language and why?
#110Between 2008 and 2010, I created a language with Java/C# like syntax, C/C++ like semantics, strongly-typed but with type inference that was meant to be embeddable into C++ apps. I wanted to use it to create a game. However, I didn't want to created a Virtual Machine for it, so I opted to use the Parrot VM[1]. The choice to use Parrot was huge mistake because that project turned out to be a clusterfok that never worked right, even though they had been working on the VM for close to a decade, by that point. I abandoned that language and moved to another language because there were no other VMs that suited me, at that point.
Since I was burned from the Parrot VM fiasco, I decided to create another language that didn't rely on a VM, so I created a general purpose API design language. In this language, you design APIs, and then write 'generators' in JavaScript that transform the API code to the final output. The benefit of this is that you only have to create one generator for each type of code/asset that you want to create, and use the same front-end API code (call schemas). So, for example, you can create a schema for some Amazon web-service, and then have generators that would output different types of clients, or some test-servers, or automatic documentation, sample inputs, dashboards, graphs, whatever based on your one schema. The language is written in C++ and it very well tested (close to 3000 tests). My vision is that a developer will design their API schema once, and then use generators (written by the developer or by others) to generate all kinds of things from that one API: client-code, server-code, test-cases, docs, graphs, dashboards, etc. This way, we can focus on actual API design and leave the mundane tasks to the generators. The flow is like this: [schema(s)] -> [compiler] -> [intermediat representation] -> [generator(s)] -> [final output(s)] I think this language is neat.
While I was working on my API design language, I wanted to have really good error messages, and I wanted the error messages to be all in one file, so that I could glance at them easily while developing. So, I ended up designing a micro-language for handling text-templates, where you have things like: "The ($noun) is ($verb)" The thing is, you'll quickly realize that replacing variables is not enough. Eventually, you'll want conditionals, loops, .... function calls (:-0), so I added them. This micro-language is embedded in a couple of files within the API language, but I thought it was neat, so I decided to create a proper text-template language based on it, because if you do a search only for C/C++ text-template language, there are not alot of choices for this. I have the general design for the language completed in my head, and I have a basic implementation of some of the basic things like syntax parsing and variable interpolation and basic function calls, but I paused development on it for now, while C++ 17 hits the streets, because I had a real need for std::string_views to minimize string copying. Also, since I decided to make the implementation of this text-template language more robust and performant for enterprise type of use, I decided to go with an sql-like prepare->execute type of processing; this requires adding a micro-vm for the execution part, which adds to the development time.