Skip to content
wbqd edited this page Sep 23, 2014 · 2 revisions

What is Cake?

A visualized development and learning service for C language, which made up of “blocks” that look like jigsaw puzzle pieces.

Why graphic better than text?

Novice programmers are fighting two battles at once: the fight to translate their ideas into logical statements, and the fight to keep the syntax legal. Cake makes it completely impossible to make a syntax error. There are no unbalanced parentheses, no unescaped strings, no missing semicolons. Cake allows novice programmers to concentrate on the logic.

Additionally, many non-programmers find a blank screen with a blinking cursor to be daunting. How does one start? Cake allows these users to browse through the menu of blocks and start plugging things together.

Even seasoned programmers can benefit by starting a script with Cake. If one is writing a quick script using an unfamiliar API (such as office suite automation) it can take a long time to learn that API. With Cake one can plug the blocks together for a first draft, then switch to the generated code to keep going.

How do I write a program with Cake?

You click a block to place it in your workspace, then right-click the block to select the options you want, and then drag and drop blocks together to make a program.

The program I wrote doesn't make any sense!

Cake lets you put together blocks almost any way you want - even if your program won't work. Cake keeps you from making some kinds of mistakes, like programming syntax errors, but it can't prevent you from making mistakes like telling a program to, "Divide 'hello' by seven." If you know the basics of software programming, you can use Cake to write useful programs that do cool things. And if you don't know how to program, playing around with Cake can help you learn.

How does Cake scale to large programs?

It doesn't, at least not yet. Cake is currently designed for creating relatively small scripts. We have ideas for semantic zooming and other techniques that would allow Cake to scale. But that is not our current focus. Please do not attempt to maintain the Linux kernel using Cake.

Why not use a data-flow metaphor?

Data-flow is often a simpler way to represent certain common tasks. However we chose not to use it for two reasons. The first is that data-flow languages usually fail badly when attempting to solve tasks outside their domain. The second is that the generated code looks nothing like the visual data-flow representation, which serves as a barrier for the user graduating from the visual programming language to a text-based code editor. We feel strongly that users should not be locked in.

Can Cake import from code?

Cake can export from blocks to C. However we have no plans to import from C to Cake. The main issue is that modern programming languages are fearsomely complex. Importing arbitrary code would have a high development cost compared with a limited real-world utility.

Can I run Cake without an Internet connection?

Yes, although you won't be able to save programs for later use or any online features.