

The State of Hy - Foxboron
http://fox.devport.no/?p=82

======
madhouse
I've been using Hy for a while (in production too), and while it has its rough
edges here and there, it is a million times more pleasant to use than python.
But I hate python with a passion, so there's that. Bidirectional interop is
fantastic, too - at one place, they're using Hy without knowing, because they
just import a python module, which happens to be Hy. I find that both funny
and an awesome achievement at the same time. Every time I look at that
deployment, I can't help but feel geeky pride.

A real fun language, one which matured a lot within the year. Keep up the good
work!

~~~
jonesetc
> I hate python with a passion

Genuine curiosity as to why. I've heard arguments against using it because of
speed and type-issues, but you're using a derived language that doesn't change
either of those things. I've never heard anyone just blatantly dislike the
language itself.

~~~
madhouse
I hate significant whitespace, and the syntax of Python (not enough parens;
allows crazy oneline hacks with comprehension, yet still forces indentation
otherwise; blindly following pep8 often results in horrible mess of a code,
etc).

Hy gets rid of both the significant whitespace, and the syntax too. Yet,
allows me to have bidirectional interop, so people using my modules are none
the wiser, as long as I make a little effort to remain python compatible
(macros used only internally, and not exposed in the API, and using valid
python names for functions and other stuff).

~~~
breuleux
Significant whitespace kind of makes sense in general: humans make heavy use
of whitespace to parse code visually, which means that when it isn't
significant, the machine and the human are essentially using different parsing
algorithms.

As for "getting rid of the syntax", I think that's a bit disingenuous. Much
like Clojure, Hy cheats by collapsing nesting:

    
    
        (for (i (range 1 10)
              j (range 1 10))
            ...)
    
        {1 2 3 4} ==> {1: 2, 3: 4}
    

I mean, this isn't just getting rid of syntax. It's getting rid of
_structure_. As a purist, my stance is that you either keep the structure
(`{(1 2) (3 4)}` or you add syntax (`{1 2, 3 4}`, and unlike Clojure, make the
comma significant). What you don't do is tuck syntactic information in the
parity of the rank of an argument.

------
rayalez
I'm new at programming but I really want this language to succeed, it looks
amazing, I would love to use it a lot.

I've made a g+ community about it, who's interested - welcome:
[https://plus.google.com/communities/112523471857971507059](https://plus.google.com/communities/112523471857971507059)

Keep it up guys! =)

------
Scriptor
People might also be interested in [http://try-hy.appspot.com/](http://try-
hy.appspot.com/).

Does anyone know how they do sandboxing in there? Judging from the source
([https://github.com/hylang/tryhy/blob/master/main.hy](https://github.com/hylang/tryhy/blob/master/main.hy))
repl.eval is called on each expression. I'm guessing it just uses App Engine's
default python sandboxing.

~~~
Foxboron
Yes, its app engines default sandboxing in use.

~~~
Scriptor
Is there any way to restrict your app's environment beyond the default sandbox
restrictions Google applies? For example, disabling things like urllib2.

~~~
Foxboron
I didn't write the code, and i'm not sure if you can. You could always use the
import hooks and deny modules from being imported.

------
resu_nimda
_So, with the recent hipster attitude of posting a “State of_ ” every year...*

This is off-topic, but, what? The concept of an annual State of X report is
nothing new, and I don't see how it ties to "hipster attitude" in any way.

That word means less and less every day. Sure, who cares, but it's just lazy
to throw it around any time you want to be edgy.

~~~
Foxboron
I was trying to be funny, and was indirectly reffering to Clojures "State of"
posts. I know the fact that "State of *" is nothing new. But hey! Gotta try!

------
houshuang
Is there any larger apps or libraries written in Hy? Would be great to see
examples of "real-world" code outside of the tutorials etc. Wonder how it
would be to use this for data analysis with Pandas/Matplotlib etc. IPython
integration?

~~~
Foxboron
There is adderall
[https://github.com/algernon/adderall](https://github.com/algernon/adderall)

and paultag wrote snitch
[https://github.com/paultag/snitch](https://github.com/paultag/snitch)

There are people using Hy in production, but that code isn't out. A good way
to see Hy in action is looking at our tests/native_tests section.
[http://github.com/hylang/hy](http://github.com/hylang/hy)

