P3 - Personal Porting Project - Update

tomowatt profile image Tom Watt ・2 min read

So little follow up on my Personal Project.


I've added two more Languages: Ballerina and Rust. Both of them presented unique challenges but very satisfying to finally get something working.

Ballerina, always stood out to me as an 'modern' language. Previous studies using Java allowed me to get a good start on Porting over the program but only got me so far.

Dealing with @tainted and @untainted annotations stumped me when dealing with the Error handling, so I feel my port doesn't truly represent how Ballerina should be written.

With that, I didn't use the @docker annotation - which I feel that's where Ballerina excels as a language - but that's just to be able to build and run with Docker Compose.

Rust. This was a whole new level of learning for me. I started off wrong and ended up taking a lot longer to Port compared to the other Languages - so far.

I restarted probably about 5 or 6 times just with the basics of opening a File, reading lines, etc. Not realising some examples of how to do such linear actions had been deprecated as Rust has evolved.

But it did then present me with an issue, I presented my Tasks for the Program in a abstract manner that's not easily implemented in Code. I updated these into smaller, more manageable Tasks and that allowed finish porting into Rust.

Once, I finished and complied the Rust code into the single Binary and saw how small the entire application and Docker Image could be, I was amazed.

Future Plans

Definitely aiming to add in Ruby soon. With possibility of Swift and see what if I can deal with another 2 more, to get a total of 9 different Languages.

Still need to refactor, add tests and HTML & CSS.

GitHub logo tomowatt / P3

P3 - Personal Porting Project


Editor guide