Logix: Multi-Language Programming

Also advertized as Lisp-in-Python, Logix seems like an interesting project.

Logix provides syntax extension mechanisms (i.e., macros) that support language extension and encourage the use of embedded DSLs.

Languages can be encapsulated as objects, users can switch between them dynamically, etc.

Some call this sort of thing "language oriented programming"...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Another Logix...

This reminds me of Ehud Shapiro's Logix system,
which was an operating system written in Flat
Concurrent Prolog. Logix = Logic + Unix.

Another Logix?

Another Logix? Another Ehud? I'm confused! We chose the name Logix because we liked the sound of it and it fits well with the name of our start-up (LiveLogix), but I've sinced realised that it's too widely used already. Expect a name change in the not too distant future. :(

Your Blog

Tom,

Great job on your language design. It is inspirational!

Also, why not allow replies to your blog?

Thanks :)

Yeah - I just resent having to spend any of my time dealing with comment-spam. It's a shame though as I'd really like to encourage discussion - maybe I should re-think.

A friend just had to switch to a hosting company because we was getting so much spam that the anti-spam stuff was bringing the whole server to its knees. Anyone got any good tips for anti-comment-spam for WordPress? (I guess that's off topic, so: tom@livelogix.com - thanks)

SVG Image Embedding

Take one of your servers and load a SVG or SVG like library for the system of your choice (Java, PHP, Python, etc.). Create a simple script that will generate an image of a random dictionary word. Go from there...

seems reasonable

but it's wrong. You would cut out blind people and other ones with vew problems in general.

OT - What's with the PCness?

Of course, if the blinds can't post, no one should. It's the best thing we've found so far, although i guess it'd be possible to do the same thing with generated sound files.

Saw a better way

I read on the IKVM blog that in order to post one has to answer a simple programming question. That would be better, in my opinion.

Enumerable answers?

in order to post one has to answer a simple programming question
Like what is a type? ;-)

Seriously - how is this answering done technically? I assume correctness of an answer is validated automatically. I see two basical ways to answer - by choosing from a list of options, and a free-form answer. The first is prone to bot attack by enumerating all possibilities, the second presents challenges to developers of questions... The right answer must be really unambigious and apparent to anyone with, eh, appropriate background. Which way is preferrable to err to - too obvious questions, risking spam, or too obscure, risking irritated innocents?

How about

What is the result of this expression?
0x1f & 0xf1

Then type in 0x11 to validate your post.

From and email to a friend...

As you know I have no true love for Java (which I use for every project, regardless) but I am addicted to the vast library support. You have suggest Python as a remedy because of its mature libraries. I have been reluctant to switch, not because I saw anything I would miss from Java, but rather because I did not see things I was missing from other languages.

My favorite languages so far have been Javascript, XSLT and REBOL. I have known for a while that much of what I like from each has been a borrowed property of Common Lisp. I like the untyped variables of Javascript with the type system applying only to values. I've liked the expression based approach of XSLT where a variable can be set conditionally (safely and contained) and not in the inside out way of C style statements. Finally, I love the syntax redefinition of REBOL (and to some degree Ruby) allowing one to deal in-line with things like XML.

What I saw today is built on top of Python but adds everything I mentioned. Because I am a huge fan of operator-based rather than inheritance-based type systems I think this approach will even satisfy the absence of a prototype system in Python. Obviously, the Python libraries are available. Everything solved!

XLST

What do you mean by "... the expression based approach of XSLT where a variable can be set conditionally (safely and contained) and not in the inside out way of C style statements..." exactly?

Inside out C

C style:
int age;
if (someOtherCondition > 5) {
age = 2;
} else {
age = 1;
}

XSLT:


2
1

The XSL example should read:

The XSL example should read:

XSLT:
<xsl:variable name="age">
<xsl:choose>
<xsl:when test="$someOtherCondition &gt; 5">2</xsl:when>
<xsl:otherwise>1</xsl:otherwise>
</xsl:choose>
</xsl:variable>

and, to be fair...

you can do this in C:

int x = (someCondition > 5) ? 2 : 1;

but I agree that it's awkward in general...