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

Pages: 1-

Modern(?) systems languages.

Name: Anonymous 2010-07-10 1:21

I was reading Lisp the Underdog, and I came across the post about Rust. It seems like safe, concurrent and GC'd systems languages are all the rage these days. What do you guys think? Is this the future? Do you want verification and all that, or do you just want C and friends? How do you deal with concurrency? How would you like to deal with concurrency?

Name: Anonymous 2010-07-10 1:28

How would you hax my anus?

Name: Anonymous 2010-07-10 1:37

"A work-in-progress programming language; not yet suitable for users."

As far as the other crap. My take is that nothing which can done completely and accurately by a compiler should need to be done by a user.
No programmer should ever have to deal with concurrency in the same way no programmer should have to deal with branch prediction. You can write a program with branch predictors in mind and try to make the if statements have easily detectable patterns, you can also write a program with concurrency in mind by choosing better algorithms, among other things. To say a programmer should have to write their own software branch predictor which will indicate to the CPU how to branch is laughable by any means; yet this is the state of concurrency today.

Name: Anonymous 2010-07-10 1:44

Lisp is the future. Has been that way for decades. Just like Unix.

Name: Anonymous 2010-07-10 2:01

>>3
I'm not sure I agree with your take on concurrency. Do we really have compilers that can parallelize code correctly and efficiently? If so, why aren't they in common use?

Regardless, concurrency models we've had for ages seems to be appropriate. Although coroutines are technically sequential, they fit in with programmer-directed concurrent designs. And even so, removing them hurts more than just concurrency.

But if what you're saying is library threading is an abortion of a solution then I'm with you all the way.

Name: Anonymous 2010-07-10 2:06

I use Common Lisp, C and ASM depending on my needs. Lisp for mostly high-level needs, C for mid/low-level needs and asm for purely low-level needs. At times I may perform a more high/mid-level task in a lower level language if there are major performance benefits from doing so. It's also possible to embed lower-level languages in high-level ones when more control is needed through unportable means (not that assembly itself is portable unless we're talking about a VM's assembly).

That said, not all Lisps deal well or in a consistent manner with concurrency, but the situation is acceptable today.

Name: Anonymous 2010-07-10 2:33

Lisp has been Cutting Edge and Innovative back...in 1958.
Now its just a nest of parens leaking memory all over the place.
If you look of Real Enterprise Grade Solutions, you won't notice any "Lisps" there. Commercial Lisps just can't match Java/C# in Speed, Features or Flexibility.

Name: Anonymous 2010-07-10 5:40

>>7
3/10

Name: Anonymous 2010-07-10 5:48

If it isn't bug-compatible with C, it's not going to take off.

Name: Anonymous 2010-07-10 7:26

>>7
I laughed. Only someone ignorant enough to not learn the languages would say that (this is from someone who knows C#, Java, CL, Scheme, ML, C, x86 asm, and bunch of other languages).

leaking memory
There are precise GCs, some even realtime, most generational. Some GCs are better than the others and some of them may be leaky, but most are good. You have full freedom in picking the implementations you use, and there are many to choose from.
There are also nice features like weak pointers (for example, in hashtables) to make it even easier for you to avoid keeping unneeded objects live.

Speed
SBCL, CMUCL, ACL, LW, CCL are pretty fast. They can generate optimized code which performs as well as C-written code or better, if you take the time to tune them (some better than others).
Features
Language features are far ahead Java/C#. Libraries are not part of the language, so Java/C# are ahead in that chapter, IF you don't count user-made libraries and de-facto standards. If you do, you have pretty much the same things.
Flexibility
I learned Lisp because I was angry at things C# wouldn't let me do. I never felt more liberated as a programmer once I've read my SICP and after that learned CL from PCL, ANSI CL, and a few other books. I can eliminate any kind of repetition, the abstractions are limitless and are limited only by my mind, the code is very easy to edit with a good structured editor, and I can shuffle code around as I want, perform transformations on it and much more. Using the REPL allows me to write and test code at the same time, I get instant gratification for knowing that my code works properly and I can debug it with much ease. Features like macros, keyword arguments, dynamic and lexical scoping, reader macros, CLOS and MOP allow me to make my code as general and as "ENTERPRISE"/extensible as I want without having to write much code at all, I can write code which writes code for me to reduce repetition.
It has been almost everything I ever wanted from a programming language. I'm not saying that the language is perfect, or that it offers everything, but just about any gripe I had with it was so easily fixed by writing a few lines of code that it just hasn't been worth getting upset about it. If I want a feature in Java and C#, no luck just getting it without a lengthy standardization process and major compiler hacking which could end up taking many months - some features might be rejected because of difficulty of implementation or them being against the views of the language designers (for example, I want a typecase and various forms of pattern matching in C#, to do that, I either have to do some ugly hacks or use some limited forms of pattern matching, or maybe just make my own compiler for my own modified language. In Lisp, typecase is provided by the language, and it it wasn't, it wouldn't be terribly hard to write your own, as for pattern matching that is not destructuring-bind, I can just write a macro or load a portable library which offers me everything I want, with no effort.

If you still claim Java and C# as having more flexibility, you just don't know Lisp well enough, or can't admit that your language is less flexible.

Name: Anonymous 2010-07-10 7:35

>>10
If you couldn't see that was a troll, then I think you need to start using the Internet on a more regular basis IHBT

Name: Anonymous 2010-07-10 12:31

Okay guys, that "Lisp the Underdog" thing was not meant to be taken so seriously.

Name: Anonymous 2010-07-10 14:37

We should forget about small deficiencies, say about 97% of the time: premature ejaculation is the root of all evil.

Name: Anonymous 2010-07-10 15:12

>>13
But what about "release early, release often" -- ??

Name: Anonymous 2010-07-10 15:48

>>14
biology kind of limits how often you can release, and so you are just left with continuous customer disappointment at the end of the development cycle.

Name: Anonymous 2010-07-10 15:59

>>15
Aren't you the client?

Name: Anonymous 2010-07-10 18:25

>>16
Masters and Johnson defines PE as the condition in which a man ejaculates before his sex partner achieves orgasm, in more than fifty percent of their sexual encounters. Other sex researchers have defined premature ejaculation as occurring if the man ejaculates within two minutes of penetration;
If we take either of these to be the definition of premature ejaculation, then calling myself the client seems kind of misogynistic.

Name: Anonymous 2010-07-10 18:56

Ejaculate My Anus!!!

Name: Anonymous 2010-07-10 22:24

>>17
Did you just equate onanism with misogyny?

Name: Anonymous 2010-07-11 5:52

>>19
No, PE isn't defined for masturbation.

Name: Anonymous 2010-07-11 10:53

>>20
When you jizz before the porno dvd menu has gone.

Name: Anonymous 2010-12-06 9:09

Back to /b/, ``GNAA Faggot''

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