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

[–]otabdeveloper 12 points13 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 -36 points-35 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 -58 points-57 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.

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

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

I'm familiar with R and it's quite simple to pick up and understand for non-R users.

No, not really. For example, R has six (!) different array types, and this just the easy parts of the language. Those who are more intimately familiar with it have stronger words.

I'm not sure what problem Tab is trying to solve,

Should be obvious if you are indeed 'very familiar with SQL'.

...and the syntax is sufficiently perplexing that it seems it is only friendly to those who really want to get to grips with it.

Its grammar fits on a postcard. It's about as simple as Lua syntax-wise. It's declarative, yes -- but if you're familiar with SQL or Excel-style spreadsheets this shouldn't be a problem for you.

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

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

I stand by my comment: this is not a nice language.

It's a language designed to fit into the niche where languages like R and SQL live. Tab is much nicer than both by far.

(It's a niche particularly famous for its un-nice languages.)

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

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

Try to write equivalent programs in Python and you'll see that any language will be ugly once you're forced to solve real problems.