Live data from Hacker News

Pixie: A sweet Clojure-ish language

blog.goodstuff.im

11–20 of 109 posts

Re: Pixie: A sweet Clojure-ish language

#11
post #8
post #4

Dynamic typing and parentheses are what keep me away from Clojure or Lisp like languages. How can I get over them?

If you truly have been shunning Lisps because of parentheses I can only tell you that it will start to make sense once you see that they're just lists and that the fact that everything (including your code) is some variation of a list means that you are now (sometimes in the background) able to modify everything as if it was a list. S-expressions are uniform in that they all look the same way. This means you have one…

Lisp's super power (homoiconicity) comes at a trade-off of reduced discriminability. A good syntax highlighter and well-indented code (like you provided) reverses this effect considerably, but imho, it still takes a lot of getting used to for beginners.

In any case, the bigger part of the being productive in a codebase is to figure out how it encodes the domain, what idioms and patterns are favoured etc. So sometimes, it's just not worth adding another source of aggravation for "new arrivals".

Re: Pixie: A sweet Clojure-ish language

#12
post #5
post #4

Dynamic typing and parentheses are what keep me away from Clojure or Lisp like languages. How can I get over them?

parentheses, at least in my exp, just fade away after a while.. there's core.typed which is static typing for clojure [0] [0] https://github.com/clojure/core.typed

It's also very worth looking at Typed Racket and Racket's contracts system!

    [1] http://docs.racket-lang.org/ts-guide/
    [2] http://docs.racket-lang.org/guide/contracts.html?q=contracts

Re: Pixie: A sweet Clojure-ish language

#14
post #8
post #4

Dynamic typing and parentheses are what keep me away from Clojure or Lisp like languages. How can I get over them?

If you truly have been shunning Lisps because of parentheses I can only tell you that it will start to make sense once you see that they're just lists and that the fact that everything (including your code) is some variation of a list means that you are now (sometimes in the background) able to modify everything as if it was a list. S-expressions are uniform in that they all look the same way. This means you have one…

> S-expressions are uniform in that they all look the same way.

If you treat the language as a user interface to your computer, shouldn't things that do different things have different appearances, to help you distinguish them at a glance?

Re: Pixie: A sweet Clojure-ish language

#15
post #4

Dynamic typing and parentheses are what keep me away from Clojure or Lisp like languages. How can I get over them?

Compile-time typing really is valuable, IME. Maybe you should look at Shen?

(Can't help you on the brackets. I mostly stick to Scala myself)

Re: Pixie: A sweet Clojure-ish language

#16

This seems like bit of a short sighted move not that I disagree with it. Project Jigsaw which will be a big part of Java 9 aims to make the JVM more modular which will reduce the memory footprint substantially. Personally I would like to see a version of Clojure that targets this JVM specifically and abandons backwards compatibility. Leaving the JVM means you abandon the decade of libraries many of which you simply c…

In fact JVM is pretty fast. If you run a simple java app without dependencies and only displaying "Hello world" it will run in about 1s on modern hardware. The problem with Clojure is AFAIR related to parsing and loading a big number of namespaces which is quite slow.

Re: Pixie: A sweet Clojure-ish language

#17
post #14
post #8

Earlier quoted context omitted.

If you truly have been shunning Lisps because of parentheses I can only tell you that it will start to make sense once you see that they're just lists and that the fact that everything (including your code) is some variation of a list means that you are now (sometimes in the background) able to modify everything as if it was a list. S-expressions are uniform in that they all look the same way. This means you have one…

> S-expressions are uniform in that they all look the same way. If you treat the language as a user interface to your computer, shouldn't things that do different things have different appearances, to help you distinguish them at a glance?

The braces become "invisible" after some training. Different elements of the program are distingishable. "+" is different from "if", which is different from "42".

Re: Pixie: A sweet Clojure-ish language

#18

I want to see a clojure clone embedded as a Go scripting language. The immutability means that the interpreter would be mostly threadsafe, and thus would support goroutines well.

Embedding an immutable language in a mutable one is a recipe for awkwardness - how would you expose host-language things to the inner language? Better to do it the other way around - mutable scripting language embedded inside immutable host.

Re: Pixie: A sweet Clojure-ish language

#19
post #5

Earlier quoted context omitted.

parentheses, at least in my exp, just fade away after a while.. there's core.typed which is static typing for clojure [0] [0] https://github.com/clojure/core.typed

Also Prismatic's schema. It achieves some of the same goals for why you would want strong typing: https://github.com/Prismatic/schema

+1 for Prismatic Schema. It's not only an awesome way to validate your maps, but it is an extremely good way to write documentation.

Re: Pixie: A sweet Clojure-ish language

#20
post #14
post #8

Earlier quoted context omitted.

If you truly have been shunning Lisps because of parentheses I can only tell you that it will start to make sense once you see that they're just lists and that the fact that everything (including your code) is some variation of a list means that you are now (sometimes in the background) able to modify everything as if it was a list. S-expressions are uniform in that they all look the same way. This means you have one…

> S-expressions are uniform in that they all look the same way. If you treat the language as a user interface to your computer, shouldn't things that do different things have different appearances, to help you distinguish them at a glance?

the point is to free yourself to focus on semantics rather than endlessly learning syntax
Post reply on HN