Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

The most important distinction in a language is

Name: Anonymous 2015-10-10 13:46

whether it has GC or not.

Name: Anonymous 2015-10-10 13:49

no

Name: Anonymous 2015-10-10 13:50

Java, Perl and Lisp have much more in common than e.g. Java and C++.

Name: Anonymous 2015-10-10 15:10

The most important thing is the state of the community you will be sourcing your libraries from. Pick a hipster language if you want to be a big fish in a small pond, pick a language with a strong and active community if you want to do something useful.

Never pick a language with an idiot community, like Javascript or PHP. Even if the language itself was good, the libraries will have awful APIs and be subtly incorrect and insecure.

Specific language features, like Erlang's knack for concurrency or Rusts memory safety are just nice-to-haves.

Name: Anonymous 2015-10-10 17:24

rust memeory safety

yet..... there is no formal model of the type system and no proof of preservation and progress.

so "memorysaftery" it's entirely conjecture

Name: Anonymous 2015-10-10 19:44

>>5
Rust's type system is based on multiple decades of research on linear logic and type theory. It's not been formally proven correct, in the same way that no full language has had a formal proof; only strict toy subsets.

IHBT.

Name: Anonymous 2015-10-10 19:53

>>6
Multiple decades of failed research? It's time to grow up and realize that just because someone has spent a lot of time on something doesn't mean it's good. Niklaus Wirth has spent decades on Oberon, Oberon OS and Modula, but they're all utter useless shit.

Name: Anonymous 2015-10-10 19:56

This whole "rust memory safety hasn't been proven" thing is one of the worst forced memes I've ever seen. Almost as bad a horses.

Name: Anonymous 2015-10-10 19:57

>>8
1. It's unverified.
2. It's a pain to use.
3. You get stuck with raw pointers anyway.

Name: Anonymous 2015-10-10 19:58

>>7
JFGI and you'll see it's not one guy jerking himself off.
You made the assertion, so you have to find the evidence to back up your point.
Fucking sage your stupid shitty comments as well, you arrogant shitlord.

Name: Anonymous 2015-10-10 19:59

>>9
1. No other language is ``verified''.
2. C++ is a pain to use. Go is a pain to use. Python is a pain to use. Your mother's anus is a pain to use.
3. You haven't written a line of rust.

Name: Anonymous 2015-10-10 20:01

rust is shit

Name: Anonymous 2015-10-10 20:04

>>11
1. SML is verified
2. C++ is a pain that gives you access to tons of libraries and megatons of legacy code. With Rust, you have to start over from rocks and spears for no reason.
3. No, I haven't, but the Anons on /prog/ posted their experience of Rust and the type system was insufferable.

Name: Anonymous 2015-10-10 20:09

>>13
1. Still with some arbitrary definition of ``verified``, and nobody uses it.
2. Rust has a proper FFI mechanism which gives you access to all C libraries ever, if you don't mind rewriting a few function signatures.
3. Don't do things like this. Use your own opinions. You are not twitter.

Name: Twitter 2015-10-10 20:14

>>14
You are wrong, sir. I am, in fact, Twitter.

Name: Anonymous 2015-10-10 20:16

>>15
Well then, tweet my anus.

Name: Twitter 2015-10-10 20:17

>>16
#youranus

Name: Anonymous 2015-10-10 20:19

oh god now i am going to lose my job

Name: Anonymous 2015-10-10 21:41

Rust has a proper FFI mechanism
No, take a look at the vulkan thread.

Name: Anonymous 2015-10-10 21:55

>>13
I don't recall seeing much experience reporting on Rust. Nearly all of the negative assessments I've read here were posted by people who haven't used it or were demonstrably lying.

If you can write it well in your favourite ML do that, as always. If it's more of a C++ problem, do it in Rust.

If you think C++ has a better type system, just stop programming altogether. If it's the region system I don't know what to say, regions need disambiguation sometimes. If babby wants RC/GC types instead, they're available.

Name: Anonymous 2015-10-11 6:26

More like whether it's Lisp or not.

Name: Anonymous 2015-10-11 12:29

>>19
is Vulkan 1.0 yet?

Name: Anonymous 2015-10-11 13:55

>>21
Rust and JavaScript are Lisp.

Name: Anonymous 2015-10-11 16:12

Rust is a joke, all you need to do is look up the people developing it.

Name: Anonymous 2015-10-12 0:37

>>24
All you need to do is look up the people developing Lisp. The nose knows.

Name: Anonymous 2015-10-12 0:51

Name: Anonymous 2015-10-12 2:52

>>25
>>26
Literally one implementation of one dialect of Lisp that hasn't been updated in over 5 years.

Name: Anonymous 2015-10-12 14:47

Name: Anonymous 2015-10-13 17:59

>>28
Helllllll Yes!!!!!!!!!

Name: Anonymous 2015-10-13 18:06

Choose Life. Choose a programming language. Choose an editor. Choose an operating system. Choose a fucking big machine, choose compilers, libraries, compact toolchains and version control systems.

