Jekyll: Why Jekyll
Home
Why Jekyll
Tutorial
Features
Status
Download
Contact Us
Documentation
SourceForge

Another high level language?

Many people have designed languages that are better than C. They have designed languages that are easier to use than C, more expressive than C, safer than C, and more efficient to compile than C.

Stuck with C

Despite the many advantages of higher level languages, a large proportion of software projects are still written in C. We believe that project managers continue to choose C for several reasons:

  • Their software is already written in C
  • Their programmers already know C
  • Their compilers work with C
  • Their libraries work with C
  • Their tools work with C
  • They are unwilling to trust their project to a language that might not be supported in a few years time

Another view of C

Jekyll allows programmers to gain the advantages of modern high-level programming languages, without having to go through the pain of moving away from C. Jekyll does this by being losslessly translatable to and from C.

Any Jekyll file can be translated to and from an equivalent C file. Indeed Jekyll can be thought of as being just another view of C. This allows Jekyll to avoid the problems normally faces when moving away from C:

  • The code base can continue to be in C - but with some editing done in Jekyll.
  • Programmers can move to Jekyll one at a time, with C and Jekyll programmers working on the same file concurrently.
  • Jekyll programs can be compiled using existing C compilers.
  • Jekyll can use C libraries just as easily as C programs can.
  • C tools can work with the C version of a Jekyll program.
  • If Jekyll ever ceases to be supported, you can continue to work with the C versions.

Lossless translation

An important feature of Jekyll is that translation between Jekyll and C is almost entirely lossless. If a Jekyll file is translated to C and back again, the new file will be exactly the same as the original file. If a C or Jekyll file is modified, then only the corresponding code in the other file will change. All layout, comments, naming, formating etc is preserved.

The only case in which layout information can be lost is if a C programmer modifies the formatting of a block of boilerplate code that was generated from a smaller amount of Jekyll code.