Inspiration
Three brother from different mothers. Three kins of different skin. That is us, jingers, qilstiano and balx. We are different in so many ways, yet we are united in our love for computers and culture. qilstiano and balx, being malay and indian respectively, are used to being called token minority, but instead of being resentful, they decided to embark on a cultural adventure to learn more about wenyan-lang, a traditional Chinese programming language. jingers, being the sole Chinese member, hopped on to help his beloved friend on this journey. Together, we have gone above and beyond in engaging with the traditional Chinese culture, creating an authentic and immersive IDE/text editor, Draco.
What it does
Draco is a wenyan-lang based IDE for wenyan-lang programming.
- The interface has a textarea for programming, and shows the compiled code and console log as two output fields.
- The user interface is brimming with traditional Chinese elements to fully immerse users in the culture
- Following the traditional Chinese script, the typing direction is top-down, and the lines go from right to left.
- Syntax highlighting is integrated, both static in the compiled code and dynamic in the textarea.
- Users have the option to choose between light mode and dark mode to give users the flexibility of choice.
- Integrity is a core traditional Chinese value, but students these days simply throw their entire code into ChatGPT and let it do the hard work. Try pressing Ctrl+A to do this, and witness a fun easter egg:))
How we built it
- We used JS as our foundation as we are all comfortable in it. We practised our building using JS, and then went on to wenyan-lang.
Challenges we ran into
- The change in the directions of text and lines was a huge deal, as we could not rely on existing libraries. We spent many hours cleaning up the style and ensuring that the interface could emulate the traditional Chinese culture.
- We wanted to do syntax highlighting from scratch to maximise wenyan-lang usage, but we found it very hard to implement as it required a overlay. Handling this overlay took way longer than expected due to the change in directions, so we had to use prism.js instead. It was a pragmatic decision, to achieve the bigger goal of having Draco functional.
Accomplishments that we're proud of
- Leveraging the power of friendship to overcome our battles with language, sleep and life in general. In the end of the day, this is the true spirit of hackathons; coming together to create something special (in every sense of the word) and amazing, as one Majulah (idek anymore)
- Finessed a lotta Milo from the fridge, luv u NUS hackers <3 (this may or may not be glazing)
What we learned
- balx and qilstiano were used to using libraries for styling, but the change in orientation required much deeper understanding of how each element on the page interact with one another. Doing this at 4am was great skill growth and character development.
- jingers worked hard to simplify and teach his minority friends the syntax and conversion from JS to wenyan-lang. Was not easy reverse engineering by looking at existing wenyan-lang and trying to figure out which part was responsible for what, but it was productive. Made all of us more language-agnostic in programming.
What's next for Draco - an IDE for wenyan-lang, made with wenyan-lang
- Entrench the whole thing deeper in wenyan-lang; this means revamping the syntax highlighting
- More robust error handling within the IDE
- Increased aesthetic additions. We ran out of time to add more images and Oriental features, so we would add them in the future.
Built With
- prism.js
- wenyan-lang
Log in or sign up for Devpost to join the conversation.