[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


Literally none of them are widely used in the industry.
>inb4 why
because why use crappy tools when you have better tools? why use C++ when you can have C#? (both are crap compared to pure languages, but C# is mostly an upgrade to C++ except when you need performance)
>>
Why? Borrow check's single mutable owner is good enough model for any use case that requires purity. What are we trying to solve with pure languages?
>>
>>108995498
Rust is not a pure language. mutability has nothing to do with purity.
>>
>>108995498
>What are we trying to solve with pure languages?
a nonheadache inducing programming experience?
>>
The problem with languages like Rust/C++, or Zig is that they shallow copy concepts from pure languages without fully understanding what made those concepts work with pure'er systems in the first place. C++ has "objects" but they don't behave like objects like with Smalltalk or Self. C++'s objects are just a fancy wrapper for C structs, meanwhile in Smalltalk objects are real and communicate through message passing without exposing their internals. just like real objects. and the entire system is objects, so the "API" is a given and nothing is broken for the sake of performance.
Rust isn't even an OO nor a purely functional language like Haskell since like nonpure languages, it breaks purity for the sake of performance. why does this matter?
because if I gave you a complete tool (like a complete hammer) you wouldn't go use a compromised hammer that only barely resembles the tool because it had to compromise for the sake of some other thing and is thus very painful to use compared to an actual hammer.
>>
>>108995523
Never said it was. I am saying purity has no use-case that isn't solved by Rust's borrow checking model.
>>108995526
Which is what? Real world IO heavy haskell just looks like Rust, but with more noise because you need meme structures like monad stacks and lenses.
>>
>>108995204
What is a pure language?
>>
>>108995571
First see above >>108995568
second, you're still conflating mutability with purity. the borrow checker has nothing to do with data represented in pure languages.
Rust simply does not represent data the same way Haskell does. it is a shallow functional language. it is not truly functional.
you're just not getting the same data representation as with Haskell.
Haskell solves all the problems Rust tries to solve by simply committing to the purity. this is why pure languages matter in the real world and are not just an academic circle jerk.
>>
>>108995592
You mentioned message passing like it means anything and isn't just a design pattern for specific use-cases. It has nothing to with OO or any other insane garbage the rest of your post says. So I didn't bother reading it.
>>
>>108995204
>C# is mostly an upgrade to C++
Holy mother of Vishnu Batman.
>>
>>108995583
A language that can be expressed as a coherent model. just like how algebra is a coherent mathematics. or a hammer is clearly defined from some weird abomination that looks like a hammer but isn't.

Lisp, Smalltalk, Haskell, Self are like a platonic circle . C++/Rust/C/Zig/Java are like a physical object that halfway looks like a wheel (trying to resemble a perfect circle) and half way a cube.
it's not coherent or complete.
>>
>>108995204
C# is Microsoft slop. They tried to be "cross-platform" and still fucking failed at it because they can't stop themselves from making everything proprietary and Windows-specific. Oh and have fun navigating their poorly written, bloated, slow documentation website.
There's a reason nothing that runs on Linux is written in C# and the few programs that do probably still use an unsupported legacy non-Microsoft C# runtime thingy. .NET Core was a big failure.
>>
>>108995583
Mathematic definition of a function.
Inputs (not mutable) that do not cause "side-effects" (I/O) that result in a specific output. Over the years plt designers made cope structures to cope with the shortcomings of this unrealistic model of computation.
No one actually agrees what it really means of course, but whatever. No one can even agree what OOP is. It's mostly meaningless fluff.
>>
>>108995601
The problem with Rust is that it has no use case. just like how a broken tool has no use case.
the only useful paradigms are pure functional or pure OO. so Haskell or Self/Smalltalk.
>>
>>108995583
A pure programming language is one where there is no side effects.

Of course, this means that it is useless, since it cannot interact with the world. It could not print messages, send emails, etc, etc. It would be pragmatically worthless.
>>
>>108995629
And the real world disagrees. So keep coping. There is much more rust out their than your meme langs combined.
>>
>>108995650
The real world doesn't know shit. they just copy and do what their bosses tell them too. hollyfuck if you're not interested in actual discussion why bother? thanks for bumping I guess.
>>
>>108995665
What doesn't the real world know? Honestly? When rust came out, everyone in the world could see and reap the benefits of the writable xor shared model, an extension of hoare logic. Google already said they have virtually zero memory cups in real world rust. It meets the performance needs of actual users.

Where is your mythical garbage in all this? Next you're going to bring up formal methods ignoring the classic case of: the program is correct, but the proof is wrong. There is no purity in the real world and Godel's incompleteness should be the obvious thing to point to, to prove it.
>>
>>108995583
a language that does nothing
>>
>>108995674
It's not even a comparison. I'm not even saying anything about what Rust is trying to do in a narrow sense. I have nothing against the borrow checker. because it's a very specific problem that Rust is trying to solve. that's fine. In theory something like that could be implemented for compiled Lisp even. but that's besides the point.

The primary point is that pure languages offer a more comprehensive approach to programming that impure languages. that's it. that is all what I'm saying. why are pure languages not used in the industry? for probably the same reason why better tooling or methods or infrastructures aren't used in any industry. legacy reasons, things were implemented first this way and there is no reason to change from a business perspective or because most people just don't bother in general even in public matters. it doesn't say anything about better approaches however.

Tradition. that's it. that's why.

Real world shit: I'm trying to develop an App for mobile devices, were there better mobile OSes than iOS or Android? probably, most likely. but do I have a choice as a lone developer outside of their respective SDKs? No.
>>
>>108995204
Ah yes, C#, it's slightly better than C++ except with out the only important thing (performance). Bravo, Microsoft!
>>
>>108995204
>Microsoft is better
no, it isn't. move to Israel if you love them so much
>>
>>108995726
To be fair, you can go pretty far with C#, unless it's unity.
>>
>>108995735
You can go pretty far in javascript or python, to be fair.
>>
>>108995726
Pure performance isn't the only metric. You can even write a kernel in GC languages with some modification, where you compile part of your code without GC to bootstrap the rest of it with GC.
Powerful programming or tooling for programming is a much more useful metric.
Carmack uses all the best IDEs with C++ so he can get the job done better. Linus the nigger doesn't even use text highlighting in his retarded gimped editor and barely codes anything above the kernel level.
>>
>>108995755
Not really. C# is at least competitive.
>>
for the real niggas that just want to fucking build shit: Clojure is a beautiful Lisp that also gives you access to literally any Java lib in existence. Babashka allows writing Clojure to replace shell scripts. ClojureScript allows writing Clojure and using any JS lib in existence.
>>
>>108995571
>meme structures
every feature that makes rust a good language was called a meme structure once, faggot
>>
>>108996058
He doesn't understand purity and is conflating it with memory management.
>>
>>108995498
>Borrow check's single mutable owner is good enough
you're a virgin, and nobody will fuck you.
>>
>>108995568
you're absoutely based, but the Rustaceans, a population mostly comprised of unemployed virgin wankers, are not ready for this conversation yet
>>
>>108996044
>for the real niggas that just want to fucking build shit: Clojure is a beautiful Lisp that also gives you access to literally any Java lib in existence.
this is all true!! It also sucks compared to Common Lisp, which also can call Java libraries easily, should you be as stupid to want to use libraries written in a shitty programming language, Java.

If you must program for the JVM, use Scala.
>>
>>108995592
>you're still conflating mutability with purity
No he isn't, quote
>Borrow check's single mutable owner is good enough model for any use case that requires purity
>purity has no use-case that isn't solved by Rust's borrow checking model
Maybe you should mutate your brain to add the ability to read

>Haskell solves all the problems Rust tries to solve
Which are?
>by simply committing to the purity
Which provides what benefit? Specifics please, no "muh data representation" repeated yet again
>>
>>108995717
>The primary point is that pure languages offer a more comprehensive approach to programming that impure languages. that's it. that is all what I'm saying.
What you're saying is fucking nothing. "More comprehensive" doesn't mean anything
>>
>>108995568
You are describing differences without actually making any arguments WHY the more platonically ideal version is better.
This is the problem with you academic retards. You come up with an idea and rather than treating it as an avenue to explore the field from a new perspective, you get fucking mindbroken and start thinking the entire field should twist and turn to fit the perspective of your idea. Nobody in the real world gives a fuck about true message passing, or making everything a list, or making all data immutable.
Your hammer analogy is retarded, rust isn't a "compromised hammer" it's just an easily accessible hammer in a toolbox that contains other stuff. Borrow checker is simply a tool that's enabled by default to prevent creation of certain types of memory errors, that's it. If you need to do something it doesn't support, you can turn it off for that part, and nobody will bitch about it. If you have a nail in rust, you use the hammer by default, if not, you use something else.
Meanwhile, haskell isn't a "complete hammer", it's cutting your fucking hands off to replace them with hammers, because you have a mental illness and you can't just use a hammer when applicable, to you swinging the goddamn hammer is the goal in and of itself. Nail? Hammer. Screw? Hammer. Measure? Hammer. Need to paint something? Here, have a paintbrush you have to hammer, we call it a monad.
What's actually painful is limiting yourself to one tool because you were bron wrong
>>
>>108996939 (cont)
I don't give a fuck about true message passing, I want a fucking error when I try to access something that doesn't exist and I want to statically categorize my types
I don't give a fuck about pure functions, i just want my data to not get corrupted and to do the computation as fast as possible. I WANT "side"-effect, that's the whole fucking reason I run a program in the first place
I don't need everything to be a list, I am not going to read the contents of a function at runtime, if I ever need to swap an action in a middle of a function I'll just DI it

and I want my shit fast
>>
>>108996647
What the fuck does mutability has anything to do with purity you dumb fuck?
>>
>>108996939
Yes, nobody in the real world cares about correctly modelling their problems. they just want silly assembly wrappers like C or Rust.
Of course you don't give a shit about abstract useful modelling. you're an assembly nigger. go punch some cards.
>>
>>108995620
not a single thing in this post is true except maybe that dotnet core is a failure adoption-wise, but that's only because the rewrite happened too late when all the companies have their stack established, probably using jvm.
There is no more comfy mainstream stack to develop shit in
>>
>>108996590
nah, Clojure is far more enjoyable to write than Common Lisp, IME.
>it SUCKS!
lmao, ok CL boy. I really do not want to shit on Common Lisp writers, for I thought we could be friends. but, frankly, your attitude is annoying as fuck, and I'm going to use my >15 yrs of experience to start shitting on you.
>>
>>108997363
you can just learn UML
>>
>>108997363
Nobody in the world cares about perfectly modeling a problem, especially not to the retarded rules of your OCD trigger. The correct model is the one that produces the correct answers, and that is the necassary, not sufficient, codition for good software.
I care about abstract USEFUL modeling deeply. Borrow checker is useful, not because it fits some retarded academic purism, but because it catches errors, saving me time. And when it doesn't, I turn it the fuck off, and use the time saved on not debugging the 99.9% of trivial code handled by BC to correctly model the 0.1% it can't handle
>>
Io is the Self successor and it's still developed
>>
OP has autism btw and when he says "pure" he doesn't mean functionally pure, he has some personal definition of the term he made up himself
>>
>>108997345
>>108995717
And yet rust is relatively brand new and people are actively adopting it in spite of billions of LoC of C++.
Rust is useful. Your "purity" is not.
>>
>>108998561
Perfect modeling isn't even possible. It's nice to be able to shit out something in TLA+ to help you understand things, but you can never 1 for 1 a model with implementation. It's not useless, but it also isn't worth the effort 99.9999% of time, especially when it will most certainly be wrong or omit to define shit like temporal reality.
>>
>>109000189
>OP has autism btw
And what's your problem with that?
>>
>>108995583
>What is a pure language?
A meme language that nobody uses.
>>
>>109000277
People with autism miss the bigger picture so they can't talk meaningfully on issues like this
>>
>>109000326
That's both a really offensive and stupid thing to claim.
>>
>>108997345
Everything? Purity implies mathematical purity.
You cannot have a function that mutates its inputs because it changes the outcome of future calls of the function with that input. Functions don't need to be bijective for instance.
>>
>>109000367
Your ideas are offensively stupid
>>
>>109000388
I have a different definition of purity. It's more a broad one than the one relating to functional purity.
>>
>>109001233
>I have redefined what a word means and I will talk to everyone like they know my special personal defintion
terminal autism
>>
File: IMG_9730.gif (183 KB, 220x218)
183 KB GIF
I can function just fine, meaning I'm not autistic I'm functional.
>>
>>108995204
>C# is mostly an upgrade to C++ except
except it's a completely different kind of language that requires an interpreted runtime to work, retard

after the compiler is done with C++ you've got machine code. not so with C#
>>
>>108995583
one that can be fully resolved to a no'-op at compile time
>>
>>108998292
It sucks. It's verbose as fuck, slow as fuck, ugly as fuck, debugger experience is dogshit compared to lisp, it's a toy at best.
>>
>>109002393
you argue like a Cnile
post a thing that proves you have any experience at all in interesting shit.
here is an issue report I wrote for Erlang after experiencing issues re-running client-authored code.
https://github.com/erlang/otp/issues/10450
>>
File: poweredbyxo.png (20 KB, 200x100)
20 KB PNG
Xoscript is a pure OO language. I dont give a shit about other forms of purity.
>>
>>109002328
thanks this made me laugh
>>
>>109002479
>two self-owns at once
lol, lmao
>lisp is c
kek
>dox yourself bro
no thanks
I contributed to scientific computing libraries in lisp, otherwise I write esoteric shit like wirthian compilers in x86_64 gAS.
>>
>>109002298
you can compile c# to native binary as well. But it still uses gc and so on
>>
File: 1780663096783029.gif (2.6 MB, 216x288)
2.6 MB GIF
>>109004887
lol, lmao, kek
>respond!
no thanks
>>
>>108995204
how is it an improvement if you have to switch to a lower version for performance? OP is an idiot.
>>
>>108995204
I think Common Lisp is pretty based.
I've always felt that, for most cases, all you really need is a good enough implementation of CL, C, and assembly. You can do anything in CL.

Even then I'm not sure about C. I feel that it could be better. The #include system could have been replaced with a proper module system, for example. I can't wait for Zig to become more mature.

Something like Temple OS but written in LISP would be based as fuck. A kernel that's nothing but a really fast lisp machine would be pretty cool.

The only thing that bugs me about LISP is security. I know that there are things like Coalton out there but is it REALLY as robust as something like Haskell?
>>
>>109007147
You'd love my lang. I made a Lisp that compiles into C or even directly to Assembly if you want that.
>>
>>109008521
That's not at all what makes lisp good. Furthermore, all serious lisp implementations compile to machine code and have an inline assembly language.
>>
>>108998292
>my 15 yrs of experience
lol, that's a junior compared to the average Lisper. No wonder why Clojure is fine for you
>>
>>109006267
>waits 8 hours to respond
>>respond!
>no thanks
I accept your surrender
>>
>>109007147
>I think Common Lisp is pretty based.
>I've always felt that, for most cases, all you really need is a good enough implementation of CL, C, and assembly. You can do anything in CL.
You don't need a separate assembler. The normal practice is to just use lisp as an assembler, also called a "LAP", lisp assembly program.
>Something like Temple OS but written in LISP would be based as fuck. A kernel that's nothing but a really fast lisp machine would be pretty cool.
It has been done already more than once, for example see Mezzano and Movitz.
>The only thing that bugs me about LISP is security. I know that there are things like Coalton out there but is it REALLY as robust as something like Haskell?
You are thinking "security" means "compile-time type checking", and this isn't correct.
Also, "security" is not "robustness".
Common Lisp was used to autopilot an actual spaceship. It doesn't get more robust than that.
>>
>>109008521
>I made a Lisp that compiles into C
most Common Lisp implementations compile directly to machine language.
while the program is running.

Then there's ECL which is a mature and robust Common Lisp implementation that compiles to C, but ... suprise, this makes the end result slower than compiling Lisp directly to machine lang, which is what the Lisp chads do every day at least 100 times a day, because of interactive development.
>>
>>108995583
Autism. Lisp's creators already had figurated everything out 70 years ago.
>>
>>108996568
e-even you Kacchan [farts]...
>>
>>108995616
Yet all the useful wheels are in C*, Rust, Java et al. What you don't understand is that an actual physical machine will execute your program, it isn't a syntax meant to describe a problem, but a stream of commands that the machine can decode then execute. Most people that needed to work with the actual machine went the route of the mentioned langs, while academics and mathematicians that really love to masturbate to syntax and abstract theories instead of getting a job done, went the "pure" way. In the end you're just making an abstraction over the "impure" nature of a computer, and life in general, what people call a delusion.
>>
>>109009119
Like what? What did lisp figure that the used langs didn't carry?
>>
>>108995204
>C# is mostly an upgrade to C++ except when you need performance
C# sucks on anything that's not windows
>>
>>108995498
>Why? Borrow check's single mutable owner is good enough model for any use case that requires purity.
Why? What does this solve compared to purity?
>>
>>109009339
it's crazy how fucking retarded some of you people really are when you post shit like this in complete confidence
>it isn't a syntax meant to describe a problem, but a stream of commands that the machine can decode then execute.
in none of the languages you mentioned, except maybe java, variables are not memory cells for example, but that's absolutely the kind of thing you're advocating for with this kind of framing. you don't even understand your so-called "pragmatic" tooling.
>Most people that needed to work with the actual machine
so your advocacy is in favor of the LCD?
>instead of getting a job done
if you can't get "the job done" in something like Lisp (which btw is much closer to your mental model of what a language is supposed to describe), the problem is entirely your own retardation.

but you'll sit there and be the most pretentious motherfucker imaginable, thinking your own failure and lack of a skillset somehow makes you "pragmatic" and special. no, you're just an insecure retard lashing out at anything that threatens to demonstrate how stupid you really are. and that's why we don't have shit like programmable optimizer, because that makes the insecure dregs of this industry clutch their pearls since they have absolutely zero algebraic reasoning skills. i thank fucking god your lot is being replaced by LLMs. good fucking riddance, enjoy your career in sanitation!
>>
>>109009499
The gist of my post was that programming systems should be based on the computer itself, and not on some imaginary "purity" and masturbation. Programmers just want to command the machine to solve their problems, they don't need a virtual world with stupid rules that satisfies some theories. Idk what are you seething about. I'm all with a programming system that is cohesive and complete, but without all the mathematician masturbation, because unlike most of your theories, a computer system is a real thing. You really are a vulnerable narcissist like most of your kind.
>>
>>109009339
>>109009746
>it isn't a syntax meant to describe a problem, but a stream of commands that the machine can decode then execute
Pure doesn't necessary mean "functional" or "immutable" retard-kun

The "purity" attribute comes from using very few orthogonal principles (like the Self/Io/smalltalk "everything is a object" or the Red/Rebol "everything is a block") and buid the computation from a universal abstraction

The Self language is a just a classless prototype-based OO language with mutable objects, that almost feel like an imperative

Tbh in the OOP realm, the classless languages make most of the design patterns unneeded showing that the limitation comes from the separation of classes and objects like in Java, python and such
>>
>>109009349
Garbage collection
>>
>>109008950
Shame common lisp forces you into emacs which is a slow, laggy, terrible editor that can only do 1 thing at a time because the faggots that made emacs lisp are more concerned with a forever war over what direction they should take emacs lisp over actually sorting out the slow, single threaded bullshit their editor is built in thus the editor remains much much slower than garbage like vscode. Also things like auto formatting and error highlighting are fucking shit for most lisps - Racket being the exception because the creators actually took some time to build modern tooling around their language but the language basically python tier in terms of speed making it only viable for toy programs that do no real work.
>>
>>109012091
Vim literally works better than emacs with common lisp.
>>
>>109009423
Data corruption
>>
>>109013671
Retard
>>
>>108997345
>>108995592
>>108995523
holy retard
>>
>>109014040
Go be tech illiterate somewhere else please and thank you. There's a reason the entire thread is calling you retarded and no amount of 'n-no u' will save your tiny little ego from the fact.
>>
>>109009377
no it doesn't, it isn't 2010 anymore, pa



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.