At the end of 2019 the project Wenyan programming was quite popular among Chinese community. I thought Cirru is capable of building something similar. I started jiuzhang-lang(or 九章编程 in Chinese) and had fun for a while. At least it’s runnable on browser and on Node.js CLI tool

Later I tried to fix another project of Cirru after fixing Cirru HTML, CirruScript. CirruScript was an early experiment running JavaScript in Cirru syntax. I updated dependencies and updated the REPL a bit after a break of years. …

It’s a really rushed year. Things came and I was not prepared. I didn’t get much chance to travel and take ease, but lots of time was spent on coding. Another reason is I have a personal Todolist running small tasks, which are mostly related to coding. So as a result coding ate big part of my spare time.

There were 5 major projects I was working on in 2019, big or small. Other commits belong to the toolchains or tiny apps, or projects running in the company.

Respo Composer

This project was started beforing Spring Festival. …

There was a post in 2017 talking about React.js community in China,

At that time I was working in Ele.me, which chose Vue.js as it’s primary framework. Vue is great. I just has more knowledge in Functional Programming than in Observables.

It has been 2 years now. Besides, I joined VueConf Shanghai yesterday and talked to many friends there. Vue is even more quite popular in China after two years. Now it’s the 3rd Vue Conf in China after two of them held in Beijing and Hangzhou. …


Vue user,

  • used Vue 0.8.3 for weeks.
  • wrote Vue in Ele’me for some months.

ClojureScript user, created Respo,

  • used ClojureScript for toolchains for 3ys+
  • Respo is a simplified virtual DOM library.

What is Respo Composer?

Have you ever thought?

What a front-end MVC framework would be like in the future?

I don’t know, but I got an idea, I don’t like repeat someone’s work, like translating Sketch file into JSX/CSS.

Respo Composer is a experimental tool, edit and preview template by a designer, handle action by a programmer.

Preview UI with a selected piece of mocking data.

I have too GitHub accounts, the first one is my personal account, which is mainly using ClojureScript in the 2018:


The other one was used at work, in TypeScript and React. Sometimes I have chance to code my tools with ClojureScript so I can make my work a little more efficient:

For the impatient: just show the tutorial, how to compile and run(with shadow-cljs)?

There was a poll on Twitter I tried to ask people why they don’t like ClojureScript,

Many people responded with “Not known how to build it”. By the word “build”, I mean mostly “compiling”. Not sure if someone takes it like “structuring” or something.

The “compiling” problem is much easier today I would explain later. For the “structuring” part, I don’t think I can really answer it. To create a browser project you will need a UI library like Reagent, Rum, Om, or even use React(with…

We built several apps in our start-up. mobx-state-tree(MST) was an early choice to replace Redux. As I joined, the codebase has quite some code in TypeScript, MobX, and MST. We are mainly working on 2 of them. The apps are management systems for setting configurations and displaying charts, as well as editing graphs. After we worked on these apps for several months, the codebase grew a lot larger.

MST might not be the best tool for our case, while it’s still powerful one. I feel there are some pain points.

Typecheck errors are obscure

As we put more and more data inside a single…

I’m a Clojure beginner and I want to learn more about using Clojure. To your surprise, I don’t have a Java background, no experience on Database and server programming either. I heard Clojure is a well-designed language with Functional programming stuffs. I like FP, I learnt some Haskell before, but Haskell is too hard for a programmer like me. I only write HTML/CSS/JavaScript after I got a job.

Learning Clojure is hard. I don’t have many friends in my city, which is Shanghai. So no one is going to teach me Clojure. I bought books about Clojure but still not…

shadow-cljs provides everything you need to compile your ClojureScript code with a focus on simplicity and ease of use.

To install shadow-cljs, use npm:

npm install -g shadow-cljs

shadow-cljs requires Java, make sure you have Java installed. Don’t worry, shadow-cljs handles Java for you. If you still want to learn more about ClojureScript, checkout this list.

Compile to browser

Say you have a project:

├── README.md
├── assets
│ └── index.html
├── package.json
├── shadow-cljs.edn
├── src
│ └── app
│ ├── lib.cljs
│ └── main.cljs
└── yarn.lock

assets/index.html(please copy it to target/index.html in order that it can be accessed) looks like:

Not really sure if people from English world are interested. I’m going to just add some notes here in case someone needs.

Social medias

知乎 http://www.zhihu.com/ is like Quora, but surprising this year it’s becoming more and more popular since many more companies joined and sending posts. From early 2012 tech began to appear on that small site, now more and more developers, and surely a lot of them are JavaScript developers. My friend started a very famous front-end column there translating English tech articles. My company has a well known column on Zhihu too.

微博 http://weibo.com is like Twitter. Tech messages…


FP, GUI & writing, tiye.me. Chinese Blog: https://segmentfault.com/blog/jiyinyiyong

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store