Choose sitting on that couch coding mind-numbing, spirit-crushing enterprise applications, stuffing fucking JAVA into your mouth. Choose rotting away at the end of it all, pissing your last in a miserable home, nothing more than an embarrassment to the selfish, fucked up brats you spawned to replace yourselves. Choose your future. Choose life...

But why would I want to do a thing like that? I chose not to choose life. I chose somethin' else. And the reasons? There are no reasons. Who needs reasons when you've got Racket?

Name: Anonymous 2015-10-13 18:47

>>30
Here's a Racket package which facilitates reason.
http://pkg-build.racket-lang.org/doc/parenlog/index.html

Name: Anonymous 2015-10-14 0:03

>>31
Didn't On Lisp already feature a Prolog compiler built... On... Lisp? Anything done by the Racket project is as bloated as shit as they constantly expand everything to support twenty different variants of the language.

Besides that, Prolog is just a European Not-Invented-Here kneejerk response to the elegance of Lisp.
https://archive.org/stream/byte-magazine-1984-10/1984_10_BYTE_09-11_Databases#page/n377/mode/2up

Name: Anonymous 2015-10-14 0:23

>>32
You should check my dubs, son.

Name: Anonymous 2015-10-14 1:33

>>33
Dubs are just a kneejerk response to the elegance of my binary post number.

Name: Anonymous 2015-10-14 2:12

>>30
very good.

Name: Anonymous 2015-10-14 11:21

GC is shit.

Name: Anonymous 2015-10-14 14:38

>>32
It's slow, but not for that reason. I don't think you know what you're talking about.

Name: Anonymous 2015-10-15 7:20

I refuse to program in a language that doesn't support GC. I spent $7 a day on coffee, might as well spend $0.01 on CPU to do memory mgmnt for me.

People who don't want to pay the GC price are pauper pleb, too broke to afford cycles because they don't contribute anything. Yet still blowing high of their ivory tower about their stoic practices. as if that makes them cool.

gimme a break and go code some node, nerds

Name: Anonymous 2015-10-15 7:52

Yeah this is why you have systems like ThinLisp, GOAL, Symta hosted on top of Common Lisp usually, also libs like trivial-garbage. Just like typing should be strictly opt-in, garbage collection should be opt-out.

Name: Anonymous 2015-10-15 8:11

>>36
suck my coq, dude

Name: Anonymous 2015-10-15 10:57

>>40
only if you prove it's not gay

Name: Anonymous 2015-10-15 18:04

>>19
No, take a look at the vulkan thread.
That was literally one guy complaining because he was trying to write his own bindings and didn't know how to make it work. If he was serious about his project he would have just used the unsafe memory manipulation functions in the Rust standard library, like everyone else does (at least until a convenient solution is available).

Point being, it's not that Rust is incapable of doing certain things. It's just that this one guy didn't know how to do them.

Name: Anonymous 2015-10-15 20:17

>>42
It's just that this one guy didn't know how to do them.

It's a little more than that. He needed to provide the functionality in a seamless way to library consumers without adding overhead. It can be done, but you end up with a convoluted solution and will have to rely on the optimizer to fix it up for you. He should complain, but not at the Vulkan people, except about the actual API deficiencies.

Name: Anonymous 2015-10-16 10:41

I'd comment on the language, but I'm a bit rusty.

Name: Anonymous 2015-10-16 12:30

>>43,42
provide the functionality in a seamless way to library consumers without adding overhead
he would have just used the unsafe memory manipulation functions
Overhead my foot

Name: Anonymous 2015-10-16 16:24

>>45
Are you an idiot? Yes, he can use the unsafe functions, but he's writing a (safe) library that has to provide access to this information. It's right there in the text you quoted.

It turns out Rust can manage this, at least for unions with a small number of variants. This depends on having better inlining and related optimizations than Clang at -O2, not something I expected. My first test eliminated all of the code since the results weren't used.

But I would never use this technique. Defining the union in Rust was hard and accessing it would break on other machines. One of the few safety features they try to assert in unsafe Rust keeps you from accessing data of the wrong size for the type. Unions fuck that shit right up because you have to describe a struct with non-overlapping fields in Rust to get the repr sized right. It might be impossible to reclaim performance with certain layouts.

If I absolutely had to deal with it I would either write an inefficient wrapper in C (return a struct with all union fields laid out sequentially, i.e. no union) or, if performance/memory was paramount I would push the minimum of logic into a C switch. Since Rust's ABI is unspecified you can't just return enum values out of the switch, so it would have to be more involved than that.

Name: Anonymous 2015-10-16 18:59

>>42-46
These memory layouts can be done safely. They're safe. Rust just doesn't give you good control over memory.

Name: Anonymous 2015-10-16 20:43

>>47
Said the troll.

Name: Anonymous 2015-10-19 5:27

>>41
if (!balls_touching) {
return NOT_GAY;
}

Name: Anonymous 2016-06-10 22:06

>>49
Return value is undefined if balls_touching evaluates to true.

Don't change these.
Name: Email:
Entire Thread Thread List