I have not posted here for some time, so I thought I would let you know what keeps me busy. As some of you already know, I have recently moved here:
This is Petrovac, home to the headquarters of Realaxy, the company best known for their revolutionary actionscript editor that enabled us to write and efficiently use our own domain-specific languages (DSLs) in addition to AS3. Proper use of this feature allows you to solve programming problems with less code than it normally takes (so that your work could look less like this :)
But the revolution does not stop there. Now that I joined Realaxy, I can share some exciting news at first hand – the editor is going to be far more powerful in the near future! Now you might be thinking there, what more could I ask? This cool IDE even provides code completion for your own DSL – what’s next? Maybe it will just write the code for me, and make me coffee as I wait? Well, you will be wrong about coffee :P
Being based on JetBrains MPS, the editor inherits its non-textual presentation of program code:
[The] code always maintained in an Abstract Syntax Tree (AST), which consists of nodes with properties, children and references, and fully describes the program code.
This circumstance puts it into right position to apply so called genetic programming method to develop your program automatically. Genetic programming was around since 1985, and now GP-powered editor fork codenamed Eureka is about to change the way you work! From now on, you will describe your programming problem using special DSL, much like you write unit tests today, and press “Evolve” button. Eureka will then look for code that solves your problem. You will be able to interrupt this process and make some changes to the code, if you think it goes in wrong direction, and then restart from there as necessary.
Before you ask – I have no ETAs for Eureka, sorry. As any real technology, Eureka is not without problems, and it takes time to solve them. But, as the saying goes, good things come to those who wait. So keep an eye on my blog – I will keep you posted :)