Earlier quoted context omitted.
> I'm from India and if I start to find a good Haskell or Scala programmer In general, if you need to find a good programmer for any language (Python, JavaScript, Java, ...), you will be searching for a long time. The only difference is that with Haskell, OCaml and other advanced languages, usually the first programmer you will find is already very good.
However finding that first 'good' programmer is going to be harder for languages like Scala, Haskell etc. compared to finding the first good programmer on more popular languages
Advanced programming languages
61–70 of 76 posts
Re: Advanced programming languages
#62All the languages he suggests apart from Scala are or are pretty close to being pure functional languages. I'm not convinced that I would be more productive developing say a web app , database app or game using say Haskell rather than Java or Python especially since a large amount of programming is all about state and side effects. I'm not against learning a pure functional language as a way to improve your programmi…
Have you tried? Why do you think your baseless assumptions are interesting?
Re: Advanced programming languages
#63Earlier quoted context omitted.
since a large amount of programming is all about state and side effects IANA web developer, but... Doesn't web development typically put state into a database system instead of the scripts the server runs to generate the requested pages? It seems reasonable enough to have a function that takes a page request as input, calls some other functions to look up info from the database, then constructs and returns a page and…
You can do allot with a database sure but sometimes you want multiple transactions within a single request and data will change between them. You may also take input from other sources than a database such as flat files, web APIs emails etc and need to do a bunch of processing between them. Not to mention if you are using Comet or something where you hold a request open for a long time and push and pull allot of data…
I'm launching a small Haskell-based product called EventSource HQ (http://www.eventsourcehq.com) taking advantage of just this.
Handling state across threads in Haskell is not a problem at all. Haskell is not bad or complex when it comes to mutable state, it's just very explicit about it. When it comes to doing stuff the involves multiple threads this is a huge advantage.
Haskell is complex in the sense that it brings a whole bunch of new abstractions to the table that can take a lot of work to get a hold of. But while this can make for a steep learning curve, it also comes with a huge payoff, since these abstractions are very powerful.
Stuff like Iteratee's and Enumerators or the newer Conduits can be tough to wrap your head around, but once you do the power of composable abstractions over IO streams can be extremely useful.
Re: Advanced programming languages
#64All the languages he suggests apart from Scala are or are pretty close to being pure functional languages. I'm not convinced that I would be more productive developing say a web app , database app or game using say Haskell rather than Java or Python especially since a large amount of programming is all about state and side effects. I'm not against learning a pure functional language as a way to improve your programmi…
I don't know how far over to the functional paradigm arc leans but hacker news is programed in it. I know it's built off common lisp so there is that linage. The naughty dog game studio used a form of lisp in their games starting with Crash Bandicoot until they got purchased by Sony(I think). Though, the language was much more imperative in nature instead of functional. Autocad had autolisp built into it. http://en.w…
Re: Advanced programming languages
#65* Haskell (functional programming, purity)
* Prolog (logic programming)
* Erlang (actor based concurrency)
Re: Advanced programming languages
#66Earlier quoted context omitted.
Interesting, my question is more though why now? Since LISP has been around for a very long time and FP has had very little mainstream interest until the last year or 2.
Good question. I think its a couple of diffrent things. 1. Java is not really evolving, people are frustrated 2. Multicore is difficulte and FP claim they are better at it. 3. Complexety of ever bigger codebases 4. Java Script not longer the worst language in the world, people start to understand whats powerful about it and want to know what more is possible.
Re: Advanced programming languages
#67Earlier quoted context omitted.
sometimes you want multiple transactions within a single request and data will change between them Is this an issue with race conditions, or with alternating between reading and writing the state during a single request, or both, or something else entirely? You may also take input from other sources than a database This doesn't seem like it should make a difference: you write a function to get the necessary data from…
Is this an issue with race conditions, or with alternating between reading and writing the state during a single request, or both, or something else entirely? Usually reading and then writing some state followed by waiting briefly to see if another thread will change the same value, if it does use then do something with the new value and return that to the request. I agree that the processing you do with that data mi…
Depends on how restrictive your language is. Scheme makes it a lot of things easy, e.g. a sequence of statements is often easy to express with begin/let/let* , whereas Haskell is pickier about use of side effects. The biggest hurdle I had in learning scheme was getting used to using a recursive function where I would normally use a loop.
(let* [(x (... DB query ...))
(y (... API query based on x ...))]
(begin (... write some state based on x and y ...)
(... wait a bit ...)
(... read the same piece of state ...)
(if (... it is unchanged ...)
(... then ...)
(... else ...))))
The line between imperative and functional starts to look a bit fuzzy, but let* and begin can be constructed from lambda expressions.Re: Advanced programming languages
#68Earlier quoted context omitted.
Good question. I think its a couple of diffrent things. 1. Java is not really evolving, people are frustrated 2. Multicore is difficulte and FP claim they are better at it. 3. Complexety of ever bigger codebases 4. Java Script not longer the worst language in the world, people start to understand whats powerful about it and want to know what more is possible.
5. Code-hipsters on HN ;-)
Re: Advanced programming languages
#69Earlier quoted context omitted.
Good question. I think its a couple of diffrent things. 1. Java is not really evolving, people are frustrated 2. Multicore is difficulte and FP claim they are better at it. 3. Complexety of ever bigger codebases 4. Java Script not longer the worst language in the world, people start to understand whats powerful about it and want to know what more is possible.
Additionally, I think that Haskell really has to offer something over most other FP languages. Many features of dynamic impure FP languages have already been ported to languages such as Ruby or Python. What Haskell provides over, say Lisp, is exceptionally strong typing and isolation of side-effects. This is a quality that cannot be ported to mainstream languages easily. So, why didn't Haskell become more popular ear…
Re: Advanced programming languages
#70Earlier quoted context omitted.
I don't know how far over to the functional paradigm arc leans but hacker news is programed in it. I know it's built off common lisp so there is that linage. The naughty dog game studio used a form of lisp in their games starting with Crash Bandicoot until they got purchased by Sony(I think). Though, the language was much more imperative in nature instead of functional. Autocad had autolisp built into it. http://en.w…
for the record arc is built on scheme.