Live data from Hacker News

Urbit: A clean-slate functional OS

urbit.org

161–170 of 185 posts

Re: Urbit: A clean-slate functional OS

#162
post #148

Earlier quoted context omitted.

I sense a fallacy lurking here. Sure, a type system like Haskell's or even Scala's is magic (and can be used without understanding it) as long as it can "Do What You Mean," but when it can't, you have to understand its workings. We can't sweep that fact under the rug by calling any failure to "Do What You Mean" a bug, a wart to be fixed -- a deviation from correct DWYM behavior. There is no actual DWYM type system, o…

Let's not confuse Hindley-Milner type inference with Haskell's (or ML's) type system. While Haskell's type system can be complex, depending on the exact language extensions in play, Hindley-Milner type inference is simple. It's just good UI — you almost never need to write explicit type declarations, because the compiler (or typechecker) can almost always figure out what you mean. That's it! Using advanced Haskell ex…

Scala […] is barely able to infer the existence of its own arse with both hands, failing in even the simplest of cases.

Thanks for this. Not only did I lol, but this confirmed my suspicion that Scala was "not the language I was looking for" to use for an upcoming project (a compiler that, for business/politics reasons, must run on the JVM). You've no doubt spared future me regret.

Re: Urbit: A clean-slate functional OS

#163
post #110

Earlier quoted context omitted.

But you don't need to understand any of the H-M algorithm to understand how to use a language with a H-M type system. You just need to understand that every expression in your program must be able to be statically assigned a non-union non-dependent type. If an expression can't be assigned such a type (e.g. it's sometimes an integer and sometimes a string (in the same function call); or it's a non-empty list, etc.) th…

This is an excellent point, and we're in vehement agreement. Or almost vehement agreement. The thing is, as a programmer, I have to understand what result the algorithm will produce. I have to understand what type my variable will be . If I have to look and see what the compiler came up with, I have way too much work to do. There are two ways to solve this problem. One is to build an abstract mathematical model which…

> One is to build an abstract mathematical model which you can emulate in your head

The ability to emulate your abstract or concrete programming model in your head cannot be overemphasized. I used to program the original 8-bit B&W Gameboy, which was a machine so simple and small I could literally emulate it at the clock cycle level while I was writing the code for it.

If you can fit your model into your cache (brain) you can do amazing things using just your wetware.

Re: Urbit: A clean-slate functional OS

#164
post #75
post #57

I distinctly get the impression that the authors of this project will already know what Lojban is. This language (especially when you get to the part about reserved words, actually made up with special characters as runes, and how to pronounce them) made me think of the structure of Lojban right away. For anyone who hasn't heard of it, http://www.tlg.uci.edu/~opoudjis/lojbanbrochure/lessons/ Urbit of course having th…

mi prami la lojban .ui

ge'edai

Re: Urbit: A clean-slate functional OS

#165

Earlier quoted context omitted.

As others have pointed out, this is art. You don't look at art, and ask "Why did you do this??". You simply enjoy it. The artist did it, to do it, and nothing further. If you can not see this that way, then I am truly sorry.

If it is truly art then it doesn't make much sense why he is trying so damn hard to make it practical.

Think of it as great architecture...

Re: Urbit: A clean-slate functional OS

#166
post #75

Earlier quoted context omitted.

mi prami la lojban .ui

ge'edai

I googled, got 1/3 of the way through "Subsequent UI Cmavo", and gave up.

If you explained in lojban, I promise I'd struggle a few minutes longer before giving up :D

http://www.lojban.org/tiki/Subsequent+UI+Cmavo

I read Arabic fairly well but I did not understand Lojban, not having any framework to understand it in, whereas I took Arabic classes for basically four years of college.

I got "prami" to mean love, and .ui to mean ":)"

Why do you put .i at the beginning of some sentences?

Re: Urbit: A clean-slate functional OS

#167
post #148

Earlier quoted context omitted.

Let's not confuse Hindley-Milner type inference with Haskell's (or ML's) type system. While Haskell's type system can be complex, depending on the exact language extensions in play, Hindley-Milner type inference is simple. It's just good UI — you almost never need to write explicit type declarations, because the compiler (or typechecker) can almost always figure out what you mean. That's it! Using advanced Haskell ex…

Scala […] is barely able to infer the existence of its own arse with both hands, failing in even the simplest of cases. Thanks for this. Not only did I lol, but this confirmed my suspicion that Scala was "not the language I was looking for" to use for an upcoming project (a compiler that, for business/politics reasons, must run on the JVM). You've no doubt spared future me regret.

Check out ermine[1], a language for the JVM that was written for exactly that reason. It's being used at S&P Capital IQ. You can look at the user guide[2] for more information.

[1]: https://github.com/ermine-language

[2]: https://launchpad.net/ermine-user-guide

Re: Urbit: A clean-slate functional OS

#168

Earlier quoted context omitted.

Scala […] is barely able to infer the existence of its own arse with both hands, failing in even the simplest of cases. Thanks for this. Not only did I lol, but this confirmed my suspicion that Scala was "not the language I was looking for" to use for an upcoming project (a compiler that, for business/politics reasons, must run on the JVM). You've no doubt spared future me regret.

Check out ermine[1], a language for the JVM that was written for exactly that reason. It's being used at S&P Capital IQ. You can look at the user guide[2] for more information. [1]: https://github.com/ermine-language [2]: https://launchpad.net/ermine-user-guide

Thanks for pointing it out!

Re: Urbit: A clean-slate functional OS

#169

I love the project concept. A toy functional OS would be an admirable counterpart to e.g. MINIX. That said, I have one minor quibble: A programming language is called a language for a reason - it should activate the human linguistic lobes. Another programmer said this, a long time ago, and that's how we ended up with Perl. Please don't seek to emulate Larry Wall. Perl is great for quick automation, but anything compl…

Larry Wall is a great man. And Perl was mighty force. An empire was built, and it may have crumbled, but all empires crumble. One day you will be repeating these words, to a youngster that says the heroes of your Ruby palace, (or your conquering Pythonistas) were weak men of little vision, and laughs at you for following them. And when that day comes, I ask only that you think of me, and Wall, as I now think of one w…

It's not age. C is older than Perl by decades, but I think C is a lovely little language. Lisp is as old as FORTRAN (almost) and I think it's probably the most elegant language invented yet. No, my quibble with Perl is that in throwing around implicit state everywhere (in an effort to make programming languages more like human languages) Perl is just bad as a system for building complex systems. It's not unique in this regard - Perl shares its weakness with the shell scripts it was supposed to replace.

Re: Urbit: A clean-slate functional OS

#170
post #166

Earlier quoted context omitted.

ge'edai

I googled, got 1/3 of the way through "Subsequent UI Cmavo", and gave up. If you explained in lojban, I promise I'd struggle a few minutes longer before giving up :D http://www.lojban.org/tiki/Subsequent+UI+Cmavo I read Arabic fairly well but I did not understand Lojban, not having any framework to understand it in, whereas I took Arabic classes for basically four years of college. I got "prami" to mean love, and .ui…

Disclaimer: I'm no lojban expert myself, so this may be inaccurate.

{mi prami la lojban .ui} is pretty straightforward: I love lojban, plus the {.ui} attitudinal, which indicates happiness (or as you said, ":)").

The period {.} is an interesting part of lojban. It indicates a glottal stop. Most words in lojban start with a consonant, so glottal stops are placed before words that begin with a vowel (mainly just attitudinals and names). This is to prevent words from flowing into one another when speaking rapidly, which is important since one of the design goals of lojban is to avoid ambiguity.

{.i} is actually punctuation: it marks the boundary between sentences. All punctuation is pronounced in lojban. This may sound exhausting, but again, it reduces ambiguity.

{ge'edai} is intended to mean "I know that feel" -- {ge'e} meaning "unspecified emotion" and {dai} meaning "empathy" -- but I'm not sure if combining them is grammatically correct. Perhaps {dai} alone would be more accurate.

Post reply on HN