4 ms·
What kind of information do you need to invent a new programming language?
- slapshot 16y agoA purpose other than "my boss wants his name on a language." Once you identify a specific type of problem that is not solved by today's programming langauges, you have the basis to go create a new language. Maybe you find that it's hard to express some AI concept, or complex math, or to make easy web applications---each of those needs led to very good programming langauges. Otherwise you're just adding language clutter, re-inventing the wheel, and wasting a lot of time.
- SwellJoe 16y agoThis reminds me of the old saying regarding prices on luxury goods: If you have to ask, you can't afford it.
- jerf 16y agoIf you want to just knock about, just start doing it. If you're serious about getting people to use it, my personal minimum guideline is ten years experience of serious software development where you are continually pushing yourself, fluency in at least one major functional, logic/set, and imperative/OO language, and competence in about ten languages as diverse as possible, and some specific problem that can't be solved well by an existing language. By then you'll know what to do. The reason I would say this is my usual spiel about not actually encouraging people to do really time-wasting things, even though we have a culture of "encouragement at all costs". Encouraging a novice mountain climber to take on Mount Everest as their third mountain isn't friendly, it's evil. Encouraging someone to write their own new programming language if they don't have the experience to do it of course won't kill them, but they sure can waste a lot of time. Whatever you think they may learn from the experience can be learned faster and more productively by first reaching the standards I wrote out above, and actually taking advantage of the fact that much ground has been mapped out already. We all must re-invent our own wheels if only for learning at some point, but this is a great deal more than a "wheel".
- motxilo 16y agoI sort of agree. The only snag is that you present gaining a lot of experience before tackling that task as opposed to start building up your own stuff. They are not exclusive by any means. Rather than encouraging a novice to climb Mount Everest directly by either North or South Ridge, have him start building his own low-steep slope path surrounding the mountain, with some books about mountaineering and maybe some friends that created their own roads a while ago. Maybe, in 15 years, he will reach the tip.
- deleted 16y ago[deleted]
- raffi 16y agoI started to write Sleep when I was an undergraduate around 2002. My goal was to develop a Perl-inspired language for the JVM with an API to embed it into applications. Sleep predates a lot of JVM languages. http://sleep.dashnine.org/ http://sleep.dashnine.org/ It's not mainstream but I used it in After the Deadline, jIRCii, and now Armitage. When jIRCii was more active I had several scripters using it to contribute to the client. Scripts ranged from a few lines to several thousand lines of code. I receive emails occasionally from users but there are not too many Sleep hackers out there. Still, I'm doing better than most languages since my number is greater than 1. :) So my advice for would-be language hackers: go for it. Writing Sleep was one of the greatest learning experiences for me as a programmer. I now look at languages through an entirely different lense. I don't get too excited about fads or syntactic sugar as I know how I'd implement them. Also, it's not that hard.
- onan_barbarian 16y agoAlmost nothing. It makes a great deal of sense to make something fun and throw it away. Pick some frameworks to make it easier (parser, and perhaps a compiler or interpreter toolkit) and make a throwaway. There's no such thing as 'language clutter'. No-one is harmed by you making a pet language for your own edification, and you will almost certainly not build anything that's more useful than an existing language on your first try. Or even first N tries. It's very educational, it does no-one any harm, and it's really fun when something works. Just don't take yourself too seriously.