DEV Community

loading...
The DEV Team

When do you think it’s the right time to create your own coding language? Answer for the chance to be featured on our podcast!

graciegregory profile image Gracie Gregory (she/her) ・1 min read

The DevDiscuss Podcast begins with an interview and ends with commentary from listeners — and we like to feature the actual voices from our community!

To inform an upcoming episode of the show, we'd like to know...

“When do you think it’s the right time to create your own coding language?”

For your chance to hear your actual comments on an upcoming episode, answer the question above by:

  • Calling our Google Voice at +1 (929)500-1513 and leave a message 📞

  • Sending a voice memo to pod@dev.to 🎙

  • OR, leaving a comment here (we'll read your response aloud for you) 🗣

Please send in your recordings by Wednesday, March 24th at Midnight, ET (9 PM PT, 5 AM UTC)

Voice recordings will be given priority placement 😉


Plus, don't forget to check out the most recent episode of DevDiscuss:

play pause DevDiscuss

Discussion (15)

pic
Editor guide
Collapse
sylwiavargas profile image
Sylwia Vargas • Edited

I'd say a good time to create your own programming language is when you have an idea how to bring something new to tech. For instance, @yechielk (together with Moshe Schorr) has recently created Yid++, the oylem's first programming shprach
Otherwise, I imagine that creating a new language could be a good exercise in programming in general and from that perspective, any time is a good time ❤️

Collapse
yechielk profile image
Yechiel Kalmenson

That's a fun one, but I had nothing to do with creating it! I just saw it somewhere and felt like I had to share!

Collapse
sylwiavargas profile image
Sylwia Vargas

Ohhhh I thought I saw you as one of the contributors on the repo!

Collapse
devlorenzo profile image
DevLorenzo

“When do you think it’s the right time to create your own coding language?”

It's actually quite difficult to create a programming language, you can't do that in a day, or in a week, or even if ten years. If you don't have the willingness to learn and the desire to create. Even if some built one while waiting for code to execute🙃, most of us need to have a lot of experience to create a working programming language. You have to dedicate a lot of time to the process. You will have to be very experienced in computer science and to perfectly know how a computer and a programming language work and interact. It needs to be in a moment in your life where you have time, or at least where you can find some in your busy dev life, to read and learn more and more about the subject. Then I'm sure you will find by yourself when it's the right moment to start creating.
So, the right time to create a programming language is when you are sure to have the programming background, the time to do so, and most of all, the determination. Then the rest will just be history...

Collapse
sylwiavargas profile image
Sylwia Vargas

I agree with you on that creating a programming language requires a lot of experience and background knowledge. But what do you think about a scenario when there is a person who's really passionate about an idea they have, yet they are quite a newbie? I imagine that the passion+determination will prompt them to step up their game, to reach out to their mentors (or find some) to make this happen.

Some languages are created just for fun and out of pure curiosity -- and maybe for those the scenario I presented could work quite well. It's an entirely different story if you actually want to revolutionize the tech world.

Collapse
lifelongthinker profile image
Sebastian

Nothing can hold a curious and passionate mind back. And nothing should.

So, yes, I fully agree: The reason you stated is always a great starting point to create your own language.

It doesn't matter if you finish it, or if it becomes stable enough for production use. The entire process of tackling this area of expertise is worth the effort.

Collapse
lifelongthinker profile image
Sebastian

I'd like to split the question up a bit:
◽Creating a DSL (using an existing programming language) is always a good idea whenever it gives you leverage. Experienced developers have a great instinct for this, usually based on metrics that are turning from green to orange or red (e.g. repetition, boilerplate, complexity).
◽ Creating a new programming language is a good idea if no existing language meets your needs. Given the complexity of the topic, such need really has to be incredibly urgent and pressing. Also, creating new languages is a great way to foster understanding of existing languages, paradigms, and how language and languages work in general.

Collapse
cescquintero profile image
Collapse
darkphantom7750 profile image
Rushan S J

Creating a programming language is long task. Making a language just for fun isn't great. It needs to perform better than other language to be useful. For example, when Binary was created, though it was really tough to program, people used it. Then Assembly was born and people found out that it was much better than binary. If creating a new programming language was so easy, everyone would have made their own language. There are a lot of factors which makes creating a new language difficult. Cross-Compilation, Targeted devices and functionality is just to name a few. The best time to make a programming language is when we have decided about how easy will the language to learn or how it has more benefits than others. And of course, as @devlorenzo told, we need Determination and time to do so.

Collapse
jmau111 profile image
Julien Maury

When you're skilled enough to create something elegant and easy to use.

While I understand it's fun to create things like Brainfuck or whitespace, my mind is incapable of accepting it, as those languages are impossible to use.

If no one or just a few people speak your language, then it won't last long.

Collapse
athulmuralidhar profile image
Athul Muralidhar

This is purely my point of view. I am neither a veteran programer nor one by training, but here it goes:

  • when there is a new problem to solve - this could be a new innovation in any field associated with technology : COBOL was developed for one specific set of problems in mind, the same with Julia
  • When the said language that has been developed no longer works for various new problems that arise. So, either the problem that it was set to solve completely diverges or new problems arise so rapidly that the language development can't keep pace with these new problems
Collapse
btruhand profile image
Btara Truhandarien

If you broaden the meaning of programming language to something more akin to "the way you describe something through program(s)" (of which sometimes natural language is said to be one way we describe the world), then I would say that developers are ALWAYS inventing a language. When you program in order to materialize your thoughts e.g ideas or solution in the form of code (such that then you can execute them) there tends to be quirky things about the particular code that is specific to the way that code. For example when someone asks "how do you start up your application?" and perhaps there will be steps such as "first you run tool X, then Y then Z and then start". X, Y, Z and start may be code which have embodied some description of the concept of "starting the application"

With regards to programing languages as we would usually think of, I think of them as the most important framework that a programmer works with. Language shapes our ability to perceive the world and conceptualize new ones. Since I think of frameworks as these powerful tools that frames the way we approach some work, I cannot help but think that programming languages are frameworks of the highest importance. Therefore, if one would want to venture to create a new programming language it would be best I think when the persons wants to introduce a new frame of thinking/approach/style as an endemic (pervasive) methodology.

Collapse
annaspies profile image
Anna

“When do you think it’s the right time to create your own coding language?”

If you're a developer working on a project, I'd say never. Why reinvent the wheel when there are already 16 or so other wheels to choose from that do the job and have their own team of masochists maintaining them?

Collapse
stojakovic99 profile image
Nikola Stojaković • Edited

Unless it's for practicing, almost never. There are so many languages out there covering different domains (even for legislative programming for example).

Designing your own language however is very beneficial for a developer and I believe that every developer should try to build at least one simple programming language in it's career.

Collapse
andrewbrown profile image
Andrew Brown 🇨🇦

When you have no other choice but to do so.

I created my own template language for working with PSQL Queries because we used to just use handlebars but the ruby implementation was actually just wrapping the nodejs implementation, and fun fact, that wasn't thread-safe.

I couldn't just move to a pure ruby handlebars implementation because the snytax was too different, so I had to reimplement what I used using Parslet.

I created it by finding a handlebars implementation in Parslet and I walked through the commit messages until I could make sense of how to build my own langauge.

github.com/teacherseat/querylet