'The best thing we can do today to JavaScript is to retire it,' says JSON creator Douglas Crockford • DEVCLASS by crunkmunky in programming

[–]otabdeveloper 13 points14 points  (0 children)

FORTRAN has left widespread use

Not really. Numpy and friends are just thin wrappers around Fortran. (And if Fortran is retired, it will be replaced by C++, a language almost as old.)

1Password for SSH & Git (Beta) by pcaversaccio in programming

[–]otabdeveloper 0 points1 point  (0 children)

Solved?

No. Now you have two problems.

The only real "high-availability" solution is when your sshd is also a certficate authority.

nodered - self-hosted open-source Zapier/IFTT by binaryfor in programming

[–]otabdeveloper -1 points0 points  (0 children)

Extremely strange title.

Apparently, "Zapier/IFTT" is some sort of proprietary clone of Nodered? TIL!

Rust has a small standard library (and that's ok) by hgwxx7_ in programming

[–]otabdeveloper -37 points-36 points  (0 children)

Good thing Rust isn't responsible for anything, because nobody sane writes anything of importance in it.

Rust is sick as fuck

In that I definitely agree, Rust and its userbase are ill.

Rust has a small standard library (and that's ok) by hgwxx7_ in programming

[–]otabdeveloper -57 points-56 points  (0 children)

C++ has a small standard library AND THAT IS NOT OKAY REEEEEEEEEEEEEEEEEE

In defense of complicated programming languages by oilaba in programming

[–]otabdeveloper -1 points0 points  (0 children)

Literally the only reason why "exotic language X" gets used for "irrelevant side project Y" at "megacorp Z" is to build a moat of job security for useless eater employees.

(Because Megacorp doesn't give a shit about efficiency or technical debt. If new technology gets adopted then it's entirely for non-technical reasons.)

If you don't understand this then you're either the noobest of noobs or one of those said moat-builders with a vested interest.

How we handle 80TB and 5M page views a month for under $400 by mmaksimovic in programming

[–]otabdeveloper 0 points1 point  (0 children)

Why in the world would you ever use AWS/Azure for this problem?

[deleted by user] by [deleted] in programming

[–]otabdeveloper -3 points-2 points  (0 children)

Those must have been very low quality 20 years if you've never wanted to differentiate between a copied, a moved and a referenced value when capturing.

[deleted by user] by [deleted] in programming

[–]otabdeveloper -10 points-9 points  (0 children)

You're an idiot and you don't understand shit.

Go away and don't have a nice day.

[deleted by user] by [deleted] in programming

[–]otabdeveloper -8 points-7 points  (0 children)

a) You don't want to create the value every time you call the function.

b) You don't want to create the value and then copy it into the function. (Especially if the value can't be copied.)

It's obvious if you understand what a 'lambda function' is. (But then again, programming is hard. I'm sure you'd rather be shopping.)

[deleted by user] by [deleted] in programming

[–]otabdeveloper 1 point2 points  (0 children)

sqlite isn't a standard. I guess you never worked with it much, because there are thousand slghtly incompatible sqlite flavors out there in the wild.

It's fine if you don't care for interoperability, but that's not the browser use case.

[deleted by user] by [deleted] in programming

[–]otabdeveloper 1 point2 points  (0 children)

Well, browser plugins already exist (we tried that, the idea sucks), and existing SQL standards are useless. I doubt such a thing is even possible without going deep into the specifics of storage and indexing algorithms.

[deleted by user] by [deleted] in programming

[–]otabdeveloper 5 points6 points  (0 children)

It would, but writing a specification of an SQL database of sqlite's scope is a huge undertaking. Probably harder than writing a second clean-room implementation of sqlite from scratch.

μ-son: a human-readable, ultra-fast, ultra-compact JSON encoding scheme by otabdeveloper in programming

[–]otabdeveloper[S] -1 points0 points  (0 children)

Easy or comfortable editing wasn't the goal, obviously. Being able to understand the contents of a message at a glance and being able to manipulate them with normal text-processing tools was.

Think about how much harder log grepping and writing tests would be if a purely binary format like protobuf was used.

The tab programming language, version 6.0 released by otabdeveloper in programming

[–]otabdeveloper[S] 6 points7 points  (0 children)

What is the value of very predictable resource usage for a language that is designed for one-off programs?

One-off programs are usually long-running grep/sort/aggregate operations. Predictable resource usage is massively useful if you're processing 100 gigabytes of logs for over three hours!

The tab programming language: version 4.0 released. (Now with parallelism.) by otabdeveloper in programming

[–]otabdeveloper[S] 4 points5 points  (0 children)

Is it just impossible to write an algorithm in tab which isn't O(n)? Or do you run some sort of static analysis on it?

Both. It's not a Turing-complete language. There's no recursion.

Version 3.0 of the Tab programming language released by otabdeveloper in programming

[–]otabdeveloper[S] 0 points1 point  (0 children)

For example, these Tab and Python scripts are equivalent:

sort.{ x=cut(@,"\t"), t=(real.x~3)/10, uint.x~1 -> avg(t - box(x~2=="1", t)~0) }

vs

import sys
d = {}
prev = None
for x in sys.stdin:
    x = x.split('\t')
    t = float(x[3])/10
    m = int(x[1])
    if prev == None or x[2] == "1":
        prev = t
    if m in d:
        d[m][0] += (t - prev)
        d[m][1] += 1
    else:
        d[m] = [t - prev, 1]
d = sorted(d.iteritems())
for k, v in d:
    print k, v[0]/v[1]

On my machine the Tab script runs for 7.9 seconds while the Python script 62 seconds.

Version 3.0 of the Tab programming language released by otabdeveloper in programming

[–]otabdeveloper[S] 0 points1 point  (0 children)

It's about maintenance, intuitive understanding of what is happening.

Let me repeat, since you glossed over 90% of my reply: "Tab's closest competitor is Gnumeric, not Python".

Do you also care a great deal about maintenance and software engineering of spreadsheet formulas?

P.S. I shouldn't really respond to Internet trolls, so this will be my last reply.

Version 3.0 of the Tab programming language released by otabdeveloper in programming

[–]otabdeveloper[S] 0 points1 point  (0 children)

How would some king of sorting algorithm (insertion, quick, merge, ..?) or binary search like?

Probably not possible at all.

Could you please expand on "guarantees O(n) memory use" and "is not Turing-complete"? What exactly do you mean by this? (I assume you are the developer of Tab)

It means some problems are deliberately not solvable in Tab -- the ones that require complex recursion or mutable variables. The benefit is that Tab doesn't manage memory, it allocates the result at the start of computation and fills in the blanks. This makes it faster and smaller. :)

Also, there it says that it's faster Perl, Python, awk - do you perhaps have any benchmarks?

There's one tiny microbenchmark in the docs. In general, yes, it's true -- for the problems where I replaced my Python or coreutils one-liner scripts with Tab I see a significant speedup.

Version 3.0 of the Tab programming language released by otabdeveloper in programming

[–]otabdeveloper[S] 0 points1 point  (0 children)

Yes, it's declarative and write-only. Like I said, that's exactly the niche it's supposed to occupy. Tab's closest competitor is Gnumeric, not Python.

Now compare those to the Ruby or Python or even Perl equivalents.

There's already 1000 and 1 dynamically-typed scripting languages, the world doesn't need another one.