5 ms·
The State of Hy
- poopypoop 13y agopoop
- madhouse 13y agoI'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 13y ago> 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.
- adamtulinius 13y agoInconsistency? Sometimes Python feel (i think) like an OOP-lang, other times like an FP-lang.
- madhouse 13y agoI 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).
- jonesetc 13y agoUnderstandable, I always forget about people not liking the whitespace requirements. You and I fight on different sides of the whitespace-brackets/parens war. I definitely see the disliking of comprehensions with the abuse they get, but with a little bit of restraint I find them to be one of the most useful and clean feature of python. EDIT: Thanks for the perspective.
- breuleux 13y agoSignificant 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.
- Scriptor 13y agoPeople 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 13y agoYes, its app engines default sandboxing in use.
- Scriptor 13y agoIs there any way to restrict your app's environment beyond the default sandbox restrictions Google applies? For example, disabling things like urllib2.
- Foxboron 13y agoI 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.
- rayalez 13y agoI'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! =)
- resu_nimda 13y agoSo, 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 13y agoI 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 13y agoIs 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 13y agoThere 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
- madhouse 13y agoI have about a thousand lines of Hy in production, but sadly, that code is not open source. I am, however, working on porting a few Clojure libraries to Hy, those will appear on my github profile (github.com/algernon/) in the coming months.