Hacker News new | past | comments | ask | show | jobs | submit login

A database implemented in JS; very encouraging. I guess performance and robustness were not a priority.



> I guess performance and robustness were not a priority.

You'd be surprised how well JS does on both fronts, in addition to being able to run across platforms :)


Performance-wise, JS is not too bad when you have lots of IO going on, as in this case... but robustness? You gotta be kidding! JS is the poster child of a language does NOT have robustness as one of its attributes. Just about every single one of its design decisions makes robustness difficult.


You should check your definition.

Define robust:

1. Strong and healthy; vigorous

- (of a process, system, organization, etc.) able to withstand or overcome adverse conditions.

JS is the most robust language we have according to the main definition, however you measure it. What other language is as alive as JS right now? What other language has as much programmer attention?

JS is also easily robust according to the noted sub-definition. What other language would survive the web? The web, an environment that could easily be described as "very adverse"... What other language is ready to run in a browser where it will be dynamically and continuously mixed with modules from many different sources, without breaking? JS was built for this.

What other popular language is so easily runnable cross platform? What other popular language lets you program with both OOP and functional paradigms while also being as popular as JS? What other popular language lets you monkey patch things to fit a piece of code into any situtation?

Robust means all of these things to me. What does robust mean to you and what is your example of the most robust programming language? You didn't say...

None of these fit the bill: Python, Ruby, C, C++, Golang, Rust, C#.


You are arguing for the sake of arguing. OP said JS is not a good choice when performance and robustness is important... any programmer knows exactly what they mean, but I will spell it out for you as you clearly do not get it: if you're going to write a DB, you want it to be performant (run fast) and robust (does not fail or lose data, or get into a corrupt state easily). JS is absolutely not the first choice when performance is very important, but I concede it can run fast enough for some kinds of a applications... but would a DB written in JS be robust? The answer by anyone who knows anything about programming languages has to be a big NO!

Any language that has a dynamic & weak type system, and where monkey patching is not only allowed but used widely, cannot make a claim to leading to robust software.

I would argue that languages focusing on correctness are the ones that would have a good claim at producing more robust software. As you've asked, I would say that Rust, Ada, Haskell fit the bill... but even languages that focus on keeping simplicity and boring uniformity at scale, like Go and Java, could still make such claim (and lots of software written in them can be described as robust) a lot more than JS, which offers basically 0 features focused on correctness beyond the bare minimum.


Maybe javascript might not be the best choice in terms of high end/large databases. But it certainly is the best choice for web3 applications and lightweight nodejs software. There is also a golang edition of orbit-db.

> (does not fail or lose data, or get into a corrupt state easily)

The data is stored on IPFS primarily (Pick a number of different ipfs varieties, rust, golang, js). Oplog specific data is stored in a datastore-level instance, which utilizes c++ leveldown bindings. Code that is well tested and has never been proved to lose data due to being written in JS alone. Aside from that the programming language does not determine whether a developer creates crappy code. The developer does, horrible, inefficient, bug filled code can exist in any number of languages. Its really a matter of preference.

Side note: I used to absolutely hate JS until a began programming in it for many months. Originally programming Java


> You are arguing for the sake of arguing.

Nope. I actually just disagreed with you. I think JS is a robust language and I said why very clearly and politely.

You, however - well I stopped reading after your first sentence.

Good luck to you!


You start with " You should check your definition." and you think that is " actually just disagreed with you. I think JS is a robust language and I said why very clearly and politely."?

You didn't say why JS is robust, you twisted the word's definition to fit your point. Don't do that.

If your way of debating is to leave the debate when someone says something you don't like, then good luck working in IT.


Well, I imagine you'll be happy to know that some of us have begun IPFS implementation in Rust: https://github.com/ipfs-rust/rust-ipfs


Definitely a much better choice


Can you elaborate why you think Rust is a better choice?


I would have said that for any statically typed language.

It simply leads to more robust software because compiler rejects large set of incorrect programs that would otherwise end up in production. Your test coverage has to be much larger just to verify that your program is sane on the most basic level.

Rusts compiler is even stricter than most.

Not to mention resilience to change, JS is simply a blunder


There's also a Go implementation at https://github.com/berty/go-orbit-db




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: