Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
jlouis
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
48 ms
·
451.
▲
by
jlouis
14y ago
Remember that Erlang is a functional language with a persistent heap. You often create your concatenation only once and if you need to process strings, you process your strings in another, symbolic, representation. Thus the raw string-proce
452.
▲
by
jlouis
14y ago
Depends a lot on what you are trying to write, how much fault handling code you need and the size of your program. Programming languages which are "verbose" for small programs may not necessarily be it for large complex bodies of code. In m
453.
▲
by
jlouis
14y ago
My stance is still the same as two years ago: Golang is a very decent language with a lot of interesting features. But the lack of direct address of fault-tolerance is what I am missing. In distributed systems, you can't hope to handle all
454.
▲
by
jlouis
14y ago
If you squint your eyes enough, automatic reference counting is a garbage collection method. But if you are going down that road, there are other garbage collector schemes which often produces way better performance in the common situations
455.
▲
by
jlouis
14y ago
I would not be surprised if it turned out to perform extremely well - and perhaps even outperform Go. On the other hand, performance is not everything when it comes to writing large software systems. Again, my Erlang experience is that even
456.
▲
by
jlouis
14y ago
Let me add: more powerful and expressive languages can often get away with far fewer programmers. So if you measure in sheer numbers of people working on, or lines of code being executed, you get the wrong number count. A rough estimate fro
457.
▲
by
jlouis
14y ago
Say you have: Reader - an interface for reading stuff Writer - an interface for writing stuff Some things implement Reader and some things implement Writer. Some things implements both. Now you can declare ReadWriter as in http://golang.or
458.
▲
by
jlouis
14y ago
It goes deeper than that. The prime difference is in the stance: "Is concurrency a library or is it a built-in feature?". In Java, it is the former, whereas in Go, it is the latter. In my experience, having concurrency primitives in the lan
459.
▲
by
jlouis
14y ago
I would think so. It has many of the properties you would like in implementing a database system. First, the language is statically typed and executes surprisingly quickly. Second, it can handle high concurrency which is needed in a databas
460.
▲
by
jlouis
14y ago
As Russ (rsc) says, it is not a requirement, but it is easier in my opinion. There are two common operation classes: sweeping while a button is held down and chording invocation. Sweeping is easy, as soon as you learn to hold down a key whi
461.
▲
by
jlouis
14y ago
There is an important difference though. You are sharing your data, but you are not sharing your programs and their current setup. That is, if you forget to save your file, it won't be on Dropbox. Plan9 is way more persistent here, as it ha
462.
▲
by
jlouis
14y ago
You can use acme with a MacBook. First of all Cmd-x, Cmd-c and Cmd-v works. Second, Cmd and Option with the mousepad gives you clicks on buttons 2 and 3. Still I prefer to have a mouse when I am working on larger texts because it is so much
463.
▲
by
jlouis
14y ago
I am of the opinion that the whole autohell toolset has outlived its usefulness. It was important back in the day where when there were a million different UNIX systems. But today, we have something like 5-6 left and most of those are doing
464.
▲
by
jlouis
14y ago
Go is not sequential, but concurrent. It has built-in primitives for handling concurrency, witness the `go` keyword. It also has special syntax for doing selective receive over channels, which in turn means that the concurrency of that lang
465.
▲
by
jlouis
14y ago
I agree that the Node.js model of concurrency is one of the weakest models out there. CPS is for the compiler writer, not for the programmer. The underlying problem is that sequential languages do bad when you "bolt on" concurrency to them
466.
▲
by
jlouis
14y ago
Had it been somebody else, I would have pondered on the truth of the claim. But Mr. Bellard... that is another thing entirely. My guess is that he does have certain limitations, for instance the amount of connections he can manage and so on
467.
▲
by
jlouis
14y ago
Actually, If you have invested the 15+ years it takes to become a decent C++ programmer, then you won't want to throw that out just because some new language comes by. Most of what happens in C++ is low level maintenance of data. There are
468.
▲
by
jlouis
14y ago
It wasn't the intention to imply that one borrowed from the other. The concept of isolation and virtual memory protection goes back to at least the 60'es for instance. It would be unwise not to take the knowledge into account - even though
469.
▲
by
jlouis
14y ago
Node.js is cooperatively multitasked. VxWorks (and Erlang) are preemptively multitasked. So the basic structure is quite different. If one of your node.js events infinite loops, it is game over. Be it web server or rover. Not so here.
470.
▲
by
jlouis
14y ago
Different. If you squint your eyes enough, the Erlang mnesia application is an implementation of (distributed) STM. STM and MP are not a priori against each other. You can have both and sometimes one is better than the other for a certain k
471.
▲
by
jlouis
14y ago
Precisely. One thing very must against using Erlang for this problem is that you need hard real-time behaviour. Erlang does not provide that. The other point, you need static allocation almost everywhere, is also detrimental to using Erlang
472.
▲
by
jlouis
14y ago
Clojure is a toddler compared to Erlang w.r.t age. Clojure started around 2007 or so, admittedly on a Lisp basis with Rich Hickey as the designer (which is to its benefit!) Erlang has been in production since the mid 90'es in real systems.
473.
▲
by
jlouis
14y ago
Here are some ideas for your two problems. First, the problem is sorting. One very efficient algorithm is to utilize a parallel sampling sort algorithm. The idea is to start off P processes and sampling randomly to obtain P-1 splitting elem
474.
▲
by
jlouis
14y ago
Erlang has experienced increased popularity. Yet, it has not experienced the avalanche popularity increase you see with e.g., Ruby or Javascript. I think Erlang is lucky that this has not happened since the community would not be able to ke
475.
▲
by
jlouis
14y ago
Actually, the inliner is not used unless you explicitly enable it (for the core). The runtime BEAM backend may decide to inline as well, but that is another part entirely. But yeah, it is not much of a problem having no line numbers when yo
476.
▲
by
jlouis
14y ago
You picked Go for the wrong reason then. Go is not about parallel programming, which SIMD and GPGPU programming is . Go is about concurrency and that is a completely different beast. What Go is good for is a different thing. It is good
477.
▲
by
jlouis
14y ago
New vs Better is also an interesting point. In this case, Go is a leap forward from Python in terms of language quality and predictability. It even provides you are proper concurrency framework - something all modern languages need.
478.
▲
by
jlouis
14y ago
The initial funding came from Norway, but the code was written partially in Norway and Denmark IIRC. Perhaps mostly Denmark.
479.
▲
by
jlouis
14y ago
The ML family of languages have structures, signatures and functors for encapsulation. Yet, it has little to do with OO in the traditional Javaesque kind of sense. Encapsulation does not require an object to achieve. Hickey says OO a'la car
480.
▲
by
jlouis
14y ago
Just because it is Functional Programming it does not mean to "throw away encapsulation". Most languages still allow you to limit the extent to which a piece of data is exposed. And that is needed for large systems - otherwise you will have
More ›