Live data from Hacker News

Advanced programming languages (2009)

matt.might.net

151–160 of 208 posts

Re: Advanced programming languages (2009)

#151

Earlier quoted context omitted.

Web based is because JSON is always easier with dynamic types. Rapid prototyping is because it requires less explicit up front design due to dynamic types. Artificial Intelligence is because metaprogramming is easier in homoiconic languages.

Artificial Intelligence is because metaprogramming is easier in homoiconic languages. Homoiconicity is something you can add to any language, dynamically or statically typed, simple or complex, it doesn't matter. It used to be belived that only syntactically simple languages like Lisp are suitable for homoiconic extension, but this myth was destroyed by Walid Taha and his development of the MetaML family of languages…

While I'm sure it's an interesting exercise, using a language that already had this property without any additional effort, still seems like the best path for most people trying to produce practical results.

Re: Advanced programming languages (2009)

#153

I am still stuck on why this is titled Advanced Programming Languages. Wait, so anything other than the most widely adopted robust language technologies used in enterprise systems is 'advanced'? Language compilers, interpreters, database engines, and runtime implementations are advanced. Who says, "we need an advanced language for this solution", as opposed to "this problem requires an advanced solution"?

OP reeks of subjectivity.

"Scala is a rugged, expressive, strictly superior replacement for Java."

I have nothing for or against Scala, and Java is a popular target. But "strictly superior"? There are critiques of the language and its toolset that contradict the strictness of its superiority. (https://www.quora.com/What-are-some-criticisms-of-Scala)

Re: Advanced programming languages (2009)

#154
post #7

Earlier quoted context omitted.

> you'll be more productive in the short-term I'm not so sure. One of the advantages of these more mainstream languages is the combination of an incredibly large selection of libraries and many people having already made the mistake you will make. This means when you run into an issue, there are already several posts on stack overflow about it, and you move on without issue.

The really interesting problems have the property that there is no library written for them yet. Granted, you need some kind of interaction with the outside world, but this is easy to handle in another language layer. The "existing libraries" are only going to be efficient if your entrepreneurship is based around the idea of rehashing or recombining existing tooling, which is already there. But far from all projects…

> Modern machines are so fast you can run an incredible amount of concurrency on a single large node, so why bother too much with scaling.

Because that node might die any second.

Re: Advanced programming languages (2009)

#155

Earlier quoted context omitted.

Hitting an API endpoint, pulling data out of a database. Areas that already have an implicit schema require you to explicitly redefine that schema within your application. I say this not just from personal preference, but I've proctored many timed coding challenges that were language agnostic. The challenge involved consuming data from a handful of API endpoints and compiling a response. Most statically typed solutio…

That coding challenge sounds like a far cry from developing even a prototype application. What was the skill level of the people doing it? Had they had experience in both dynamic and static types languages? What were the languages, Java or something modern? Edit: I don't mean this to be snarky, I just feel that it is not a very good experiment to draw conclusions from.

We prepped them ahead of time telling them that they would need to produce an HTTP API that accepted requests and returned a response compiled from multiple HTTP endpoints. It's basically an orchestration layer, and I've done similar things in production many times. ("If we exposed X to the clients, we could allow action Y. Would action Y contribute to our goal of Z?" Instead of building a highly performant correct solution, we would do an on the fly derivation of the data needed, launch it for 5% and see the experiment results.)

It was for all candidates, meant to test ability to understand a problem and prototype a solution quickly.

Edit: most candidates did Java/Scala/Python/Ruby.

Re: Advanced programming languages (2009)

#156
post #15

I personally would really hesitate before picking a language that will be hard to hire for to build a business around. Yes, you'll be more productive in the short-term, but a business is more than just code and you will need to wear those hats too before you'll have enough understanding and resources to hire those out. At this point, I'm fairly certain your first hire should be someone to take the engineering load of…

Jane Street Capital's Yaron Minsky once said that contrary to popular belief hiring for OCaml developers was easier because the signal to noise ratio in the OCaml community is so much better than other, more approachable languages. He would send a job post to the OCaml mailing list, get 15 responses, interview 10 people, bring five onsite and ultimately hire three new people. I don't have direct experience with this,…

> Jane Street Capital's Yaron Minsky once said that contrary to popular belief hiring for OCaml developers was easier

No one will ever admit publicly they are having a hard time hiring because of poor technical choices, that would be suicide.

Re: Advanced programming languages (2009)

#157
post #70

Earlier quoted context omitted.

I've got managerial experience hiring (on both ends of the spectrum of talent) and engineering experience in computational finance at a prop firm similar to Jane Street. He has a fast-hire ability and high-signal to noise for sure but he works at a prop firm . His hiring practices are a market anomaly simply because he can pay effectively whatever a competent developer wants. Jane Street can basically throw money at…

OT but how useful would the boston haskell meetups be as an extreme noob? Will the talks be so far over my head that I should learn me a haskell a bit prior to attending or would it make for a good way to start absorbing some knowledge?

I haven't gone to the Boston meetup specifically, but my experience with other Haskell meetups is that the level of talks varies significantly, both in how much Haskell you have to know and how much general math/CS knowledge is expected.

If you're a beginner along both fronts (which is great: Haskell is a wonderful place to start), you might need to look at the talk topic ahead of time and choose ones which seem the most accessible.

If you're just a beginner in Haskell but comfortable with general math and CS topics, chances are that many talks won't be too Haskell-specific and you'll learn something interesting even if you don't get all the Haskell details. I've attended talks about things like succinct data structures, concurrency models, FFT algorithms... etc. All of these used Haskell and Haskell concepts, but weren't just about Haskell; you would have gotten something out of them even if you didn't know much about Haskell specifically.

I don't think most of the talks will be great for learning Haskell (unless that's their explicit aim) so if you actually want to learn the language you'll also need to do some reading on your own, but going to the meetups will still be valuable.

Re: Advanced programming languages (2009)

#158
post #152

There have been many discussions of this post: https://hn.algolia.com/?query=Advanced%20programming%20langu... . I fear that the current one shows signs of HN's inevitable reversion to the mean.

Help us break away : nothing is inevitable, the future is unwritten!

Re: Advanced programming languages (2009)

#159
post #121

Earlier quoted context omitted.

I can recommend Scala: - It is mature and rock-solid, but still manages to evolve, fix issues and simplify/remove features. Most other languages are purely additive, meaning you will have to carry on all the baggage since the languages' inception. - It is a language which is interested in identifying the best way to solve common programming issues and spares you with all this ideological "OOP/FP is bad" bullshit. - I…

Once you have had real Hindley-Milner Scala feels painfully primitive. Just go straight to OCaml.

I'm afraid you have it backwards. Scala's type inference comes at a slight cost (you have to annotate parameters), but it enables a much more powerful type system than even HM allows for.

Re: Advanced programming languages (2009)

#160
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.

Scala can be a fine Java replacement, if you drop 20% of its features on the floor. As long as you never see a higher-kinded type, I think you are ahead of Kotlin, and the learning curve is not really any different. The problem with this approach is that 90% of Scala libraries are built by people that live in higher-kinded land, and believe that since they have reached that level of expertise, so should everyone else…

Scala compatibility is not so great. It has its own collections and other libraries. And it does not even support java getters and setters.
Post reply on HN