!7 static TimedCache> cache_snippetTitles = TimedCache(600.0, f allSnippetTitlesFromLocalSnippetsDB); static TimedCache cache_stdFunctions = TimedCache(60.0, f stdFunctions_uncached); static TimedCache content_functions_cache = new(60.0, f content_functions); static TimedCache content_modules_cache = new(60.0, f content_modules); sS content_contact() { ret h2("Impressum / Imprint / Contact") + pre([[ Stefan Reich Dubenhorst 27 25474 Ellerbek Germany info@botcompany.de 0176/2412 4614 ]]); } sS content_functions() { Map titles = cache_snippetTitles!; new L l2; SS map = cache_stdFunctions!; for (S name : sortedIC(keys(map))) { S id = map.get(name); S title = titles.get(psI(id)); title = emptyIfSame(name, dropPrefix(name + " - ", title)); l2.add(litorderedmap("Function Name" := ahref(progLink(id), htmlencode2(name)), "Description" := htmlencode2(title))); } ret h2("JAVAX STANDARD FUNCTIONS (COUNT: " + l(l2) + ")") + htable(l2, false); } sS content_modules() { L l = stefansOS_recommendedModules(); //l = sortByFieldIC('name, l); L l2 = map(l, func(RecommendedModule m) -> Map { S name = dropSuffixICTrimOneOf(m.name, "[Dyn Module]", "[Dyn Module, OK]", "[Dyn Module, shortened]", "[OK]"); ret litorderedmap( "Module" := ahref(progLink(m.moduleID), htmlencode2(name)), "Lines of Code" := str(numberOfLinesInFile(snippetDB_textFile(m.moduleID))), "ID" := ahref(progLink(m.moduleID), m.moduleID)); }); l2 = sortedByMapElement_alphaNum("Lines of Code", l2); ret h2("PUBLIC MODULES FOR STEFAN'S OS (COUNT: " + l(l2) + ")") + htable(l2, false); } sS content_javax() { ret [[

THE IDEA

Today we program computers in a way that is hard—hard to learn, hard to maintain, complex and error-prone.

I propose to talk to computers in English instead.

Later, obviously, "English" will also mean "any language in the world".

THE PROCESS: STEP 1

Our basis is a suitable, well-developed, existing programming language: Java.

On top of Java, we build a simpler language which is much easier to learn and much closer to English already. I call this JavaX.

Here is a simple example of working JavaX code:

      showImage(singleImageFromWebcam());
  

This single line finds the webcam, loads appropriate libraries, grabs an image and shows it to you in a window. Simple as that. And we have ]] + ahref(rawSelfLink("functions"), "13,000 more functions") + [[ like that.

In general, in JavaX you write 20 lines of code where users of other languages literally need 500. ]] + ahref(rawSelfLink("modules"), "See example source codes.") + [[

THE PROCESS: STEP 2

Using JavaX, we now build speech processing functions so we can ultimately talk to the machine all day in spoken or written language.

We will express our thoughts, questions and instructions as we would to a human, and get proper responses from the machine.

WHAT YOU CAN DO TODAY

You can run JavaX on your computer today through a program called "Stefan's OS" which is compatible with Windows, Linux and Mac OS. Download links here.

All the code in it is open source (no secrets or spyware).

We have first demos of a speech-only user interface which you can also try through the OS.

]]; } html { S content, title = ""; if (eq(uri, "/modules")) { content = content_modules_cache!; title = "Modules"; } else if (eq(uri, "/functions")) { content = content_functions_cache!; title = "Functions"; } else if (eq(uri, "/contact")) { content = content_contact(); title = "Contact"; } else content = content_javax(); S html = [[ JavaX ]] + appendSpaceIfNempty(title) + [[| BotCompany.de

JavaX:

The Next Generation of Programming

]] + content + [[
]]; ret subBot_cacheHeaders_minutes(1.0, subBot_serveHTML(html)); } sS navLink(S link, S text, bool selected) { ret (selected ? [[
  • ]]) + ahref(link, text, class := "pure-menu-link") + [[
  • ]] + "\n"; }