# How to add new programming language

**URL:** <https://forum.makecode.com/t/how-to-add-new-programming-language/5315>\
**Category:** Maker\
**Created:** [January 2, 2021, 11:47pm UTC](https://forum.makecode.com/t/how-to-add-new-programming-language/5315 "2021-01-02T23:47:42Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![miry](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/miry/32/2898_2.png) [@miry](https://forum.makecode.com/u/miry)\
**Post date:** [January 2, 2021, 11:47pm UTC](https://forum.makecode.com/t/how-to-add-new-programming-language/5315/1 "2021-01-02T23:47:43Z")

</div>

I would like to teach Ruby language with MakeCode.  
How easy to support a new programming language?

---

<div class="post-metadata">

**Author:** ![darzu](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/darzu/32/1882_2.png) [@darzu](https://forum.makecode.com/u/darzu)\
**Post date:** [January 2, 2021, 11:49pm UTC](https://forum.makecode.com/t/how-to-add-new-programming-language/5315/2 "2021-01-02T23:49:52Z")

</div>

Probably ~2-12 months of full time effort depending on how complete you want to be.  
If u want to utilize all existing libraries and features, we’d need a typescript-\>ruby decompiler and ruby-\>typescript compiler for the subset of ruby you care about. This is how py support works.

Examples:  
.py -\> .ts:

> <https://github.com/microsoft/pxt/blob/master/pxtpy/converter.ts>

.ts -\> .py:

> <https://github.com/microsoft/pxt/blob/master/pxtpy/pydecompiler.ts>

---

<div class="post-metadata">

**Author:** ![miry](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/miry/32/2898_2.png) [@miry](https://forum.makecode.com/u/miry)\
**Post date:** [January 3, 2021, 1:52am UTC](https://forum.makecode.com/t/how-to-add-new-programming-language/5315/3 "2021-01-03T01:52:04Z")

</div>

Thank you for the fast reply. It is very helpful.
