Are the IDE and Serial Monitor open source?

Is the code for the IDE and Serial Monitor open source? If so, where do I find the code for them? Searching the documentation only tells me how to use them.

I want to write a custom version of Serial Monitor (for Windows).

Many thanks.

(deleted)

I bet my internet history will turn up a search result.

Arduino's IDE is on Github

but it is java, which burns my eyes.

The next version of windows is going to have a pseudo terminal, on which we can do things more like is done on Mac or Linux. It may even be possible to port picocom to Windows, I would say you are wasting your time with a Java implementation.

To stress this a little more: imagine being able to ssh from a Mac or Linux machine to Windows and then use picocom to your Arduino. So yes that will soon be possible, but someone will need to port picocom to Windows.

The Serial Monitor code is open source and is part of the arduino/Arduino repository at the link provided by ron_sutherland.

ron_sutherland:
but it is java, which burns my eyes.

The Java language (or at least they way it is normally presented) can be a real PITA.

But the JRE is a great idea because it enables the same program to run on different Operating Systems.

And if you don't like the Java language you can get all the advantage of the JRE with JRuby or Jython and other JRE languages.

...R

P-Code machines everywhere

The JRE is the p-code machine Sun did for Java (I wonder if Oracle changed it much).

For a while, it looked like p-code execution was going to be done in silicon, but that would be an oxymoron (p is for pseudo after all). I don't have any attachment to any particular p-code machine. CPython's p-code machine may not be up to par with the JRE but it is fine for how I use it, and it is well tested with Python. I bet there are plenty of edge cases that cause Jython problems. Python was also ported to the .NET p-code machine.

CPython interfaces with a wide range of OS's, it is a solid general purpose language, but can be slow (it has a C interface to help with that).

For me, the most important thing is that I can look at programs I did with Python and make sense of them later. Nothing I did with Java made any sense after some time (C++ is also a struggle like that). I can spend months on circuits and mechanical stuff and then when I look at the code again feel like it needs a total redo. I think everyone needs to find what works for them, for me, it is C and Python. Since Python has the batteries included (e.g. it has a p-code machine and a compiler for it, that runs just in time) I may as well use those.

Update: actually the JDK is probably comparable to CPython, both give their respective p-code machine a way to interface with an operating system, (or bare metal in the case of micropython).

ron_sutherland:
Update: actually the JDK is probably comparable to CPython, both give their respective p-code machine a way to interface with an operating system, (or bare metal in the case of micropython).

This could be an interesting discussion - I probably agree with much of what you say. But I don't think it helps the OP to prolong it here.

...R