Details
-
Aboutcompsci student, fp fanatic, physics nerd, tea drinker
-
Skillsf#, c#, js, python, haskell, some html + css
Joined devRant on 5/23/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
If someone saw a Magnus Carlsen cover photo saying he is also a chess player, chess players would probably say "Haha, he probably has 1000 rating" or "He probably doesn't know how to castle".
It's not a gender thing. It's just very rare for people to be successful in more than one field. -
@simulate Biologists understand animals without understanding the physics behind them.
Computer language abstraction is the same. You still have to understand it, but the basic block of knowledge, which you take more or less as an axiom is larger. -
If you can't understand it, it's not finished. And probably noone else will understand it either which is terrible. Try to figure out how it works and clean it up.
-
You can code on a "toaster" and lots of people do because when you increase the specs to the point of it being a gaming machine, your battery life drops from like 7 hours to 1.
If you want a gaming machine buy one and you'll be able to code on it as well. If you want to keep the battery life buy a second hand thinkpad and game on something else.
And if you want to go the two machines route you can build a PC for gaming since a gaming laptop is basically an expensive PC with the low battery life. -
Daily reminder: It's paid, not payed.
-
If your world government turns totalitarian, where do you escape to?
At least North Koreans have a chance to flee. -
I'd love to see such a tutorial. A bit entrepeneurial myself, but struggling with finding the niche part.
-
I understand not having a physical fight, that happens, but no verbal either? I mean, technically if you just never fight back when mistreated people don't scream, but sometimes you just have to stand up for yourself. Assertiveness is a key quality, many psychologists do assertiveness training.
And then again, even if you are constantly passive, some disagreeable people will get mad exactly because you act spineless and that bothers them.
I'm kinda like that, if I argue with someone and they don't defend themselves I get annoyed and force them to punch me xD -
I don't like Upwork, but I know the general practice is to bid super low on some projects to get a few good reviews and some popularity and then set your hourly rate to something more reasonable afterwards.
People have a proposal template which they change one or two sentences in to make it more personal.
It's good practice to immediately set up communication by phone to prove you're legit and trustworthy. Stay away from offers by people who can't spell, have weird requirements or seem dodgy.
Make your profile look professional. Get a pro photo done. Spend a few hours writing an overview of your work. Have some examples. -
@BambuSource and generates stupid blockchain project ideas and stores them on a blockchain
-
@BigBoo
@BigBoo
"We assume the axioms of higher-order logic are logically consistent." literally just means 'We assume the branch of mathematics known as formal logic works...'
Dude... if you're just gonna argue for the sake of arguing there's no point. If you don't find this at least a little bit cool you have no soul.
And BTW if you discount subjective experience the best language by every objective measurement is clearly machine code. Best performance, you can do everything, unhackable, parallelizable...
First you call me naive, then you question formal logic. As a fan of mathematics I'm gonna just stop writing now before I say something rude. -
@BigBoo
This is the github repo for the kernel: https://github.com/seL4/l4v/
This is about the proof:
http://sel4.systems/Info/FAQ/...
It was first used in an unmanned Boeing Little Bird helicopter. -
@BigBoo
https://softwarefoundations.cis.upenn.edu/... -
@BigBoo
Formal Verification of functional programs is a whole topic you can research and read about. And no, it's not bullshit. It sounds amazing because it is. -
@BigBoo
https://youtube.com/watch/...
Haskell was invented by a committee of computer scientists, working on the functional paradigm in the 90's because there was no widely accepted alternative. It was solid, it was good so it stuck as the flagship static functional language. So Haskell itself wasn't invented to solve any problem.
The people who were working on the paradigm though, were seeing it as a way to solve parallelism, remove the necessity of unexpected side effects, make programs easier to reason about and predict effects, mathematically prove a program will always work for any input (useful in high-risk areas such as military, nuclear, space, etc.), optimize code re-usability, allow for greater abstraction and so on and so forth.
People have built code for military helicopters, mathematically proven to be unhackable using FP and formal logic...
FP just solves an entirely different set of problems than imperative. That's why it's fascinating. -
@BigBoo You're not going to find any unique functionality which hasn't been implemented in more popular languages, because of the size of the community.
It's currently small and dedicated, with a lot of mathematicians, computer scientists and engineers, but there's a big influx currently of JS devs who are riding the FP-style wave.
Tools are being built, most things are not as refined as age-old C libraries are, but there's increasing interest. For example John Carmack has been pushing Haskell for game development and showed great enthusiasm in his 2013 Quakecon keynote. He directly compares it to C++ development.
Web frameworks are already here with things like Yesod or Snap.
Most of the objective excitement is coming in regards to the possibility of parallelising functional code easily over new multi-core CPU's for better performance.
And if you want to discount subjective experience of the programmer, that's your choice, but for me that is the main selling point. -
@BigBoo
If you're good at C++ and haven't done anything serious with FP you won't get any immediate benefits. You don't get to just switch to a functional language, because everything is going to be completely foreign and you'll feel like you're learning to code all over again.
Now, if you're comfortable with both paradigms then the main striking things is that Haskell is a lot higher-level than C++. So that choice will depend on how much you value performance optimization.
If we're talking about a comparison of languages at similar levels of abstraction, for example Java and Haskell, then the arguments now revolve around the differences between FP and OOP. That's a whole other discussion.
And the actual comparison where we can talk about the language of Haskell itself is in contrast to a dynamic FP like Clojure or Lisp or a similar static FP like F# or Scala.
What am I actually defending? FP or Haskell? -
@BigBoo
On the point of code reusability - this is not a Haskell-specific point but rather one of the main FP benefits in general. I am completely unaware of your personal experience and knowledge of FP so I can't correctly judge how to explain that point, but the main reason for the much-easier code reusability in FP languages is the widespread use of abstract higher-order functions and partial application.
In a big project, this results in your code being about ~1/3rd of the length and looking like a huge library of generic utility functions and one main pipeline of logic, which calls all of them.
With best practices these functions become abstract enough, to the point that more than 50% of them can probably be used in another completely separate project, since they don't rely on any context whatsoever. -
@BigBoo
Of course, the strict compiler means that during development you're going to have many errors to work out before having a working product. So the initial phase of getting something running is going to be a lot longer than other languages. This can be thought of as a future investment in stability, ease of modification and ease of testing.
If you want to push something 80% complete with bugs Haskell won't let you do that easily. Now, whether this is a benefit will depend on the type of project you're doing and personal preference. If you're going to be constantly updating and touching up parts of your code for years and don't want to end up doing 20x more work afterwards and eventually rewriting everything because of inevitable spaghetti code that future investment might sound good.
Another slight benefit, this one more for companies, is that if you're going to be introducting new programmers to FP, Haskell will help immensely since it limits deviation in style. -
@BigBoo
I would agree with you that the first few points there are irrelevant or probably wrong on the performance one. Haskell generally doesn't get better performance than C/C++.
The main difference between Haskell and other FP langs is the complex, static type system.
With non-FP static vs dynamic benefits and downsides are obvious- less boilerplate in dynamic and functions are more general, but you have to write a lot of tests and you can almost never guarantee not to get runtime errors. With non-FP static languages this problem only gets pushed one level down. C#, Java and similar langs have a very superficial type system which allows you to structure your thinking a bit better, but doesn't prevent these problems.
In Haskell, on the other hand there are many complex types, which the language hides from you, but strictly enforces to the point where in combination with the immutability and purity you can non-sarcastically make the statement "If it compiles, ship it!" -
@AleCx04 I just like FP and really hate those same elitists who think that if you know what a Monoid is people have to stand out of your way and roll a red carpet. It harms the discussion. Sorry if I didn't express myself correctly.
-
@AleCx04
I meant ego of the aforementioned people who say haskell is the only real language or whatever. I wasn't talking about him or you. -
@BigBoo Let me google that for you:
https://wiki.haskell.org/Haskell_in...
If you want I can try to defend Haskell and more generally FP as well to you.
I'm sure there's some people who are learning how to write hello world in Haskell and then stroking their egos about it but they're not that many.
Maybe if you ask a few specific questions I can help with getting some of that ego-driven bullshit out of the way and tell you what's actually true about the paradigm or the language. -
I have this crazy idea that honesty leads to more problems upfront, but eliminates a lot more down the line.
That's why I've adopted my personal policy of radical honesty in all important matters, whenever possible.