Live data from Hacker News

Advanced programming languages (2009)

matt.might.net

171–180 of 208 posts

Re: Advanced programming languages (2009)

#171
post #142

Earlier quoted context omitted.

I'm really intrigued by your last point that "Artificial Intelligence is because metaprogramming is easier in homoiconic languages." Can you elaborate on this? Why are or what about homoiconic lnagunages make them more suitable for metaprogramming and AI in general? Thanks

I don't think this is actually true for most of what people do with AI right now. Machine learning these days is something where you want strong, native machine level support for numeric programming on matrices. Possibly with GPU support. So a lisp based language wouldn't really help you much in the current environment. If what you want is a system that rewrites itself, then you definitely want homoiconicity. It also…

> [...] you want strong, native machine level support for numeric programming on matrices. Possibly with GPU support.

Scheme is a popular extension language. You could use it the same way Torch uses Lua.

Re: Advanced programming languages (2009)

#172
post #168
post #165

Earlier quoted context omitted.

Heh, libguestfs helped me out a couple of years ago.. Never realised it was OCaml. Nice! (Noobing myself through OCaml & F# right now, so this will be an interesting reference to study :) )

It's a mix. The library is C, pure and simple. But we use OCaml to generate a lot of that C - which I think is a very under-used but powerful technique giving you the best of both worlds. We also use OCaml to generate programming language bindings to the C API, so that when a new API is added you simply have to recompile and the API is available in every supported language (about a dozen so far). However the main use…

Indeed, yes, having a quick look at the repo I now see the point you make. Thank you for the pointers to the H/L utils - therein lies more interest :)

Re: Advanced programming languages (2009)

#173
post #68
post #51

I can't seriously read an article that promotes Scheme over any other languages. We had a class in university and everybody hated it. How can you write complex program with so many parenthesis?

How can you write a complex program with so many semicolons? How can you write a complex program with so many braces? Your statement sounds more like unfamiliarity of other major PL styles than anything else.

Your argument would make sense if the only punctuation in a language was semicolons or braces.

But comparing a language with almost nothing but parens to a language with a mix of things like braces, brackets, parenthesis, periods, and more, then I don't think the comparison is a fair one.

I'm not advocating one way or the other, just pointing out the comparison seems flawed.

Re: Advanced programming languages (2009)

#174
post #139

Earlier quoted context omitted.

The combination of stronger type systems (especially dependent typing), less error-prone design (no manual memory management, no mutation, no global state, no loops/off-by-one errors), separated side effects (crashing during computation won't break things, less places for outside interference/external failure, etc.), and better error handling (no null, usually no exceptions meaning you have to encode failure into the…

Type systems - already available in the most popular languages no memory management - c++, go, java come to mind No mutation - has a side effect which you probably will never mention. But it will become important as the internet of things gets smaller No global state - in what environments would that ever be an encouraged paradigm? Javascript? No loops/off by one - you still need loops, they are just recursive. The d…

I don't believe GP meant 'type systems' the way you mean them. He's talking about the more powerful concepts such as dependent typing, not just the existence of types.

There are very few popular languages which would fit this category IMO, depending on how one defines powerful type system and popular. Scala is the only candidate that I can think of for my own definitions of those two concepts.

Re: Advanced programming languages (2009)

#175
He only mentions Clojure in passing. At some point I decided that, were I to learn a functional language, it would be Clojure. How would you say Clojure fits in this comparison? Is it only relevant or interesting for concurrency?

Re: Advanced programming languages (2009)

#176
post #12

This post is very fortuitous for me. I've been looking to learn a functional language and I had more or less narrowed my options to Haskell, OCaml and Scala. I liked the breakdown between these languages and the resources. Can anyone who programs in Haskell or OCaml regularly tell me the current state of standard and third party library support? I'm very attracted to Scala because it has JVM support, which sounds fan…

I didn't have large problems with Haskell library availability until lately. I was attempting to see what some code from work would look like from work. It used: Mssql, Cassandra, CSV, and MySQL MySQL and CSV were no problem. The Cassandra bindings were bitrotted and I had to do a good amount of work fixing the Cassandra dependency and the thrift dependency it has. Mssql bindings through hs-odbc have an allocation er…

See my post history for many of the positives of Haskell. The above post only highlighted the negative.

Re: Advanced programming languages (2009)

#177

Earlier quoted context omitted.

I am so freaking excited about Scala Native. I haven't been so genuinely excited and enthusiastic about something for such a long time, but Scala Native is so awesome. I feel like turning Scala into a cross-platform language is the best idea possible. I'd love to see Scala someday be able to just dump out WebAssembly, or JVM bytecode, or LLVM IR, or whatever the next "hip" format is, while keeping the language the sa…

The size of the Javascript generated by Scala.js alone makes it a non starter for serious projects.

Yeah, these tens of kilobytes of JS next to those ten badly compressed 600kB jpgs are really killing it.

Re: Advanced programming languages (2009)

#178
post #81

> Scala is a rugged, expressive, strictly superior replacement for Java. Scala is not replacement for Java. It runs on JVM and can invoke java code, but has completely different approach than Java. Use Kotlin if you want Java replacement. Also I would argue that Scala is much better suited for writing compilers than Haskel.

> Also I would argue that Scala is much better suited for writing compilers than Haskel.

Any examples of how it can help out?

Re: Advanced programming languages (2009)

#179
post #175

He only mentions Clojure in passing. At some point I decided that, were I to learn a functional language, it would be Clojure. How would you say Clojure fits in this comparison? Is it only relevant or interesting for concurrency?

The article's 7 years old. Clojure's first stable release (1.0) was released the same year.

Re: Advanced programming languages (2009)

#180

I am a bit surprised Clojure and Clojurescript are not in this list. I guess Clojure still was a bit young at the time this article was written. Within past few years Clojure has become extremely popular.

Yes, its first stable release (1.0) was around the same year this article was written.
Post reply on HN