Live data from Hacker News

Modern Language Wishlist

lispcast.com

61–70 of 75 posts

Re: Modern Language Wishlist

#61
post #11
post #8

Is it just me or did anyone else feel he was talking about Racket? I have never understood why Racket doesnt get the love that it deserves.

Is it just me or did anyone else feel he was talking about Go? I have never understood why Go doesnt get the love that it deserves. (No seriously, he described Go)

> Is it just me or did anyone else feel he was talking about Go?

That's really just you:

* Go does not ship with a set collection, no literal or convenient syntax

* Go only ships with with doubly linked lists and no literal or convenient syntax

* Go's literal syntax for the Array and Map builtins is significantly less convenient than that of most other languages (including but not limited to statically typed ones)

* Go is not homoiconic

* Go does not have an extensible syntax

* Go does not have math-oriented numeric types (quite the opposite), neither does it have precision errors (I am not even sure it can meaningfully interact with IEEE-754 error flags)

* Go does not have units (as far as I can tell)

* Go does not have pattern-matching, let alone unification (could have made error reporting good, can't have that)

* Go does not have aspects

* Go does not (as far as I can tell) have any special support for writing parsers

* Go has very little support for immutability

* Go does not have an explicit model of time

* I don't think I've seen any built-in structure serializer and deserializer (equivalent to Lisp readers and writers) in Go

> (No seriously, he described Go)

Only if you're completely delusional, skipped about 60% of his list and gave Go huge leeway on the rest.

Clojure, for instance, is a far better match on this.

Re: Modern Language Wishlist

#62
First need of a good language: have a simple specification. The full reference manual shall be very concise, complete and readable. Even with a language as simple as javascript, the specification is a nightmare.

Re: Modern Language Wishlist

#63
One thing that always bugs me is that modern languages that ship with fairly strong datetime libraries still make it a pain to deal with just dates. My db can handle just a date why does my language need to treat date as some hack on datetime?

I want 12/01/1980 not 12/01/1980 00:00:00 -5

Re: Modern Language Wishlist

#64
post #11
post #8

Is it just me or did anyone else feel he was talking about Racket? I have never understood why Racket doesnt get the love that it deserves.

Is it just me or did anyone else feel he was talking about Go? I have never understood why Go doesnt get the love that it deserves. (No seriously, he described Go)

This list lacks a feature that Go has and without which I wouldn't even have considered it : native and complete UTF-8 support.

Re: Modern Language Wishlist

#65
post #20
post #8

Is it just me or did anyone else feel he was talking about Racket? I have never understood why Racket doesnt get the love that it deserves.

It's close, but: * Racket doesn't meaningfully have a good syntax for literal maps or sets * Racket doesn't have math-oriented types, AFAIK, even in Typed Racket * Racket doesn't have units. * Racket doesn't have aspects (you can obviously add them--see Swindle-- but Swindle is very rare these days, and not the preferred way to write Racket * Racket is not interface-based (ditto) * Racket *supports* immutable values,…

I don't think that he was talking about Racket, but some of your points are mistaken.

You might not like the literal syntax for maps in Racket, but it certainly exists.

Typed Racket has lots of math-oriented types; we just wrote a paper about their design here: http://www.ccs.neu.edu/racket/pubs/padl12-stff.pdf

Comprehensions such as for/list and for/hash are polymorphic, in that they operate on arbitrary sequences, of whatever type. for/list constructs lists; for/hash constructs hashes. Clojure, a language that takes uniformity of interface much further than Racket, has similar operations.

Re: Modern Language Wishlist

#66
post #20
post #8

Is it just me or did anyone else feel he was talking about Racket? I have never understood why Racket doesnt get the love that it deserves.

It's close, but: * Racket doesn't meaningfully have a good syntax for literal maps or sets * Racket doesn't have math-oriented types, AFAIK, even in Typed Racket * Racket doesn't have units. * Racket doesn't have aspects (you can obviously add them--see Swindle-- but Swindle is very rare these days, and not the preferred way to write Racket * Racket is not interface-based (ditto) * Racket *supports* immutable values,…

Racket doesn't have math-oriented types, AFAIK, even in Typed Racket

As far as I know, it uses "machine-oriented" data representation when it can (sufficiently small integers, inexact numbers) and promotes to arbitrary-precision representation when it has to (larger integers, non-integer rationals). I don't know how much more OP expects out of "math-oriented" numbers than what's explicitly listed (no overflow, rational division).

There exists a matrix library, but it might be lacking some desired operations. I'm not sure what OP means by having "equation" as a type.

Re: Modern Language Wishlist

#67
post #65
post #20

Earlier quoted context omitted.

It's close, but: * Racket doesn't meaningfully have a good syntax for literal maps or sets * Racket doesn't have math-oriented types, AFAIK, even in Typed Racket * Racket doesn't have units. * Racket doesn't have aspects (you can obviously add them--see Swindle-- but Swindle is very rare these days, and not the preferred way to write Racket * Racket is not interface-based (ditto) * Racket *supports* immutable values,…

I don't think that he was talking about Racket, but some of your points are mistaken. You might not like the literal syntax for maps in Racket, but it certainly exists. Typed Racket has lots of math-oriented types; we just wrote a paper about their design here: http://www.ccs.neu.edu/racket/pubs/padl12-stff.pdf Comprehensions such as for/list and for/hash are polymorphic, in that they operate on arbitrary sequences,…

You're completely right on the math. I had math-oriented types wrong; I assumed that the author wanted the ability to say, "This type is restricted to values defined by this set," which he didn't. Even if he did, I see that Typed Racket actually does support such types, which is awesome. So I'm completely wrong.

Whether e.g. #hash((key . value) (key . value)) counts as a literal hash syntax is interesting. If you want to argue it does, then I'll argue that C does, too, since I can trivially #define my way there through C99 struct assignments and a function that constructs a hash off an array of those structs, or that C# does because I can use an initializer (e.g., "new Dictionary {{"Foo", "Bar"}, {"Baz", "Quux"}}"). Literal hashtables and vectors, to me, means something that's visually apart from base syntax forms, specifically so that it stands out to the coder. By this standard, Python, Ruby, Smalltalk, and Clojure would qualify, while Racket, Io, and C# would not. Whether that matters to you depends on what you want.

Re: Modern Language Wishlist

#68
post #11

Earlier quoted context omitted.

Is it just me or did anyone else feel he was talking about Go? I have never understood why Go doesnt get the love that it deserves. (No seriously, he described Go)

> Is it just me or did anyone else feel he was talking about Go? That's really just you: * Go does not ship with a set collection, no literal or convenient syntax * Go only ships with with doubly linked lists and no literal or convenient syntax * Go's literal syntax for the Array and Map builtins is significantly less convenient than that of most other languages (including but not limited to statically typed ones) *…

Have a look at the "gob" package for serializer and deserializer support for Go types.

As for the syntax-related points, Go offers quite a bit. There's the goyacc tool, the scanner package, the template package (think quasiquote), and a bunch of packages for processing Go code: go/ast, go/scanner, go/parser, go/printer, go/build, go/doc, etc.

For math-oriented numbers, there's the "big" package. Many languages make such numerics much more convenient but you can get pretty far with little effort using just the "big" package.

Re: Modern Language Wishlist

#69
post #11
post #8

Is it just me or did anyone else feel he was talking about Racket? I have never understood why Racket doesnt get the love that it deserves.

Is it just me or did anyone else feel he was talking about Go? I have never understood why Go doesnt get the love that it deserves. (No seriously, he described Go)

I am a big fan of Go, but he was certainly not describing this language. A lot the items on the wishlist were math and sciences items (arbitrary precision int, float, rational number; vectors, matrices; units). These are not in the language, and, while they can be in libraries (see big.Int and big.Rat), without operator overloading, I don't think Go is a good fit for these types of applications.
Post reply on HN