Hacker News new | past | comments | ask | show | jobs | submit login

Scala got no macros. Which makes it infinitely less powerful than any language with macros, including even something like Clojure.



Similarly, Clojure got no types. Which makes it infinitely less runtime-safe then any language with types. Takes a more nuanced argument.


For a language with macros it does not matter at all. You can add any type system you like on top of it. Metalanguages are infinitely flexible.


The strength of a type system is that there is one. If everyone uses his/her own self-made pet of a typesystem most of the benefits are gone as soon as you are more than a one-man-hobbyist project.

Probably explains why most Lisps consist of one-man-hobbyist projects, though.


> The strength of a type system is that there is one.

I do not agree. There is no single type system that would fit all the possible use cases.

> Probably explains why most Lisps consist of one-man-hobbyist projects, though.

No, it does not.


Type systems are by-definition only a conservative approximation of all programs.

The good thing is that 99.999999999999% of all programs never need to be written, and there are plenty of type systems which deal well with the last 0.00000000001.

> No, it does not.

Ok, that leaves the failure of Lisp outside of hobbyist mom's basements a mystery.


> Type systems are by-definition only a conservative approximation of all programs.

This is where I lost a track of your arguments.

> Ok, that leaves the failure of Lisp outside of hobbyist mom's basements a mystery.

Lisp did not fail. It's in pretty much all the mainstream languages now.


> This is where I lost a track of your arguments.

Then maybe you should maybe spend some time studying these topics instead of acting up on HN.

> Lisp did not fail. It's in pretty much all the mainstream languages now.

This is where I lost the last doubts about the reality and your lack of closeness with it.


> Then maybe you should maybe spend some time studying these topics instead of acting up on HN.

Chances are, I implemented more varieties of type systems than you can name.

> This is where I lost the last doubts about the reality and your lack of closeness with it.

Scala fanboys are much more detached from the reality. The reality rejected bondage&discipline languages long ago.


You continue to amuse me.


Please eliminate rudeness from your comments on HN. You've crossed the line into incivility several times in this thread. That's unacceptable here. https://news.ycombinator.com/newsguidelines.html

Please also don't post unsubstantive comments. That means avoiding programming language flamewars, since they're only nominally about programming and really about insults and disses.


You did not answer, fanboy. Does Scala already allow to use macro in the same compilation unit it was defined?


> You did not answer, fanboy

We ban accounts that do this repeatedly. On HN, please post civilly and substantively, or not at all.


> Scala got no macros. Which makes it infinitely less powerful than any language with macros, including even something like Clojure.

Scala has macros since 2.10

http://docs.scala-lang.org/overviews/macros/overview.html


What makes you think that Scala has no macros?


It got some rudimentary macro support only recently, and still they're not the proper macros, more like a TH limited approach.

The worst part which makes macros much less useful is that you cannot have a macro definition and use it in the same compilation unit.

In fact, adding proper macros support to any language is trivial. Pity that very few are bold enough to do it.


Your whole comment tells me that you are completely unaware of how macros in Scala work and how they are developed further.


So now it's possible to use a Scala macro in the same module it's defined? Good. But then documentation is too much behind, and this is most certainly not good at all.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: